This repo contains a trajectory optimization and differentiable collision detection algorithm, using several shapes as convex primitives.
By Simone Palumbo, Benedetta Rota and Camilla Rota.
This project is based on this Julia library.
To install and set up this project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/DIAG-Robotics-Lab/AMR24-FP6-DCOL.git
-
Navigate to the project directory:
cd AMR24-FP6-DCOL
-
(optional) Create a virtual environment
python -m venv venv source venv/bin/activate
This will keep things cleaner
-
Install dependencies:
pip install -r requirements.txt
After installation, you can use the project as follows:
- Run the application:
Run the script speciying the system you want to simulate
python main.py --system <system_name>
The available systems in this repo are
- Piano Mover: a piano must maneuver around a 90-degree turn in a hallway. The walls are 1 meter apart, and the “piano” (a line segment) is 2.6 meters long, making the path around the corner nontrivial.
- Quadrotor: a classic 6-DOF quadrotor model traverses a cluttered hallway with 12 objects in it.
- Cone Through a Wall: a cone must be routed through a square hole in a wall.
Running
python main.py --system piano_mover
the result is the following:
Running
python main.py --system quadrotor
the result is the following:
Running
python main.py --system coneThroughWall
the result is the following: