HomeSoftware

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 Architecture

Key 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

Select a gesture...
1.0

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.

Built with v0