AI PiDog: Robotic Embodied Feedback & Behavioural System
2024 - 2026 Starting development of animatronic dog (mouth and tail prototype) completed in 2024.
Full embodied system of animatronic dog (body) completed in 2026.
First development of animatronic sensors, modules and construction developed alongside Karsten Goodwin.
This project investigates the construction of artificial behaviour through robotics, focusing on how mechanical systems can emulate lifelike qualities. It draws from animal behaviour, animatronics, and embodied interaction, examining how humans interpret motion, responsiveness, and expression as indicators of life. The project also explores the role of sensors and feedback systems in creating reactive environments, where behaviour is not pre-defined but emerges from input.
Embodied Feedback Dog is a robotic-and-digital interface that turns the live condition of a quadruped robot into a real-time particle visualisation of a dog. A quadruped robotic platform carries onboard sensing (ultrasonic distance, dual touch, an IMU for accelerometer and gyroscope motion, sound direction, and a camera). A person interacting with the robot perturbs it; the robot senses its own state; and a digital "body," a point-cloud Labrador built in TouchDesigner, externalises that state on screen.
The system runs in three layers. An embodied sensing layer reads the robot's sensors. A behaviour-interpretation layer, a Python bridge on the Raspberry Pi, smooths and thresholds the raw readings and reshapes them into behavioural channels rather than passing telemetry straight through. A visual expression layer in TouchDesigner renders the particle dog, driven over OSC. The architecture is deliberately a distributed feedback loop: human interaction → robotic body sensing → behaviour interpretation → OSC transmission → TouchDesigner particle visualisation.
The core technical claim is that the behaviour layer is what makes the system work. Mapping live sensor values directly to the visuals produced results that were overactive, illegible, or unresponsive, so an intermediate layer was built to stabilise signals, threshold small IMU fluctuations, stop touch from acting as a destabilising trigger, and emit legible states such as presence, contact, agitation, stability, attention, and fragmentation. These are operational constructs, not claims about the animal's psychology; they give the visual system an intelligible language to act on. The most successful visual states kept the dog recognisable when calm, let disturbance fragment the form without erasing it, and allowed touch to gather or settle the body.
The work was developed through practice-based research: building a flexible particle visualisation from an FBX model, generating simulated OSC channels first as a controllable baseline, then testing live sensors incrementally over SSH to isolate failure modes, then retuning the mappings against the gap between simulated and live behaviour. That gap became part of the finding: live data carries jitter, latency, and contingency, which is precisely why a behaviour-shaping layer is needed. Reliable live channels were ultrasonic distance, dual touch, and the IMU; sound direction was unstable in some configurations; and the camera (an ov5647 module) was integrated as a separate extension, including a simplified face-tracking script that removed a conflicting ears/sound module causing a GPIO-busy error.
Conceptually, the project treats the robot and its digital counterpart as a single distributed body split across machine, software, network, and image, and uses it to examine how interfaces turn motion into data and data into expression. It sits within research on embodied and situated interaction, behavioural data and operationalised bodies, and cyborg and posthuman embodiment, drawing on Suchman, Dourish, Haraway, and Hayles. Rather than presenting the robot as an autonomous intelligence, it makes the act of translation visible, the same logic at work in sports analytics, wearables, and responsive uniforms, but staged so you can see it happen.The robot's onboard sensors (proximity, touch, IMU) read each interaction and pass it through a Python behaviour layer that turns raw signals into states such as contact and agitation. These are streamed over OSC to a particle dog in TouchDesigner, so a touch on the physical body becomes visible fragmentation in its digital counterpart. The two bodies, machine and image, act as one feedback system.Inside TouchDesigner: incoming OSC behaviour channels (OSC In → Select → Lag → Null) drive the particle system's forces. A behaviour value feeds turbulence (0.15 + max(0, …pidog/fragmentation)), so the Labrador stays coherent at rest and disperses as sensed agitation rises. The visual is an expression of the robot's state rather than a direct sensor-to-pixel mapping.The PiDog performing its built-in actions, run through Python scripts on the Raspberry Pi, which command the leg and head servos. I tested the full action set (walking, barking, tilts, and head movements) to get the hardware reliably running before building the custom sensor-to-OSC bridge that drives the TouchDesigner visualisation. Code and notes on GitHub.