Install the driverNEORACER DOCS
NEORACER DOCS
These docs are public and open source.Edit on GitHub
GETTING STARTED / INSTALL THE DRIVER

INSTALL THE DRIVER.

The driver is the software that ties the Jetson to the sensors and motors. One script installs all of it: you clone the repository, run setup_all.sh, and the car comes up as a set of that start on every boot from then on.

~0 minutes
01 / WHAT YOU'RE WORKING ON

THE SYSTEM SPECS.

You are at the car's console from Get on the car, logged in as racecar, with the car online and the repository pulled. Every NeoRacer ships the same system, so the commands here match your car exactly.

Compute
Jetson Orin Nano 8GB (J401 carrier)
OS
Ubuntu 22.04.5 · JetPack 6.2.1
ROS 2
Humble
Username
racecar
Hostname
neoracer
Workspace
~/ros2_ws
02 / RUN THE SETUP

ONE SCRIPT.

The driver lives in one open-source repository, neoracer_ros2_driver. Cars from the factory already have it cloned at ~/ros2_ws/src/neoracer_ros2_driver, so you pull the latest and run the setup script. It asks for your password once (neobotics) and takes care of the rest.

bash
cd ~/ros2_ws/src/neoracer_ros2_driver git pull bash scripts/setup_all.sh

If your car does not have the repository yet, clone it first, then run the same script:

bash
mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src git clone https://github.com/Neobotics-Foundation-Inc/neoracer_ros2_driver.git bash neoracer_ros2_driver/scripts/setup_all.sh
03 / WHAT THE SCRIPT SET UP

SEVEN PHASES, EXPLAINED.

The script prints each phase as it goes. Here is what each one did to your car, so none of it is a mystery:

1

ROS 2 + dependencies. Installs ROS 2 Humble and the packages the driver builds against.

2

Dev tools. The build and debugging tools used throughout these docs.

3

User environment. Adds racecar to the hardware groups and wires the racecar command into your shell. That one command manages the whole car from here on.

4

udev rules. Gives the car's boards fixed device names (/dev/osrbot_base, /dev/osrbot_usb_cam, /dev/osrbot_led_matrix) so they never shuffle between boots.

5

Workspace build. Compiles the driver and the LakiBeam LiDAR driver with . There is exactly one LiDAR driver source, shared with the vendor workspace, so a LiDAR fix lands everywhere at once.

6

JupyterLab + the student library. Installs the browser coding environment and the racecar-neo library with its labs into ~/jupyter_ws. The library is ready to import, and rc.go() starts your program directly, tuned for the FlySky remote.

7

Services. Installs the four services and enables them on boot: the driver (neoracer-teleop), a watchdog that restarts anything that fails, the health dashboard on port 8080, and JupyterLab on port 8888.

04 / BRING THE CAR UP

START THE STACK.

The setup just changed two things about your login: it added the racecar command to your shell, and it added your user to the hardware groups that own the car's serial ports. Linux applies both at login, so your current session doesn't have them yet. Log out and back in once, and both are live. Then start the services. This first start is the only manual one; from now on the whole stack comes up on its own every time the car powers on.

bash
# log out of the session and back in (desktop: log out and back in; # SSH: exit and reconnect), then: racecar service start
05 / CHECK IT'S ALIVE

THREE QUICK CHECKS.

Each check confirms a different layer: the services are running, the sensors are streaming, and you can see it all from a browser.

//1 · The services
bash
racecar service status # neoracer-teleop active enabled # neoracer-watchdog active enabled # neoracer-dashboard active enabled # neoracer-jupyter active enabled
//2 · The sensors
bash
source /opt/ros/humble/setup.bash && source ~/ros2_ws/install/setup.bash ros2 topic hz /scan # LiDAR, about 30 Hz ros2 topic hz /camera # camera, about 60 Hz
//3 · The dashboard

Open the health dashboard in a browser on the car's network. Every card should be green: sensors, drive pipeline, temperature.

bash
http://10.42.0.1:8080 # access point http://192.168.10.100:8080 # cudy router
Where things liveAddress
Health dashboard:8080
JupyterLab (write code here next):8888
Driver logsracecar service logs
06 / GIVE IT ITS OWN NETWORK

THE CAR'S OWN NETWORK.

So far the car has been borrowing your network. One command, run at the console, sets up both of its permanent ones in one pass: its own access point (neoracer-1 at 10.42.0.1) and the fixed address for the cudy router (192.168.10.100).

bash
racecar setup networking # at the console

Then connect from your laptop: join neoracer-1 (password neobotics) and ssh racecar@10.42.0.1, or join the cudy router's Wi-Fi and use 192.168.10.100. The monitor and keyboard are no longer needed. Day-to-day connections, RustDesk, and the router details live on Networking.