主要内容

显示

在图显示机器人模型

描述

例子

显示(机器人)情节机器人的身体框架模型在图与预定义的配置。这两个视觉效果自动显示。

显示(机器人,配置)使用指定的共同立场配置机器人的身体框架。

显示(___、名称、值)指定选项使用一个或多个名称-值对参数除了从以前的语法输入参数的任意组合。例如,“帧”,“关闭”隐藏了刚体帧图中。

斧头=显示(___)返回处理机器人轴绘制。

例子

全部折叠

可以导入机器人.stl相关文件统一机器人描述格式(URDF)文件来描述机器人的视觉几何图形。每个刚体指定单个视觉几何。的importrobot函数解析URDF文件得到机器人模型和视觉几何图形。函数假设视觉机器人的几何和碰撞几何是相同的和分配视觉几何图形碰撞几何图形corresponsing的身体。

使用显示函数显示机器人的视觉和碰撞几何模型图。然后您可以通过单击组件与模型交互检查他们,右键单击toggle可见性。

导入一个机器人模型作为URDF文件。的.stl在这个URDF指定文件位置必须正确。添加其他.stl文件单独的刚体,明白了addVisual

机器人= importrobot (“iiwa14.urdf”);

想象机器人与视觉相关的模型。单击或帧检查身体。右键单击身体切换为每个视觉几何可见度。

表演(机器人,“视觉效果”,“上”,“碰撞”,“关闭”);

图包含一个坐标轴对象。坐标轴对象包含29块类型的对象,线。这些对象代表世界,iiwa_link_0、iiwa_link_1 iiwa_link_2, iiwa_link_3, iiwa_link_4, iiwa_link_5, iiwa_link_6, iiwa_link_7, iiwa_link_ee, iiwa_link_ee_kuka, iiwa_link_0_mesh, iiwa_link_1_mesh, iiwa_link_2_mesh, iiwa_link_3_mesh, iiwa_link_4_mesh, iiwa_link_5_mesh, iiwa_link_6_mesh iiwa_link_7_mesh。

可视化的机器人碰撞几何形状有关。单击或帧检查身体。右键单击身体切换为每个碰撞几何可见度。

表演(机器人,“视觉效果”,“关闭”,“碰撞”,“上”);

图包含一个坐标轴对象。坐标轴对象包含29块类型的对象,线。这些对象代表世界,iiwa_link_0、iiwa_link_1 iiwa_link_2, iiwa_link_3, iiwa_link_4, iiwa_link_5, iiwa_link_6, iiwa_link_7, iiwa_link_ee, iiwa_link_ee_kuka, iiwa_link_0_mesh, iiwa_link_1_mesh, iiwa_link_2_mesh, iiwa_link_3_mesh, iiwa_link_4_mesh, iiwa_link_5_mesh, iiwa_link_6_mesh, iiwa_link_7_mesh, iiwa_link_0_coll_mesh, iiwa_link_1_coll_mesh, iiwa_link_2_coll_mesh, iiwa_link_3_coll_mesh, iiwa_link_4_coll_mesh, iiwa_link_5_coll_mesh, iiwa_link_6_coll_mesh iiwa_link_7_coll_mesh。

显示不同的配置使用创建的机器人RigidBodyTree模型。使用homeConfigurationrandomConfiguation函数来生成结构,定义了所有关节位置。

负载机器人作为例子RigidBodyTree对象。

负载exampleRobots.mat

创建一个结构的房屋配置Puma机器人。每个身体的结构接头的名字和职位的机器人模型。

配置= homeConfiguration (puma1)
配置=1×6结构体数组字段:JointName JointPosition

显示配置使用显示。你不需要指定一个配置输入。

显示(puma1);

图包含一个坐标轴对象。坐标轴对象包含13个补丁,类型的对象。这些对象是基础,L1, L2, L3、L4、L5、16种。

修改配置和设置第二个关节的位置π/ 2。显示生成的机器人配置的变化。

配置(2)。JointPosition =π/ 2;显示(puma1配置);

