DocumentationNEORACER DOCS
NEORACER DOCS
These docs are public and open source.Edit on GitHub
Back to neobotics.org
00 / NEORACER DOCS · V1.0 · MAY 2026

NEORACER DOCS.

Everything you need to take a NeoRacer from a sealed box to a full autonomous lap, and everything you need to teach the next thirty students how to do the same.

01 / HARDWARE → SOFTWARE → HARDWARE

THE DATA FLOW

Every NeoRacer behaviour, from a teleop drive to a full racing stack, is the same shape: sensors publish, your code subscribes, your code publishes, actuators subscribe. ROS 2 just provides the cables.

  • Each part of the car runs as a separate program, ROS 2 calls these nodes.
  • Nodes don't call each other directly.
  • They publish on named channels (topics). Anyone listening picks them up.
  • NeoRacer's teleop starts four nodes.
FIG. A / DATA FLOW, HARDWARE TO SOFTWARE TO HARDWARE
//Sensors
//ROS 2 Nodes
//Your Code
//Actuators
Camera
PUB
camera_node
/camera
LiDAR
PUB
richbeam_lidar_node0
/scan
Joystick
PUB
joy_node
/joy
IMU (ESP32)
PUB / SUB
controller_node
/imu /odom · /drive
The Goal
What will you
create here?
Lane keeping, obstacle avoidance, gap follower, end-to-end RL.
Motors + Servo
The four nodes that ship in neoracer-teleop. Your code lives in the red panel.
03 / YOUR FIRST HOUR

BOX TO FIRST LAP.

The Getting Started spine is five pages, each under ten minutes. The whole thing fits inside a single classroom period.

0:00
Unbox
0:08
Charge LiPo
0:30
First drive
0:45
Hello world
1:00
First lap
04 / WHAT YOU'LL BUILD ALONG THE WAY

WHAT YOU'LL BUILD.

These four are the foundation. The rest of autonomous racing, SLAM, MPC, RL, just builds on them.

01

Wall follow

A single LiDAR call. A proportional controller. One loop of the corridor.
Your first hands-on with closed-loop control. Goal: keep 30 cm from the right wall, no collisions.
rc.lidar.get_average_distance(scan, 90, 8)
02

Lane keeping

Camera + colour threshold + steering. The same loop F1 teams run.
Move from LiDAR to vision. Find a coloured tape line in the frame and steer to keep it centred.
cv2.findContours(mask, RETR_EXTERNAL, …)
03

Gap follower

Find the largest free arc in the LiDAR scan and aim for it.
No prior map needed. Works in arbitrary corridors. Foundation algorithm of the F1TENTH community.
biggest_gap(scan, threshold=2.0)
04

End-to-end RL

PPO in the Playground sim, deploy unchanged to the car.
When you're ready to push further, you can train a neural network policy in the browser sim and run it on the car with the same Python API.
policy.forward(obs).action
06 / NEW

Recently shipped.

May 2026

v1.0, First shipping customer release.

The full Getting Started spine, the sensor reference, and the motor and servo calibration cookbook are live.

Read the changelog →
// BEFORE YOU BUY · TRY IT IN THE BROWSER
Same Python API. Zero install.

NeoRacer Playground is the in-browser simulator. Every line of code you write there runs unchanged on the physical car.