My robot ran his whole life on the software that shipped with him. That software reached its end of life, and the rest of the robotics world has moved on, so I decided to rebuild his foundation on the modern standard, both to future proof him and because rebuilding something yourself is the best way to actually understand it.
The hard part was that a key piece of his motion software came as a sealed black box with no source. So I rebuilt the plumbing around it: I gave one small program sole ownership of his body, his motors, his balance sense, and his walking, and had everything else talk to it through a clean, simple boundary. That made the rest of his software able to run on the old foundation, the new one, or none at all, without caring which.
What rebuilding a black box teaches you
Carefully rebuilding the vendorβs controller, I found real bugs in it that you only find by rebuilding, not by using. I also caught one of my own: months of falls traced back to a single setting the sealed software quietly overrode. Once I controlled that code, I could fix it, and he has been far steadier since.
The payoff
The first time I ran the full mission on the new foundation, he did the whole thing: found the ball, walked to it, squared up, grabbed it, and threw it, with none of the old software anywhere in the path. The only thing that failed was his victory dance, a fittingly small last bug.
A nice bonus: the same setup can drive a simulated version of him, so I can rehearse a risky move safely before sending it to the real robot.
More from the series at coburnicusmind.com.