Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

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?

  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 miss something?

Thank you for your help in advance!

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?

  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 miss missing something?

Thank you for your help in advance!