Python SDK Overview¶
The ARVOS Python SDK provides a complete toolkit for receiving and processing sensor data from the ARVOS iOS app.
Architecture¶
Base Server Class¶
All protocol servers inherit from BaseArvosServer:
from arvos.servers import BaseArvosServer
class MyServer(BaseArvosServer):
async def start(self):
# Start server
pass
async def stop(self):
# Stop server
pass
def get_connection_url(self) -> str:
return "my-protocol://..."
def get_protocol_name(self) -> str:
return "My Protocol"
Unified Callback Interface¶
All servers share the same callback interface:
server.on_connect = lambda client_id: print(f"Connected: {client_id}")
server.on_imu = lambda data: print(f"IMU: {data}")
server.on_camera = lambda frame: print(f"Camera: {frame}")
# ... etc
Protocol Servers¶
ArvosServer- WebSocket (default)GRPCArvosServer- gRPCMQTTArvosServer- MQTTHTTPArvosServer- HTTP/RESTMCAPStreamServer- MCAP StreamQUICArvosServer- QUIC/HTTP3
Client Class¶
For connecting to existing servers:
from arvos import ArvosClient
client = ArvosClient()
await client.connect("ws://192.168.1.100:9090")
await client.run()
Data Types¶
All sensor data is provided as typed dataclasses:
IMUData- IMU sensor dataGPSData- GPS location dataPoseData- ARKit pose dataCameraFrame- Camera frame dataDepthFrame- Depth/LiDAR dataWatchIMUData- Apple Watch IMUWatchAttitudeData- Apple Watch attitudeWatchMotionActivityData- Watch motion activity
→ Complete Data Types Reference
Features¶
Multi-Protocol Support¶
- 7 streaming protocols
- Unified API across all protocols
- Easy protocol switching
Type Safety¶
- Typed dataclasses
- Type hints throughout
- IDE autocomplete support
Async/Await¶
- Fully async API
- Non-blocking I/O
- High performance
Extensible¶
- Easy to add new protocols
- Custom callback handlers
- Plugin architecture
Next Steps¶
- Installation - Install the SDK
- Quick Start - Your first server
- API Reference - Complete API docs