图包含一个坐标轴对象。坐标轴对象包含13个补丁,类型的对象。这些对象是基础,L1, L2, L3、L4、L5、16种。

创建随机配置和给他们看的。

显示(puma1 randomConfiguration (puma1));

图包含一个坐标轴对象。坐标轴对象包含13个补丁,类型的对象。这些对象是基础,L1, L2, L3、L4、L5、16种。

,使用迪纳维特-哈坦伯格(DH)参数Puma560机器人®建造一个机器人。每个刚体添加一次,与child-to-parent变换联合指定的对象。

DH参数定义机器人的几何关系每个刚体是如何连接到它的父。为了方便,设置的参数Puma560机器人在一个矩阵[1]。彪马的机器人是一个串行链机械手。DH参数相对于前一行的矩阵,对应于前面的接头附件。

dhparams =[0π/ 2 0 0;0.4318 0 0 0 0.0203 0.15005 -π/ 2 0;0.4318π/ 2 0;0 -π/ 2 0 0;0 0 0 0);

创建一个刚体树对象构建机器人。

机器人= rigidBodyTree;

创建第一个刚体,并将它添加到机器人。添加一个刚体:

  1. 创建一个rigidBody对象,并给它一个独特的名字。

  2. 创建一个rigidBodyJoint对象,并给它一个独特的名字。

  3. 使用setFixedTransform指定肢体使用DH参数转换。DH参数的最后一个元素,θ将被忽略,因为角是依赖于关节的位置。

  4. 调用addBody把第一个身体关节机器人的基础构架。

body1 = rigidBody (“界面”);jnt1 = rigidBodyJoint (“jnt1”,“转动”);setFixedTransform (jnt1 dhparams (1:)“dh”);界面。联合= jnt1;addBody(机器人,界面,“基地”)

创建和添加其他刚体机器人。当调用指定身体前面的名称addBody把它。每个固定变换是相对于前一个关节坐标系。

body2 = rigidBody (“body2”);jnt2 = rigidBodyJoint (“jnt2”,“转动”);body3 = rigidBody (“body3”);jnt3 = rigidBodyJoint (“jnt3”,“转动”);body4 = rigidBody (“body4”);jnt4 = rigidBodyJoint (“jnt4”,“转动”);body5 = rigidBody (“body5”);jnt5 = rigidBodyJoint (“jnt5”,“转动”);body6 = rigidBody (“body6”);jnt6 = rigidBodyJoint (“jnt6”,“转动”);:setFixedTransform (jnt2 dhparams (2),“dh”);:setFixedTransform (jnt3 dhparams (3),“dh”);:setFixedTransform (jnt4 dhparams (4),“dh”);:setFixedTransform (jnt5 dhparams (5),“dh”);:setFixedTransform (jnt6 dhparams (6),“dh”);body2。联合= jnt2;body3。联合= jnt3;body4。联合= jnt4;body5。联合= jnt5;body6。Joint = jnt6; addBody(robot,body2,“界面”)addBody (body3的机器人“body2”)addBody (body4的机器人“body3”)addBody (body5的机器人“body4”)addBody (body6的机器人“body5”)

验证您的机器人是建立正确使用showdetails显示函数。showdetails列出所有尸体的MATLAB®命令窗口。显示显示了机器人与给定配置(默认情况下)。调用修改轴限制和隐藏轴标签。

showdetails(机器人)
- - - - - - - - - - - - - - - - - - - - - -机器人:身体(6)Idx身体名称联合名称联合类型父母名字(Idx)孩子的名字(s) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1界面jnt1转动基地(0)body2 (2) 2 body2 jnt2转动界面(1)body3 (3) 3 body3 jnt3转动body2 (2) body4 (4) 4 body4 jnt4转动body3 (3) body5 (5) 5 body5 jnt5转动body4 (4) body6 (6) 6 body6 jnt6转动body5 (5) - - - - - - - - - - - - - - - - - - - - -
显示(机器人);轴([-0.5,0.5,-0.5,0.5,-0.5,0.5])轴

