Description
Concrete path-following steering PID controller.
The path to be followed is specified as a ChBezierCurve object and the target point is defined to be the point on that path that is closest to the current location of the sentinel point.
#include <ChSteeringController.h>


| Public Member Functions | |
| ChPathSteeringController (std::shared_ptr< ChBezierCurve > path, bool isClosedPath=false) | |
| Construct a steering controller to track the specified path.  More... | |
| ChPathSteeringController (const std::string &filename, std::shared_ptr< ChBezierCurve > path, bool isClosedPath=false) | |
| Construct a steering controller to track the specified path.  More... | |
| ~ChPathSteeringController () | |
| Destructor for ChPathSteeringController. | |
| std::shared_ptr< ChBezierCurve > | GetPath () const | 
| Return a pointer to the Bezier curve. | |
| virtual void | Reset (const ChVehicle &vehicle) override | 
| Reset the PID controller.  More... | |
| virtual void | CalcTargetLocation () override | 
| Calculate the current target point location.  More... | |
|  Public Member Functions inherited from chrono::vehicle::ChSteeringController | |
| ChSteeringController () | |
| Construct a steering controller with default parameters.  More... | |
| ChSteeringController (const std::string &filename) | |
| Construct a steering controller with parameters read from a JSON file. | |
| virtual | ~ChSteeringController () | 
| Destructor. | |
| void | SetLookAheadDistance (double dist) | 
| Specify the look-ahead distance.  More... | |
| void | SetGains (double Kp, double Ki, double Kd) | 
| Set the gains for the PID controller. | |
| const ChVector & | GetSentinelLocation () const | 
| Return the current location of the sentinel point.  More... | |
| const ChVector & | GetTargetLocation () const | 
| Return the current value of the target point.  More... | |
| double | Advance (const ChVehicle &vehicle, double step) | 
| Advance the state of the PID controller.  More... | |
| void | StartDataCollection () | 
| Start/restart data collection. | |
| void | StopDataCollection () | 
| Suspend/stop data collection. | |
| bool | IsDataCollectionEnabled () const | 
| Return true if data is being collected. | |
| bool | IsDataAvailable () const | 
| Return true if data is available for output. | |
| void | WriteOutputFile (const std::string &filename) | 
| Output data collected so far to the specified file. | |
| Additional Inherited Members | |
|  Protected Attributes inherited from chrono::vehicle::ChSteeringController | |
| double | m_dist | 
| look-ahead distance | |
| ChVector | m_sentinel | 
| position of sentinel point in global frame | |
| ChVector | m_target | 
| position of target point in global frame | |
| double | m_Kp | 
| double | m_Ki | 
| PID controller gains. | |
| double | m_Kd | 
| double | m_err | 
| current error (signed distance to target point) | |
| double | m_errd | 
| error derivative | |
| double | m_erri | 
| integral of error | |
| utils::CSV_writer * | m_csv | 
| CSV_writer object for data collection. | |
| bool | m_collect | 
| flag indicating whether or not data is being collected | |
Constructor & Destructor Documentation
◆ ChPathSteeringController() [1/2]
| chrono::vehicle::ChPathSteeringController::ChPathSteeringController | ( | std::shared_ptr< ChBezierCurve > | path, | 
| bool | isClosedPath = false | ||
| ) | 
Construct a steering controller to track the specified path.
This version uses default controller parameters (zero gains). The user is responsible for calling SetGains and SetLookAheadDistance.
◆ ChPathSteeringController() [2/2]
| chrono::vehicle::ChPathSteeringController::ChPathSteeringController | ( | const std::string & | filename, | 
| std::shared_ptr< ChBezierCurve > | path, | ||
| bool | isClosedPath = false | ||
| ) | 
Construct a steering controller to track the specified path.
This version reads controller gains and lookahead distance from the specified JSON file.
Member Function Documentation
◆ CalcTargetLocation()
| 
 | overridevirtual | 
Calculate the current target point location.
The target point is the point on the associated path that is closest to the current location of the sentinel point.
Implements chrono::vehicle::ChSteeringController.
◆ Reset()
| 
 | overridevirtual | 
Reset the PID controller.
This function resets the underlying path tracker using the current location of the sentinel point.
Reimplemented from chrono::vehicle::ChSteeringController.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono_vehicle/utils/ChSteeringController.h
- /builds/uwsbel/chrono/src/chrono_vehicle/utils/ChSteeringController.cpp
