Skip to content

Library implementations of the Scenario-based Model Predictive Control Algorithm (SB-MPC) and its probabilistic variant (PSB-MPC). Developed as part of the NTNU Centre for Autonomous Marine Operations and Systems (AMOS)

License

Notifications You must be signed in to change notification settings

ntnu-itk-autonomous-ship-lab/psbmpc

Repository files navigation

psbmpc

This repository contains C++ implementations for the Scenario-based Model Predictive Control Algorithm (SB-MPC) [1] and its probabilistic variant (PSB-MPC) described in https://ieeexplore.ieee.org/abstract/document/10876006/, originating from research as part of the NTNU Centre for Autonomous Marine Operations and Systems (AMOS).

The psbmpc_cxx implements the Probabilistic Scenario-based MPC [2] in C++/CUDA, which is an extended and improved version of the original SB-MPC, with more focus on probabilistic risk assessment, and which allows any given number of avoidance maneuvers in the prediction horizon. Here, one version is implemented for the CPU (used for prototyping and initial testing mainly) and another for the GPU (which is meant to be used in real-time). It also contains a C++ implementation of the original SB-MPC. See install instructions for the code under psbmpc_cxx. Here, psbmpc_ros_package is a ROS1 package for using the PSB-MPC in an autonomous ship. See https://www.youtube.com/watch?v=9cmDqQDgBDc for experimental results using the GPU version of the PSB-MPC on NTNU`s milliAmpere 2 ferry.

The sbmpc_catkin_ws contains the ROS-based colav implemented through the Autosea project (with added robustness against obstacle track loss etc. [3]), where the original SB-MPC is implemented, in addition to a velocity obstacle algorithm.

Citation

If you are using algorithms from this repo in your work, please use the following citation

@article{Tengesdal2024fr,
  author  = {Tengesdal, Trym and Rothmund, Sverre V. and Basso, Erlend A. and Schmidt-Didlaukies, Henrik and Johansen, Tor A.},
  journal = {Field Robotics},
  title   = {Obstacle Intention Awareness in Automatic Collision Avoidance: Full Scale Experiments in Confined Waters},
  volume={4},
  number={1},
  pages={211--245},
  year={2024},
  doi     = {10.55417/fr.2024007},
}

for the PSB-MPC, and

@article{Johansen2016,
  author={Johansen, Tor Arne and Perez, Tristan and Cristofaro, Andrea},
  journal={IEEE Transactions on Intelligent Transportation Systems}, 
  title={Ship Collision Avoidance and COLREGS Compliance Using Simulation-Based Control Behavior Selection With Predictive Hazard Assessment}, 
  year={2016},
  volume={17},
  number={12},
  pages={3407-3422},
  keywords={Marine vehicles;Collision avoidance;Trajectory;Hazards;Propulsion;Optimization;Oceans;Autonomous ships;collision avoidance;control systems;hazard;safety;trajectory optimization},
  doi={10.1109/TITS.2016.2551780}}

for the original SB-MPC.

Git Workflow

All cooperators are obligated to follow the methods outlined in https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow for ensuring a pain-free workflow with thecolavrepo.

If you're unfamiliar with git, check out https://try.github.io/ to get familiar, and use https://learngitbranching.js.org/ for trying out topics on your own.

References

[1] Johansen, T. A., Perez, T., and Cristofaro, A., "Ship collision avoidance and COLREGS compliance using simulation-based control behavior selection with predictive hazard assessment" IEEE Transactions on Intelligent Transportation Systems, vol. 17, no. 12, pp. 3407-3422, Dec. 2016.

[2] Tengesdal, Trym and Rothmund, Sverre V. and Basso, Erlend A. and Johansen, Tor A. and Schmidt-Didlaukies, Henrik (2024). "Obstacle Intention Awareness in Automatic Collision Avoidance: Full Scale Experiments in Confined Waters." Field Robotics, vol. 4, no. 1, pp. 211-245, DOI: 10.55417/fr.2024007.

[3] Kufoalor, D. K. M., Wilthil, E., Hagen, I. B., Brekke E. F. and Johansen, T. A. (2019). "Autonomous COLREGSs-Compliant Decision Making using Maritime Radar Tracking and Model Predictive Control" 2019 18th European Control Conference (ECC).

Trym Tengesdal, 17th of June 2024.

About

Library implementations of the Scenario-based Model Predictive Control Algorithm (SB-MPC) and its probabilistic variant (PSB-MPC). Developed as part of the NTNU Centre for Autonomous Marine Operations and Systems (AMOS)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published