MBOT
Autonomous Robot
Design project involving the development of an autonomous mobile robot, covering topics including sensing, perception,
control, motion planning, localization, mapping, and robot kinematics.
Overview
This project implements a complete autonomous robotics pipeline for the MBot platform using ROS2. The system integrates motion control, mapping, localization, path planning, and exploration to enable the robot to autonomously navigate and explore unknown environments.
The project was developed through a sequence of robotics labs and integrates several fundamental robotics algorithms, including PID control for motion execution, Monte Carlo Localization, occupancy grid mapping, A* path planning, and frontier-based exploration.
Fig: Call graph and control flow of the A* path planner. Solid arrows show control flow; the dashed arrow indicates that heuristic() is invoked during neighbor expansion.
Functions
The system enables the robot to:
- Estimate its pose using probabilistic localization
- Build a map of the environment using occupancy grid mapping
- Plan collision-free paths using A* search
- Autonomously explore unknown environments using frontier exploration
- Integrate mapping and localization into a SLAM pipeline
Architecture
The overall system consists of several ROS2 nodes that work together to enable autonomous navigation.
Major modules include:
- Motion control
- Localization
- Mapping
- Path Planning
- Autonomous exploration
- SLAM integration
Components
For detailed explanation of project components, please see the README.md in github.