About Spotlight
Spotlight (AKA: Disruption) was an art installation that explores the relationship between humans and their environment by means of a robot observer. Visitors wearing gardening hats were allowed to enter a garden scene, with three abstract animatronic Creatures. The centerpiece was a mechanical Lamp, which would periodically observe the robotic Creatures in its garden. Visitors could walk calmly through the scene, but being too aggressive would disturb the Lamp causing it to shine oppressively on the intruder.
Spotlight explores the intrusive role we often play in our environments, as well as the powerlessness of that environment to respond. The Lamp shines a light on it’s disturbers, but it’s ultimately up to them to decide how to respond.
The Garden Creatures:
Technical Overview
I was the software and motion lead on Spotlight, and implemented all software and kinetic behaviors of the Creatures and the Lamp. Spotlight’s software was implemented using ROS for python. There were several key components to Spotlight:
- The Creatures. The Creatures of the garden were controlled by stepper motors and arduinos running software developed by Garth Zeglin. Creatures were controlled by commanding each actuator sinusoidally with an amplitude, frequency, and damping ratio, allowing them to behave like spring mass systems.
- The Lamp. The lamp itself was controlled by a brushed DC motor for azimuthal motion, and a servo for altitude. The brushed motor had no feedback, so the azimuth control loop was closed using feedback directly from the motion capture system.
- The mocap system. An OptiTrack system was used to track the lamp itself, the positions of all three Creatures, and the positions of the Visitors using the mocap trackers on their hats.
- Coordinator. The coordinator was a ROS app that interfaced with the mocap system, Lamp, and Creatures to dictate their behavior. A basic simulator was also written to enable hardware-in-the-loop testing outside of the mocap environment.
Software is available here: https://github.com/Toms42/Disruption-ROS