Thruster allocation for marine operations
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.