2020-10-25T16:33:02

BOB-303 → 6 servo dancer

Found the BOB-303 Prototyping platform on "the internet" and gave it a try to build and program it.

Bodybuilding

Plywood laser-cutted in Happylab, ordered first set of servos and started building according to the manual.

Was pretty straightforward. Had to get familiar with servos and position them to 90° position before fixing inside legs or head. The plywood screw&glue-less design was good. The only thing I did not fully understood was how to fix the other (non-motor) side of the servo. At the end I've drilled the holes bigger and used 2mm bolts.

The head is made so that it opens up like a big mouth. This is elegant, but makes removal of the two top-most servos or manipulating with what ever is inside not so comfortable.

Moving

First moves were done using Arduino UNO. See pictures/video:

Black brother

BOB-303-white got a BOB-303-black brother, this time including servos with 4th pin reading analog voltage from position potentiometer.

Also designed a control board with ATmega328P named sixservo that accepts commands over serial console. Will blog about that board later on, for now all description is on github.

Orignal BOB-303 idea was to have Raspberry Pi Zero with camera inside the head, but for my camera the hole was too small, I fixed that, then it turned out that cable is too small, never bought another camera and abandoned that idea all together.

Auto calibration

Using analog feedback setting the position "zero" of the servos can be automatically done. See video:

Mirroring moves

… and then using a simple script copying monitored movements from one BOB into action movements of another BOB:

Battery power

Tried to use 4x AAA Bateries, attached to the legs, with Step-up DC-DC as power source but that was a fail as those batteries are not suitable for high current application.

The symptoms where that microcontroller was resetting, every time more than one servo was to be moved.

With LDO and 9V NiMH E-block battery the power was working ~ok.

Also made an extra hole for power switch, which was not on the original laser-cut design to be able to disconnect batteries.

White also with feedback

To be able to use auto-calibration I've carefully (not to damage plywood) disassembled the white guy and soldered analog feedback wires.

Record & Replay videos

rigid stepping:

fluent stepping:

What next? Takeaways?

Spent plenty of hours on the project → it's a good proof of concept as of now. What could be improved:

  • next version of sixservo control board
    • Li-Ion batteries with proper DC-DC step-up
    • different micro-controller that could monitor battery level, current(s) to servos, turn them on-off = more pins → would mean software rewrite, with this interface
    • current limiting ICs for each servo + instant power off for servos when microcontroller goes reset
    • independent power supply for microcontroller
    • better smoothing of movements built directly into servo control code to be updated every 20ms with each servo command
  • New "body" as 6 servos, 3 per leg, can not do much movements, just "hopping around", or?
  • Bluetooth instead of cable
  • Use some hard wood not soft plywood
  • Learning means repeating, feedback, failing, repeating-again, failing, feedback, retrying, repeating (...) and adjusting.
  • It seems that predicting future is essential for "smooth living". May be that's why people long so much for understanding and are depressed when nothing go "their way"?