OLO Appliance

The OLO Appliance is robot-side software. It connects to an OLO account using a device API key, participates in a ROS 2 environment, hosts browser-initiated script execution, and can expose the SDK v2 gRPC control plane.

Installation choices

Cloud Sim environments provision their Appliance automatically. OLO hardware appliances arrive with robot-side software installed. For a self-hosted release on Linux or WSL with Ubuntu 22.04 or newer, the current public installer is:

$ curl -sSL https://raw.githubusercontent.com/OLO-Robotics/olo-appliance-release/main/install.sh | bash
$ cd ~/olo-appliance/olo-appliance-release/app
$ ./setup.sh --defaults --dist

The release setup expects ROS 2 and its robot-specific dependencies to be available. ROS communication is handled in-process via rclnodejs; LAN clients and code execution use ws://localhost:<port>/local-rosbridge. Cloud clients connect via the OLO server /rosbridge WebSocket and WebRTC data channels. The setup prompts for OLO account credentials during the guided setup. For production or automated deployment, prefer a provisioned device API key over storing user credentials.

Registration and identity

Register an Appliance from the Portal’s Add Appliance flow. Copy the generated device API key when it is shown and provide it to the runtime:

OLO_APL_DEVICE_API_KEY=apl_your-device-api-key
OLO_APL_APPLIANCE_NAME=My Appliance

OLO_APL_ROBOT_ID is optional; the Appliance can resolve and persist its robot identity after registration. Treat the device key as a secret. To rotate it, use Account & Security > Appliance Device Keys, update the runtime environment, and restart or recreate the Appliance process.

ROS 2 configuration

The Appliance uses an in-process ROS 2 transport (rclnodejs). Cloud clients connect via the OLO server /rosbridge WebSocket and WebRTC data channels. LAN clients and code execution use ws://localhost:<port>/local-rosbridge on the appliance HTTP port.

Set OLO_APL_ROS_DOMAIN_ID when the robot does not use the default domain, and ensure that the Appliance process has sourced the same ROS distribution and workspace as the robot drivers. See ROS 2 Concepts for OLO for domains and namespaces.

SDK v2

SDK v2 is enabled by default in the Appliance configuration. Two variables control it:

OLO_APL_SDK_V2=false     # opt out and fall back to the v1 rosbridge control plane
OLO_APL_GRPC_PORT=50151  # listener port (50151 is the default)

The current runtime starts separate Core, Spatial, Kinematics, and Navigation executors behind one Envoy listener. The listener host defaults to 127.0.0.1 and the port defaults to 50151. Playground scripts receive that target automatically.

The SDK surface depends on the robot’s ROS graph. Core topic operations require matching topics and message types; Spatial requires TF data; Kinematics requires a usable MoveIt setup; Navigation requires a usable Nav2 setup. Vision in SDK v2 contains client-side camera geometry, depth, alignment, and tracking helpers; it is not the Portal’s video, recording, or AI-vision management API.

Platform management is separate

The Appliance also has capability flags for remote shell, code execution, maintenance, simulator control, MoveIt management, Nav2 management, log streaming, topic throttling, remapping, and general settings. These flags control Appliance and Portal management operations. They do not add methods to the SDK v2 API. GET /capabilities and the capabilities field in GET /health report that management surface to the Portal.

For hardened deployments, review the Appliance release configuration before enabling management operations or making any listener network-accessible.