Tag Archives: 3dprint

quad A0 chassis v2 – final assembly

In the last post in this series, I conducted a fit test on the new chassis.  After my ignominious belly-flop, I now had a more urgent need to complete the switch.

busted_robot.jpg
A busted robot
dsc_1652
An even bigger close-up

The chassis cracked in the corner, completely separating.  Doing anything more with this chassis was likely to result in many more things breaking very quickly.

Build process

So, here are the photos as I put everything together.

dsc_1649
Raspberry pi attached
wiring_extracted.jpg
All the wiring extracted
dsc_1659
Half the legs off the old chassis
dsc_1661
Legs re-attached to new chassis!
dsc_1682
Battery stud and wiring re-installed
power_board_installed.jpg
The power board installed
dsc_1691
Bottom plates installed
dsc_1693
Upright with untidy wires
dsc_1698
All set for testing!

Next up is continuing to try and get pronking working!

 

quad A0 chassis v2 – construction

After CADing up the second revision of the chassis, I set to work with the 3d printer and printed up all the pieces.

dsc_1575

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.

dsc_1596
Mostly assembled
dsc_1594
All put together, with a snazzy new sticker

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.

dsc_1597
Smoothed out corner

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!

quad A0 chassis v2 – design

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!

chassis_v2_2019-oct-09_01-54-51pm-000_customizedview10225780210

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.

chassis_v2_rpi_mount

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.

chassis_v2_switch_strap_mount

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.

Battery

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.

dsc_1571

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.

chassis_v2_battery_holder

Stiffeners

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.

chassis_v2_stiffener

Next steps

Next up is printing and assembling this chassis!

New machine day: A second MK3S

As you may have noticed, I’ve been 3d printing a lot!

A stack of empty filament rolls
A stack of empty filament rolls
dsc_0215
2 kilometers of filament!

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!

dsc_0204

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:

 

 

Full rotation leg design

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:

full_rotation_leg

 

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.

 

Working around motor shroud failures

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.

dsc_0108
The two halves of the reinforcing ring

Due to the unconventional orientation, removing support was a pain, but doable.

dsc_0109
A reinforced motor

Results from Maker Faire 2019

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.

shoulder_failure.jpg
Shoulder failure

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.

dsc_0071
Crippled SMMBJ

Award

Despite those problems, the kind organizers at RTeam awarded me the “Most Innovative” award for trying to push the limits!

dsc_0104

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!

The gearbox sprint

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.

Machining operations

I made a new fixture for holding stators to be extracted:

dsc_2364
Stock in the vise
dsc_2366
Countersinks milled
dsc_2369
Stator mounted and fractionally machined

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.

dsc_2379
This won’t hold a gear very well 😦

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.

Gearbox assembly

Now for some assembly:

dsc_2383
A friendly bunch of front housings
dsc_2384
Output bearing installed, internal gears all ready
dsc_2385
Internal gears all in place
dsc_2386
Planet outputs and output bearings
dsc_2390
The first seven with outer housings installed

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.

dsc_2394
A bunch of sun gear holders and rotors
dsc_2395
Planets installed
dsc_2397
Planet inputs installed
dsc_2408
Stators installed

Notice how now I’m up to 8!

dsc_2411
Rotors installed

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.

dsc_2414

And then, TADA!

dsc_0002

The legs

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.

2019-05-15-090249_389x709_scrot.png
F360 rendering of leg

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.

The design is checked into github, but is probably easier to see in the F360 web renderer: https://a360.co/2HtDzPk

dsc_2399
The first iteration hot off the press

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:

dsc_0009

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.

Leg assembly

Now, here is a shoulder attached, with the upper leg motor and upper leg installed.

dsc_0004

And from the other side:

dsc_0005

And, the entire first leg:

dsc_0007

Done?

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!

dsc_0012

Next up… will it move?

Chassis for gearbox based lateral servos

dThe original chassis I had built for the brushless servo quadruped was designed around the aluminum bracket that was used in the Titan XOAR 6008 leg.  For a quadruped that uses the BE8108 gearbox for the lateral mechanism, a new attachment mechanism was necessary.  While I was at it, I made some other improvements as well.

  1. The battery is switched to use an off the shelf cordless power tool battery.
  2. The chassis is a shell, where most wiring can be run inside, including the IMU junction board.
  3. Dedicated inserts are in place on the top for a suspension fixture to be attached.

This was once again a record for the longest print I’ve made on my Prusa mk3s, 31 hours and change.

Chassis with support
Chassis with support
Chassis with support removed
Chassis with support removed

The design files are all on github: https://github.com/mjbots/moteus/tree/master/hw/chassis

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.

Prusa MK3s printed legs

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.

Here’s all of the individual parts:

Leg parts laid out in Slic3r Prusa Edition
Leg parts laid out in Slic3r Prusa Edition

Them assembled into a leg with the other necessary hardware:

Prusa MK3s Printed Leg
Prusa MK3s Printed Leg

And some jumping on that leg (caveat, this video is from the previous endurance testing post):

A full set of leg parts can be printed in PETG in about 12 hours and uses a little less than 90 grams of plastic.