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