Topological navigation is a ROS 2 framework that represents a farm as a graph: nodes are named places such as row ends, docking points or picking stations, and edges are the paths between them. Robots plan routes over the graph and carry out each edge with the right behaviour, for example a Nav2 goal, a row traversal or a docking manoeuvre. This makes it practical to run fleets of robots across whole farms with one shared, human-readable map.
The framework began in the STRANDS long-term autonomy project and was refactored and extended in Agri-OpenCore for ROS 2 and agricultural use. It is the navigation layer used in the project’s strawberry trials and is adopted by external users such as SowBot.
Features
- Map manager, localisation to the current and closest node, and A* or Dijkstra route planning.
- Edge actions defined in the map itself, including Nav2 behaviour trees, so behaviours can change per row or per path.
- Map recording while driving, with loop closure, plus an analyser that validates, renders, minifies and merges maps without needing ROS.
- Interactive map editing in RViz and a browser web app showing the map, the robot and its route, with click-to-navigate.
- A simulator with fake Nav2 servers, so the whole stack runs on a laptop without a robot.
Try it in your browser
For the ROS in the Field workshop at ROSCon UK 2026, the repository has a ready-made GitHub Codespaces environment. With a free GitHub account you can open it, run one command and send a simulated robot around the University of Lincoln’s Riseholme farm map from your browser. Follow the guide on the roscon26 branch.
Install
Clone the repository into a ROS 2 workspace, install dependencies with rosdep and build with colcon. Then launch the full stack with the simulator:
ros2 launch topological_navigation topological_navigation.launch.py
Full documentation, parameters, topics and the map format are in the repository README.
Licence and citation
Apache-2.0. If you use topological navigation in research, please cite: A Unified Topological Representation for Robotic Fleets in Agricultural Applications, Journal of Field Robotics, 2024, doi:10.1002/rob.22494.
