OLO Logo

OLO Platform - Robot Programming Made Simple

OLO is a comprehensive ROS2 accelerator platform that makes robot programming accessible to everyone. This documentation covers the OLO Client SDK - the JavaScript and Python libraries that let you control robots, stream video, process sensor data, and build autonomous behaviors through the OLO platform.

Getting Started

What is OLO?
OLO is a comprehensive ROS2 accelerator platform that transforms robot programming from complex to simple. It's an all-i...
The ROS2 Foundation
OLO exists to make robot programming easier and faster. While ROS2 is powerful, it has a steep learning curve and requir...
OLO Appliance
The OLO Appliance is robot-side software that manages the connection between ROS2 and the web portal, and executes your ...
Development Environments
The OLO SDK supports two primary development approaches, each optimized for different use cases:...
Architecture
Understanding where your code and the OLO SDK execute is important for latency, reliability, and offline operation. The ...
Quick Start
If you're using the SDK Playground, getting started is incredibly simple - just select a robot from the dropdown and sta...

API Reference

Client Architecture
The OLOClient uses a modular architecture with specialized modules accessible through the main client instance:...
Authentication
The OLOClient provides built-in authentication methods for user login and appliance discovery....
Connection Management
Note: In the SDK Playground, connection is automatic - you don't need these methods. They are only required when using a...
Topic Management
Get list of available ROS topics....
Publishing Messages
Publish a message to a ROS topic....
Robot Control
Robot control operations support abort signals for safe, cancellable movement. This is essential for emergency stops and...
Video Streaming
The video module provides both live video streaming from robot cameras and video playback of recorded files....
Video Recording
The video recording module provides the ability to record video data from any camera topic and save it as MP4 files dire...
ROSBag Recording and Playback
The ROSBag recording module provides comprehensive capabilities for recording ROS topics to bag files and playing them b...
Navigation
The navigation module provides autonomous navigation capabilities using the Nav2 stack. It supports two primary navigati...
Actions
ROS2 actions are designed for long-running tasks that provide feedback during execution and can be cancelled. Unlike ser...
Joint Control
The joint module provides robot arm manipulation and joint control capabilities....
Planning Scene Management
The joint client provides methods for managing saved planning scenes (obstacle layouts) and manipulating collision objec...
Vision Analysis
The vision module provides AI-powered computer vision analysis of robot camera feeds using processing on the Appliance. ...
Nodes & Services
Get list of all ROS nodes in the system....
Parameters
ROS 2 uses a node-scoped parameter system where parameters belong to specific nodes. The OLO client provides parameter a...
Direct ROS Access
For advanced use cases requiring fine-grained control beyond SDK abstractions, you can access ROS directly using two app...
Utility Methods
Get list of currently subscribed topics....
Logs Module
The Logs module (oloClient.logs / client.logs) provides access to script execution logs stored on the appliance. This en...
Global Variables
Global variables provide a way for scripts to share data and communicate with each other. Variables are stored on the ap...
Script Orchestration
Script Orchestration enables modular, reusable automation by allowing scripts to call other scripts, chain them sequenti...
Error Handling
The OLOClient provides comprehensive error handling:...

Standalone Client Development