Introduction

In the dynamic realm of robotics, the pursuit of innovation knows no bounds. My journey embarked with a bold ambition: to surpass the existing world record for the smallest humanoid robot, all while adhering to a stringent budget. With the record standing at 141mm, I was determined to push the limits of what was deemed achievable.

Figure 1: Previous Record of 141mm

Development Plan

My quest was clear: to challenge conventions and redefine possibilities in robotics. The goal was to create a compact yet efficient robot using the most economical means possible. Extensive research into existing designs guided my path as I scouted for miniature components, from motors to controllers and Bluetooth modules. Armed with this knowledge, I ventured into the intricate process of crafting my diminutive marvel.

The journey was not without its hurdles, from sourcing miniature components to optimizing spatial constraints and reverse-engineering communication protocols. However, each obstacle served as a catalyst for innovation, pushing me to refine my design with each iteration.

To ensure cost-effectiveness, I committed to using off-the-shelf Chinese parts exclusively, eschewing custom or expensive components. Additionally, I imposed a challenge upon myself to solely utilize 3D-printed parts, crafting everything from scratch.

Central to the project was the motion of the robot's joints. While tempted by simpler alternatives, I concluded that only a servo driver would meet the project's complexity requirements. Hence, I selected the 2g servo motor sourced from AliExpress.

The brain of the operation required a microcontroller capable of executing intricate code, managing multiple servo motors, and enabling Bluetooth or Wi-Fi communication for remote control. After considering various options, I settled on the ESP32 paired with the Adafruit PCA9685 16-Channel Servo Driver.

Powering this miniature marvel demanded a pair of 200mAh LiPo batteries alongside a minuscule step-up converter to meet the 5V requirements of the servo motors.

Armed with a collection of components hastily procured from AliExpress, I eagerly embarked on the quest to break the world record, aiming for a remarkable 30% improvement with a target height of 100mm.

Progress Updates

Each milestone achieved was meticulously documented, with photos and videos capturing the evolution of my creation. From initial sketches to prototype refinements, the journey epitomized perseverance and determination.

Week #1

The bulkiness of the PCA9685 servo driver posed a significant challenge, threatening to hinder the project's progress. Recognizing the need for a more streamlined solution, I discovered the "WitMotion 16 Channel Bluetooth PWM Servo Driver," an all-in-one board that reduced the footprint by 33%. Acquiring this board marked a significant step forward in the project's development.

Figure 2: WitMotion 16ch Bluetooth servo driver

Week #2

Upon receiving the WitMotion board, I quickly realized the PC software  wasn't suitable for controlling the robot due to its uncomfortable UI and limited USB (UART) connection.

Figure 3: The commercial PC software

Undeterred, I sniffed the UART communication data and discovered a simple protocol with periodic keepalive packets every second. By connecting with pyserial and sending the same keepalive message, I received the expected response from the board, confirming that communication was possible with a Python script.

I then analyzed more commands from the commercial software and found the motor control packet to be an intuitive 5-byte structure. I developed a Python package capable of the 5 necessary commands for the robot, although it doesn't support uploading and erasing entire programs for offline use. This package is available on PyPi.

Figure 4: Example packet structure for motor position control

Week #3

So now I’m able to control the robot with the new board, but only when it's wired. I needed to analyze the Bluetooth communication protocol as well but lacked both the knowledge and an Android device to use the commercial app. Nevertheless, I downloaded an iOS app for Bluetooth communication, identified the correct MAC address for the board, and saw it identified as “Nordic UART.” After a quick Google search, I realized this would be easier than expected since “Nordic UART” allows using the same UART communication protocol over Bluetooth.

I sent the keepalive message over Bluetooth and got the correct response! I then checked all other commands, and they worked exactly like the USB connection. Discovering that the protocol was the same but the medium was different, I searched GitHub for a “Nordic UART” package but found nothing. So, I implemented my own communication package with a similar API to PySerial, allowing for polymorphism and using both serial and Bluetooth communication interchangeably. You can find it on PyPi.

Week #4

Two main tasks lay ahead: finishing the CAD design process and 3D printing all the parts, and completing the software and implementing some animation logic.

After weeks of hard work and countless iterations, I proudly present my final creation: Tiny Titan. Standing at just 95mm high, Tiny Titan is a marvel of miniaturization, representing the culmination of countless hours of design, experimentation, and refinement.

Github Link

Figure 5: Tiny Titan final result

Week #5

With my robot in hand, I prepared for the record-breaking attempt. I received an email from Guinness World Records stating that my submission request was reviewed and approved which was very exciting, and now all that’s left is to provide evidence and documentation. This step proved to be the most challenging as it requires following strict guidelines set by Guinness World Records, meticulously documenting every aspect of the process, including measurements, verification methods, two witnesses, an expert in the field to vouch for the build process, and another measurement made by a qualified individual.

Initially, I hoped to complete this journey without leaving my bedroom, but now I'm forced to interact with people, which was not my preference. Unfortunately, procrastination hit me hard as I was distracted by my job and school, making excuses to delay finishing the project and sending the required documents. I later realized this was a bitter mistake.

Week #10

Unfortunately, before I could receive confirmation, another individual broke the record with a robot measuring just 60mm. Despite my disappointment, I am proud of my achievement and the lessons learned along the way.

Congratulations to the new record holder for their remarkable achievement. Although my attempt fell short, I am inspired to continue pushing the boundaries of robotics and pursuing new challenges in the future.

Figure 6: New World Record Holder

Conclusion

The journey to break the world record for the smallest humanoid robot was marked by both triumphs and setbacks. Grateful for the support from the community, I reflect on the invaluable lessons learned and the enduring spirit of innovation. As I look to the future, I remain committed to pushing the boundaries of robotics and embracing new challenges that lie ahead.

Remaining Tasks and Future Endeavors