Implementation of the paper "BoundMPC: Cartesian Path Following with Error Bounds based on Model Predictive Control in the Joint Space". Paper: https://arxiv.org/abs/2401.05057
We provide a docker container to run the example experiments. A working docker installation with docker-compose is needed to use the docker container in this repository. Installation instructions can be found on the docker website.
The implementation uses ROS2 humble for inter-proces-communication and Casadi for the automatic differentiation to provide the required analytical derivatives to the Ipopt solver.
The experiments do not run in real-time since the HSL MA57 solver is required for that. This solver is not open source and in the interest of providing runable code to everyone, we provide the implmentation without using the HSL MA57 solver.
In order to run the provided example you need to first build the docker container using
docker build -t bound_mpc .
and then run the docker container with
docker compose up
The docker container mounts the subdirectories of this repository which makes it necessary to build the ROS workspace after the first time you build the container. For this, run the following commands:
docker exec -it bound_mpc bash
colcon build --symlink-install
source install/setup.bash
The experiments are then run with
ros2 launch bound_mpc experiment1.launch.py
or
ros2 launch bound_mpc experiment2.launch.py
You should see an RViz window with a visualization of the robot during its motion.
If you use Linux and do not see an RViz window you need to run
xhost +