This page is a guide for real life experiments at the CPM Lab at the chair i11 of the RWTH Aachen.

Use the Main PC

Use the Main PC to run your real life application in the lab. It is the only PC in the room that is connected to the IPS. It is also possible to access it via remote, but also in this case, the script you want to test has to run on the Main PC. 

When you enter the room the main PC is the one where the cable from the celing (IPS and labcam) are connected (it is the third PC from the entrance door when you go straight).

  1. Start the router by using turning on the wallplug using the white remote control (position 2).
  2. Start the main PC. If you do not see a login screen this most likely because the login screen is shown either on the big screen on the wall or the screen on your left. You can either unplug the second screen or turn the corresponding screen on (worst case, turn on both).
  3. Check the current branch and checkout your branch if necessary.
  4. Use git clean -xdf
  5. Use ./build_all.bash
  6. Start the LCC

Let the vehicles drive!

First step: See if your script works in simulation!!!!

If it does, proceed:

  1. Turn the vehicles on and position them on the ground.
  2. Turn on "lab mode" to activate the IPS.
  3. All active vehicles will be selected by the LCC.
  4. Load your script and hit "deploy".

If you have problems, refer to the diagnosis-tab. It can give a first idea where to look for errors.

Using the labcam

  1. Use the switch Lab camera → "Record"
  2. Your video starts automatically.
  3. Finish your recording by turning off the switch Lab camera→"Record"
  4. You find the videos at the folder lab_control_center/labcam

Find errors at RTI DDS transmission

Use the RTI Tool (you find it on the main PC in applications):

  1. Select "admin console"
  2. Go to domain and View Preferences
  3. Change the DDS Domain (on the bottom of the admin console) if necessary (the main PCs ID is 21, if you are not on the main PC you find it in /etc/profile)
  4. Subscribe to the topic you want to listen to (keep the "advanced settings" unchanged)→ now you can choose the selected field if it is not already displayed from the dropdown menu.

Using NUCs for distributed calculation

The idea of the NUCs is to simulate a potent computer on a real vehicle for each vehicle. If you do not use the "NUC"-mode, all calculation will be done centralized on the main PC.

Turn on NUCs

Switch on the wallplug of the server rack by using the white remote control usually close to the main PC.  The NUCs start automatically and each NUC will signal the LCC individually that it is online. You can find the online NUCs in the window on the bottom next to the button "reset view" at "HLC online". When you open the menu each NUC that is online is displayed. For each vehicle there is one corresponding NUC. The IDs have to match (e.g. vehicle 6 to NUC 6).

When you start the NUCs there is a program that is called "autostart". This program requests a password or, if you connect to the main PC, is connected via a ssh connection. The program will ask the main PC if there is a new software version for the NUCs and after a potential update it forces the NUCs to give a feedback every second to the main PC in the way of " I am online (ID)", where it identifies its ID via its own IP. if this alive-signal is not sent for a specified period of time, the LCC will mark this NUC as offline.


The NUC is supposed to simulate a potent server on a real life vehicle. This server would be usually connected via LAN. In the lab the vehicle and the NUC are seperate and therefore connected via WLAN. They use the DDS strucutre to exchange data.

Use the NUCs

  1. You can use the NUCs if you choose the "deploy remote" option. The script will be sent to the NUCs for calculation instead of being calculated on the main PC centrally.
  2. Start your program choosing "Deploy" . The script will be loaded to the NUC and started.
  3. Switch to the timer-tab in the LCC. When all NUC are ready ("WAITING") select "Start".
  4. To finish your simulation hit either "Stop" in the timer-tab or "Kill" in the setup-tab.

You cannot use the "Central Routing" example for the distributed calcuation, as its purpose is to be calculated centralized (that why it is called CENTRAL routing;)).

If you upload it on the NUC, each NUC would calculate the trajectory and collisions for only local IDs and would have no knowledge about the neighbours. So collisions would be quite possible.