Can anyone give me a example on how to use moveit_ros_control_interface?
Hello,
I'm trying to learn Moveit, but still haven't figure out what is the best way to execute a planned trajectories for a robot arm manipulator, even though I have spent quite some time searching the internet. Can anyone give me a brief summary or an example of what is the best way of doing it?
As I know the procedure may including the followings
First need to plan the trajectory, for example
moveit::planning_interface::MoveGroupInterface move_group("manipulator");
move_group.setPoseTarget(some_target_pose);
moveit::planning_interface::MoveGroupInterface::Plan my_plan;
bool success = move_group.plan(my_plan);
So what should I do afterwards?
- Get out the joint trajectory and send to a joint trajectory (action) server (for example the one in ur_ros_wrapper)?
Or use moveit_ros_control_interface. But how? just do some thing like the following and then
move_group.move();
or
move_group.execute();
In ROBOT_moveit_config/launch/ROBOT_moveit_controller_manager.launch.xml, add
<arg name="moveit_controller_manager" default="moveit_ros_control_interface::MoveItControllerManager" />
In ROBOT_moveit_config/config/ROBOT_controllers.yaml, add
controller_manager_ns: ROBOT
controller_list:
# Arm controller
- name: /ROBOT/position_trajectory_controller
action_ns: follow_joint_trajectory
type: FollowJointTrajectory
default: true
joints:
- joint_1
...
As I see there is no connection between move_group and hardware interface and control interface. Seems missing something?
Thank you for your help in advance!