feat: MQTT bridge for iOS GPS on /saltybot/ios/gps (Issue #681) #723

Merged
sl-jetson merged 2 commits from sl-jetson/issue-681-ios-gps-bridge into main 2026-04-04 11:21:15 -04:00
Collaborator

Summary

  • New MQTT topic constant _TOPIC_IOS_GPS = 'saltybot/ios/gps'
  • New ROS2 publisher on /saltybot/ios/gps (NavSatFix, qos=10)
  • Subscribed in _on_mqtt_connect; dispatched via _handle_ios_gps()
  • _handle_ios_gps(): identical logic to _handle_gps() with frame_id='ios_gps' — supports lat/lon/alt/accuracy/provider fields
  • rx/pub/err/age counters wired into the bridge status topic
  • /saltybot/ios/gps added to rosbridge topics_glob so browser dashboard can subscribe

Test plan

  • colcon build succeeds on Orin (saltybot_phone)
  • ros2 topic list shows /saltybot/ios/gps
  • Publishing to saltybot/ios/gps MQTT topic produces NavSatFix on ROS2
  • /saltybot/phone/bridge/status includes ios_gps age/counters
  • rosbridge exposes /saltybot/ios/gps to browser

🤖 Generated with Claude Code

## Summary - New MQTT topic constant `_TOPIC_IOS_GPS = 'saltybot/ios/gps'` - New ROS2 publisher on `/saltybot/ios/gps` (NavSatFix, qos=10) - Subscribed in `_on_mqtt_connect`; dispatched via `_handle_ios_gps()` - `_handle_ios_gps()`: identical logic to `_handle_gps()` with `frame_id='ios_gps'` — supports lat/lon/alt/accuracy/provider fields - rx/pub/err/age counters wired into the bridge status topic - `/saltybot/ios/gps` added to rosbridge `topics_glob` so browser dashboard can subscribe ## Test plan - [ ] colcon build succeeds on Orin (`saltybot_phone`) - [ ] `ros2 topic list` shows `/saltybot/ios/gps` - [ ] Publishing to `saltybot/ios/gps` MQTT topic produces NavSatFix on ROS2 - [ ] `/saltybot/phone/bridge/status` includes ios_gps age/counters - [ ] rosbridge exposes `/saltybot/ios/gps` to browser 🤖 Generated with [Claude Code](https://claude.com/claude-code)
sl-jetson added 2 commits 2026-04-04 11:11:52 -04:00
- Add _TOPIC_IOS_GPS = 'saltybot/ios/gps' constant
- Subscribe to saltybot/ios/gps in _on_mqtt_connect
- Dispatch to _handle_ios_gps() in _dispatch()
- _handle_ios_gps(): same logic as _handle_gps(), frame_id='ios_gps',
  publishes to /saltybot/ios/gps via self._ios_gps_pub
- Add rx/pub/err/last_rx_ts counters for the new topic
- Add /saltybot/ios/gps to rosbridge_params.yaml topics_glob

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
sl-jetson added 1 commit 2026-04-04 11:15:03 -04:00
rclpy RcutilsLogger.info/warning/debug() do not accept printf-style
positional format args. Also fix p["use_phone_timestamp"] → p["use_phone_ts"]
key mismatch in __init__ log line.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
sl-jetson force-pushed sl-jetson/issue-681-ios-gps-bridge from 5f54150708 to fbc88f5c2a 2026-04-04 11:21:05 -04:00 Compare
sl-jetson merged commit 885a66f24b into main 2026-04-04 11:21:15 -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#723
No description provided.