It is probably time I posted something about what I'm working on in the driver-training branch.
I am responsible for development in a research project which will use VDrift as a simulated driver training tool. The goal of the project is to use simulated driver training to augment real-world driver training.
So far, I have developed a simple class to remember some text to display called DRIVERFEEDBACK, and a replacement for the CARTELEMETRY class, called DATALOG.
DATALOG works by recording a specified set of variables the entire time the simulation is running. All the recorded data is available for query while the simulation continues running, and may be written to disk (so far, in gnuplot or csv format) when the simulation is ended. Data logging frequency may also be specified; currently it is set to 60 Hz.
Currently, variables available for logging are:
- Time - elapsed simulation time
- Velocity - speed of the driver's car in m/s
- Sector - driver's current track sector (as defined in track.txt)
- Throttle - driver input for gas pedal
- Brake - driver input for brake pedal
- Handbrake - driver input for handbrake
- Clutch - driver input for clutch pedal
- Steering - driver input for steering (positive for right steer, negative for left steer)
This is not an exhaustive list of variables; certainly, hundreds of different variables could be made available for logging. I will probably add more as needed.
The next step is to use the logged data to perform analyses upon the driver's behavior and present feedback to the driver accordingly. I'd really like to implement this as a standalone class; perhaps even as a set of classes derived from an abstract base class.
I'm interested in getting feedback on all this. I hope that this code will benefit VDrift besides being useful for the project at hand. Thus, I'm trying to make my code as general as possible.
Special thanks to Joe for his feedback and constructive criticism on DATALOG.