ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

If you want to be able to move the end effector in real time with something like a joystick or gamepad, then your best bet would be to use moveit_servo, just like gvdhoom suggested. It does take some setting up and I'll admit that the documentation is lacking in explanation on how to set it up, but I did it recently for a 4DoF simulated arm which you can find here in the branch named "experimentations". You can try it by cloning the repo into your catkin workspace and following the instructions in the readme. And yes, it does work in Melodic which is the version I am using and all the required moveit pacakges can be installed with apt.

"open_manipulator_moveit_config" is where all of the moveit files are located. The ones of interest for setting up moveit_servo are:

In open_manipulator_simulated_config.yaml you'll need to change move_group_name, planning_frame, robot_link_command_frame and ee_frame_name to your robot's values. You can also change command_out_type to the controller type of your robot. You can also look at the other parameters but I think these should be enough to get started.

In ros_controllers.yaml you need to create a position_controllers/JointGroupPositionController controller just like I did but with the right joints

ros_controllers.launch is where the controllers are spawned or loaded

moveit_servo.launch is where the servo server is launched, which is what will enable you to send twist commands to the robot.

I'm definitely not an expert in MoveIt so it's possible that I am not using the best practices, but it does work (expect for moving the arm in the Y axis but that's another problem). Hope this helps.