1. URDF介绍
URDF ,统一机器人描述格式,是ROS中重要的机器人描述格式。URDF的主要语言是 XML,包含 link,joint,robot 等描述信息。
2.四轮车建模
car.png
2.1 汽车框架
<robot name="mbot"> ... </robot>
是整个机器人的框架,所有模块的信息都必须在此框架范围内, 及将 ...
替换成汽车主体。
<?xml version="1.0" ?>
<robot name="mbot">
<!-- mbot robot links and joints and more -->
</robot>
2.2 车身
车身当作所有组件的坐标系,中心点为原点。
<link name="base_link">
<visual>
<origin xyz=" 0 0 0" rpy="0 0 0" />
<geometry>
<box size="0.40 0.20 0.16"/>
</geometry>
<material name="yellow">
<color rgba="1 0.4 0 1"/>
</material>
</visual>
</link>
2.2 车轮
总共四个轮子,每个轮子都有一个link和joint属性,与车身连接类型为continuous。
<link name="left_back_wheel_link">
<visual>
<origin xyz="0 0 0" rpy="1.5707 0 0" />
<geometry>
<cylinder radius="0.06" length = "0.025"/>
</geometry>
<material name="blue">
<color rgba="0 0 1 0.9"/>
</material>
</visual>
</link>
<joint name="left_back_wheel_joint" type="continuous">
<origin xyz="-0.1 -0.1 -0.08" rpy="0 0 0"/>
<parent link="base_link"/>
<child link="left_back_wheel_link"/>
<axis xyz="0 1 0"/>
</joint>
2.3 传感器
大多数传感器与车身的连接类型为fixed,相机(camera) 固定在车身头部。
<link name="left_camera_link">
<visual>
<origin xyz=" 0 0 0 " rpy="0 0 0" />
<geometry>
<box size="0.03 0.04 0.04" />
</geometry>
<material name="black">
<color rgba="0 0 0 0.95"/>
</material>
</visual>
</link>
<joint name="left_camera_joint" type="fixed">
<origin xyz="0.17 -0.05 0.10" rpy="0 0 0"/>
<parent link="base_link"/>
<child link="left_camera_link"/>
</joint>
激光雷达(laser) 固定在车身中部
<link name="laser_link">
<visual>
<origin xyz=" 0 0 0 " rpy="0 0 0" />
<geometry>
<cylinder length="0.05" radius="0.05"/>
</geometry>
<material name="black"/>
</visual>
</link>
<joint name="laser_joint" type="fixed">
<origin xyz="0 0 0.105" rpy="0 0 0"/>
<parent link="base_link"/>
<child link="laser_link"/>
</joint>
3.模型整体结构分析
使用 urdf_to_graphiz 工具查看模型 xxx.urdf 的整体结构。
urdf_to_graphiz xxx.urdf
urdf.png