Sumo Bot Design

The project aimed to build a sumo bot for an Undergraduate class focusing on learning Electronic and Mechanical Systems (EMS) design from the ground up. The challenge was to construct a functioning robot and gain hands-on experience in designing PCB boards, coding, and robotics. Inspired by a desire to delve deeper into robotics, this endeavor was a foundational step toward pursuing further education.

PCB Design
Custom PCB

The sumo bot was designed from the ground up, including a custom-built PCB board and carefully sourced components. The robot, powered by code written in C++ and ran on a Nucleo, featured opponent detection sensors and line detection capabilities to enable autonomous operation and competition. With a 3D-printed body and four-wheel drive, the robot was engineered to be agile and durable. Bluetooth functionality was integrated to allow wireless control, highlighting a commitment to incorporating advanced features despite the project's DIY nature.

Sumo
Sumo Bot

The robot's performance was tested in a competitive setting, where its primary objective was to remain within a designated circle while confronting opponents. The project presented unique challenges as a solo team, particularly in achieving reliable performance against teams with more resources. Despite these obstacles, the robot was functional enough to compete and could hang in the ring with the other team's robots. The experience was invaluable, offering real-world insights into the complexities of hardware-software integration and the importance of precision in sensor readings and communication rates.

Although the robot didn’t end with all my initially planned features and faced difficulties in competition, the project was a significant learning journey. It ultimately inspired me to pursue a career and education in Robotics. The challenges encountered, especially in hardware interfacing and obtaining accurate sensor data, were pivotal in highlighting areas for improvement. Time permitting, this summer, I plan to revisit the project and rebuild some systems with the new things I have learned to see if I could make a more effective robot.

Click here to see a slightly worse for wear sumo (after competition) in action: Watch Video

Multi-Drone Lifting System

Increasing the lifting capacity of drone systems substantially increases their usefulness and viability in a wide range of applications, from search and rescue to supply delivery. However, the cost and size of more powerful drones can grow exponentially, potentially making them prohibitively expensive in some applications. We hypothesized that this price could be offset by allowing multiple smaller drones to work in tandem. This project aimed to design and develop a truss and control scheme that enabled multiple smaller drones to work collaboratively, thereby increasing the total lifting capacity of a drone system.

Drone Configuration
Drone Configuration

To achieve this collaborative lift, a physical connecting truss and a control model were developed and tested on Simulink. The final truss design weighed only 7.93 grams—light enough to allow for a meaningful payload lift increase—and was robust enough not to bend visibly under our maximum payload. Moreover, the control scheme was explicitly designed for scalability, allowing for the integration of additional drones with a focus on enhancing overall lift capacity.

Stability Flick Test
Stabililty Flick Test

When tested, the multi-drone system demonstrated a significant 43% increase in lifting capacity compared to the single drone. This improvement was quantified by the total mass in grams the dual drones could lift compared to the single drone. Furthermore, the system could adaptively handle and transport loads ranging from 1g to 10g and demonstrated resilience to physical perturbations during flight. Additionally, the maneuverability of the two drones was comparable to that of the single drone system, with no significant loss of agility or responsiveness.

The project's results were conclusive, affirming our hypothesis that a collaborative drone system could meaningfully augment lifting capacity, be more stable than the single drone, and maneuver similarly to the pre-collaborative system. With these promising results, future research directions could include experimenting with larger groups of drones, either connected or operating as an untethered swarm, to lift heavier loads collaboratively. This advancement could potentially shift the focus on enhancing drone capacity, steering attention away from augmenting individual drones and towards developing more effective collaboration strategies among multiple drones.

Click here to see a playlist of our multi-drone system flying and lifting a payload: Watch Video

Dynamic Balance Board

This project aimed to design a balance board as a dynamic platform for learning and applying the fundamentals of mechatronics and control theory. By focusing on the practical aspects of interfacing with motors, encoders, and sensor systems, the project provided a comprehensive foundation for understanding the operational principles behind more advanced mechatronic systems.

Balance Board
Balance Board in Action

Working with another teammate, we employed object-oriented programming techniques to achieve our objectives, specifically designing classes for the system's motors, encoders, and touchpad. Central to our approach was developing a PID (Proportional-Integral-Derivative) controller tasked with maintaining the rolling ball's equilibrium on the board. To control the rolling ball, we analyzed the system dynamics and analytically determined the PID controller's K values using the control theory fundamentals. The project's success hinged on our ability to program for speed, requiring efficient scheduling and coding practices to manage the ball's movement at high velocities.

The culmination of our efforts was a fully functional balance board that adeptly balanced a rolling ball atop a touch sensor within a specified operational range. The effectiveness of our design and control strategy is exemplified in this video. This success depended on real-time evaluation and control of a highly nonlinear system. Engaging in this project allowed me to develop my understanding and skills in mechatronics and control systems significantly. The project emphasized the importance of computational speed in executing theoretical control models and vividly highlighted the challenges associated with bridging the gap between simulated environments and actual implementation. Through this hands-on experience, I gained significant confidence in my ability to design and implement complete robotic systems.

Click here to see a the balancing platform submission which shows the balance board in action: Watch Video

Global Localization for Indoor Mobile Robots

This project tackled global localization for a disoriented indoor mobile robot using Particle Filters, also known as Monte Carlo Localization. Targeted at critical applications such as search and rescue, precision agriculture, and mapping in hostile environments, the project aimed to accurately determine a robot's location without initial pose knowledge, employing the principles of Simultaneous Localization and Mapping (SLAM).

Indoor Localization Using SLAM

A hybrid system was developed to implement the particle filter, integrating C++ for heavy computational tasks and Python for its flexibility, facilitated by Pybind11—a task I spearheaded. This setup was crucial for lowering run times and allowing for more particles. My responsibilities included implementing ray tracing for sensor simulation, parameter tuning, and developing selective particle elimination strategies, refining the system for efficiency, and tracking accuracy.

The project culminated in the creation of a scalable and robust global localization system for indoor mobile robots, demonstrating the Particle Filter-based approach's flexibility. My contributions, particularly in ray tracing, Pybind11 integration, parameter tuning, and selective particle elimination, alongside assisting my partner with vectorization, significantly developed and refined my SLAM-related skills.

Click here to see how the SLAM algorithm is implemented on two different datasets: Watch Video