Getting Started

Choose the path that matches where your robot environment runs.

Portal and managed simulation

The OLO Portal is the browser entry point for Platform features. Sign in at app.olo-robotics.com and select a Cloud Sim environment, if enabled for your account, or a registered Appliance. From the robot workspace you can open the SDK Playground and the available visualization tools.

The Playground starts code on the Appliance or managed simulation. Connection details are injected into that execution environment, so SDK v2 examples use Client() or connect() without a target.

Physical robot or local ROS 2 environment

  1. Confirm that the robot drivers and required ROS 2 stacks are running.

  2. Install or start the OLO Appliance in the same ROS 2 environment.

  3. Register the Appliance in the Portal and configure its device API key.

  4. SDK v2 is enabled on the Appliance by default; set OLO_APL_SDK_V2=false only to fall back to SDK v1.

  5. Verify that the Appliance and robot use the intended ROS domain and that expected topics are visible.

  6. Open the SDK Playground and run a read-only example, such as topic listing, before commanding motion.

SDK v2 connection check

from olo import Client

with Client() as client:
    for topic in client.core.list_topics(timeout=2.0):
        print(topic.name, topic.msg_type)

Outside the Playground, pass "host:port" to Client or set OLO_SDK_GRPC_TARGET. The Python distribution is named olo-py and requires Python 3.10 or newer.

import { connect } from "olo/node";

const client = connect();
for (const topic of await client.core.listTopics({ timeoutMs: 2000 })) {
  console.log(topic.name, topic.msgType);
}

Use olo/node for a Node process. Browser applications use olo/web and need a reachable gRPC-Web endpoint, for example connect("http://appliance-host:50151"). The TypeScript package requires Node 24.2 or newer.

Before motion

Robot commands affect real hardware. Check the active robot namespace, keep the manufacturer’s safety system and emergency stop available, start with read-only calls, and use conservative targets. A successful SDK connection does not prove that MoveIt, Nav2, controllers, localization, or every sensor is healthy.

Continue with Quickstart, then use the Examples and API Reference for the capability you need.