Autonomous moving & obstacles avoidance
Navigation simulating | Movebase : Navigation Framework for ROS | Costmap | Planner | Part 5
Move base is a ROS package that provides an implementation of the navigation stack, which allows robots to navigate autonomously in a given environment. It is designed to work with a variety of robot platforms and sensor configurations, and provides a set of ROS nodes and APIs that enable a robot to perform path planning, obstacle avoidance, and localization.
The Move base architecture is comprised of several nodes that communicate with each other to execute autonomous navigation:
- Map Server: This node provides the occupancy grid map of the environment in which the robot will navigate. The map is usually generated using sensors like LiDAR or depth cameras, and is loaded into the map server. The map server provides this map to other nodes in the navigation stack, such as the global planner and the local planner.
- Global Planner: This node plans a global path for the robot to follow from its current position to the goal location. It uses the map provided by the map server and a global costmap to generate a plan that avoids obstacles and reaches the goal.
- Local Planner: This node is responsible for generating a local plan for the robot to follow in order to reach its goal. The local planner uses the global plan generated by the global planner, the robot's current pose and the local costmap to generate a plan that is executable by the robot.
- Costmap: The costmap maintains a grid of the environment around the robot and assigns costs to different areas based on their traversal difficulty. The costmap is used by both the global and local planners to generate collision-free paths.
- Base Controller: This node takes the plan generated by the local planner and generates velocity commands to drive the robot to follow the plan.
In summary, the Move base architecture provides a robust framework for autonomous navigation of mobile robots by generating a global path from the robot's current location to the goal location, converting the path into a detailed path that the robot can follow, and monitoring the robot's progress to make corrections to the path as necessary.