Client Architecture

The OLOClient uses a modular architecture with specialized modules accessible through the main client instance:

JS
// Main client instance const oloClient = new OLOClient(); // Access specialized modules oloClient.core // Core ROS functionality (topic management, publishing, subscribing) oloClient.joint // Joint control and manipulation oloClient.video // WebRTC video streaming oloClient.videoRecording // Video recording to MP4 files oloClient.vision // Vision AI analysis oloClient.navigation // Nav2 navigation and mapping oloClient.rosbagRecording // ROSBag recording and playback oloClient.logs // Read and query script execution logs

Module Overview:

  • Core - Essential ROS operations (topics, services, parameters)
  • Joint - Robot arm manipulation and joint control
  • Video - Real-time video streaming and recorded video playback with WebRTC
  • Video Recording - Record camera topics to MP4 files with quality control
  • Vision - Computer vision and AI analysis (motion detection, object detection, LLM vision)
  • Navigation - Autonomous navigation and mapping
  • ROSBag Recording - Record and play back ROS topics to/from bag files
  • Logs - Read and query script execution logs from the appliance

Direct ROS Access: For advanced use cases, you can bypass SDK abstractions: JavaScript can use ROSLib directly, Python can use roslibpy (WebSocket) or native rclpy (direct ROS2). See the "Direct ROS Access" section.