A familiar is a magical companion that assists their master in various ways. Wizards have owls. Pirates have parrots. Witches have cats. What would Makers have as companions? Robots, of course. Familiars can perform various useful tasks, such as providing useful information when needed, interacting socially with other people (and perhaps other familiars) the master encounters, and generally just being entertaining.
Using the Intel® Edison, in this project I set out to build a shoulder-mounted, wearable companion robot: a robotic familiar. The focus of a familiar is social interaction, not locomotion, so the degrees of motion are all focused in a head. The mechanisms for the head were primarily 3D printed. Interfacing between the Edison and the RC servos was done with an Adafruit PWM (pulse-width-modulation) breakout board, which is a perfect form factor and supports sixteen 12-bit PWM channels.
Here are some videos: a simple motion test, and an interview at IDF14 in front of the Edison booth. I will upload additional videos when I can...
This is a work in progress. I completed the animatronic mechanisms for the head and a tail (9 degrees of freedom in total), but have not yet included any perceptual capabilities or voice I/O. Eventually I want to include both so that the familiar can respond to voice commands, provide information via voice, and assist in social interactions. As a very simple social application, the familiar could memorize faces and associate them with names, and later could greet people by name when we meet again, and could even perform introductions (maybe matching people’s faces to information available on LinkedIn or elsewhere). Since the Edison will have internet connectivity, the Familiar could also get information from the internet when requested (eg to find train schedules, check the weather report, etc). In fact advanced capabilities like voice I/O can be supported with existing web APIs. Some of the applications of the familiar overlap with applications for other wearables like glasses, but the advantage a familiar has over glasses or phones is it that it can interact with other people too, not just you, and can even engage in interactions with other familiars.
Mechanically, the base of the current design needs to be redesigned to sit on the shoulder better and provide a better vertical orientation for the robot (the current 45 degree angle it tends to sit at is a little strange), and better skins need to be designed. I am engaging with some artists to help me with skins; I think some really interesting things can be done here. I should point out that the current design was based on a Chinese Tiger character developed for the Intel® Pocket Avatar project. I have a cloth skin design in the works but for IDF I thought showing the underlying mechanisms would be more interesting. If you are interested in designing your own familiar, it is worth pointing out that Shapeways has several animatronic head designs for sale that could be adapted to this purpose.
Here are a few more pictures showing close-ups of various mechanisms that I used in my design. The head has three degrees of freedom and is actuated with a universal joint for twist and two other levers providing left and right (and forward-back) tilt. Inside the head are two micro servos at the front for moving the eyes: two overlapping sliders move a pin in XY, which is then coupled to a jointed rod, not shown, to pivot the eyes in their sockets. Four additional micro servos in the back of the head raise and lower the jaw, the eyebrows, the upper lip, and the ears (although I have not yet attached an external piece for the ears). Due to limitations on how many servos that could fit in the robot, the eyebrows and ears move together. There is also a nano-servo for twitching a tail, mostly included as an experimental feature for use of nano-servos. As mentioned the servos are actuated by an Adafruit PWM breakout board. I interface to this board from the Edison with I2C. As this board provides sixteen PWM channels, there is room for expansion. One thing I am still working on is making the eyes glow using RGB LEDs. Since we have spare PWM channels, analog RGB LEDs can be used. That will use three of the remaining PWM channels, leaving four for future expansion.
The files for replicating this project will be made available by github. However the mechanical assembly requires a rather involved discussion which I need to write up as a series of blog posts. I will post links here when that content is ready.