My Projects: A Robot for my niece

Which looks like a penguin

The robot:

Mothin design and sensors

Years ago, i designed and built a tiny robot for my niece. The idea was to build a toy that looked like a penguin.

The motion-design is articulated around two wheels, and an astable center of gravity, which makes it tumbles and wooble. A PID loop makes it "walk" by alternating movements on each wheel.

He can scan for it's environnement, using a bunch of sensors:

  • 3 sonars
  • 2 light sensors
  • 2 bumpers

It's skin is made from fabric and fits like a glove around the plastic body of the penguin.

Here's a video of the "finished product"

Electronics:

ESP32, sound, power, and magic

The robot uses an ESP32, from esspressif. I'ts coded in C using ESP-IDF, and everything is mounted on a prototyping board.

Here are some videos of the naked robot moving:

As you can see, it's structure is made out of clear acrylic glass, formed and glued by hand. The wheels are 3D Printed, and the counter-weught (the yellow box on the back) is made out of lead.

The power come from two 18650 lithium cells, placed on the second stage of the frame.

Here are some pictures of the inners:

Software:

Pure C, visibility, solidity, and decisions.

The code is quite straight-forward. Its based around a state-machine driven by a sophisticated bit of software that compute a sort of vision from the robot's sensors.

I found an old screencast i made back in the time i wase developping the OS for the robot:

All the robot's sensors are feeding an algorithm which take those weighted parameters to create an interractive map of the surroundings. Once the cardinal position of the obstacle is computed, the robots then uses other parameters to compute a cardinal "interrest" position (the position of something interresting, like moving stuff, or oscilating things...)

Those computed infotmation then feeds the state-machine that tells the robot how to react, and then drive the PID loops and all the other motion-design goodies.