Konstruktion Mobiler Roboter Einführung Hard- und Software Institut für Softwaretechnologie 1
vorhandene Hardware Roboter Sensoren Aktoren vorhandene Software Aria Saphira Middleware for Robotics RoboCup05 Themenvergabe Agenda 2
Pioneer 3DX Allgemein Hersteller ActivMedia Robotics (www.mobilerobots.com) Differential-Drive zwei unabhängige Räder/Motoren Geschwindigkeit linkes & rechtes Rad Translation & Rotation 1.2 m/s Höchstgeschwindigkeit 12 V Blei-Gel Akkus bis zu 3 Packs einige Stunden Laufzeit 12 Stunden Recharge Docking-Station 12V/5V Versorgung für zusätzliches Equippment 3
Odometry Stall Pioneer 3DX Sensorik Roboter gefahrener Weg des Roboters (ds/dphi) geschätzte Geschwindigkeit (v r,v l oder v, ω) Wheel-Encoder pro Rad inkrementeller Sensor akkumulierte Fehler Motor blockiert Batterie Spannung/Ladezustand 4
Pioneer 3DX Sensorik Umwelt Sonar-Abstandssensoren 2 Gruppen â 8 Sensoren (links, 6 x 15, rechts) Reichweite 15cm-5m Problem Cross-Talk/Rauschen 5
Pioneer 3DX Steuerung Onboard-Microcontroller ARIA-API/propritäres Protokoll steuert nur low-level Aktoren/Sensoren/IOs RS-232 Schnittstelle einige interne Test-Routinen Notebook random Linux Debian Unstable SW-Pakete/Tools installiert ein User pro Gruppe Schnittstellen Serielle am Notebook Roboter (ttys0) USB-Serial-Converter 4-fach Laser (ttyusb0..4) 6
Pioneer 3AT Basics selber Onboard- Controller wie Pioneer DX3 4WD Differential-Drive mit je 2 gekoppelten Rädern Outdoor-tauglich Wiese Schotter Steigungen keine Docking Station getrennte Batterie-Sätze für random und wonko (Anschlüsse) 7
Pioneer 3AT Basics selbe Onboard-Sensorik wie Pioneer DX3 Odometry Stall Sonar Motor-Notaus-Schalter!!! Notebook wonko fixierter Aufbau 360 Laser (D)GPS USB/Seriell Converter 8
Krikkit γ Basics Eigenbau Mostly Harmless RoboCup Middle Size Omni-Drive dr, ds, dphi Embedded PC Debian Linux Pnematik-Kicker 200 bar Druckflachen besser keine Finger davor 9
Omni-Kamera Firewire bis 1024 x 768 @ 20 Hz Odometry dr, ds, dphi Wheel Encoder varibale Frequenz Stromversorgung Akkustand Stromverbrauch Krikkit γ Sensorik 10
Robotik Wireless Network Wireless Network B-Standard nur für Robotik-Anwendungen privates Netz 192.168.3.xx SSID Mostly_Harmless Services von/nach Aussen Routing über das IST Debian Updates secure shell innerhalb des Netzes alle Service offen gesamtes Gebäude Inffeldgasse 16b Übungsrechner im EG, Roboter Notebooks 11
Sick LMS 200 Laser RangeFinder Laser Laufzeit Messung (rot. Spiegel) eine Scan-Ebene 180 oder 110 Scans 0.25, 0.5 oder 1 Auflösung 8 m Tiefe bis 75 Hz abhängig von der Schnittstelle Schnittstelle RS232/RS422 9.6, 19.2 oder 500 kbaud Zeichenorientiertes Protokoll Versorgung 24V (DC/DC-Wandler) 12
Sick LMS 200 13
Sick LD OEM Laser RangeFinder Laser Laufzeit Messung eine Scan-Ebene n Sektoren, zusammen bis 360 m * 0.125 Auflösung 8 m Tiefe 5 20 Hz Rotation Schnittstelle RS232/RS422/CAN/ArcNet Standard Baudraten Klartext Protokoll Versorgung 24V (DC/DC-Wandler) 14
PtGreyResearch Bumblebee 2 Stereo Vision Intern zwei Kameras fertig kalibriert internes Matching fertiges Tiefenbild 1024x768 @ 20 Hz Firewire Interface Stereo Vision 15
zwei Freiheitsgrade up/down open/close parallel möglich zwei Endschalter-Paare Up/down open/close (Zange/Objekt) nur am Pioneer 3DX Steuerung Simple IOs am Controller Klassen für C++ (ARIA) Pioneer Gripper 16
Pioneer Arm 6 Freiheitsgrade 1-5 Arm 6 Gripper 6 nur am Pioneer AT3 Steuerung 5 4 3 zusätzliches Steuerungsmodule Klassen für C++ (ARIA) 2 1 17
Aria/Basics entwickelt für Roboter von ActivMedia C++ Wrapper für Roboter (Drive, Sonar, Battery) Aktoren (Gripper, Arm) Sensoren (Laser, GPS, Kompass, ) Low-Level Zugriff auf die Hardware Client-Server Paradigm automatischer Datenfluß alle 50 ms einfacher Roboter-Simulator integriert Windows & Linux Versionen vorhanden Online-Manual 18
ArRobot Aria/Programming Klasse kapselt den Roboter Direkte Befehle (Geschwindigkeit, relative Bewegungen) StateReflection (interne Roboter States) low-level Communication (protocol, bytes, I/O) ArRangeDevices Klassen abstrahieren Abstandssensoren Sonar und 180 Laser generelle Zugriffsmethoden ArGripper Klasse abstarhiert den Gripper 19
Call-Backs Aria/Control wichtige Ereignisse am Roboter (connection failed) neue Daten verfügbar Device spezifisch (Endschalter am Gripper) ArActions Kapselt Actions Subsumption Architecture Threading parallele Ausführung Synchronisations-Mechanismen (Mutex, Condition) 20
Saphira/Basics Intelligente High-Level Kontrolle für ActivMedia Robots setzt auf ARIA auf Integration aktueller Forschungen (Uni Stanford, SRI) Behaviors 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 Windows & Linux Versionen vorhanden 21
viele Tools Saphira/Use Visualisierung des Navigierens GUI für Roboter-Kontrolle Laser-Mapping Simulation Verwendung eigene Applikationen mit C++ Klassen GUI und Scriptsprache Colbert CDs mit Code/Doku am IST Installiert auf den Robotern 22
Saphira/Use 23
Middleware for Robotics (MIRO) Basics gemeinsame Entwicklung mit der Uni Ulm Open Source Robotics Software Framework offenes Design unterstützt verschiedenste Roboter-Plattformen, Aktoren und Sensoren (Pioneer, Sonar, Laser 180 & 360 ) für verschiedenste Aufgaben verwendbar große Anzahl von Verfahren & Tools Obstacle-Avoidance Behavior Engine Visualisierungs-Tools große Erfahrung am Institut 24
MIRO Architektur Client-Server Paradigm CORBA-basierend ACE/TAO transparente Kommunikation auch über Rechnergrenzen getrennte Applikationen/Services verschiedene Rechner-Architekturen oder Programmiersprachen Abstrahierte Interfaces definiert in IDL C++ like Klassendefinition Standard-Interfaces für Roboter, Sensoren, Aktoren Event-Channel 1-n Kommunikation Publisher/Subscriber Paradigm IDL-Datentypen (z.b.range) 25
MIRO Erweiterungen eigene Services entwickelt zusätzliche Hardware integriert (z.b. 360 Laser) standardisiertes Welt-Model Selbst-Lokalisierung basierend auf Saphira Laser/Umgebungskarte AI-Planungsmodule Prädikaten-Basierte Knowledge-Base STRIPS basierte Beschreibung Graphplan Behavior-Engine Ausführungen Low-Level Aktionen Robust/Monitoring 26
MIRO Use Miro als Library auf den Robotern Miro selber kompilieren läuft am besten Debian unstable anonymous cvs an der Uni Ulm Erweiterungen der TU Graz RoboCup & Service-Roboter Code cvs am IST (user nötig) läuft am besten Debian unstable am besten den Source holen und selber kompilieren am besten hier die eigene Applikation einbauen 27
RoboCup05 Basics Entwicklung für Krikkit γ (RoboCup MSL) reines C++ optimiert auf Durchsatz direkte definierte Methoden-Aufrufe ein zentraler Daten-Container Wrapper-Klassen Omni-Drive Sensoren bestehende Services Vision/Lokalisation (Soccer) Planner/State Machine Behavior Engine 28
RoboCup05 Use Weiter-Entwicklung läuft parallel source unter svn (user nötig) keine vorkompilierte Version eigene GRML Linux Version mit allen nötigen Entwicklungs-Tools installierbar von CD-ROM lauffähig 29
3er bis 4er Gruppen Accounts pro Gruppe Logistik cvs IST (RoboCup & Service) svn IST (RoboCup05) Random & Wonko carrot & apple (Linux-Rechner im Labor) eine Schedule pro Roboter halbe Tage Slots (vor und nach 14:00) Liste im Labor Schlüssel fürs Labor Zugang nachts und am Wochenende ein entlehnbarer Schlüssel bei mir, bitte rechtzeitig melden 30
3D Mapping Laser Stereo-Kamera Pick and Place Delivery-Bot Lift fahren Themenvergabe 31
Weitere Informationen Webpage der Lehrveranstaltung: http://www.ist.tugraz.at Literatur (Papers, Dokus, empfohlene Bücher) Martin Buchleitner: vision@robocup.tugraz.at : steinbauer@ist.tugraz.at 32