This project is submitted for

Description

Walking robot platforms can navigate buildings, climb stairs, enter cars, and traverse farmland. Potentially, they can become elder companions or herbicide free weed removers. Excessive cost for such a platform, tens of thousands to millions of dollars, discourages students, makers and startups from advancing the technology. My goal is to create an open, shared, walking platform that costs hundreds of dollars. The affordable accessibility this provides, coupled to the intellectual capabilities of people throughout the world, may spark a new industry.

Details

Here's the contest entry video.

June 27--using an onboard power supply and Arduino, the dog can stand untethered.

The Plan

Increase torque of legs

Decrease weight of legs

Build a stiff, low weight body

Take steps

Add onboard power

Stand

Take steps

I had to show this . . . Google's AIY Vision Kit can be used to detect human faces or smiles (and probably other things). This will allow my dog to "know" that someone is there and if they are smiling. More information can be found in log number 10, "Google AIY Vision."

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 couple of ultracapacitors; I have started something along the same line--but the cost is more like $300.

She's young and shaky, but my dog can now stand. The body is longer and the rear legs reversed--look to my log, "The Forces Are Not All With Me."

Here's where we "stand" on March 28.

This is where it started.

Here's where I am on March 16.

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.

Here's the first version of a head--with flapping ears synchronized to barks.

I don't have a dog, so we had to visit a friend and record their dog's bark. Of course, Juston (the dog) just stood silently for all the many things that normally trigger a bark (treat, knock on the door, promise of a car ride). Finally, he was induced to talk.

This "Dog Head Module" is a 3d printed head with two servo motors that can be used to flap ears. It can be added to any dog robot (wheels or legs) and modified (the raw head files are available on this site).

My wife, Annelle, made a clay head for scanning.

The head is fairly large and was scanned on a Makerbot Digitizer.

The resulting scan file (included) was too large to import into Tinkercad. I reduced the file size (included) then imported the head into Tinkercad and made holes for the servo motors and wires.

I mounted the micro servo motors in their 3d printed brackets, then melted (using a soldering iron) the bracket into the head.

I added a servo horn extender to the servo horn so that the ear would move a reasonable amount.

Bearing brackets (3d printed) were melted onto the dog's head. They accommodate the 1 1/4 inch by 2-56 machine screws that allow the ear to move.

A bearing adapter piece must be melted to each ear.

A finished (not painted) ear looks like this.

Back to the art shop (Annelle) for a paint job.

Assembled, the head looks like this.

I used an Adafruit sound module board and trigger the bark file (included on this site) with an Arduino. I coordinated the ear flapping servo motors with the bark sound.

You could put square 8x8 led modules in for the eyes. The mouth could be cut away and modified to move for the bark . . . this is just a starting place.

This low cost module using four roller switches and a 3d printed bracket can be used to provide tilt information for a robot.

The idea is to use four roller ball tilt switches (about $.50 each from Amazon) and a 3d printed bracket to detect tilt. I designed a four degree tilt to each of the four "arms" so that the balls would roll downhill when the robot is level. By assigning the numbers "1" for north, "2" for east, "4" for south, and "7" for west it is possible to read each switch then add the numbers and know whether there is tilt and in what direction.

The leds shown below are just for testing--not part of the finished sensor.

I start with the tilt switch holder and insert the tilt switches. The "not active" end is pointed toward the center (longer wire, silver instead of brass). The "active" end--when lower than the other end--will result in continuity between the end wires.

