3.1 KiB
OmniSocketGo Robot LAN Package
This package is preconfigured for a robot connected directly by Ethernet to
the operator computer at 192.168.41.144.
Network topology
robot Ethernet (for example 192.168.41.145/24)
-> UDP 192.168.41.144:10909
-> local KCP hub on the operator computer
All relay settings are empty. Video uses
peer-b-video -> peer-a-video; control uses peer-a-ctrl -> peer-b-ctrl.
In the legacy V4L2 mode both cameras are opened and kept streaming:
- head:
/dev/video26 - waist:
/dev/video18
Only the camera selected by OMNI_CAMERA_ACTIVE is encoded and transmitted.
The default is head. The ROS2-native default does not open these devices;
it subscribes to the corresponding Orbbec RGB topics instead.
Robot preparation
On Ubuntu, install the build/runtime dependencies if they are not already available:
sudo apt-get install build-essential pkg-config \
libavformat-dev libavcodec-dev libavutil-dev libswscale-dev \
v4l-utils psmisc python3-colcon-common-extensions \
ros-jazzy-rclpy ros-jazzy-sensor-msgs
Configure the robot Ethernet interface in the same subnet as the computer,
for example 192.168.41.145/24, and verify:
ping -c 3 192.168.41.144
Then build and check the package:
make b_side_omnid
./check-robot-lan.sh
Start
If the robot boot watchdog is already managing an older daemon, stop it first so it cannot reopen the cameras:
sudo systemctl stop blitz-watchdog.service blitz-b-side-omnid.service
Start the LAN sender:
./start-robot-lan.sh
The camera preflight may stop only the known orbbec_head.service and
orbbec_waist.service units to release the two devices. It refuses to stop the
whole proc_manager.service.
Successful dual-camera initialization prints:
[video_pipeline] camera head ready on /dev/video26
[video_pipeline] camera waist ready on /dev/video18
The periodic daemon line should then report video registered=1, with
frames increasing. For a development start, inspect:
python3 -m json.tool logs/runtime/b-side-omnid.status.json
Expected fields include video_connected: true, an increasing
video_frames_sent, an empty video_last_error, and
video_active_camera: head.
Select the waist camera at startup
Edit scripts/dev/robot-remote.env.local and set:
OMNI_CAMERA_ACTIVE="waist"
Then restart start-robot-lan.sh. Runtime text commands camera:head and
camera:waist sent from peer-a-ctrl also switch the active input without
reopening either camera.
Important
For this direct-LAN validation, use start-robot-lan.sh. Do not install the
existing 5G-oriented blitz-robot.target boot chain until its modem policy has
been adapted for the target robot.
ROS 2 相机输入
本 ROS-native 版本默认使用 OMNI_CAMERA_SOURCE=ros2。头部/腰部 RGB 由
omnisocket_camera_bridge 订阅 ROS 2 图像 topic 后写入共享内存,视频 C
管线不再直接打开 /dev/video*。启动与服务占用策略见
docs/ROS2_CAMERA_FORWARDING.md,RGB+深度接口见
docs/ROS_CAMERA_INTERFACES.md。