Archives: Smmb

80/20 Robot Stand

Now that I have a mostly-assembled (and even kinda-working) robot, supporting it with a series of impromptu cardboard boxes is both a little janky, as well as limiting and dangerous.  The machine is not too hard to tip over, and the range of things that you can do while still having it supported is somewhat limited.

So, here’s yet another entry in the 80/20 can do it all series.  This is a simple fixture that allows the machine to either rest on a platform, be supported from an overhead cable or both.  This lets me both more easily operate on the machine, but also test it under power and not have to be worried about it falling over and damaging itself.

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.

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):

All parts received!

I’ve now managed to get all the custom and long lead time parts in house for the first version of a quadruped based on the new actuators I’ve been designing.

All The Parts!

All The Parts!

That includes all the motors, custom brackets, and at least moderately working versions of all the custom PCBs.  Now I just have to get the local rework done, get the software into a semi-reasonable state, and put it all together!

Quadruped chassis

Now that I have a semi-reliable actuator, I need to connect 4 of them together into a single quadruped robot.  Additionally, it needs to be able to mount a battery, the turret, and all the other miscellaneous pieces of a walking robot.

My draft design looks like this in CAD:

2019-03-05-205850_775x598_scrot

The four corners each are set to mount one leg to.  The central cavity will eventually house a battery compartment.  On the top is a mounting location for the turret, and the front has mounting studs for a power distribution PCB.  Each of the screw holes is designed to take a thermoplastic insert heat fit into place.

Quadruped Junction Board

The full quadruped robot needs to both distribute power from the primary battery and RS485 serial network to all 12 servos.  To make the wiring of that easier, I’ve made up a junction board to provide power connectors, distribute the data network, and act as the IMU for when that is necessary.

20190314-moteus-imu-junction-r1.png

The RS485 network is bridged between two halves of the robot.  One connection comes in from the controlling PC and two separate links go out, one for the left side and one for the right side.  This could eventually allow the controller on the junction board to take intelligent actions itself, such as querying the force applied on all 12 servos.  It could then return the result in a single RS485 transaction to the host computer.  I am expecting that will be necessary to achieve closed loop control approaching 1kHz.