1.添加配置文件——controllers.yaml
关联了arm_controller控制器名称,follow_joint_trajectory命名空间,FollowJointTrajectory的action类型(规划轨迹是以action发布的),是否为默认控制器,与该规划组所包含的关节。
controller_list:
- name: arm_controller
action_ns: follow_joint_trajectory
type: FollowJointTrajectory
default: true
joints:
- joint1
- joint2
- joint3
- joint4
- joint5
- joint6
- name: gripper_controller
action_ns: gripper_action
type: GripperCommand
default: true
joints:
- finger_joint1
注意!这个是后加的!这个个控制器是对标ArbotiX的,在配置助手创建config文件时,并不知道ArbotiX这个控制器,用的是moveit中的虚拟控制器,其中虚拟控制器如下,注意区分!细节在书中P323.
controller_list:
- name: fake_arm_controller
type: $(arg fake_execution_type)
joints:
- joint1
- joint2
- joint3
- joint4
- joint5
- joint6
- name: fake_gripper_controller
type: $(arg fake_execution_type)
joints:
- finger_joint1
initial: # Define initial robot poses.
- group: arm
pose: home
2.修改启动文件的launch文件
因为默认的是加载ros_controllers.yaml——这个是moveit配置助手的默认生成的,而我要用的是关于ArbotiX的控制器,故需要进行修改,将ros_去掉。修改后如下。同时注意<arg name=" " default=" "> $(arg moveit_controller_manager)的方式。
<launch>
<!-- Define the controller manager plugin to use for trajectory execution -->
<param name="moveit_controller_manager" value="moveit_simple_controller_manager/MoveItSimpleControllerManager" />
<!-- loads controller list to the param server -->
<rosparam file="$(find marm_moveit_config)/config/controllers.yaml"/>
</launch>
3.关节空间规划
其launch文件
<launch>
<!-- 不使用仿真时间 -->
<param name="/use_sim_time" value="false" />
<!-- 启动 arbotix driver-->
<arg name="sim" default="true" />
<par