Robot_navigation stack released

tl;dr: Check out https://github.com/locusrobotics/robot_navigation

Greetings ROS-Users!
I’d like to announce the robot_navigation stack’s latest release. This includes everything I talked about in my ROSCon2018 Talk [slides]. This includes

  • The new nav_core2 interfaces
  • The DWB Local Planner (introduced last year)
  • The Dlux Global Planner
  • Locomotor - the path planning coordination engine to replace move_base
  • Backwards compatible adapters for nav_core interfaces

The overall goal of the stack is to create a new revision of the “classic” navigation stack but with cleaner interfaces to make it easier for developers to create custom 2.5D navigation algorithms that fit their individual contexts.

Additional things that I’m proud of:

In the near future (for some definition of near), we’ll be releasing new refactored packages implementing the layered costmap and map server, at which point we’ll be able to explore converting the whole stack to ROS2.

Source is available here: https://github.com/locusrobotics/robot_navigation
Binaries will be available for Indigo, Kinetic, Lunar and Melodic with the next syncs.
The main documentation is in Github READMEs, but you can also check out the wiki and Code API

11 Likes

Looks very interesting, are there quick setup instructions available, similar to what’s been done in the navigation stack to be able to play with it a bit and try it out?

I was looking to modify the global planning of the navigation stack, so this seems perfect for me.

1 Like

Thanks for the effort! Indeed robot navigation needs to be refreshed and modernized.
Could you explain the differences, commonality, compatibility with move base flex (http://wiki.ros.org/move_base_flex)?
Is it a parallel project ? Are they complementary?

1 Like

Congrats with the release!

Could you please explain what the differences are with https://github.com/ros-planning/navigation2. Is navigation2 a ros2 port of the original nav stack and this a modular rewrite of the original nav stack?

@GuillermoUrcera There are not step-by-step tutorials yet, but I’m planning on putting some things together in the coming months.

@Rayman robot_navigation is a ROS1 navigation solution based on the original nav stack (which is also ROS1)
navigation2 is a ROS2 navigation solution based on both the original nav stack as well as the DWB local planner from robot_navigation.

As mentioned in the original post, I hope to get a ROS2 version of robot_navigation in the future.

Philosophically, one major difference between robot_navigation and navigation2 is how high level execution is coordinated. robot_navigation builds on the nav_core interfaces of the original nav stack with the nav_core2 interfaces and the coordination is done in locomotor. navigation2 uses tasks as a more general way of coordinating the path planning behaviors.

1 Like

@DLu Thanks for taking the time to explain the differences of the original nav stack, robot_navigation and navigation2. Is there any update regarding any step-by-step example tutorials or a launch file system for using robot_navigation?

1 Like