Here is Grace the SmallKat!
These two videos show the 2 electronics configurations on the Small sized SmallKat.
The simple electronics platform is a single ESP32, 16 servos, 3 switch mode BEC's and a BNO055 IMU. This platform is easiest to source assemble using of OTS parts plus printed pieces. This platform streams sensor data up, and servo positions down, using the WiFi built into the ESP32. This configuration is easy to develop for because the code kinematics/walking gait code runs on a nearby PC. Kinematics and walking gait/body controllers can be swapped out on-the-fly without restarting SmallKats controller making development fast. Once algorithms are finalized and published to Git, they can be loaded by the second configuration and run in a tight real-time loop with the hardware. A downside to this configuration is that it is only as stable as your WiFi signal in the room.
The advanced configuration uses the same control code as the Wifi version, except it loads a headless kernel and runs it on a RasPi onboard of the robot. This configuration uses an STM32 to connect to the BNO055 and servos, and bridge them directly to the onboard RasPi over HID. The first variant used a Teensy, but we wish for the full stack to be fully open source and so are switching to a custom STM32 board. This solution will be more expensive, and development loops will include pushing to a git server and re-starting the robots control stack to load new code. These trade offs suggest that both electronics solutions ought to exist as options, and researchers might want both in a given lab. Toy markets would only be interested in this type of fully stand-alone electronics, since it requires no setup to start the robot running.
Here is a video of the SmallKat in slo-mo
Here is a video demonstrating the dynamics loop. The IMU produces a gravity vector that is then used to compute if the SmallKat is tipping over. To the degree that it is tipped off its axis, the dynamics controller applies a counter Coriolis force by spinning the head and tail counter to the tipping direction.