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

张开发
2026/4/11 22:09:55 15 分钟阅读

分享文章

rviz2 仿真控制器与真实机器人切换
在 MoveIt Config 包中切换RViz 纯仿真与真实机器人 / Gazebo 仿真主要通过控制器配置 YAML 文件和启动参数共同控制。核心配置文件位于config/目录下moveit.github.io。一、核心控制器 YAML 文件fake_controllers.yaml用途纯 RViz 仿真无实体、无 Gazebo机制使用FakeControllerManager轨迹仅在 RViz 中模拟执行moveit.github.io。典型内容yamlcontroller_list: - name: fake_arm_controller type: FollowJointTrajectory joints: - joint1 - joint2 - ...controllers.yaml(或ros_controllers.yaml)用途真实机器人或Gazebo 仿真机制使用SimpleControllerManager或ROSControlControllerManager连接真实硬件或 Gazebo 的ros_control接口moveit.github.io。典型内容yamlcontroller_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.yaml2. 启动真实机器人 / Gazebobash运行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.launch或trajectory_execution.launch中xml!-- 选择控制器管理器 -- arg namemoveit_controller_manager defaultfake / !-- 加载对应 YAML -- rosparam file$(find myrobot_moveit_config)/config/fake_controllers.yaml if$(eval moveit_controller_managerfake) / rosparam file$(find myrobot_moveit_config)/config/controllers.yaml unless$(eval moveit_controller_managerfake) /四、总结RViz 仿真使用fake_controllers.yamlmoveit_controller_manager:fake真实机器人 / Gazebo使用controllers.yamlmoveit_controller_manager:simple

更多文章