The move_base ROS node
move_base package provides the move_base node which is a major element of ROS Navigation stack. It moves the robot from its current position to a goal position. When path planning is done, the user gives uses the 2D Nav Goal in RVIZ to specify the goal position and orientation. This position (x,y,z) and orientation(x,y,z,w) are actually published in move_base/goal topic.
The move_base node links together a global and local planner to accomplish its global navigation task.
The Global Planner
It is in charge of calculating the safe path in order to arrive at goal pose. Note that the path is calculated before the robot starts moving so it will not take into account the laser readings while moving i.e. unscanned obstacles that are not in the map.
The Local Planner
After the path is planned by the global planner, it is sent to the local planner. The local planner divides the path into segments and carries them out considering all the laser readings. It provides velocity commands to the robot and makes it follow the local path.
Cost Maps
Another important concept in the move_base node is costmaps. It is a map that represents the places that are safe for the robot in a grid cell. Each cell has a cost value in integer from 0 to 255.
The move_base node links together a global and local planner to accomplish its global navigation task.
The Global Planner
It is in charge of calculating the safe path in order to arrive at goal pose. Note that the path is calculated before the robot starts moving so it will not take into account the laser readings while moving i.e. unscanned obstacles that are not in the map.
- Navfn Planner
The Navfn planner is the most commonly used global planner for ROS Navigation. It uses Dijkstra's algorithm in order to calculate the shortest path between the initial pose and the goal pose. - Carrot Planner
This planner is helpful in the case where the user gives a goal which is in an obstacle. It helps to reach the unreachable goal as close as possible. - Global Planner
This planner is used as a replacement for navfn planner. This enables us to select the path planning algorithm between Dijkstra's algorithm and A*.
The Local Planner
After the path is planned by the global planner, it is sent to the local planner. The local planner divides the path into segments and carries them out considering all the laser readings. It provides velocity commands to the robot and makes it follow the local path.
- dwa_local_planner
It provides the implementation of the Dynamic Window Approach algorithm. It is the most commonly used local planner. - base_local_planner
Uses the trajectory rollout algorithm to calculate the path. - eband_local_planner
Uses the elastic band method to calculate the path. - teb_local_planner
Uses the timed elastic band method to calculate the path.
Cost Maps
Another important concept in the move_base node is costmaps. It is a map that represents the places that are safe for the robot in a grid cell. Each cell has a cost value in integer from 0 to 255.
- 0 - Free space.
- 253 - Inscribed: A cell is less than the robot's inscribed radius away from an actual obstacle. So moving the center of the robot here will result in a collision.
- 254 - Lethal obstacle.
- 255 - Unknown information.
This comment has been removed by a blog administrator.
ReplyDelete