用moveit配置好后需要修改simple_moveit_controllers.yaml
这个文件,把控制器的名称换成自己定义好的,例如我这里定义好了控制器robot_joint_controller
joint_state_controller:
type: joint_state_controller/JointStateController
publish_rate: 50
robot_joint_controller:
type: "position_controllers/JointTrajectoryController"
joints:
- j_1
- j_2
- j_3
- j_4
- j_5
- j_6
- j_7
之后我会在launch文件中加载这个控制器
<node name="ros_control_spawner" pkg="controller_manager" type="spawner" respawn="false"
output="screen" args="joint_state_controller robot_joint_controller" />
但是自动生成moveit配置文件里面的simple_moveit_controllers.yaml
里面的控制器是这样的
controller_list:
- name: right_arm_controller # 不是我定义的 robot_joint_controller
action_ns: follow_joint_trajectory
type: FollowJointTrajectory
default: True
joints:
- j_1
- j_2
- j_3
- j_4
- j_5
- j_6
- j_7
所以要把这里面的right_arm_controller
改成我定义的robot_joint_controller
,这样就可以了
controller_list:
- name: robot_joint_controller # fixed
action_ns: follow_joint_trajectory
type: FollowJointTrajectory
default: True
joints:
- j_1
- j_2
- j_3
- j_4
- j_5
- j_6
- j_7
😁