robot:
urdf 中为了保证 xml 语法的完整性,使用了robot标签作为根标签,所有的 link 和 joint 以及其他标签都必须包含在 robot 标签内,在该标签内可以通过 name 属性设置机器人模型的名称
(1)属性
name: 指定机器人模型的名称
(2)子标签
其他标签都是子级标签
2 URDF语法详解02_link:
link:
urdf 中的 link 标签用于描述机器人某个部件(也即刚体部分)的外观和物理属性,比如: 机器人底座、轮子、激光雷达、摄像头…每一个部件都对应一个 link, 在 link 标签内,可以设计该部件的形状、尺寸、颜色、惯性矩阵、碰撞参数等一系列属性
(1)属性
name ---> 为连杆命名
(2)子标签
visual ---> 描述外观(对应的数据是可视的)
geometry 设置连杆的形状
标签1: box(盒状)
属性:size=长(x) 宽(y) 高(z)
标签2: cylinder(圆柱)
属性:radius=半径 length=高度
标签3: sphere(球体)
属性:radius=半径
标签4: mesh(为连杆添加皮肤)
属性: filename=资源路径(格式:package://<packagename>/<path>/文件)
origin 设置偏移量与倾斜弧度
属性1: xyz=x偏移 y便宜 z偏移
属性2: rpy=x翻滚 y俯仰 z偏航 (单位是弧度)
metrial 设置材料属性(颜色)
属性: name
标签: color
属性: rgba=红绿蓝权重值与透明度 (每个权重值以及透明度取值[0,1])
collision ---> 连杆的碰撞属性
Inertial ---> 连杆的惯性矩阵
在此,只演示visual使用。
(3)案例及素材链接:
https://github.com/zx595306686/sim_demo.git
(3.1)拷贝素材
git clone https://github.com/zx595306686/sim_demo.git
将拷贝的两个以.stl结尾的文件拷贝到之前创建的mesh文件夹下:创建urdf、launch文件参考如下:
传送门
(3.2)编写urdf文件
<!-- <需求:设置不同形状的机器人部件> -->
<robot name="mycar">
<link name="base_link">
<!-- <可视化标签> -->
<visual>
<!-- <1.形状> -->
<geometry>
<!-- <1.立方体> -->
<!-- <box size="0.3 0.2 0.1" /> -->
<!-- <1.圆柱> -->
<!-- <cylinder radius="0.1" length="2" /> -->
<!-- <1.球体> -->
<!-- <sphere radius="1" /> -->
<!-- <1.皮肤> -->
<mesh filename="package://urdf01_rviz/meshes/autolabor_mini.stl" />
</geometry>
<!-- <2.偏移量与倾斜·弧度> -->
<!-- <
xyz设置机器人模型在x y z 上的偏移量
rpy设置倾斜弧度 x(翻滚) y(俯仰) z(偏航)
> -->
<origin xyz="0 0 0" rpy="1.57 0 0" />
<!-- <3.颜色> -->
<!-- <
rgba:
r=red
g=green
b=blue
a=透明度
> -->
<material name="car_color">
<color rgba="0.5 0.5 1 0.5" />
</material>
</visual>
</link>
</robot>
(3.3)编写launch文件
<launch>
<!-- 设置参数 -->
<param name="robot_description" textfile="$(find urdf01_rviz)/urdf/urdf/demo02_link.urdf" />
<!-- 启动 rviz -->
<node pkg="rviz" type="rviz" name="rviz" args="-d $(find urdf01_rviz)/config/show_mycar.rviz" />
</launch>
最后启动launch文件即可。