Back in 2008, I wrote some software for fun to generate various optimized walking mechanisms. And when I also picked up some electronics and wood working skills in more recent years, I was able to turn one of these mechanisms into an actual wireless walking wooden coffee table: the Carpentopod. This post briefly covers this project from start to end.
Designing a new linkage
The Carpentopod leg linkage itself was generated by some software I wrote that evolved thousands of virtual generations of leg variations by having them compete against each other. To select which ones were best, each variation got assigned a ‘fitness’ score based on its walking speed, clearance and material use. I also rewarded extra points to variants that had leg tips which moved more horizontally and more smoothly during the lowest third of their cycle to make it favor solutions in which a group of three legs would work together to minimize bobbing and foot slip.
Each leg variation’s fitness score was then compared, and only the best ones got a chance to mix their genes (i.e. leg parameters) to create the next generation of thousands of variants over and over again, leading to better and better solutions over time. Additionally, next to genes just mixing through ‘natural’ selection, genetic mutations were regularly introduced to help discover new solutions and keep variation going until it was time to converge. Having written everything including the kinematics solver in C++, this simulation was able to evolve dozens of generations per second, making it easy to see how bad initial designs turned into highly optimized ones.
The video above shows this process for 20 seconds of evolution. Each frame shows a different individual out of 5000 ‘alive’ variations. It also superimposes the trajectory of the leg tip of all 5000 individuals at the same time, creating this red and green ‘blob’ that converges to a single solution over time. The leg linkage that I eventually selected for the Carpentopod itself was simply picked by running a larger and longer version of this simulation. And, like picking an official animal name, I choose its name by combining old Latin and Greek words: carpentum (being a carriage), and pod (for feet or legged).
Anyone who’s ever seen one of Theo Jansen’s inspiring Strandbeest sculptures will probably see the similarity between his leg linkage and the Carpentopod linkage. The Carpentopod linkage, however, has a very different set of component ratios, as well as an extra joint point and an evolved rounded toe diameter. These extra parameters allowed the evolution process to find a solution that is more compact and causes less foot slide.
Foot slide is caused by having different toes on the ground that don’t perfectly match in speed, which will therefore cause the legs to try to slow each other down in practice. (Still, Strandbeest legs often seem to be built with some sort of flexible/rolling toe instead of a rigid one to probably help compensate for this effect somewhat). See the video below to compare the two different designs, including their effect on size, center of gravity, and foot sliding/skating.
Designing a walking table
For many years, the above was simply the interesting end result of a hobby project. But as I also picked up an interest in making physical things in more recent years, this allowed me to actually use this linkage for something more tangible. The first thing I tried making was a tiny model of an earlier version of the evolved linkage (being less optimized for compactness and therefore less suitable for what ended up being the Carpentopod table). Just to test my newly developed skills and try out my new CNC before attempting something bigger…
Next, I decided to make a walking wooden coffee table. Mostly because I thought that could be something both (relatively) practical and esthetically pleasing to have. As each individual leg in the Carpentopod linkage is only a third of the walk cycle on the ground, the table itself therefore would require twelve legs to be stable at all times. To walk smoothly, the leg components also needed to be made with sub-millimeter precision and stay that way. This is why I designed them to be CNC-ed out of sheets of laminated bamboo, which is a particularly strong, natural, durable and stable material, and would nicely fit the style of mixing the robotic with the organic.
I designed all of the table’s components using Autodesk Fusion 360, which allowed me to model, test, render and do all CNC preparations in one package. And being able to actually see it fully assembled in software from any perspective at any phase in its walk cycle made it much easier to tweak the esthetics and make sure all the clearances were just right.
Between the six legs on one end and the six on the other, I also left room for a hollow central ‘belly’ to contain the electronics, motors and battery. To make this not look all angular, I designed the frame and belly to be curved, like an upside down treasure chest. This probably contributed to some people commenting that it looks likes The Luggage from Terry Pratchett’s Discworld novels. (But I promise this similarity is purely coincidental and that a Carpentopod table is far less dangerous.)
The central belly also causes all legs to have at least some distance from the center, which allows them to all participate more effectively in doing turns. Each group of six legs is designed to be connected to its own crank shaft, driven by a single motor. That way, I only needed two separately controlled motors to ‘drive’ and turn the table like a tank.
The build
To turn the 3D design into an physical table, I preferred to CNC as much as possible. For precision reasons, but also because it makes it a lot easier to churn out twelve identical wooden parts, for example. And this being just a hobby for fun and not a production line, I decided to make everything myself using my cheap 3-axis CNC router.
A 3-axis CNC can only remove material from the top. But as many parts would also need material to be removed from the bottom and/or only the sides to make more intricate shapes and concavities, I designed most leg parts to be made out of three sheets of laminated bamboo that I could CNC separately, and then glue together.
And of course, even a single part can require many passes with differently sized and shaped cutting tools, and/or may have to be precisely remounted upside down to do both sides. But that’s just the reality of CNC-ing if you don’t want to pay for a much more expensive 5-axis CNC with automated tool changer, and you don’t want to make 3D prints from plastic either…
Besides the 100+ bamboo parts I CNC-ed, sanded, lacquered and assembled using even more ball bearings and steel shafts, the design also required two crankshafts. I ended up making these by effectively hammering together D-shaped shafts and rotated offsets with D-shaped holes, which I very carefully CNC-ed out of plain aluminum rods and sheets, respectively.
The table’s curved belly ‘doors’ were made by finely ‘kerfing’ the same laminated bamboo, steaming it to make it even more pliable and then letting it dry in a curved jig to give it its new shape. This was then glued on top of two invisible hinged ribs with embedded magnets, making the doors easy to open and close. Lastly, I welded together a piece of TV furniture of the same height, and turned a single piece of mango timber into tops for both pieces of furniture, effectively turning them into a set.
Making it move
Both six-legged sections should be driven by their own motor. But it’s each section’s single crankshaft that coordinates the relative leg movement. This can be seen in the next video in which I simply push a motor-less section forward, making the section effectively behave like a wheel.
It also contains (upside down) footage showing how the toes would gently touch the ground (that is represented by the black line), but don’t try to push through it. This means that the table won’t ‘bob’ much when walking around. Of course, minimizing bobbing was one of the original evolutionary fitness requirements when the linkage was being evolved in the computer, but it’s always good to test things in reality as well…
To actually make it move by itself, I ordered two cheap geared 24V brushless motors that are normally meant for automated curtain products, outputting max 1.5 Nm @ 130 RPM. Their built-in electronics also allowed direct speed control using an extra PWM signal wire. Sadly, signaling them to go at low speed almost instantly got them into some automatic multi-second (thermal) shutdown mode even under just a fraction of its maximum load. Luckily, leaving the PWM signals at 100% and directly changing the voltage worked a lot better as can be seen in the following experiment, where I directly connected a tweakable lab power supply to the motor on one of the two 6-legged sections.
To be able to control the motor voltages automatically, though, I bought two cheap Step Up/Down Converter modules to convert basically any battery’s voltage to anywhere between 0 and 24V. Then I hacked them so that their output voltage could directly be set using a fast PWM signal from a repurposed Arduino Nano micro-processer board. The voltage converter modules also offered a tweakable max current setting, which gave me per-motor control over the max stall torque (and therefore the safety of my fingers).
Next, I fed the exposed Hall-effect motor sensor signals into the Arduino board, and wrote some software in C to create my own closed-loop motor controls. This meant that the motors could now independently and accurately target any achievable speed and position, independent of load.
As a last step, I connected a Bluetooth module to the Arduino and wrote some C code that allows it to connect and understand joystick data coming from the wireless repurposed Nunchuck that I also made. And after also installing a 14.8V LiPo battery into its belly, I now had a wireless table that could walk anywhere in my living room using a tiny remote. Is it honestly very useful? Maybe not. But is it fun to make it bring me a drink? Very much so.
Making the linkage public
UPDATE: Since this post has gone public, many people have asked me if they could get one as well. I’m currently not making these on demand. However, I’ve decided to release the Carpentopod linkage itself as public domain. So if you have the skills, feel free to use the details below to build your own set of legs! (Tips: If done correctly, the crank should end up at about ‘1000.0’ above the ground at this drawing’s scale. Also, don’t expect the legs to work well by themselves or in pairs. Three is the magic number, here!)
Comments (74)
Very nice finish on the legs.
September 9, 2024
I love every single bit about that. The amount of work with regard to the (lack of) usefullness makes it even more fantastic in my views. Thanks for sharing.
September 9, 2024
Thanks!
September 9, 2024
This video wants me to take up carpentry. Inspiring.
September 9, 2024
Oh please, can I buy one? Amazing
September 9, 2024
Any chance of getting the design and code? Would love to make a walking table…chair…bed….
September 9, 2024
Any chance of a tutorial? It would be 😍
September 10, 2024
This is cool shit right here
September 10, 2024
That’s awesome! Could you open-source the files and make a tutorial? :D
September 10, 2024
Fantastical !
September 10, 2024
This is incredible.
September 10, 2024
price?
September 10, 2024
I just put together a motorized simulation of a pair of these feet in Tinkercad. Very cool work you’ve done here!
If you don’t mind, I may finish this out to build out a fully walking table model.
September 10, 2024
Sorry. I remade the video at a higher resolution, and deleted the old one: https://youtu.be/WJ5XZkNJtac
September 10, 2024
How much weight can it bear with those mechanisms? (Thinking of gentle mechanisms like this to help mobility impaired)
September 10, 2024
Hi Joshua! Wow, that was quick! Glad you liked it! I guess you took some measurements directly from your screen? :) For you and others, I’ve just added the leg plan details themselves, so feel free to use them to make yours exact.
September 10, 2024
I don’t normally leave comments on anything but in this case I must. Wow. Just wow. Incredible work.
September 10, 2024
Brilliant, absolutely brilliant. But far too clever for me I’m afraid. But I would love to make one. Me being a (retired) programmer an’ all, even your code sounds beyond my skills!
If you ever produce a detailed set of step-by-set instructions, I might be first in the queue to buy them!
September 10, 2024
This is so awesome! Thanks for sharing!
September 10, 2024
This is certainly the best thing I’ve ever seen. The tabletop alone looks really smart. The clackety clack of its little legs… sublime. For some reason this reminds me of the Luggage from Discworld.
September 10, 2024
Cute, but noisy
September 10, 2024
I was looking for a wooden table on marketplace. And you ruined it.
September 10, 2024
This is art and genious, thank you so much for sharing your work and all the details about it!! I also love the sound its legs is making on the floor, you create a beautiful and gorgeous creature table here!
September 10, 2024
Thanks for the kind comments!
September 10, 2024
really good sound :>
September 10, 2024
This is outstanding!
If you ever decide to sell the kit (maybe just the electronics/motors + 3d model of the actual table legs which people can CNC or order on their own), I am sure that would be a hit.
Or if you release the detailed design under an open source license, even better.
September 10, 2024
That’s absolutely beautiful; I love the effect of seeing all the legs working together, like some giant scuttling insect. I’d love a table like that even without the motors; from the look of it you can just push it as if it were on wheels. Thank you so much for sharing it with us.
September 10, 2024
Fabulous work!
September 10, 2024
Well, there is a direct comparison vs the Strandbeest linkage:
https://www.youtube.com/watch?v=k4qrjD_HK4E
September 10, 2024
This is *awesome*! Great job.
September 10, 2024
This is just mind blowing, Sir Giliam. Bow bow bow and congratulations! I wish you’d teach kids how to create such wonders. Kind regards from sLOVEnia, :) Teja
September 11, 2024
LEGEN….waitforit…DARY !!!
September 11, 2024
Impressive!!
September 11, 2024
Good day. I’m sharing an idea: you can make him a charging base from a robot vacuum cleaner, so that he has his own permanent power source)
September 11, 2024
incredible your wood working, electronic and programming skills are fantastic!
September 12, 2024
I hate Spiders but love this Table!
#Respect
September 12, 2024
Gorgeous. Thank you for making your linkage public. 👍👍👍
September 12, 2024
Thank you for taking the time to write this up and share with the world!!! I will hardly forget this – one of my life goals is for my house to look like a wizard’s house, and building one of these has just become imperative.
September 12, 2024
Much appreciated, all!
And Pancho, I hope you achieve your plans!
September 12, 2024
You’ve made my day; thanks for sharing this!
September 13, 2024
I love it, thank you so much for sharing the dimensions!!!
September 13, 2024
It would be cool to make a gate with the carpentopod walking tech. It could be called a walking gait…
September 13, 2024
Reminds me of The Luggage crossed with Harry Potter… awesome work!
September 14, 2024
Great invention! I would love to make one for an elderly person with limited mobility. Could you please give me a detailed production method?
September 14, 2024
OMG…!
yo! Netflix!
mini series… Earth invaded by knee high remotely controlled mining robots… whose central control unit is oblivious to humans… just utterly outside its codebase’s rules… just starts tearing apart cars for metal… more robots get built from scraps… an ever expanding swarm of robots…
they have these horrid, creepy legs… and also similar appendages to tear apart cars
Amish horse drawn wagons, however, ignored being 98% non-metal
soldiers armed with wooden spears and leather sandals and cotton loincloths — nails in boots, zippers in pants, bullets are metal — deployed to stab each of the mining robots until it stops moving
September 15, 2024
@Howard NYC: I would watch it! :)
September 14, 2024
it’s three have another model
September 14, 2024
Brilliant!
September 15, 2024
Hey there,
This is really cool.
I’ve modeled it up pretty your dims in SolidWorks and everything works just fine.
I blindly applied a 50% scale to all the parts and the hair was severely affected.
Is like to print this off on my 3D printer and the bed is limited.
Any thoughts to scaling the entire mechanism?
Thanks
September 15, 2024
@doobs Not sure I understand about the hair part? ;) The mechanism in the linkage drawing is scaled to make the height of the crankshaft 1000, so you can scale everything down based on your preferred height of the crankshaft and work from there.
September 15, 2024
Sorry,
Let’s try this again without the “autocorrect” part….
I meant gait, not “hair”…. LOL
What I figured out after I posted the message above is that one of the links was not connected after I did the scaling. Stupid engineer tricks….
I’ll play with this some more today and report in.
Unfortunately these efforts are a bit hampered by the fact that SolidWorks doesn’t provide the ability to control a scale feature via an equation.
So manually changing scales on the 8 unique parts is a bit tedious. If push come to shove, I’ll write a macro.
Again, very cool work. I’ve not gotten this enthused about something in a while.
I’m a retired electro-mechanical engineer. Most of my professional career was spent designing, building and operating Remotely Operated Vehicles (ROV’s).
Now that I’ve got more time on my hands, I am diving into cool projects like this one.
cheers
chris
September 15, 2024
So scaling all 8 unique pieces about the origin the same amount works just fine.
Appreciate the work you have done!
chris
September 16, 2024
This is my second message to you. I am not a stalker, though.
Using your linkage diagram (thank you for that), I am trying to draw up plans in Onshape to build a competition robot for the FIRST Tech Challenge. I mentor two teams and have done so for almost a decade. I never went with a legged robot because robots in our competitions have a max of eight motors. That would include arms, claws, levers, etc., and would have been too cumbersome for an 18″ cubed robot. Your very elegant design may actually allow us to have a legged robot on the field this year! My students will be quite excited about this possibility. If we make progress, I will share it with you.
September 16, 2024
I am attempting to figure out how the front and back legs operate off of the same (cam?) segment. Could you show a sketch of that relationship? I am not an engineer, and I am sure I’m using the wrong terms. Essentially, I need help understanding how all six legs, per side, are driven by a single motor. I expect that the cam is divided into 120-degree segments, but cannot figure out how that works, mechanically.
September 16, 2024
Absolutely fantastic. My 9yo and I are floored. Thanks for sharing and congrats for making one of the most ingenious built I’ve seen.
September 16, 2024
@Jim O’Hern. Hi Jim! Firstly, good luck with the project! And secondly, have you seen the extra video I linked to in my reply to your question on YouTube (the Passive Walking one)? That’s a whole 6 legged section, driven by one motor. So you need two of those. Also, have you looked at the two rods that end up being half as thick on one side than the other, in bottom-left image in the ‘Designing a walking table’ section?
But in short, opposing legs (built from exactly the same components) are connected to the same crankshaft pin, while neighboring legs are offset by 120 degrees because they’re on different crankshaft pins. Hope this helps!
September 16, 2024
This is how The Luggage should look like (all the best to all Pratchett’s fans)
September 16, 2024
Such a masterpiece! Thanks for your work and for making it public!
September 17, 2024
This is amazing! I just joined a makerspace a few months ago just so I could learn to make neat projects like this. I recently learned how to use our CNC machine, and I think this would be a fascinating project. I would certainly decorate the final product to look like the luggage from Pratchett books, it’s too cool not to! Please let me know if you have any design or print files that you care to share! I don’t know a ton about electronics yet either, but I think this would be a great project to learn with. ^_^. Very nice, and thanks for sparking my interest to learn more about how to do these projects!
September 18, 2024
I will pile on. I too immediately thought of the Luggage from Sir Terry Pratchett. Thank you for sharing all the details. Amazing engineering.
September 18, 2024
This is an incredible mixture of evolutionary biology, carpentry, cnc machining, and coding. You created a museum piece by applying amazing sophistication in the pursuit of whimsy. Just great!
September 18, 2024
朋友你好,很喜欢你的作品。我想制作这个行走桌子机器人,能共享一下图纸?我也愿意购买你的图纸,欢迎合作
September 18, 2024
Hello friend, I really like your work. I want to make this walking table robot. Can you share the drawings? I am also willing to purchase your drawings. Welcome to cooperate. Do you use WeChat as a social media app? Can you leave your WeChat number? I want to add you
September 18, 2024
If you release the fusion360 files you would make a lot of people’s day
September 20, 2024
Gilliam,
I am on my 8th iteration of the project and have used a half-spool of PLA, but I am very happy with how things are going so far. I have scaled your dimensions down to 1/10th and am now adding bearings. I know I will have MANY more changes to make, but I will say your project has truly inspired me and I appreciate it. I will add an autonomous operation when I am done, based on April Tag detection, IMU readings, and other sensor results. I am hopeful that I will eventually have something to show you that will make you know your posting has been appreciated. I wish I could post pictures of what I’ve done.
Updates to follow…
September 20, 2024
Thanks for all the comments!
@doobs/Chris: Good to hear you got it to work! And enjoy that extra free time you now have!
@Jim O’Hern: Oh, making good progress! And those are quite the plans! I’d love to see it. If you want, feel free to send a link (maybe to a shared Google Drive folder, for example) to website@decarpentier.nl.
@Adam B: I wasn’t planning on sharing the actual 3D files atm. Not a big fan on plastics, but if this project somehow earns me back enough money to buy a mid-range 3D printer, I might look into it. But the CNC files are not something I’d want to share in this form :). And for the electronics, there’s probably already a whole bunch of pre-made RC stuff out there. Just don’t try to connect it to something that outputs more than a few RPM ;). Also, when you’re able to share something, feel free to post a link here or to my email.
@ou and @jv: Sorry, no ready-to-go files to share at the moment. Also, see my response above.
September 21, 2024
Hi im a carpenter from germany. what an awesome table. chapeau
September 22, 2024
You gave rebirth to the soul of DaVinci my friend. What a masterpiece.
September 24, 2024
Hello Giliam,
I think I got the linkage quite correct from your drawing with Solvespace. However, it seems that the size you made your Carpentopod is about 1/4th of the numbers in the drawing, if I say the unit is mm.
Maybe you want to keep it as a secret or can we get the actual scale?
Greetings
Das Igelchen
September 24, 2024
You’ve created something truly remarkable with the Carpentopod! The blend of craftsmanship and engineering is impressive, turning a coffee table into a walking work of art. Your attention to detail and creativity shine through in every aspect of the design. Amazing work!
September 26, 2024
Love this project 🔝
October 4, 2024
great project! I love it!
October 5, 2024
Is there one for sale ?
October 11, 2024
Hi,
I saw the Carpentopod at the MakerDays.
It looks awesome.
🤖Greetz, Peter
September 9, 2024