> But the second unit had failed in the identical manner a few milliseconds before. And why not? It was running the same software.
That got me to thinking, could 3 different teams have separately built and programmed 3 different units (separate software and hardware), and then had a voting type system so that, if say 2 units are saying "keep going straight" and the third is saying "turn left", then it knows to keep going straight? Is something like this ever done in systems that require extremely high reliability?