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!!!

5 kommentarer:

  1. Mig veterligt handlade det inte om mycket bug-fixar, utan det du nämner om att rovern behövde ny mjukvara för att kunna göra sitt jobb på Mars, och de lär göra fler sådana uppgraderingar framöver beroende på vad den ska göra.

    Som du säkert vet, det farligaste som kan hända är om bootloadern (som då också behöver innehålla kommunikationsmjukvara osv) är buggig eller man råkar fimpa den när man uppgraderar mjukvaran i övrigt. Då har man en rätt så oanvändbar rover, då vidare uppgraderingar inte går att göra. Troligtvis har de skiljt dessa åt .

    T.o.m. ett enkelt Aduino-kort har en bootloader som kräver rätt mycket misshandel för att den ska skrivas över.

    Sen är ju radiostyrd lite av en misnomer, då Curiosity huvudsakligen är autonom.

    De har förhoppningsvis lagt upp kommunikationsprotokollet så att de kan skicka flera paket med data (och kanske all data) innan det krävs kvittens (a la ATM osv), och gör data-integritets-tester osv i rovern, men man behöver inte tro de använder super-avancerad eller -modern teknik.

    (Lustigt att man inte kan autentisera inlägg via Facebook)

    SvaraRadera
  2. Och jag som mest funderar på hur de ska undvika rödljuskörningar...

    SvaraRadera
  3. Svårt när det är rött överallt.

    SvaraRadera
  4. Hi,

    This is such a nice blog and It is really helpful for me, But i am looking for the Radiostyrd bilar related post,So please suggest and share if you have.

    Thanks

    SvaraRadera