引用

[1]刘纪麟p I。,B. Armstrong-Helouvry. “A Search for Consensus among Model Parameters Reported for the PUMA 560 Robot.”学报1994年IEEE机器人与自动化国际会议上,IEEE第一版。Soc。出版社,1994,页1608 - 13所示。DOI.org (Crossref),doi: 10.1109 / ROBOT.1994.351360。

加载一个机器人模型和修改碰撞网格。明确现有的碰撞网格,添加简单的碰撞对象原语,并检查某些配置是否相撞。

负载机器人模型

一个预配置机器人模型加载到工作空间使用loadrobot函数。这个模型已经碰撞网格为每个指定的身体。遍历所有刚体元素和清除现有的碰撞网格。确认现有的网格已经一去不复返了。

机器人= loadrobot (“kukaIiwa7”,“DataFormat”,“列”);我= 1:robot.NumBodiesclearCollision(robot.Bodies{i})结束表演(机器人,“碰撞”,“上”,“视觉效果”,“关闭”);

图包含一个坐标轴对象。坐标轴对象包含21个补丁,类型的对象。这些对象代表世界,iiwa_link_0、iiwa_link_1 iiwa_link_2, iiwa_link_3, iiwa_link_4, iiwa_link_5, iiwa_link_6, iiwa_link_7, iiwa_link_ee, iiwa_link_ee_kuka, iiwa_link_0_mesh, iiwa_link_1_mesh, iiwa_link_2_mesh, iiwa_link_3_mesh, iiwa_link_4_mesh, iiwa_link_5_mesh, iiwa_link_6_mesh iiwa_link_7_mesh。

添加碰撞气缸

迭代添加一个碰撞汽缸体。跳过一些身体对于这个特定的模型,他们总是重叠和冲突的终端执行器(身体10)。

collisionObj = collisionCylinder (0.05, 0.25);我= 1:robot.NumBodies如果我> 6 & & < 10%跳过这些机构。其他的我addCollision (robot.Bodies {}, collisionObj)结束结束表演(机器人,“碰撞”,“上”,“视觉效果”,“关闭”);

图包含一个坐标轴对象。坐标轴对象包含28块类型的对象,线。这些对象代表世界,iiwa_link_0、iiwa_link_1 iiwa_link_2, iiwa_link_3, iiwa_link_4, iiwa_link_5, iiwa_link_6, iiwa_link_7, iiwa_link_ee, iiwa_link_ee_kuka, iiwa_link_0_mesh, iiwa_link_1_mesh, iiwa_link_2_mesh, iiwa_link_3_mesh, iiwa_link_4_mesh, iiwa_link_5_mesh, iiwa_link_6_mesh, iiwa_link_7_mesh, iiwa_link_0_coll_mesh, iiwa_link_1_coll_mesh, iiwa_link_2_coll_mesh, iiwa_link_3_coll_mesh, iiwa_link_4_coll_mesh, iiwa_link_5_coll_mesh iiwa_link_ee_kuka_coll_mesh。

检查碰撞

产生一系列的随机配置。检查是否碰撞的机器人在每个配置。想象每个配置有一个碰撞。

图rng (0)%设置随机种子可重复性。我= 1:20配置= randomConfiguration(机器人);isColliding = checkCollision(机器人、配置);如果isColliding显示(机器人,配置,“碰撞”,“上”,“视觉效果”,“关闭”);标题(碰撞检测的)其他的%跳过non-collisions。结束结束

图包含一个坐标轴对象。坐标轴对象与标题碰撞检测包含28个对象类型的补丁,线。这些对象代表世界,iiwa_link_0、iiwa_link_1 iiwa_link_2, iiwa_link_3, iiwa_link_4, iiwa_link_5, iiwa_link_6, iiwa_link_7, iiwa_link_ee, iiwa_link_ee_kuka, iiwa_link_0_mesh, iiwa_link_1_mesh, iiwa_link_2_mesh, iiwa_link_3_mesh, iiwa_link_4_mesh, iiwa_link_5_mesh, iiwa_link_6_mesh, iiwa_link_7_mesh, iiwa_link_0_coll_mesh, iiwa_link_1_coll_mesh, iiwa_link_2_coll_mesh, iiwa_link_3_coll_mesh, iiwa_link_4_coll_mesh, iiwa_link_5_coll_mesh iiwa_link_ee_kuka_coll_mesh。

