[Nav2] Request for Beta Testing: Nav2 Route Server

Howdy yal, its Your Friendly Neighborhood Navigator here!

By popular request: the new Nav2 Route Server is now ready for beta testing! I’d love your critical feedback if you have time to review the code (admittedly its a … 18,000 line PR so I’m not expecting full reviews unless you got alot of time on your hands :wink: ) and test it on your robots! It has 98% test coverage and I think its ready for use today.

This is a major update to Nav2 enabling the use of pre-defined navigation graphs rather than freespace planning so that you can (1) plan across massive spaces in real-time that might not be possible with any free-space planning algorithm, (2) create plans in spaces without maps or across such vast distances maps aren’t sensible to think about, and/or (3) when you want your robot to navigate very deterministically through certain routes, lanes, or areas without deviating too much.

Here’s the PR:

A couple of tutorials to help you get started with creating the graph are already live!

I also provide you with some example behavior trees in the nav2_bt_navigator package for doing exact-route-following using the route as the plan and general-route-navigation using the route as a general solution with the planner in the loop to create the feasible specific plan in a localized time horizon. There’s also a demo in the nav2_simple_commander package using the servers directly, should you choose.

I’m looking for users to give this a look and try this out on their robots. I already have 2 companies using this in a pre-production application, but I want more feedback from folks:

  1. Does this work for you? Any major bugs to report?
  2. Any features missing or things you wish you had?
  3. How long have you run this continually for without issue?
  4. Videos and/or images to use in potential conference talks on this subject and give your company a shout out!

Let me know what you think and happy routing! :partying_face:

A special shoutout to Joshua Wallace that helped with some key portions of this work when it was started a couple of years ago! Thanks to our sponsors Dexory, Nvidia, Polymath Robotics, Stereolabs for making this development possible!

Happy Routing,

Steve Macenski
Open Navigation

9 Likes

How about the multi-mapping concept? A robot must traverse from one floor to another via an elevator. The current nav graph file supports one map at a time. What happens if we switch the map via the map server? How do we switch the nav graph for each map?

@smac

This work does not require a map at all! You could definitely create a multi-floor navigation capability based on this, though its not one of the demos I’ve put together so far :slight_smile: The nodes can be the terminal points for stairs/elevator servicing/etc and use free space planning between them. When you achieve a node, you enact your floor-moving behavior (call elevator, climbs stairs, etc).

I’ll check the feature with the multi-floor concept and get back to you with the results.

Thanks.