Integration Scenarios:
Controlled HTTP Bridge for Non-ROS Platforms The controlled HTTP bridge sample is located in the importable package examples.platform_bridge. It provides an HTTP-to-ROS 2 closed-loop entry point for platforms without ROS environments. It currently covers the recording Service translation and enforces the following security boundaries:
TIP
The examples/ scripts referenced on this page are obtained through the delivery package provided via official delivery channels; use the delivery package version matching your software version. The paths shown in this document are for illustrating script structure only.
- Startup requires a non-empty
REALBOT_BRIDGE_TOKEN; all three endpoints demand an exact matchingAuthorization: Bearer <token>header. - Defaults strictly to binding
127.0.0.1:8090; non-loopback bindings require explicit confirmation of "Robot Private LAN Only" scope. - POST requests MUST declare a decimal
Content-Lengthheader between 1–65,536 bytes, matching the exact byte count of the request body. - Metadata payloads permit ONLY four fields (
scene,task,operator,device), each 1–128 characters long, restricted in delivery samples to ASCII alphanumeric characters, dots, underscores, and hyphens; unknown fields, path separators, and control characters will be rejected. startandstoprequests are serialized via an in-process lock. Because this lock cannot prevent concurrent calls from other ROS 2 clients or secondary bridge processes, production platforms MUST enforce robot-level single-control authority.listreturns ONLY direct, non-symlink directory names under the configured recording root directory; file reading or deletion endpoints are NOT provided.- Access logs record ONLY HTTP methods, fixed paths, and status codes; logging
Authorizationheaders, tokens, or request bodies is strictly prohibited.
| Method | Path | Request Body | Success Response |
|---|---|---|---|
| POST | /record/start | Strict 4-field JSON | Recorder status: 0 JSON |
| POST | /record/stop | Strict 4-field JSON (matching start) | Recorder status: 0 JSON |
| GET | /record/list | None | Array of directory names under recordings |

