Neobotics Foundation Inc.
These docs are public and open source.Edit on GitHub

RACECAR SERVICE

The service command controls the systemd units on the car.

STATUS

racecar service status (or just racecar service) shows every on the car. On a fresh car:

bash
racecar@neoracer:~$ racecar service status neoracer-teleop active=active enabled=enabled neoracer-watchdog active=active enabled=enabled neoracer-dashboard active=active enabled=enabled neoracer-jupyter active=active enabled=enabled -- lab dashboards (off unless started) -- neoracer-camlabel active=inactive enabled=disabled neoracer-wallfollow active=inactive enabled=disabled neoracer-pursuit active=inactive enabled=disabled neoracer-eps active=inactive enabled=disabled neoracer-smartfollow active=inactive enabled=disabled
//Systemd units

Four units are installed enabled on all cars and should remain enabled always.

Systemd unitPortWhat it runs
neoracer-teleopRuns the driver, which publishes every topic on the car.
neoracer-watchdogSupervises the driver nodes and restarts a dead one.
neoracer-dashboard8080The health dashboard.
neoracer-jupyter8888JupyterLab, serving ~/jupyter_ws.
//Lab dashboards

Five more units install disabled and are started for a session. We are working to incorporate the dashboards within curriculums to foster learning using the NeoRacer; view them in detail in these slides.

Systemd unitPortWhat it runs
neoracer-camlabel8082Capture and label camera images into ~/data as a training dataset.
neoracer-wallfollow8081Dashboard for the wall-following lab.
neoracer-pursuit8083Dashboard for the pursuit lab.
neoracer-eps8084Dashboard for the EPS lab.
neoracer-smartfollow8085Dashboard for the smart-follow lab.

ENABLE AND DISABLE

An enabled unit starts on its own at boot. With no name, enable and disable apply to the four core units. A dashboard is enabled by name.

bash
racecar service enable # the core stack starts at boot racecar service disable # the core stack stays off at boot racecar service enable camlabel # camlabel is available at boot racecar service disable camlabel

START AND STOP

Start and stop act now and do not change what happens at boot. With no name they apply to the four core units; a dashboard is started by name for the session.

bash
racecar service stop # the core stack, now racecar service start # bring it back racecar service start camlabel # starts camlabel for this session racecar service stop camlabel

RESTART AND LOGS

With no name, restart restarts every enabled unit and never starts a disabled one. Logs stream from the journal; racecar service logs defaults to teleop.

bash
racecar service restart # every enabled unit racecar service restart teleop # one unit by name racecar service logs # journalctl -f for teleop racecar service logs jupyter # or name one