Skip to main content

16. 机器人模型 — URDF 与 robot_state_publisher

概述

本示例通过 demo_xmake_robot_description 包,演示如何管理 URDF 机器人模型并通过 launch 文件加载。

ROS 2 知识点:URDF 格式、robot_state_publisher、joint_state_publisher

xmake 知识点urdf/ 约定目录自动安装、phony target 纯数据包

ROS 2 知识

URDF

URDF(Unified Robot Description Format)描述机器人的物理结构:

<robot name="simple_robot">
<link name="base_link">
<visual>
<geometry><box size="0.5 0.3 0.1"/></geometry>
</visual>
</link>
<joint name="base_to_sensor" type="fixed">
<parent link="base_link"/>
<child link="sensor_link"/>
<origin xyz="0.2 0.0 0.1"/>
</joint>
</robot>

robot_state_publisher

将 URDF 和关节状态发布为 TF 变换,使 RViz 等工具可以可视化机器人模型。

示例代码

xmake.lua 构建配置

-- urdf/ 和 launch/ 目录自动安装
target("demo_xmake_robot_description_marker")
set_kind("phony")

这是一个纯数据包 — 没有 C++ 代码,只包含 URDF 和 launch 文件。phony target 确保 ament_xmake 规则被触发。

构建与运行

colcon build --packages-select demo_xmake_robot_description
source install/setup.bash

ros2 launch demo_xmake_robot_description display.launch.py

验证

# 验证 URDF 已安装
ls install/demo_xmake_robot_description/share/demo_xmake_robot_description/urdf/

# 查看 robot_description 参数
ros2 param get /robot_state_publisher robot_description

xmake 知识点小结

特性说明
urdf/ 自动安装约定目录,无需显式声明
phony target纯数据包的最小 target

内容扩展

以下资源可帮助你深入了解本章涉及的技术领域。

开源项目

  • xacro — URDF 宏语言(减少重复)
  • urdf — URDF 解析库
  • SDF (Gazebo) — 仿真描述格式(URDF 超集)

工具

文档与教程

参考