Quick Start

SDK Playground (Browser-Based Development)

If you're using the SDK Playground, getting started is incredibly simple - just select a robot from the dropdown and start coding! Authentication, robot discovery, and connection are all handled automatically for you.

Standalone Development

For standalone clients (external development), first install the SDK:

JavaScript: Include the OLO Client scripts in your HTML, or see the SDK Demo for a complete example.

Python: Install via pip:

Then use the SDK's built-in authentication and connection methods:

JS
// JavaScript standalone connection const oloClient = new OLOClient({ apiUrl: 'https://app.olo-robotics.com' }); await oloClient.authenticate('username', 'password'); const robots = await oloClient.getUserRobots(); await oloClient.connect(robots[0].id);

See the Standalone Client Development section for complete setup instructions, example applications, and optional dependencies (e.g., video streaming support).

Basic Operations

Once connected, you can perform common robot operations:

Discover Available Topics:

JS
const topics = await oloClient.core.listTopics(); console.log('Available topics:', topics);

Subscribe to Sensor Data:

JS
await oloClient.core.subscribe('/sensor_data', (message) => { console.log('Sensor reading:', message); });

Control Robot Movement:

JS
// Move forward await oloClient.core.sendVelocity('/cmd_vel', { linear: 0.5, angular: 0 }); // Stop robot await oloClient.core.stopRobot('/cmd_vel');

Start Video Streaming:

JS
// In SDK Playground, videoElement is automatically provided const { bestTopic } = await oloClient.video.detectVideoTopics(); const session = await oloClient.video.startVideo(bestTopic, videoElement); console.log('Video streaming started:', session);

Record and Playback ROS Data:

JS
// Record ROS topics to bag file const recording = await oloClient.rosbagRecording.startRecording({ topics: ['/scan', '/odom', '/tf'], maxDurationSeconds: 30 }); // Play back recorded data const recordings = await oloClient.rosbagRecording.getRecordedFiles(); const playback = await oloClient.rosbagRecording.startPlayback(recordings[0].name, { playbackRate: 1.0 });

Next Steps

  • For SDK Playground: Start coding directly in your browser with AI assistance
  • For Standalone Development: See the Standalone Client Development section for complete setup instructions and examples