Samarbejdende LEGO-Robotter Af gruppe 510, Elektronik & Elektroteknik Ved Aalborg Universitet
Gruppe 5102 Program Introduktion & Udviklingsstrategi v. Jakob Kortlægning & Søgning v. Rasmus Design af software –Client v. Rasmus –Robot v. Daniel –Server v. Martin Test af software v. Palle Perspektivering & Demonstration v. Claus
Gruppe 5103 Semestrets tema Med udgangspunkt i en konkret fysisk problemstilling beskrives systemet, hvorefter der foretages en analyse og modeldannelse. Grænseflader, samt hardware og software i det samlede system specificeres. Systemet designes og konstrueres. Slutteligt testes og verificeres systemet i henhold til problemformuleringen.
Gruppe 5104 Projektet Projektforslag –Afsøgning af område –Koordinering vha. PC –Det endelige system Angrebsvinkel –Dataopsamling –Repræsentation af ukendt område –Betjening af system
Gruppe 5105 Prioritering i udviklingsarbejdet 1) Kørende system 2) Optimeret søgning 3) Skalerbarhed 4) Flerbrugersystem 5) Sikkerhed
Gruppe 5106 Udviklingsstrategi
Gruppe 5107 Udviklingsforløb
Gruppe 5108 Forudsætninger Programmeringssprog 2 robotter konstrueres
Kortlægning & Søgning v. Rasmus
Gruppe Kortlægning Knudepunkt (vertex) Forbindelse (edge)
Gruppe Afsøgningsstrategi Robot ankommer til et knudepunkt
Gruppe Afsøgningsstrategi Mulige forbindelser fra knudepunktet identificeres
Gruppe Afsøgningsstrategi Ruten planlægges ved at kommunikere med serveren
Design af software Client
Gruppe Client Opbygning af grafisk brugerflade (GUI) Kommunikation med Server –Sender kommandoer –Henter kort
Gruppe Client/Server kommunikation Server protokol Com. Client Com. netværk protokol
Gruppe Nuværende implementation Client Server Com.
Design af software Robot v. Daniel
Gruppe Procedure Aftastning af afstandssensorer Check for kollision Check for knudepunkt Motorkontrol Kommunikation med server –Status og indsamlet data
Gruppe Skedulering med 3 processer: 1.Kommunikation 2.Aftastning, check for kollision og knudepkt. 3.Motorkontrol
Gruppe Begrænsninger Få indgange på RCX’en Multiplexing Timing Multiplexing > 100 ms Forsinkelse i sensorer ~ 45 ms
Gruppe Skedulering med 2 processer 1.Kommunikation 2.Aftastning, check for kollision og knudepkt + Motorkontrol
Gruppe IR-kommunikation IR-protokol –Half duplex –Kapacitet på 240 bytes/s Opdeling –Server til RCX Broadcast af besked, kodeopdelt –RCX til Server RCX datapakke
Design af software Server v. Martin
Gruppe Server Klasseopdeling udfra use-cases Klassediagram Udvidelse af ServerMap Gennemgang af ServerRobot
Gruppe Funktionelle krav ServerComm Kommunikation til Client CommPort Kommunikation til Robot Auth Autorisere bruger ServerRobot Repræsentere robotten ServerRobot Repræsentere robotten
Gruppe Klassediagram ServerHandlerVisualMap AuthCommPortServerMapServerCommServerRobot
Gruppe Udvidelse af ServerMap ServerMap matematisk model NavMapMapNode Gemme kortdata Beslutte hvor der skal afsøges Generere VisualMap Koordinere indsatsen
Gruppe Seaching Tilføj kort-data Søgeinstruktioner ServerRobot Driving Opdatere position Rute planlægges Evacuating Opdatere position Rute planlægges Handling i ServerMap
Test af software v. Palle
Gruppe V-model
Gruppe Testmetoder Løbende testet under udvikling Anvendt til test af klasser og moduler Udskrifter til skærmen Ikke dokumenteret Specifikt designede tests Anvendt til test af klasser og nodes Samspil mellem klasser/nodes Dokumenteret
Gruppe Klasser på Server -ServerHandler -ServerComm -Auth -ServerMap -SearchMap -NavMap -MapNode -VisualMap -MapObject -ServerRobot -RobotData -CommPort -FilterBuffer Klasser på Client -Gui -ViewPanel -History -ToolPanel -Menu -ClientControl -ClientComm -SysIO Moduler på Robot -CommServer -CommandList -Navigate -CheckVertex -Datalog -ControlMotors -CollisionControl -ReadSensors -ReadTachos
Gruppe Klassetest af ServerRobot Klasse med flere tilstande –Vigtigt at sikre rigtig transition mellem tilstande –Test metode lavet Sætter forskellige betingelser op i tilstandene Registrerer hvilke tilstande der er gennemløbet – 4 hyppigst forekommende tilfælde udvalgt Viste korrekt adfærd i de 4 tilfælde
Gruppe Klasser på Client -Gui -ViewPanel -History -ToolPanel -Menu -ClientControl -ClientComm -SysIO Moduler på Robot -CommServer -CommandList -Navigate -CheckVertex -Datalog -ControlMotors -CollisionControl -ReadSensors -ReadTachos Klasser på Server -ServerHandler -ServerComm -Auth -ServerMap -SearchMap -NavMap -MapNode -VisualMap -MapObject -ServerRobot -RobotData -CommPort -FilterBuffer
Gruppe Klassetest af ServerMap Test af NavMap og MapNode Korrekt oprettelse af knudepunkts-struktur på serveren Test af SearchMap Serveren foretager de rigtige valg i forhold til ønsket
Gruppe Klasser på Client -Gui -ViewPanel -History -ToolPanel -Menu -ClientControl -ClientComm -SysIO Moduler på Robot -CommServer -CommandList -Navigate -CheckVertex -Datalog -ControlMotors -CollisionControl -ReadSensors -ReadTachos Klasser på Server -ServerHandler -ServerComm -Auth -ServerMap -SearchMap -NavMap -MapNode -VisualMap -MapObject -ServerRobot -RobotData -CommPort -FilterBuffer
Gruppe Test af Robot Node Moduler testet løbende Scenarier afprøvet løbende ved kørsel med robot Robot –Succes kriterier for robot Korrekt kommunikation med serveren Korrekt udførsel af given kommando Korrekt detektering af knudepunktstyper
Gruppe Test af Robot Node Test udført –Test 1 Korrekt kommunikation Korrekt udførelse af given kommando –Test 2 Korrekt detektion af knudepunktstype –Succes kriterier opfyldt for robot
Gruppe Moduler på Robot -CommServer -CommandList -Navigate -CheckVertex -Datalog -ControlMotors -CollisionControl -ReadSensors -ReadTachos Klasser på Client -Gui -ViewPanel -History -ToolPanel -Menu -ClientControl -ClientComm -SysIO Klasser på Server -ServerHandler -ServerComm -Auth -ServerMap -SearchMap -NavMap -MapNode -VisualMap -MapObject -ServerRobot -RobotData -CommPort -FilterBuffer
Gruppe Test af Client Node Test udført –Korrekt visning af robotter -Genereret position som parameter -Korrekt tegning af labyrint -Genereret struktur som parameter -Korrekt handling udført ved knaptryk
Gruppe Moduler på Robot -CommServer -CommandList -Navigate -CheckVertex -Datalog -ControlMotors -CollisionControl -ReadSensors -ReadTachos Klasser på Client -Gui -ViewPanel -History -ToolPanel -Menu -ClientControl -ClientComm -SysIO Klasser på Server -ServerHandler -ServerComm -Auth -ServerMap -SearchMap -NavMap -MapNode -VisualMap -MapObject -ServerRobot -RobotData -CommPort -FilterBuffer
Perspektivering & Demonstration v. Claus
Gruppe Resultat af Accepttest Produkt perspektiver Videreudvikling Demonstration
Gruppe Resultat af Accepttest Testet succesfuldt Start/stop søgning Visualisering af kort Valg af zoom niveau samt detaljer Kørsel i labyrint uden kollision Ikke implementeret Flerbruger system Evakuering af robotter Ændring af søgeområdet Mulighed for at printe og gemme kort Multiple robotter
Gruppe Produkt perspektiv
Gruppe Udvikling af Lego robot Forbedring af Positionering –Definition af område for knudepunkt –Absolut positionering, f.eks. GPS Implementering af kontinuer kørsel –Realtids overvejelser ”Er den nuværende hardware tilstrækkelig?” –Forøgelse af hastighed
Gruppe Udvikling af Server/Client software Implementering og afprøvning af forbedret søgealgoritme –Multiple robotter –Mulighed for at ændre søgeområdet løbende –Evakuering af robotter/kørsel mellem kendte punkter Oprettelse af flerbruger system, med to niveauer af autorisation Indførelse af netværksforbindelse mellem client og server applikation
Gruppe Demonstration