<center><a href="https://cpm.embedded.rwth-aachen.de/" target="_blank" rel="noopener noreferrer">CPM Lab</a></center>

<center><a href="https://github.com/embedded-software-laboratory/cpm_lab" target="_blank" rel="noopener noreferrer">GitHub</a></center>

<center><a href="https://cpm-remote.embedded.rwth-aachen.de" target="_blank" rel="noopener noreferrer">Remote Access</a></center>

This documentation provides technical information in detail of the Cyber-Physical Mobility Lab at the Chair of Embedded Software at RWTH Aachen University.  In our Lab it is possible to test and evaluate strategies for connected autonomous driving. Therefore we provide remote access which you can find on our website of the CPM Lab.

In this documentation we show you how to setup your environment for simulation only as well as for a full scale setup. We provide tutorials to get into our software quickly. You can also have a deeper look into special topics which we present in In-Depth Tutorials. If you have questions or feedback please let us know: cpm-support(at)embedded(dot)rwth-aachen(dot)de.

As you can see in the picture the Lab consists of the Master PC which provides the access to the infrastructure. It processes information from the Indoor Positioning System (IPS) and information from our user interface called the Lab Control Center (LCC). You can upload your program in the LCC which will send the commands to the vehicles Data Distribution Service (DDS) of the RTI Connext which works similar to a cloud system by providing all information to all members of the service. All vehicles and NUCs participate in the DDS as well. The NUCs process the commands and execute your program. In each NUC a local DDS provides the information with the middleware. Once all data is evaluated it is shared with the central DDS and sent to the vehicle.

Software architecture

The software for each vehicle is distributed between three major components:

Two supporting software components run on a separate "Master PC":

All software components use our CPM library (cpm-lib). The CPM-lib provides functions to communicate with the vehicle and the IPS system. You can find functions for localization and vehicle states.