【Robotics Library】robot model files

C:\Program Files\Robotics Library\0.7.0\MSVC\14.1\x64\share\rl-0.7.0\examples\rlsg

rlViewDemo

通过SoQt Examiner Viewer显示的静态图形界面

unimation-puma560_boxes.xml

<?xml version="1.0" encoding="UTF-8"?>
<rlsg xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="rlsg.xsd">
	<scene href="unimation-puma560_boxes.wrl">
		<model name="unimation-puma560">
			<body name="link0"/>
			<body name="link1"/>
			<body name="link2"/>
			<body name="link3"/>
			<body name="link4"/>
			<body name="link5"/>
			<body name="link6"/>
		</model>
		<model name="boxes">
			<body name=""/>
		</model>
	</scene>
</rlsg>

  • RL界面格式
  • 机器人刚体部分:link0~link10
  • 2个model:robot;environment

urdf 中的 link 标签用于描述机器人某个部件(也即刚体部分)的外观和物理属性,比如: 机器人底座、轮子、激光雷达、摄像头…每一个部件都对应一个 link, 在 link 标签内,可以设计该部件的形状、尺寸、颜色、惯性矩阵、碰撞参数等一系列属性

  • VRML文件 定义实际背景的形态和颜色
#VRML V2.0 utf8
Transform {
	children [
		DEF unimation-puma560 Transform {
			children [
				Inline {
					url "unimation-puma560/unimation-puma560.wrl"
				}
			]
		}
		DEF boxes Inline {
			url "boxes.wrl"
		}
	]
}

XML 数据储存的格式
VRML 建立仿真对象的三维模型,XML语言将模型描述成标准格式
VRML

VRML
Scene Graph数据结构
3D实境
按照一定的规则
Node节点
Scene Graph场景图

场景图(Scene Graph):以Open Inventor3D工具包为基础的一种数据格式

rlCollisionDemo

在场景中转化生成一个模型,检查是否产生碰撞。

scene.xml

<?xml version="1.0" encoding="UTF-8"?>
<rlsg xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="rlsg.xsd">
	<scene href="scene.wrl">
		<model name="model1">
			<body name="body1"/>
		</model>
		<model name="model2">
			<body name="body2"/>
		</model>
	</scene>
</rlsg>

第二个model是environment:用于做碰撞检测

scene.wrl

#VRML V2.0 utf8
Transform {
	children [
		DEF model1 Transform {
			children [
				DEF body1 Transform {
					translation -1 0 0
					children [
						DEF shape1 Shape {
							appearance Appearance {
								material Material {
									diffuseColor 1.0 1.0 0.0
								}
							}
							geometry Box {
								size 1.5 1.5 1.5
							}
						}
					]
				}
			]
		}
		DEF model2 Transform {
			children [
				DEF body2 Transform {
					translation 1 0 0
					children [
						DEF shape2 Shape {
							appearance Appearance {
								material Material {
									diffuseColor 1.0 1.0 0.0
								}
							}
							geometry Box {
								size 1.5 1.5 1.5
							}
						}
					]
				}
			]
		}
	]
}


此处机器人之被用作一个图形模型,未包含其运动。

可以在第一个模型中转化形成机器人,当它在环境中运动产生碰撞时,窗体会变红。

C:\Program Files\Robotics Library\0.7.0\MSVC\14.1\x64\share\rl-0.7.0\examples\rlplan

rlPlanDemo

考虑机器人运动

机器人路径规划:

  1. 机器人运动
  2. 场景图
  3. 障碍物

RL路径规划:rlplan\unimation-puma560_boxes_rrtConCon.xml
运动:rlkin\unimation-puma560.xml
场景图:rlsg\unimation-puma560.convex\unimation-puma560.convex.xml

rlkin\unimation-puma560.xml

