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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

Botlab Project Report