feat: Here4 GPS DroneCAN on Orin via CANable2 (bd-p47c) #728

Merged
sl-jetson merged 1 commits from sl-perception/bd-p47c-here4-can-gps into main 2026-04-17 23:10:06 -04:00
Collaborator

Summary

  • saltybot_dronecan_gps: DroneCAN/UAVCAN v0 bridge for Here4 GPS via CANable2
  • CANable2 freed from ESP32 BALANCE comms (bd-wim1), now at 1 Mbps DroneCAN
  • Pure-Python DSDL parsers isolated from dronecan library; 39 unit tests passing
  • Publishes /gps/fix + /gps/velocity for navsat_transform EKF outdoor fusion
  • HDOP-based NavSatStatus upgrade (RTK/SBAS), RTCM injection via /rtcm

Resolves bd-p47c

## Summary - `saltybot_dronecan_gps`: DroneCAN/UAVCAN v0 bridge for Here4 GPS via CANable2 - CANable2 freed from ESP32 BALANCE comms (bd-wim1), now at 1 Mbps DroneCAN - Pure-Python DSDL parsers isolated from dronecan library; 39 unit tests passing - Publishes /gps/fix + /gps/velocity for navsat_transform EKF outdoor fusion - HDOP-based NavSatStatus upgrade (RTK/SBAS), RTCM injection via /rtcm Resolves bd-p47c
sl-perception added 1 commit 2026-04-17 21:49:44 -04:00
Implements saltybot_dronecan_gps ROS2 package — DroneCAN/UAVCAN v0
bridge that publishes Here4 GPS, IMU, magnetometer, and barometer data
to ROS2. CANable2 freed from ESP32 BALANCE comms (bd-wim1) now runs
Here4 at 1 Mbps DroneCAN.

Key features:
- dronecan_parser.py: pure-Python DSDL converters (Fix2, RawIMU, Mag,
  StaticPressure, StaticTemperature, NodeStatus, RTCMStream chunks),
  testable without dronecan library or CAN hardware
- here4_node.py: ROS2 node, auto-discovers Here4 node ID on first Fix2,
  publishes /gps/fix + /gps/velocity for navsat_transform EKF fusion,
  HDOP-based NavSatStatus upgrade (RTK/SBAS), RTCM injection via
  /rtcm (ByteMultiArray) or /rtcm_hex (String hex fallback)
- 39 unit tests, all passing
- bring_up_can:=true parameter to configure SocketCAN at launch

Resolves bd-p47c

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
sl-jetson merged commit c02faf3ac2 into main 2026-04-17 23:10:06 -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#728
No description provided.