New package saltybot_nav2_uwb replacing AMCL-based localization with UWB-IMU EKF fused pose. Key components: - uwb_pose_bridge_node: subscribes /saltybot/pose/fused_cov (from EKF), computes map→odom TF via T_map_odom = T_map_base × inv(T_odom_base), broadcasts at 20 Hz. Publishes /initialpose on first valid pose. - waypoint_sequencer.py: pure-Python state machine (IDLE→RUNNING→ SUCCEEDED/ABORTED/CANCELED) for sequential waypoint execution. - waypoint_follower_node: action server on /saltybot/nav/follow_waypoints (nav2_msgs/FollowWaypoints), sends each goal to Nav2 NavigateToPose in sequence; JSON topic /saltybot/nav/waypoints for operator use. - nav2_uwb_params.yaml: DWB controller capped at 1.0 m/s, global+local costmap with /scan (RPLIDAR), rolling-window global costmap (no static map needed), AMCL removed from lifecycle manager. - nav2_uwb.launch.py: bridge (t=0) → Nav2 (t=2s) → waypoint follower (t=4s) with LogInfo markers. - 65 unit tests passing (waypoint dataclass, sequencer state machine, 2-D TF maths, progress tracking). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
43 lines
1.4 KiB
XML
43 lines
1.4 KiB
XML
<?xml version="1.0"?>
|
|
<package format="3">
|
|
<name>saltybot_nav2_uwb</name>
|
|
<version>0.1.0</version>
|
|
<description>
|
|
Nav2 integration with UWB-based localization for SaltyBot (Issue #599).
|
|
Replaces AMCL with a UWB pose bridge that broadcasts the map->odom TF
|
|
directly from the UWB-IMU EKF fused pose. Includes a DWB controller
|
|
capped at 1.0 m/s for safe differential-drive operation and a simple
|
|
sequential waypoint-follower action server.
|
|
</description>
|
|
<maintainer email="sl-jetson@saltylab.local">sl-jetson</maintainer>
|
|
<license>Apache-2.0</license>
|
|
|
|
<depend>rclpy</depend>
|
|
<depend>std_msgs</depend>
|
|
<depend>geometry_msgs</depend>
|
|
<depend>nav_msgs</depend>
|
|
<depend>sensor_msgs</depend>
|
|
<depend>tf2</depend>
|
|
<depend>tf2_ros</depend>
|
|
<depend>nav2_msgs</depend>
|
|
|
|
<exec_depend>nav2_bringup</exec_depend>
|
|
<exec_depend>nav2_bt_navigator</exec_depend>
|
|
<exec_depend>nav2_controller</exec_depend>
|
|
<exec_depend>nav2_planner</exec_depend>
|
|
<exec_depend>nav2_behaviors</exec_depend>
|
|
<exec_depend>nav2_lifecycle_manager</exec_depend>
|
|
<exec_depend>nav2_costmap_2d</exec_depend>
|
|
<exec_depend>nav2_navfn_planner</exec_depend>
|
|
<exec_depend>dwb_core</exec_depend>
|
|
<exec_depend>dwb_critics</exec_depend>
|
|
|
|
<buildtool_depend>ament_python</buildtool_depend>
|
|
|
|
<test_depend>pytest</test_depend>
|
|
|
|
<export>
|
|
<build_type>ament_python</build_type>
|
|
</export>
|
|
</package>
|