There were a few minor post-modifications I had to make, which were all much faster than printing the pieces again. All the holes for M3 bolts were slightly undersized, so I drilled them out. The battery holder had a channel to let the power wires out, which inexplicably terminated before reaching the edge of the holder. I also had to install all the heat set inserts.
I did attempt something new, which was to post-process the printing by smoothing out a corner by sanding. An experiment it was. I spent about 2 hours on it, of which 45 minutes was on the coarsest paper I had, about 80 grit. I eventually gave up on that coarsest grit and started moving on, so there are still a few blemishes in the final result.
Needless to say, until I get really bored, I probably won’t spend the full day required to do the other 3 corners of the chassis using this method.
There are a few other minor changes I’ll make before installing legs, which will be the next step!
As described in my roadmap, the chassis for the quad A0 was on the verge of failing, or causing the shoulder motors themselves to fail, after only a few hours of walking around. Also, it was nigh impossible to assemble, disassemble, or change anything about it. Thus, the chassis v2!
More than one piece
The old chassis was a single monolithic print that took about 35 hours of print time. Because of its monolithic nature, there were lots of interference problems during assembly. For instance, the shoulder motors could only have 4 of the 6 possible bolts installed, and 2 more of the bolts extended beyond the chassis entirely. I decided to break it up into multiple pieces, which uses a lot more inserts and bolts, but should allow for a feasible order of assembly and manageable repair.
Now there are separate front and back plates, to which the shoulders can be attached in isolation. Then the top plate can attach to that, followed by the side plates, the battery holder, and eventually the bottom plates.
Enclosing the electronics
V1 had the primary computer sitting on top of the chassis. That was a legacy from the first Mech Warfare configuration, where the primary computer sat in the turret. I’ve decided that for Mech Warfare, I’ll just put a second independent computer in the turret, which frees the robot computer to be placed inside the chassis where it is much less likely to get mangled.
The power distribution board is now mounted to the other side opposite the computer, instead of on the now top-plate.
Power switch and strap
I’ve left room for a recessed top mounted power switch on the top plate. This should remove the need to unplug and re-plug the battery any time that power needs to be cycled. That hole is marked in red below.
Also, while I’m at it, I left holes in the top through which a carrying strap can be threaded (marked in blue above). The old chassis had some M3 inserts that I screwed eye bolts in and then threaded some cord through. That didn’t work terribly well and was unsightly.
As mentioned in the roadmap, I was going to try and replace the battery with something with a smaller form factor. I looked through a number of batteries, and got a Milwaukee M18 as the best of the options, but ultimately decided that the Ryobi style was the best compromise for now despite the wasted space. All the lower profile ones required insertion sliding in from the side, which would have required that the chassis be much longer than it was already.
Thus, I still have the 3D printed Ryobi battery holder, only now it attaches to the top plate with just some bolts instead of a complicated dovetail arrangement I had previously.
Since this is being printed in multiple pieces, I wanted a separate piece to increase the longitudinal stiffness. That is now just two plates which bolt to the front and back plate, and to the battery holder.
As you may have noticed, I’ve been 3d printing a lot!
Moving up to the gearbox motors for my quadruped has only made that problem worse, as all the parts are a bit bigger and heavier. My first Prusa MK3S has been printing almost non-stop since I got it, so I figured it was time to increase my bandwidth more permanently. Thus, a second MK3S!
This one I got from a kit so that I wouldn’t pay the 4 week lead time penalty of getting it pre-assembled. I would have certainly preferred that, but I’m not sure I’ll be available to receive a shipment in 4 weeks, and I also could use the extra print bandwidth now. Assembly was largely a breeze, although as predicted it did take a good 6 hours or so in total.
In any event, it looks like it is going strong right out of the box:
Another of the failure modes observed during the 2019 Maker Faire was in my quickly slapped together leg design. The shoulder joint was required to squeeze two motors together against a strongly tensioned belt, using nothing but a relatively thin section of printed plastic. This caused it to deform, leading to belt tooth skipping, and then eventually to fail, leading to delamination of the shoulder joint.
My plan to resolve this is to switch to a leg design where the upper and lower leg are in series rather than opposing one another. This is more like the Mini-Cheetah design from Ben Katz. This has the benefit of getting the leg out to the side, so the upper leg is free to rotate 360 degrees, only limited by cable harnessing. As seems to be my pattern, I’ll try making something out of 3d printed PETG first, optimize it some, and if I fail there, switch to metal. Here’s a render of the current CAD:
Eric from CireRobotics helpfully pointed out that I’m way over the design limit for the 6mm Gates belt I was using, so I’ll also be trying to bump up to a beefier belt in this iteration.
As seen at Mech Warfare 2019, the existing gearbox motor shroud isn’t really up to the task of supporting the weight of a 20lb robot. While I work on a more comprehensive redesign, I’ve got a short term fix in the form of another 3D print. This is just a simple reinforcing ring, printed at 3mm thick, with the layer lines oriented so that layer separation will not be the primary failure mode. It is attached to the outer housing via a thin layer of epoxy.
Due to the unconventional orientation, removing support was a pain, but doable.
After a concerted push, I managed to get Super Mega Microbot “Junior” walking, for all of 15 minutes, then packed it up and went off to compete in Maker Faire. Needless to say, with that much testing, I wasn’t expecting stellar results, and I wasn’t disappointed. However, I did learn a lot. Here’s some of the things that went wrong:
Gimbal and Turret EMI
For this new revision of SMMB, I updated the gimbal board to use RS485 and support the 5S system voltage. I tested it some, but apparently not enough. While I observed no problems during Thursday or Friday’s testing at the site, during the first Saturday match, after firing the gun a few times, the gimbal went into a fault state and stopped applying power. The control scheme for SMMB relies on the turret being operational, so this not only made it impossible to aim, but also made it nearly impossible to drive.
I did manage to connect to the turret manually after the match to diagnose the problem, and discovered that the IMU had stopped communicating over I2C. I had some half-baked logic to try and recover from that, but it was broken, and the only effective way to recover was to power cycle the whole unit.
Unfortunately, my matches on Saturday were all close together, so I didn’t have enough time to prepare a fix in between. Thus, each match I got one or two shots off, and then the machine as a whole became effectively inoperable.
Likely, something in the new board, either in the layout or the decoupling capacitors, results in worse electrical noise than the old one when the AEG is fired. This shouldn’t be too hard to resolve, either through tweaking the layout, or perhaps moving the AEG control to an entirely separate board.
Walking and Leg Robustness
When I got the gearbox system walking for the first time, I quickly noticed that one or more of the timing belts connecting the lower legs to their motor had a propensity to skip a tooth. Since there is no position sensing directly on the lower leg, when that occurs the gait logic just has the incorrect position, causing the robot to fall over pretty soon afterwards. I had never observed any tooth skipping in my previous direct drive leg, even when jumping for over an hour. The first difference I thought which might be causing the problem was the lower pulley print, which I had initially done at 0.15mm but in the gearbox revision it was at 0.2mm. So I printed a full set at 0.15mm, and swapped them in. However, that didn’t fix it and I didn’t have any more time for mechanical solutions, so I tried to work around it by tuning the gait to be as gentle as possible.
Unfortunately, I wasn’t really able to come up with a gait that both could effectively move on the foam mat in the arena, and not occasionally result in belt skips. Also, as I went along, the skips got worse and worse. I tried upping the tension on the belt, lowering the tension on the belt, walking with a straighter leg and more bent leg, nothing much made a difference.
Finally, before my third match, I did more examining and realized that the shoulder joint was deforming significantly under the tension of the belt, resulting in the timing belt only contacting maybe half the pulley or less, and the rest dangling off. Also, the pulley was out of alignment, so the belt was probably only effectively making contact in an even smaller patch. Unfortunately, there was very little I could do about that aside from hope for the best. As it turns out, that problem, while limiting the gaits I could use significantly, didn’t result in ending my run.
Gearbox Outer Housing Strength
The entire gearbox effort was undertaken somewhat at the last minute, and with little thought to analysis or design for structural integrity. At best, I made a gut check of “that’ll probably work”, and at worst, I gave it no thought at all.
It was an instance of the latter that caused the final and fatal failure in SMMBJ at Maker Faire. In the gearbox chassis design, the lateral servos themselves support the entire weight of the robot. Those gearbox servos transmit the entire load from the front plate of the servo, through the outer housing, then to the back plate, and finally to the chassis itself. The problem in this case is that the outer housing is a 1.5mm thick (or rather thin) PETG shroud printed with layer lines perpendicular to the primary load.
On reflection then it was not too surprising that a 20lb robot walking around was enough to cause a motor’s shroud to separate at the layer lines, which is what ended SMMBJs run. I had a spare motor and could have replaced it, however, it would likely have failed shortly afterwards too, and the shoulder was about to rip itself apart due to the leg tension problems mentioned above. Thus I turned it into a “static display” and switched to a “show and tell” mode for the rest of the event.
Despite those problems, the kind organizers at RTeam awarded me the “Most Innovative” award for trying to push the limits!
Fixing the problems
Clearly, all of these issues can be fixed in a variety of ways, both easy and hard. Keep coming to see my attempts!
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!
I’ve since decided that it would make more sense to print this in pieces that are bolted together. Actually installing all the hardware was tricky down in the depths, but it does seem to be functional.
All my testing to date on the improved actuators for SMMB have used 3d printed parts from Shapeways. Both to have a faster iteration time, and to reduce costs, I’ve optimized all the parts to be printed on my Prusa MK3s.