MoveIt with rrbot
Hello,
Has anyone implemented MoveIt with rrbot? Would you mind sharing your code? [Rrbot is used to introduce ROS controls in gazebosim tutorials: http://gazebosim.org/tutorials?tut=ros_urdf&cat=connect_ros . ]
My goal is to learn how to set-up MoveIt with a very simple robot so its joints could be moved in a simulator. I have configured MoveIt setup assistant and I can plan paths towards the goal position. However, I am struggling with plan execution.
I am raising this questions because I could not find any tutorials for this and I believe there are a lot of students who would benefit from step-by-step explanation about full MoveIt set-up.
Thank you in advance.
John
Asked by mg001 on 2015-08-06 12:57:02 UTC
Answers
I think the key problem is that the example of rrbot uses a hardware interface of joint effort. If you want to implement MoveIt to it, you need to build a joint trajectory controller.
- Add a trajectory controller to your robot:
rrbot_control/config/rrbot_control.yaml
arm_controller:
type: effort_controllers/JointTrajectoryController
joints:
- joint1
- joint2
constraints:
goal_time: 0.0
stopped_velocity_tolerance: 0.01
joint1: {trajectory: 0.01, goal: 0.01}
joint2: {trajectory: 0.01, goal: 0.01}
gains:
joint1: {p: 100.0, d: 75.0, i: 0.0, i_clamp: 0.0}
joint2: {p: 100.0, d: 25.0, i: 0.0, i_clamp: 0.0}
state_publish_rate: 100
action_monitor_rate: 100
stop_trajectory_duration: 0.0
notice that you should maunally setup these parameters to have a good performance, especially pid.
Remap the controller topic to MoveIt topic
rrbot_gazebo/launch/rrbot_world.launch
If you just want to learn how to set-up MoveIt with a simple robot, I suggest you change the hardware interface to joint position interface. It's at the bottom of the description of rrbot. Tag hardwareInterface of joint and actuator both should be PositionJointInterface. And then in the joint trajectory controller, you don't have to tune pid any more.
Hope this would help.
Asked by mizu_lily on 2016-06-16 22:01:03 UTC
Comments