How to train your robot
Cool research is built on a series of rather uncool moments.
It’s late on a Monday night, and as usual, I’m standing in the middle of a large playroom filled with a bunch of pretend tools. There are toy hammers, plastic wrenches, and even a pretend drill, all strewn across racks, tables, and bins. I walk around the room, running a final check to make sure there aren’t any glaringly obvious issues before I let Pluto in.
When I’m satisfied, I leave and watch from behind a glass wall as Pluto enters the room and gets to work. He walks to the center and looks around, taking in the clutter. He then takes a few specific looks to make sure he’s seen all the objects I’ve tasked him with fetching. After a few moments, he sets about his task. He goes up to a blue toy drill in the corner, inspects it, and then carefully picks it up without knocking over any of the surrounding objects.
“Yes! Good boy Pluto!” I cheer as Pluto continues on. He takes the drill over to a toolbag and places it inside before moving onto the next object.
Pluto succeeds on the next three objects, but unfortunately for both of us, his streak doesn’t last. As he’s positioning himself to pick up a toy cube I notice his cameras aren’t lined up to see the object. In fact, they’re tilted slightly above it, as if Pluto thinks the cube is floating slightly off the ground.
“Error: Unable to detect object ‘cube’ in last-seen position”, he tells me. He suddenly freezes and my program dies. I sighed; this was the same bug I’d been seeing for a whole day now. Despite spending hours running trials and trying a number of fixes, the bug persists.
I groan and sink into my seat. I was supposed to have a working demo of this entire task yesterday. There’s an important deadline coming up in a few weeks, and I’m falling behind.
While Pluto’s strange belief in levitation is a one-off thing, the experience of watching a robot fail to do something simple for annoying yet confusing reasons is pretty typical for me. Getting a robot to do anything, even seemingly trivial things like picking up a cube, is notoriously hard. Robots fail a lot more often than they succeed, and a lot of my day-to-day involves getting up close and personal with the surprising ways these failures manifest. It’s often stressful, frustrating, and disheartening, especially when the threat of a looming deadline hangs overhead.
And yet, when people ask whether I like what I do, I honestly tell them that I love it. I got into robotics back in the sixth grade when a professor from California visited my school in India to introduce kids like me to LEGO robotics as part of some outreach work he was doing. He showed us how to build and compete with sumo-wrestling robots. My 11-year-old brain correctly recognized this as the single coolest thing that had ever happened to me and was promptly hooked. The rest of my middle and high school years revolved mostly around trying to speed through my classes, sports, and any other obligations in my life to make more time for working on robots. I distinctly remember thinking that it would be a dream come true if I could somehow make a career out of just tinkering with robots all day, even though I was pretty convinced such a thing was not possible.
Somehow, through a weird mix of serendipity, support, and some hard work, I’m living that dream today. I currently spend most of my time trying to teach robots to be smart. I’m even paid to do it. I’m surrounded on a day-to-day basis by robotics pioneers who are dedicated to both pushing the field forward and helping me push the field forward. I get to work with and contribute to some of the coolest, most cutting-edge robots in existence. If I could tell my high-school self what my life is like now, and show him some of the papers and demos I’ve produced as a graduate student, he’d probably faint from sheer elation and excitement.
And yet, it’s easy to forget this. On a day-to-day basis, when I’m dealing with the fifteenth this-really-shouldn’t-be-happening bug of the day, or trying to fix a never-happened-before hardware problem, it’s much easier to feel frustration than gratitude, let alone elation or excitement. But I suppose that is the nature of research: most scientific breakthroughs in history have been built on the backs of thousands of moments of frustration. If a breakthrough were easy or obvious, then I suppose it wouldn’t really be a breakthrough.
Pluto trying to pick up his cube.
It’s moments like these that remind me to zoom out and reconnect with the bigger picture. Whenever Pluto suddenly freezes or falls over because of a mistake in my math or a bug in my code, I try to remind myself how cool it is that I get to train robot dogs for a living. I try to remember that I’m working on hard problems in a field I’m truly excited about. I think about the dreams that the younger me had, and feel some gratitude for the fact that the present me gets to live them.
Share this post: