Mesh Navigation
Robot navigation on 3D triangle meshes for rough outdoor terrain, from Nature Robots
License
BSD-3-Clause
Overview
mesh_navigation, developed at Osnabrück University and maintained by Nature Robots, replaces the classic 2D occupancy grid with a 3D triangle mesh as the navigation representation. Layered mesh cost maps encode height differences, roughness and steepness of real terrain; wave-front and geodesic planners then compute continuous vector fields across the mesh surface, producing paths that respect slopes, ridges and overhangs that flatten into nonsense on a 2D grid. It plugs into ROS 2 via Move Base Flex and is deployed on Nature Robots' commercial outdoor robots.
The stack centers on the Mesh Map: a half-edge triangle mesh (OpenMesh/lvr2) annotated with pluggable cost layers — height difference, roughness, steepness, inflation, and lethal regions — combined into a per-vertex traversability cost. Planners operate directly on this surface: a Fast Marching-style wave-front planner propagates cost across the mesh to produce a continuous vector field (every vertex knows its direction to goal, giving instant replanning for any start), and Dijkstra-based alternatives cover simpler cases. Controllers follow the vector field with mesh-aware pose projection. The whole stack runs as Move Base Flex plugins, so recovery behaviors and action semantics match standard ROS navigation. Maps come from lvr2 reconstructions of lidar scans of real environments; the repo ships demo meshes and RViz mesh tooling. The result is navigation that understands 3D terrain natively — built for forests, meadows and slopes rather than warehouse floors — and it is production software for Nature Robots' agricultural platforms.
Why it matters
mesh_navigation is the most complete open answer to a question 2D navigation cannot ask: what if the world isn't flat? For outdoor and rough-terrain robots it replaces grid-map hacks with a principled 3D surface representation — and it is battle-tested on commercial agricultural robots, not just papers.
Problem it solves
Occupancy grids collapse slopes, ledges and rough ground into a flat plane, so outdoor robots either plan badly or drown in heuristics. mesh_navigation plans on the actual 3D surface with terrain-aware costs, giving safe, continuously replannable paths on uneven ground.
Key takeaways
- Navigation representation is a 3D triangle mesh, not a 2D occupancy grid
- Layered mesh cost maps: height difference, roughness, steepness, inflation
- Wave-front planners yield continuous vector fields — instant replanning from any pose
- Runs as Move Base Flex plugins in ROS 2 with RViz mesh tooling
- Production-deployed on Nature Robots' outdoor agricultural robots
Who it is for
- Outdoor and field-robotics engineers
- Agricultural and forestry robot developers
- Navigation researchers beyond 2D grids
- ROS 2 developers with uneven-terrain use cases
Limitations
- Requires a reconstructed mesh of the environment up front — not (yet) full online mesh SLAM
- Compute and memory costs exceed 2D grid navigation
- Steeper learning curve: mesh tooling (lvr2/OpenMesh) is less familiar than costmap_2d