Repository Summary

Description
Checkout URI https://github.com/ocrtoc/ocrtoc_software_package_legacy.git
VCS Type git
VCS Version master
Last Updated 2021-05-13
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

Open Cloud Robot Table Organization Challenge (OCRTOC)

This is the OCRTOC software package. For more information on OCRTOC please visit the homepage: www.ocrtoc.org

To take part in OCRTOC, you need to develop your own solution using this software package. After uploading your solution to the competition platform, the performance of your solution will be evaluated.

For the simulation stage, we support two simulators: Gazebo and Sapien. You can choose either of them to test your solution on your local machine. On the competition platform we use both simulators to evaluate your solution. As long as your solution works fine with either of the two simulators, it is good enough for the qualification of the real robot stage.

For the real robot stage, hardware drivers will be provided in this software package (around the end of August). Your solution will be tested on real robot hardware. The software interfaces for sensor readings and robot control are the same for both simulation and the real robot hardware. So you will not encounter interface issues when transferring your solution from simulation to the real robot.

The docker image

In order for your solution to be executable both on your local machine and our competition platform (with cloud computing), we provide you a docker image with a lot of pre-installed software. You need to develop and test your solution within this docker image.

Operation system

We highly recommend you to use Ubuntu 18.04 as your operation system, because the provided software package and docker image are guaranteed to work on this OS.

Install dependencies

  1. Install docker engine on Ubuntu. https://docs.docker.com/engine/install/ubuntu/
  2. Install Nvidia container runtime https://www.celantur.com/blog/run-cuda-in-docker-on-linux/

Get the docker image

The docker image is not part of the OCRTOC software package and needs be downloaded separately. You can use either of the following addresses to download the docker image:

# Mirror address of China (ShangHai)
sudo docker pull registry.cn-shanghai.aliyuncs.com/tcc-public/ocrtoc:release1.3
# Mirror address of the United States (Silicon Valley)
sudo docker pull registry.us-west-1.aliyuncs.com/tcc-public/ocrtoc:release1.3

The content of the docker image is as follows:

  • Operation System: Ubuntu 18.04
  • ROS melodic-desktop-full
  • CUDA 10.2
  • Gazebo 9.14.0
  • Sapien 0.6
  • A lot of simulated scenes for testing purposes, available at /root/ocrtoc_materials/scenes
  • Object mesh models with texture information, available at /root/ocrtoc_materials/models

File Structure of the OCRTOC software package

  • description: The description files for hardware simulation.
  • docker: The Dockerfile and build script. You can modify the Dockerfile and rebuild your docker image.
  • gazebo_simulator: Setups and scripts for the Gazebo simluator.
  • sapien_simluator: Setups and scripts for the Sapien simluator.
  • ocrtoc_task: Scripts for task execution and evaluation. (No modifiction allowed)
  • ocrtoc_solution: Setups and scripts for building the solution. Sample code is given in ocrtoc_solution/scripts/commit_solution.py (Do not change the file name!). You can modify this file to develop your own solution. In addition you can also add any new software modules to this folder. Make sure that your commit_solution.py serves as the main function of your solution and it incorporates all the needed software modules to do the task. After your solution is uploaded to the competition platform, we will run your solution by ocrtoc_solution/launch/commit_solution.launch (Do not change the file name!).

Interfaces

ROS topic

  • /clock
  • /tf*
  • /arm_controller/*
  • /gripper_controller/*
  • /kinect/*
  • /realsense/*
  • /joint_group_position_controller/command
  • /joint_states

ROS service

  • /arm_controller/query_state
  • /controller_manager/*

Note: In the simulation contest of OCRTOC, you are not allowed to use simulator topics to read the 6D pose of the objects in the simulated scenes. You must perform perception using the given object models and visual sensor readings. Violation of this rule leads to disqualification.

Task definition

The target configuration of a task is defined as a list of 6D poses in a given coordinate system (frame) with corresponding object models and scale factors.

In general, we manage tasks using the ROS actionlib functionality. The script ocrtoc_solution/scripts/commit_solution.py will receive tasks in form of a callback function. Each time when a task is received, the corresponding callback function (execute_callback in commit_solution.py) is called.

Task format

``` string scene_id // the id of the loaded scene string frame_id // the coordinate system, in which the 6D poses of the objects are defined string[] object_list // the list of object model names, by which you can get the model from the file system float64[] scale_list // the list of scale factors, using which the object model is scaled isotropically to generate the scene, typical values are: 0.5, 1, 2 geometry_msgs/Pose[] pose_list // the list of 6D object poses (in x,y,z and quaternion) defined in frame_id geometry_msgs/Point position float64 x float64 y float64 z geometry_msgs/Quaternion orientation float64 x float64 y float64 z float64 w —

result definition

File truncated at 100 lines see the full file