View Full Version : [Just For Fun] Another three-servo walker

10-20-2012, 05:30 PM
Here's my "little walker" two-servo proof of concept, using hobby servos and laser-cut MDF.


So, if I could scale this to carry three pounds of control/target panels/camera/guns, would it qualify as a biped for Mech Warfare? :-)

10-20-2012, 06:21 PM
If the rotation of the feet relative to the floor (perpendicular to the lifting linkage) was also a parallel mechanism powered by a single servo, then you could probably get the servo count down to two (I envision something like a wireframe box conencting two more boxes attached to the feet - two rigid boxes on the sides with a ball joint on each end of the four or more rods connecting the two boxes. One or more linkages parallel to the edges of the side boxes would probably be needed at intermediate locations along the connecting rods to prevent flexing - though torsion will probably still be a problem). Turning would be a sliding action like a Gerwalk: lift one foot, rotate body (move one foot forward or backward), lower foot, rotate body opposite direction.

10-20-2012, 06:50 PM
you could probably get the servo count down to two

That is true, but requires even more linkage that could interfere with the walking range. I already have trouble figuring out where to put the real mounting screws for the next version, as the nuts would interfere with the lower arm. Right now I use double-sided outdoors mounting tape :-)

Turning would be a sliding action like a Gerwalk: lift one foot, rotate body (move one foot forward or backward), lower foot, rotate body opposite direction.

But that's what walking does, too... Are you suggesting turning by first lifting L, turning feet, then grounding both feet, turning feet back, repeat? That way, both feet touching ground would counteract each other. Although it would be hard to arrange for that to be exactly the case.

10-20-2012, 07:15 PM
The gerwalk has no yaw servos, only 3 pitch (ankle, knee, hip) servos per leg and one roll (neck) servo. Turning is accomplished by starting from an initial upright pose, raising foot #1, moving it forward, setting it down, and returning to the initial pose (the feet slide on the floor, with the friction providing the yaw rotation of the entire bot).

10-20-2012, 10:14 PM
Nice work! Looking forward to seeing how capable this approach ends up being :)

11-18-2012, 01:33 AM
I've been milling some aluminum parts and a nice fat block of aluminum for mounting the servo. Add some ball bearings, and it's an all-metal frame. I also extended the width from 8" to 12"

So far, it's doing pretty well. I have a cell phone movie of it walking into a table leg and just turning around and around here:


You can see pretty bad re-cutting of chips on the blocks, and I didn't quite get all the way through the wide beams, so I consider this a prototype more than a finished product :-) Once all the files work out right and I know my tolerances (I broke more than one mill on hitting the workholding for this guy) I can re-run everything "clean" and hopefully get something that's worth powder coating.

The main weaknesses so far in this design:
- I'm using M6 bolts in 1/4" i.d. ball bearings. There's a fair bit of play there, which leads to less rigidity when walking, which leads to having to make every movement bigger than I'd expect.
- The long "toes" on the feet interfere with each other. When running a canned cycle, this is not a problem, but when switching cycles or moving to rest, it may catch and cause the servos to fight. I can probably work around this with more smarts in the control software.
- The difference in robustness between multiple 1/4" M6 bolts in the upper part, and a single M2 machine screw securing the feet into a 6mm servo horn on the bottom, is kind-of ludicrous :-) Those horn fastening screws keep un-screwing themselves -- I imagine threadlock can fix that, but the horns themselves are probably taking a lot of strain. I may need to figure out some way to use a thrust bearing or other mounting block to fix that.
- Sharp metal on wooden floors is not ideal. It's slippy, it scratches the floors, and it's noisy. I'm going to try some Sugru on the feet for now, but I fear that the foot locking will chafe on such soft material.
- The center servo horn is pushing the lower rod left/right using a piece of UHMW, screwed into the horn with a single M3 machine screw. This is not very rigid side-to-side, which is the direction that it gets the most load. Maybe using two screws and a round pin would be better/good enough. Maybe I need to get fancier.

On the upside:
+ Raspberry Pi onboard for communications. This runs Arch Linux, and drives a WiFi dongle for remote control. (I expect to also run MJPEG webcam on this later.)
+ I got a 4-port USB hub and ripped the board out of the plastic casing to make a lightweight hub to fit everything I need to drive.
+ I use a Arduino Leonardo (Atmega32u4) Nano clone as the servo controller, using custom firmware running LUFA to talk USB. This makes for nice and smooth animated PWM to control the servos. I can send it a command to "move servo channels X and Y to positions U and V by time T" and it will do it with very high precision. Rather than using timers, I turn off interrupts and count clock cycles each time I generate PWM output. For now I have 8 channels, but it could easily do 16, and probably 24 with some extra work (running out of I/O port pins at that point.)
+ I use a piece of stripboard to mount the Leonardo and the PWM headers and the power control.
+ I use an 8A 6V UBEC to go from my 1300 mAh 2S LiPo cell to the servos, and hook a Pololu 5V 1.5A step-up/down dc/dc converter to get 5V out, which I feed to the USB hub and the logic boards.
+ Finally, I have a simple UI running using FLTK, and talking UDP to the robot. I use broadcast to discover the robot, so it should work even in "unknown DHCP" situations as long as I can get on the same subnet.

