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 ---> 连杆的惯性矩阵
在之前的基础上 添加urdf文件 demo01_link.urdf
核心代码只有一句,但注意层级关系
<!-- 需求:设置不同形状的机器人部件 -->
<robot name="mycar">
<link name="base_link">
<!-- link下子级标签有三个 可视化 连杆的碰撞属性 连杆的惯性矩阵-->
<!-- 可视化标签 可视化标签下还有三个子标签-->
<visual>
<!-- 1.形状 -->
<geometry>
<!-- 1.1立方体 -->
<box size="0.3 0.2 0.1">
<!-- 1.1圆柱 -->
<!-- 1.3 球体-->
<!-- 1.4 皮肤-->
</geometry>
<!-- 2.偏移量与倾斜弧度 -->
<!-- 3.颜色 -->
</link>
</robot>
urdf写完一个原型后,运行时需要集合launch文件
新建一个launch文件 demo02_link.launch
<launch>
<!-- 设置参数 -->
<param name="robot_description" textfile="$(find urdf01_rviz)/urdf/urdf/demo02_link.urdf"/>
<!-- 设置参数 -->
<node pkg="rviz" type="rviz" name="rviz" args="-d $(find urdf01_rviz)/config/show_mycar.rviz"/>
</launch>
编译并运行
vscode中新建终端
source ./devel/setup.bash
roslaunch urdf01_rviz demo01_helloworld.launch
更改demo01_link.urdf 文件 圆柱实现
<!-- 需求:设置不同形状的机器人部件 -->
<robot name="mycar">
<link name="base_link">
<!-- link下子级标签有三个 可视化 连杆的碰撞属性 连杆的惯性矩阵-->
<!-- 可视化标签 可视化标签下还有三个子标签-->
<visual>
<!-- 1.形状 -->
<geometry>
<!-- 1.1立方体 -->
<!-- <box size="0.3 0.2 0.1" /> -->
<!-- 1.2圆柱 -->
<cylinder radius="0.5" length="0.1" />
<!-- 1.3 球体-->
<!-- <sphere radius="0.3" /> -->
<!-- 1.4 皮肤-->
<!-- <mesh filename="package://urdf01_rviz/meshes/autolabor_mini.stl"/> -->
</geometry>
<!-- 2.偏移量与倾斜弧度 -->
<!-- 3.颜色 -->
</visual>
</link>
</robot>
更改demo01_link.urdf 文件 球体实现
<!-- 需求:设置不同形状的机器人部件 -->
<robot name="mycar">
<link name="base_link">
<!-- link下子级标签有三个 可视化 连杆的碰撞属性 连杆的惯性矩阵-->
<!-- 可视化标签 可视化标签下还有三个子标签-->
<visual>
<!-- 1.形状 -->
<geometry>
<!-- 1.1立方体 -->
<!-- <box size="0.3 0.2 0.1" /> -->
<!-- 1.2圆柱 -->
<!-- <cylinder radius="0.5" length="0.1" /> -->
<!-- 1.3 球体-->
<sphere radius="0.3" />
<!-- 1.4 皮肤-->
<!-- <mesh filename="package://urdf01_rviz/meshes/autolabor_mini.stl"/> -->
</geometry>
<!-- 2.偏移量与倾斜弧度 -->
<!-- 3.颜色 -->
</visual>
</link>
</robot>
皮肤实现
之前在此下载的
两个文件复制到demo05_ws下的meshes文件夹下
并调用
<!-- 需求:设置不同形状的机器人部件 -->
<robot name="mycar">
<link name="base_link">
<!-- link下子级标签有三个 可视化 连杆的碰撞属性 连杆的惯性矩阵-->
<!-- 可视化标签 可视化标签下还有三个子标签-->
<visual>
<!-- 1.形状 -->
<geometry>
<!-- 1.1立方体 -->
<!-- <box size="0.3 0.2 0.1" /> -->
<!-- 1.2圆柱 -->
<!-- <cylinder radius="0.5" length="0.1" /> -->
<!-- 1.3 球体-->
<!-- <sphere radius="0.3" /> -->
<!-- 1.4 皮肤-->
<mesh filename="package://urdf01_rviz/meshes/autolabor_mini.stl"/>
</geometry>
<!-- 2.偏移量与倾斜弧度 -->
<!-- 3.颜色 -->
</visual>
</link>
</robot>
-
origin 设置偏移量与倾斜弧度
-
属性1: xyz=x偏移 y便宜 z偏移
-
属性2: rpy=x翻滚 y俯仰 z偏航 (单位是弧度)
-
更改demo02_link.urdf
<!-- 需求:设置不同形状的机器人部件 -->
<robot name="mycar">
<link name="base_link">
<!-- link下子级标签有三个 可视化 连杆的碰撞属性 连杆的惯性矩阵-->
<!-- 可视化标签 可视化标签下还有三个子标签-->
<visual>
<!-- 1.形状 -->
<geometry>
<!-- 1.1立方体 -->
<!-- <box size="0.3 0.2 0.1" /> -->
<!-- 1.2圆柱 -->
<!-- <cylinder radius="0.5" length="0.1" /> -->
<!-- 1.3 球体-->
<!-- <sphere radius="0.3" /> -->
<!-- 1.4 皮肤-->
<mesh filename="package://urdf01_rviz/meshes/autolabor_mini.stl"/>
</geometry>
<!-- 2.偏移量与倾斜弧度 -->
<!-- xyz 设置机器人模型在x y z 上的偏移量
rpy 用于设置倾斜弧度 x(翻滚)y(俯仰) z(偏航)
-->
<origin xyz="3 0 0" rpy="0 0 0" />
<!-- 3.颜色 -->
</visual>
</link>
</robot>
-
metrial 设置材料属性(颜色)
-
属性: name
-
标签: color
- 属性: rgba=红绿蓝权重值与透明度 (每个权重值以及透明度取值[0,1])
-
<!-- 需求:设置不同形状的机器人部件 -->
<robot name="mycar">
<link name="base_link">
<!-- link下子级标签有三个 可视化 连杆的碰撞属性 连杆的惯性矩阵-->
<!-- 可视化标签 可视化标签下还有三个子标签-->
<visual>
<!-- 1.形状 -->
<geometry>
<!-- 1.1立方体 -->
<!-- <box size="0.3 0.2 0.1" /> -->
<!-- 1.2圆柱 -->
<!-- <cylinder radius="0.5" length="0.1" /> -->
<!-- 1.3 球体-->
<!-- <sphere radius="0.3" /> -->
<!-- 1.4 皮肤-->
<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 1.57" />
<!-- 3.颜色 -->
<!-- r=red g=green b=blue a=(透明度)alpha 四者取值[0,1]-->
<material name="car_color">
<color rgba="0.5 0.2 0.3 0.5" />
</material>
</visual>
</link>
</robot>