ROS 2 URDF 导入与关节状态发布

ROS2 中加载URDF模型,订阅关节角度,发布各连杆的坐标变换(TF)

作用:根据机器人 URDF 模型和实时关节角度,计算并发布各连杆之间的坐标变换(TF),让其他节点知道机器人每个部件当前的位置和姿态

ros2 run:ROS2 中运行一个功能包里的可执行程序
robot_state_publisher:功能包名,用于发布机器人的关节状态和 TF 变换
robot_state_publisher:可执行文件名(与包名相同),负责读取 URDF 并计算机器人各连杆之间的坐标变换
guanheRobotMachine.urdf:传给节点的参数,即机器人描述文件(URDF 格式)

# 进入 URDF 目录,替换为自己路径
cd /root/ros2_ws/src/robotguanhe/urdf/

# 加载指定的机器人 URDF 模型文件
ros2 run robot_state_publisher robot_state_publisher guanheRobotMachine.urdf

image

启动图形界面工具,手动模拟和发布机器人的关节角度

作用:提供一个图形界面(滑条窗口),让用户手动调节机器人关节角度,并将这些角度值发布到 /joint_states 话题,供 robot_state_publisher 等节点使用;

ros2 run:运行 ROS2 功能包中的可执行程序
joint_state_publisher_gui:功能包名(提供图形界面版本的关节状态发布器)
joint_state_publisher_gui:可执行文件名(启动一个带滑条窗口的程序)

# 安装 ros-jazzy-joint-state-publisher-gui
sudo apt update
sudo apt install ros-jazzy-joint-state-publisher-gui

# 启动 ros-jazzy-joint-state-publisher-gui
ros2 run joint_state_publisher_gui joint_state_publisher_gui

image

启动三维可视化工具(ROSt Visualization)

rviz2 是一个 3D 可视化工具,能订阅 ROS2 中的各种话题(TF、点云、图像、地图、路径等),将机器人的物理形态、传感器数据、运动状态和规划结果以图形化的方式实时展示出来,帮助开发者调试和观察机器人行为;
注:先启动 robot_state_publisher 加载 URDF,再打开 rviz2 → 点击 Add 添加 RobotModel → 将 Fixed Frame 设为 base_link(根坐标系),即可看到机器人模型;

ros2 run rviz2 rviz2

# 添加 RobotModel 显示项
# 1、点击 rviz2 左侧面板底部的 Add 按钮(弹出添加显示项的窗口)=> 
# 2、选择 By display type 选项卡(按类型浏览)=> 
# 3、找到并选中 RobotModel(机器人模型显示插件),并点击 OK 确认

# 设置 Fixed Frame(固定坐标系)
# 1、左侧 Global Options 区域 => 
# 2、找到 Fixed Frame 参数 => 
# 3、改为机器人根坐标系名称(通常是 base_link 或 base_footprint,基于URDF文件)

image

posted @ 2026-04-15 12:13  笺上知微  阅读(46)  评论(0)    收藏  举报