Project in progress

Mike's Robot Dog © GPL3+

Boston Dynamics' robot dog, Spot Mini is unavailable at any price. A Chinese copy is $30,000. Cut 99% of the cost and build one at home.

  • 9,713 views
  • 2 comments
  • 48 respects

Components and supplies

High torque servo motors
https://www.amazon.com/LewanSoul-LD-20MG-Standard-Digital-Aluminium/dp/B073F92G2S/ref=sr_1_5?ie=UTF8&qid=1519591645&sr=8-5&keywords=servo+motor&dpID=41Um3gQkFJL&preST=_SY300_QL70_&dpSrc=srch
×12
350 farad capacitor
https://www.digikey.com/product-detail/en/maxwell-technologies-inc/BCAP0350-E270-T11/1182-1016-ND/3079280
×3
Snowmobile bearings
https://www.amazon.com/Snowmobile-Bearing-6004-2RS-20x42x12-Bearings/dp/B002BBGPCS/ref=sr_1_1?ie=UTF8&qid=1519591731&sr=8-1&keywords=bearing+snowmobile&dpID=51A0hnC8SRL&preST=_SX342_QL70_&dpSrc=srch
×8
A000066 iso both
Arduino UNO & Genuino UNO
×1

Apps and online services

About this project

Description

Using a 3D printer, off the shelf servo motors, an Arduino and three ultracapacitors; I have started a sizable robot dog--but the cost is more like $500.

My dog does stand now and a "build it yourself in a week" version can be duplicated.

To see the dog standing (before the new, more powerful motors) check out the video below.

For build instructions, 3D print files and a material list, go here and look for "Instructions."

Details

Spot Mini is an amazing (perhaps scary) robot dog built by Boston Dynamics--not for sale.

If you want to purchase something similar, a company in China produces a research platform for around $30,000. Another legged platform, Anymal, can follow you into an elevator.

Using a 3d printer, off the shelf servo motors, an Arduino and a three ultracapacitors; I have started something along the same line--but the cost is more like $300. 

My dog does now (March 28) stand!

I reversed the rear legs.

Why? The front would lift fine, but the rear refused to rise--in fact it kept wanting to slide rearward. I checked the torque and all four legs produced about the same force. What was going on?

Everything appears to make the body want to move rearward and the back of the body to move downward. For a final check, I looked at my old Aibo (vintage 1999).

Aibo's left front shoulder rotates clockwise while his left rear shoulder rotates counterclockwise to stand. I decided to try that and with positive results. I don't pretend to understand the forces and operation of Boston Dynamic's dog; but it obviously works.

If you want to use the 3d print files (and some of the design files) go to thingiverse.com. Some of my .stl files do not have a corresponding design file because the .stl files are 1) the combination of two or more .stl files in Tinkercad or 2) they are mirror images of .stl files, mirrored in Tinkercad. The leg pieces can take 10-12 hours each to print as they are sizable.

I use twelve high torque (277 oz.in) metal gear servo motors at a cost of about $18. each. These have no end stops and they draw a fair amount of current to move, but they respond consistently to commands.

Under heavy load, each servo motor draws 3.5 to 4.5 amps. To move from a sitting to upright position, eight motors need to provide significant torque--meaning 30 to 40 amps are required for a second or so. I use three 350 farad ultracapacitors (in series) across my motor power supply and they take care of the momentary load of the servo motors.

My first "shoulder connection" put all the "up/down" and "rotate" stress on the servo motor.

This looked like a bad idea, so I created a bearing block and heavy shaft to absorb the "up/down" load and let the servo motor's gearing handle the rotation only.

The bearings are snowmobile bearings available on Amazon.

I designed the servo motor mounts such that there is a sort of "back bearing" opposite the shaft so that it is easier to attach moving limbs.

The first foot was a wheel--but that rolled all over the place, so I created a movable flat pad for better traction.

I mounted a digital voltmeter up on the body--just to keep track of what was available for the servo motors.

So, there's a long way to go, but this walkable platform (when it works) will be useful for robotics on smooth or rough terrain.

On February 27, the first attempt at standing was made. A couple of the joints couldn't take full speed movement--we learn by trying!

Here are the connections on the lower left legs that failed under stress.

