


đ Round 1: Lap Completion |
đ Round 2: Lap Completion with Obstacle Avoidance and Parking |
|
In Round 1, the robot must autonomously complete three laps on a pre-defined track. The goal of this round is for the bot to demonstrate stable navigation and precise lap tracking without any obstacle avoidance requirements.
|
In Round 2, the bot must complete three laps while avoiding green and red obstacles:
After completing the laps, the bot must accurately park within a designated zone.
|
Hereâs a breakdown of the project folders:
- **[`assets`](./assets/)**: Contains all the images used in the README files of this repository.
- **[`instructions`](./instructions/)**: Contains all the instructions on how to setup and use the package.
- **[`models`](./models/)**: Contains 3D models and CAD designs of the robot.
- **[`src`](./src/)**: Source code for the robot's programming. This contains the ROS2 packages.
- **[`t-photos`](./t-photos/)**: Technical images of the robot build.
- **[`v-photos`](./v-photos/)**: Visual photos for aesthetics and showcasing.
- **[`video`](./video/)**: Performance and demo videos of LazyBot.
---
---
## Key Features
- **`Hybrid LEGO & 3D Printed Design`**: Using LEGO parts proved to be very helpful based on the previous experience of our members. That, along with 3D printed parts made it possible to harness LEGO's precision and the flexibility of 3D printing.
- **`Advanced Sensor Suite`**: LazyBot is equipped with a LiDAR (to perfectly sense the surroundings), encoder motor (to precisely calculate the position), IMU (to calculate realtime orientation).
- **`Use of Robot Operating System`**: We used ROS2 to control the robot. We took this decision because Robot Operating System allows to make a project very modular and provide a lot of useful tools for simulation and visualization.
- **`Real-Time Odometry Calculation`**: This is one of the major feature of our robot. Using the onboard IMU sensor and the value from the motor's encoder, the robot calculates the exact realtime position of the robot.
- **`Efficient Debugging`**: We've added an OLED display to the MCU of the robot which helps to debug the issues on the MCU side. And ROS2 provides a lot of debugging tools that helps us debug any issues happening on the Pi side.
---
---
## Components and Hardware
Our bot is equipped with various components that support its autonomous functionality. The table below summarizes each module with a concise role and mounting approach:
| Image | Component | Price | Role / Function | Mounting |
|---|---|---|---|---|
![]() |
Raspberry Pi 5 | $100.00 | Highâlevel processing (ROS2, vision, LiDAR integration). 8GB RAM for parallel tasks. | 3D printed middle chassis plate + 4Ă M2.5 standoffs & screws. |
![]() |
RPLidar C1 | $67.87 | 360° environment scan for obstacle mapping & tower shape profiling. | Top cover LiDAR mount, 4à M2.5 screws. Resting on middle layer tray for support. |
![]() |
Logitech C270 Camera | $24.76 | Color tower detection (masking & confirmation). | Mounted on 3D printed pan servo mount with single screws for angle adjustment. |
![]() |
ESP32 Microcontroller | $7.38 | Realâtime motor, encoder, IMU, servo & OLED interface; lowâlevel comms. | Soldered to custom secondary PCB under top cover. |
![]() |
BNO055 9âAxis IMU | $22.28 | Orientation & fused heading for odometry; low drift angle source. | Center (slightly left) of PCB for vibration isolation; header pins + foam tape as spacer for mild vibration dampening. |
![]() |
1.3" OLED (I2C) | $5.83 | Live status: sensor readouts, battery warnings, debug info. | Vertical raised header on PCB rear edge + friction with top cover. |
![]() |
5V 20A Buck Converter | $6.21 | Primary regulated 5V rail for Pi (headroom for peaks). | Middle chassis plate with double sided tape. |
![]() |
5V 5A Buck (SCT2650) | $3.99 | Secondary regulated supply for noise generating components (Servo, peripherals). | Bottom of PCB (to save space). |
![]() |
25GA Gear Motors + Encoder | $9.65 | Drivetrain torque + linear displacement feedback for odometry. | Captured in printed motor housings; 2Ă M3 screws. |
![]() |
VNH2SP30 Motor Driver | $18 | Highâcurrent brushed DC control (PWM + direction + protection). | Screwed to the bottom of the second/middle layer. |
![]() |
PS1171MG Servo | $16.00 | Steering actuation & camera pan positioning. | 3D printed steering bracket/3D printed LiDAR bracket with integrated servo hole. 2Ă selfâtapping screws each. |
![]() |
Custom Secondary PCB | N/A | Integration hub: ESP32, IMU, OLED, some power distribution, headers and lots of capacitors. | Four M3 standoffs to chassis midâdeck and top cover. |
![]() |
LEGO Differential (Gen 3) | $1.84 | Allows inner/outer wheel speed difference for smooth turning. | Seated in printed cradle; retained by axle bearings (friction). |
![]() |
3D Printed Body Frame | Varies | Structural chassis: mounting surfaces, protective shell. 3 Layer design. | Base structure (printed as modules with minimum support); screw or snapâfit/friction. |
#### How It Works:
- The motor is connected to the differential gearset using a matching 20 teeth 3D printed gear. The gear system transfers torque from the motor to the gearbox with a **1:1.2** ratio.
- The differential automatically compensates for wheel speed differences when turning.
- Encoder readings stay accurate as it records roughly the average speed of the two wheels.
#### Benefits of our drive train:
1. **Smooth Turning**: Independent wheel speeds allow efficient navigation.
2. **Precise Odometry**: Encoders enhance path planning and tracking.
3. **Compact & Modular**: LEGO-based integration makes the drivetrain easy to modify and assemble.
4. **Freedom to change gear ratio**: 3D printing one gear allowed us to change the gear ratio, as our motor was just a tad bit too fast.
|
A 20GA Motor was being used when we took this picture. |
|
|
---
---
Thank you for going through our documentation! If you want to learn more, please reach out to us through our socials media accounts:
- [facebook](https://www.facebook.com/team.lazygo)
- [linkedin](https://www.linkedin.com/company/lazygo)