I've been working on a project using the Navigation2 stack to navigate a robot through GPS waypoints. When using a pre-built map, the robot successfully navigates to all waypoints. However, I encounter issues when I switch to an empty map.
Tutorials Followed: I have followed the tutorials by Ricardo Tellez (with Clearpath robotics, but they closed their open source project repo now to the outdoor nav product which uses ros2) on GPS integration within the Nav stack and tried to adjust it for the Nav2 stack (I have disabled SLAM and AMCL as the tutorial does not use them) :
Or is it possible use NAV2+GPS without any map ? (even empty) as suggested in this answer: Navigation Without Pre-Built Map for Collision-Free Movement
Despite following these tutorials, I'm still stuck on this issue.
Working Scenario: With a pre-built map, the robot navigates successfully to all waypoints. Here's a video showcasing the successful navigation: GPS Waypoint Follower Planner NAV2 Stack (Previous Mapped Area) .
Issue Scenario: When using an empty map, the robot starts showing warnings and errors related to path planning and does not move, remaining stuck. Here's the output I get:
[controller_server-7] [WARN] ... Received plan with zero length [controller_server-7] [ERROR] ... Controller patience exceeded [controller_server-7] [WARN] ... [ActionServer] Aborting handle. [recoveries_server-9] [INFO] ... Attempting spin
Here's a video showcasing the issues with the empty map: GPS follower Empty map (Issue with Plan length = 0)
Request: I'm looking for insights into why the Navigation2 stack behaves differently with an empty map compared to a pre-built one. Any suggestions or best practices for navigating in an unknown environment using Navigation2 or/and SLAM would be greatly appreciated.
I've already read this feature request discussion: https://github.com/ros-planning/navigation2/issues/2517 , but I confess I did not deeply understand how to adjust, trick or find a solution for my case:
Thank you for your time and assistance!