# mpc_planner_ws
**Repository Path**: zhyb86/mpc_planner_ws
## Basic Information
- **Project Name**: mpc_planner_ws
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-11-12
- **Last Updated**: 2025-11-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
[](https://opensource.org/licenses/Apache-2.0)

# 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](https://autonomousrobots.nl/paper_websites/topology-driven-mpc). 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](#features)
2. [Installation](#installation)
3. [Usage](#usage)
4. [Configuration](#configuration)
5. [Examples](#examples)
6. [License](#license)
7. [Citing](#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:
- https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers
- https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker
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:
```bash
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_/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
- **Topology-Driven MPC** for dynamic obstacle avoidance [1]
- **Curvature-Aware MPC** for reference tracking (https://ieeexplore.ieee.org/document/10161177)
- **Decomp Util** for static obstacle avoidance (https://arxiv.org/pdf/2406.11506)
## 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](https://github.com/oscardegroot) in partial collaboration with [Dennis Benders](https://github.com/dbenders1) and [Thijs Niesten](https://github.com/thijs83) 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