You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在同一RViz窗口中显示两台机器人?

在单个RViz实例中显示多台机器人的解决方案

一、向RViz添加机器人的方法

1. 手动UI添加

  • 打开RViz,点击左侧面板的「Add」按钮
  • 在弹窗里选「RobotModel」,点击「OK」
  • 在新增组件的「Topic」栏,选择对应机器人的/robotX/robot_description主题,还可以把组件名称改成Robot1/Robot2方便区分
  • 重复步骤加第二台机器人即可

2. 配置文件复用

  • 手动加完所有机器人的RobotModel后,点击顶部「File」→「Save Config As」,存成.rviz配置文件
  • 下次启动RViz直接用命令加载:rviz -d /path/to/your_config.rviz
  • 适合机器人数量固定的场景

3. 批量/可变数量机器人的自动处理

如果机器人多或者数量不固定,手动加太麻烦,可以用这两种方式:

  • ROS节点动态添加:用RViz的Python API,写一个节点监听机器人启动状态,自动创建并配置RobotModel组件。核心是获取每个机器人的robot_description主题,动态生成RViz的Display配置
  • 参数化启动文件:在.launch启动文件里,用<group>标签配合$(arg robot_name)变量,批量生成RobotModel配置。比如给每个机器人单独分组,自动对应主题和前缀

二、RViz显示多台机器人的主题要求

对于带前缀的robot1和robot2,要确保主题不冲突,RViz才能正确识别,需要发布以下主题:

  • 机器人模型描述:各自发布/robot1/robot_description和/robot2/robot_description,主题内容是带对应前缀的URDF文件
  • 关节状态:发布/robot1/joint_states和/robot2/joint_states,包含对应机器人所有关节的位置、速度信息;在RViz的RobotModel组件里,要把「Joint State Topic」设为对应机器人的关节状态主题
  • TF变换:每个机器人要有独立的TF树,根节点比如设为robot1/base_link和robot2/base_link,所有连杆的TF帧名称必须带对应前缀,不能和另一台的重名。RViz会监听全局TF树,帧名唯一就能正确区分两个机器人

关键注意点:URDF里的所有连杆、关节名称必须带唯一前缀(比如robot1_),这样生成的TF帧、关节状态名称才不会冲突,RViz才能准确解析每个机器人的结构。

内容的提问来源于stack exchange,提问作者Steve Brown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 17:40:13