<?xml version="1.0" encoding="UTF-8"?>
<rlkin xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="rlkin.xsd">
	<puma>
		<manufacturer>Unimation</manufacturer>
		<name>Puma 560</name>
		<world id="world">
			<rotation>
				<x>0</x>
				<y>0</y>
				<z>0</z>
			</rotation>
			<translation>
				<x>0</x>
				<y>0</y>
				<z>0</z>
			</translation>
		</world>
		<transform id="base">
			<frame>
				<a idref="world"/>
				<b idref="link0"/>
			</frame>
			<rotation>
				<x>0</x>
				<y>0</y>
				<z>0</z>
			</rotation>
			<translation>
				<x>0</x>
				<y>0</y>
				<z>0</z>
			</translation>
		</transform>
		<link id="link0">
			<ignore/>
			<ignore idref="link1"/>
		</link>
		<revolute id="joint0">
			<frame>
				<a idref="link0"/>
				<b idref="link1"/>
			</frame>
			<dh>
				<d>0.6604</d>
				<theta>0</theta>
				<a>0</a>
				<alpha>-90</alpha>
			</dh>
			<max>160</max>
			<min>-160</min>
		</revolute>
		<link id="link1">
			<ignore idref="link0"/>
			<ignore idref="link2"/>
		</link>
		<revolute id="joint1">
			<frame>
				<a idref="link1"/>
				<b idref="link2"/>
			</frame>
			<dh>
				<d>0.1291</d>
				<theta>0</theta>
				<a>0.4318</a>
				<alpha>0</alpha>
			</dh>
			<max>45</max>
			<min>-225</min>
		</revolute>
		<link id="link2">
			<ignore idref="link1"/>
			<ignore idref="link3"/>
			<ignore idref="link4"/>
		</link>
		<revolute id="joint2">
			<frame>
				<a idref="link2"/>
				<b idref="link3"/>
			</frame>
			<dh>
				<d>0</d>
				<theta>0</theta>
				<a>-0.0203</a>
				<alpha>90</alpha>
			</dh>
			<max>225</max>
			<min>-45</min>
		</revolute>
		<link id="link3">
			<ignore idref="link2"/>
			<ignore idref="link4"/>
		</link>
		<revolute id="joint3">
			<frame>
				<a idref="link3"/>
				<b idref="link4"/>
			</frame>
			<dh>
				<d>0.4331</d>
				<theta>0</theta>
				<a>0</a>
				<alpha>-90</alpha>
			</dh>
			<max>170</max>
			<min>-110</min>
		</revolute>
		<link id="link4">
			<ignore idref="link2"/>
			<ignore idref="link3"/>
			<ignore idref="link5"/>
			<ignore idref="link6"/>
		</link>
		<revolute id="joint4">
			<frame>
				<a idref="link4"/>
				<b idref="link5"/>
			</frame>
			<dh>
				<d>0</d>
				<theta>0</theta>
				<a>0</a>
				<alpha>90</alpha>
			</dh>
			<max>100</max>
			<min>-100</min>
		</revolute>
		<link id="link5">
			<ignore idref="link4"/>
			<ignore idref="link6"/>
		</link>
		<revolute id="joint5">
			<frame>
				<a idref="link5"/>
				<b idref="link6"/>
			</frame>
			<dh>
				<d>0.04125</d>
				<theta>0</theta>
				<a>0</a>
				<alpha>0</alpha>
			</dh>
			<max>266</max>
			<min>-266</min>
		</revolute>
		<link id="link6">
			<ignore idref="link4"/>
			<ignore idref="link5"/>
		</link>
		<transform id="tool">
			<frame>
				<a idref="link6"/>
				<b idref="tcp"/>
			</frame>
			<rotation>
				<x>0</x>
				<y>0</y>
				<z>0</z>
			</rotation>
			<translation>
				<x>0</x>
				<y>0</y>
				<z>0</z>
			</translation>
		</transform>
		<frame id="tcp"/>
	</puma>
</rlkin>

可编辑设置更小的最小/最大角度范围,这样一来路径规划会变复杂或者形成更多的姿势角度变换。

rlplan\unimation-puma560_boxes_rrtConCon.xml

<?xml version="1.0" encoding="UTF-8"?>
<rlplan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="rlplan.xsd">
	<rrtConCon>
		<duration>1200</duration>
		<goal>
			<q unit="deg">0</q>
			<q unit="deg">0</q>
			<q unit="deg">90</q>
			<q unit="deg">0</q>
			<q unit="deg">0</q>
			<q unit="deg">0</q>
		</goal>
		<model>
			<kinematics href="../rlkin/unimation-puma560.xml">
				<world>
					<rotation>
						<x>0</x>
						<y>0</y>
						<z>90</z>
					</rotation>
					<translation>
						<x>0</x>
						<y>0</y>
						<z>0</z>
					</translation>
				</world>
			</kinematics>
			<model>0</model>
			<scene href="../rlsg/unimation-puma560_boxes.convex.xml"/>
		</model>
		<start>
			<q unit="deg">90</q>
			<q unit="deg">-180</q>
			<q unit="deg">90</q>
			<q unit="deg">0</q>
			<q unit="deg">0</q>
			<q unit="deg">0</q>
		</start>
		<viewer>
			<delta unit="deg">1</delta>
			<model>
				<kinematics href="../rlkin/unimation-puma560.xml">
					<world>
						<rotation>
							<x>0</x>
							<y>0</y>
							<z>90</z>
						</rotation>
						<translation>
							<x>0</x>
							<y>0</y>
							<z>0</z>
						</translation>
					</world>
				</kinematics>
				<model>0</model>
				<scene href="../rlsg/unimation-puma560_boxes.xml"/>
			</model>
		</viewer>
		<delta unit="deg">1</delta>
		<epsilon>1e-9</epsilon>
		<uniformSampler/>
	</rrtConCon>
</rlplan>

rlCoachKin & rlCoachMdl

rlkin文件夹中的xml文件:Denavit-Hartenberg 运动链
rlmdl:任意几何链

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值