Introduction: Quadruped Robot - Alpha! ESP32 Based Spot Micro Robot.

About: Undergraduate Computer Science Student | VIT Chennai Passionate about Problem-Solving, Software Engineering and Emerging Technologies like Artificial Intelligence, Eager to collaborate with like-minded individ…

Hello Everyone!


Introducing our Quadrupled Robot Alpha! Designed to explore the future of autonomous companionship. The Boston Dynamics "Spot Mini" robot is, of course, the inspiration for this project. Achieved Prototype in one month within a $200 budget.

Deok-yeon Kim originally produced the 3D design and files on Thingiverse.com. To satisfy our requirements, we made minor structural and design alterations to the parts in Fusion360. link - https://www.thingiverse.com/thing:3445283

No Electronics or Coding are included in Deok-yeon's design; these are things We have to make!

With the exception of the foot, which is 3D printed in TPU plastic, most of the parts are PLA. 10% fill is printed on both.

The "skeletal framework" of Alpha is represented by the black components. For a broad range of motion, the robot is equipped with 12 high-torque metal gear servos, three on each leg.

Here's a quick look at our robot's key features:

12 Degrees of freedom with 3 per leg for biomimetic movement.

Inverse Kinematics for versatile motions like sitting, standing, and walking.

Dual Ultrasonic Sensors for obstacle avoidance.

An ESP32 Cam serves as its "eye," providing a live point-of-view stream.

YoloV3 Algorithm implemented on the ESP32 Cam for object detection and face recognition.

An LCD interface for real-time program updates.

Powered by a 3S Lipo Battery, offering approximately half an hour of operation.

Supplies


Refer - https://novaspotmicro.com/ For Powerful Build!


ESP32 CAM WiFi Module Bluetooth with OV2640 Camera Module 2MP For Face Recognization

PCA9685 - 16 Channel 12-Bit PWM Servo Motor Driver I2C Module For Arduino

ESP32 Development Board with Wifi and Bluetooth

MPU6050 - Triple Axis Gyro Accelerometer Module

XT60 Male-Female Connector Pair for Lipo Battery

B3 Lithium Polymer (LiPo) Battery Charger for 2S-3S Lipo

300W 20A DC-DC Buck Converter Step-down Module Constant Current LED Driver Module

LM2596 DC-DC Buck Converter Adjustable Step-Down Power Supply Module

Tower Pro MG996R Digital Metal Gear High Torque Servo Motor (180 Degree Rotation)

Lipo Battery Voltage Tester with Buzzer Alarm

1602 (16x2) LCD Display with I2C/IIC interface - Blue Backlight

Digital Multi Servo Tester ESC CCPM Consistency Master Speed Control

Find All the supplies in the Below PDF!

Step 1: Collect All 3D Printed Parts

There are different versions of Spot, you can go with the original design but, Integrating with Electronics will be difficult. I would recommend the ESP32 Version of Spot Micro.

Link - https://github.com/michaelkubina/SpotMicroESP32/tree/master/parts/SpotMicroESP32_parts_v1_0_0

Attachments

Step 2: Assembly

Assembly of the robot is pretty easy and fun, something like assembling a Lego set.

There are many resources around this, I'm Attaching all of them.


https://spotmicroai.readthedocs.io/en/latest/assembly/

https://github.com/michaelkubina/SpotMicroESP32/tree/master/assembly

https://github.com/runeharlyk/SpotMicroESP32-Leika

Step 3: Circuit Connection

Step 4: Implementation

Final Circuitry.

Step 5: Inverse Kinematics

It's now time to derive and calculate the inverse-kinematic model for the robot so we can make it perform useful movements around each leg.


The legs of the robot form an Isosceles triangle as elbow length and arm lengths are equal. We can set the Height of the robot by calculating the Shoulder Angle and Arm angle using the COSINE/SINE rule (SSS Triangle).

Step 6: Coding

Follow the above Video to code your SPOT ROBOT!

Step 7: IMU Sensor Integration

Test Spot Micro using the IMU (MPU 6050) and a PID controller in order to keep the body horizontal.

https://github.com/avbotics/Spot-Micr...

Step 8: ESP32 CAM

We've integrated an ESP32 Cam Module with a pair of ultrasonic sensors for its eyes

The implementation includes ESP32 CAM-based Object Detection and identification using OpenCV, a widely used open-source image processing library. Our choice for object detection is the cvlib Library, leveraging the YOLOv3 pre-trained AI model on the COCO dataset.

Additionally, we've incorporated Person Detection using the EloquentTinyML Arduino library (ESP32 TensorFlow Lite Arduino library) and an ESP32 CAM Face Recognition System with the ESP32 CAM Webserver Library.

Ultrasonic sensors handle object avoidance, and we're planning to enhance the robot's capabilities by interfacing it with a lidar sensor for mapping its surroundings.


Guide - https://how2electronics.com/esp32-cam-based-object-detection-identification-with-opencv/

Step 9: Future Advancements and Application.

Because of the Budget (200$), We're limited with the Resources. We have tried our best to implement the prototype as cost-effectively as possible. of course, we have planned for future Advancements for this project.

Our future plans for this project include:

Enhancing the inverse kinematics and firmware.

Developing a custom controller app and implementing voice-controlled features.

Exploring the Robot Operating System with RPI5 or Jetson Nano.

Integrating a Lidar sensor for mapping the robot's surroundings.

Ultimately, open-sourcing our codebase.

If someone is willing to fund this project, we would be very grateful.

Step 10: Remote Controller

Maarten Weyn already made the inverse kinematics work and wrote a Smartphone App for simple Control of this Robot via BLE. I advise you to take a look into his Repository as well, as this is currently my preferred codebase: https://github.com/maartenweyn/SpotMicro_ESP32

Step 11: Voice Controlled Spot

A walking gait implementation and voice-commanding were achieved by Guna R. You definitely have to take a look there as well - but it seems the repo is incomplete and missing the app: https://github.com/cholan2100/ceasar

  • Power on with the robot in the sleep position.
  • The robot will stand up immediately on power.
  • It will be idle for 10 seconds so that you can keep hold of the robot if any configuration is wrong.
  • After 10 seconds, the robot will start to practice walking in the same position.
  • After another 3 seconds, the robot will start walking in a straight line. There may be unintentional yaw of the robot during the walk. This will be corrected in future.


Step 12: ROS

Mike implemented the first version of the software controller for the original Spot Micro project on ROS framework using research papers on Kinematics and 8 phase Gait, which is still the popular software for the Spot Micro project. ESP32 controller for Spot Micro is heavily derived from Mike's implementation. Mike's Spot Micro: https://github.com/mike4192/spotMicro

Documentation - https://spotmicroai.readthedocs.io/en/latest/

Step 13: Our Project Journey

Fun Journey of Making our Robot!

Step 14: OUTDOORS!

Testing our Robot on outdoor conditions!