feat: Nav2 with UWB localization (Issue #599) #607
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "sl-jetson/issue-599-nav2-uwb"
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
Implements Issue #599 — Nav2 navigation stack with UWB-based localization replacing AMCL.
New package:
saltybot_nav2_uwbuwb_pose_bridge_node— Subscribes/saltybot/pose/fused_cov(UWB-IMU EKF) +/odom, computesmap→odomTF viaT_map_odom = T_map_base ⊗ inv(T_odom_base), broadcasts at 20 Hz. Publishes/initialposeon first valid pose.waypoint_sequencer— Pure-Python state machine (IDLE→RUNNING→SUCCEEDED/ABORTED/CANCELED), ROS2-free, unit-testable.waypoint_follower_node— Action server/saltybot/nav/follow_waypoints(nav2_msgs/FollowWaypoints). Drives each goal to Nav2 NavigateToPose sequentially. JSON topic/saltybot/nav/waypointsfor operator use. Cancel topic/saltybot/nav/cancel.nav2_uwb_params.yaml— DWB capped at 1.0 m/s, RPLIDAR-only costmap (rolling window), AMCL removed from lifecycle manager.nav2_uwb.launch.py— bridge (t=0) → Nav2 (t=2s) → waypoint follower (t=4s).Tests: 65 passing
Waypoint dataclass, sequencer state machine, 2-D TF math, quaternion↔yaw roundtrip.