The snake pit is an installation comprising up to five robot snakes that follow people moving beneath them and perform various dances.
It's the result of a collaboration of Peter Heywood, an artist, and Phil May, a software engineer and was first shown at the June 2018 graduate show at Plymouth College of Art (PCA). For more on its origins please see the video in the “Who might help you” section.
Since then the touch-sensitive floor has been replaced with a camera-based system that's far more portable and adaptable. A single robot snake based on this system was shown at the London Design Fair in September 2018. It was nominated as one of the "Top Picks"of the show by the magazine Design Week.
movements and mannerisms
In normal operation one of three behavioural modes is chosen at random every few minutes, those modes being:
Tracking, when each snake follows the person nearest it
Dancing, when the snakes dance together. They do the Waltz, Cha Cha Cha and Muppet dance
Alerted, when all snakes follow a single person
A number of mannerisms are overlain on these modes to make the snakes appear alive. These are:
Nodding
Shaking the head
Weaving (moving the body from left to right while moving the head in the opposite direction)
Alert (pulling back suddenly and then extending gradually)
Snake (a rippling motion)
Look aside left
Look aside right
Chattering
How it works
In summary, four cameras are used work out your location and this is fed into software moving little motors in the snakes so they follow you. The original setup didn't use cameras; it used hundreds of tiny pressure pads under the floor to track your position, but this proved difficult to store, transport and adapt for different size and shape areas. For those wanting more detail, the Snake Pit comprises the following elements:
Cameras
Each camera comprises a fish-eye lens and a Raspberry Pi Zero board fitted with a 16GB memory card, in a home-made cradle. They are positioned near the corners of the area under surveillance.
camera software
The camera software tracks people by comparing successive images and identifying changes. This includes monitoring constituent colours in an effort to screen out "false positives" such as moving shadows and reflections. The horizontal lines show where movement has been spotted. The vertical lines are used to calibrate the camera so that its orientation matches that of the space it's monitoring.
control software
This software runs on another Pi Zero board and uses Wifi to communicate with the cameras so they can be configured and their output can be viewed, either singly or as a composite matrix (as pictured), using a remote control app. The software generates "targets" at intersections, which are fed into the snake control software running on an adjacent Arduino Mega board. Four cameras are needed to track more than one person. The software is also used to specify the room geometry and configure up to five snakes.
snake software
The software swivels the eyes, tilts the head and bends the body of each snake and switches between three modes of operation at random. In one mode, shown on the screen above, the snakes (represented by lines) follow the person nearest them (represented by crosses). In another mode, all snakes follow a single person. Every now and again the snakes break off from following people and perform synchronised dances such as the waltz, cha-cha-cha and Muppet dance. The software also gives the snakes numerous mannerisms so they take on the character of living creatures.
Snakes
The software rotates servo motors to swivel the eyes, tilt the head and bend the body of the snakes, each of which comprises eight segments connected by horizontal and vertical hinges. The snakes have to be very light so they can be moved quickly by a modest force. They also have to be very stiff so their 1.2 metre length can be cantilevered above people’s heads with very little sag, enabling their position can be controlled reasonably accurately. The segments are made from laser-cut 4-mm plywood. The ones carrying the most load have piano wire tensioners. Elastic bands are used in vertical joints so the servo motors don’t have to work continually (and possibly overheat) to hold the snake horizontal.
Previous version
The original version of The Snake Pit used a different system for tracking the location of people. It was based on hundreds of pressure pad under the floor - a system that proved laborious to set up and difficult to transport and store, because it was so large (two 4-m-square mats). It also would have been difficult to adapt for different size and shape areas.
Here's the details:
floor
The floor tracks your location using little squares of pressure-sensitive fabric sandwiched at the intersections of a grid of copper tape. The photo shows the underside of the floor, before it was protected with gaffer tape and turned over. Your weight changes the electrical resistance of the connection between the tapes and this is measured by passing a 5 volt current through the tapes running in one direction and then monitoring the output voltage of the tapes running in the other direction.
Mat Processor
The mat processor sends an electric current out along the rows of copper wire and measures the current coming back along the columns. It rapidly cycles through the rows and columns,testing the resistance of the 1,200 pressure pads 5 times a second. The pads are positioned 10cm apart, so the software can use the row and column of the pad to calculate its location on the mat (just like the game of battleships but with a lot more squares to be tested). The photo shows the box of electronics driving The Snake Pit. The mat processor software runs on two of the blue Arduino Mega boards, which only cost £9.55 each.