Only released in EOL distros:
Package Summary
turtlebot_arm_block_manipulation contains a demo allowing the TurtleBot arm to manipulate small blocks on a level surface using interactive markers.
- Maintainer status: developed
- Maintainer: Jorge Santos <jsantossimon AT gmail DOT com>
- Author: Michael Ferguson, Helen Oleynikova
- License: BSD
- Bug / feature tracker: https://github.com/turtlebot/turtlebot_arm/issues
- Source: git https://github.com/turtlebot/turtlebot_arm.git (branch: indigo-devel)
Package Summary
turtlebot_arm_block_manipulation contains a demo allowing the TurtleBot arm to manipulate small blocks on a level surface using interactive markers.
- Maintainer status: developed
- Maintainer: Jorge Santos <jsantossimon AT gmail DOT com>
- Author: Michael Ferguson, Helen Oleynikova
- License: BSD
- Bug / feature tracker: https://github.com/turtlebot/turtlebot_arm/issues
- Source: git https://github.com/turtlebot/turtlebot_arm.git (branch: kinetic-devel)
Contents
Documentation
This Tutorial will walk you through running this demo on your own TurtleBot. The tutorial is for the fuerte (pre-moveit) version of this package, so be careful and flexible when following it!. Trust this page (already updated) in case of contradiction.
Video
Requirements
This package requires almost all the others on turtlebot_arm stack. In particular, arm.launch from the turtlebot_arm_bringup package and planning_context.launch and move_group.launch from turtlebot_arm_moveit_config have to be running. See the block_manipulation_moveit.launch launch file for more details.
Additionally, it requires an external kinect to be running and calibrated to the robot. Refer to turtlebot_arm_kinect_calibration package to learn how to calibrate your camera.
Files
demo/block_manipulation_moveit.launch
Brings up everything necessary to operate the arm with MoveIt!.
demo/block_manipulation_demo.launch
- Brings up everything necessary to run the block manipulation demo.
launch/block_manipulation.launch
- Brings up the 3 action servers necessary to run the block manipulation demo.
Nodes
interactive_manipulation_action_server
Provides an action-based interactive marker server for prompting the user to move blocks around. Requires a goal specifying where the the blocks are, and publishes a result containing a start pose and end pose.Subscribed Topics
/turtlebot_blocks (geometry_msgs/PoseArray)- Topic to listen for blocks publications on. These topics are used in addition to the information contained in the goal.
Published Topics
/pick_and_place (geometry_msgs/PoseArray)- Topic to publish the resulting pick-and-place grasp on. These topics are used in addition to the information contained in the result.
Parameters
~bump_size (double, default: 0.005)- The amount (in meters) to bump the result by in the z dimension.
block_detection_action_server
Detects blocks of a certain size on a flat surface, given from an action goal.Subscribed Topics
/camera/depth_registered/points (sensor_msgs/PointCloud2)- Point clouds from which to detect blocks.
Published Topics
/turtlebot_blocks (geometry_msgs/PoseArray)- A pose array containing the poses of all blocks detected.
- A message sent for debugging, showing the filtered point cloud.
Required tf Transforms
pointcloud frame → arm_link (from goal)- Before the block detector performs any operation on the point cloud, it transforms it to the arm_link frame provided by the goal.
pick_and_place_action_server
Interfaces with MoveIt! for the TurtleBot arm to move an object from the start pose to the end pose.
Actions
BlockDetection.action
#goal definition string frame float32 table_height float32 block_size --- #result definition geometry_msgs/PoseArray blocks --- #feedback
InteractiveBlockManipulation.action
#goal definition string frame float32 block_size --- #result definition geometry_msgs/Pose pickup_pose geometry_msgs/Pose place_pose --- #feedback
PickAndPlace.action
#goal definition string frame float32 z_up float32 gripper_open float32 gripper_closed geometry_msgs/Pose pickup_pose geometry_msgs/Pose place_pose string topic --- #result definition --- #feedback