It's all taped on a platform of cardboard, which clearly isn't robust enough for competition :-) I also need to create a pan/tilt from two more servos (only using 3 of 8 channels,) cut out the firing mechanism and barrel from my $20 AEG, and add a webcam to the USB bus and forward its MJPEG data over UDP.

My wife said "it would be cuter if it had longer legs instead of walking on its feet" and I must agree. But, function over form :-) From what I've seeing so far, this project has legs even if the robot doesn't.

11-18-2012, 04:55 AM
Looking good, wish I had access to a CNC.

Are there any plans to mill out a bit more on the brackets holding the two foot servos? By eyeball they're looking very large, given the differences in robustness as you've noted.

11-18-2012, 05:06 PM
wish I had access to a CNC

Yeah, that's probably one of the best benefits of a Tech Shop membership! That, and the laser cutters. But those only do plastic/MDF, not aluminum. 1/4" MDF is great for prototypes!
By comparison, I have a friend who makes high-voltage equipment and they have a 6 kW laser to cut out their enclosures :-)

Are there any plans to mill out a bit more on the brackets holding the two foot servos?

They have to be thick, because the foot servos screw into the bottom end of it, and they space the top and bottom bars out on either end to clear the servo thickness. Actually, the servo is 21mm thick, the aluminum is 19.05mm, so I make up the difference by sticking out the ball bearings a bit and adding a washer either side.
There are also some clearance issues between the holes (M4 threaded) and the ball bearing mounting holes. I could probably save millimeters here, but not centimeters.

Speaking of which: How strong is aluminum, really? I wouldn't think a millimeter or two of edge around the ball bearings would be enough, for example -- I'm keeping it at 6 millimeters, to match the 1/4" thick beams. However, perhaps that is overkill. Could I make the beams out of 1/8" thick stock, and keep a 3mm clearance/thickness rule for my holes/walls? The entire assembly isn't actually particularly heavy, but any amount of saved weight is good. Especially given the weight of the gun -- that will easily be the heaviest part of this thing.

Also, a 2S 1300 mAh battery is "just enough" to get a 10-15 minute active runtime (or about 60 minute idle) with all servos connected; I'm thinking of looking for a 3S, perhaps, which will also add weight. That remains to be seen, though.

11-18-2012, 05:31 PM
Regarding the brackets, I was thinking something more like this:


Bad sketch, but I think you get the idea. Will mean an extra operation, but nothing too complex.

As long as you're not twisting it a lot I think 1/8" aluminium with 3 mm clearances should work fairly well. I'm not sure what software you're using for your design, but Inventor has a basic stress analysis package built in.

11-18-2012, 09:23 PM
I see -- yes, I can probably save some weight that way. Also, I could cut closer to the ball bearing outlines to make a more "tailored" block.

And on a completely unrelated note: Does anyone know how to remove broken-off fragments of a bottoming tap from a blind hole without damaging the hole itself? I'm asking for a "friend" :-)

11-18-2012, 10:03 PM

I've heard of using ferric chloride to get rid of broken taps in titanium (eats at Ti much slower than steel), perhaps something similar could be done here? Unsure on specifics for aluminium though.

11-18-2012, 10:59 PM
Right now, I'm running with three screws and nothing in that fourth hole. I'll try not to re-do that mistake if I ever make "finish" parts :-)

I also added a webcam now (a Microsoft LifeCam HD.) It provides the images over the same WiFi as the remote control, and it works great!
Unfortunately I have to use tiny images (432x240) to fit each MJPEG image in a UDP datagram (< 64kB) but it still works alright. I may just add multiple-datagram support to my protocol and rely on IP fragmentation; it ought to be OK.

It's also surprisingly cool to be able to "ssh" into a command line on a robot that's walking around the kitchen on remote control and sending images back alread. Gives you that "robot overlord" feeling :-)

Next up: pan/tilt support, and a real mount for all the gear. After that, gun. In parallel, improve the gait to use a non-interference solver to move the legs at all times. After that: hope Trossen starts selling the targeting system again, and start practicing! (Actually, this is for my son. So, get him to start practicing!)

11-19-2012, 01:04 AM
I won't lie, if I had a robot that I could SSH into (alas I'm an 8bit nub), I'd run radiation transport calculations on the bot while also having it walk around.

I'll comment more about the bot when I see actual pictures ;)