Description
Closed-loop path-follower and speed maintaining driver model.
A driver model that combines a path steering controller and a speed controller. The controller adjusts the steering input to follow the prescribed path. The output also adjusts throttle and braking inputs in order to maintain a varying speed that depends on the curvature of the road.
#include <ChHumanDriver.h>
Public Member Functions | |
ChHumanDriver (ChVehicle &vehicle, std::shared_ptr< ChBezierCurve > path, const std::string &path_name, bool isClosedPath=false, double road_width=5.0, double max_wheel_turn_angle=0, double axle_space=2.5) | |
Construct using the specified Bezier curve. More... | |
ChHumanDriver (const std::string &filename, ChVehicle &vehicle, std::shared_ptr< ChBezierCurve > path, const std::string &path_name, bool isClosedPath=false, double road_width=5.0, double max_wheel_turn_angle=0, double axle_space=2.5) | |
Construct using a JSON parameter file. More... | |
virtual void | Advance (double step) override |
Advance the state of this driver system by the specified duration. More... | |
virtual void | Initialize () override |
Initialize the driver system. | |
void | ExportPathPovray (const std::string &out_dir) |
Export the Bezier curve for POV-Ray postprocessing. | |
void | SetPreviewTime (double Tp=0.5) |
void | SetLateralGains (double Klat=0.1, double Kug=0) |
void | SetLongitudinalGains (double Klong=0.1, double Kplus=0.1, double Kminus=0.1) |
void | SetSpeedRange (double u0=10.0, double umax=30.0) |
ChVector | GetTargetLocation () |
ChVector | GetSentinelLocation () |
double | GetTraveledDistance () |
double | GetAverageSpeed () |
double | GetMaxSpeed () |
double | GetMinSpeed () |
double | GetMaxLatAcc () |
double | GetMinLatAcc () |
Public Member Functions inherited from chrono::vehicle::ChDriver | |
ChDriver (ChVehicle &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]) | |
Inputs | 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 val, double min_val=-1, double max_val=1) |
Overwrite the value for the driver steering input. | |
void | SetThrottle (double val, double min_val=0, double max_val=1) |
Overwrite the value for the driver throttle input. | |
void | SetBraking (double val, double min_val=0, double max_val=1) |
Overwrite the value for the driver braking input. | |
Additional Inherited Members | |
Protected Attributes inherited from chrono::vehicle::ChDriver | |
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 | |
Constructor & Destructor Documentation
◆ ChHumanDriver() [1/2]
chrono::vehicle::ChHumanDriver::ChHumanDriver | ( | ChVehicle & | vehicle, |
std::shared_ptr< ChBezierCurve > | path, | ||
const std::string & | path_name, | ||
bool | isClosedPath = false , |
||
double | road_width = 5.0 , |
||
double | max_wheel_turn_angle = 0 , |
||
double | axle_space = 2.5 |
||
) |
Construct using the specified Bezier curve.
- Parameters
-
vehicle associated vehicle path Bezier curve with target path path_name name of the path curve isClosedPath Treat the path as a closed loop road_width road width max_wheel_turn_angle maximum wheel turning angle axle_space wheel track
◆ ChHumanDriver() [2/2]
chrono::vehicle::ChHumanDriver::ChHumanDriver | ( | const std::string & | filename, |
ChVehicle & | vehicle, | ||
std::shared_ptr< ChBezierCurve > | path, | ||
const std::string & | path_name, | ||
bool | isClosedPath = false , |
||
double | road_width = 5.0 , |
||
double | max_wheel_turn_angle = 0 , |
||
double | axle_space = 2.5 |
||
) |
Construct using a JSON parameter file.
- Parameters
-
filename path of the JSON file vehicle associated vehicle path Bezier curve with target path path_name name of the path curve isClosedPath Treat the path as a closed loop road_width road width max_wheel_turn_angle maximum wheel turning angle axle_space wheel track
Member Function Documentation
◆ Advance()
|
overridevirtual |
Advance the state of this driver system by the specified duration.
< normal vector pointing to actual yaw center
< normal vector pointing to actual vehicle front
Reimplemented from chrono::vehicle::ChDriver.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono_vehicle/driver/ChHumanDriver.h
- /builds/uwsbel/chrono/src/chrono_vehicle/driver/ChHumanDriver.cpp