Botzilla

ROS2 based cube detection and retrieval robot done for the Robotics and Automation module.

BOTZILLA is an autonomous search and retrieval robotic system built on the Kobuki QBot platform. Designed to operate in a divided arena, the robot autonomously navigates its environment to locate a specific target object (a cube), retrieve it, and transport it to a designated drop-off zone marked by an AprilTag. The project demonstrates a complete end-to-end robotics pipeline, bridging the gap between hardware integration, behavioral state machines, and advanced edge-AI perception.

Scope & Architecture

  • Hardware Platform: Built on a Kobuki QBot chassis, equipped with a Kinect RGB-D camera for spatial perception, and powered by a Raspberry Pi 5 acting as the central compute node.
  • Software Ecosystem: Driven by a robust ROS 2 microservices architecture featuring modular nodes for base kinematics, camera bridging, YOLO object detection, and AprilTag recognition.

Special Features

  • 4-Quadrant Star Navigation: Engineered a custom spatial navigation strategy that logically divides the arena into four quadrants. The robot systematically moves from the center to each quadrant and back, ensuring complete environmental coverage while actively mitigating the camera’s physical range limitations.
  • Edge AI Object Detection: Deployed a highly optimized YOLOv8 nano machine learning model (3.15 million parameters) directly on the Raspberry Pi.

Key Insights & Things Learnt

  • Resource Management at the Edge: Overcame significant low-power and low-computational bottlenecks. Addressed issues like dropped Kinect frame rates by integrating dedicated external power sources and streamlining ROS 2 node execution to handle primary tasks sequentially.
  • Algorithmic Problem Solving: Learned to solve physical hardware perception faults (e.g., failing to detect objects from a distance) using software-level algorithmic changes, specifically by redesigning the navigation sequence to systematically close the physical distance to targets before running inferences.