Camera no feedNEORACER DOCS
NEORACER DOCS
These docs are public and open source.Edit on GitHub
TROUBLESHOOTING / CAMERA

NO CAMERA FEED.

Either the camera node didn't start, the USB cable is loose, or the webcam doesn't advertise the MJPG format the driver expects. Three checks, in the order the data takes to reach your code.

~0 minutesVisible from SSHCommon right after a re-flash
// YOU SEE
rc.camera.get_color_image() returns a frame full of zeros, or ros2 topic hz /camera reports no publisher.
// WHAT SHOULD HAPPEN
A 640×480 JPEG frame at 60 fps on /camera. In Python, a NumPy array shaped (H, W, 3) with real pixel values.
01 / IS THE NODE EVEN UP?

NODE STATUS.

bash
# 1. Is the teleop driver running? ssh racecar@neoracer racecar status # shows running nodes ros2 topic list | grep camera # /camera should be there # 2. Does the kernel see the webcam, and does it advertise MJPG? ls -l /dev/osrbot_usb_cam # udev symlink v4l2-ctl --list-formats-ext -d /dev/osrbot_usb_cam # MJPG format must appear # 3. If teleop is up but /camera publishes nothing, bring the stack back up. racecar teleop # 4. Confirm the topic publishes. ros2 topic hz /camera
02 / THREE THAT ACTUALLY HAPPEN

LIKELY CAUSES.

01

Lens sticker

The shipping film stays on more often than you'd think.
The factory applies a clear protective film to the lens, and it's the quickest thing to rule out, so it's worth a peek before anything else. A frame that's uniformly dim but not pure black is usually this.
visual check · peel film
02

camera_node crashed

systemd thinks it's up but it isn't producing.
racecar service restart clears most stuck states. If the log shows a permissions error on /dev/video0, re-run bash scripts/setup_udev.sh and log out and back in so the group applies.
racecar service restart
03

Loose USB cable

The camera is a USB device at the front of the car.
Follow the camera's USB cable to the hub and reseat both ends. Once it's re-seated, racecar service restart lets the driver re-enumerate the bus.
reseat · restart