JOAN documentation

Welcome to the JOAN human-automated vehicle interaction simulator documentation! This documentation should get you up and running with JOAN and CARLA.

JOAN is an open-source software framework that builds upon CARLA, a simulator made to study automated driving, by making CARLA also useful for human-in-the-loop experiments of human drivers and other road users interacting with automated vehicles.

Among others, we build JOAN to enable you to

  • quickly set up (human-in-the-loop) experiments with repeatable conditions
  • define repeatable traffic scenarios
  • easily log data
  • implement haptic driver-automated vehicle interaction

Check out the table of content below for installation instructions and more information on JOAN. Also check out the repository for current issues, etc.


We tested JOAN with CARLA 0.9.9, not (yet) with the latest version. If you tested JOAN with the latest CARLA build (and it works), awesome! Please let us know through the issue tracker!

JOAN is developed by members of the Human-Robot Interaction group at Cognitive Robotics of Delft University of Technology.

Please use the following reference if you end up using JOAN for your work (and do not forget to reference CARLA too!)

Beckers, N., Siebinga, O., Giltay, J., & Van der Kraan, A. (2021). JOAN, a human-automated vehicle experiment framework. Retrieved from

We created a video showcasing JOAN and CARLA for the Symbiotic Driving Simulator for one of our research projects on haptic shared control in driving:

  • Because JOAN depends heavily on CARLA, we strongly recommend you to check out the CARLA documentation.
  • You can find the JOAN repository here. The underlying framework of JOAN is finished, so that core functionality will not change to ensure backward compatibility.

Table of content

Setup JOAN and CARLA

A thorough guide on setting up JOAN and CARLA:

First steps

If you want to build up an understanding of JOAN the sections below are a good place to start:

Using the JOAN modules

Several modules are included with JOAN by default, the way to use them is described in their separate sections:


Please check the documentation on the usage of the shared variables, a very important step is described there concerning setting and getting shared variables.

  • Data Recorder - The data recorder is a module that can record data.
  • CARLA Interface - CarlaInterface manages the different agents you can add in simulation.
  • Hardware Manager - The hardware manager is a module that manages hardware inputs.
  • Experiment Manager - The experiment manager is a useful tool for performing experiments
  • Haptic Controller Manager - The haptic controller manager is a module that manages haptic (steering wheel) controllers.
  • Data Plotter - The data plotter is a module that easily makes data insightful at runtime.

Advanced steps

If you want to know more and add to JOAN yourself you can have a look at these sections:

Other documentation

Want to contribute?