Semi-Autonomous 14 DOF Quadruped Using Mini Maestro

I built this robot with my team over a period of 8 months. This is one of two identical quadrupeds in the pack. The robots were designed to autonomously retrieve an unknown moving target tagged with RFID. I have since used the Mini Maestro for a variety of other projects, but I think this one best demonstrates the capacity of the controller.

The robot uses 12 servos for the legs and two servos for the head. They are controlled using the Pololu Mini Maestro 18. All code is written in Python with the exception of vision-related code, which is in C++ (with some lower-level device specific optimizations) with exposed Python bindings.

One of the main features of the robot is that it can generate and execute arbitrary gait patterns given desired velocity and rotation vectors. All 12 servos in the legs need to be precisely synchronized in order for the robot to walk properly. This is easier using costly smart servos, but the same synchronization can be approximated very well using the Maestro and hobby servos.

Other features of the robot include (copied directly from GitHub):

  • Fully wireless communication
  • 50 minute continuous run time
  • Crawl and trot gaits
  • A top speed of 10 cm/s
  • Forward, backward, and rotational (turning) motions
  • Video stream
  • Object tracking and motion detection
  • Object learning and recognition
  • Single camera SLAM (external processing)
  • Audio feed and pitch recognition
  • Voice control
  • Fully rotatable head
  • RFID scanning
  • Fine leg motion (pushing buttons)
  • Basic “follow” capacity (not well-tested)
  • A price tag under $500

I decided to publish the project here because it contains a cross platform Python library for servo control using the Maestro. More importantly, it includes a complete rewrite of the Usc class in Python for low-level device access. In case I never get around to publishing the library for release separately, it will be here for those who would like to use it.

All code, CAD, pictures, videos, and hundreds of pages of associated report and documentation can be found on https://github.com/bobbyluig/Eclipse. For those interested, there is also detailed information regarding the dynamics and kinematics of the robot that can be generalized for other systems.

3 Likes

Hi.

This is an impressive project (especially for a high school class)! We shared it on the Pololu Blog.

Thank you for sharing your documentation and source code. With the popularity of Raspberry Pis, I expect it is likely someone will find the Python implementation of the Maestro USB SDK library useful.

Ryan