Most recent comments
Liveblogg nyttårsaften 2017
Tor, 11 months, 2 weeks
Jogging og blogging
Are, 1 year, 11 months
Liveblogg nyttårsaften 2016
Are, 1 year, 11 months
Reading in dark times
Are, 2 years, 1 month
Moldejazz 2016
Camilla, 2 years, 4 months
Dørskilt
Karoline, 2 years, 5 months
Halifax
Tor, 2 years, 5 months
Sony Smartwatch 3 review
Tor, 2 years, 6 months
Numerikk, takk
Tor, 2 years, 6 months
Topp tur
Camilla, 2 years, 8 months
50 book challenge
Camilla, 11 months, 2 weeks
Controls
Register

Curiosity

Førstkommende mandag, klokken 05.31 UTC (07.31 norsk tid) er det tid for å benke seg foran internett. Eller helst litt før. Da lander nemlig Curiosity på Mars. Eller den er i allefall planlagt å lande da. Sist NASA sendte radiobiler til Mars var i 2004, da Spirit og Opportunity landet på hver sin side av Mars. De var ment å vare i 90 dager, men endte opp med å holde ut mye lengre. Spirit takket for seg i 2010, mens Opportunity fortsatt holder på, etter over 3000 dager.

Spirit og Opportunity var forholdsvis små, på 185 kg hver, og ble landet ved hjelp av en kombinasjon av fallskjerm, raketter og airbags. De ble altså bremset opp en del av fallskjerm og raketter, og deretter sluppet de siste metrene, omgitt av ballonger som dempet fallet. Ganske imponerende, men ingenting i forhold til Petter Smart-systemet Sky Crane, som skal plassere Curiosity trygt på bakken på mandag.

Problemet med å lande ting på Mars er at den har en ganske tynn atmosfære. Passe tykk atmosfære, som på Jorden, så kunne man landet ting i fallskjerm. Ingen atmosfære, som på Månen, så kunne man landet ting med raketter. Atmosfæren til Mars, derimot, er så tynn at en fallskjerm ikke vil bremse nok. Samtidig er atmosfæren tykk nok til at det vil oppstå turbulens som vil gjøre det umulig å styre om man prøver å bruke en rakett til å bremse. Jeg er ikke noen ekspert på disse greiene, men for den interesserte leser kan jeg anbefale denne artikkelen i Universe Today som diskuterer utfordringene som ligger i å lande en tung ting på Mars. For det er nettopp tyngden som er problemet her. Spirit og Opportunity var såpass lette at man kunne nøye seg med å bremse dem nesten helt opp, og så slippe dem det siste stykket, men Curiosity veier nesten et tonn og er på størrelse med en liten bil, så her trengs det sterkere lut.

Løsningen er igjen å bruke en kombinasjon av fallskjerm og raketter til man er nesten nede. Deretter kommer den magiske biten, som har gitt opphav til navnet Sky Crane. Rakettene er festet til en plattform som er montert over selve bilen. Når man er nesten nede på bakken er så planen at bilen skal vinsjes ned til overflaten, mens plattformen (himmelkranen) blir hengede mer eller mindre rolig. Når hjulene er på bakken skal man så kutte tauet, og plattformen med rakettene flyr bort og krasjer forhåpentligvis et annet sted. Dette systemet har aldri vært testet i praksis, og siden radiosignaler bruker flere minutter på turen mellom Mars og Jorden må det funke på autopilot.

Jeg antar at NASA har tenkt over hva de driver med, så jeg vil jo tro at det går greit, men fullstendig overbevist er jeg ikke, så jeg synes det blir litt spennende å se hvordan det går. Samtidig er det jo kult å se nye bilder fra Mars, selv om vi naturligvis har fått en strøm av gode bilder derfra de siste årene, for ikke å snakke om at man kan sjekke ut nesten hele planeten på Google Mars. Uansett, jeg benker meg foran jpl.nasa.gov/msl klokken sju mandag morgen, og jeg foreslår at du gjør det samme.
Camilla, Are, Jørgen likes this

Comments

Camilla,  03.08.12 10:09

Hvis du lager kaffe.
Karoline likes this
Anders G.,  03.08.12 10:55

Hele opplegget er jo temmelig vilt, håper virkelig de lykkes! Forøvrig så er NASA-tv helt knall, artig å ha i bakgrunnen når det skjer noe rundt ISS f.eks.!

Are,  03.08.12 11:16

Utrolig kult :) Skulle gjerne spist lunsj med de som har programmert og testet den autopiloten :D
Tor likes this
Tor,  03.08.12 12:15

Jeg kom over noe ganske interessant lesing om seriøs programmering nylig. Jeg sakser inn, fra en kommentar til "Petition to retire FORTRAN". Den er litt lang, men vel verdt å lese.
The semantics of pointers in Fortran are much better, from the point of view of an optimizer writer, than the semantics of C pointers, optimizing which has been shown to be NP hard. So the fact that there's a feature of Fortran that is subtly different from C pointers and has even better semantics for optimization is an elephant. Every organization that has a style guide for Fortran programming, i.e., everybody who writes real programs, recommends to use "implicit none". Many processors have an option to assume it.

