Skip to main content
Version: ROS 2 Jazzy

OLO Robotics

OLO Robotics is a browser-based robotics platform that brings simulation, visualization, teleoperation, and development into one place - with native ROS 2 access, JavaScript and Python SDKs, and AI-assisted coding. The goal is to spend less time wiring together separate tools and more time working with your robot.

What to expect?​

This guide shows how to connect a Leo Rover to OLO by installing the OLO appliance on the Leo Rover. The appliance runs in Docker, links the robot to the OLO dashboard, and bridges your ROS 2 stack to the platform. From there you can teleop, stream camera feeds, record and playback ROS topics, run navigation workflows, and develop against your hardware from anywhere. No changes to Leo Rover hardware are required.

Leo Rover in the OLO platform visualizer

Prerequisites​

📄Software update
Detailed guide on updating the software of Leo Rover, covering steps to access the microSD card, download and flash the latest LeoOS image.
📄Connect via SSH
Learn how to establish an SSH connection with your Leo Rover and access its terminal using Putty or OpenSSH.
📄Connect to a local network and the Internet
Learn how to connect your Leo Rover to a local network and the internet to download files and forward internet to your computer.

You also need a free OLO account.

note

This guide assumes your Leo Rover is running LeoOS 2.0.0 or newer with ROS 2 Jazzy.

Software integration​

info

All steps below are performed on the Leo Rover over SSH unless noted otherwise.

Installing Docker on the Leo Rover​

Install Docker Engine by following the official Docker installation guide for Ubuntu.

It is recommended to add your user to the docker group so Docker commands do not require sudo:

sudo usermod -aG docker $USER
newgrp docker

Generating a device API key​

Open the OLO dashboard, sign in, and click Register Appliance. In the dialog, name the robot Leo Rover and continue. This displays a Device API key beginning with apl_.

Copy the key, then on the Leo Rover store it in an environment file (replace apl_<your-device-api-key> with your key):

mkdir -p ~/olo-appliance
echo "OLO_APL_DEVICE_API_KEY=apl_<your-device-api-key>" > ~/olo-appliance/.env

Creating Docker Compose​

Create a Docker Compose file:

cat <<"EOF" > ~/olo-appliance/compose.yaml
services:
olo-appliance:
image: olorobotics/olo-appliance:jazzy-latest
container_name: olo-appliance
network_mode: host
environment:
OLO_APL_DEVICE_API_KEY: $OLO_APL_DEVICE_API_KEY
FASTDDS_BUILTIN_TRANSPORTS: UDPv4
volumes:
- olo-data:/data
restart: unless-stopped

volumes:
olo-data:
driver: local
EOF

Starting the appliance​

Pull the image and start the appliance. The first run downloads the Docker image, which may take a few minutes:

cd ~/olo-appliance
docker compose up -d

Verifying the installation​

After the image is pulled and the container starts, the appliance should appear on your OLO dashboard.

You can also verify that the container is running:

docker compose ps

Check the logs for errors:

docker compose logs -f olo-appliance

You should see the appliance connect to the OLO backend and discover the Leo Rover's ROS 2 topics.

Updating the appliance​

When a new appliance image is available, pull the latest image and recreate the container:

cd ~/olo-appliance
docker compose pull
docker compose up -d

Optional cleanup of old unused images:

docker image prune -f

Uninstalling the appliance​

To remove the OLO appliance, stop and remove the Compose resources:

cd ~/olo-appliance
docker compose down

To uninstall Docker Engine as well, follow Docker's official Ubuntu uninstall guide.