I printed a stronger joint piece and replaced the broken and damaged joints.

This photo shows the replacement of the "back bearing" for the servo motor.

This is the installation of the servo horn.

This is the attachment of the servo piece to the leg.

Next, I made a wider wheel, one that will not turn, to be in the foot position. Part of my trouble with standing involved the foot "moving around" instead of the body lifting.

I asked the leg to "push" as hard as possible. The result was 1.24 kilograms. Four legs pushing together should be able to lift 5 kilograms--the body weighs about 1.5 kilograms.

We need more torque, so I'm testing a 1/4 scale servo motor that will supply 550 oz. in of torque (https://www.pololu.com/product/3429).

This requires a larger mounting bracket--so I designed one and posted it on Thingiverse.

Here's a four leg lift.

Files

leg_test022718.ino: Stand up and sit down test

Code

leg_test022718.inoArduino
No preview (download only).
leg_test031018.inoC/C++
Four leg lift
#include <Servo.h>

Servo upper;
Servo lower;
Servo rotate;

Servo rupper;//right upper servo
Servo rlower;//right lower servo
Servo rrotate;//right sideways servo

Servo lrupper;
Servo lrmid;
Servo lrlower;

Servo rrupper;
Servo rrmid;
Servo rrlower;

int a=28;//rupper sit position 29
int b=36;//rlower leg sit position 38
int c=148;//upper sit left 146
int d=44;//lower sit left 48
int e=52;//rrupper sit 55
int f=36;//rrlower sit 24
int g=125;//lrupper sit 125
int h=42;//lrlower sit 47

int j=57;//rupper end for stand
int k=150;//timer increment




int ud=0;//0 for sit and 1 for stand
int countup=0;//counter to delay right front a bit

void setup() {
 upper.attach(1);
 lower.attach(3);
 rotate.attach(2);
 rupper.attach(4);
 rlower.attach(6);
 rrotate.attach(5);

 lrupper.attach(10);
 lrmid.attach(11);
 lrlower.attach(12);

 rrupper.attach(7);
 rrmid.attach(8);
 rrlower.attach(9);
 

 upper.write(c);
 lower.write(d);
 rotate.write(80);
 rupper.write(a);
 rlower.write(b);
 rrotate.write(86);//80

 lrupper.write(g);
 lrmid.write(80);
 lrlower.write(h);

 rrupper.write(e);
 rrmid.write(89);//83
 rrlower.write(f);
 
 
 delay(10000);
 //delay(500000);
 
 
 
 
 

}

void loop() {
while (e<82) {//a<j
  a=(a+1);
  b= (b+2);
  c=(c-1);
  d=(d+2);
  e=(e+1);
  f=(f+2);
  g=(g-1);
  h=(h+2);

  upper.write(c);
 lower.write(d);
 rotate.write(80);
 rupper.write(a);
 rlower.write(b);
 rrotate.write(80);

 lrupper.write(g);
 lrmid.write(74);//80
 lrlower.write(h);

 rrupper.write(e);
 rrmid.write(86);//83
 rrlower.write(f);

 delay(k);
}

delay(500000);
delay(500000);
  
}
  

Custom parts and enclosures

Thingiverse
https://www.thingiverse.com/thing:2793101

Schematics

Schematic
Schematic27022018 1 pqqovgnyfr

Comments

Similar projects you might like

OpenCat

Project in progress by Petoi

  • 168,968 views
  • 143 comments
  • 1,238 respects

Arduino Controlled Pinball Machine

Project tutorial by Bob Blomquist

  • 28,416 views
  • 40 comments
  • 74 respects

UAV Arduino

Project showcase by Gorceag Victor

  • 23,158 views
  • 24 comments
  • 127 respects

OCS-2: A Digital, Semi Modular Synthesizer

Project showcase by chnry

  • 20,319 views
  • 20 comments
  • 72 respects

Arduino UNO with 8 Times More Memory

Project showcase by T.F. Mc Temucin

  • 13,155 views
  • 19 comments
  • 64 respects

Ultimate Kegerator

Project tutorial by Kevin D Wolf

  • 14,906 views
  • 8 comments
  • 52 respects
Add projectSign up / Login