Specification¶
This section specifies the public surface of the inorbit-connector package: what you are expected to override when implementing a connector, and what you can call at runtime.
Intended usage¶
An InOrbit connector is an application that:
Connects to your robot (or fleet manager) and to InOrbit via the InOrbit Edge SDK.
Runs a periodic execution loop to publish telemetry (pose, odometry, key-values, system stats).
Optionally handles commands coming from InOrbit.
You typically:
Implement a single-robot connector by subclassing
inorbit_connector.connector.Connector.Implement a fleet connector by subclassing
inorbit_connector.connector.FleetConnector.
At runtime, you call:
start()to spawn the connector thread and begin the async lifecycle.join()to block the main thread until shutdown.stop()to request shutdown.
During the lifecycle, the framework calls your overrides:
_connect()once at startup (before sessions are initialized)._execution_loop()repeatedly at approximatelyconfig.update_freqHz._disconnect()once at shutdown.A command handler (
_inorbit_command_handler()for single-robot;_inorbit_robot_command_handler()for fleet) when commands arrive.
For map handling, publish_pose() / publish_robot_pose() automatically trigger map publication when the frame_id changes. If a map is not configured, the connector can fetch it by overriding fetch_map() / fetch_robot_map().
For narrative guides, see:
Single robot: Single-Robot Connector
Fleet: Fleet Connector
Commands: Commands Handling
Publishing: Publishing Data
Configuration: Configuration
API surface (callable + overridable)¶
The table below lists package-defined symbols meant for direct use (call) or extension (override). Each row links to a longer specification page.
Kind |
Symbol |
Purpose |
Details |
|---|---|---|---|
Override |
|
Connect to external services (fleet manager, robot backends) before sessions initialize. |
|
Override |
|
Periodic loop; publish telemetry for each robot. |
|
Override |
|
Shutdown external services and release resources. |
|
Override |
|
Handle commands for a specific |
|
Override (optional) |
|
Fetch a missing map (bytes + metadata) when publishing pose refers to an unknown |
|
Override (optional) |
|
Provide robot online status; used by Edge SDK callback. |
|
Call |
|
Run and control the connector lifecycle. |
|
Call |
|
Update fleet configuration (typically during |
|
Call |
|
Publish pose; triggers map publish when |
|
Call |
|
Publish map metadata/image from configured maps (or after fetch). |
|
Call |
|
Publish odometry. |
|
Call |
|
Publish key-value telemetry. |
|
Call |
|
Defer publishing of system stats for a specific robot; defaults are published if not called. |
|
Call (advanced) |
|
Access the underlying Edge SDK |
|
Override |
|
Same lifecycle hooks as fleet, for a single robot. |
|
Override |
|
Handle commands for the single robot. |
|
Override (optional) |
|
Fetch a missing map for the current robot when pose references an unknown |
|
Override (optional) |
|
Provide online status for the current robot. |
|
Call |
|
Publish pose/map for the current robot (map handling included). |
|
Call |
|
Publish telemetry for the current robot. |
|
Call (advanced) |
|
Access the underlying Edge SDK |
|
Type |
|
Base configuration model for connectors. |
|
Type |
|
Per-robot configuration (robot_id + cameras). |
|
Type |
|
Map configuration (file-backed vs in-memory bytes) used by map publishing/fetching. |
|
Type |
|
Logging configuration and log-level enum. |
|
Call |
|
Load YAML configuration data (with deprecated |
|
Type / Call |
|
Standard command result code enum and structured failure exception. |
|
Call |
|
Parse custom-command args (RunScript action payload) into |
|
Type |
|
Pydantic-based command argument validation utilities. |
|
Call |
|
Configure logging from |
|
Type |
|
Optional |