ParamsNEORACER DOCS
NEORACER DOCS
These docs are public and open source.Edit on GitHub
API REFERENCE / ROS 2

ROS 2 PARAMETERS.

Every node in the driver declares real, live ROS 2 parameters, and the ones below are the ones you will actually reach for: the throttle caps that scale every /drive command, the controller mapping from commands to physical speed and angle, the camera settings, and the LiDAR launch arguments.

Live via ros2 paramPersisted in config/*.yamlneoracer_ros2_driver
THROTTLE_NODE · config/throttle.yaml

THE SPEED CAPS.

The most-tuned three values on the car. Full chain: your command [-1, 1] × these caps × the controller's max_speed_mps = what the motor is asked to do.

ParameterShipped valueMeaning
max_speed_forward1.0Scales every forward /drive command before it reaches the controller. At 1.0 a full-speed command uses the whole firmware ceiling; lower it to derate the car.
max_speed_backward1.0The reverse scale, same idea in the other direction.
max_steering0.625Scales the commanded steering angle before the servo mapping. 0.625 is full servo lock; a higher value stalls the servo against the linkage.
CONTROLLER_NODE · config/controller.yaml

THE ESP32 BRIDGE.

ParameterShipped valueMeaning
max_speed_mps6.0The physical speed a full-scale command maps to, in m/s. Matches the firmware’s closed-loop ceiling; raising it past 6.0 needs a firmware change, not a parameter.
max_steering_angle_deg30.0The steering angle a full-scale command maps to, in degrees.
steering_trim_deg0.0Added to every steering command so a 0.0 angle drives straight. Set through the servo-center calibration.
rc_min / rc_center / rc_max1000 / 1500 / 2000The FlySky channel calibration, in microseconds. Readings below rc_failsafe_below (500) mean no signal and read as neutral.
port_name/dev/osrbot_baseThe ESP32 serial device, held stable by the udev rules the setup installs.
publish_magfalseThe magnetometer topic is off by default; the fused orientation already comes from the MCU state frame.
CAMERA_NODE · config/camera.yaml

THE CAMERA.

ParameterShipped valueMeaning
image_width × image_height640 × 480The capture resolution requested from the camera.
framerate60.0Frames per second on /camera. The node passes the camera’s native MJPG through, so this is real throughput, not a target.
video_device/dev/osrbot_usb_camThe stable udev name for the USB camera; the node falls back to scanning /dev/video* if it moves.
LIDAR · launch arguments

THE LIDAR DRIVER.

The LakiBeam1 driver takes these as launch arguments in lidar.launch.py rather than runtime parameters; the driver pushes them to the sensor's own configuration at startup.

ParameterShipped valueMeaning
frame_idlaserThe TF frame stamped on every /scan.
sensorip192.168.8.2The LakiBeam1’s address on the USB-C bridge (the host side is 192.168.8.1). The driver pushes configuration to the sensor here at startup.
scanfreq30Revolutions per second the sensor is configured to spin, which is the /scan publish rate.
scan_range_start / stop45 / 315The sensor’s live window in its own frame: 270 degrees of returns. This is why the rear wedge of a scan carries no data.
//Reading and setting parameters at runtime
bash
# What does a node expose? ros2 param list /throttle_node # Read one ros2 param get /throttle_node max_speed_forward # Change one while the node runs (until the next restart) ros2 param set /throttle_node max_speed_forward 0.3 # Make it permanent instead: edit config/throttle.yaml, then racecar service restart