This repo uses Poetry for dependency management. To setup this project, first install Poetry and, make sure to have Python3.12 installed on your system.
Then, configure poetry to setup a virtual environment that uses Python 3.12:
poetry env use python3.12
Next, install all the required dependencies to the virtual environment with the following command:
poetry install -vvv
(the -vvv
flag adds verbose output).
For debug features to work, make sure to have graphviz installed on your computer. On MacOS, run the following command:
brew install graphviz
To activate the environment, run:
poetry shell
📘 You can find an introduction notebook to generate planar pushing trajectories here.
Otherwise, the main entrypoint for generating planar pushing plans is the following script:
python scripts/planar_pushing/create_plans.py
which takes a number of command line arguments. Add the flag --help
for a
description of these.
For instance, to generate 10 plans for a rectangular slider geometry, run
python scripts/planar_pushing/create_plans.py --body sugar_box --seed 0 --num 10
which will generate plans that look like this:
🌐 Paper website: Towards Tight Convex Relaxations for Contact-Rich Manipulation
📋 Paper: arXiv
📘 You can find an introduction notebook to generate planar pushing trajectories here.
If you run into any problems, don't hesitate to reach out or create an issue.
💻 The exact code used for generating the results in the paper can be found on the branch: rss24-towards-tight-convex.
The trajectories and data in the paper are generated with scripts/planar_pushing/create_plans.py
, see the user guide below.
However, if you are simply interested in using the code, it is recommended to use the updated code on the main
branch.
Before merging a branch to main
, make sure the unit test pass by running
pytest
(after activating the virtual environment).
Create a config file specifying the experiment in config
and run it using the
following command:
python scripts/planar_pushing/run_planar_pushing_experiment.py --config-name single_experiment
where single_experiment
should be replaced with your config name.