47
Institut für Softwaretechnologie Konstruktion Mobiler Roboter Konstruktion Mobiler Roboter Einführung Software Gerald Steinbauer Institut für Softwaretechnologie Gerald Steinbauer 1 Konstruktion Mobiler Roboter, PR, WS09

Konstruktion Mobiler RoboterKonstruktion Mobiler Roboter ... · S th d kti d d d lib ti P diSynthese des reaktiven und des deliberativen Paradigm Vorteile ... – abstrakt – logik-basiert

  • 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

Institut für Softwaretechnologie

Mögliche Themen

automatische Exploration eines Raumes3d Laser MappingDosen einsammelnLift-FahrenLift-FahrenSchach Spielen

i Ideigene Ideen …

Gerald Steinbauer47

Konstruktion Mobiler Roboter, PR, WS09