Universität Bremen Architektur des Thomas Röfer Architektur Module Selbstlokalisation Verhaltenssteuerung
Universität Bremen
Architektur des
Thomas Röfer
ArchitekturModule
Selbstlokalisation
Verhaltenssteuerung
Kogn itive Robotik II – Architektur des GermanTeam 2
Universität Bremen
Rückblick „Sicherheit in der Robotik“Zunahme der Sicherheitsanforderung
Fahrbefehl
per Joystick
Sens
or-S
can
der U
mge
bung
Sicherheits-modul
Sicheres
Kommando
Bedrohungsanalyse
Safety module failure Collis ion
Communicationfailure
System safety v iolated
ActiveCollis ion
Pass iveCollis ion
Fehlerbaumanalyse Mode Confusion
handsetpicked uphandset
picked up
Phone in hand,no line
Phone in hand,ringing
incoming call
receiver button
Phone in hand,line established
receiver button
Phone in cradle,no line
Phone in cradle,ringing
incoming call
handsethung up handset
picked up
Phone in hand,no line
Phone in hand,ringing
incoming call
receiver button
Phone in hand,line established
receiver button
Phone in cradle,no line
Phone in cradle,ringing
incoming call
handsethung up handset
picked up handset picked uphandset picked up
Model Checking
Kogn itive Robotik II – Architektur des GermanTeam 3
Universität Bremen
Architekturprinzipien
� Betriebssysteme
� Aperios auf den Robotern
� Microsoft Windows auf dem PC
� Entwick lung auf dem PC
� Microsoft Visual C++ als Umgebung und Windows-Compiler
� Greenhill C/C++ als Cross-Compiler für die Roboter
� Verteilt durch CVS
� Projekte
� GT2001 für die Robotern (mit Greenhill C/C++)
� DogControl für den PC (mit Microsoft C/C++)
� Idee
� Änderbare Verteilung der Aufgaben zwischen PC und Roboter
� Kommunikation zwischen PC und Roboter
Kogn itive Robotik II – Architektur des GermanTeam 4
Universität Bremen
DogControl
� Zweck
� Debugging unter Windows
� Visualisierung
� Fernsteuerung der Roboter(über serielles Kabel)
� Eigenschaften
� Kann Teile des Roboter-Codes ausführen
� Kann Log-Dateien abspielen
� Bietet Schnittstellen zum Einbinden eigener Dialoge
� Nachteile
� Nicht alles kann sinnvoll auf dem PC gemacht werden (Übertragungsdauer)
� Konfiguration nicht speicherbar
Kogn itive Robotik II – Architektur des GermanTeam 5
Universität Bremen
Auch in DogControl
Module in GT2001
AperiosAperios
HSensorHSensor HMotionHMotionHArbiterHArbiter
SharedMemorySharedMemory
HIntegraHIntegra HControlHControl
HTermHTerm HLogFileHLogFile
Kogn itive Robotik II – Architektur des GermanTeam 9
Universität Bremen
SharedMemory (HArbiter)
� Makros
� LOCKABLE(type,var)
� INIT(var)
� LOCK(var)
� UNLOCK(var)
� Funktionen
� SetIdent(IdentStruct* theIdent);
� GetIdent(IdentStruct* theIdent);
� Weitere Aufgaben
� Laden von ColorTable2
� Laden von Config
� Laden von OdometryTable
� Setzen der Kameraparameter
Objekt 1InitSharedMemory()
Objekt 1InitSharedMemory()
Objekt 2InitSharedMemory()
Objekt 2InitSharedMemory()
HArbiterKill(void* msg)
HArbiterKill(void* msg)
addr = new SharedMemory::Data;
return addr;
addr = new SharedMemory::Data;
return addr;
HArbiterKill(void* msg)
HArbiterKill(void* msg)
return addr;return addr;
.
.
.
Kogn itive Robotik II – Architektur des GermanTeam 10
Universität Bremen
SharedMemory – Daten
� HTerm/HLogF ile
� DebugMessageQueueStruct(1x zu HTerm, 1x zu HLogFile)
� DebugKeysStruct
� HSensor
� CameraParameterStruct
�
� SensorDataBufferStruct
� Image88x72Struct
� Image176x144Struct
� HMotion
� MotionRequestStruct
�
� HeadMotionRequestStruct
�
� HeadTrackModeStruct
�
� LEDRequestStruct
�
� OdometryTableStruct
�
� OdometryVectorStruct
� HIntegra
� ColorTable2Struct �
� WorldModelStruct
� BlobCollectionStruct
(debugging)
� Sonstiges
� ConfigStruct
Kogn itive Robotik II – Architektur des GermanTeam 11
Universität Bremen
DebugKeys
Zweck
� Zur Laufzeit das Verhalten der Programme ändern
� Sowohl auf dem Roboter als auch in DogControl
Funktion
� theSharedMemory->IsDebugKey(key)
Eigenschaften
� aus, immer, n mal, jedes n-te mal, alle n ms
� Wird automatisch (im SharedMemory) verwaltet
DogControl parst DebugKeys.h!
Kogn itive Robotik II – Architektur des GermanTeam 12
Universität Bremen
HTerm / HLogFile
� HTerm kommuniziert mit PC
� HLogF ile schreibt in Logfile auf den Memorystick
� Kommunikation
Über stdin/stdout (ist mit seriellem Kabel verbunden)
Serialisierung: Jede Struktur enthält ToString und FromString
BinToString und BinFromString sorgen für Transportierbarkeit
� Umwandlung von \0, \t, \n, \x0b, \r, \0x1b
Format: <xxxx>Binärdaten\0
� Funktionen
theSharedMemory->PutMessageOnDebugMessageQueue(char*)
theSharedMemory->DropMessageFromDebugMessageQueue(char*)
� Makros
INFO(key,message
�
buf)
OUTPUT (key,message
�
buf)
REQUIRE(expression)
Kogn itive Robotik II – Architektur des GermanTeam 13
Universität Bremen
HSensor
� Eigenschaften
� HSensor wählt abhängig von DebugKey Bildgröße aus
ImageData88x72ImageData88x72
KEY_ProcessLargeImagesKEY_ProcessLargeImages
Image88x72Image88x72 Image176x144Image176x144
SharedMemorySharedMemory
CameraParameterCameraParameter
AddSensorDataToBufferSensorDataSensorData
Kogn itive Robotik II – Architektur des GermanTeam 14
Universität Bremen
HMotion
� Ansatz
� Beschreibung der Bewegungen in .mof-Dateien
� Dateien enthalten erforderliche Zustandsübergänge zwischen Bewegungen
� Aus .mof Dateien wird C++-Quelltext erzeugt
� Test auf Vollständigkeit der Transitionen
Kogn itive Robotik II – Architektur des GermanTeam 15
Universität Bremen
HIntegra – Bildverarbeitung
Image88x72Image88x72
ColorClassImage90x74ColorClassImage90x74
RLEImage88x72RLEImage88x72
BlobCollectionBlobCollection
Segmentation2
colorClass2RLE
Compute8ConnectedBoundaries
Kogn itive Robotik II – Architektur des GermanTeam 16
Universität Bremen
HIntegra – Run-Length-Encoding
Kogn itive Robotik II – Architektur des GermanTeam 17
Universität Bremen
HIntegra – Konturverfolgung
Konturverfolgung Zustände
Verfolgung immer gegen den Uhrzeigersinn!
Kogn itive Robotik II – Architektur des GermanTeam 18
Universität Bremen
Kogn itive Robotik II – Architektur des GermanTeam 19
Universität Bremen
HIntegra – Kameraposition (Idee)
� Blobs erzeugen
� Farbsegmentierung
� Zusammenhängende Bereiche finden (Blobs)
� Polygonal
� Pseudo-konvex
� Alle Blob-Ecken markieren, die an Bildgrenzen stoßen
� Peilung en erzeugen
� Pixelkoordinaten in Winkelkoordinaten konvertieren
� Winkel anhand der Kopfposition korrigieren
� Ergebnis: Peilungen zu Blob-Kanten in Roboterorientierung, aber von der Kameraposition aus
Kogn itive Robotik II – Architektur des GermanTeam 20
Universität Bremen
HIntegra – Selbstlokalisation
� Aufbau
� Jede der 10 Marken wird getrennt verwaltet
� Für jede Paarung von Markenwird eine Position bestimmt
� Roboterposition ist gewichtetesMittel aller Positionsschätzungen
� Marken
� Geschätzte Richtung und Entfernung
� Konfidenz der Schätzungen
� Positionsfortschreibung durch Odometrie
� Flaggen
� Entfernung aus Abstand der Blob-Mittelpunkte
� Tore
� Entfernung aus Höhe (magisch...)
� Richtung zu linker oder rechter Kante
Kogn itive Robotik II – Architektur des GermanTeam 21
Universität Bremen
HControlRoles
Options
Sub-Options
Skills
Situations
Zustandsmaschine