chrono::vehicle::ChPathFollowerDriverXT Class Reference

Description

Path-following driver system using an extended PID lateral steering controller.

Implemented from an algorithm found in: "Automotive Control Systems - For Engine, Driveline and Vehicle", Kiencke, U.; Nielson, L: ISBN 3-540-23139-0 Springer Berlin Heidelberg New York

See also
ChPathSteeringControllerXT
ChSpeedController

#include <ChPathFollowerDriver.h>

Inheritance diagram for chrono::vehicle::ChPathFollowerDriverXT:
Collaboration diagram for chrono::vehicle::ChPathFollowerDriverXT:

Public Member Functions

 ChPathFollowerDriverXT (ChVehicle &vehicle, std::shared_ptr< ChBezierCurve > path, const std::string &path_name, double target_speed, double maxWheelTurnAngle=0.0)
 Construct using the specified Bezier curve. More...
 
 ChPathFollowerDriverXT (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, double maxWheelTurnAngle=0.0)
 Construct using JSON specification files. More...
 
ChPathSteeringControllerXTGetSteeringController () const
 Get the underlying steering controller object.
 
- Public Member Functions inherited from chrono::vehicle::ChClosedLoopDriver
 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...
 
ChSpeedControllerGetSpeedController () 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.
 
- Public Member Functions inherited from chrono::vehicle::ChDriver
 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

- Protected Attributes inherited from chrono::vehicle::ChClosedLoopDriver
std::unique_ptr< ChSteeringControllerm_steeringPID
 steering controller
 
std::unique_ptr< ChSpeedControllerm_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
 
- Protected Attributes inherited from chrono::vehicle::ChDriver
ChVehiclem_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

◆ ChPathFollowerDriverXT() [1/2]

chrono::vehicle::ChPathFollowerDriverXT::ChPathFollowerDriverXT ( ChVehicle vehicle,
std::shared_ptr< ChBezierCurve path,
const std::string &  path_name,
double  target_speed,
double  maxWheelTurnAngle = 0.0 
)

Construct using the specified Bezier curve.

Parameters
vehicleassociated vehicle
pathBezier curve with target path
path_namename of the path curve
target_speedconstant target speed
maxWheelTurnAngleneeded for wheeled vehicles, use default for tracked vehicles

◆ ChPathFollowerDriverXT() [2/2]

chrono::vehicle::ChPathFollowerDriverXT::ChPathFollowerDriverXT ( 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,
double  maxWheelTurnAngle = 0.0 
)

Construct using JSON specification files.

The two files must contain specification for the path-follower steering controller and the constant-speed controller, respectively.

Parameters
vehicleassociated vehicle
steering_filenameJSON file with steering controller specification
speed_filenameJSON file with speed controller specification
pathBezier curve with target path
path_namename of the path curve
target_speedconstant target speed
maxWheelTurnAngleneeded for wheeled vehicles, use default for tracked vehicles

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