Skip to content

Latest commit

 

History

History
158 lines (99 loc) · 8.24 KB

README.md

File metadata and controls

158 lines (99 loc) · 8.24 KB

License CI

MPC Planner Workspace (VSCode Docker)

This repository provides a complete VSCode docker environment for running MPC planner mpc_planner (see https://github.com/tud-amr/mpc_planner) and global guidance planner guidance_planner (see https://github.com/tud-amr/guidance_planner) that together make up Topology-Driven MPC (T-MPC++).

T-MPC computes multiple distinct trajectories in parallel, each passing dynamic obstacles differently. For a brief overview of the method, see the paper website. It also includes a simulation environment for a mobile robot navigating among pedestrians. The code is associated with the following publications:

Journal Paper: O. de Groot, L. Ferranti, D. M. Gavrila, and J. Alonso-Mora, Topology-Driven Parallel Trajectory Optimization in Dynamic Environments. IEEE Transactions on Robotics (T-RO) 2024. Available: https://doi.org/10.1109/TRO.2024.3475047

Conference Paper: O. de Groot, L. Ferranti, D. M. Gavrila, and J. Alonso-Mora, Globally Guided Trajectory Optimization in Dynamic Environments. IEEE International Conference on Robotics and Automation (ICRA) 2023. Available: https://doi.org/10.1109/ICRA48891.2023.10160379


Jackal Simulator ROS Navigation Stack

Table of Contents

  1. Features
  2. Installation
  3. Usage
  4. Configuration
  5. Examples
  6. License
  7. Citing

Features

For features of the base planner, see https://github.com/tud-amr/mpc_planner. This repository combines other repositories for:

  • Motion planning in 2D dynamic environments (mpc_planner)
  • Global guidance planning in 2D dynamic environments (guidance_planner)
  • Simulating pedestrians with Social Forces (pedestrian_simulator)
  • Defining reference paths (roadmap)
  • Simulating the Clearpath Jackal (jackal_simulator)

Installation

Container

In VSCode install these extensions:

Clone this repository. In VSCode: open_folder -> open mpc_planner_ws. It will show a pop-up: click Reopen in container. It will build the container. This will take some time.

Note: For colleagues from CoR at the TU Delft using the Vicon, please uncomment in setup.sh the line vcs import < lab.repos src --recursive to clone lab packages for the Vicon system.

Then, in the VSCode terminal run:

chmod +x setup.sh
chmod +x build.sh
./setup.sh

Required repositories and dependencies will be installed.

The open-source Acados solver (https://docs.acados.org/) is installed by default. Dependencies of the solver generation are installed automatically with poetry in setup.sh. You will be prompted to install poetry.

For the licensed Forces Pro solver (https://www.embotech.com/softwareproducts/forcespro/overview/) used in the papers, installation instructions are included below.

Note: To use Forces Pro in the containerized environment, both a floating and regular license is required. If you only have a regular license, you cannot use it in the containerized environment. Instead, you can try to install the planner outside of the container (see https://github.com/tud-amr/mpc_planner).

Forces Pro (optional)

Regular Solver: Go to my.embotech.com, log in to your account. Assign a regular license to your computer. Then download the client to ~/forces_pro_client/ outside of the container. If you have the solver in a different location, add its path to PYTHONPATH.

Floating Solver: Go to my.embotech.com, log in to your account. Click on a license -> Download Floating Licenses Proxy Standalone (Linux 64-bit) - FORCES PRO v5.1.0 onwards outside of the container -> unzip. In the downloaded folder, chmod +x forcespro_floating_licenses_proxy. Then to start the solver proxy (necessary to run it), execute: ./forcespro_floating_licenses_proxy.

To use the floating license, set solver_settings/floating_license in mpc_planner_<your_system>/config/settings.yaml to true.

With the Forces Pro solver set up, you have to generate a solver from outside the VSCode container. First you will need to set up the poetry environment from outside of the container.

With the poetry environment set up, a solver can be generated with:

poetry run python mpc_planner_jackalsimulator/scripts/generate_jackalsimulator_solver.py true

Usage

VSCode tasks are available for common tasks. In VSCode, press Ctrl + Shift + B, the main tasks include:

  • JackalSimulator: Build - Build mpc_planner for JackalSimulator
  • JackalSimulator: Build and Generate Solver (only usable with acados) - Generate an Acados solver and build mpc_planner for JackalSimulator
  • JackalSimulator: Run Simulator - Run the JackalSimulator

Similar commands are available for other systems. For more detail see .vscode/tasks.json.

Examples

Jackal Simulator

Task: JackalSimulator: Run Simulator

The following example features Topology-driven MPC (T-MPC++) [1] with a reference tracking cost and dynamic obstacle avoidance (using ellipsoidal obstacles)

Applied to the Clearpath Jackal mobile robot (mpc_planner_jackalsimulator) in an environment with pedestrians.

ROS Navigation stack

Task: ROSNavigation: Run Simulator

Navigation with static and dynamic obstacles. This example features

License

This project is licensed under the Apache 2.0 license - see the LICENSE file for details.

Citing

This repository was developed at the Cognitive Robotics group of Delft University of Technology by Oscar de Groot in partial collaboration with Dennis Benders and Thijs Niesten and under supervision of Dr. Laura Ferranti, Dr. Javier Alonso-Mora and Prof. Dariu Gavrila.

If you found this repository useful, please cite our paper:

  • [1] Journal Paper: O. de Groot, L. Ferranti, D. M. Gavrila, and J. Alonso-Mora, Topology-Driven Parallel Trajectory Optimization in Dynamic Environments. IEEE Transactions on Robotics (T-RO) 2024. Available: https://doi.org/10.1109/TRO.2024.3475047