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.
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.
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.
bashcd ~/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:
bashmkdir -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
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:
ROS 2 + dependencies. Installs ROS 2 Humble and the packages the driver builds against.
Dev tools. The build and debugging tools used throughout these docs.
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.
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.
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.
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.
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.
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
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.
bashracecar service status # neoracer-teleop active enabled # neoracer-watchdog active enabled # neoracer-dashboard active enabled # neoracer-jupyter active enabled
bashsource /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
Open the health dashboard in a browser on the car's network. Every card should be green: sensors, drive pipeline, temperature.
bashhttp://10.42.0.1:8080 # access point http://192.168.10.100:8080 # cudy router
| Where things live | Address |
|---|---|
| Health dashboard | :8080 |
| JupyterLab (write code here next) | :8888 |
| Driver logs | racecar service logs |
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).
bashracecar 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.
