Skip to main content

GuidedTAMPBenchmark

This repository contains code for benchmarking/evaluating task-and-motion-planners guided by video demonstration. The code was used in ICRA 2023 submission entitled Multi-Contact Task and Motion Planning Guided by Video Demonstration:

@inproceeding{2023ICRA_Zorina,
  author = {Zorina, Kateryna and Kovar, David and Lamiraux, Florent and Mansard, Nicolas and Carpentier, Justin and Sivic, Josef and Petrik, Vladimir},
  title = {{Multi-contact task and motion planning guided by video demonstration.}},
  booktitle={ICRA 2023-International Conference on Robotics and Automation},
  year={2023}
}

Additional resources: ICRA2023 planner source code, Project page, Video overview

Installation

git clone https://github.com/agimus-project/guided_tamp_benchmark.git
conda create -n gtamp python=3.10 poetry
conda activate gtamp
poetry install

Usage

To evaluate your planner, you need to implement all abstract methods from core.planner.BasePlanner class. Then you can use our benchmarking script to evaluate it, for example:

task = ShelfTask(1, PandaRobot(), 2)
b = Benchmark()
b.do_benchmark(
    task=task,
    planner=YourPlannerCls,
    seeds=[1],
    planner_arg={"verbose": True,},
    max_planning_time=60,
    delta=0.001,
)

See our examples directory for more information or our ICRA2023 planner https://github.com/agimus-project/tamp_guided_by_video that utilizes this benchmark for the evaluation.

Benchmark variability

Tasks

There are three tasks implemented: Shelf Task, Waiter Task, and Tunnel Task. Here is an example of task initialization:

from guided_tamp_benchmark.tasks import ShelfTask
from guided_tamp_benchmark.models.robots import *

task = ShelfTask(0, PandaRobot(), 1)

In this example, a Shelf Task with the first demonstration (i.e., number 0) is created with Panda Robot which base is placed at the reference pose number 1.

Shelf Task

The shelf task is composed of a table, a shelf and a varying set of objects that the robotic manipulator is supposed to arrange, i.e. to move the objects to the predefined poses on the table or on the shelf. The complexity of the task is controlled by the number of objects that the robot should arrange. This task is challenging for state-of-the-art planners because it requires moving multiple objects in a single planning task. Logs

Tunnel Task

The tunnel task consists of a tunnel and a single object that should be transferred through the tunnel. The tunnel is thin enough so that the robot can place an object inside the tunnel on one side and pick it up from the other side. The challenge lies in the narrow passage in the admissible configuration space that needs to be discovered by the planner. Logs

Waiter Task

The waiter task simulates the job of waiter, in which a set of objects needs to be transferred from one location to another distant location. Waiters use a tray to minimize the walked distance. In our simulation, a mobile robot is equipped with a tray-like space that it can use for transferring objects. Discovering the tray in the planning state-space is non-trivial, which makes this task challenging for the planners that do not utilize demonstrations Logs

Robots

We implemented following robots for benchmarking:

  • Panda robot (fixed base, 7DoF),
  • UR5 robot (fixed base, 6DoF),
  • KUKA IIWA robot (fixed base, 7DoF),
  • KUKA KMR IIWA robot (mobile base, 7+3DoF).

Code structure

Core

In guided_tamp_benchmark.core is description of base planner function that is compatible with benchmarking script and is to be used as template. Description of configuration class, used for storing scene configuration, and path class, which is a template class for storing path planned by planner is also there.

Models

In guided_tamp_benchmark.models is description of robots, furniture and objects used in different tasks of benchmark.

Scripts

In guided_tamp_benchmark.scripts is class benchmark that can be used for running benchmark on planner.

Tasks

In guided_tamp_benchmark.tasks are classes with descriptions of benchmarking tasks, renderer, demonstration class used for storing and loading demonstration files saved as .pkl files and collision class used for collision checking for path evaluation.

Acknowledgment

This work is part of the AGIMUS project, funded by the European Union under GA no.101070165. Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or the European Commission. Neither the European Union nor the European Commission can be held responsible for them. This work was funded by the European Regional Development Fund under the project IMPACT (reg. No. CZ.02.1.01/0.0/0.0/15_003/0000468), the Grant Agency of the Czech Technical University in Prague, grant No. SGS21/178/OHK3/3T/17.

Metadata

Release files for guided-tamp-benchmark 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for guided-tamp-benchmark 0.1.0
File Size Uploaded
guided_tamp_benchmark-0.1.0.tar.gz 37.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for guided-tamp-benchmark 0.1.0
File Interpreter ABI Platform
guided_tamp_benchmark-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 75.5 MB

Release files / guided_tamp_benchmark-0.1.0.tar.gz

Download URL guided_tamp_benchmark-0.1.0.tar.gz
Size 37.7 MB
Tags Source
SHA-256 checksum
How to use checksums
403edef6a73c2069be0e108fc94f01354b186f2e60be3c34b498ffdfaea5e413
BLAKE2b-256 checksum
How to use checksums
6d685a3d73301d5035eafbbf11ab08ef1741d18c554a27037385656d92132f72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.5.1 CPython/3.11.0 Linux/5.15.0-1040-azure

Release files / guided_tamp_benchmark-0.1.0-py3-none-any.whl

Download URL guided_tamp_benchmark-0.1.0-py3-none-any.whl
Size 37.8 MB
Tags Python 3
SHA-256 checksum
How to use checksums
3ba05e98a69b1b5409ff23ea83dca4e9367d1c17c596a93f547ba2a864650137
BLAKE2b-256 checksum
How to use checksums
4c1801c0a9aeeca7d4229945522478e3a316dd8bc6705f679e6844f3c3cd164b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.5.1 CPython/3.11.0 Linux/5.15.0-1040-azure

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page