如何将ROS 2 URDF模型导入并发布关节状态信息?

摘要:ROS2 中加载URDF模型,订阅关节角度,发布各连杆的坐标变换(TF) 作用:根据机器人 URDF 模型和实时关节角度,计算并发布各连杆之间的坐标变换(TF),让其他节点知道机器人每个部件当前的位置和姿态 ros2 run:ROS2 中运
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 启动图形界面工具,手动模拟和发布机器人的关节角度 作用:提供一个图形界面(滑条窗口),让用户手动调节机器人关节角度,并将这些角度值发布到 /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 启动三维可视化工具(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文件)