Implements Phase 2d outdoor autonomous navigation for SaltyBot. GPS source: SIM7600X /gps/fix from PR #65 (saltybot_cellular). saltybot_outdoor package: - osm_router_node: Overpass API + A* haversine graph + Douglas-Peucker simplification, /outdoor/route (Path) + /outdoor/waypoints (PoseArray) - gps_waypoint_follower_node: GPS->Nav2 navigate_through_poses bridge, quality-adaptive tolerances (2m cellular / 0.30m RTK) - geofence_node: ray-casting polygon safety, emergency stop on violation - outdoor_nav.launch.py: dual-EKF + navsat_transform + all nodes - outdoor_nav_params.yaml: 1.5m/s, no static_layer, 2m GPS tolerance - ekf_outdoor.yaml: robot_localization dual-EKF + navsat_transform - geofence_vertices.yaml: template with usage instructions docker-compose.yml: fix malformed saltybot-surround block; add saltybot-outdoor service (depends on saltybot-nav2, OSM NVMe cache) SLAM-SETUP-PLAN.md: Phase 2d done RTK upgrade: SIM7600X (+-2.5m) -> ZED-F9P (+-2cm), set use_rtk:=true Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
31 lines
967 B
XML
31 lines
967 B
XML
<?xml version="1.0"?>
|
|
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
|
|
<package format="3">
|
|
<name>saltybot_outdoor</name>
|
|
<version>0.1.0</version>
|
|
<description>Outdoor navigation for SaltyBot — OSM routing, GPS waypoint following, geofence</description>
|
|
<maintainer email="seb@saltylab.io">seb</maintainer>
|
|
<license>MIT</license>
|
|
|
|
<buildtool_depend>ament_python</buildtool_depend>
|
|
|
|
<depend>rclpy</depend>
|
|
<depend>sensor_msgs</depend>
|
|
<depend>geometry_msgs</depend>
|
|
<depend>nav_msgs</depend>
|
|
<depend>std_msgs</depend>
|
|
<depend>std_srvs</depend>
|
|
<depend>nav2_msgs</depend>
|
|
|
|
<exec_depend>robot_localization</exec_depend>
|
|
<exec_depend>nav2_bringup</exec_depend>
|
|
|
|
<test_depend>ament_copyright</test_depend>
|
|
<test_depend>ament_flake8</test_depend>
|
|
<test_depend>ament_pep257</test_depend>
|
|
|
|
<export>
|
|
<build_type>ament_python</build_type>
|
|
</export>
|
|
</package>
|