主要内容

交互式地建立轨迹ABB弓机器人

这个例子展示了如何使用interactiveRigidBodyTree对象移动机器人,设计一个轨迹,并回放。

负载机器人可视化和构建环境

加载“abbYumi”机器人模型。初始化交互图使用interactiveRigidBodyTree。保存当前轴。

机器人= loadrobot (“abbYumi”,“重力”[0 0 -9.81]);iviz = interactiveRigidBodyTree(机器人);甘氨胆酸ax =;

构建一个环境碰撞盒子代表组成的地板上,两个货架对象和一个中心表。

飞机= collisionBox (1.5, 1.5, 0.05);飞机。构成= trvec2tform ((0.25 0 -0.025));表演(飞机,“父”、ax);leftShelf = collisionBox (0.25, 0.1, 0.2);leftShelf。= trvec2tform ([0.3 -。65年0.1]);[~,patchObj] =显示(leftShelf,“父”、ax);patchObj。FaceColor = (0 0 1);rightShelf = collisionBox (0.25, 0.1, 0.2);rightShelf。构成= trvec2tform([0.3主板市场0.1]);[~,patchObj] =显示(rightShelf,“父”、ax);patchObj。FaceColor = (0 0 1);leftWidget = collisionCylinder (0.01, 0.07);leftWidget。构成= trvec2tform (0.225 [0.3 - -0.65]);[~,patchObj] =显示(leftWidget,“父”、ax);patchObj。FaceColor = (1 0 0);rightWidget = collisionBox (0.03, 0.02, 0.07);rightWidget。构成= trvec2tform (0.225 [0.3 - 0.65]);[~,patchObj] =显示(rightWidget,“父”、ax);patchObj。FaceColor = (1 0 0);centerTable = collisionBox (0.5, 0.3, 0.05);centerTable。构成= trvec2tform ((0.75 0 0.025));[~,patchObj] =显示(centerTable,“父”、ax);patchObj。FaceColor = (0 0 1);

图交互式可视化包含一个坐标轴对象。坐标轴对象包含X, Y ylabel包含80个对象类型的补丁,线,面。

交互地生成配置

使用交互式可视化移动机器人和设置配置。当初始化图,机器人在国内配置双手交叉。放大和点击结束效应来获取更多的信息。

选择身体作为终端执行器,右键单击选中它。

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

iviz。MarkerBodyName =“gripper_r_base”;

一旦身体被设置,使用提供的标记元素移动标记,和选择的身体。拖着中央灰色标记移动标记在笛卡尔空间。红、绿、蓝轴移动的标志xyz相互重合。圆轴的旋转标志颜色。

你也可以移动单个关节关节单击右键,然后单击切换标记控制方法。

MarkerControlMethod设置对象的属性“JointControl”

这些步骤也可以直接通过改变对象的属性。

iviz。MarkerBodyName =“yumi_link_2_r”;iviz。MarkerControlMethod =“JointControl”;

图交互式可视化包含一个坐标轴对象。坐标轴对象包含X, Y ylabel包含72个对象类型的补丁,线,面。

改变联合控制产生黄色标记,使关节位置直接设置。

交互式移动机器人直到你所需的配置。保存配置使用addConfiguration。每次调用将当前配置添加到StoredConfigurations财产。

addConfiguration (iviz)

定义锚点的轨迹

这个例子的目的,提供了一组配置.mat文件。

加载配置,并指定组存储配置。第一个配置是通过更新补充道配置财产和调用addConfiguration你可以交互式地,但其余只是添加的分配StoredConfigurations直接的财产。

负载abbYumiSaveTrajectoryWaypts.matremoveConfigurations (iviz)%明显存储配置%开始从一个有效的配置iviz。配置= startingConfig;

图交互式可视化包含一个坐标轴对象。坐标轴对象包含X, Y ylabel包含72个对象类型的补丁,线,面。

addConfiguration (iviz)%指定的整个锚点集iviz。StoredConfigurations = [startingConfig,graspApproachConfig,graspPoseConfig,graspDepartConfig,placeApproachConfig,placeConfig,placeDepartConfig,startingConfig];

生成轨迹和玩耍

一旦所有存储路径点,构造一个轨迹,机器人。对于这个示例,使用生成梯形速度剖面trapveltraj。梯形速度剖面意味着机器人停止顺利在每一个路标,但达到最高速度在运动。

numSamples = 100 * (iviz大小。StoredConfigurations,2) + 1; [q,~,~, tvec] = trapveltraj(iviz.StoredConfigurations,numSamples,“EndTime”2);

重复迭代生成的轨迹的生成矩阵,代表一系列联合配置每个路标之间移动。在这种情况下,速度控制对象用于确保播放速度是反映实际的执行速度。

iviz。ShowMarker = false;showFigure (iviz) rateCtrlObj = rateControl (numSamples / (max (tvec) + tvec (2)));i = 1: numSamples iviz。配置= q(:,i); waitfor(rateCtrlObj);结束

图交互式可视化包含一个坐标轴对象。坐标轴对象包含X, Y ylabel包含70个补丁,类型的对象。

图中显示机器人执行所有定义的锚点之间平滑的轨迹。