Show EOL distros: 

navigation: amcl | base_local_planner | carrot_planner | clear_costmap_recovery | costmap_2d | dwa_local_planner | fake_localization | global_planner | map_server | move_base | move_base_msgs | move_slow_and_clear | nav_core | navfn | robot_pose_ekf | rotate_recovery | voxel_grid

Package Summary

A 2D navigation stack that takes in information from odometry, sensor streams, and a goal pose and outputs safe velocity commands that are sent to a mobile base.

navigation: amcl | base_local_planner | carrot_planner | clear_costmap_recovery | costmap_2d | dwa_local_planner | fake_localization | global_planner | map_server | move_base | move_base_msgs | move_slow_and_clear | nav_core | navfn | robot_pose_ekf | rotate_recovery | voxel_grid

Package Summary

A 2D navigation stack that takes in information from odometry, sensor streams, and a goal pose and outputs safe velocity commands that are sent to a mobile base.

navigation: amcl | base_local_planner | carrot_planner | clear_costmap_recovery | costmap_2d | dwa_local_planner | fake_localization | global_planner | map_server | move_base | move_base_msgs | move_slow_and_clear | nav_core | navfn | robot_pose_ekf | rotate_recovery | voxel_grid

Package Summary

A 2D navigation stack that takes in information from odometry, sensor streams, and a goal pose and outputs safe velocity commands that are sent to a mobile base.

navigation: amcl | base_local_planner | carrot_planner | clear_costmap_recovery | costmap_2d | dwa_local_planner | fake_localization | global_planner | map_server | move_base | move_base_msgs | move_slow_and_clear | nav_core | navfn | robot_pose_ekf | rotate_recovery | voxel_grid

Package Summary

A 2D navigation stack that takes in information from odometry, sensor streams, and a goal pose and outputs safe velocity commands that are sent to a mobile base.

navigation: amcl | base_local_planner | carrot_planner | clear_costmap_recovery | costmap_2d | dwa_local_planner | fake_localization | global_planner | map_server | move_base | move_base_msgs | move_slow_and_clear | nav_core | navfn | robot_pose_ekf | rotate_recovery | voxel_grid

Package Summary

A 2D navigation stack that takes in information from odometry, sensor streams, and a goal pose and outputs safe velocity commands that are sent to a mobile base.

navigation: amcl | base_local_planner | carrot_planner | clear_costmap_recovery | costmap_2d | dwa_local_planner | fake_localization | global_planner | map_server | move_base | move_base_msgs | move_slow_and_clear | nav_core | navfn | rotate_recovery | voxel_grid

Package Summary

A 2D navigation stack that takes in information from odometry, sensor streams, and a goal pose and outputs safe velocity commands that are sent to a mobile base.

navigation: amcl | base_local_planner | carrot_planner | clear_costmap_recovery | costmap_2d | dwa_local_planner | fake_localization | global_planner | map_server | move_base | move_base_msgs | move_slow_and_clear | nav_core | navfn | rotate_recovery | voxel_grid

Package Summary

A 2D navigation stack that takes in information from odometry, sensor streams, and a goal pose and outputs safe velocity commands that are sent to a mobile base.

Available Translations: SimpleChinese

nav_comic.png

Overview

The Navigation Stack is fairly simple on a conceptual level. It takes in information from odometry and sensor streams and outputs velocity commands to send to a mobile base. Use of the Navigation Stack on an arbitrary robot, however, is a bit more complicated. As a pre-requisite for navigation stack use, the robot must be running ROS, have a tf transform tree in place, and publish sensor data using the correct ROS Message types. Also, the Navigation Stack needs to be configured for the shape and dynamics of a robot to perform at a high level. To help with this process, this manual is meant to serve as a guide to typical Navigation Stack set-up and configuration.

Hardware Requirements

While the Navigation Stack is designed to be as general purpose as possible, there are three main hardware requirements that restrict its use:

  1. It is meant for both differential drive and holonomic wheeled robots only. It assumes that the mobile base is controlled by sending desired velocity commands to achieve in the form of: x velocity, y velocity, theta velocity.
  2. It requires a planar laser mounted somewhere on the mobile base. This laser is used for map building and localization.
  3. The Navigation Stack was developed on a square robot, so its performance will be best on robots that are nearly square or circular. It does work on robots of arbitrary shapes and sizes, but it may have difficulty with large rectangular robots in narrow spaces like doorways.

Documentation

The following documentation assumes familiarity with the Robot Operating System. Documentation on ROS can be found here: ROS Documentation

