Top Banner
Universität Bremen Architektur des Thomas Röfer Architektur Module Selbstlokalisation Verhaltenssteuerung
18

Thomas Röfer - uni-bremen.deroefer/kr01/10.pdf · reretuturn arn addddr;r;.. Kognitive Robotik II – Architektur des GermanTeam 10 Universität Bremen SharedMemory – Daten HTerm/HLogFile

Oct 08, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Thomas Röfer - uni-bremen.deroefer/kr01/10.pdf · reretuturn arn addddr;r;.. Kognitive Robotik II – Architektur des GermanTeam 10 Universität Bremen SharedMemory – Daten HTerm/HLogFile

Universität Bremen

Architektur des

Thomas Röfer

ArchitekturModule

Selbstlokalisation

Verhaltenssteuerung

Page 2: Thomas Röfer - uni-bremen.deroefer/kr01/10.pdf · reretuturn arn addddr;r;.. Kognitive Robotik II – Architektur des GermanTeam 10 Universität Bremen SharedMemory – Daten HTerm/HLogFile

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

Page 3: Thomas Röfer - uni-bremen.deroefer/kr01/10.pdf · reretuturn arn addddr;r;.. Kognitive Robotik II – Architektur des GermanTeam 10 Universität Bremen SharedMemory – Daten HTerm/HLogFile

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

Page 4: Thomas Röfer - uni-bremen.deroefer/kr01/10.pdf · reretuturn arn addddr;r;.. Kognitive Robotik II – Architektur des GermanTeam 10 Universität Bremen SharedMemory – Daten HTerm/HLogFile

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

Page 5: Thomas Röfer - uni-bremen.deroefer/kr01/10.pdf · reretuturn arn addddr;r;.. Kognitive Robotik II – Architektur des GermanTeam 10 Universität Bremen SharedMemory – Daten HTerm/HLogFile

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

Page 6: Thomas Röfer - uni-bremen.deroefer/kr01/10.pdf · reretuturn arn addddr;r;.. Kognitive Robotik II – Architektur des GermanTeam 10 Universität Bremen SharedMemory – Daten HTerm/HLogFile

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;

.

.

.

Page 7: Thomas Röfer - uni-bremen.deroefer/kr01/10.pdf · reretuturn arn addddr;r;.. Kognitive Robotik II – Architektur des GermanTeam 10 Universität Bremen SharedMemory – Daten HTerm/HLogFile

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

Page 8: Thomas Röfer - uni-bremen.deroefer/kr01/10.pdf · reretuturn arn addddr;r;.. Kognitive Robotik II – Architektur des GermanTeam 10 Universität Bremen SharedMemory – Daten HTerm/HLogFile

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!

Page 9: Thomas Röfer - uni-bremen.deroefer/kr01/10.pdf · reretuturn arn addddr;r;.. Kognitive Robotik II – Architektur des GermanTeam 10 Universität Bremen SharedMemory – Daten HTerm/HLogFile

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)

Page 10: Thomas Röfer - uni-bremen.deroefer/kr01/10.pdf · reretuturn arn addddr;r;.. Kognitive Robotik II – Architektur des GermanTeam 10 Universität Bremen SharedMemory – Daten HTerm/HLogFile

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

Page 11: Thomas Röfer - uni-bremen.deroefer/kr01/10.pdf · reretuturn arn addddr;r;.. Kognitive Robotik II – Architektur des GermanTeam 10 Universität Bremen SharedMemory – Daten HTerm/HLogFile

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

Page 12: Thomas Röfer - uni-bremen.deroefer/kr01/10.pdf · reretuturn arn addddr;r;.. Kognitive Robotik II – Architektur des GermanTeam 10 Universität Bremen SharedMemory – Daten HTerm/HLogFile

Kogn itive Robotik II – Architektur des GermanTeam 15

Universität Bremen

HIntegra – Bildverarbeitung

Image88x72Image88x72

ColorClassImage90x74ColorClassImage90x74

RLEImage88x72RLEImage88x72

BlobCollectionBlobCollection

Segmentation2

colorClass2RLE

Compute8ConnectedBoundaries

Page 13: Thomas Röfer - uni-bremen.deroefer/kr01/10.pdf · reretuturn arn addddr;r;.. Kognitive Robotik II – Architektur des GermanTeam 10 Universität Bremen SharedMemory – Daten HTerm/HLogFile

Kogn itive Robotik II – Architektur des GermanTeam 16

Universität Bremen

HIntegra – Run-Length-Encoding

Page 14: Thomas Röfer - uni-bremen.deroefer/kr01/10.pdf · reretuturn arn addddr;r;.. Kognitive Robotik II – Architektur des GermanTeam 10 Universität Bremen SharedMemory – Daten HTerm/HLogFile

Kogn itive Robotik II – Architektur des GermanTeam 17

Universität Bremen

HIntegra – Konturverfolgung

Konturverfolgung Zustände

Verfolgung immer gegen den Uhrzeigersinn!

Page 15: Thomas Röfer - uni-bremen.deroefer/kr01/10.pdf · reretuturn arn addddr;r;.. Kognitive Robotik II – Architektur des GermanTeam 10 Universität Bremen SharedMemory – Daten HTerm/HLogFile

Kogn itive Robotik II – Architektur des GermanTeam 18

Universität Bremen

Page 16: Thomas Röfer - uni-bremen.deroefer/kr01/10.pdf · reretuturn arn addddr;r;.. Kognitive Robotik II – Architektur des GermanTeam 10 Universität Bremen SharedMemory – Daten HTerm/HLogFile

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

Page 17: Thomas Röfer - uni-bremen.deroefer/kr01/10.pdf · reretuturn arn addddr;r;.. Kognitive Robotik II – Architektur des GermanTeam 10 Universität Bremen SharedMemory – Daten HTerm/HLogFile

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

Page 18: Thomas Röfer - uni-bremen.deroefer/kr01/10.pdf · reretuturn arn addddr;r;.. Kognitive Robotik II – Architektur des GermanTeam 10 Universität Bremen SharedMemory – Daten HTerm/HLogFile

Kogn itive Robotik II – Architektur des GermanTeam 21

Universität Bremen

HControlRoles

Options

Sub-Options

Skills

Situations

Zustandsmaschine