Project Chrono: chrono::vehicle::ChPathFollowerDriverStanley Class Reference

Public Member Functions | List of all members
chrono::vehicle::ChPathFollowerDriverStanley Class Reference
VEHICLE module » Driver system

## Description

Path-following driver system using a lateral steering controller as used on the Stanley AV.

See also
  ChPathSteeringControllerStanley
  ChSpeedController

`#include <ChPathFollowerDriver.h>`

Inheritance diagram for chrono::vehicle::ChPathFollowerDriverStanley:
[legend]
Collaboration diagram for chrono::vehicle::ChPathFollowerDriverStanley:
[legend]

## Public Member Functions
| ChPathFollowerDriverStanley (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.
| ChPathFollowerDriverStanley (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.
ChPathSteeringControllerStanley & | GetSteeringController () 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.
| ChClosedLoopDriver (ChVehicle &vehicle, const std::string &speed_filename, const std::string &path_name, double target_speed)
| Construct using JSON specification files.
void | SetDesiredSpeed (double val)
| Set the desired vehicle speed.
void | SetThresholdThrottle (double val)
| Specify the throttle value below which braking is enabled.
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.
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< 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
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
double | m_clutch
| current value of clutch input

## Constructor & Destructor Documentation

## ◆ ChPathFollowerDriverStanley() [1/2]

chrono::vehicle::ChPathFollowerDriverStanley::ChPathFollowerDriverStanley | ( | 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

  vehicle | associated vehicle
  path | Bezier curve with target path
  path_name | name of the path curve
  target_speed | constant target speed
  maxWheelTurnAngle | needed for wheeled vehicles, use default for tracked vehicles

## ◆ ChPathFollowerDriverStanley() [2/2]

chrono::vehicle::ChPathFollowerDriverStanley::ChPathFollowerDriverStanley | ( | 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

  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
  maxWheelTurnAngle | needed for wheeled vehicles, use default for tracked vehicles

The documentation for this class was generated from the following files:

- D:/W/B/src/chrono-9.0.1/src/chrono_vehicle/driver/ChPathFollowerDriver.h
- D:/W/B/src/chrono-9.0.1/src/chrono_vehicle/driver/ChPathFollowerDriver.cpp