Description
Interactive driver model using keyboard inputs.
Irrlicht-based GUI driver for the a vehicle. This class implements the functionality required by its base ChDriver class using keyboard or joystick inputs. As an Irrlicht event receiver, its OnEvent() callback is used to keep track and update the current driver inputs.
- See also
- ChDataDriver
#include <ChIrrGuiDriver.h>
Public Types | |
enum | InputMode { InputMode::LOCK, InputMode::KEYBOARD, InputMode::DATAFILE, InputMode::JOYSTICK } |
Functioning modes for a ChIrrGuiDriver. More... | |
Public Member Functions | |
ChIrrGuiDriver (ChVehicleVisualSystemIrrlicht &vsys) | |
Construct an Irrlicht GUI driver. | |
virtual bool | OnEvent (const irr::SEvent &event) override |
Intercept and process keyboard inputs. | |
virtual void | Initialize () override |
Initialize this driver system. | |
virtual void | Synchronize (double time) override |
Update the state of this driver system at the specified time. | |
virtual void | Advance (double step) override |
Advance the state of this driver system by the specified time step. | |
void | SetInputMode (InputMode mode) |
Set the current functioning mode. | |
std::string | GetInputModeAsString () const |
Return the current functioning mode as a string. | |
void | SetThrottleDelta (double delta) |
Set the increment in throttle input for each recorded keypress (default 1/50). | |
void | SetSteeringDelta (double delta) |
Set the increment in steering input for each recorded keypress (default 1/50). | |
void | SetBrakingDelta (double delta) |
Set the increment in braking input for each recorded keypress (default 1/50). | |
void | SetStepsize (double val) |
Set the step size for integration of the internal driver dynamics. | |
void | SetGains (double steering_gain, double throttle_gain, double braking_gain) |
Set gains for internal dynamics. More... | |
void | SetInputDataFile (const std::string &filename) |
Set the input file for the underlying data driver. | |
void | SetJoystickConfigFile (const std::string &filename) |
Set joystick JSON configuration file name. | |
void | SetJoystickDebug (bool val) |
Enable/disable joystick debugging output (default: false). | |
void | SetButtonCallback (int button, void(*cbfun)()) |
Feed button number and callback function to implement a custom callback. | |
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]) | |
DriverInputs | GetInputs () const |
Get all current inputs at once. | |
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. | |
Protected Member Functions | |
bool | ProcessJoystickEvents (const irr::SEvent &event) |
bool | ProcessKeyboardEvents (const irr::SEvent &event) |
Protected Attributes | |
ChVehicleVisualSystemIrrlicht & | m_vsys |
InputMode | m_mode |
current mode of the driver | |
double | m_steering_target |
current target value for steering input | |
double | m_throttle_target |
current target value for throttle input | |
double | m_braking_target |
current target value for braking input | |
double | m_stepsize |
time step for internal dynamics | |
double | m_steering_delta |
steering increment on each keypress | |
double | m_throttle_delta |
throttle increment on each keypress | |
double | m_braking_delta |
braking increment on each keypress | |
double | m_steering_gain |
gain for steering internal dynamics | |
double | m_throttle_gain |
gain for throttle internal dynamics | |
double | m_braking_gain |
gain for braking internal dynamics | |
irr::core::array< irr::SJoystickInfo > | m_joystick_info |
Irrlicht joystick information. | |
std::string | m_joystick_file |
JSON specification file. | |
int | m_joystick_proccess_frame |
counter for successive event processing frames | |
bool | m_joystick_debug |
enable/disable debug output | |
int | m_joystick_debug_frame |
counter for successive output frames | |
ChIrrJoystickAxis | steerAxis |
ChIrrJoystickAxis | throttleAxis |
ChIrrJoystickAxis | brakeAxis |
ChIrrJoystickAxis | clutchAxis |
ChIrrJoystickButton | shiftUpButton |
ChIrrJoystickButton | shiftDownButton |
ChIrrJoystickButton | gearReverseButton |
ChIrrJoystickButton | gear1Button |
ChIrrJoystickButton | gear2Button |
ChIrrJoystickButton | gear3Button |
ChIrrJoystickButton | gear4Button |
ChIrrJoystickButton | gear5Button |
ChIrrJoystickButton | gear6Button |
ChIrrJoystickButton | gear7Button |
ChIrrJoystickButton | gear8Button |
ChIrrJoystickButton | gear9Button |
ChIrrJoystickButton | toggleManualGearboxButton |
int | m_callback_button |
joystick button associated to the custom callback | |
void(* | m_callback_function )() |
custom callback, can be implemented in the application | |
double | m_time_shift |
time at which mode was switched to DATAFILE | |
std::shared_ptr< ChDataDriver > | m_data_driver |
embedded data driver (for playback) | |
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 | |
Member Enumeration Documentation
◆ InputMode
|
strong |
Functioning modes for a ChIrrGuiDriver.
Enumerator | |
---|---|
LOCK | driver inputs locked at current values |
KEYBOARD | driver inputs from keyboard |
DATAFILE | driver inputs from data file |
JOYSTICK | driver inputs from joystick |
Member Function Documentation
◆ ProcessJoystickEvents()
|
protected |
Gear is set to reverse
◆ SetGains()
void chrono::vehicle::ChIrrGuiDriver::SetGains | ( | double | steering_gain, |
double | throttle_gain, | ||
double | braking_gain | ||
) |
Set gains for internal dynamics.
Default values are 4.0.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono_vehicle/driver/ChIrrGuiDriver.h
- /builds/uwsbel/chrono/src/chrono_vehicle/driver/ChIrrGuiDriver.cpp