Archives: Development

Controller r3 and endurance testing

After my self-education on MLCC derating I spun yet another low-volume prototype run of the servo controller.  This one has more than double the effective capacitance by doubling the number of capacitors and by selecting capacitors that have less derating.  I also fixed an incorrect pad geometry for the 6 pin ZH connector, optimized the BOM count a bit and reselected parts that were no longer available.

2x fully assembled controller r3

2x fully assembled controller r3

Mammal geometry leg revision

After getting the first version of the mammal geometry leg working and jumping I worked on a second revision.  At a minimum, I wanted to fix all the problems that required hand machining, however I also decided it was trivial enough to add a reduction ratio to the tibia through the belt drive, that I should just go ahead and do it.  My inverse kinematics calculations showed that this would make a big difference in average power consumption.

Welcome Mini Cheetah!

It is great to see that Ben Katz was finally able to announce his work on the MIT Mini Cheetah!  I’m looking forward to reading their ICRA paper, if nothing else to figure out what motor selection they made and how to design a more compact gearing system.  My current prototypes rely exclusively on belts for reduction, as I decided that my current geared prototypes were too cumbersome.

UPDATE 2019-03-06: I now see that Ben’s thesis in his post is actually his master’s thesis, which fully describes the actuators and robots.  I had erroneously thought it was just his undergrad thesis.  Thanks for publishing so much!

New machine day - Prusa i3 MK3S

While designing the improved actuators for SMMB I’ve given Shapeways a lot of business.  I can definitely recommend it, their selective laser sintering (SLS) parts are easy to order, their website gives plenty of control, and you can expedite things to your hearts content.

That said, with the amount of 3d printing I am doing, I could have already paid for a fused deposition modeling printer several times over.  Thus, I recently acquired a Prusa i3 MK3S.  It certainly can’t print everything that you can do with an SLS process, but with slightly tweaks to the models it can do a lot of it.  The biggest upsides of course are the lower per-part costs… something like 20-100x cheaper, and the faster turnaround time.  Nearly anything I care about I can have a draft of overnight.

Motor controller heatsinking

The controllers for the improved actuators for SMMB have a moderate amount of power to deal with.  During jump maneuvers they can put 60 amps of phase current into the motor, and I’ve applied for very short intervals over 500W of power to a motor.  The FETs on the board are relatively high performance, but there is still a fair amount of heat that has to be dissipated.

When getting started, I knew I would likely have to do something to get heat out of the board and had a two stage plan.  The first was to heatsink the back of the controller board and second, if that wasn’t enough, heat sink the front of the board.

Mammal geometry 2d inverse kinematics

Now that I have a mammal geometry leg moving, I wanted to get a better feel for what the overall performance would be in various gaits.  I had already derived position based inverse kinematics for Super Mega Microbot, but had no such derivation for force.  Here’s my jupyter notebook with derivations for both position and force (in 2D), along with average power consumption for various forms of straight walking gait with my current draft motor selections.

Initial mammal jumping

I got the mammal geometry leg up on the jump stand, then took it down, switched the femur motor to a BE8108, then took it down, and added a 3rd degree of freedom.  There is still a lot of work to do to get it performing well, and it is pretty clear it won’t have the same vertical jump of the 4 bar linkage, but I think it still might be an overall superior option.

Mammal geometry legs

Before committing to the side-by-side 4-bar linkage leg for SMMB’s new actuators, I wanted to give a try with a more traditional mammal geometry.  That was my preference to begin with, but my initial motor evaluation didn’t find any motors which had sufficient torque without a gearbox, and adding a gearbox in a simple way changed the dimensions enough that mammal geometries weren’t feasible.  I spent some time looking for new options, and I found at least one which was promising, the XOAR Titan 6008.

MLCC ceramic capacitor DC bias derating

While testing SMMBs new actuator under load, I kept getting faults from overvoltage that I had not anticipated.  The firmware only samples voltage once per control cycle, and while that plot did look very interesting, it probably wasn’t representative.  I wired up the scope to be able to sample the voltage and FET control signals during operation and sure enough, the voltage ripple was way higher than I had predicted based on the original design.  Even at only 30A phase current, the voltage ripple on the main power bus was 4.2V.  Note that this was with a nominal operating voltage of only 13V!  I had been trying to operate at 40A, for which it must have only been worse.

Encoder autocalibration

I have been continuing to iterate on the control and mechanical aspects of the improved actuators for SMMB.  While working on an alternate board mounting strategy, I ended up with a magnet that was much much further from the absolute encoder than before.  This resulted in significant errors in the estimated motor phase at various points in the revolution of the absolute encoder.  In the spirit of copying every single thing Ben Katz did in his project, I implemented a piecewise linear encoder calibration technique.