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 ----------------------------------------- #. Confirm that the robot drivers and required ROS 2 stacks are running. #. Install or start the :doc:`OLO Appliance ` in the same ROS 2 environment. #. Register the Appliance in the Portal and configure its device API key. #. SDK v2 is enabled on the Appliance by default; set ``OLO_APL_SDK_V2=false`` only to fall back to SDK v1. #. Verify that the Appliance and robot use the intended ROS domain and that expected topics are visible. #. Open the SDK Playground and run a read-only example, such as topic listing, before commanding motion. SDK v2 connection check ----------------------- .. tab-set:: :sync-group: sdk-language .. tab-item:: Python :sync: python .. code-block:: python 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. .. tab-item:: TypeScript :sync: typescript .. code-block:: typescript 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 :doc:`quickstart`, then use the :doc:`examples/index` and :doc:`api/index` for the capability you need.