Self-supervised spray targeting & auto-drive
A U-Net trained on years of operator behaviour, with no hand labels, that tells Q-Bot's Mk7 spray robot where to insulate next and lets it drive there on its own. First-author paper at IEEE MMAR 2022.
Problem
Q-Bot had been insulating homes with a fleet of robots for years, almost entirely by teleoperation. The operator decided every spray location, repositioned the robot and adjusted the spray pattern by hand, inside a dark, cramped void they could only see through a camera. It worked, but it was a constant cognitive load, and the robot could not suggest or do anything on its own.
What I did
I led the work to automate the core decision, where to spray next, and published it as first author with Ashley Napier, Maddy Clifford, Tom Lipinski and Peter Childs (Q-Bot and Imperial College London).
Labels for free. Every on-site install was already recorded: joypad presses, sensor readings, images and point clouds, from thousands of properties across the UK and Europe. I turned that history into training data with no human labelling: each spray polygon an operator chose became a segmentation mask of valid spray region, no-spray region (robot body and void walls) and unknown. That gave about 100,000 images.
The model. A simplified U-Net, trained at 800 × 600 with PyTorch Lightning. Operator selections are noisy and the classes are badly imbalanced, so I used a weighted symmetric cross-entropy loss: weighted cross-entropy for the imbalance plus reverse cross-entropy for robustness to noisy labels.
On the robot. I integrated the Spray Region Estimator into the Mk7’s ROS stack. It predicts the next spray polygon from the camera image and shows it to the operator, who can accept or adjust it. One click and the planning stack drives the robot to the best spraying position, using a global planner for the route and a local planner for fine manoeuvres, ready to apply insulation.
Result
Weighted symmetric cross-entropy raised spray-region mIoU from 0.645 with plain cross-entropy to 0.706, and average mIoU to 0.722. On site, the robot proposes where to spray next and drives itself there, and the model adapts to different operators’ preferences, generalises to voids it has not seen and gets better as more installs are recorded. The model was running in shadow mode at the time of publication.
system
scroll sideways on small screens
footage
muted, looping
figures
click to enlarge