Report a Bug

Examples

List of Robots Using the Navigation Stack

Tutorials

Basic ROS Navigation Tutorials

  1. Setting up your robot using tf

    This tutorial provides a guide to set up your robot to start using tf.

  2. Writing a local path planner as plugin in ROS

    A tutorial to writing a custom local planner to work with the ROS1.This tutorial will be structured in a similar manner to ROS Global Path Planner

  3. Basic Navigation Tuning Guide

    This guide seeks to give some standard advice on how to tune the ROS Navigation Stack on a robot. This guide is in no way comprehensive, but should give some insight into the process. I'd also encourage folks to make sure they've read the ROS Navigation Tutorial before this post as it gives a good overview on setting the navigation stack up on a robot wheras this guide just gives advice on the process.

  4. Setup and Configuration of the Navigation Stack on a Robot

    This tutorial provides step-by-step instructions for how to get the navigation stack running on a robot. Topics covered include: sending transforms using tf, publishing odometry information, publishing sensor data from a laser over ROS, and basic navigation stack configuration.

  5. Using rviz with the Navigation Stack

    This tutorial provides a guide to using rviz with the navigation stack to initialize the localization system, send goals to the robot, and view the many visualizations that the navigation stack publishes over ROS.

  6. Publishing Odometry Information over ROS

    This tutorial provides an example of publishing odometry information for the navigation stack. It covers both publishing the nav_msgs/Odometry message over ROS, and a transform from a "odom" coordinate frame to a "base_link" coordinate frame over tf.

  7. Publishing Sensor Streams Over ROS

    This tutorial provides examples of sending two types of sensor streams, sensor_msgs/LaserScan messages and sensor_msgs/PointCloud messages over ROS.

  1. Using local navigation (navigation in the odometry frame)

    This tutorial shows you how to move the mobile base avoiding collisions and specifying navigation goals in the odometry frame.

  2. Using slam navigation (navigation with a online generated map)

    This tutorial shows you how to move the mobile base avoiding collisions and building up a map while moving the robot.

  3. Using global navigation (navigation with a predefined map)

    This tutorial shows you how to create a map and use it for moving the mobile base avoiding collisions and specifying navigation goals in the map frame.

  1. Setup the Navigation Stack for TurtleBot

    Provides a first glimpse of navigation configuration for your robot, with references to other much more comprehensive tutorials.

  2. SLAM Map Building with TurtleBot

    How to generate a map using gmapping

  3. Autonomous Navigation of a Known Map with TurtleBot

    This tutorial describes how to use the TurtleBot with a previously known map.

  4. Setup the Navigation Stack for TurtleBot

    Provides a first glimpse of navigation configuration for your robot, with references to other much more comprehensive tutorials.

  5. SLAM Map Building with TurtleBot

    How to generate a map using gmapping

  6. Autonomous Navigation of a Known Map with TurtleBot

    This tutorial describes how to use the TurtleBot with a previously known map.

  1. Husky Move Base Demo

    Running Husky with a basic move_base setup, with no mapping or localization.

  2. Husky AMCL Demo

    Running Husky with a move_base setup, using amcl for localization.

  3. Husky Gmapping Demo

    Running Husky with a move_base setup, using gmapping for mapping and localization (SLAM).

  4. Husky Frontier Exploration Demo

    Running Husky with a move_base setup, using frontier_exploration for exploration planning, and gmapping for mapping and localization (SLAM).

  5. No Title

    No Description

  1. Navigate in Simulation

    This pagge describes awesome simulation

  2. Navigate with real robot

    This page describes navigation with real robot

  3. Explore surrounding areas and make a map

    Explore the real environment from robot's vision and save a map.

  4. Navigate with a known map

    Ramble in the known area with a previously saved a map

  5. Explore surrounding areas and make a map

    Explore the environment from robot's vision and save a map.

  6. Navigate with a known map

    Ramble in the known area with a previously saved a map.

  1. Evarobot Exploration

    How to generate a SLAM map autonomously with Evarobot using frontier_exploration

  2. Autonomous Navigation of a Known Map with Evarobot

    How to navigate autonomously the Evarobot with known map.

  3. Navigation of the Evarobot in Gazebo

    How to navigate evarobot in Gazebo with a previously known map.

MRPT Navigation Tutorials

  1. Installing

    Instructions to install and compile this package


Wiki: navigation (last edited 2020-09-14 18:51:07 by FabriceLarribe)