feat(uwb): MaUWB ESP32-S3 DW3000 dual-anchor bearing driver (Issue #90) #99
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "sl-firmware/uwb-integration"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Closes #90 — UWB integration: MaUWB ESP32-S3 DW3000 serial/USB driver on Orin.
Changes
saltybot_uwb_msgsUwbBearing.msg— 10 Hz Kalman-fused bearing estimateUwbRange.msg— addtag_idfield for enrolled-person attributionCMakeLists.txt— registerUwbBearing.msgsaltybot_uwbranging_math.py— addbearing_from_pos(x, y)helper (atan2, -π..+π)uwb_driver_node.py— dual-rate: 100 Hz/uwb/ranges+ 10 Hz/uwb/bearing; tag pairing viaenrolled_tag_ids;AT+RANGE_ADDRon connectuwb_config.yaml—range_rate/bearing_rate/enrolled_tag_idsparamsuwb.launch.py— expose new params as launch argstest_ranging_math.py— 7 new bearing_from_pos unit testsTest plan
pytest jetson/ros2_ws/src/saltybot_uwb/test/test_ranging_math.pypasses/uwb/rangespublishes at 100 Hz with both anchors connected/uwb/bearingpublishes at 10 Hz; confidence drops to 0.5 on single anchorenrolled_tag_idsfilter drops non-enrolled tags🤖 Generated with Claude Code
## Summary - saltybot_uwb_msgs: add UwbBearing.msg, add tag_id to UwbRange.msg, register UwbBearing in CMakeLists.txt - ranging_math.py: add bearing_from_pos(x, y) helper (atan2-based) - uwb_driver_node.py: dual-rate architecture • 100 Hz /uwb/ranges — raw TWR ranges with tag_id attribution • 10 Hz /uwb/bearing — Kalman-fused bearing + range estimate • enrolled_tag_ids parameter for tag pairing filter • AT+RANGE_ADDR=<tag> pairing command on connect - uwb_config.yaml: range_rate / bearing_rate / enrolled_tag_ids params - uwb.launch.py: expose new params as launch arguments - test_ranging_math.py: 7 new bearing_from_pos unit tests Closes #90 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>