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

THE FILE SYSTEM

After logging in as racecar, open the terminal in the home directory ~. The file system installed during setup is now visible on the car.

THE HOME DIRECTORY

bash
racecar@neoracer:~$ ls data Downloads logs osracer_demo Public Videos Desktop home Music osracer_ws ros2_ws Documents jupyter_ws neoracer-installer Pictures Templates

The car comes with stock Ubuntu directories such as Desktop, Documents, Downloads, and more. There are six directories that are installed on the car.

DirectoryDescription
ros2_wsStores the latest version of the driver.
jupyter_wsStores the Python library, starter code, and any additional code you write.
osracer_wsThe vendor stack: robot description, SLAM and Nav2.
neoracer-installerThe installer that set the car up.
logsOne timestamped folder per run of the driver.
dataObject-detection datasets, written by the camlabel dashboard.

ros2_ws stores the neoracer_ros2_driver pulled from GitHub. You can view your dashboards, trained models, launch and config files, and all the setup scripts used to initialise the NeoRacer.

bash
~/ros2_ws$ ls build install log src ~/ros2_ws/src$ ls lakibeam1 neoracer_ros2_driver ~/ros2_ws/src/neoracer_ros2_driver$ ls CHANGELOG.md docs neoracer_ros2_driver scripts CITATION.cff launch package.xml setup.cfg config LICENSE README.md setup.py CONTRIBUTING.md models resource test

jupyter_ws is the main workspace where code is written. JupyterLab is available in your browser as a service on port 8888, and its file system is this folder.

bash
~/jupyter_ws$ ls neoracer-os README.md ~/jupyter_ws/neoracer-os$ ls labs library ~/jupyter_ws/neoracer-os/labs$ ls demo.py lab_a lab_c lab_e lab_g template.py utility grand_prix lab_b lab_d lab_f lab_i tests ~/jupyter_ws/neoracer-os/library$ ls camera.py drive.py nav.py racecar_core.py simulation vision.py controller.py led.py physics.py racecar_utils.py slam.py display.py lidar.py __pycache__ real telemetry.py

In the workspace there is labs and library. labs holds the lab exercises and some template code. library has all the rc.* modules that we use in the Python API reference. The tests folder holds the test notebook used in Test the system.

//Opening JupyterLab

It is one of the four services that start at boot, so there is nothing to launch. Join the car's network and open its address on port 8888.

bash
http://192.168.10.100:8888 # cudy router http://10.42.0.1:8888 # the car's access point
//Notebooks or scripts
Notebook (.ipynb)Script (.py)
Good forRunning small tests, checking values, teachingA normal program run start to finish
How you run itCell by cell in the browserpython3 <file> from a terminal
StateKept in the kernel between cellsGone when the program exits
//Restart the kernel

A notebook holds the car's sensors for as long as its kernel is alive, even after the last cell has finished. If you open a second notebook, or run a script while a notebook is still loaded, the second one might fail.

  • When you are done, open the Kernel menu and choose Restart Kernel and Clear Outputs of All Cells.
    The Kernel menu with Restart Kernel and Clear Outputs of All Cells highlighted

A second ROS 2 workspace, preinstalled on the image. It holds the autonomy tier: the robot description, SLAM and Nav2.

Coming soon
//neoracer-installer

The installer downloads the driver onto the car. It is cloned and run once during setup. Its logs folder records every install run.

bash
~/neoracer-installer$ ls docs logs README.md scripts tests
//logs

This refers to the logs in the ~ directory, not the logs in neoracer-installer. Every run of the stack writes a timestamped folder here, and logs/latest points at the most recent one. The health dashboard reads it.

//data

data is created by the camlabel dashboard the first time you use it. It holds the captured images, their labels, and object classes, in YOLO format. This folder becomes a training dataset.