Archives: Moteus

Rebuild of gearbox assembly

After finally getting the darned thing apart, and printing a new outer housing, I went about re-assembling the whole mechanism.  This time, I tried to take care to make the future disassembly less painful.

To start with, I filed down the problematic outer bearing interfaces of the sun gear holder so that the bearings were a slip fit over them.  These two interfaces don’t need to be particularly snug, so that was easy enough, if monotonous, to accomplish.  I also machined out a some pockets around the magnet hole, to make it possible to just hot-glue the position magnet in place and more easily extract it.

Rotor and stator alignment

Last time I covered getting to the point of having the rotor installed into the gearbox.  Here we’ll look at making it actually work in that configuration.

When I first got the rotor in place, it was clearly not centered properly.  Although much closer than in the plastic gearbox, it did interfere with the stator during a portion of a revolution.  The first obvious problem was that the primary shaft wasn’t making it all the way through the front shaft bearing.  That should have been an easy fix, but for two different very annoying reasons.

CNC machined planet output and front housing

Shortly after receiving the sun gear holders, I received the first iterations of the planet output and front housing.

20x of the planet output

20x of the planet output

20x front housing

20x front housing

Both of these seem to have actually adhered to the tolerances I requested, so thankfully it won’t be too hard to fit everything together.  However, getting everything together for the first time did involve a comedy of errors – a lack of planning for assembly order, a lack of foresight into how things would be *dis-assembled*, a stubbornly stuck shaft, and plenty of broken parts.

Gearbox first CNC machined parts

As seen in my draft plastic assembly, the required alignment between the rotor and stator in the gearbox is relatively tight.  The difference in diameter between the inner race of the rotor and the outer surface of the stator is only about 0.2mm, which gives 0.1mm of clearance in normal operating conditions.  A plastic drive train was never terribly likely to succeed.  My next steps have been to machine the pieces of the gearbox critical to alignment out of aluminum, so as to ensure that the rotor and stator, (and also the gears) are held within some approximation of appropriate tolerances.  The path of joints between the rotor and stator looks roughly like this:

BE8108 gearbox

As mentioned last time, I’m working on a parallel track to accelerate my quadruped development efforts.  The current plan is to try and use a BE8108 class brushless motor, with a planetary geartrain mounted mostly inside the existing bounds of the motor.

Here’s a rough exploded view of the CAD model:

Key takeaways are:

Quadruped lateral control challenges

So, after applying power to the robot for the first time, I coded up some simple scripted maneuvers I was going to use to work up to a gimmick jump video.  Unfortunately, I discovered that one of my assumptions was not well founded, and some more work will be necessary.

Background

I started in on this project intending to create a semi-standard servo motor with integrated gearbox which could be used for all the joints.  The brushless motors I am dealing with are only just barely capable of their task without additional gearing.  Along that development path, I built some prototype integrated gearboxes for a 50 sized brushless motor, and even took some videos of it jumping.

moteus RS485 bootloader

After getting the whole robot assembled, I quickly realized that changing the firmware on each of the 12 servos was going to be a big annoyance.  Doubly so, because the lateral servo programming ports were unreachable with this chassis design without disassembly.  Thus, I bumped up a deferred piece of work to implement a bootloader that would allow for reflashing the primary application over the RS485 communication bus.

Pre-bootloader state

The moteus controller currently uses an STM32F446 controller, which has 512kb of flash memory.  The memory map pre-bootloader looked like:

First time powering all the motors!

After getting everything wired up and mechanically assembled, next was zeroing all the encoders and doing the first position control.  I discovered a number of problems that turned up by having a full 12 servos on the bus at the same time, which were resolved pretty easily, as well as many more pain points which I’ll need to address.

But, here is the pretty video (it ends when I push down enough to over-current my lab supply):