mees / pickAndPlace-PR2

Home Page:http://speechrobot.cs.uni-freiburg.de/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PR2 Robot Pick-and-Place

License: GPL v3

This repository enables to pick-and-place real-world tabletop objects by controlling a PR2 robot via ROS topics. Concretely, the current implementation was used for picking-and-placing tabletops objects from natural language. More information at the project page.

The node in this repository assumes that a segmented point cloud of the object to be picked and the object placing location are being published on their respective ROS topics. Grasping of objects is done by predicting grasp poses with GPD and closing the gripper gently by leveraging PR2's fingertip pressure sensors. Motion planning is handled by MoveIt.

Reference

If you find the code helpful please consider citing our work

@inproceedings{mees21iser,
  author = {Oier Mees and Wolfram Burgard},
  title = {Composing Pick-and-Place Tasks By Grounding Language},
  booktitle = {Proceedings of the International Symposium on Experimental Robotics (ISER)},
  year = 2021,
  address = {La Valletta, Malta}
}
@inproceedings{mees20icra_placements,
author = {Oier Mees and Alp Emek and Johan Vertens and Wolfram Burgard},
title = {Learning Object Placements For Relational Instructions by Hallucinating Scene Representations},
booktitle = {Proceedings of the IEEE International Conference on Robotics and Automation  (ICRA)},
year = 2020,
address = {Paris, France}
}

Usage

roslaunch pr2_moveit_config warehouse.launch moveit_warehouse_database_path:=~/warehouse_db
roslaunch pr2_moveit_config move_group.launch
roslaunch pr2_gripper_sensor_action pr2_gripper_sensor_actions.launch
rosrun table_detection table_detection_node _topic_in:=your_cloud
roslaunch pick_and_place pick_and_place.launch

Subscribed topics

The pick_and_place node subscribes to the following topics:

  • /refexp_object (sensor_msgs::PointCloud2) segmented point cloud of the object to be picked in the camera frame
  • /placing_pose_pub (geometry_msgs::PointStamped) location on which the picked object should be placed in the camera frame

Published topics

The pick_and_place node publishes to the following topics:

  • /placing_pose (geometry_msgs::PointStamped>) location on which the picked object will be placed on the global frame, for visualization purposes
  • /placing_pose_reached (std_msgs::Bool>) boolean indicating if the placing pose was reached
  • /picking_reached_pub (std_msgs::Bool>) boolean indicating if the grasping pose was reached

About

http://speechrobot.cs.uni-freiburg.de/

License:GNU General Public License v3.0


Languages

Language:C++ 87.4%Language:CMake 12.6%