Some time ago I put in orders for all the long lead time items on a second version of the moteus servo. This is primarily aimed at improving the manufacturability and reliability, along with some minor performance improvements. I’ve now got at least samples of all the long lead time parts in house!
Coming up soon I’ll post a more detailed design update on the servo.
To switch to the full rotation gear design, I needed to get all my gearbox motors, some bearings, and a lot of other bits and pieces disassembled and ready for re-use.
Taking everything apart took a surprising amount of time, nearly a full day. Each leg resulted in quite a collection of fasteners. Seeing them all in one place made me realize how complex this has become!
I’ve also got the full set of parts printed for the full rotation legs:
Now I just need to get to assembling and reworking to get them all installed!
First, after doing some analysis, it appeared that the 3mm pitch 6mm wide belt was unlikely to be able to carry the full torque from the motors. So I’ve switched to a 5mm pitch 15mm wide belt, which while still unable to carry the full torque indefinitely is only a factor of 2 or 3 off instead of a factor of 20 off. Secondly, I added a bearing opposite the upper pulley so that it is supported from both sides. The recommended belt tension for this belt works out to something like 120lb, which is a fair amount of cantilevering, even over the 16mm wide pulley. The updated CAD looks like:
And the newly added bearing can be seen in this section view:
I did a first test print of all these parts and put them together. While there were a few tweaks necessary for the second revision, it looks like this leg is probably usable.
Alert! I’m at Maker Faire Bay Area all weekend in the Mech Warfare area in Zone 2 (May 17-19, 2019 for you time travelers from the future). Drop by and say hi!
If you were left in suspense last time, yes, the robot can walk! Getting it to do so in a minimal way was relatively painless. What I found, which hadn’t happened in earlier iterations, is that many types of dynamic motions would cause the lower leg belts to jump a tooth. Needless to say, this was nearly universally fatal, as there is no direct position sensing of the lower leg. This robot is heavy enough that my simulacrum 3d-printed timing belt pulleys just don’t cut it.
Well, there wasn’t enough time to actually get better pulleys now, so I just tuned the walking to be slow and gentle enough that nothing went awry. Here’s the first bit of a 13 minute video I took of it walking around and shooting targets.
Now, that that was over with, I had a few minor things to finish up before heading out to Maker Faire. I made some covers for the motors to keep BBs out.
And I made a bracket so that I could attach the front and rear target panels to shoulder joints:
And here’s a glamour shot of the whole thing in fighting form!
Now that it was all ready, time to take it all back apart and pack it for shipping.
As mentioned last time, I needed to build a lot of gearboxes and new leg assemblies in a very short amount of time. So, I got to work.
I made a new fixture for holding stators to be extracted:
I turned down 8 more internal gears. To begin with, my mandrel had warped enough from the first gears that I had to add some heat set inserts to hold a cap to keep the gears on. Then on the last 2 gears, I got greedy, went too fast, and my lathe mandrel melted entirely.
So, I had to spend 12 hours printing another one to finish up the last two internal gears, although their roundness was debatable after their encounter with the mangled mandrel.
I also at this point machined out a bunch more rotors, but didn’t manage to capture any photos.
Now for some assembly:
At this point I was 3d printer limited, and when I got to starting assembly, I only had 7 sets printed. Thanks to some very generous help from Beat and Roxi (thank you triply in advance!) I had a second Prusa MK3 that was also working 24/7 on the problem.
Notice how now I’m up to 8!
When I went to put on the backplates, I discovered that due to tolerance stackup, some of the units were having trouble fitting. To move on quickly, I post-machined all the backplates to move the rotor bearing back a bit with a dremel, and then made a little bit of clearance for the sun gear holder screws.
And then, TADA!
Now, in parallel to all that, I also designed a new leg which would mount to the gearbox output. I wouldn’t have time to get a shoulder bracket made out of metal like I had before either, so I needed to design that for 3d printing too.
I made a few improvements this iteration. The biggest was that I added a tensioning mechanism inside the upper leg, so that tension could be increased after installing the lower leg. The old leg was nearly impossible to assemble without breaking it, and was just as difficult to disassemble. Also, I managed to have an actual order of assembly that was feasible and that an appropriate tool could fit in at all places at each stage of the process.
What I didn’t try to do was to try a more mini-Cheetah like geometry, or really optimize for mass or looks or anything. I was trying to get something which would likely work for the length of a Mech Warfare match in as few drafts as possible.
Of course, the first iteration wasn’t necessarily functional. It came off the press at something like 3am Friday morning. I spent the next 4 hours machining, debugging and squeezing until I found about a dozen problems or things that needed to be fixed. Then, straight back to the printer for a second try, and voila, two was all I needed this go around!
Here is the final part-set with all metal bits installed:
I drew and printed up the shoulder in a separate effort, but managed to capture no pictures of it whatsoever until I went to put it all together.
Now, here is a shoulder attached, with the upper leg motor and upper leg installed.
And from the other side:
And, the entire first leg:
After carefully managing my 3d printing queue 24/7 to get all the legs, shoulders, and gearboxes printed, here’s a picture of all the legs on at the same time!