Skip to content

path_following Node

In a nutshell

This node manages the PF properties discussed in the implementation section. You can find further explanation of the Path Following algorithms in this paper.

Diagram

path_following Diagram

Subscribers

Subscribers msg type Purpose
/#vehicle#/nav/filter/state auv_msgs/NavigationStatus Filtered state of the vehicle
/#vehicle#/PathData dsor_paths/PathData Path information sent from the path managing node
/#vehicle#/PF/vc std_msgs/Float64 Velocity correction sent from the CPF node (if deployed)
/#vehicle#/Flag std_msgs/Int8 Flag that determines teh state of the vehicle (idle, following waypoint, path, etc.)

Publishers

Publishers msg type Purpose
/#vehicle#/Gamma std_msgs/Float64 Vehicle progression relative to the path parameter
/#vehicle#/pfollowing/debug farol_msgs/mPFollowingDebug Topic used for debugging purposes only
/#vehicle#/current/x std_msgs/Float64 Observe x current component
/#vehicle#/current/y std_msgs/Float64 Observe y current component
/#vehicle#/ref/<controller> std_msgs/Float64 References to be given to the inner loops

Services

Services msg type Purpose
/#vehicle#/PFStart path_following/StartPF Run the previously established path following
/#vehicle#/PFStop path_following/StopPF Stop the current PF mission
/#vehicle#/PFUpdateGains path_following/UpdateGainsPF Update PF gains in real time
/#vehicle#/ResetVT path_following/ResetVT Reset virtual target of current mission
/#vehicle#/PFSetRelativeHeading path_following/SetPF Set the desired PF algorithm to Relative Heading
/#vehicle#/PFSetMarcelo path_following/SetPF Set the desired PF algorithm to Marcelo
/#vehicle#/PFSetAguiar path_following/SetPF Set the desired PF algorithm to Aguiar
/#vehicle#/PFSetBrevik path_following/SetPF Set the desired PF algorithm to Brevik
/#vehicle#/PFSetFossen path_following/SetPF Set the desired PF algorithm to Fossen
/#vehicle#/PFSetRomulo path_following/SetPF Set the desired PF algorithm to Romulo
/#vehicle#/PFSetLapierre path_following/SetPF Set the desired PF algorithm to Lapierre
/#vehicle#/PFSetPramod path_following/SetPF Set the desired PF algorithm to Pramod
/#vehicle#/PFSetSamson path_following/SetPF Set the desired PF algorithm to Samson
/#vehicle#/ResetPath dsor_paths/ResetPath Resets the current path
/#vehicle#/SetMode dsor_paths/SetMode Set if mode of operation calculates closest point to the path or if it receives an external gamma for path progression
/#vehicle#/controls/send_wp_standard waypoint/sendWpType1 Send a waypoint, especially used at end of the PF algorithm

Parameters

Lapierre Algorithm

Parameters type Default
k1 float 1.0
k2 float 0.3
k3 float 0.3
theta float 0.8
k_delta float 1.0

Marcelo Algorithm

Parameters type Default
delta float -1.0
kx float 0.5
ky float 0.5
kz float 0.5
k_pos float 2.0
k_currents float 0.2
rd array [0.0, 0.0, 1.0]
d array [0.0, 0.0, 0.0]

Aguiar Algorithm

Parameters type Default
delta float -1.0
kx float 0.5
ky float 0.5
kz float 0.5
k_pos float 0.5
k_currents float 0.5

Romulo Algorithm

Parameters type Default
ke array [0.05, 0.0, 0.0, 0.05]
kz float 0.2

Pramod Algorithm

Parameters type Default
kp float 0.02
ki float 0.0005

Samson Algorithm

Parameters type Default
k1 float 1.0
k2 float 0.3
k3 float 0.3
theta float 0.8
k_delta float 1.0

Relative Heading Algorithm

Parameters type Default
kx float 0.5
ky float 0.1
kz float 0.2
yaw_offset float 0.785
p_sat array [1.0, 1.0]

General Parameters

Parameters type Default Purpose
node_frequency float 10.0 Working frequency of the node

Last update: January 26, 2023