Upload
dokhanh
View
218
Download
0
Embed Size (px)
Citation preview
Institut für Softwaretechnologie
Konstruktion Mobiler RoboterKonstruktion Mobiler RoboterEinführung Software
Gerald SteinbauerInstitut für Softwaretechnologie
Gerald Steinbauer1
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Agenda
K t ll P di• Kontroll Paradigmen• Selbstlokalisation• Planen• vorhandene Software
Mi & R b t C t l F k– Miro & Robot Control Framework– Aria & Saphira
Gerald Steinbauer2
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Kontrollparadigmen
d i d ät li h P di• drei grundsätzliche Paradigmen• bestehen aus drei Bausteinen
SENSE R b t i t i U b d h S h– SENSE: Roboter nimmt seine Umgebung durch Sensoren wahr– ACT: Roboter beeinflusst die Umgebung mit seinen Aktoren– PLAN: Roboter plant auf Grund seiner Wahrnehmung die nächsten
Aktionen, die zum Ziel führen
Gerald Steinbauer3
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Kontrollparadigmen
kti P direaktives Paradigma– SENSE-ACT
SENSE ACT
deliberatives Paradigma– SENSE-PLAN-ACT
hybrides ParadigmaSENSE PLAN ACT
– Synthese der beiden ersten Paradigmen
PLAN
SENSE ACT
Gerald Steinbauer4
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Reaktives Paradigma
di kt K l S d Akt• direkte Kopplung von Sensoren und Aktoren• verwendet kein Speicher• vergleichbar mit einem Reflex• kein expliziertes Model der Welt
D b t M d l d W lt i t di W lt lb t “ R d B k MIT– „Das beste Model der Welt ist die Welt selbst.“ Rodney Brooks, MIT– Subsumption Architecture
Gerald Steinbauer5
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Reaktives Paradigma
V t ilVorteile– schnell, flexibel und einfach
NachteilNachteil– keine komplexen Aufgaben lösbar, z.B. Problem bei Sackgasse
Gerald Steinbauer6
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Sensoren WeltmodellWissen
Wissensbasis Auftrag
Entscheidungen
AktionenAktoren AktionenAktoren
Gerald Steinbauer7
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Deliberatives Paradigma
besitzt eine Planungs/Schlußfolgerungskomponetebesitzt Speicher und ein internes Modell der Weltbasiert auf abstrakter Beschreibung und LogikVorteile
– längerfristige und komplexere Aufgaben können gelöst werden
Nachteileaufwendig und langsam– aufwendig und langsam
Gerald Steinbauer8
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Sensoren WeltmodellWissen
Wissensbasis Auftrag
Entscheidungen
AktionenAktoren AktionenAktoren
Gerald Steinbauer9
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Hybrides Paradigma
S th d kti d d d lib ti P diSynthese des reaktiven und des deliberativen ParadigmVorteile
i t h ll öti i t ( B Hi d i id )– reagiert schnell wo es nötig ist (z.B. Hindernisvermeidung)– plant längere Ketten von Aktionen als Lösung komplexer Aufgaben
(z.B. Lieferung von Gütern)
Gerald Steinbauer10
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Sensoren WeltmodellWissen
Wissensbasis Auftrag
Entscheidungen
AktionenAktoren AktionenAktoren
Gerald Steinbauer11
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Organisation Roboter Software I
Sensors World ModelKnowledge
Knowledge Base
Knowledge
Task
Decision Makingg
ActionsActuators
Gerald Steinbauer12
Konstruktion Mobiler Roboter, PR, WS09
Hardware Layer
Institut für Softwaretechnologie
Organisation Roboter Software II
Sensors World ModelKnowledge
Knowledge Base
Knowledge
Task
Decision Makingg
ActionsActuators
C i LGerald Steinbauer
13
Konstruktion Mobiler Roboter, PR, WS09
Continuous Layer
Institut für Softwaretechnologie
Organisation Roboter Software III
Sensors World ModelKnowledge
Knowledge Base
Knowledge
Task
Decision Makingg
ActionsActuators Abstract Layer
Gerald Steinbauer14
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Organisation Roboter Software IV
Knowledge Base Plan ExecutorPlanner Abstract Layer
World Model Behavior Engine Continuous Layer
CameraLaser Rangefinder Robot Drive Hardware Layer
Gerald Steinbauer15
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Planen für autonome mobile Roboter
d lib ti S hi ht fü k l A f b öti• deliberative Schicht für komplexe Aufgaben nötig– abstrakt– logik-basiertlogik basiert– Planen & Schließen
• Beschreibungssprache für Welt und Aufgaben– intuitiv, human readable– generell
ausdruckskräftig– ausdruckskräftig
• STRIPS basierend– erweitert um Elemente der FOL (z.B. Quantoren)( )
• Erweiterbarkeit/Austauschbarkeit der Prädikate & Planer
Gerald Steinbauer16
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Planen für autonome mobile RoboterR A R BRaum_A
LetterRobot
Raum_B
Flur
Raum_E Raum_D
Raum C
Flur
move(orig,dest)pre: accessible(dest) Λ at(orig) Λ ¬at(dest)
I = at(Raum_C) Λ isat(Raum_A,Letter)
Raum_C
pre: accessible(dest) Λ at(orig) Λ ¬at(dest)eff: ¬at(orig) Λ at(dest)
pickup(pos,item)pre: at(pos) Λ isat(pos,item) Λ forall(x) ¬hold(x)ff h ld(it )
G = isat(Raum_D,Letter)
eff: hold(item)
release(pos,item)pre: at(pos) Λ hold(item)eff: ¬hold(item) Λ isat(pos,item)
1. move(Raum_C,Raum_A)2. pickup(Raum_A,Letter)3. move(Raum_A,Raum_D)4. release(Raum_D,Letter)
Gerald Steinbauer17
Konstruktion Mobiler Roboter, PR, WS09
( ) (p )
Institut für Softwaretechnologie
Knowledge Base
b t hi t Wi üb di W lt• abstrahiertes Wissen über die Welt• Abstraktion des kontinuierlichen Weltmodels
P– Pose– Objekt Positionen
• basiert auf First Order Logicbasiert auf First Order Logic– Konstanten, z.B.: Räume, Objekte,…– Prädikaten, z.B.: isAt(p),…– logischen Operatoren– Quantoren– Axiome
• aktueller Belief des Roboters
Gerald Steinbauer18
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Selbstlokalisation
f d t l P bl i d R b tik• fundamentales Problem in der Robotik• Bestimmung der Position des Roboters in Relation zu
seiner Umgebungseiner Umgebung• Pose = Position + Orientierung
I d i 3 di i l P bl ( Θ)• Indoor ein 3 dimensionales Problem (x,y,Θ)• Outdoor ein 6 dimensionales Problem (x,y,z,Φ,Θ,Ψ)
P bl• Probleme– Sensorungenauigkeiten– MehrdeutigkeitenMehrdeutigkeiten– mehrfache Hypothesen
Gerald Steinbauer19
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Lokalisierungsarten
P T ki• Pose Tracking– Verfolgung einer bekannten Position– einfach zu löseneinfach zu lösen– für bestimmte Aufgaben ausreichend– Kalman-Filter
• Globale Lokalisierung– löst das “kidnapped robot” Problem
aufwendiger zu lösen– aufwendiger zu lösen– generelle Lösung– Partikelfilter
Gerald Steinbauer20
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Geschlossene Darstellung der Unsicherheit
Gerald Steinbauer21
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Prinzip Partikel Filter (1-dimensional)
allgemeines Partikel: <x,y,Θ,w>
© Sebastian Thrun
Gerald Steinbauer22
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Karte & Abstandsmessung
© Uni Freiburg
Gerald Steinbauer23
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Software Overview
Robot Control Framework Planen, Behaviors, …Robot Control Framework
Middleware for Robotics Basic Control Structures,Interfaces, …
Aria/Saphira
ACE/TAO Kommunikation, Patterns, …
Linux OS Sockets, Threads, Devices, …
Gerald Steinbauer24
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Middleware for Robotics (MIRO) Basics
i E t i kl it U i Ul d N• gemeinsame Entwicklung mit Uni Ulm und Nasa• Open Source• Robotics Software Framework
– offenes Design– unterstützt verschiedenste Roboter-Plattformen Aktoren undunterstützt verschiedenste Roboter-Plattformen, Aktoren und
Sensoren (Pioneer, Sonar, Laser 180°, 270° und 360°)– für verschiedenste Aufgaben verwendbar
ß A hl V f h & T l• große Anzahl von Verfahren & Tools– Obstacle-Avoidance– Behavior EngineBehavior Engine– Visualisierungs-Tools
Gerald Steinbauer25
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
MIRO Architektur
Cli t S P di• Client-Server Paradigm• CORBA-basierend
t t K ik ti h üb R h– transparente Kommunikation auch über Rechnergrenzen– getrennte Applikationen/Services (Module)– verschiedene Rechner-Architekturen oder Programmiersprachen
• Abstrahierte Interfaces– definiert in Interface Definition Language (IDL)– C++ like Klassendefinition– Standard-Interfaces für Roboter, Sensoren, Aktoren
• Event-Channel• Event-Channel– 1-n Kommunikation– Publisher/Subscriber Paradigm
Gerald Steinbauer26
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Interface Description Language
interface adder{
void add(in int a, in int b, out int sum)}
adder.idl
}
IDL-C++ Compiler
dd C h dd C dd S h dd S
class adder{
class adder{
virtual void
Stub(Client)
adderC.h, adderC.cpp adderS.h adderS.cpp
void add(int a, int b, int & sum);}
add(int a, int b, int & sum) = 0;}Skeleton
(Server)
Gerald Steinbauer27
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Remote Method Calls
DifferentialDriveDifferentialDrive IDL IDL
Client Server
DifferentialDrive{
void setLRVelocity(int r, int l)}
DifferentialDrive{
void setLRVelocity(int r, int l)}
CorbaIDL IDL
Infrastruktur stellt Miro
Gerald Steinbauer28
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Event Channel*
Push Supplier Push Consumer 1 Push Consumer 2
subscribe
subscribe Event_1
Event_2
Event Channel
Gerald Steinbauer29
Konstruktion Mobiler Roboter, PR, WS09
* aka CORBA Notification Service
Institut für Softwaretechnologie
Event Channel*
Push Supplier Push Consumer 1 Push Consumer 2
subscribe
subscribe Event_1
Event_2
Event Channel
Gerald Steinbauer30
Konstruktion Mobiler Roboter, PR, WS09
* aka CORBA Notification Service
Institut für Softwaretechnologie
Event Channel*
Push Supplier Push Consumer 1 Push Consumer 2Events =
subscribe
subscribe
Events Datenstruktur
definiert mit IDL
Event_1
Event_2
Event Channel
Gerald Steinbauer31
Konstruktion Mobiler Roboter, PR, WS09
* aka CORBA Notification Service
Institut für Softwaretechnologie
MIRO Erweiterungen & RCF
i S i t i k lt• eigene Services entwickelt• zusätzliche Hardware integriert (z.B. 360° Laser, IMU)• standardisiertes World Model• standardisiertes World-Model• Selbst-Lokalisierung
– basierend auf Saphirap– Laser/Umgebungskarte (momentan wird an einer Alternative
gearbeitet)
• AI-PlanungsmoduleAI Planungsmodule – Knowledge-Base basierend auf Prädikaten– STRIPS basierte Beschreibung inklusive Erweiterungen
G h l– Graphplan
• Behavior-Engine– Ausführung der Low-Level Aktionen
Gerald Steinbauer32
Konstruktion Mobiler Roboter, PR, WS09
g– Robustness/Monitoring
Institut für Softwaretechnologie
World-Model
i S i• eigenes Service• Integration der Sensor-Daten• Bereitstellen von kontinuierlichen Information (lokal
und global)Selbstlokalisierung– Selbstlokalisierung
– IDs und Positionen für Objekte
updateObjects( )
World-Model(austauschbare Cores)
updateObjects(…)
updatePoseRel(…)
getObjects(…)
(austauschbare Cores)updatePoseAbs(…)
updatePosition(…)
getPoses(…)…
Gerald Steinbauer33
Konstruktion Mobiler Roboter, PR, WS09
diverse Implementationen
Institut für Softwaretechnologie
Behavior Engine
B h i i t di B iPlanner
• Behavior ist die Basis-Kontroll-LoopZykluszeit 50 ms• Zykluszeit ~ 50 ms
• direkter Zugriff auf die Roboter Hardware
Behavior Pattern 1Behavior Pattern 1 Roboter Hardware
• zusammengesetzt zu Behavior Patterns
Behavior Pattern 1Behavior Pattern 1
Behavior Pattern 1Behavior Pattern 1
Behavior Patterns• fertiges Miro Service• Behaviors werden vom
Hardware Interfaces
• Behaviors werden vom Planner angestoßen
• diverse Arbiter
Gerald Steinbauer34
Konstruktion Mobiler Roboter, PR, WS09
diverse Arbiter
Institut für Softwaretechnologie
Konfiguration eines Service
j d S i li t i• jedes Service liest eine Konfigurationsdateibasiert auf XML
<section name="Sick" ><parameter name="Laser::Parameters" >
<parameter value="/dev/usb/ttyUSB0" name="Device" /><parameter name="TtyParams" > • basiert auf XML
• entsprechende Parameter-Klassen in C++
<parameter value="38400" name="Baudrate" /></parameter><parameter value="true" name="ContinousMode" /><parameter value="false" name="Notify" /><parameter value="0.100000" name="PollInterval" />Klassen in C++
• lautet auf „hostname.xml“• Beispiele sind im Source Tree
<parameter value="false" name="PositionStamps" /> <parameter value="true" name="Statistics" /><parameter value="true" name="StdCrystal" />
</parameter></section>
• Beispiele sind im Source-Tree
Gerald Steinbauer35
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Planer und Behavior Engine
h K fi ti d t i fü d Pl d• mehrere Konfigurationsdateien für den Planer und die Behavior Engineverlinkt über die allgemeine Konfiguration• verlinkt über die allgemeine Konfiguration
• StrategyVorgabe der Ziele– Vorgabe der Ziele
• Knowledge– Definition der verfügbaren Prädikate und Konstanteng
• Actions– Definition der Pre- und Postconditions der Aktionen
• Behaviors– Beschreibung und Parametrisierung der Behaviors
Gerald Steinbauer36
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Kompilieren
ACE/TAO/Mi i d k ili t• ACE/TAO/Miro sind vor-kompiliert• auf den beiden Roboter-Notebooks• Account pro Gruppe• RCF unter svn Verwaltung (über das IST) -
htt //i t i t t t/ / b ti ( d l )https://intra.ist.tugraz.at/svn/robotics (read only)• auschecken
k fi i• konfigurieren• kompilieren
Gerald Steinbauer37
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Starten des RCF
1 N i S io name ior 1. Naming Service2. Event ChannelNaming Service
-o name.iorResource Locator in Datei
3. Services1. Pioneer Service2 Saphira ServiceR 2. Saphira Service3. Behavior Engine4. Planner …
Registrieren
Corba Service 1 Corba Service 2 Corba Service 3
-ORBInitRefNameService=file:///name.ior
Interface
Gerald Steinbauer38
Konstruktion Mobiler Roboter, PR, WS09
Interface
Institut für Softwaretechnologie
Aria/Basics
t i k lt fü R b t A ti M di• entwickelt für Roboter von ActivMedia• C++ Wrapper für
R b t (D i S B tt )– Roboter (Drive, Sonar, Battery)– Aktoren (Gripper, Arm)– Sensoren (Laser, GPS, Kompass,…)
• Low-Level Zugriff auf die Hardware• Client-Server Paradigmag• automatischer Datenfluss alle 50 ms• einfacher Roboter-Simulator integriertg• Windows & Linux Versionen vorhanden• Online-Manual
Gerald Steinbauer39
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Aria/Programming
A R b t• ArRobot– Klasse kapselt den Roboter– Direkte Befehle (Geschwindigkeit relative Bewegungen)Direkte Befehle (Geschwindigkeit, relative Bewegungen)– State Reflection (interne Roboter States)– low-level Communication (protocol, bytes, I/O)
• ArRangeDevices– Klassen abstrahieren Abstandssensoren
Sonar und 180° Laser– Sonar und 180 Laser– generelle Zugriffsmethoden
• ArGripperpp– Klasse abstarhiert den Gripper
• …
Gerald Steinbauer40
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Aria/Control
C ll B k• Call-Backs– wichtige Ereignisse am Roboter (connection failed)– neue Daten verfügbarneue Daten verfügbar– Device spezifisch (Endschalter am Gripper)
• ArActions– Kapselt Actions– Subsumption Architecture
Th di• Threading– parallele Ausführung– Synchronisations-Mechanismen (Mutex, Condition)y ( , )
Gerald Steinbauer41
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Saphira/Basics
i t lli t Hi h L l K t ll fü A ti M di• intelligente High-Level Kontrolle für ActivMedia Robotssetzt auf ARIA auf• setzt auf ARIA auf
• Integration “aktueller” Forschungen (Uni Stanford, SRI)SRI)
• Behaviors– Obstacle Avoidance (Sonar/Laser)Obstacle Avoidance (Sonar/Laser)– Selbstlokalisation (vernünftig nur mit Laser/Umgebungs-Karte)– Path-Planning (grid-basierend mit Karte)
• limitierter Zugriff auf die Hardware• ideal für Navigations-Tasks
Gerald Steinbauer42
Konstruktion Mobiler Roboter, PR, WS09• Windows & Linux Versionen vorhanden
Institut für Softwaretechnologie
Saphira/Use
i l T l• viele Tools– Visualisierung des Navigierens– GUI für Roboter-KontrolleGUI für Roboter Kontrolle– Laser-Mapping– Simulation
• Verwendung– eigene Applikationen mit C++ Klassen
GUI und Scriptsprache Colbert– GUI und Scriptsprache Colbert
• CDs mit Code/Doku am IST• installiert auf den Robotern• installiert auf den Robotern
Gerald Steinbauer43
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Saphira/Use
IST 2.Stock Inffeldgasse 16bIST 2.Stock Inffeldgasse 16b
Gerald Steinbauer44
Konstruktion Mobiler Roboter, PR, WS09
Institut für Softwaretechnologie
Software am Gumstix (Quadcopter)
h i K H• noch wenig Know How• Miro und RCF zu aufwendig• OpenEmbedded System verfügbar
– Cross-Compile Umgebung (verwenden wir am Nao)– open-sourceopen-source– „vollständiges“ Linux-System– funktionierende pre-build
• Offene Punkte– eigene Software schreiben, kompilieren und upload
Anbindung der Steuerplatine (RS232) des Laser Scanners (USB)– Anbindung der Steuerplatine (RS232), des Laser-Scanners (USB) und der Kamera (USB)
htt // ti t (D l Sit )Gerald Steinbauer
45
Konstruktion Mobiler Roboter, PR, WS09
http://www.gumstix.net (Developer Site)
Institut für Softwaretechnologie
Empfohlene Literatur
M h I t d ti t AI R b ti• Murphy: Introduction to AI Robotics • Henning: Advanced CORBA Programming with C++• Miro Manual• Paper über unsere Software-Architektur• Saphira Manual• Anleitung zur Entwicklung mit RCF
• PDFs zum download auf der Praktikums-Webseite
Gerald Steinbauer46
Konstruktion Mobiler Roboter, PR, WS09