# OmniSocketGo robot package This archive is the robot-side source package. It contains the camera discovery, occupancy handling, dual-camera switching, KCP video sender and robot control daemon. It does not contain the web frontend or the control-host backend. ## Install ```bash cd OmniSocketGo_robot sudo apt-get update sudo apt-get install -y \ build-essential pkg-config \ libavformat-dev libavcodec-dev libavutil-dev libswscale-dev \ v4l-utils psmisc udev systemd \ python3 iproute2 iputils-ping curl make b_side_omnid ``` The package intentionally excludes binaries built on the x86_64 control host. Always build `bin/b_side_omnid` on the robot itself. ## Verify the included camera mapping logic ```bash test -f scripts/dev/resolve-camera-device.sh grep -n "resolve_camera_devices" scripts/dev/start-b-side-omnid.sh grep -n "OMNI_CAMERA_AUTO_DISCOVER" scripts/dev/robot-remote.env.local ``` The current mapping is: ```text head serial: CP9E163000H3 waist serial: CPCK8530005N capture mode: MJPG 1280x720 ``` Review `scripts/dev/robot-remote.env.local` before starting, especially the KCP server address, camera serial numbers and service names. ## Start direct-LAN mode ```bash sudo systemctl stop blitz-watchdog.service blitz-b-side-omnid.service || true ./start-robot-lan.sh ``` Expected startup messages include: ```text stopping known camera service ... [camera-discovery] head: serial=... -> /dev/video... [camera-discovery] waist: serial=... -> /dev/video... [start-b-side-omnid] resolved head=... waist=... [video_pipeline] camera head ready ... [video_pipeline] camera waist ready ... video registered=1 ``` `check-robot-lan.sh` still reports the configured fallback `/dev/video*` nodes. The real startup path performs dynamic serial-number discovery after releasing the known camera services.