Hi all,
I am trying to add a **barrett hand** to an **abb IRB 120** arm in a **gazebo** simulation and to run the whole thing using **moveit**.
I have created a file *abb-barrett.xacro* that combines the description of both robots (find files at the end).
I am loading the robot into gazebo as follow:
abb_barrett.launch
abb_barrett_control.launch
abb_barrett_controller.yaml
abb_barrett_controller:
type: position_controllers/JointTrajectoryController
joints:
- joint_1
- joint_2
- joint_3
- joint_4
- joint_5
- joint_6
constraints:
goal_time: 0.6
stopped_velocity_tolerance: 0.05
joint_1: {trajectory: 0.1, goal: 0.1}
joint_2: {trajectory: 0.1, goal: 0.1}
joint_3: {trajectory: 0.1, goal: 0.1}
joint_4: {trajectory: 0.1, goal: 0.1}
joint_5: {trajectory: 0.1, goal: 0.1}
joint_6: {trajectory: 0.1, goal: 0.1}
stop_trajectory_duration: 0.5
state_publish_rate: 25
action_monitor_rate: 10
barrett_hand_trajectory_controller:
type: position_controllers/JointTrajectoryController
joints:
- finger_1_med_joint
- finger_2_med_joint
- finger_3_med_joint
- finger_1_prox_joint
- finger_2_prox_joint
state_publish_rate: 100.0
action_monitor_rate: 50.0
constraints:
goal_time: 100.0 # Override default
finger_1_med_joint:
trajectory: 0.01
finger_2_med_joint:
trajectory: 0.01
finger_3_med_joint:
trajectory: 0.01
finger_1_prox_joint:
trajectory: 0.01
finger_2_prox_joint:
trajectory: 0.01
finger_1_joint1_position_controller:
type: position_controllers/JointPositionController
joint: finger_1_med_joint
pid: {p: 1.0, i: 0.0, d: 0.0}
finger_2_joint1_position_controller:
type: position_controllers/JointPositionController
joint: finger_2_med_joint
pid: {p: 1.0, i: 0.0, d: 0.0}
finger_3_joint1_position_controller:
type: position_controllers/JointPositionController
joint: finger_3_med_joint
pid: {p: 1.0, i: 0.0, d: 0.0}
finger_1_joint2_position_controller:
type: position_controllers/JointPositionController
joint: finger_1_prox_joint
pid: {p: 1.0, i: 0.0, d: 0.0}
finger_2_joint2_position_controller:
type: position_controllers/JointPositionController
joint: finger_2_prox_joint
pid: {p: 1.0, i: 0.0, d: 0.0}
Then I am lauching the moveit side of things as follow:
with
abb_barrett_controller_joint_names.yaml"
controller_joint_names: ['joint_1', 'joint_2', 'joint_3', 'joint_4', 'joint_5', 'joint_6' ,'finger_1_med_joint','finger_1_prox_joint','finger_2_med_joint','finger_2_prox_joint','finger_3_med_joint']
and
controllers.yaml:
controller_list:
- name: abb_barrett_controller
action_ns: follow_joint_trajectory
type: FollowJointTrajectory
default: true
joints:
- joint_1
- joint_2
- joint_3
- joint_4
- joint_5
- joint_6
- name: finger_1_joint1_position_controller
action_ns: follow_joint_trajectory
type: FollowJointTrajectory
default: true
joints:
- finger_1_med_joint
- name: finger_1_joint2_position_controller
action_ns: follow_joint_trajectory
type: FollowJointTrajectory
default: true
joints:
- finger_1_prox_joint
- name: finger_2_joint1_position_controller
action_ns: follow_joint_trajectory
type: FollowJointTrajectory
default: true
joints:
- finger_2_med_joint
- name: finger_2_joint2_position_controller
action_ns: follow_joint_trajectory
type: FollowJointTrajectory
default: true
joints:
- finger_2_prox_joint
- name: finger_3_joint1_position_controller
action_ns: follow_joint_trajectory
type: FollowJointTrajectory
default: true
joints:
- finger_3_med_joint
Everything seems find and I am able to move the arm it self using Rviz. However when trying to control the group corresponding to the hand It get the following error:
[ERROR] [1510133470.606385057, 43.138000000]: Unable to identify any set of controllers that can actuate the specified joints: [ finger_1_med_joint finger_1_prox_joint finger_2_med_joint finger_2_prox_joint finger_3_med_joint ]
[ERROR] [1510133470.606397269, 43.138000000]: Known controllers and their joints:
controller '' controls joints:
joint_1
joint_2
joint_3
joint_4
joint_5
joint_6
[ERROR] [1510133470.606407504, 43.138000000]: Apparently trajectory initialization failed
The controller seem however to be loaded
rosservice call /controller_manager/list_controllers
controller:
-
name: joint_state_controller
state: running
type: joint_state_controller/JointStateController
hardware_interface: hardware_interface::JointStateInterface
resources: []
-
name: abb_barrett_controller
state: running
type: position_controllers/JointTrajectoryController
hardware_interface: hardware_interface::PositionJointInterface
resources: ['joint_1', 'joint_2', 'joint_3', 'joint_4', 'joint_5', 'joint_6']
-
name: barrett_hand_trajectory_controller
state: running
type: position_controllers/JointTrajectoryController
hardware_interface: hardware_interface::PositionJointInterface
resources: ['finger_1_med_joint', 'finger_1_prox_joint', 'finger_2_med_joint', 'finger_2_prox_joint', 'finger_3_med_joint']
I have tried for a while to solve this but I cannot figure how. Does anybody have any suggestion?
Thank you ,
Thibault.
************************************************************END**********************************************************************
abb_barrett_macro.xacro
transmission_interface/SimpleTransmission PositionJointInterface 1 transmission_interface/SimpleTransmission PositionJointInterface 1 transmission_interface/SimpleTransmission PositionJointInterface 1 transmission_interface/SimpleTransmission PositionJointInterface 1 transmission_interface/SimpleTransmission PositionJointInterface 1 transmission_interface/SimpleTransmission PositionJointInterface 1 Gazebo/Orange true Gazebo/Orange true Gazebo/Orange true Gazebo/Orange true Gazebo/Orange true Gazebo/Orange true Gazebo/Black true / gazebo_ros_control/DefaultRobotHWSim
barrett.xacro
transmission_interface/SimpleTransmission PositionJointInterface PositionJointInterface 1 transmission_interface/SimpleTransmission PositionJointInterface PositionJointInterface 1 transmission_interface/SimpleTransmission PositionJointInterface PositionJointInterface 1 transmission_interface/SimpleTransmission PositionJointInterface PositionJointInterface 10 transmission_interface/SimpleTransmission PositionJointInterface PositionJointInterface 1 transmission_interface/SimpleTransmission PositionJointInterface PositionJointInterface 1 transmission_interface/SimpleTransmission PositionJointInterface PositionJointInterface 1 transmission_interface/SimpleTransmission PositionJointInterface PositionJointInterface 1 Gazebo/Orange true Gazebo/Orange true true Gazebo/Black true Gazebo/Orange true Gazebo/Orange true Gazebo/Black true Gazebo/Orange true Gazebo/Black true Gazebo/Orange true 100.0 barrett_base_link barrett_palm_pose_ground_truth 0 0 0 0 0 0 0.0 world 20 40 2 finger_1_prox_link finger_2_prox_link barrett_base_link finger_1_med_joint finger_1_dist_joint 1.0 finger_2_med_joint finger_2_dist_joint 1.0 finger_3_med_joint finger_3_dist_joint 1.0 / true 100.0
abb_barrett.xacro
↧