Central Workstation

This section outlines the setup of the central workstation of the CPM Lab: its software, the NTP server and the services the muCars need. Use Ubuntu 24.04 with ROS2 Jazzy, see Supported Platforms. The workstation has the address 192.168.1.249 in the lab network, see Network.

Central Workstation

The CPM Lab requires a central workstation which can be used for central computation but is primarily used for the indoor positioning system and visualization.

Central workstation connected to the lab router by Ethernet and to the IPS camera by USB

The central workstation with the lab router (Ethernet) and the IPS camera (USB 3)

Development Setup

Install the software according to the Building from Source guide, or use the Debian packages (Install from Debian Packages) or the desktop image (Docker Images) if you do not develop on it. Use Zenoh as middleware, see Middleware.

Local NTP Server with chrony (Ubuntu 22.04 and newer)

Ubuntu 26.04 no longer ships the ntp package and the new default time service is chrony. On Ubuntu 22.04 and 24.04 chrony works the same way. Installing it replaces an existing ntp installation. The cars are unchanged. They keep synchronizing their clock from the central workstation.

  1. Make sure chrony is installed and starts at boot:

sudo apt install chrony
sudo systemctl enable chrony
  1. Configure chrony

Open the chrony configuration file at /etc/chrony/chrony.conf.
Add the following line to allow NTP access from the cars’ IP range:
allow 192.168.1.0/24

If the central workstation has no internet connection, also add the following line. Without it, chrony reports itself as unsynchronized and the cars do not accept its time:

local stratum 10

Restart chrony on the central workstation:

sudo systemctl restart chrony

Firewall Ports

Starting with Ubuntu 24.04 it is required to open several ports on the system for the cars to connect to.

sudo ufw allow http # For the web server hosting the vehicle packages
sudo ufw allow 123/udp # For the ntp server
sudo ufw allow 123/tcp # For the ntp server
sudo ufw allow 7447/udp # For the zenoh router
sudo ufw allow 7447/tcp # For the zenoh router

Services for the muCars

The muCars have no internet access. The central workstation (192.168.1.249) provides everything they need:

Service

Port

Set up with

Web server with the controller package

80

sudo apt install apache2; the cars download /var/www/html/raspberry3/package.tar.gz on every start, published with make deploy of the vehicle workspace

Zenoh router

7447

ros2 run rmw_zenoh_cpp rmw_zenohd (or make router in the lab workspace), keep it running while the lab is used. It is deliberately not started at boot; start it before the lab, see Troubleshooting Guide.

NTP server

123

chrony, see above; the cars wait for a synchronized clock before they start the controller

apt proxy and mucar-os repository

3142, 8090

make -C image proxy in the vehicle workspace, only needed to update packages on running cars

See muCar for building and deploying the controller and setting up the cars. Open the apt ports in addition to the firewall ports above if you update the cars:

sudo ufw allow 3142/tcp # apt proxy for the cars
sudo ufw allow 8090/tcp # mucar-os package repository

Headless Deployment

The central workstation can run the CPM Lab without a display. Start the control flow together with the Foxglove bridge and host the Lichtblick web visualization on the central workstation, see Visualization with Lichtblick:

source /opt/ros/jazzy/setup.bash
export ROS_DOMAIN_ID=21
ros2 launch cpm_lab cpm_lab_foxglove.launch.xml

Everyone in the lab network can then operate the lab in the browser. The experiment recordings are stored on the central workstation in ~/cpm_lab/experiments of the user that started the lab, see Recording and Evaluating Experiments. The firewall must allow the ports of the web visualization and the Foxglove bridge:

sudo ufw allow 8080/tcp # Lichtblick web visualization
sudo ufw allow 8766/tcp # Lichtblick API
sudo ufw allow 8765/tcp # Foxglove bridge