rviz2 仿真控制器与真实机器人切换

在 MoveIt Config 包中,切换 RViz 纯仿真真实机器人 / Gazebo 仿真 主要通过 控制器配置 YAML 文件启动参数 共同控制。核心配置文件位于 config/ 目录下moveit.github.io

一、核心控制器 YAML 文件

  • fake_controllers.yaml

    • 用途纯 RViz 仿真(无实体、无 Gazebo)

    • 机制 :使用 FakeControllerManager,轨迹仅在 RViz 中模拟执行moveit.github.io

    • 典型内容

      yaml

      复制代码
      controller_list:
        - name: fake_arm_controller
          type: FollowJointTrajectory
          joints:
            - joint1
            - joint2
            - ...
  • controllers.yaml (或 ros_controllers.yaml)

    • 用途真实机器人Gazebo 仿真

    • 机制 :使用 SimpleControllerManagerROSControlControllerManager,连接真实硬件或 Gazebo 的 ros_control 接口moveit.github.io

    • 典型内容

      yaml

      复制代码
      controller_list:
        - name: arm_controller
          action_ns: follow_joint_trajectory
          type: FollowJointTrajectory
          default: True
          joints:
            - joint1
            - joint2
            - ...

二、如何切换(通过 Launch 文件)

切换并非直接修改 YAML,而是在 启动命令Launch 文件 中选择加载哪个 YAML,并指定 ControllerManager

1. 启动 RViz 纯仿真(默认)

bash

运行

复制代码
roslaunch <robot>_moveit_config demo.launch
  • 内部默认:
    • moveit_controller_manager:=fake
    • 加载 fake_controllers.yaml
2. 启动真实机器人 / Gazebo

bash

运行

复制代码
roslaunch <robot>_moveit_config demo.launch moveit_controller_manager:=simple use_sim_time:=false
  • 关键参数:
    • moveit_controller_manager:=simple:加载真实控制器
    • use_sim_time:=false:使用系统真实时间
    • 内部自动加载 controllers.yaml

三、Launch 文件内部原理(关键片段)

move_group.launchtrajectory_execution.launch 中:

xml

复制代码
<!-- 选择控制器管理器 -->
<arg name="moveit_controller_manager" default="fake" />

<!-- 加载对应 YAML -->
<rosparam file="$(find myrobot_moveit_config)/config/fake_controllers.yaml" if="$(eval moveit_controller_manager=='fake')" />
<rosparam file="$(find myrobot_moveit_config)/config/controllers.yaml" unless="$(eval moveit_controller_manager=='fake')" />

四、总结

  • RViz 仿真 :使用 fake_controllers.yaml + moveit_controller_manager:=fake
  • 真实机器人 / Gazebo :使用 controllers.yaml + moveit_controller_manager:=simple
相关推荐
十三画者6 分钟前
【文献分享】SIMBA:单细胞嵌入与特征共学习
人工智能·信息可视化·数据挖掘·数据分析·数据可视化
张小殊.12 分钟前
LoongForge TAOT 训练方案,解决MoE EP不均衡问题
人工智能·python·深度学习·机器学习·ai
eBest数字化转型方案13 分钟前
从工程视角拆解冰柜资产管理:拍照识别 pipeline、纯净度算法与 IoT 选型踩坑
人工智能·物联网·算法
Interview Aid11214 分钟前
Roblox OA 面经|小游戏+编程双修,Coding 两题满分通过
算法
月诸清酒15 分钟前
我同时在用的 AI Coding Agent 和模型评测,cc/gpt/antigravity(2026.08)
人工智能·gpt·chatgpt
东方小月18 分钟前
从零开发一个 Coding Agent(七):实现纯文本 Agent Loop
前端·人工智能
熊猫钓鱼>_>21 分钟前
AI 3D 虚拟盲盒工坊:用腾讯云混元3D + TTS Skills 打造会说话的三维收藏品
人工智能·大模型·llm·agent·tts·混元3d·多skill协同
恒拓高科WorkPlus21 分钟前
从“可选项”到“必选项”——私有化部署即时通讯如何重塑企业协作新底座
大数据·网络·人工智能
Hello_Damon_Nikola24 分钟前
扰流筋从原理到应用
人工智能·单片机·嵌入式硬件
某林21225 分钟前
从“仿真能跑”到“真机能走”:一套轮腿机械狗强化学习系统的工程化实践
人工智能·stm32·嵌入式硬件·架构·机器人·机械狗