Home

Awesome

Transport Challenge

In the Transport Challenge API, the Magnebot must transport target objects (small objects scattered throughout the scene) with the aid of containers (box-shaped objects without lids that can hold target objects) to the goal zone (a circle defined by a position and a radius in the center of a room and the scene).

If all of the target objects are in the goal zone, the task is successful.

Read the API documentation here.

The Transport Challenge API is an extension of the Magnebot API which in turn is built on the TDW simulation platform.

<img src="doc/images/api_hierarchy.png" style="zoom:50%;" />

Installation

Check if you've already installed magnebot or tdw on your computer: if pip3 show magnebot or pip3 show tdw prints any text, then the module is installed.

If magnebot or tdw is not already installed on this computer:

  1. Download TDW build v1.8.7
  2. git clone https://github.com/alters-mit/transport_challenge.git
  3. cd transport_challenge
  4. pip3 install -e . This will install all underlying modules, including magnebot and tdw
  5. Make sure that the underlying TDW system is working correctly. See: Getting Started With TDW Ignore warnings about upgrading TDW!

If magnebot or tdw is already installed on this computer:

  1. pip3 uninstall magnebot
  2. pip3 uninstall tdw
  3. pip3 unintall ikpy
  4. Download TDW build v1.8.7
  5. git clone https://github.com/alters-mit/transport_challenge.git
  6. cd transport_challenge
  7. pip3 install -e . This will install all underlying modules, including magnebot and tdw
  8. Make sure that the underlying TDW system is working correctly. See: Getting Started With TDW Ignore warnings about upgrading TDW!

Usage

  1. Run this controller: python3 controller.py If you're running on an IBM server, you'll need to set a custom S3 bucket for the scenes, models, and materials: TRANSPORT_CHALLENGE=https://bucket_url python3 controller. If this is a local path, set the variable to the absolute path, i.e. TRANSPORT_CHALLENGE=file:///home/<user>/model_library python3 controller
from transport_challenge import Transport

m = Transport()
# Initializes the scene.
status = m.init_scene(scene="2a", layout=1)
print(status)  # ActionStatus.success

# Prints a list of all container IDs.
print(m.containers)
# Prints a list of all target object IDs.
print(m.target_objects)

m.end()
  1. Launch the TDW build.

Documentation

Example controllers