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

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