# saltybot_dashboard — Issue #483

Remote monitoring dashboard for SaltyBot — web UI served on Orin port 8080.

## Features

- **Real-time Status**: Battery %, voltage, robot state, motor speeds
- **Sensor Health**: Camera, LiDAR, audio, IMU status indicators
- **Map View**: Occupancy grid visualization
- **Event Log**: Last 20 events from event logger (Issue #473)
- **WiFi Signal**: Signal strength monitoring
- **WebSocket Updates**: Live push updates to all connected clients
- **Mobile-Friendly**: Responsive design works on phones/tablets
- **REST API**: `/api/status` endpoint for HTTP polling fallback

## Launch

```bash
ros2 launch saltybot_dashboard dashboard.launch.py port:=8080
```

## Access

Open browser to: `http://<orin-ip>:8080`

## ROS2 Topics Monitored

- `/saltybot/battery_percent` — Battery percentage
- `/saltybot/battery_state` — Battery voltage/current
- `/saltybot/telemetry/motor_rpm` — Motor speeds
- `/saltybot/state` — Current robot state
- `/saltybot/events` — Event stream
- `/saltybot/sensor_health` — Sensor status
- `/map` — Occupancy grid (OccupancyGrid)

## Architecture

- **Backend**: Flask + Flask-SocketIO (Python/ROS2)
- **Frontend**: HTML5 + CSS3 + JavaScript
- **Protocol**: WebSocket (with HTTP polling fallback)

## Issue #483
Implements remote monitoring dashboard as specified in Issue #483.
