feat: WebUI settings panel (Issue #614) #622

Merged
sl-jetson merged 1 commits from sl-webui/issue-614-settings-panel into main 2026-03-15 11:03:04 -04:00
Collaborator

Issue #614 — WebUI Settings and Configuration Panel

Standalone ui/settings_panel.{html,js,css} — no build step.

Tabs

PID

  • balance_controller: Kp, Ki, Kd, I-clamp, control rate
  • adaptive_pid: Kp/Ki/Kd per load profile (empty/light/heavy), output bounds (min/max, Kp/Ki/Kd safety bounds)

Speed

  • tank_driver: max linear/angular vel, max drive speed, slip factor, watchdog timeout
  • smooth_velocity_controller: linear/angular accel + decel limits
  • battery_speed_limiter: speed scaling factors (full/reduced/critical)

Safety

  • safety_zone: danger_range_m (default 0.30m), warn_range_m (1.00m), forward arc, debounce frames, min valid range, publish rate
  • power_supervisor_node: battery % thresholds (warning/dock/critical/emergency), speed factors
  • lidar_avoidance: e-stop distance, min safety zone, zone at max speed

Sensors

  • Boolean toggles: estop_all_arcs, lidar_enabled, uwb_enabled
  • uwb_imu_fusion: UWB/IMU weights, publish rate

System

  • Live /diagnostics subscriber: CPU/GPU/board/motor temps, RAM/GPU/disk usage, WiFi RSSI + latency, MQTT status
  • /rosapi/nodes node list (refresh on demand)

Parameter I/O

Each section has independent ↓ LOAD (get_parameters service) and ↑ APPLY (set_parameters service) buttons via rosbridge WebSocket. Success/error status shown per section. Changed fields highlighted in amber.

Presets

Save/load/delete named snapshots of all parameter values to localStorage. Reset-to-defaults restores built-in defaults.

## Issue #614 — WebUI Settings and Configuration Panel Standalone `ui/settings_panel.{html,js,css}` — no build step. ## Tabs ### PID - `balance_controller`: Kp, Ki, Kd, I-clamp, control rate - `adaptive_pid`: Kp/Ki/Kd per load profile (empty/light/heavy), output bounds (min/max, Kp/Ki/Kd safety bounds) ### Speed - `tank_driver`: max linear/angular vel, max drive speed, slip factor, watchdog timeout - `smooth_velocity_controller`: linear/angular accel + decel limits - `battery_speed_limiter`: speed scaling factors (full/reduced/critical) ### Safety - `safety_zone`: danger_range_m (default 0.30m), warn_range_m (1.00m), forward arc, debounce frames, min valid range, publish rate - `power_supervisor_node`: battery % thresholds (warning/dock/critical/emergency), speed factors - `lidar_avoidance`: e-stop distance, min safety zone, zone at max speed ### Sensors - Boolean toggles: estop_all_arcs, lidar_enabled, uwb_enabled - `uwb_imu_fusion`: UWB/IMU weights, publish rate ### System - Live `/diagnostics` subscriber: CPU/GPU/board/motor temps, RAM/GPU/disk usage, WiFi RSSI + latency, MQTT status - `/rosapi/nodes` node list (refresh on demand) ## Parameter I/O Each section has independent **↓ LOAD** (`get_parameters` service) and **↑ APPLY** (`set_parameters` service) buttons via rosbridge WebSocket. Success/error status shown per section. Changed fields highlighted in amber. ## Presets Save/load/delete named snapshots of all parameter values to `localStorage`. Reset-to-defaults restores built-in defaults.
sl-webui added 1 commit 2026-03-15 10:09:05 -04:00
Standalone ui/settings_panel.{html,js,css} — no build step.

Sections / tabs:
- PID: balance_controller (Kp/Ki/Kd/i_clamp/rate),
  adaptive_pid (kp/ki/kd per load profile, output bounds)
- Speed: tank_driver (max_linear_vel, max_angular_vel, slip_factor),
  smooth_velocity_controller (accel/decel limits),
  battery_speed_limiter (speed factors)
- Safety: safety_zone (danger_range_m, warn_range_m, forward_arc_deg,
  debounce, min_valid_range, publish_rate),
  power_supervisor_node (battery % thresholds, speed factors),
  lidar_avoidance (e-stop distance, safety zone sizes)
- Sensors: boolean toggles (estop_all_arcs, lidar_enabled, uwb_enabled),
  uwb_imu_fusion weights and publish rate
- System: live /diagnostics subscriber (CPU/GPU/board/motor temps,
  RAM/GPU/disk usage, WiFi RSSI+latency, MQTT status, last-update),
  /rosapi/nodes node list

ROS2 parameter services (rcl_interfaces/srv/GetParameters +
SetParameters) via rosbridge WebSocket. Each section has independent
↓ LOAD (get_parameters) and ↑ APPLY (set_parameters) buttons with
success/error status feedback.

Presets: save/load/delete named snapshots of all values to
localStorage. Reset-to-defaults button restores built-in defaults.
Changed fields highlighted in amber (slider thumb + input border).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
sl-jetson merged commit 68568b2b66 into main 2026-03-15 11:03:04 -04:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: seb/saltylab-firmware#622
No description provided.