I use wire wrap wire (then solder it) to connect the pins. The center position I tie to ground on the Arduino. Direction one goes to A0, direction two goes to A1, direction four goes to A2 and direction seven goes to A3 (since I used 12 Arduino Uno pins for servo control, I'm running low on input/output pins).

The final assembly, fastened to the dog using a wood screw, looks like this.

The original leg--using 20 kg-cm servos--could exert 1250 grams of "push" on a scale. The new leg--using 40 kg-cm servos--measured 3300 grams of "push" before the upper plywood test jig lifted. In other words, I'm getting nearly three times the lift with the new motors. The original leg used three $18. motors while the new leg uses one $18. motor and two $38. motors; so my cost per leg just went up $40.

The extra torque was too much for the upper axle piece and it sheared at the connection where it holds the leg.

I reprinted the axle at 100% fill and it is now holding for test purposes. I'm in the process of redesigning the connection for more strength.

An unexpected benefit of the new motors involves a stiff gear train that resists external movement. If I raise the leg in the air and remove power to the servo motors, the leg stays in place.

This is a major benefit in that the motors draw virtually no current (thus no wasted heat and battery energy) unless they are moving.

I'm working on stronger connections and I've ordered enough parts to complete four legs.

I assembled a Google AIY Vision Kit tonight (took about two hours). This will be great for the dog since it will allow the detection of humans and whether they are smiling. I am using the default mode--have not explored the many options at this time.

When no face is detected, the light on top is not illuminated.

When a face is detected (and it will easily detect a single face at a distance of 20 feet) the light turns blue.

When there is a smile, the light turns yellow. A big smile will turn the light bright yellow and trigger a piezo buzzer.

The left rear leg has to come off for new motors (twice the torque) in the shoulder and elbow joints. First, the wires have to be disconnected.

Next, the leg is removed from the body.

The total leg assembly will require design tweaking to keep the weight down and minimize some sharp edges (I don't want to get hurt--the motors are getting pretty powerful now). A good leg assembly could be a "module" for the Robotics Module Challenge.

I put the existing leg assembly on the scales and it came in at 900 grams.

The shoulder motor and bearings (existing) are 351 grams.

The new (larger and heavier motor) shoulder motor and printed bearing comes in at 280 grams.

At least it's going in the right direction--I would love to have the new leg weigh the same or less as the old leg.

Secure wires in terminal blocks. From outside looking in, position number 1 (left most) is upper servo control wire. Position 2 is "servo twist" control wire. Position 3 is lower ("super servo combo") control wire. Position 4 is positive. Position 5 is negative.

Do this three more times. Left front and right rear legs are the same.

Right front and Left rear legs are set up with the "Servo shoulder motor" set to the maximum cw limit (30 degrees) instead of 150 degrees.

3

Control and Power

To make the dog move, power and control must be provided. The legs are attached to an Arduino and battery as shown in the schematic diagram below.

Connect the motor power terminal blocks using #18 AWG wire.

Add the Arduino.

Connect the left front leg to the Arduino.

Add control to the right front leg from the Arduino.

Add control to the right rear leg.

Finally, connect the left rear leg.

The power supply is a combination of an 8 volt lead acid battery (sealed), a voltmeter and two switches. Lugs slide onto the battery--they can be removed for recharging. The power supply is mounted on 1/4 inch plywood and the plywood is attached to the body using Velcro. A disconnect plug from the power supply enables the entire supply to be quickly removed or swapped.

The voltmeter is not absolutely necessary, it's just handy so that the battery status can be easily monitored.

The head and tail reduce the "uncanny valley" effect and increase the "doglike" look. The head was formed using an 8 inch diameter foam ball (carved for shape). The muzzle is a styrofoam oval--the nose a small circle. The neck was carved from a styrofoam oval. The ears are brown faux fur fabric (craft store) and the tongue is pink foam. Add google eyes, paint and glue for the head. A 1" x 2" rectangle of wood was inserted into the neck (square hole cut out first) and that is used to mount the head to the dog. The tail is a "brown giant chenille stem" (doubled).

Enjoy this project?

Discussions

Become a member

Have you seen: https://hackaday.io/project/157812-3d-printed-robot-actuator? He has a system that trades motor speed for torque, all 3d printed (except the motors). It might help? His intention is to make something that can jump, via pure motor/actuator force. Most biological systems that jump (well), involve a spring-loaded joint that gets "instantly" released to generate much more force than the available muscles could. In humans, etc, that spring force comes from the "stretch" or "spring" which loaded tendons have. But for "instant" application of large force, springs work pretty well. Not sure if that would make things too complex for your system, though.

Wow i was amazed from what i saw here and i would like to help as much as possible. I admit i'm really newbie but i have a 3d print so I can help trying different designs and even if small i want to give my contribution

Boston makes a micro version out of servos. Because of the limited torque & speed of servos, it's very slow & moves more like a toy. The Ghost Robotics Minotaur has come the closest to replicating Boston, for a lot less money.

As the shoulders carry the loaded weight, I would consider using 2 bearings (with some distance between them) per the improved shoulder joint. It would take the weight torque off of the single bearing ... which would be coupled to the motor. Also, to reduce the weight of the legs, you might want to use cabling to connect the driver motors located on the "body", down to the joint. It is a little more complex, but reducing the inertia of the legs might help the motors "upstream". Usage would be similar to a bicycle's brake / shifting shielded cables. That would also allow you to gear the motors, IF you have enough motor speed to trade for reducing the power loads.

When I saw the Boston Dynamics "dogs", I wanted to build some, too! Glad to see someone doing it! I like your design! IIUC, they use Neural Networks to learn to walk, etc. What are you using (or going to use)?

A possible optional material to use MIGHT be PVC pipe, rather than 3D printing the "bones". The schedule 40 stuff is pretty tough. You'd still have to print the joints.

Just for fun, there is a linux voice interface called "Mycroft", just in case you ever want to call your dog, or give it vocal commands. I think it runs on a raspberry PI.

As a final thought Home Depot has 2 sizes of bearing, in drawers in the hardware section (where they keep nuts, bolts and washers). I know that that is not helpful if there is no such store where you live.

Thanks for your well thought out comments! I am using two bearings per leg--but no distance between them. That gives me 24 mm of bearing surface (which is better than the nothing I started with).

Cabling the downstream joints would reduce the leg inertia--I'll have to see how much of a problem that is before I make changes there.

I'm not going to pretend that I have all the answers and "learning to walk" is a challenge to be addressed. If the legs have enough torque and speed to stand up with load and potentially walk, then I'll address the programming and feedback tasks. I can get double the torque if needed, but the motors cost $70. each instead of $18.

I didn't know that Home Depot had any bearings--I'll take a look next time I'm there.

I am interested in voice recognition and visual (camera) recognition, but I have to know how much weight I can carry before I go there.

Really, if I can get a self-contained (battery on board) platform up and walking, then it will be something that a lot of people can enhance with their skills.