Robotic Exploration of the Coastal Ocean
Jeg var på et interessant foredrag på Gløshaugen i dag. Tittelen på foredraget var «Robotic Exploration of the Coastal Ocean», men det viste seg å være vel så mye kunstig intelligens og romfart som roboter og hav. Han som holdt foredraget, Kanna Rajan, jobbet tidligere for NASA, og var med på å utvikle Remote Agent. Remote Agent var angivelig det første kunstig intelligente systemet som styrte et romfartøy da det styrte
Deep Space 1 i to dager (interesserte lesere vil kanskje sjekke ut publikasjonen med den frekke tittelen
«Remote Agent: to boldly go where no AI system has gone before»). Rajan kunne forøvrig også fortelle at dette var første og (hittil) siste gang Lisp fløy i verdensrommet, noe man kan lese mer om
i denne festlige ranten.
Han gikk etterhvert over til å snakke om det som egentlig var temaet for foredraget, nemlig autonome undervannsfartøyer (såkalte
AUVer) som gjør målinger av forskjellige parametere i havet. Han gikk også mer i detalj, og snakket entusiastisk om abstraksjonsnivåer og løs kobling og separate ansvarsområder og gode greier, og det hele var egentlig ganske interessant.
Eksempelet han brukte gikk omtrent slik: Sett at du ønsker å observere temperatur i havet i mange punkter i et plan. Da har du en overordnet enhet, som har dette som mål. Så forteller denne enheten hva den kunne tenke seg å gjøre til neste enhet, som splitter opp denne oppgaven i mindre oppgaver, som å kjøre til der man skal begynne å observere, kjøre rundt og observere, og til slutt returnere til overflaten for å sende data. Denne enheten lager så en plan fra disse oppgavene, og sender dem en etter en ned til neste enhet, som splitter opp i enda mindre oppgaver, som sving hit, sving dit, registrer måling og denslags.
Ved å splitte opp styringssystemet sitt i et passende antall slike lag kan man bygge et system som både kan planlegge fremtiden, og som kan håndtere avvik raskt og smidig. Hver gang et avvik oppstår sjekker man først om den nederste enheten kan fikse problemet, eller om det må spørre laget over, og i mange tilfeller holder det å gjøre endringer i en av de lavere planene, ved å bytte ut noen av de små deloppgavene. Slik slipper man å forkaste hele planen hver gang man støter på en liten feil, og ikke minst, man slipper å avbryte hele oppdraget og gå til overflaten for å ringe hjem etter instruksjoner, som visstnok har vært den vanlige måten å håndtere uforutsette problemer.
Dette er ikke akkurat mitt felt, men jeg synes det hørtes ut som et bra system, og jeg tipper det ligger noe visdom her som er anvendelig på andre områder også. Jeg må dessuten legge til at det gir en viss gravitas når man snakker om den gangen man fløy koden sin i rommet, og som om ikke det var nok var han også med å bygge styringssystemene til
Spirit og
Opportunity basert på de samme konseptene. Credz, det er alt jeg har å si.
Helt til slutt, han inkluderte et sitat fra General Eisenhower som jeg også tror jeg skal legge til på listen over livsvisdom:
In preparing for battle I have always found that plans are useless, but planning is indispensable.
Grunnen til at han nevnte dette var at hele foredraget handlet om viktigheten av å innse at en gitt plan vil så godt som alltid måtte endres, men ved god planlegging gjør du deg i stand til å endre planen så lite som mulig, på en rask og fleksibel måte. Vise ord.
Comments