Abstract
The ROS navigation stack has become a crucial component for mobile robots using the ROS framework. It is powerful, yet requires careful fine tuning of parameters to optimize its performance on a given robot, a task that is not as simple as it looks and potentially time-consuming. This tutorial chapter presents a ROS navigation tuning guide for beginners that aims to serve as a reference for the “how” and “why” when setting the value of key parameters. The guide covers parameter settings for velocity and acceleration, global and local planners, costmaps, and the localization package amcl. It also discusses recovery behaviors as well as the dynamic reconfiguration feature of ROS. We assume that the reader has already set up the navigation stack and ready to optimize it. The material in this chapter originally appeared on ROS Tutorials since 2017 with experiments conducted on ROS indigo. Nevertheless, the ROS navigation stack has been mostly stable since indigo, while the ROS 2 navigation stack shares significant overlap in terms of packages and key parameters, with several innovations. Hence, we present this material in the context of the most recent release (ROS Noetic) at the time of writing. We discuss notable changes made in the ROS 2 navigation stack with respect to ROS Noetic. A video demonstration of the outcome following this guide is available at https://y2u.be/1-7GNtR6gVk.
Work completed while studying at the University of Washington.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
The material in this chapter originally appeared on ROS Tutorials (http://wiki.ros.org/navigation/Tutorials/Navigation%20Tuning%20Guide#ROS_Navigation_Tuning_Guide) and arxiv [8].
- 2.
Navigation 2 documentation: https://navigation.ros.org/concepts/index.html.
- 3.
This means that unless otherwise specified, ROS refers to ROS Noetic.
- 4.
- 5.
See announcement on ROS discourse: https://discourse.ros.org/t/announcing-navigation2-crystal-release/7155.
- 6.
- 7.
- 8.
gmapping: https://openslam-org.github.io/gmapping.html.
- 9.
- 10.
This information is obtained from MetraLabs’s website.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
Diagram is from http://wiki.ros.org/costmap_2d.
- 19.
- 20.
mentioned in [1], pp.370.
- 21.
Some explanations are credited to the costmap2d ROS Wiki not written by the author, but referenced under the Creative Commons Attribution 3.0 license.
- 22.
- 23.
- 24.
For LMS 200, thanks to this Github issue (https://github.com/smichaud/lidar-snowfall/issues/1).
- 25.
In our video demonstration, the close goal is generated without considering obstacles nearby the robot. In general, the costmap should be used to compute such close goals for greater efficiency of recovery.
- 26.
Here is a video demo of my work on mobile robot navigation: https://youtu.be/1-7GNtR6gVk.
- 27.
- 28.
octomap: http://wiki.ros.org/octomap.
- 29.
cartographer: https://google-cartographer-ros.readthedocs.io/en/latest/.
- 30.
hdl_graph_slam: https://github.com/koide3/hdl_graph_slam.
- 31.
Course https://sceweb.sce.uhcl.edu/harman/courses.htmCENG 5435: Robotics and ROS taught at the University of Houston, Clear Lake, by Prof. Thomas Harman. Link: https://sceweb.sce.uhcl.edu/harman/CENG5435_ROS/CENG5435_WebFall18/ROS%20NAVSTACK_Navigation_References.pdf.
- 32.
http://emanual.robotis.com/ROBOTIS e-Manual, the community forum of http://www.robotis.us/ROBOTIS, a Korean robot manufacture company. Reference link: http://emanual.robotis.com/docs/en/platform/turtlebot3/navigation/.
- 33.
- 34.
References
Y. Baudoin, M.K. Habib, Using robot in hazardous environments (Woodhead Publishing, United Kingdom, 2011), pp. 486–489
O. Brock, O. Khatib, High-speed navigation using the global dynamic window approach, in Proceedings 1999 IEEE International Conference on Robotics and Automation (Cat. No. 99CH36288C), vol. 1 (IEEE, Detroit, 1999), pp. 341–346
M. Colledanchise, P. Ögren, Behavior Trees in Robotics and AI: An Introduction (CRC Press, Boca Raton, 2018)
T. Foote, tf: the transform library, in Technologies for Practical Robot Applications (TePRA), 2013 IEEE International Conference on, Open-Source Software workshop (2013), pp. 1–6
D. Fox, W. Burgard, S. Thrun, The dynamic window approach to collision avoidance. IEEE Robot. Autom. Mag. 4(1), 23–33 (1997)
F. Furrer, M. Burri, M. Achtelik, R. Siegwart, Robot operating system (ros): the complete reference (volume 1), by A. Koubaa (Springer International Publishing, Cham, 2016)
S. Thrun, W. Burgard, D. Fox, Probabilistic Robotics (MIT press, Cambridge, 2005)
K. Zheng, Ros navigation tuning guide (2017), arXiv:1706.09068
Acknowledgements
We sincerely thank Andrzej Pronobis for the discussion, advice and support that led to the progress of this work. We are pleased to see that people with different background such as educators and industry practitioners have referred to this guide. Finally, we acknowledge that it has been translated into Chinese by Huiwu Luo.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this chapter
Cite this chapter
Zheng, K. (2021). ROS Navigation Tuning Guide. In: Koubaa, A. (eds) Robot Operating System (ROS). Studies in Computational Intelligence, vol 962. Springer, Cham. https://doi.org/10.1007/978-3-030-75472-3_6
Download citation
DOI: https://doi.org/10.1007/978-3-030-75472-3_6
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-75471-6
Online ISBN: 978-3-030-75472-3
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)