da3ee19688
feat(webui): settings & configuration panel (Issue #160 )
...
social-bot integration tests / Lint (flake8 + pep257) (pull_request) Failing after 2s
social-bot integration tests / Core integration tests (mock sensors, no GPU) (pull_request) Has been skipped
social-bot integration tests / Latency profiling (GPU, Orin) (pull_request) Has been cancelled
- useSettings.js: PID parameter catalogue, step-response simulation,
ROS2 parameter apply via rcl_interfaces/srv/SetParameters, sensor
param management, firmware info extraction from /diagnostics,
diagnostics bundle export, JSON backup/restore, localStorage persist
- SettingsPanel.jsx: 6-view panel (PID, Sensors, Network, Firmware,
Diagnostics, Backup); StepResponseCanvas with stable/oscillating/
unstable colour-coding; GainSlider with range+number input; weight-
class tabs (empty/light/heavy); parameter validation badges
- App.jsx: CONFIG tab group (purple), settings tab render, FLEET_TABS
set to gate ConnectionBar and footer for fleet/missions/settings
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 10:26:42 -05:00
51dcc01bfa
feat(webui): mission planner — waypoint editor, routes, geofences, schedule (Issue #145 )
...
useMissions.js:
- Waypoints: click-to-place, drag, dwell time, localStorage persistence
- Routes: loop/oneshot/pingpong, per-robot assignment, waypoint sequence
- Geofences: polygon draw (no-go / allowed zones)
- Templates: save/load profiles + JSON export/import
- Schedules: time+day triggers with client-side runner
- Executions: running/paused/aborted state per route
MissionPlanner.jsx:
- Canvas: waypoints, route lines + direction arrows, geofence fills,
robot position overlays, scale bar, zoom/pan, execution progress
- 7 sub-views: Map | Waypoints | Routes | Geofences | Templates | Schedule | Execute
- Execute: start/pause/resume/abort, waypoint-by-waypoint advance,
sends /goal_pose (single) and /outdoor/waypoints (patrol PoseArray)
- Integrates useFleet for robot selection and /goal_pose publishing
App.jsx: adds Missions tab to FLEET group
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 10:04:38 -05:00
85e5777994
feat(webui): add FLEET tab group to App.jsx — Issue #139
...
Adds FleetPanel import and FLEET tab group (green) to the main
dashboard navigation. Fleet tab is self-contained via useFleet.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 09:40:27 -05:00
b09f17b787
feat(webui): fleet management dashboard — Issue #139
...
- useFleet.js: multi-robot ROSLIB.Ros multiplexer with localStorage
persistence; per-robot balance_state/control_mode/odom/diagnostics
subscriptions; sendGoal, sendPatrol, scanSubnet helpers
- FleetPanel.jsx: fleet sub-views (Robots/Map/Missions/Video/Alerts)
plus RobotDetail overlay reusing ImuPanel/BatteryPanel/MotorPanel/
ControlMode/SystemHealth via subscribeRobot adapter pattern
- App.jsx: adds FLEET tab group pointing to FleetPanel
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 09:37:10 -05:00
78374668bf
feat(ui): telemetry dashboard panels (issue #126 )
...
Adds 6 telemetry tabs to the social-bot dashboard extending PR #112 .
IMU Panel (/saltybot/imu, /saltybot/balance_state):
- Canvas artificial horizon + compass tape
- Three.js 3D robot orientation cube with quaternion SLERP
- Angular velocity readouts, balance state detail
Battery Panel (/diagnostics):
- Voltage, SoC, estimated current, runtime estimate
- 120-point voltage history sparkline (2 min)
- Reads battery_voltage_v, battery_soc_pct KeyValues from DiagnosticArray
Motor Panel (/saltybot/balance_state, /saltybot/rover_pwm):
- Auto-detects balance vs rover mode
- Bidirectional duty bars for left/right motors
- Motor temp from /diagnostics, PID detail for balance bot
Map Viewer (/map, /odom, /outdoor/route):
- OccupancyGrid canvas renderer (unknown/free/occupied colour-coded)
- Robot position + heading arrow, Nav2/OSM path overlay (dashed)
- Pan (mouse/touch) + zoom, 2 m scale bar
Control Mode (/saltybot/control_mode):
- RC / RAMP_TO_AUTO / AUTO / RAMP_TO_RC state badge
- Blend alpha progress bar
- Safety flags: SLAM ok, RC link ok, stick override active
- State machine diagram
System Health (/diagnostics):
- CPU/GPU temperature gauges with colour-coded bars
- RAM, GPU memory, disk resource bars
- ROS2 node status list sorted by severity (ERROR → WARN → OK)
Also:
- Three.js vendor chunk split (471 kB separate lazy chunk)
- Updated App.jsx with grouped SOCIAL + TELEMETRY tab nav
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 09:18:39 -05:00
1cd8ebeb32
feat(ui): add social-bot dashboard (issue #107 )
...
React + Vite + TailwindCSS dashboard served on port 8080.
Connects to ROS2 via rosbridge_server WebSocket (default ws://localhost:9090).
Panels:
- StatusPanel: pipeline state (idle/listening/thinking/speaking/throttled)
with animated pulse indicator, GPU memory bar, per-stage latency stats
- FaceGallery: enrolled persons grid with enroll/delete via
/social/enrollment/* services; live detection indicator
- ConversationLog: real-time transcript with human/bot bubbles,
streaming partial support, auto-scroll
- PersonalityTuner: sass/humor/verbosity sliders (0–10) writing to
personality_node via rcl_interfaces/srv/SetParameters; live
PersonalityState display
- NavModeSelector: shadow/lead/side/orbit/loose/tight mode buttons
publishing to /social/nav/mode; voice command reference table
Usage:
cd ui/social-bot && npm install && npm run dev # dev server port 8080
npm run build && npm run preview # production preview
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 08:36:51 -05:00