chrono::vehicle::ChPathFollowerDriverPP Class Reference
Description
Path-following driver system using a lateral steering controller as used on the Pure Pursuit AV.
#include <ChPathFollowerDriver.h>
Inheritance diagram for chrono::vehicle::ChPathFollowerDriverPP:
![Inheritance graph](classchrono_1_1vehicle_1_1_ch_path_follower_driver_p_p__inherit__graph.png)
Collaboration diagram for chrono::vehicle::ChPathFollowerDriverPP:
![Collaboration graph](classchrono_1_1vehicle_1_1_ch_path_follower_driver_p_p__coll__graph.png)
Public Member Functions | |
ChPathFollowerDriverPP (ChVehicle &vehicle, std::shared_ptr< ChBezierCurve > path, const std::string &path_name, double target_speed) | |
Construct using the specified Bezier curve. More... | |
ChPathFollowerDriverPP (ChVehicle &vehicle, const std::string &steering_filename, const std::string &speed_filename, std::shared_ptr< ChBezierCurve > path, const std::string &path_name, double target_speed) | |
Construct using JSON specification files. More... | |
ChPathSteeringControllerPP & | GetSteeringController () const |
Get the underlying steering controller object. | |
![]() | |
ChClosedLoopDriver (ChVehicle &vehicle, const std::string &path_name, double target_speed) | |
Construct using the specified Bezier curve. More... | |
ChClosedLoopDriver (ChVehicle &vehicle, const std::string &speed_filename, const std::string &path_name, double target_speed) | |
Construct using JSON specification files. More... | |
void | SetDesiredSpeed (double val) |
Set the desired vehicle speed. | |
void | SetThresholdThrottle (double val) |
Specify the throttle value below which braking is enabled. More... | |
ChSpeedController & | GetSpeedController () const |
Get the underlying speed controller object. | |
void | Reset () |
Reset the underlying controllers. | |
virtual void | Initialize () override |
Initialize this driver system. | |
virtual void | Advance (double step) override |
Advance the state of this driver system by the specified duration. | |
void | SetColor (const ChColor &color) |
Set color of path visualization. | |
void | ExportPathPovray (const std::string &out_dir) |
Export the Bezier curve for POV-Ray postprocessing. | |
![]() | |
ChDriver (ChVehicle &vehicle) | |
Construct a driver subsystem associated with the given vehicle. | |
double | GetThrottle () const |
Get the driver throttle input (in the range [0,1]). | |
double | GetSteering () const |
Get the driver steering input (in the range [-1,+1]). | |
double | GetBraking () const |
Get the driver braking input (in the range [0,1]). | |
double | GetClutch () const |
Get the driver clutch input (in the range [0,1]). | |
DriverInputs | GetInputs () const |
Get all current inputs at once. | |
virtual void | Synchronize (double time) |
Update the state of this driver system at the current time. | |
bool | LogInit (const std::string &filename) |
Initialize output file for recording driver inputs. | |
bool | Log (double time) |
Record the current driver inputs to the log file. | |
void | SetSteering (double steering) |
Overwrite the value for the driver steering input (input is clamped in [-1,+1]). | |
void | SetThrottle (double throttle) |
Overwrite the value for the driver throttle input (input is clamped in [0,+1]). | |
void | SetBraking (double braking) |
Overwrite the value for the driver braking input (input is clamped in [0,+1]). | |
void | SetClutch (double clutch) |
Overwrite the value for the clutch braking input (input is clamped in [0,+1]). | |
Additional Inherited Members | |
![]() | |
std::unique_ptr< ChSteeringController > | m_steeringPID |
steering controller | |
std::unique_ptr< ChSpeedController > | m_speedPID |
speed controller | |
double | m_target_speed |
desired vehicle speed | |
std::string | m_pathName |
for path visualization | |
ChColor | m_color |
for path visualization | |
double | m_throttle_threshold |
throttle value below which brakes are applied | |
![]() | |
ChVehicle & | m_vehicle |
reference to associated vehicle | |
double | m_throttle |
current value of throttle input | |
double | m_steering |
current value of steering input | |
double | m_braking |
current value of braking input | |
double | m_clutch |
current value of clutch input | |
Constructor & Destructor Documentation
◆ ChPathFollowerDriverPP() [1/2]
chrono::vehicle::ChPathFollowerDriverPP::ChPathFollowerDriverPP | ( | ChVehicle & | vehicle, |
std::shared_ptr< ChBezierCurve > | path, | ||
const std::string & | path_name, | ||
double | target_speed | ||
) |
Construct using the specified Bezier curve.
- Parameters
-
vehicle associated vehicle path Bezier curve with target path path_name name of the path curve target_speed constant target speed
◆ ChPathFollowerDriverPP() [2/2]
chrono::vehicle::ChPathFollowerDriverPP::ChPathFollowerDriverPP | ( | ChVehicle & | vehicle, |
const std::string & | steering_filename, | ||
const std::string & | speed_filename, | ||
std::shared_ptr< ChBezierCurve > | path, | ||
const std::string & | path_name, | ||
double | target_speed | ||
) |
Construct using JSON specification files.
The two files must contain specification for the path-follower steering controller and the constant-speed controller, respectively.
- Parameters
-
vehicle associated vehicle steering_filename JSON file with steering controller specification speed_filename JSON file with speed controller specification path Bezier curve with target path path_name name of the path curve target_speed constant target speed
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono_vehicle/driver/ChPathFollowerDriver.h
- /builds/uwsbel/chrono/src/chrono_vehicle/driver/ChPathFollowerDriver.cpp