85 lines
3.0 KiB
Markdown
85 lines
3.0 KiB
Markdown
# 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.
|