URDF:描述机器人结构与加载
URDF 描述机器人模型,把车体、左右轮子、激光雷达、相机与计算平台等部件组合起来。教程把建模过程概括为:把每个部件描述清楚,再通过关节连接。
URDF 中两类核心标签:link 描述刚体部分的外观与物理属性,包括尺寸、颜色、形状、质量、惯性矩阵与碰撞参数;joint 连接刚体并描述相对运动,包括关节类型、原点、父子关系与运动轴。
来自教程的真实结构(节选):
<link name="left_wheel_link">
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry><cylinder radius="0.0325" length="0.025"/></geometry>
</visual>
</link>
<joint name="left_wheel_joint" type="continuous">
<origin xyz="0 0.08 0.0325" rpy="1.57 0 0"/>
<parent link="base_link"/>
<child link="left_wheel_link"/>
<axis xyz="0 1 0"/>
</joint>
origin 给出子连杆相对父连杆的偏移与旋转;parent 与 child 定义连接方向;axis 是关节运动轴的单位向量;type="continuous" 表示可以连续旋转的关节。URDF 中的关节有六种运动类型,选错类型会让运动学结果与实际结构不符。
URDF 通过 robot_state_publisher 进入系统:
launch_ros.actions.Node(
package='robot_state_publisher',
executable='robot_state_publisher',
arguments=[os.path.join(
get_package_share_directory('wheeltec_robot_urdf'),
'urdf', 'mini_mec_robot.urdf')],
)
robot_state_publisher 读取 URDF,结合关节状态发布各连杆坐标系之间的变换。URDF 加载成功但模型不动时,先检查是否有 joint_states 发布方,再检查 rviz2 的 Fixed Frame 设置。