主要内容

交互式地构建机器人轨迹

在ABB YuMi机器人模型上使用交互式标记建立轨迹交互式体树对象以交互图形显示刚体树机器人模型。此示例演示如何移动机器人的不同部分、设计轨迹和保存配置。

装载机器人可视化与构建环境

加载“阿比尤米”机器人模型。使用初始化交互式图形交互式体树.保存当前轴。

机器人=装载机器人(“阿比尤米”,“重力”, [0 0 -9.81]); iviz=交互式GidBodyTree(机器人);ax=gca;

构建一个由表示地板的碰撞框、两个带有对象的搁板和一个中心桌子组成的环境。

平面=碰撞框(1.5,1.5,0.05);平面.Pose=trvec2tform([0.25 0-0.025]);显示(平面,“家长”,ax);leftShelf=collisionBox(0.25,0.1,0.2);leftShelf.Pose=trvec2tform([0.3-.65 0.1]);[~,patchObj]=show(leftShelf,“家长”,ax);patchObj.FaceColor=[0 0 1];rightShelf=碰撞框(0.25,0.1,0.2);rightShelf.Pose=trvec2tform([0.3.65 0.1]);[~,patchObj]=显示(rightShelf,“家长”,ax);patchObj.FaceColor=[0 0 1];leftWidget=碰撞圆柱体(0.01,0.07);leftWidget.Pose=trvec2tform([0.3-0.65 0.225]);[~,patchObj]=show(leftWidget,“家长”,ax);patchObj.FaceColor=[1 0];rightWidget=collisionBox(0.03,0.02,0.07);Pose=trvec2tform([0.30.65 0.225]);[~,patchObj]=show(rightWidget,“家长”,ax);patchObj.FaceColor=[1 0 0];centerTable=collisionBox(0.5,0.3,0.05);centerTable.Pose=trvec2tform([0.75 0 0.025]);[~,patchObj]=显示(centerTable,“家长”,ax);patchObj.FaceColor=[0 1 0];

图交互式可视化包含一个Axis对象。Axis对象包含80个面片、直线、曲面类型的对象。此对象表示yumi_base_链接。

以交互方式生成配置

使用交互式可视化来移动机器人并设置配置。当图形初始化时,机器人处于其主配置,双臂交叉。放大并单击末端效应器以获取更多信息。

要选择实体作为末端效应器,请在实体上单击鼠标右键,然后选择将主体设置为标记主体.

也可以从命令行指定标记体:

iviz.MarkerBodyName=“夹持器底座”;

设置主体后,使用提供的标记元素四处移动标记,选定的主体随之移动。拖动中心灰色标记将在笛卡尔空间中移动标记。红色、绿色和蓝色轴将沿着中心移动标记xyz-轴。圆圈围绕相同颜色的轴旋转标记。

也可以通过在关节上单击鼠标右键并单击来移动各个关节切换标记控制方法。

这些步骤也可以通过直接更改对象的属性来完成标记控制法对象的属性设置为“JointControl”.

iviz.MarkerBodyName=“yumi_link_2_r”;iviz.marker控制方法=“JointControl”;

图交互式可视化包含一个Axis对象。Axis对象包含72个patch、line、surface类型的对象。该对象表示yumi_base_link。

更改为“关节控制”将生成一个黄色标记,允许直接设置关节位置。

它实际上是移动机器人,直到你有一个理想的配置。使用保存配置添加配置。每次调用都会将当前配置添加到存储配置所有物

添加配置(iviz)

定义轨迹的航路点

出于本示例的目的,在小地毯文件

加载配置,并将其指定为存储的配置集配置属性与调用添加配置,您可以以交互方式执行此操作,但只需通过指定存储配置直接的财产。

负载abbYumiSaveTrajectoryWaypts.mat移除配置(iviz)%清除存储的配置%以有效的启动配置启动iviz.Configuration=startingConfig;

图交互式可视化包含一个Axis对象。Axis对象包含72个patch、line、surface类型的对象。该对象表示yumi_base_link。

添加配置(iviz)%指定整个航路点集iviz.storedConfiguration=[startingConfig,...graspApproachConfig,...grasposeconfig,...GrasDepartConfig,...PlaceApproach配置,...placeConfig,...placeDepartConfig,...启动配置];

生成轨迹并回放

一旦所有的航路点都存储好了,构建一条机器人遵循的轨迹trapveltraj.梯形速度剖面表示机器人在每个航路点平稳停止,但在运动中达到设定的最大速度。

numSamples=100*size(iviz.storedConfiguration,2)+1;[q,~,~,tvec]=trapveltraj(iviz.storedConfiguration,numSamples,“结束时间”,2);

通过迭代生成的轨迹来重放生成的轨迹Q矩阵,表示在每个航路点之间移动的一系列关节配置。在这种情况下,速率控制对象用于确保回放速度反映实际执行速度。

iviz.ShowMarker=false;showFigure(iviz)rateCtrlObj=速率控制(numSamples/(max(tvec)+tvec(2));对于i=1:numSamples iviz.Configuration=q(:,i);waitfor(rateCtrlObj);终止

Figure Interactive Visualization包含一个axes对象。axes对象包含70个patch、line类型的对象。该对象表示yumi_base_link。

该图显示机器人在所有定义的航路点之间执行平滑轨迹。