Botlab
The BotLab project was part of the ROB 550 curriculum in Fall 2023, focusing on the autonomy of a differential-drive ground robot, the MBot. The project encompassed fundamental robotics concepts such as motion control, perception, localization, mapping, and planning. By integrating these modules, I developed a fully autonomous robot capable of navigating and interacting with its environment.
Project Objectives
- Acting: Implemented motion control strategies, including PID controllers and trajectory-following algorithms for precise navigation.
- Sensing: Utilized sensors like quadrature encoders, a 2D LiDAR, an IMU, and a camera for environment perception and robot localization.
- Reasoning: Developed algorithms for Monte Carlo Localization (MCL), simultaneous localization and mapping (SLAM), and path planning.
Implementation Methodology
- Motion Control Odometry:
- Designed and tuned a PID controller for precise wheel speed control and body velocity adjustments.
- Implemented an odometry module using encoder and IMU data to estimate the robot's position and orientation through dead reckoning.
- Developed a motion controller to execute paths between waypoints, ensuring smooth transitions and maintaining trajectory accuracy.
- Vision and Camera Integration
- Calibrated the camera for intrinsic and extrinsic parameters, enabling accurate mapping between image and world coordinates.
- Utilized AprilTags for obstacle detection, distance estimation, and visual servoing to align the robot with targets.
- Simultaneous Localization and Mapping (SLAM)
- Implemented an occupancy grid mapping algorithm using LiDAR data and ground-truth poses.
- Developed a Monte Carlo Localization (MCL) module to estimate the robot’s pose within a known map using a particle filter.
- Combined localization and mapping into a robust SLAM system, enabling real-time environment mapping and navigation.
- Path Planning
- Built an A* path planner to compute optimal paths through a mapped environment.
- Implemented obstacle avoidance strategies and ensured smooth execution of planned paths using a motion controller.
- Designed an exploration algorithm to autonomously navigate and map unknown environments by identifying unexplored frontiers.
- Lifting Mechanism Design
- Designed and prototyped a gripper mechanism to lift and place targets.
- Integrated gripper control with the MBot's motion system to complete pick-and-place tasks.
Results and Challenges
- Maze Eploration : Successfully mapped a maze, returned to the starting pose, and achieved high accuracy in map quality.
- Warehouse Task : Completed the pick-and-place challenge by retrieving and placing multiple targets within time constraints.