Workspace Navigation

Thruster allocation for marine operations

Basic Information

Project ID: AEE-2020-110

Students: Miika Karsimus, Shazam Kasher, Mikael Leinonen, Tomas Saaristola, Tuure Takala

Project manager: Miika Karsimus

Instructor: Tero Hänninen

Other advisors: Vesa Korhonen

Starting date: 16.1.2020

Completion date: 29.5.2020


Thruster allocation (TA) is a commonly used term in the marine industry. TA refers to an optimization problem where the objective is to find an optimal combination of individual thrust forces that produce desired net force and torque for a marine vessel. In TA the desired net wrench is optimally distributed over multiple fully rotating thrusters in such a way that the power consumption of the vessel is minimized while preserving the desired propulsion.

The purpose of this project was to research and develop thruster allocation algorithms and test the algorithms with a real miniature model ship in a testing pool. In addition, the purpose was to develop a simulation system and proper visualization tools for the vessel in order to be able to test ship maneuvering in a simulated environment. Moreover, there was an option to investigate and implement a dynamic positioning (DP) algorithm which is used for controlling the position and heading angle of the ship.

During the project, thruster allocation and dynamic positioning systems were developed and tested in the simulation. The entire system consists of separate ROS nodes that communicate with each other wirelessly through the ROS network. Some of the nodes are targeted for controlling the physical ship thrusters and running TA and DP algorithms while other nodes are used for visualizing vessel movement, different forces and sensor information as well as logging the system behaviour and sensor data for future use. In addition, two IMU sensors and a GPS were added to the existing model ship platform.

Due to the outbreak of COVID-19 pandemic, the pool testing became impossible, thus the focus of the project was kept on the simulation software and related tools. All required functionalities and some extra features were implemented and overall the project was a success.


The main objective of this project was to implement a thruster control system to the given model ship. We also aimed to research and implement a simple dynamic positioning control. The DP system's purpose would be mostly to compensate for wind-related effects on the ship that were, in this case, not measured but merely simulated in ROS. Other dynamic effects induced by external/environmental factors (e.g. waves, hydrodynamic interactions, etc.) were not to be taken into account. Both TA and DP system were to be implemented in ROS.

Other objectives included the addition of GPS and IMU sensors to the ship and the utilization of their measurements in the built control system. In addition, a wind simulation node was to be constructed to test the control system and because of addition of a real wind sensor to the system was not feasible.

For the development and building of the system a simulation environment including physics was necessary and to be built into ROS. The simulations would allow, for instance, tuning the controllers, testing the physically modelled system, different manoeuvres and trajectories. The primary and practical testing of the system was planned to be done in the Aalto Ice Tank testing pool facility in the later stages of the development.

A short summary of the project objectives is as follow:

  • Research and implementation of thrust allocation and dynamic positioning algorithms

  • Building of prototype control system and interface into ROS

  • Simulation and testing (incl. pool testing) of the TA and DP systems and trajectories

  • Inclusion of sensors to the model ship and their outputs to the control system


  • Real-time thruster allocation using Sequential Quadratic Programming
  • Simulation based dynamic positioning system using optimal control (LQR) for controlling the position and heading angle of the vessel
  • Visualizing vessel movement, forces, sensor data and other information in Rviz

Figure 1: Thruster allocation visualized in Rviz while simultaneously running the real ship motors

Figure 2: Control system diagram for dynamic positioning


The result of this project is a collection of ROS packages that provide nodes relating to ship control, user interface, ship simulation and sensor data gathering. The basis for the software structure were the ROS packages made during the previous year, although many new modules were added and a lot of old ones were modified or rendered obsolete.

The developed software system's main features include:

  • Working and efficient thruster allocation
  • Working dynamic positioning system enabled by simulated positioning data. The DP system is capable of driving the ship to a static target pose or following an arbitrary trajectory. 
  • Simulation physics
  • Intuitive graphical user interface with options for joystick or mouse control
  • Logging node that allows to track sensor data and the behaviour of the system for future use
  • Integration of sensor data from GPS and IMU modules
  • Launch files that make it easy to run the system with a single command

In addition, two physical IMU sensors and one GPS sensor were added to the existing model ship platform. The sensors are attached to a raspberry pi.

  • No labels
  File Modified
PDF File Business_aspects_signed.pdf May 29, 2020 by Miika Karsimus
PDF File Dynamic_positioning_LQR.pdf May 29, 2020 by Miika Karsimus
Microsoft Powerpoint Presentation final_presentation.pptx May 29, 2020 by Miika Karsimus
PDF File Final_report_signed.pdf May 29, 2020 by Miika Karsimus
Microsoft Powerpoint Presentation pitch_slides.pptx May 29, 2020 by Miika Karsimus
PDF File Project_plan_E8004_signed.pdf May 29, 2020 by Miika Karsimus
Multimedia File Project_work_demo_video_compressed.mp4 May 12, 2020 by Miika Karsimus
PNG File Screenshot from 2020-05-29 23-57-34.png May 29, 2020 by Miika Karsimus
PNG File Screenshot from 2020-05-30 00-08-40.png May 29, 2020 by Miika Karsimus
PDF File Thruster_allocation_SQP.pdf May 29, 2020 by Miika Karsimus