Only released in EOL distros:
Package Summary
turtlebot_block_manipulation contains a demo allowing the TurtleBot arm to manipulate small blocks on a level surface using interactive markers.
- Author: Helen Oleynikova
- License: BSD
- Source: hg https://kforge.ros.org/turtlebot/turtlebot_arm (branch: default)
Package Summary
turtlebot_block_manipulation contains a demo allowing the TurtleBot arm to manipulate small blocks on a level surface using interactive markers.
- Author: Helen Oleynikova
- License: BSD
- Source: hg https://kforge.ros.org/turtlebot/turtlebot_arm (branch: default)
Package Summary
turtlebot_block_manipulation contains a demo allowing the TurtleBot arm to manipulate small blocks on a level surface using interactive markers.
- Maintainer: Michael Ferguson <mike AT vanadiumlabs DOT com>
- Author: Michael Ferguson, Helen Oleynikova
- License: BSD
- Source: git https://github.com/turtlebot/turtlebot_arm.git (branch: groovy-devel)
Contents
Documentation
This Tutorial will walk you through running this demo on your own TurtleBot.
Video
Requirements
arm.launch and simple_arm_server.launch from the turtlebot_arm_bringup package have to be running. Additionally, it requires an external kinect to be running and calibrated to the robot.
Files
demo/demo_actions.launch
- Brings up everything necessary to run the block manipulation demo.
launch/block_manipulation_old_kinect.launch
- Brings up the 3 action servers necessary to run the block manipulation demo with diamondback-style OpennNI drivers.
launch/block_manipulation.launch
- Brings up the 3 action servers necessary to run the block manipulation demo with electric-style OpennNI drivers.
demo/calibrate.launch
- Brings up the calibration step necessary for 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 the simple_arm_server 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