More selected projects


Two autonomous plant cyborgs exploring the possibilities of artificial mutualism
in the form of a robotic love story.

produced by: Eevi Rutanen



The title and the initial inspiration for this project comes from Vernor Vinge’s science fiction novel A Fire Upon the Deep, which introduces a sentient, plant-like species called Skroderiders. In the novel Skroderiders are told to have gained mobility when a superhuman being provided them with mechanical, wheeled platforms—skrodes—which allowed them to move around, have access to short-term memory, and communicate with other species (Vinge, 1992). I was also inspired by some precursory artworks that combine living organism with robotic elements like Terranaut II (see Steiner, 2006) and Indaplant Project (see Demaray, 2013).

In accordance with Vinge’s skroderiders, I wanted to examine the implications of bestowing agency to a non-human being, and also investigate the possibilities of symbiotic relationships between cybernetically enhanced organisms. In addition to the biological aspects of symbiosis, I wanted to explore the notion of mutual dependance as a form of romance. Vinge’s novel succeeds in describing the relationship between two skroderider characters, Greenstalk and Blueshell, as a definitely alien but still relatable portrayal of a connection between two individuals. In my project I aspired to illustrate a similar sense of an alien love story between two non-human beings.



Technical aspects

The skroderiders move around with two independently rotating DC-motorised wheels, which allow them to turn with almost zero radius. They are both equipped with an ultrasonic sensor for detecting obstacles: when they detect an obstruction in front of them, they rotate the sensor and try to find an alternative route. The two DC motors and the servo motors for the heads are controlled with Adafruit’s motor shield. The motor shields are powered with 12V from 8x1.5V AA batteries, and the Arduinos (and servos) with 6V from 4x1.5V AA batteries. There are multiple examples of obstacle avoiding robots online, and I decided to implement a modified version of Darwin Dela Cruz’s code for triggering different movement patterns based on the distance sensor readings.

In addition to sensing their environment with ultrasound, the skroderiders use infrared for locating each other. The other skroderider (Greenstalk) has four infrared LED’s placed around the chassis, and the other (Blueshell) has an IR receiver for detecting the sent infrared pulse. I utilised Arduino IR Remote library by Ken Shirriff for decoding and sending the IR signal. For distance sensing I initially used the Ping library, but because of a library conflict with the IR Remote, I ended up using Isaac100’s code for calculating the distance directly from the sensor’s output.

I limited the range of the IR receiver by placing it in a narrow tube, so that the direction of the signal can be clearly distinguished. If the infrared signal is detected in the front, Blueshell moves forward. If no signal is found, it scans its environment in 20 second intervals. Two LEDs on both sides of the head indicate the direction of the received signal. If a signal is detected, Blueshell follows it. Because only Blueshell can sense the presence of the other rider, Greenstalk was designed to move a bit slower and rotate in place in certain intervals, so that it is possible for Blueshell to reach it.

When the two plants meet, Blueshell provides Greenstalk with water from a pump-operated watering system, and Greenstalk provides a LED grow light with wavelengths optimised for photosynthesis. Both the 12V water pump and the 12V LED grow light strips are controlled with the motor shields.

The skroderiders can detect when they are touching each other with conductive fabric bumpers. The upper bumper works as a button, which is connected to a digital pin as well as ground through a 10k ohm pull-down resistor. The lower bumper functions as a common ground for the two Arduinos. Greenstalk’s bumper’s digital pin rapidly alternates between read and write pin modes, so when the bumpers touch, Blueshell’s pin reads a positive value. After detecting the touch, Blueshell’s digital pin consequently switches to writing mode, so that Greenstalk can also detect the connection. After sharing their resources, the two skroderiders depart and go their own ways, waiting to find each other later again.


The schematics were quite straight forward and mainly required connecting the parts to digital pins. The only problems I faced was with the IR LEDs: I'm not sure if the parallel circuit with the 220 ohm current limiting resistors was the right way to do it, or maybe LEDs in series would have been more efficient? I was unable to find a data sheet for my particular IR LEDs so I couldn't do the necessary calculations.



First cardboard prototypes for the chassis. The round chassis was designed to make it easy for the two robots to touch from their sides, and the two-tiered structure was selected to provide more space for the electronics.


The rotating sensor heads were modelled in Tinkercad and 3D printed. I designed the parts with mainly practical aspects in mind, but the placement of the sensors in addition to the movement resulted in an amusingly anthropomorphic look.


The cylinder for the grow light strips was also designed in Tinkercad and 3D printed. The watering system on Blueshell was made from a juice bottle, a peristaltic aquarium pump, PVC tubing, a spray nozzle from a cosmetics container, and an acrylic arm that was lasercut and bent with a heat gun.

Process pictures from the conductive fabric bumpers. The bumpers were also a combination of functionality and aesthetic choices: they shield the chassis from possible collisions, allow the detection of physical contact, and contribute to the sympathetic and humane appearance of the robots. I used a nylon ripstop fabric similar to the conductive material to cover the sides of the chassis and to attach the bumpers. These removable fabric “skirts” were fastened to the chassis with velcro.

The circuits were rather simple since they mainly required connecting wires directly to the digital pins or the motor shield's terminals. However, there were multiple connections and the wires had to run through the holes on the chassis, so I decided to use screw terminals . This was very helpful since I didn't have to solder the wires directly to the boards so I could easily assemble and disassemble the robots.