Advertisement

ROS Navigation: Concepts and Tutorial

  • Rodrigo Longhi GuimarãesEmail author
  • André Schneider de Oliveira
  • João Alberto Fabro
  • Thiago Becker
  • Vinícius Amilgar Brenner
Chapter
Part of the Studies in Computational Intelligence book series (SCI, volume 625)

Abstract

This tutorial chapter aims to teach the main theoretical concepts and explain the use of ROS Navigation Stack. This is a powerful toolbox to path planning and Simultaneous Localization And Mapping (SLAM) but its application is not trivial due to lack of comprehension of the related concepts. This chapter will present the theory inside this stack and explain in an easy way how to perform SLAM in any robot. Step by step guides, example codes explained (line by line) and also real robot testing will be available. We will present the requisites and the how-to’s that will make the readers able to set the odometry, establish reference frames and its transformations, configure perception sensors, tune the navigation controllers and plan the path on their own virtual or real robots.

Keywords

ROS Navigation Stack Tutorial Real robots Transformations 

References

  1. 1.
    I.R.S.D. Siegwart, Introduction to Autonomous Mobile Robots, Intelligent Robotics and Autonomous Agent series (The MIT Press, Cambridge, 2011)Google Scholar
  2. 2.
    ROS.org, Ros package geometry\(\_\)msgs (2015), http://wiki.ros.org/geometry_msgs. Accessed 03 Jan 2015
  3. 3.
    R.P. Goebel, Ros by example, vol. 1 (2014), http://www.lulu.com/shop/r-patrick-goebel/ros-by-example-hydro-volume-1/ebook/product-21393108.html. Accessed 13 June 2015
  4. 4.
    R.P. Goebel, Ros metapackage rbx1 (2014), https://github.com/pirobot/rbx1/tree/hydro-devel. Accessed 13 June 2015
  5. 5.
    ROS.org, Ros package openni\(\_\)camera (2015), http://wiki.ros.org/openni_camera Accessed 03 Jan 2015
  6. 6.
    ROS.org, Ros package openni\(\_\)launch (2015), http://wiki.ros.org/openni_launch. Accessed 03 Jan 2015
  7. 7.
    AnthonyJ350, How to solder / soldering basics tutorial (2011), https://www.youtube.com/watch?v=BxASFu19bLU. Accessed 03 Jan 2015
  8. 8.
    mjlorton, Tutorial: How to crimp connectors, strip wire and use heat shrink. (2013), https://www.youtube.com/watch?v=kjSGCSwNuAg. Accessed 03 Jan 2015
  9. 9.
    E.C. Wireconnector, E-clamp quick wire connector (2013). https://www.youtube.com/watch?v=GI8lRSQQbJk. Accessed 03 Jan 2015
  10. 10.
    ROS.org, Adding a kinect to an irobot create/roomba (2015), http://wiki.ros.org/kinect/Tutorials/Adding. Accessed 03 Jan 2015
  11. 11.
    ROS.org, Ros package depthimage\(\_\)laserscan (2015), http://wiki.ros.org/depthimage_to_laserscan. Accessed 03 Jan 2015
  12. 12.
    S.F.A.S D.G. Ballardini, A.L. Fontana, ira\(\_\)tools: a ros laserscan manipulation toolbox (2014), arXiv:1411.1086. Accessed 12 Jan 2015
  13. 13.
    S.F.A.S.D.G. Ballardini, A.L. Fontana, Ros package ira\(\_\)tools (2014), https://github.com/iralabdisco/ira_laser_tools. Accessed 12 Jan 2015
  14. 14.
    ROS.org, Ros package kinect\(\_\)aux (2015), http://wiki.ros.org/kinect_aux. Accessed 03 Jan 2015
  15. 15.
    ROS.org, Ros package openni\(\_\)tracker (2015), http://wiki.ros.org/openni_tracker. Accessed 03 Jan 2015
  16. 16.
    O.T.S. for 3D Sensing, Openni sdk history (2014), http://www.openni.ru/openni-sdk/openni-sdk-history-2/index.html. Accessed 12 June 2015
  17. 17.
    R.L. Guimaraes, Complementary files for using more kinect functions (2015), https://github.com/rosnavigation/KINECT_FILES. Accessed 12 June 2015
  18. 18.
    ROS.org, Ros package cyphy\(\_\)mapping (2015), http://wiki.ros.org/cyphy_people_mapping. Accessed 03 Jan 2015
  19. 19.
    STRANDS, Ros package sicks300 (2014), https://github.com/strands-project-releases/sicks300/tree/release/hydro/sicks300. Accessed 03 Jan 2015
  20. 20.
    ROS.org, How to set up hector\(\_\)slam for your robot (2015), http://wiki.ros.org/hector_slam/Tutorials/SettingUpForYourRobot. Accessed 03 Jan 2015
  21. 21.
    W. Meeussen, Coordinate frames for mobile platforms (2015), http://www.ros.org/reps/rep-0105.html. Accessed 03 Jan 2015
  22. 22.
    B. Sciavicco, L. Sicoliano, Modelling and Control of Robot Manipulators, Advanced Textbooks in Control and Signal Processing (CreateSpace Independent Publishing Platform, Charleston, 2000)Google Scholar
  23. 23.
    ROS.org, Navigation tutorials: Robotsetup (2015), http://wiki.ros.org/navigation/Tutorials/RobotSetup. Accessed 03 Jan 2015
  24. 24.
    W.F.D. Thrun, S. Buggard, Probabilistic Robotics, Intelligent Robotics and Autonomous Agent Series (MIT Press, Cambridge, 2005)Google Scholar
  25. 25.
    ROS.org, Ros package p2os\(\_\)driver (2015), http://wiki.ros.org/p2os_driver. Accessed 03 Jan 2015
  26. 26.
    ROS.org, Ros package rostopic (2015), http://wiki.ros.org/rostopic. Accessed 03 Jan 2015
  27. 27.
    ROS.org, Ros package base\(\_\)planner (2015), http://wiki.ros.org/base_local_planner. Accessed 03 Jan 2015
  28. 28.
    ROS.org, Ros package costmap\(\_\)2d/layered (2015), http://wiki.ros.org/costmap_2d/layered. Accessed 03 Jan 2015
  29. 29.
    ROS.org, Running ros across multiple machines (2015), http://wiki.ros.org/ROS/Tutorials/MultipleMachines. Accessed 19 June 2015
  30. 30.
    N. Bore, Ros scitos\(\_\)navigation package github (2013), https://github.com/nilsbore/scitos_2d_navigation. Accessed 20 June 2015
  31. 31.
    R. Yehoshua, Sendgoals.cpp (2013), http://u.cs.biu.ac.il/~yehoshr1/89-685/Fall2013/demos/lesson7/SendGoals.cpp. Accessed 20 June 2015

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  • Rodrigo Longhi Guimarães
    • 1
    Email author
  • André Schneider de Oliveira
    • 1
  • João Alberto Fabro
    • 1
  • Thiago Becker
    • 1
  • Vinícius Amilgar Brenner
    • 1
  1. 1.LASER - Advanced Laboratory of Embedded Systems and RoboticsFederal University of Technology - ParanáCuritibaBrazil

Personalised recommendations