SimBuss Simuleringsmiljø for sanntidssystemer på buss
Oppdragsgiver - FARA ASA Ledende leverandør i Norden av IT-løsninger til kollektivtransportsektoren. Leverer sanntidsløsninger for effektivisering av kollektivtransportsektoren innen områdene: Elektronisk billettering Infotainmentsystemer Sanntidsinformasjonssystemer, inkludert flåtestyring, trafikkstyring og passasjerinformasjon 80 ansatte i 4 land; Norge, Sverige, Danmark, Finnland
Oppgavebeskrivelse Å utvikle et simuleringssystem som: Henter holdeplass-koordinater fra FARAs billetteringssystem. Simulerer kjøringen av disse med en Lego-robot. Sporer robotens fysiske posisjon ved hjelp av et infrarødt kamera, og sender disse tilbake til billettsystemet som GPS-data.
Hvorfor vi valgte oppgaven Interessant og spennende. Flere fysiske deler og veldig visuelt resultat. Mulighet til å jobbe i Java. Oppgaven var utsendt av en anerkjent IT-bedrift. Muligheter for å arbeide med prosjektet hos bedriften.
Hvordan oppgaven ble løst Utviklingsprosess: Iterativ og Inkrementell. Ukentlige statusmøter med FARA. Møte med veileder annenhver uke. Overordnet prosjektplan. «Product backlog»; En liste over prosjektets user stories og andre gjøremål. Med beskrivelse og tidsestimater. «Burn down chart» knyttet til «product backlog» som viser ønsket og faktisk fremdrift. Analyse Krav Prototyping Design Implementasjon
Hvordan oppgaven ble løst Kompatibilitet og rammebetingelsene i oppgaven ga restriksjoner i valg av teknologier. Mange ukjente teknologier ga mye prototyping i starten av prosjektperioden. Teknologier: Bluetooth (WIDCOMM, BlueCove) Wii Remote (WiiRemoteJ) Lego Mindstorms (LeJOS) XML Parsing (dom4j)
Hvordan oppgaven ble løst Programmeringsspråk Java Utviklingsverktøy Eclipse IDE Subversion Umlet MS Visio
Resultat - Oversikt Ticket Node Busscomputer PBS Posisjonsbestemmende System Infrarødt kamera Wii Remote Rutekoordinater Posisjonsdata Posisjonsdata Kjørekommandoer Tar inn rutekoordinater fra Ticket Node (Eksternt system). PBS nedskalerer rute og kjører den med en robotbil, mens den sporer dens posisjon ved hjelp av 1-2 Infrarøde kamera. Posisjonsdata oppskaleres og sendes kontinuerlig tilbake til Ticket Node mens kjøringen pågår. Robotbil Lego Mindstorms
Resultat - Kommunikasjon Ticket Node Busscomputer Socket PBS Posisjonsbestemmende System Bluetooth Infrarødt kamera Wii Remote RS-232 Bluetooth Rutekoordinater sendes over socket. TN har rollen som klient og PBS som tjener. PBS kommuniserer med IR-kameraene over Bluetooth. PBS kommunieserer med NXT-enheten (Robotbilen) over Bluetooth. Posisjonsdata sendes over RS-232 (serieport) tilbake til Ticket Node. Robotbil Lego Mindstorms
Resultat Konstruksjon Lagd i to deler som kan deles, slik at man får to små simuleringsmiljø, i stedet for et stort. Hver del består av: Operasjonsområde (~1x1.5m) med 4 IR-dioder for kalibrering (en i hvert hjørne). Stativ (~2.3m høyt) med feste til en Wii Remote. Den fysiske konstruksjonen påvirket design på grunn av begrensninger i presisjon, stabilitet og høyde Kalibrering tar hensyn til kameravinkel og skjevhet mellom kalibreringsdiodene. Behov for 2 IR-kamera for å dekke ønsket størrelse på operasjonsområde.
Resultat - Koordinatene Mottar UTM-koordinater som konverteres og skaleres ned til virtuelle koordinater. Under kjøringen innhenter PBS koordinater fra IR-kamera(ene), disse konverteres til virtuelle koordinater for å ta hensyn til kameravinkel og kollaborasjon mellom 2 IR-kamera. De virtuelle koordinatene oppskaleres og konverteres til WGS 84- koordinater før tilbakesending til Ticket Node. UTM [Nord, Øst, Sone] Virtuelle [x, y] WGS 84 [Breddegrad, Lengdegrad] IR-kamera [x, y]
Resultat - Systemoversikt Systemets moduler og kommunikasjonen mellom dem, inndelt etter fysisk tilhørighet.
Resultat Kalibrering Bruker infrarøde dioder plassert i hvert hjørne av det fysiske operasjonsplanet for å finne det virtuelle operasjonsområdet. Tar hensyn til kameraets vinkel relativt til operasjonsplanet (rotasjon langs z-aksen). Tar hensyn til skjevhet mellom kalibreringsdiodene. Kan doble størrelsen på operasjonsområdet ved å bruke to IR-kamera. Fysisk operasjonsplan IR-diode IR-kamera Virtuelt operasjonsområde
Resultat Simuleringen PBS kalkulerer robotens ønskede stoppunkter (holdeplasser), i virtuelle koordinater, ut fra rutedata tilsendt fra Ticket Node. En infrarød diode, plassert på roboten, plukkes opp av IR-kameraet i dets eget koordinatsystem. Denne data-en innhentes av PBS fortløpende under kjøringen. Basert på kalibreringen og innhentet posisjonsdata fra IR-kameraet/ene, kalkulerer PBS posisjonen roboten har i det virtuelle koordinatsystemet. Under kjøringen bruker PBS, på bakgrunn av robotens virtuelle posisjonsdata, PID-regulering for å kalkulerer robotens kjørebane. Roboten forholder seg kun til kjørekommandoer den mottar fra PBS. Disse sendes fortløpende under simuleringen.
Videre arbeid I utgangspunktet trengs det ikke videre arbeid. Det vil være opp til oppdragsgiver om de ønsker å utvide systemet. Utseende av simuleringsmiljøet kan forbedres en del. Prosjektgruppen fikk litt lite tid til å finpusse estetikk. Takksigelser Morten Fagerbæk og Argon for hjelp med det elektriske. Hans Jakob Rivertz for hjelp med kalibreringsalgoritmen. Tore Berg Hansen for veiledning. FARA ASA for samarbeid og arbeidsplass.