SHY BOT (2015)

This seemingly sentient robot (or is it?) is just a webcam mounted on a servo-controlled arm – two servos as can be seen in the video. The image/video captured by the camera is fed to a laptop running a C++ program (written in OF) in charge of finding the face (using haar-cascade filters – an embedded system using ESP32 and ML is show below). The coordinates of the center of the face (if any in the field of view of the camera) are sent to an Arduino microcontroller (inside the black box, see image below). This separate hardware is in charge of controlling the servos, so as to steer the camera towards or away from the face (technically, using a PID controller for each axis – a proportional-integrative-derivative control algorithm). Such tracking setup – a robot arm supporting a camera – is nothing new…

However the real funny/interesting effect results from reversing its behaviour, resulting in a robot that avoids eye contact. It is surprising how we – human observers – attribute agency (or even personality – see my Torobots project) to such simple systems!

This phenomena bears some similarity with the famous 1960’s DOCTOR and ELIZA chatterbots (MIT AI lab), simulating and parodying a psychotherapist. Such strong emotional response to elemental artificial mechanisms is very much studied in human-robot interaction (and computer animation! think about the cute Wall-e), in particular when robots or “automatons” present anthropomorphic features.

In this case – and by chance – the camera looks like a little face. It is always fun to “trick” the mind into believing there is a “ghost in the shell”.. or perhaps there is! (many cognitive scientists and philosophers of the mind, such a Daniel Dennett call this phenomena of attributing volition to mechanical systems (including living organisms!) the “intentional stance“, and go as far as suggesting that consciousness itself IS precisely this kind of illusion in the eyes of the beholder. I buy it.

Left: arduino + computer (OpenCV) / Right: ESP32 integrated (using ML)

Made with OF and Arduino:

  1. GitHub – servoVideoTrackerArduinoPID
  2. GitHub – videoServoTracker