title: Lapierre summary: Path following using Lapierre's algorithm for path following Method2: developed from the work of Lionel Lapierre and Antonio(2003)
Lapierre
Path following using Lapierre's algorithm for path following Method2: developed from the work of Lionel Lapierre and Antonio(2003) More...
#include <Lapierre.h>
Inherits from PathFollowing
Public Functions
Name | |
---|---|
Lapierre(double k1, double k2, double k3, double theta, double k_delta, ros::Publisher surge_pub, ros::Publisher yaw_rate_pub, ros::Publisher rabbit_pub) Constructor method for the Path Following class. |
|
virtual bool | setPFGains(std::vector< double > gains) override Method that given a vector of doubles, updates the gains of the controller. |
virtual void | callPFController(double dt) override Method that implements the path following control law. |
virtual void | publish_private() override Method to publish the data from the path following. |
virtual void | start() override Method to run in the first iteration of the path following algorithm. |
virtual bool | stop() override Method used to check whether we reached the end of the algorithm or not. |
virtual bool | reset() override Method used to reset the algorithm control parameters when running the algorithm more than once. |
virtual bool | resetVirtualTarget(float value) override Method to reset the virtual target of the vehicle (gamma) to a pre-specified value. Not all controllers need this (example: Samson, Fossen which use the closest point) |
Additional inherited members
Public Functions inherited from PathFollowing
Name | |
---|---|
virtual | ~PathFollowing() Virtual destructor for the abstract pathfollowing class. |
void | publish() Method to publish the data given by the algorithm. |
void | UpdateVehicleState(const VehicleState & vehicle_state) Method to update the vehicle state used by the controller. |
void | UpdatePathState(const PathState & path_state) Method to update the path state used by the controller. |
void | setPFollowingDebugPublisher(const ros::Publisher & pfollowing_debug_pub) Method to set common publishers. |
Protected Functions inherited from PathFollowing
Name | |
---|---|
double | algConvert(double alg_new, double alg_old, double alg_out_old) Auxiliar method to smooth out the angle to be used by path following algorithms. |
Protected Attributes inherited from PathFollowing
Name | |
---|---|
VehicleState | vehicle_state_ Variable to store the state of the vehicle. |
PathState | path_state_ Variable to store the state of the path. |
PFollowingDebug | pfollowing_debug_ Variable to store the state of the path. |
ros::Publisher | pfollowing_debug_pub_ |
Detailed Description
class Lapierre;
Path following using Lapierre's algorithm for path following Method2: developed from the work of Lionel Lapierre and Antonio(2003)
Author:
- Marcelo Jacinto
- Joao Quintas
- Joao Cruz
- Hung Tuan
Version: 1.0a
Date: 2021
Copyright: MIT
This algorithm support: Controls:
- yaw-rate
- surge
- virtual-target (gamma) Supports Cooperative Path Following - True Contains Currents Observers - False
Public Functions Documentation
function Lapierre
Lapierre(
double k1,
double k2,
double k3,
double theta,
double k_delta,
ros::Publisher surge_pub,
ros::Publisher yaw_rate_pub,
ros::Publisher rabbit_pub
)
Constructor method for the Path Following class.
Parameters:
- k1 Controller gain
- k2 Controller gain
- k3 Controller gain
- theta Controller gain
- k_delta Controller gain
- surge_pub The ROS surge publisher
- yaw_rate_pub The ROS yaw rate publisher
- rabbit_pub The ROS rabbit publisher
function setPFGains
virtual bool setPFGains(
std::vector< double > gains
) override
Method that given a vector of doubles, updates the gains of the controller.
Parameters:
- gains A vector of gains
Return: a boolean which represents the success of the operation
Reimplements: PathFollowing::setPFGains
NOTE: The default order of the gains is k1, k2, k3, theta, k_delta
function callPFController
virtual void callPFController(
double dt
) override
Method that implements the path following control law.
Parameters:
- dt The time diference between the last and current call (in seconds)
Reimplements: PathFollowing::callPFController
function publish_private
virtual void publish_private() override
Method to publish the data from the path following.
Reimplements: PathFollowing::publish_private
function start
virtual void start() override
Method to run in the first iteration of the path following algorithm.
Reimplements: PathFollowing::start
function stop
virtual bool stop() override
Method used to check whether we reached the end of the algorithm or not.
Return: the success of the operation
Reimplements: PathFollowing::stop
Check if the gamma is greater then the gamma max of the path If so, we have reached the end
function reset
virtual bool reset() override
Method used to reset the algorithm control parameters when running the algorithm more than once.
Return: Whether the reset was made successfully or not
Reimplements: PathFollowing::reset
function resetVirtualTarget
virtual bool resetVirtualTarget(
float value
) override
Method to reset the virtual target of the vehicle (gamma) to a pre-specified value. Not all controllers need this (example: Samson, Fossen which use the closest point)
Return: Whether the reset was made successfully or not
Reimplements: PathFollowing::resetVirtualTarget
Updated on 2022-09-15 at 17:51:33 +0000