Hackaday Prize Entry: Two Leg Robot

If you’re working on your own bipedal robot, you don’t have to start from the ground up anymore. [Ted Huntington]’s Two Leg Robot project aims to be an Open Source platform that’ll give any future humanoid-robot builders a leg up.

While we’ve seen quite a few small two-legged walkers, making a pair of legs for something human-sized is a totally different endeavor. [Ted]’s legs are chock-full of sensors, and there’s a lot of software that processes all of the data. That’s full kinematics and sensor info going back and forth from 3D model to hardware. Very cool. And to top it all off, “Two Leg” uses affordable motors and gearing. This is a full-sized bipedal robot platform that you might someday be to afford!

Will walking robots really change the world? Maybe. Will easily available designs for an affordable bipedal platform give hackers of the future a good base to stand on? We hope so! And that’s why this is a great entry for the Hackaday Prize.

ZZ Top! That song totally rocks! Many times when I hear that tune, I definitely think of this growing development of low-cost open-source 3D printed robots. It is really starting to take off now. For example, I am amazed with the work of James Bruton. Really a great honor to have my Hackaday Prize entry featured here. I am so glad I found Hackaday, there is so much good stuff going on here.

I have spent about the last 4 years working on this two-leg robot project. First I thought about the nervous system of the robot. Working with various serial communications and accelerometers, I found a lot of errors happening, and came to the conclusion that ethernet seemed like the best communication method to use (USB costs money for a vendor ID but not ethernet :!, other communications methods do not have differential lines or are too specialized and expensive- like LVDS). Ethernet has pretty low cost MCUs, connectors, cables, and differential signal integrity too. I found that sending thousands of accelerometer (and then later gyroscope) samples every second over longer distances, really requires something more dependable than I2C or USART. Microchip has some low cost 32-bit PIC32MX (and now PIC32MZ) MCUs that have 100MBit ethernet capability and provide a free TCP/IP stack (I use UDP). So that is the route I went in. Years ago, finding an H-bridge on an IC was somewhat costly and rare, but prices have come down. These motors do not use a lot of current (<1a), and I prefer using a higher voltage of 36v, In my search for motor controllers, I found that Texas Instruments makes a lot of very small and low cost, dependable Motor ICs, so the DRV8800 seemed like a good IC to try. So I made an "EthMotors" PCB and found, to my surprise, that I was easily able to fit 12 motor ICs onto a single 10cm x 7cm PCB. I used KiCAD for everything. I then made an "EthAccel" for the accelerometers. The PIC32 ICs like other similar 32-bit MCUs also have Analog to Digital (ADC) capability, so I added 16 touch sensor ports which made the PCB an "EthAccelTouch" PCB capable of sampling 16 touch sensors. So it is amazing in my eyes that ethernet easily and simply connects all these different PCBs together. Because everything connects with ethernet, an Ethernet switch needs to be on the robot. Currently, those are usually quite large and bulky, so I made an "EthSwitch" PCB which is just a bare bones 16-port 100MBit switch and that works very well to connect all the other various PCBs together. The beauty of the ethernet design, is that the only connection from the Robot switch to the "brain" is an ethernet cable. You can easily take off one head and plop on another. I currently use an Intel NUC to run the Robot app, which I developed on Linux, but does run in Windows and MacOS (although for real-time only Linux RT_PREEMPT). But I use a Banana Pro too (and a Rasp Pi could easily be used) with Lubuntu which works in real-time out of the box because it has RT_PREEMPT configured. I'm easily able to get both accelerometer and gyroscope samples from 9 IMUs every 10ms (100/second) on the dot, even on that $50 Banana Pro.

In terms of the actual mechanical design I use Blender to design all the 3D printed parts. I initially started with putting the motors at the joints (like Honda's Asimo design of which I'm a huge fan), but balancing was very difficult. I thought, how does the Boston Dynamics robot Atlas make balancing look so easy? I did a little searching and found that Boston Dynamics is using hydraulic linear actuators and thought- why not give that a try? I guess I had always ignored the word "actuator" as seeming abstract, complex, and difficult- but it turns out that they are extremely simple- basically like a metal muscle. But hydraulic actuators are expensive, so I looked at mechanical linear actuators- those are cheaper and abundant on aliexpress and ebay. While I was searching around for linear actuators, I found a few people who were using 3D printed rack and pinion linear actuators and thought that might be the cheapest and fastest path. So I started developing linear actuators (both worm gear, and rack and pinion designs)- not knowing if this would pan out at all or just be a total waste of time. So it took a few weeks. I found that linear screw actuators are just way too slow for a useful two-leg walking robot, but of course extremely powerful. But the rack and pinion linear actuator was starting to look good. I decided to test the rack and pinion design as a two-part one-hinge arm to lift weight to test how strong it is. Initially I was disappointed as it could only lift a few pounds- but I quickly realized the basics of the lever principal and found that connecting the actuator end closer to the load produced pretty amazing results- all of the sudden I could lift and hold over 15 pounds of books with a tiny aliexpress $8 motor. So I realized that linear actuators- although they look ugly, are totally the way to go, then all of the sudden all the construction equipment around me started to make much more sense – cranes, tractors- they all use (hydraulic) linear actuators- it just has a tremendous strength, and the lever principal does the rest- Archimedes was so correct on that point- I should have listened! So to make a long story short- I am still struggling with trying to get the legs to walk, but take a look at my project log if interested and you can see that I am slowly making a little progress. I definitely plan to keep updating it with any new developments.

I wondet how well this could be combined with the InMoov project. Havent followed up on it in a while, but it might just solve the Problem of those darn legs. Now all we need is a powerful AI and a stable 4g (or 5g) network and skynet can finally become reality