söndag 19 augusti 2012

Att köra radiostyrd bil på Mars...


…är inte helt trivialt. Läste i Wired om svårigheter att uppdatera mjukvara på långa avstånd. Att hålla mobilen eller datorn buggfri, funktionell och allmänt fräsch ifråga om mjukvara kräver ju som de flesta vet att man uppdaterar regelbundet. En köpt produkt är nuförtiden oftast inte lika med en färdig produkt. Den kräver regelbundet underhåll eftersom en stor del av funktionen ligger i mjukvara som oftast inte är helt färdigutvecklad, buggfri eller genomtestad. Inte bara datorer och mobiler innehåller mjukvara utan även…just det… bilar som kör på mars.

Hur uppdaterar man marsbilens mjukvara och håller den buggfri efter att den lyckosamt mjuklandat på Mars yta? Det är drygt 250 miljoner km dit (just nu alltså, avståndet varierar mellan ca 50 och 400 miljoner km beroende på planeternas lägen i solsystemet), bandbredden är låg och det tar ca 30 minuter för ett överföringsprotokoll att "handskaka" en dataöverföring. Lite lagom tuff uppgift alltså jämfört med att uppdatera en dator via en snabb ADSL-länk.

Mjukvaran som ska uppdateras sitter som de flesta nog vet i Mars-rovern "Curiosity" och gänget som fixar det hela är NASAs Mars Science Laboratory.

Och nu är det faktiskt inte bara buggfixar som ska göras utan man behövde ladda ner (upp?) helt ny mjukvara till rovern. Hårdvaran är nämligen klen med ganska lite minne och det fanns bara plats för flyg- och landningsmjukvara när man stack från Jorden. Nu när den fasen är över så behövs inte den mjukvaran mer och man kan ersätta den med kör-mjukvara som ger rovern liv och mening på Mars.

Det var uppenbarligen nervöst för mjukvaruteamet. Man ville självklart inte att systemet skulle hänga sig. Svårt med "ctrl+alt+delete" i det här sammanhanget. NASA-gänget gick extremt metodiskt tillväga och tog 4 dagar på sig att uppdatera.

Curiosity plåtar på dagtid och går ner i nån slags sleep-mode på natten då även ett litet kärnkraftverk laddar batterierna. På morgonen väcks datorn och bootas om. Överföringarna måste alltså göras på dagtid (Marsdagen) när roverns dator och backupdator är igång.

Process: Dag 1 överförs testversion för huvuddatorn.
Dag 2 överförs slutversion för huvuddatorn.
Dag 3 överförs testversion för backupdatorn.
Dag 4 överförs slutversion för backupdatorndatorn.

Lugnt och fint.

Varje överföring tog som sagt ca en kvart och ytterligare en kvart gick åt för att få svar och kvittens. Väl framme i rovern så installerades mjukvaran på ett par minuter.

Allt gick problemfritt även om det tog tid!!!