Yorick: the story continues

The big robot has more stuff going on

Adam Purdie
7 min readMay 2, 2019

As I mentioned here in 2016, I’m building a large spider robot called Yorick. At the time of writing I was up to version 4. He’s had a bunch of iterations since then, I’ve been slack/busy and neglected writing a blog about it. But here’s the catch-up.

Yorick is now (as of writing this) at Version 8. I thought I’d get the story up to date, cause I’ve got some more updates to come soon.

Why so many iterations?

Because I am making this up as I go along and I’m using major mistakes as my course of learning. I tend to call a bunch of work a version when I replace more than half of the hardware or when there’s a significant milestone.

Let’s get caught up.

Version 4

Version 4 didn’t work because the motors could not generate enough power to lift, I was using Turnigy TGY-S901D servos that look like this:

These servos are great but they simply couldn’t lift the heavy bulk of the big spider.

Version 5

With version 5 I used the RoboStar SBRS-5314HTG servos that were very powerful:

These servos were very nice but had no position feedback and because of the high drain they ended up setting fire to the power regulation framework I was so proud of. :sadface:

Version 6

For version 6, I pulled apart the servos and tapped into their own potentiometer and made my own position feedback following the method I found in Instructables.

This very much voided the warranty on all 24 servos but it did work.. mostly.. Unfortunately the fast starting and stopping of 24 servos moving at the same time ultimately made the readings far too volatile, they would jump around on change of speed and surge wildly on change of direction. In general they weren’t accurate enough for me to be happy with them — I set a requirement of 1 degree of error but couldn’t achieve it.

This version had a completely re-built power system (still using regulators) and an extra row of 18650’s in a 3s x 4 layout capable of delivering ~12v at about 30 amps. The power system worked quite well and the robot could stand. It did look very nice once assembled too!

The biggest failing of version 6 was… everything…

The regulators couldn’t handle the current of all the servos — which turned out to be about 50 amps to lift the heavy weight.The batteries were way too heavy and so was all the 3d printed plastic frame. The frame flexed everywhere that was thin and was too heavy everywhere else. Limited by the size of my printer, most of the parts were too small and required extra bits (weight!!) to join them.

Lastly, with all the servos (24) I needed 24 analogue measurements. The analogue measurements needed to be very fast and the only way I could do this was to use 3 teensy 3.2 boards (my favourite Arduino btw) and use high-speed serial between them — this lead to more latency than I could bare.

All this work, all this fail, it was time to make much more radical changes.

Version 7

In version 7 I kept the 18650 batteries and threw everything else out.

Yorick got a face to fit his name and I even modified the uncanny eyes code from Adafruit to handle 4 screens so Yorick would have a creepy face that looked around a bit.

I used a single teensy 3.2 for logic and ran the power system at the native voltage of the new Dynamixel servos, this meant that the power system only needed to regulate the logic circuits which were a much lower current at about 3A.

The Dynamixel MX64r servos were used for the main lifter joint and the extension joint, for the rotation from the base I used MX28r servos. These servos are amazingly powerful, the use a 3mbit data bus and can be daisy-chained together for logic and power (within reason). The servos run an avr inside them on an RS485 bus that can be interrogated to get servo feedback and they also thermal overload and shut down instead of catch fire. These are the most advanced servos you can buy and they power some of the most advanced robots in the world.

Even with a great deal from the awesome people at tribotix these servos cost a lot more than the hobby motors did.

Yorick’s geometry changed a lot too, his humerus section got shorter and his chassis got wider — mostly to hold in all the wiring, power system, batteries and logic boards.

I introduced suspension to his feet, the goal being to take the impact of walking.

I built a prototype spring suppression system that was designed to take a great deal of weight off the legs. If this structure has a proper engineering name — please let me know, I’ve been calling it a cantilevered spring thingy but I don't think it’s really cantilevered and thingy isn’t a word.

The mammoth task of re-designing everything from the ground up and the achievement of getting it all together in time to demonstrate was matched only by the overwhelming (yet again) failure….

Even though I had taken all the plastic I could out of his build, Yorick was still way too heavy for his geometry, the spring weight suppression set up I built wasn’t enough and the power system was inadequate, about 400 hours work and he took 4 steps and then thermally overloaded.

Version 8

Version 8 was very closely based on version 7, but was a complete rebuild from the ground up.

Power

The power system got a little bit heavier, with the re-factor it could handle up to 160amps constantly and even more at impulse/surge current — which motors tend to do when you spontaneously give them a 13kg spider to drive.

All the solder

The whole logic board layout in v7.0 was a collection of disparate boards glued together with hope and lead — all of the logic boards were rebuilt for v8.0.

Suspension

The length of travel for v7.0 was about 40mm which not only made Yorick dance around when he did take his 4 steps but it made the load on the servos greater as they were having to overcome the friction of the ground to move.

The suspension was reduced with lateral extra play so the foot could wiggle a bit.

Weight

Yorick v7.0 was 14kg, I needed to dramatically reduce the weight, from everything…

For the frame I completely replaced the 3d printed parts in strength areas with laser-cut aluminium. After a bit of research I realised that aluminium by volume is 6 times the strength for twice the weight than standard PLA plastic. 3D printing also introduces very weak lamination compared to injection molded PLA. With conservative estimates, I can use at least third of the volume in aluminium…

The batteries (twelve 18650 cells) were replaced with 3 LiPo batteries, this dropped the weight even further.

Yorick is now about 9.6kg.

Yay! he’s amazing! but now I’m scared!

At some point when v7 overloaded those motors, motors that cost me pounds of flesh and months of work to buy I got worried that I’d destroy them and have nothing to show for it…

For this reason I held off putting them through the process of walking prematurely and contemplated a lot.

Like for 8 months without doing any work on him.

Yorick v8.0 will never walk

I realised amidst a few months of staring longingly at this marvellous pile of creativity and expensive hardware that I was past the point of using the basic macro walking algorithms I had built for Steve, the first spider.

With a robot of this size, I can’t just put it’s legs to a pre-determined angle and hope it works for a flat surface, the weight and torque calculations mean that if I was just a couple of degrees off, the weight distribution would be badly stacked and there would be damage and no way to know what was wrong.Before this one walks, it will need to dynamically sense and adjust to the load on each leg and the angle of the chassis and it will need to do this 100s of times a second. The walking process also needs to take into account the angle of the robot chassis with respect to the gravity and the ground.

There’s a major problem with this plan, I don’t know how to write this kind of software… yet…

The plan moving forward

The next checkpoint for Yorick’s build will have:

  • Spring suppression for the weight on the motors
  • Foot touch-sensors
  • An IMU/Accelerometer
  • A completely re-written code base that can adapt to accommodate for the load on the motors

--

--

Adam Purdie
Adam Purdie

Written by Adam Purdie

I just love to make stuff and share a good story about it — so here are some of my personal stories.

No responses yet