解决办法:

  1. 修改xx_moveit_config/launch/move_group.launch中的,如下图所示之处——将其改为定义的机器人的xacro文件的名称。我修改之后,如下所示:
    原因:MoveIt在启动时会寻找名为【{moveit_controller_manager}_moveit_controller_manager.launch.xml】的文件。当设置value="my_ur3"后,MoveIt会查找【my_ur3_moveit_controller_manager.launch.xml】。若不设置,则查找默认的【simple_moveit_controller_manager.launch.xml】,此处可见:
  2. 之后建立该文件【my_ur3_moveit_controller_manager.launch.xml】并定义好内容即可
    <launch>
      <!-- 设置控制器管理器 -->
      <param name="moveit_controller_manager" 
             value="moveit_simple_controller_manager/MoveItSimpleControllerManager" />
    
      <!-- 加载控制器参数 -->
      <rosparam file="$(find my_ur3_moveit_config)/config/controllers_gazebo.yaml"/>
    </launch>

 之后catkin_make并继续roslaunch即可……

总结:

  • 默认的"simple"控制器管理器主要用于仿真,通过指定自定义的控制器管理器配置,MoveIt可以正确找到并使用实际机器人的控制器。然后新的配置文件提供了实际控制器的详细信息,使MoveIt能够正确地发送运动命令
Logo

一站式 AI 云服务平台

更多推荐