Ask Your Question
1

Can anyone give me a example on how to use moveit_ros_control_interface?

asked 2017-10-05 04:34:21 -0500

Fulin gravatar image

updated 2017-10-05 06:02:00 -0500

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?

  1. Get out the joint trajectory and send to a joint trajectory (action) server (for example the one in ur_ros_wrapper)?
  2. 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!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2018-03-04 17:30:10 -0500

The connection between moveit (move group) and your physical or simulated arm is via the JointTrajectoryController (check wiki here). For real robot, your arm driver should provide with such interface which is based on actionlib.

After you have solved the above mentioned, you can find an example of how to move the arm using python here

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2017-10-05 04:34:21 -0500

Seen: 304 times

Last updated: Mar 04 '18