Tuesday, December 14, 2010

How We Drive the Rovers

I almost always start public talks with this information, and I get asked this enough on Twitter and the like that I might as well blogificate it.

So here's how we do that.

Damn The Speed of Light

We'd like to drive the rovers with a joystick. Push forward on the joystick and the rover goes; let go, and it stops. But we can't do that because Earth and Mars are too far apart. The closest they ever get, when both planets are on the same side of the sun, is nearly four light-minutes apart. When on opposite sides of the sun, that rises to about 20 minutes. And since signals travel between Earth and Mars at the speed of light, that imposes a two-way time delay on any driving.

Imagine trying to back your car out of the driveway with merely a four-minute one-way time delay. You turn around, look out the back window, and hit the gas -- and then nothing happens. For four minutes. Then your car starts to move, but you don't know it for another four minutes, until the windshield starts updating. Good luck with that.

(For younger kids and early teens, I sometimes use this analogy. You're playing a video game, and you hit fire. Your guy doesn't fire for four minutes. Plus, you don't know he fired for another four minutes. How well are you gonna score?)

In our case, by the time we see the cliff coming (as Andy Mishkin says), we've already gone over it. So we don't do that.

How We Do It

Instead, we take advantage of the fact that our solar-powered rovers have to shut down for the Martian night anyway. Late in the Martian afternoon, they have a communication pass where they send us back pictures and other data telling us what they did for the day. Then the sun goes down and they go to sleep.

That's when I go to work. We take those pictures and other data and turn it into a 3-D model of the world around the rovers, like in a video game. And we put a software model of the rovers down in that world and start sending it commands. The software model understands the same commands that the real one does, so -- ignoring such things as the effects of the terrain, which can be tricky, especially on slopes or in soft soil -- it does more or less what the real one will do. We can interact with this software model in very nearly real time, so there's our joystick.

We also send a bunch of commands to detect and handle off-nominal situations, which is where the real art of the job is. What tilts should the rover expect today? What pitch and roll? How far do we expect the suspension to articulate? And what should we do if something happens that we don't expect?

When we get the simulated rover doing what we want the real one to do, we review all of the commands that made it do it -- twice. And if we still can't find anything wrong with them, we send them up to the real rover.

Then we go home and go to sleep, and soon the sun comes up in the Martian sky. We send our rover her commands for the day, and over the course of the next several hours she carries them out -- and if it's a good day, she does what we wanted -- and then the sun starts to go down in the Martian sky, and the cycle repeats.

We call this, incidentally, the daily tactical cycle of operations. There are other processes going on, too -- strategic ones, which aren't tied directly to the Martian day cycle in the same way -- but tactical is where the fun is.

A Side Note About Mars Time

We used to literally work the Martian night shift -- we lived on Mars time for the first three months of the mission. Because the Martian day is 40 minutes longer than the Earth day, this screwed your schedule up good. You come into work at 8:00 one day, then at 8:40 the next day, then at 9:20, then 10:00, and pretty soon you're coming in to work at 2 or 3 in the morning. This was awesome, but I was nearly the only one who thought so.

But I thought so, and with several good reasons. First, it emphasized the uniqueness, the specialness of what we were doing. Who else lives and works on the schedule of another planet? Second, I got 40 extra minutes of sleep every night. (Well, OK, really, I worked 40 extra minutes every day and actually got eight hours of sleep anyway. It was still grand.) And third, it turns out that morning people don't adapt well to these changes in their schedule, but night people like me thrive on it, so I felt great and all those people who had made me go to 7:30 AM meetings for years felt awful, and it was fabulous.

But we don't do that any more. When the eight- to ten-hour planning day fits entirely inside a Martian night, we plan a day for the rovers every day (three days on weekends). But when it doesn't -- when the data would be coming back from Mars at, say, 3 in the afternoon, so there's not time left to plan a whole day for the rovers -- we go to a schedule where we plan two days for the rovers every other day until the time wraps around again. It works out to about two weeks of every-day planning followed by two weeks of every-other-day planning.

By the way, because Spirit and Opportunity are on almost exactly opposite sides of Mars, their schedules are offset from one another: when we're planning every day for one rover, we're planning every other day for the other rover.

Further Reading