ROS仿真--URDF

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

`在ROS中可以利用URDF结合RViz和Gazebo进行机器人的一系列仿真,同时URDF只是一个文件,需要在Rviz和Gazebo中渲染成图形化的机器人模型,本文主要介绍一下URDF的语法格式。


一、URDF 的语法

1.robot

urdf为了保证xml语法的完整性,使用了robot标签作为根标签,就是说下面提到的linkjoint都是作为它的的子标签包含在里面

<robtot name = "xxx">
	<link>
	</link>
	<joint>
	</jiont>
</robot>

2.link

urdf中link用于描述机器人的某个部件例如云台或者地盘,存在着一一对应的关系,在link标签下,还有描述该部件的形状,尺寸,颜色,偏移,碰撞参数等等

<robtot name = "xxx">
	<link name = "myxxx">  <!--name属性->给该link命名-->
		<visual>
			<!--下面是列举了visual的子表情,按实际需要编写-->
			<geometry>
				<box size = "长 宽 高" />
				<cylinde radius = "半径" length = "高度" />
				<sphere radius = "半径" />
				<!--这个是可以直接将机械导出的urdf直接导入-->
				<mesh filename = "资源路径(格式:package://<packagename>/<path>/文件)" />
				<origin xyz = "" rpy = "" /> <!--第一个是在world frame xyz轴的便宜,第二个就roll pitch yaw-->
				<metrial name  = " " />
					<color rgba = "" /> <!--red green blue 透明度-->
				</metrial>
			</geometry>
		<!--下面的后面用到再补充-->
		</visual>
		<collision>
		</collision>
		<Inertial>
		</Inertial>
	</link>
</robot>

3.joint

joint就是关节,它是拿来链接机器人两个部件的,描述机器人关节的 运动学和动力学属性。不同的关节有不同的运动形式,例如:旋转,滑动,固定,旋转滑动的一些物理量的限制。。。
官方的一个图片

<robtot name = "xxx">
	<!--
		1 name :给关节命名
		2 type:描述关节的运动
			para :continuous -- 旋转关节,可以绕单轴无线旋转
				   revolute   --旋转关节,有角度限制
				   prismatic  --滑动关节,沿某一轴线移动,有位置限制
				   planer     --平面关节
				   floating   --浮动关节,允许平移,旋转
				   fixed      -- 固定关节
	-->
	<joint name= "" type = "">
		<paren link = ""/>
		<child link = "" />
		<origin xyz = "" rpy = "" />  <!--描述child和parent物理原理之间的偏移量-->
		<axis xyz = "" />  <!--描述沿着哪个轴旋转,0表示不行,1表示可以-->
	</jiont>
</robot>

二、启动时报错的原因

1.描述

出现类似于process failed 或者 process has been killed 等等

2.检查

<!--xml格式-->
<!--在描述标签的属性的时候 例如-->
<robtot name = "xxx">
	<link>
		<visual>
			<geometry>
				<cylinder radius = "10" length = "1" />
			</geometry>
		</visual>
	</link>
</robot>
<!--注意 **/**
	这个分隔的不对会影响运行,但是编译是不会报错的
	-->

总结

以上是本人学习ROS URDF与Rviz仿真的时候的一个总结,可以参考官方网站:ROS官方对于URDF语法介绍

猜你喜欢

转载自blog.csdn.net/weixin_45811857/article/details/124345499