显示
在图显示机器人模型
描述
例子
用视觉几何图形显示机器人模型
可以导入机器人.stl
相关文件统一机器人描述格式(URDF)文件来描述机器人的视觉几何图形。每个刚体指定单个视觉几何。的importrobot
函数解析URDF文件得到机器人模型和视觉几何图形。函数假设视觉机器人的几何和碰撞几何是相同的,分配相应的视觉几何图形碰撞几何图形的身体。
使用显示
函数显示机器人的视觉和碰撞几何模型图。然后您可以通过单击组件与模型交互检查他们,右键单击toggle可见性。
导入一个机器人模型作为URDF文件。的.stl
在这个URDF指定文件位置必须正确。添加其他.stl
文件单独的刚体,明白了addVisual
。
机器人= importrobot (“iiwa14.urdf”);
想象机器人与视觉相关的模型。单击或帧检查身体。右键单击身体切换为每个视觉几何可见度。
表演(机器人,“视觉效果”,“上”,“碰撞”,“关闭”);
可视化的机器人碰撞几何形状有关。单击或帧检查身体。右键单击身体切换为每个碰撞几何可见度。
表演(机器人,“视觉效果”,“关闭”,“碰撞”,“上”);
想象机器人配置
显示不同的配置使用创建的机器人RigidBodyTree
模型。使用homeConfiguration
或randomConfiguration
函数来生成结构,定义了所有关节位置。
负载机器人作为例子RigidBodyTree
对象。
负载exampleRobots.mat
创建一个结构的房屋配置Puma机器人。每个身体的结构接头的名字和职位的机器人模型。
配置= homeConfiguration (puma1)
配置=1×6结构体数组字段:JointName JointPosition
显示配置使用显示
。你不需要指定一个配置输入。
显示(puma1);
修改配置和设置第二个关节的位置π/ 2
。显示生成的机器人配置的变化。
配置(2)。JointPosition =π/ 2;显示(puma1配置);
创建随机配置和给他们看的。
显示(puma1 randomConfiguration (puma1));
建立机械手机器人使用Denavit-Hartenberg参数
,使用迪纳维特-哈坦伯格(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;
创建第一个刚体,并将它添加到机器人。添加一个刚体:
创建一个
rigidBody
对象,并给它一个独特的名字。创建一个
rigidBodyJoint
对象,并给它一个独特的名字。使用
setFixedTransform
指定肢体使用DH参数转换。DH参数的最后一个元素,θ
将被忽略,因为角是依赖于关节的位置。调用
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})结束表演(机器人,“碰撞”,“上”,“视觉效果”,“关闭”);
添加碰撞气缸
迭代添加一个碰撞汽缸体。跳过一些身体对于这个特定的模型,他们总是重叠和冲突的终端执行器(身体10)。
collisionObj = collisionCylinder (0.05, 0.25);为我= 1:robot.NumBodies如果我> 6 & & < 10%跳过这些机构。其他的我addCollision (robot.Bodies {}, collisionObj)结束结束表演(机器人,“碰撞”,“上”,“视觉效果”,“关闭”);
检查碰撞
产生一系列的随机配置。检查是否碰撞的机器人在每个配置。想象每个配置有一个碰撞。
图rng (0)%设置随机种子可重复性。为我= 1:20配置= randomConfiguration(机器人);isColliding = checkCollision(机器人,配置,“SkippedSelfCollisions”,“父”);如果isColliding显示(机器人,配置,“碰撞”,“上”,“视觉效果”,“关闭”);标题(碰撞检测的)其他的%跳过non-collisions。结束结束
输入参数
机器人
- - - - - -机器人模型
rigidBodyTree
对象
机器人模型,指定为一个rigidBodyTree
对象。
配置
- - - - - -机器人的配置
向量|结构
机器人配置,指定为一个向量与联合共同立场或结构的名字和职位的所有机构的机器人模型。您可以生成一个配置使用homeConfiguration(机器人)
,randomConfiguration(机器人)
,或者通过指定自己的关节位置的结构。使用的向量形式配置
,设置DataFormat
财产机器人
要么“行”
或“列”
。
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:“帧”,“关闭”
隐藏了刚体帧图中。
父
- - - - - -轴的母公司
轴
对象
轴的母公司,指定为逗号分隔组成的“父”
和一个轴
画机器人的对象。默认情况下,机器人在活动策划的轴。
PreservePlot
- - - - - -选择保存机器人阴谋
真正的
或1
(默认)|假
或0
选择保持机器人的阴谋,指定为逗号分隔组成的“PreservePlot”
和一个逻辑1
(真正的)
或0
(假)
。当你指定这个参数真正的
,该函数不会覆盖之前的情节显示通过调用显示
。这个设置功能类似抓住
对于标准的MATLAB®图,但仅限于机器人身体的框架。当你指定这个参数假
机器人的功能覆盖之前的情节。
请注意
当“PreservePlot”
值是真正的
,“FastUpdate”
值必须是假
。
数据类型:逻辑
帧
- - - - - -显示身体帧
“上”
(默认)|“关闭”
显示帧,指定为逗号分隔组成的“帧”
和“上”
或“关闭”
。这些框架是个人身体的协调框架在刚体上树。
数据类型:字符
|字符串
视觉效果
- - - - - -显示视觉几何图形
“上”
(默认)|“关闭”
显示视觉几何图形,指定为逗号分隔组成的“视觉效果”
和“上”
或“关闭”
。个人视觉几何图形也可以通过右键单击关闭图。
指定个人视觉几何图形使用addVisual
。导入URDF机器人模型.stl
网格文件,看到了importrobot
函数。
数据类型:字符
|字符串
碰撞
- - - - - -显示碰撞几何图形
“关闭”
(默认)|“上”
碰撞几何图形,显示指定为逗号分隔组成的“碰撞”
和“上”
或“关闭”
。
添加单个刚体的碰撞几何图形使用的机器人模型addCollision
函数。导入URDF机器人模型.stl
网格文件,看到了importrobot
函数。
数据类型:字符
|字符串
位置
- - - - - -机器人的位置
[0 0 0 0]
(默认)|研制出向量
机器人的位置指定为逗号分隔组成的“位置”
并研制出向量的形式xyz偏航]。的x,y,z元素指定位置在米,偏航指定的偏航角弧度。
数据类型:单
|双
FastUpdate
- - - - - -快更新现有的阴谋
假
或0
(默认)|真正的
或1
快更新现有的阴谋,指定为逗号分隔组成的“FastUpdate”
和一个逻辑0
(假)
或1
(真正的)
。你必须使用显示
目标函数最初显示机器人模型之前,您可以指定这个论点。
请注意
当“FastUpdate”
值是真正的
,“PreservePlot”
值必须是假
。
数据类型:逻辑
提示
你的机器人模型与之关联的可视化组件。每一个rigidBody
对象包含了一个坐标系显示车身骨架。每个身体也会有视觉网格。默认情况下,这些组件都是自动显示。您可以检查或修改显示刚体的可视化组件树。单击身体帧或视觉网格强调他们在黄色和看到相关机构名称,索引和联合类型。右键单击toggle可见性的单个组件。
体框架:个人的身体显示帧作为一个硬件坐标系。固定帧粉红色的帧。活接头类型显示为RGB轴。您可以单击一个车身骨架的轴运动。移动关节显示一个黄色箭头的方向轴的运动,转动关节显示圆形箭头在转动轴。
视觉网格:个人视觉几何图形是使用指定的
addVisual
或通过使用importrobot
导入一个机器人模型.stl
指定的文件。个人的身体在一个图中,单击右键可以关闭网格或指定视觉效果
名称-值对隐藏所有视觉几何图形。
版本历史
介绍了R2016b
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。