Organize host and robot streaming releases

This commit is contained in:
Mike Mi
2026-08-09 15:56:20 +08:00
commit decff19daf
532 changed files with 127054 additions and 0 deletions

84
README.md Normal file
View File

@@ -0,0 +1,84 @@
# OmniSocketGo_streaming
This repository contains the extracted streaming stack for the control host
and the robot. It keeps two mutually exclusive robot camera implementations:
| Area | Path | Camera source | Use when |
| --- | --- | --- | --- |
| Control host | `host/` | KCP hub, Django API, Vue UI | Running the operator/control side |
| Robot release A | `robot/v4l2/OmniSocketGo_robot/` | Direct `/dev/video*` (V4L2) | Testing the legacy/direct device path |
| Robot release B | `robot/ros2/OmniSocketGo_robot_ros/` | ROS 2 RGB topics + shared-memory bridge | Keeping `proc_manager`/Orbbec ownership and using the ROS 2 path |
Do not start both robot releases at the same time on one robot. They use the
same KCP peer identities and their camera ownership requirements are
different.
## Repository layout
```text
host/
OmniSocketGo_add_camera/ C/KCP transport, Python bindings, scripts
robot-command-center/ Django backend and Vue frontend
requirements.txt
robot/
v4l2/OmniSocketGo_robot/ `/dev/video*` release extracted from 2026-08-08 bundle
ros2/OmniSocketGo_robot_ros/ ROS 2 camera release validated on the robot
release/ Original release notes and SHA256 manifests
NETWORK_LINK_STARTUP_GUIDE.md Direct-LAN and single-public-hub guidance
```
The original compressed bundles were intentionally extracted rather than
committed again. Machine-local `*.env.local`, build directories, caches,
frontend dependencies, and generated binaries are ignored. Copy the matching
`*.env` file to a local override on the target machine and edit addresses and
paths there.
## Quick start
### Control host
Read `host/README_PACKAGE.md`, then keep these directories as siblings when
installing on Linux:
```text
<install-root>/OmniSocketGo_add_camera
<install-root>/robot-command-center
```
The normal direct-LAN order is local KCP hub, backend, then frontend. The full
commands and the one-public-Hub variation are in
`NETWORK_LINK_STARTUP_GUIDE.md`.
### Robot: direct V4L2 release
```bash
cd robot/v4l2/OmniSocketGo_robot
./check-robot-lan.sh
./start-robot-lan.sh
```
This release opens the selected V4L2 devices directly. Stop any camera service
that owns the device before starting it.
### Robot: ROS 2 release
```bash
cd robot/ros2/OmniSocketGo_robot_ros
make
```
Follow `robot/ros2/README.md` and
`robot/ros2/OmniSocketGo_robot_ros/docs/ROS2_CAMERA_FORWARDING.md`. In the
default ROS 2 mode the Orbbec/proc_manager stack owns `/dev/video*`; the ROS 2
bridge subscribes to RGB topics and exposes the latest frames to the existing
KCP daemon without opening V4L2.
## Review status
The original 2026-08-08 host and V4L2 archive hashes are retained under
`release/`. The ROS 2 release is the separately tested source tree that was
developed for ROS 2 camera ownership. The repository is source-only: C/KCP and
ROS 2 builds must be performed on their target Linux/ARM64 environments.
See `docs/RELEASE_REVIEW.md` for the boundary checks and known machine-local
configuration values.