Software — Brain & UI
Raspberry Pi acts as the companion computer for A.V.A — running vision, dialogue, model-serving and the web UI while microcontrollers handle real-time servo control.
View Software ArchitectureKey Responsibilities
Vision & Perception
libcamera/picamera2 pipelines, object detection, pose estimation
Speech & Dialogue
STT, TTS, dialogue manager and intent handling
Motion Gateway
ROS2 / motor gateway that publishes joint targets to microcontrollers
Telemetry & Remote UI
WebSocket dashboard, OTA, logs
System Architecture
Pi (ROS2, perception, web UI)
↕
(UART / I²C / MQTT / ROS topics)
↕
Arduinos (real-time control)
↕
PCA9685 (PWM drivers)
↕
Servos (actuation)
This layered architecture ensures that software can focus on high-level intelligence while hardware guarantees real-time control and safety. See the Integrated page for details on system coordination.
Live Telemetry Dashboard
System Uptime
1d 02:14
CPU Usage
12.4%
Memory Usage
34.8%
System Temperature
56.3°C
Camera FPS
18.6
Inference Latency
45.2ms
Real-time telemetry is pushed via WebSocket at /ws/telemetry. The dashboard monitors system health and allows authorized users to trigger commands and diagnostics.
Motion Control Panel
All gesture commands pass server-side safety checks before execution. Joint limits are validated against the PCA channel mapping, and the system ensures safe power and heartbeat status before dispatch.
Service & Deployment
Recommended OS & Base Image
Raspberry Pi OS 64-bit or Ubuntu 64-bit for ARM
- •Better library support for machine learning frameworks
- •Improved ROS2 compatibility
- •Native support for arm64 binaries
Middleware: ROS2 (Humble/Iron/Ice)
Model serving: TF-Lite / ONNX runtime
Acceleration: Coral or AI HAT (optional)
API Reference
GET /api/status
Returns system status and health information
{
"hostname": "ava-pi-01",
"uptime": "1d 02:14",
"services": {
"perception": "running",
"motor_gateway": "running"
},
"battery_v": 12.1
}GET /api/gestures
List available gestures with parameters
[
{
"id": "greeting_wave",
"desc": "Friendly wave gesture",
"speed_range": [0.5, 2.0],
"joint_preview": { ... }
}
]POST /api/motion/execute
Execute a gesture (requires authentication)
// Request
{
"gesture": "greeting_wave",
"speed": 1.0,
"repeat": 1
}
// Response
{
"ok": true,
"execution_id": "exec_20260120_001",
"queued": true
}WebSocket /ws/telemetry
Real-time system telemetry stream
{
"type": "telemetry",
"timestamp": "2026-01-20T12:34:56Z",
"uptime": "1d 02:14",
"cpu_pct": 12.4,
"mem_pct": 34.8,
"temp_cpu": 56.3,
"fps_camera": 18.6,
"inference_ms": 45.2,
"battery_v": 12.1,
"heartbeat_ms": 30
}Hardware Dependencies
Software depends on hardware for real-time motion control. For details on the PCA9685, power architecture, and servo configuration, see the Hardware page.
To understand how software, hardware, and safety integrate as a system, visit the Integrated page.