Package Summary

A set of interactive markers for various methods of remote teleoperation manipulation of 6-DOF robot end-effectors

About

The remote_manipulation_markers package contains interactive marker servers for a set of remote manipulation interaction approaches. The approaches include Free Positioning, Constrained Positioning, and Point-and-Click. These interactive marker servers are intended for use with rviz or with Robot Web Tools interfaces.

Remote Manipulation Interaction Approaches

This package includes three approaches: Free Positioning (FP), Constrained Positioning (CP), and Point-and-Click (P&C). The three approaches are shown below, with interaction points for setting initial poses shown in yellow, and interaction points for adjusting poses shown in blue.

interaction.png

Free positioning uses a ring-and-arrow marker which can be clicked and dragged to individually adjust translation along and rotation about each Cartesian axis. Constrained positioning uses a sphere marker to first set a grasp point, followed by setting an approach angle by clicking on the surface of the sphere. The approach angle is constrained to pass through the grasp point. Point-and-click makes use of autonomous grasp calculation, and involves the user selecting a previously calculated grasp for execution from a list of potential grasps. Further details on these can be found in A Comparison of Remote Robot Teleoperation Interfaces for General Object Manipulation, published in HRI 2017. The approaches are designed for both 2D and 3D visualization modes. For full details and a comparison of the efficiency and effectiveness of each approach in both 2D and 3D visualization modes, see our IJRR 2019 article Leveraging depth data in remote robot teleoperation interfaces for general object manipulation. Videos of the approaches in action can be found here and here.

Messages and Services

Newly proposed, mistyped, or obsolete package. Could not find package "remote_manipulation_markers" in rosdoc: /home/rosbot/docs/api/remote_manipulation_markers/manifest.yaml

Nodes

free_positioning

'free_positioning' contains the interactive marker server for the Free Positioning interaction approach, i.e. a 6-DOF marker that can be moved in free space with no constraints.

Action Goal

execute_grasp/goal (remote_manipulation_markers/SpecifiedGraspGoal)
  • Execute a grasp action at the pose specified by the marker free positioning marker.

Action Result

execute_grasp/result (remote_manipulation_markers/SpecifiedGraspResult)
  • Grasp execution success.

Action Feedback

execute_grasp/feedback (remote_manipulation_markers/SpecifiedGraspFeedback)
  • String indicating the current state of grasp execution.

Actions Called

grasp (rail_manipulation_msgs/PickupAction)
  • Action client for grasp execution. The topic can be changed by setting the grasp_topic parameter.

Published Topics

gripper_marker_pose (geometry_msgs/PoseStamped)
  • Publishes the current pose of the gripper marker contained in the free positioning marker.

Services

reset_marker_pose (std_srvs/Empty)
  • Set the marker pose to the current position of the end-effector.

Parameters

base_link (string, default: "base_link")
  • Name of the base link in the tf tree used for creating the free positioning marker.
eef_link (string, default: "eef_link")
  • Name of the end-effector link in the tf tree used for creating the free positioning marker.
grasp_topic (string, default: "grasp")
  • Sets the topic name for connecting to the grasp action server.

constrained_positioning

'constrained_positioning' contains the interactive marker server for the Constrained Positioning interaction approach, i.e. a set of markers for specifying a grasp point and an approach angle.

Action Goal

execute_grasp/goal (remote_manipulation_markers/SpecifiedGraspGoal)
  • Execute a grasp action at the pose specified by the marker free positioning marker.

Action Result

execute_grasp/result (remote_manipulation_markers/SpecifiedGraspResult)
  • Grasp execution success.

Action Feedback

execute_grasp/feedback (remote_manipulation_markers/SpecifiedGraspFeedback)
  • String indicating the current state of grasp execution.

Actions Called

grasp (rail_manipulation_msgs/PickupAction)
  • Action client for grasp execution. The topic can be changed by setting the grasp_topic parameter.

Published Topics

gripper_marker_pose (geometry_msgs/PoseStamped)
  • Publishes the current pose of the gripper marker contained in the free positioning marker.

Services

clear_gripper_marker (std_srvs/Empty)
  • Remove the gripper marker.
clear_full_marker (std_srvs/Empty)
  • Remove the gripper and the sphere markers.
create_sphere (remote_manipulation_markers/CreateSphere)
  • Create a sphere marker at the given point.

Parameters

grasp_topic (string, default: "grasp")
  • Sets the topic name for connecting to the grasp action server.

point_and_click

'point_and_click' contains the interactive marker server for the Point-and-Click interaction approach, i.e. functionality for displaying and cycling through a set of calculated end-effector poses.

Action Goal

execute_grasp/goal (remote_manipulation_markers/SpecifiedGraspGoal)
  • Execute a grasp action at the pose specified by the marker free positioning marker.

Action Result

execute_grasp/result (remote_manipulation_markers/SpecifiedGraspResult)
  • Grasp execution success.

Action Feedback

execute_grasp/feedback (remote_manipulation_markers/SpecifiedGraspFeedback)
  • String indicating the current state of grasp execution.

Actions Called

grasp (rail_manipulation_msgs/PickupAction)
  • Action client for grasp execution. The topic can be changed by setting the grasp_topic parameter.

Subscribed Topics

/grasp_sampler/sampled_grasps (geometry_msgs/PoseArray)
  • Set of calculated poses to be displayed. The topic can be changed by setting the calculatedPosesTopic parameter.

Services

cycle_grasps (remote_manipulation_markers/CycleGrasps)
  • Cycle the currently displayed end-effector pose forward or backward in the calculated poses list.

Parameters

grasp_topic (string, default: "grasp")
  • Sets the topic name for connecting to the grasp action server.
calculated_poses_topic (string, default: "grasp_sampler/sampled_grasps")
  • Sets the topic name for subscribing to the calculated poses list.

gripper_marker_vis

A marker server that displays a non-interactable gripper marker at the gripper location specified by one of the other interaction approaches. This can be used with the Free Positioning and Constrained Positioning approaches, and will link the gripper pose to that of the free positioning or constrained positioning markers.

Subscribed Topics

/free_positioning/gripper_marker_pose (geometry_msgs/PoseStamped)
  • Gets the current pose of the free or constrained positioning marker pose. The namespace for this topic can be set with the marker_node_name parameter.

Parameters

marker_node_name (string, default: "free_positioning")
  • Sets the namespace of the topic for connecting to another interaction marker.

Installation

To install the remote_manipulation_markers package, you can install from source with the following commands:

  •    1 cd /(your catkin workspace)/src
       2 git clone https://github.com/GT-RAIL/remote_manipulation_markers.git
       3 cd ..
       4 catkin_make
       5 catkin_make install
    

Startup

Each of the methods can be launched with its own launch file, as follows:

  • roslaunch remote_manipulation_markers free_positioning.launch
  • roslaunch remote_manipulation_markers constrained_positioning.launch
  • roslaunch remote_manipulation_markers point_and_click.launch

Note that free_positioning.launch and constrained_positioning.launch include a boolean parameter run_separate_vis. Setting run_seperate_vis to true will launch a gripper_marker_vis node that corresponds to the free or constrained positioning node.

Citation

If you use this package in your work, please cite our IJRR article:

David Kent, Carl Saldanha, and Sonia Chernova. Leveraging Depth Data in Remote Robot Teleoperation Interfaces for General Object Manipulation. The International Journal of Robotics Research, 2019.

Wiki: remote_manipulation_markers (last edited 2019-12-05 18:57:57 by davidkent)