It would be a greater service to retire C++. Leslie Hatton (see http://www.cs.kent.ac.uk/people/staff/lh8/pubs.html, and do a Google search for more) has actually done some quantitive studies, and finds that on average a C++ program has 2 to 3 times the statically detectable defect density as an equivalent program in C, FORTRAN 77 or Ada, and the cost-to-repair per defect is also 2 to 3 times higher, resulting in an ownership cost for C++ programs that is roughly six times greater.

Here's an example. After teaching C++ numerous times, I was discussing a simple laboratory exercise that I gave the students: Construct a package to do complex arithmetic. I remarked that they repeatedly made the same mistake, even though I warned them of it explicitly several times: They returned a pointer or reference to a local struct or length-2 array. Of course, as soon as the function returned -- BANG -- the local variable was gone. My colleague got very quiet, and called me the next day to tell me that he had had a C program for about twelve years that occasionally got a bizarrely wrong answer. It turned out that one function was returning a pointer to a local variable. He didn't know precisely how many hundreds of hours he'd spent searching for that problem. This guy is no naive beginner. He wrote the powered-descent code for the Apollo Lunar Lander, tons of Shuttle code in Hal S, and was called out of retirement to write the powered-descent code for Mars Exploration Rover after the Mars Polar Lander crashed because its powered-descent code failed.

This problem isn't unique to complex arithmetic. Even sophisticated C and C++ programmers occasionally make this mistake in functions intended to return a composite result. Even if they do remember to malloc the result, the caller might forget to free it, resulting in a memory leak. Fortran functions can return composite results without resorting to pointers. There is therefore no temptation to return a pointer to a local variable, and no chance for a memory leak.

Here's another example. In early stages of the Cassini project (a spacecraft now on its way to Saturn), JPL was having trouble finding a "rad hard" processor. One day, the armed forces and CIA decided there was no really good reason to keep their rad hard processors under wraps, and suddenly we found dozens of really good ones. We looked at the specs and said "That one is perfect." So we froze the processor spec and started designing around it. When it came time to start the flight software, the developers found that the only available programming environment was Ada (why were they surprised?). They were hopping mad, because they had hoped to write the flight software in C++. Then, they noticed the COMPILER was finding bugs that they might NEVER have found if they had used C++. As with most religions, the most recently converted are the most zealous advocates. The same is true of these guys.

Here's another example. The Mars Pathfinder flight software *was* written in C and C++. The authors knew of a priority inversion involving interrupts from the modem, but chose to ignore it. Well, on Mars, the poor little machine rebooted hundreds of times every day because the priority inversion kept the processor from getting around to updating the heartbeat clock -- which was the interrupt frozen out by the inversion. Of course, if they hadn't sent any data back, there wouldn't have been any modem interrupts to cause the inversion w.r.t. the heartbeat clock, but.... Ignoring the priority inversion would have been impossible in Ada.

Here's another example. JPL management decided that maintenance costs for the six-million-line spacecraft navigation suite would be reduced if it were re-written in C++. In 1996, the estimated cost of the project was 120 work years. Since there were at the time seven work years per year being invested in maintaining the Fortran suite, the project would have broken even in 2023 if maintenance costs were reduced to zero. Now, after investing -- guess how many (hint: 120) -- work years, the estimated cost to complete the project is -- TA DA! -- 126 work years. One guy worked on the interface for the integrator for the initial-value problem for ordinary differential equations -- the bread and butter of celestial navigation -- for 18 months, and didn't even finish designing the interface! The plan now is to continue to use the Fortran 77 version, from which a C version is derived automagically. Don't say "Just use numerical recipes!" There is no other ODE integrator in the world, in any language, that is up to the standard of performance, features and accuracy necessary for this job.

Stephen Zeigler (see http://sunnyday.mit.edu/16.355/cada_art.html) has measured ownership costs for equivalent C and Ada programs, and found his C programs to cost twice as much as Ada programs. Fortran 95 programs are more reliable and less expensive to own than FORTRAN 77 programs, so the disparity between C++ and Fortran 95 programs is probably greater than the disparity between C++ and FORTRAN 77 programs.
Are, Jørgen, Ole Petter likes this

Are,  03.08.12 13:21

Veldig interessant! Setter pris på at du deler sånt stoff, Tor :)

Jørgen,  03.08.12 22:11

Eg har gått og gledd meg i fleire veker no. Det her blir knall.
Tor,  03.08.12 23:22

Jeg prøvde å finne et slikt tvilsomt veddefirma med hjemmeside på en server på Cayman Islands, og se om det var mulig å vedde på at den ville krasje. I såfall ville det jo være kult å se på uansett om det går bra eller ikke.

Forøvrig, Are, føler du for å begynne med fortran?

Are,  05.08.12 23:33

Foreløpig, Tor, har jeg nok med Visual Basic, som har en hel del spennende trekk ;)

Er det noen andre som skal se på i morgen? Jeg har tenkt å ankomme jobb 07:25, fyre opp strømmen og henge på Google chat, hvis noen vil dele følelsesutbrudd. Evt kan det jo skje her i kommentarfeltet.

Heh

Tor,  05.08.12 23:38

Visual Basic, altså. Jeg skulle til å skrive noe frekt om utdaterte språk, men jeg tror kanskje jeg lar være.
Are likes this

Are,  06.08.12 07:36

God stemning på NASA TV ;)
Tor likes this
Tor,  06.08.12 07:55

Ganske intenst.

Så, da er det bare å begynne å glede seg til New Horizons i 2015.
Camilla, Are likes this

Karoline,  06.08.12 09:33

Kjører roveren av seg selv eller blir den styrt fra planet jorden?
Tor,  06.08.12 09:37

Den har en autopilot som kan kjøre over små hindringer og slikt. Det er nødvendig siden det tar radiosignalene flere minutter hver vei, så man kan ikke styre den direkte. Samtidig er det folk som følger med på bildene den sender tilbake og forteller den hvor den skal kjøre. Den har en maksfart på rundt 90 meter i timen, så det går ikke så veldig fort.
Karoline likes this
Are,  06.08.12 10:15

Yeah :D
Camilla, Karoline likes this

Are,  06.08.12 12:19

Og såklart må denne hentes frem igjen :)
Karoline likes this
Category
Physics
Tags
NASA
Curiosity
Mars
Views
2867
Last edited by
Tor, 03.08.12 00:46