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 logsModule 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.
