# Robot\_navigation stack released

**URL:** <https://discourse.openrobotics.org/t/robot-navigation-stack-released/7084>\
**Category:** ROS General\
**Tags:** navigation\
**Created:** [December 10, 2018, 3:16pm UTC](https://discourse.openrobotics.org/t/robot-navigation-stack-released/7084 "2018-12-10T15:16:01Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![DLu](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/dlu/32/19014_2.png) [@DLu](https://discourse.openrobotics.org/u/DLu)\
**Post date:** [December 10, 2018, 3:16pm UTC](https://discourse.openrobotics.org/t/robot-navigation-stack-released/7084/1 "2018-12-10T15:16:01Z")

</div>

tl;dr: Check out [GitHub - locusrobotics/robot\_navigation: Spiritual successor to ros-planning/navigation.](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](https://vimeo.com/292702885) [[slides]](https://tinyurl.com/locomotor-roscon). This includes

- The new `nav_core2` interfaces
- The DWB Local Planner ([introduced last year](https://vimeo.com/236487972))
- 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](https://github.com/ros-planning/navigation) 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:

- [The mathematical explanation](https://github.com/locusrobotics/robot_navigation/tree/master/dlux_global_planner#the-kernel) of [the dark magic numbers in navfn](https://github.com/ros-planning/navigation/blob/944b4e2ea9235f6ac8027fd2a6423b44d7686ef6/navfn/src/navfn.cpp#L478)
- [Finally understanding the move\_base state machine](https://github.com/locusrobotics/robot_navigation/tree/master/locomove_base#move-base-state-machine)
- [Modular grid iterator library](https://imgur.com/a/zJXKnzI)
- [Documenting the peculiarities of how OccupancyGrid is used](https://github.com/locusrobotics/robot_navigation/blob/master/nav_grid_pub_sub/doc/CostInterpretation.md)

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: [GitHub - locusrobotics/robot\_navigation: Spiritual successor to ros-planning/navigation.](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](http://wiki.ros.org/robot_navigation) and [Code API](http://docs.ros.org/melodic/api/nav_grid/html/classnav__grid_1_1NavGrid.html)

---

<div class="post-metadata">

**Author:** ![GuillermoUrcera](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/guillermourcera/32/2723_2.png) [@GuillermoUrcera](https://discourse.openrobotics.org/u/GuillermoUrcera)\
**Post date:** [December 20, 2018, 6:43am UTC](https://discourse.openrobotics.org/t/robot-navigation-stack-released/7084/2 "2018-12-20T06:43:03Z")

</div>

Looks very interesting, are there quick setup instructions available, similar to what’s been done in the [navigation stack](http://wiki.ros.org/navigation/Tutorials/RobotSetup) 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.

---

<div class="post-metadata">

**Author:** ![doisyg](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/doisyg/32/14638_2.png) [@doisyg](https://discourse.openrobotics.org/u/doisyg)\
**Post date:** [December 21, 2018, 2:02pm UTC](https://discourse.openrobotics.org/t/robot-navigation-stack-released/7084/3 "2018-12-21T14:02:35Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Rayman](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/rayman/32/268_2.png) [@Rayman](https://discourse.openrobotics.org/u/Rayman)\
**Post date:** [December 21, 2018, 4:00pm UTC](https://discourse.openrobotics.org/t/robot-navigation-stack-released/7084/4 "2018-12-21T16:00:11Z")

</div>

Congrats with the release!

Could you please explain what the differences are with [GitHub - ros-navigation/navigation2: ROS 2 Navigation Framework and System](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?

---

<div class="post-metadata">

**Author:** ![DLu](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/dlu/32/19014_2.png) [@DLu](https://discourse.openrobotics.org/u/DLu)\
**Post date:** [December 21, 2018, 5:04pm UTC](https://discourse.openrobotics.org/t/robot-navigation-stack-released/7084/5 "2018-12-21T17:04:45Z")

</div>

@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](https://github.com/ros-planning/navigation2/tree/master/nav2_tasks) as a more general way of coordinating the path planning behaviors.

---

<div class="post-metadata">

**Author:** ![pavel92](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/pavel92/32/4062_2.png) [@pavel92](https://discourse.openrobotics.org/u/pavel92)\
**Post date:** [August 2, 2019, 12:30pm UTC](https://discourse.openrobotics.org/t/robot-navigation-stack-released/7084/6 "2019-08-02T12:30:01Z")

</div>

@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?
