This GitHub repository contains source codes for our ICRA 2022 work TRLB and its follow-up work in IROS 2023. Each branch is dedicated to a particular paper.
- main: This branch contains the source codes related to Fast High-Quality Tabletop Rearrangement in Bounded Workspace, which is published in ICRA 2022.
- heteTORO: This branch contains the source codes related to Effectively Rearranging Heterogeneous Objects on Cluttered Tabletops, which is published in IROS 2023.
- It is recommended to use a virtual environment with Python 3 for this project, e.g.,
conda create -n TRLB python=3.6.9
. - Make sure you are in your virtual environment.
- Run
pip install -e .
to install the TRLB package and dependencies.
We show a cylindrical instance where the discs with solid boundaries represent the start arrangement and the discs with dashed boundaries represent the goal arrangement.
For cylindrical objects, we present various component options for TRLB, including:
- Primitive plan computation: running buffer minimization (RBM), total buffer minimization (TBM), random order (RO);
- Buffer generation methods: optimization (OPT), sampling (SP);
- High level planners: one-shot (OS), forward search tree (ST), bidirectional search tree (BST);
- With or without preprocessing (PP).
We show a demo in TRLB/disk_experiments/run_experiments.py
Please note that the optimization for buffer generation is supported by Gurobi. If you do not have a Gurobi license or do not want to apply for a Gurobi license, please always set buffer_generation='SP'
in run_experiments.py
.
To run the demo, just execute TRLB/disk_experiments/run_experiments.py
with python. For example, in the root folder of the project run the following command in the terminal.
python ./disk_experiments/run_experiments.py
We show a cuboid instance where the rectangles with solid boundaries represent the start arrangement and the rectangles with dashed boundaries represent the goal arrangement.
For cuboid instances, we currently only support RBM-SP-BST
, using the primitive plans that minimize running buffer size, performing buffer allocation by sampling, maintaining a bidirectional search tree, and doing so without preprocessing. a demo is shown in TRLB/stick_experiments/run_experiments.py
.
To run the demo, just execute TRLB/stick_experiments/run_experiments.py
with python. For example, in the root folder of the project run the following command in the terminal.
python ./stick_experiments/run_experiments.py
TRLB is proven to be efficient on our hardware platform in various scenarios.