Quick Overview
The RL controller will consist of two separate controllers: one for final docking (berthing) and one for navigating before berthing. A swiching function will be made to switch from navigation to berthing.
The RL agents are developed and trained in a Python environment developed by former NTNU students: NTNU-Cybernetics-Subjects/gym-auv-SB3: gym-auv repository upgraded to Stable-Baselines 3. It uses stable baselines 3.
A ROS2 node will be made to test the agent with the system architechture developed for the BlueBoat.
Berthing controller
Will use position, heading, surge, sway , yaw_rate, dock position and dock heading as inputs, and output desired amount of thrust scaled between [-1,1].
It is assumed that there are no nearby obstacles when the vessel enters the berthing phase, So there is noe collision avoidance in this phase, instead the agent is trained to keep low velocities in the berthing phase.
Navigation controller
Will be using the perception data as well, and be path following and collision avoiding.
Plan:
- Develop and test Berthing controller in simulations
- Develop and test ROS2 node using the berthing controller
- First test on real data without actually moving motors
- Once the tests in 2.a seem meaningfull, test on real boat
- Develop and test Navigation controller in simulations
- Develop and test ROS2 node using the navigation controller
- First test on real data without actually moving motors
- Once the tests in 3.a seem meaningfull, test on real boat
- This part also requires a Path Planning node.
- Make switching function between the two controllers
Status:
On step 1 in Plan.