IMU BIAS.
A raw accelerometer reads a small, steady offset even when the car is dead still. On the NeoRacer that correction happens on the MCU (microcontroller unit): the firmware zeroes the offsets and fuses the orientation before the data ever reaches ROS, so there are no calibration scripts or YAML files to manage. Your job is a two-minute check that the numbers look right.
THE OFFSET AT REST.
Every chip has manufacturing offsets: a gyroscope that reports a tiny rotation while sitting still, an accelerometer a hair off on one axis. Left uncorrected, those errors integrate into drift, which is why every serious robot removes them. The NeoRacer removes them in firmware, at the source, and streams the corrected state at ~200 Hz.
VERIFY AT REST.
Put the car on a flat, level surface and leave it alone while you read one message:
bashssh racecar@192.168.10.100 # or 10.42.0.1 on the access point ros2 topic echo /imu --once
linear_acceleration: roughly 9.8 on the axis pointing down (gravity counts), near 0 on the other two.angular_velocity: all three axes near 0 while nothing moves.orientation: a steady quaternion that stops changing once the car settles.
WHEN IT DRIFTS.
A large offset at rest, or a yaw that keeps creeping while the car sits still, points at the firmware's stored correction rather than anything on the Jetson. Re-flashing the firmware (covered in Firmware flashing) restores it, and support@neobotics.org can confirm whether a reading you are seeing is in the normal range.