输入参数

全部折叠

机器人模型,指定为一个rigidBodyTree对象。

机器人配置,指定为一个向量与联合共同立场或结构的名字和职位的所有机构的机器人模型。您可以生成一个配置使用homeConfiguration(机器人),randomConfiguration(机器人),或者通过指定自己的关节位置的结构。使用的向量形式配置,设置DataFormat财产机器人要么“行”“列”

名称-值参数

指定可选的逗号分隔条名称,值参数。的名字参数名称和吗价值相应的价值。的名字必须出现在引号。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家

例子:“帧”,“关闭”隐藏了刚体帧图中。

轴的母公司,指定为逗号分隔组成的“父”和一个画机器人的对象。默认情况下,机器人在活动策划的轴。

选择保持机器人的阴谋,指定为逗号分隔组成的“PreservePlot”和一个逻辑1(真正的)0(假)。当你指定这个参数真正的,该函数不会覆盖之前的情节显示通过调用显示。这个设置功能类似抓住对于标准的MATLAB®图,但仅限于机器人身体的框架。当你指定这个参数机器人的功能覆盖之前的情节。

请注意

“PreservePlot”值是真正的,“FastUpdate”值必须是

数据类型:逻辑

显示帧,指定为逗号分隔组成的“帧”“上”“关闭”。这些框架是个人身体的协调框架在刚体上树。

数据类型:字符|字符串

显示视觉几何图形,指定为逗号分隔组成的“视觉效果”“上”“关闭”。个人视觉几何图形也可以通过右键单击关闭图。

指定个人视觉几何图形使用addVisual。导入URDF机器人模型.stl网格文件,看到了importrobot函数。

数据类型:字符|字符串

碰撞几何图形,显示指定为逗号分隔组成的“碰撞”“上”“关闭”

添加单个刚体的碰撞几何图形使用的机器人模型addCollision函数。导入URDF机器人模型.stl网格文件,看到了importrobot函数。

数据类型:字符|字符串

机器人的位置指定为逗号分隔组成的“位置”并研制出向量的形式xyz偏航]。的x,y,z元素指定位置在米,偏航指定的偏航角弧度。

数据类型:|

快更新现有的阴谋,指定为逗号分隔组成的“FastUpdate”和一个逻辑0(假)1(真正的)。你必须使用显示目标函数最初显示机器人模型之前,您可以指定这个论点。

请注意

“FastUpdate”值是真正的,“PreservePlot”值必须是

数据类型:逻辑

输出参数

全部折叠

轴的图形处理,作为一个返回对象。这个对象包含的属性图绘制到机器人。

提示

你的机器人模型与之关联的可视化组件。每一个rigidBody对象包含了一个坐标系显示车身骨架。每个身体也会有视觉网格。默认情况下,这些组件都是自动显示。您可以检查或修改显示刚体的可视化组件树。单击身体帧或视觉网格强调他们在黄色和看到相关机构名称,索引和联合类型。右键单击toggle可见性的单个组件。

  • 体框架:个人的身体显示帧作为一个硬件坐标系。固定帧粉红色的帧。活接头类型显示为RGB轴。您可以单击一个车身骨架的轴运动。移动关节显示一个黄色箭头的方向轴的运动,转动关节显示圆形箭头在转动轴。

  • 视觉网格:个人视觉几何图形是使用指定的addVisual或通过使用importrobot导入一个机器人模型.stl指定的文件。个人的身体在一个图中,单击右键可以关闭网格或指定视觉效果名称-值对隐藏所有视觉几何图形。

介绍了R2016b