Skip to main content

Gustav Markkula's online resources

Tag: code

A framework for modelling road user interactions

Link: https://github.com/gmarkkula/COMMOTIONSFramework A Python 3 implementation of a modular framework for modeling road user interactions, developed in the EPSRC-funded project COMMOTIONS. The repository contains some base modules, an implementation of the framework for “straight crossing paths” scenarios, and a number of tests of specific model variants in driver-pedestrian interaction scenarios, as described in (Markkula et al., 2022). See the repository README for further guidance. Markkula, G., Srinivasan, A. R., Billington, J.

An accumulator model of detection of visually looming collision threats

Link: https://github.com/gmarkkula/LoomingDetectionStudy MATLAB implementations of the various accumulator (and threshold) models of visual looming detection described in (Markkula et al., 2021). The code can be found in the analysis folder in the Github repository, which also includes code for non-model analyses of the dataset used in the paper (as described here). The model implementations can be found in the SimulateOneTrial_AccumulatorModel.m and SimulateOneTrial_ThresholdModel.m functions, and an example of use of these functions can be found in do_19_model_MLEModelSimulationsForFigures.

A looming accumulation intermittent control braking model

Link: https://github.com/gmarkkula/HFES2014ModelsAndFigs A MATLAB implementation of the looming accumulation intermittent braking control model described in (Markkula, 2014). This implementation is very similar to what has later been presented in more complete detail in (Svärd et al., 2017; Svärd et al., 2021) and as a more task-general model of sustained intermittent control in (Markkula et al., 2018; code linked here). Markkula, G. (2014). Modeling driver control behavior in both routine and near-accident driving.

A variant of the dual accumulator model of strategic (game-theoretic) deliberation

Link: https://github.com/gmarkkula/GolmanEtAlTypeModel A Python (Jupyter Notebook) implementation of a variant of the “dual accumulator” model of human-like game-theoretic decision making, as proposed by Golman et al. (2019). Golman, R., Bhatia, S., & Kane, P. B. (2019). The dual accumulator model of strategic deliberation and decision making. Psychological Review. https://doi.org/10.1037/rev0000176

Models and simulation software for pedestrian and driver road-crossing decisions

Link: https://doi.org/10.17605/OSF.IO/49AWH MATLAB implementation of the models of road-crossing decisions of pedestrians and turning drivers, developed in the European interACT project and described in (Dietrich et al., 2019). This also includes a standalone “simulation tool” with a GUI allowing investigations of how crossing decisions are affected by the behaviour of an approaching vehicle. Dietrich, A., Bengler, K., Markkula, G., Giles, O. T., Lee, Y. M., Pekkanen, J., Madigan, R., & Merat, N.

Model of visual-vestibular sensory integration in steering control

Link: https://doi.org/10.17605/OSF.IO/K6WCP An extension of the task-general model of intermittent sensorimotor control (implementation linked here) to visual-vestibular sensory integration in car steering, including “optimal cue” reweighting of the integration, and other hypothesised behavioural adaptation mechanisms in response to downscaled vestibular cues, such as for example in a driving simulator. As proposed in (Markkula et al., 2019). The key script is RunSimulateSlalom.m, as called by do_SimulateSlalom.m. Markkula, G., Romano, R., Waldram, R.

Code for fitting a visual looming accumulation model of brake onset timing

Link: https://doi.org/10.17605/OSF.IO/647SY MATLAB implementation of a brake response time model based on accumulation of visual looming information, as initially proposed in (Markkula, 2014). The code also shows how to run a simple grid search to perform a maximum likelihood fitting of the model to observed brake response data, as done for example in (Engström et al, 2018; Xue et al., 2018; Piccinini et al., 2019). Engström, J., Markkula, G., Xue, Q.

Task-general modelling framework for intermittent sensorimotor control

Link: https://doi.org/10.17605/OSF.IO/DF9PW MATLAB implementation of the modelling framework proposed in (Markkula et al., 2018). See DoControlModelTimeStep.m, used in do_fig4_MinimalExample.m and do__G_SimulateLaneKeepingModel.m (via RunLaneKeepingSimulation.m). Markkula, G., Boer, E., Romano, R., & Merat, N. (2018). Sustained sensorimotor control as intermittent decisions about prediction errors: Computational framework and application to ground vehicle steering. Biological Cybernetics, 112(3), 181–207. https://doi.org/10.1007/s00422-017-0743-9

Method for extracting discrete control (e.g., steering) adjustments from a continuous signal

Link: https://doi.org/10.17605/OSF.IO/DF9PW MATLAB implementation of the method for extracting discrete control adjustments from a continuous control signal, proposed in (Markkula et al., 2018). See InterpretAsEffortLimitedIntermittentControl.m, used in do__B_InterpretAsIntermittentControl.m. Markkula, G., Boer, E., Romano, R., & Merat, N. (2018). Sustained sensorimotor control as intermittent decisions about prediction errors: Computational framework and application to ground vehicle steering. Biological Cybernetics, 112(3), 181–207. https://doi.org/10.1007/s00422-017-0743-9

Steering wheel reversal rate metric implementation

Link: https://github.com/gmarkkula/SteeringWheelReversalRate Implementation of the driver performance metric “steering wheel reversal rate”, as defined in (Markkula and Engström, 2006). This method for defining and calculating the metric, including the exact code linked here, is also standardised by the Society of Automotive Engineers (SAE, 2015). Markkula, G., & Engström, J. (2006). A steering wheel reversal rate metric for assessing effects of visual and cognitive secondary task load. Proceedings of the 13th ITS World Congress.