feat: WiFi mesh handoff (Issue #458) #462

Merged
sl-jetson merged 2 commits from sl-android/issue-458-wifi-handoff into main 2026-03-05 11:07:27 -05:00
Collaborator

Seamless AP roaming + USB tethering fallback

Seamless AP roaming + USB tethering fallback
sl-jetson added 2 commits 2026-03-05 09:20:49 -05:00
Implement acceleration-limited velocity controller with S-curve jerk limiting:
- Subscribe to /cmd_vel_raw, publish smoothed /cmd_vel
- Max linear acceleration: 0.5 m/s²
- Max angular acceleration: 1.0 rad/s²
- Deceleration: 0.8 m/s² (linear), 1.0 rad/s² (angular)
- S-curve jerk limiting for smooth acceleration profiles (0.2s ramp)
- E-stop immediate stop capability
- Command priority system (e-stop > teleop > geofence > follow-me > nav2 > patrol)
- Publish /saltybot/velocity_profile for monitoring
- Configurable via smooth_velocity_config.yaml
- 50Hz update rate (configurable)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Add WiFi mesh handoff infrastructure:

WiFiState.msg interface:
- SSID, signal strength (dBm), connection status
- AP address, frequency, link quality
- TX/RX rates, roaming flag
- Available APs for handoff decision

WiFi Monitor Node:
- Signal monitoring via iwconfig/nmcli
- Auto-roam at -70dBm threshold
- Seamless wpa_supplicant roaming
- Gateway ping (8.8.8.8) every 5s
- USB tethering fallback if offline >30s
- TTS warnings for connectivity issues
- Coverage logging with AP transitions

Features:
- Configurable roaming threshold (-70dBm default)
- Gateway connectivity verification
- Offline detection with configurable timeout
- USB tethering auto-activation/deactivation
- Signal strength change logging (>5dBm)
- AP transition logging
- Manual rescan/tether control commands

Topics:
- /saltybot/wifi_state (String)
- /saltybot/speech_text (String warnings)
- /saltybot/wifi_cmd (String commands)

Configuration:
- interface: wlan0
- roam_threshold_dbm: -70
- offline_warning_timeout: 30.0
- target_ssid: SaltyLab
- fallback_tether: true
- coverage_log_file: /tmp/wifi_coverage.log

Roaming Behavior:
- Monitors signal continuously
- When signal < -70dBm, scans for stronger AP
- wpa_supplicant performs seamless handoff
- Logs all AP transitions to coverage file

Fallback Behavior:
- Pings gateway every 5 seconds
- If unreachable for >30s, activates USB tether
- TTS alert: 'Warning: Lost WiFi connectivity...'
- Auto-deactivates when WiFi restored

Coverage Mapping:
- Logs timestamp, SSID, signal, connected status
- Tracks roaming events
- Useful for mesh network optimization

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
sl-jetson merged commit 5a4150a2d0 into main 2026-03-05 11:07:27 -05: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#462
No description provided.