ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
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.