3 Programmierung von Robotern

Ähnliche Dokumente
Arbeit_Roboter. Setze einen Haken bei den Fragen, die du für richtig hältst: Bei Textantworten oder Lückentexten gib jeweils das Ergebnis an.

2 Aufbau und Teilsysteme eines autonomen mobilen Roboters

Die Denkschule 1 Reto Speerli

Einführung in die Robotik

Fragebogen zur Programmierung mit Aseba / VPL

Einführung in die Robotik Steuerungsarchitekturen. Mohamed Oubbati Institut für Neuroinformatik. Tel.: (+49) 731 / mohamed.oubbati@uni-ulm.

Modellgestützte Online-Programmierverfahren für Industrieroboter

Fakultät für Informatik, Institut für Robotik Laborpraktikum I Legorobotik graphische Programmierung

Robotik Seminar 2006 Mobile autonome Roboter

Labor Automatisierungstechnik

Mess- und Regelungstechnik

Fakultät für Informatik, Institut für Robotik. Legorobotik Graphische Programmierung Vorstellung des EV3 Systems und der Programmierumgebung.

Erste Schritte zum Start findest du hier:

Komponenten: Das Selbstfahrende Auto besitzt 2 Motoren und 2 Sensoren.

Mathematik. Technik. Programmieren. Physik. Mechanik. Elektronik. Getriebeverhältnisse. Sensoren Antwort/ Feedback. Einfache Maschinen

5. NXT kann hören und Entfernungen erkennen: Test der Sensoren

WI-05 Projekt Mobile Agenten Protokoll

Lego Roboter mit NXT-G programmieren. Hochschule Mannheim

Technische Innovationen

Fragen? Wie komme ich effizient zu einem Programm? Wie beschreibe/dokumentiere ich meine Idee?

Einführung in die Robotik. Jianwei Zhang

Möglichkeiten der Verhaltenssteuerung

Gliederung. Gliederung (cont.) Grundlage zur Programmierung auf Aufgabenebene

Programmierung mit NQC: Kommunikation zwischen zwei RCX

Welche Roboter kennst du? Wo brauchst du zuhause Roboter?

Einführung in die Robotik. Jianwei Zhang

Kurzanleitung Programmierung (Ersetzt nicht die beigelegte Bedienungsanleitung)

Workshop #1 Grundlagen, Motorsteuerung, Schleifen

Intelligente Transportsysteme

Thymio Challenge-Karten

Programmieren mit RoboLab Bauen mit Lego

Henry Krasemann / Hilke Krasemann / Michael Friedrichs, LEGO -Boost-Roboter, dpunkt.verlag, ISBN

NXC-Programmiersprache

LEGO WeDo: SCRATCH-Programmierung

Baue deinen ersten Roboter

Seite 1/6. ModellFerienPass.pdf).

Künstliche Intelligenz

10.1 Geometrische Wegplanung im Konfigurationsraum

Kurzanleitung KUBO CODING+

ROBOTER. LÖSUNGEN zur Arbeit mit dem LEGO Mindstorms EV3

Technologie. NXT-Hauptmenü My Files

Künstliche Intelligenz

Der Roboter wird auf einer 2 cm breiten, schwarzen Spur (mit Links- und Rechtskurven) gestartet.

Einleitung und Intelligente Agenten MAS-Seminar - SS2008

Objektorientierte Programmierung. Agenda für heute, 26. März, Eines der drei wichtigsten Programmierparadigmen

Experiment: Colorsorter

Mobile Roboter. Joseph L. Jones Anita M. Flynn. Von der Idee zur Implementierung ADDISON-WESLEY PUBLISHING COMPANY

Lego Mindstorms Tutorial

Künstliche Intelligenz - Logische Agenten und Roboter

Erreichen eines Ziels (ohne Kamera) Teil II: Realisation

Wozu braucht man Geometrie? Kreisumfang

Viel Spaß beim Testen!!!

ACTIONCards for. H. Milchram März 2019

Einführung: Verteilte Systeme - Remote Method Invocation -

Lösungen für die Arbeitsblätter

Algorithmen für Sensornetze

Matthias Haun. Handbuch Robotik. Programmieren und Einsatz intelligenter Roboter. Mit 158 Abbildungen. Sprin ger

Your EdVenture into Robotics Infos

Deinen EV3-Kasten vorbereiten

Arbeitsblatt: Wie rede ich mit einem Roboter?

FD Informatik Mauch SSDL (WHRS) Reutlingen. Algorithmen

Sichere Steuerungstechnik für die Mensch-Roboter Kooperation

Einführung in die Artificial Intelligence

VDI-Buch. Handbuch Robotik. Programmieren und Einsatz intelligenter Roboter. Bearbeitet von Matthias Haun

Objektorientierte Programmierung. Agenda für heute, 1. April, Eines der drei wichtigsten Programmierparadigmen

Robot Karol. Eine Programmiersprache für Schülerinnen und Schüler. Von. Ulli Freiberger Ondrej Krško.

Prüfung WS 2006/07. Robotik

Hindernisumfahrung eines autonomen Roboters in einer unbekannten statischen Umgebung. Ronny Menzel

Künstliche Intelligenz

MOVE IT FOR TOMORROW. torsten.torwegge.de

1 Einleitung LEGO MINDSTORMS als informationsverarbeitendes System Lehrbeitrag des Buchs Aufbau des Buchs...

Kamerabasierte Erkennung von Fußgängern in urbanen Verkehrsszenen

Inhaltsverzeichnis. Einleitung. LEGO MINDSTORMS - Von RCX zu EV3 Der intelligente EV3 22 Home- und Education-Edition 27

Softwarepraktikum Teamrobotik SS 2007

2. Teil: Programmierung der Roboter

Der CodeBug. A) Erste Schritte. 1) Einleitung

Theoretische Informatik. Berechenbarkeit

Robotik. Vorlesung an der TU Chemnitz Wintersemester 2011/2012 Dr. Johannes Steinmüller

Aufgabe 2: Die Farben und die Verhaltensweisen - AB. In einem Wort. Beobachtete Aktion. Grün. Gelb. Rot. Lila

Mobile Roboter (1) Ein Roboter der sich autonom in seiner Einsatzumgebung bewegt und dort zielgerichtet Aufgaben erledigen kann

verteilte Systeme (Anwendung Quadrocopter) an.

Transkript:

3 Programmierung von Robotern

3.1 Arten der Programmierung

Arten Programmierung durch Beispiele Programmierung durch Training roboterorientierte Programmierung aufgabenorientierte Programmierung

3.1.1 Programmierung durch Beispiele

Programmierung durch Beispiele manuelle Programmierung, online keine Programmiersprache Einstellen und Speichern einer ausreichenden Anzahl von Bahnpunkten Master-Slave-Programmierung Teleoperation kein Einbezug von Sensoren keine Korrektur aufgrund von Sensorinformationen

3.1.2 Programmierung durch Training

Programmierung durch Training Aktion wird dem Roboter vorgeführt Sensoren nehmen die Aktion auf (Kamera) der Roboter trainiert die Ausführung der Aktion Forschungsthema und noch nicht für reale Aufgaben anwendbar

Probleme Bildverarbeitung und Bildverstehen Objekterkennung Positionen und Orientierungen im Raum Verfolgen bewegter Objekte Sensorfusion (Einbeziehung unterschiedlicher Sensoren) Zerlegung einer Aktion in eine Folge elementarer Handlungen

3.1.3 Roboterorientierte Programmierung

Roboterorientierte Programmierung spezielle Roboterprogrammiersprache explizite Bewegungs- oder Greiferbefehle Der Programmierer legt fest, wie der Roboter eine Aufgabe zu lösen hat.

Roboterprogrammiersprache enthält zusätzlich roboterspezifische Datentypen und Funktionen Datentypen zur Geometrie (Transformationsmatrizen) Funktionen zur Kinematik Funktionen zur Auswertung der Sensoren

3.1.4 Aufgabenorientierte Programmierung

Aufgabenorientierte Programmierung Programmierer legt nur noch fest, was der Roboter tun soll höhere Abstraktionsebene autonome mobile (intelligente) Roboter Einbeziehung von Sensoren Weltmodellierung Aktionsplanung Optimierung

2 Ansätze vollständiges Planen zur Lösung der Aufgabe Ergebnis ist eine Folge von Aktionen zwischen Startzustand und Zielzustand unmittelbares Reagieren auf die Sensoren Subsumption Mischformen

Aufgabenorientierte Programmierung

Nachteile großer Speicherbedarf und enorme Rechenleistung vereinfachtes, unvollständiges Weltmodell Konstruktion des Weltmodells aus fehlerhaften Sensordaten Wenn sich die Welt zwischen den Zeitpunkt der Aufnahme der Sensordaten und der Aktion verändert, kann der Plan misslingen.

3.2 Subsumtion

3.2.1 Prinzip

Verhalten Roboter bewegt sich Zubewegung auf eine Lichtquelle Kollisionserkennung Hinderniserkennung Reaktion auf Geräusche Auswertung des Batteriestandes und Bewegen zur Ladestation

Subsumtion Alternative zum vollständigen Planungsansatz sensorgesteuerte Verhalten Verhalten können parallel ablaufen Prioritätsstufen der Verhalten höherwertige Verhalten unterdrücken zeitweise niederwertige Verhalten kein geometrisches Weltmodell Brooks 1986

3.2.2 Einfache Verhaltensnetze

Kollisionsvermeidung Sensor Verhalten Aktuator Ultraschall Avoid Motoren

Verhalten - Avoid Solange alle Ultraschallsensoren einen bestimmten Grenzwert nicht unterschreiten, tut Avoid nichts. Wenn der vordere Ultraschallsensor ein Hindernis meldet, stoppt Avoid die Vorwärtsbewegung Wenn ein Ultraschallsensor außer dem hinteren ein Hindernis sieht, dreht Avoid den Roboter so lange, bis der hintere Ultraschallsensor zum Hindernis weist. Wenn der hintere Ultraschallsensor ein Hindernis sieht, bekommen die Motoren den Befehl, den Roboter vorwärts zu bewegen.

Verhalten - Dock prüft Batteriestand bewegen zur Ladestation (mit Infrarotsender), wenn Batterie leer weiterhin allen Hindernissen mit Ausnahme der Ladestation ausweichen höherwertiger als Avoid

Auswertung des Batteriestandes Batteriestand IR-Detektor Dock Ultraschall Avoid S Motoren Unterbrecherknoten

Unterbrecherknoten Falls keine Signale von oben (Dock), werden die Signale von Avoid zum Motor gesendet. Signale von oben (Dock) unterdrücken Signale von Avoid Die unterdrückten Signale werden nicht gespeichert und später übertragen. Sie gehen einfach verloren.

Folge von Signalen, die sich im Knoten S treffen Hier werden die Motorbefehle von Dock verwendet

Verhalten Detect-sound-pattern Reagiert auf Mikrophon, Ausgabe einer Melodie, Roboter anhalten Escape Kollision, Roboter vom Hindernis wegbewegen Avoid Hindernissen ausweichen Follow Helligkeitsdifferenz an den Fotozellen Roboter in Richtung der helleren Seite drehen (Zubewegung auf eine Lichtquelle Cruise Roboter vorwärts fahren

Verhalten Rug Warrior Mikrophon Detect-sound-pattern Piezo-Summer Bumper Escape IR-Detektor Avoid S Photozellen Follow S Cruise S S Motoren

Vorteile der Subsumtionsarchitektor Die enge Verbindung von Wahrnehmung und Aktion führt dazu, dass die meisten Verhalten als einfache Reflexe betrachtet werden können. einfache Berechnungen kein Weltmodell sehr kleiner Speicherbedarf schrittweise Erweiterung um neue Verhalten

3.2.3 Programmieren der Subsumtion

Programmieren der Subsumtion paralleler Ablauf vieler vernetzter Verhalten (Prozess, Task) Multitasking Scheduler Steuerprogramm, dass entscheidet, wann alle anderen Programme ablaufen dürfen. Ein Scheduler gibt einem Prozess nur für eine kurze Zeit die Kontrolle über den Computer, dann übergibt er die Kontrolle an den nächsten Prozess und so fort.

Multitasking - Arten präemptives Multitasking Der Scheduler ist fähig, einen Prozess nach einer bestimmten Zeit zu unterbrechen und dann einen anderen Prozess zu laden und auszuführen (Interactive C). kooperatives Multitasking Hier entscheidet der Prozess, wann die Kontrolle an den Scheduler zurückgegeben wird, so dass der nächste Prozess ablaufen kann (endliche Automaten).

3.2.4 Multitasking mit endlichen Automaten

Verhalten Escape - Kollisionsüberwachung

Kollisionsüberwachung

Verhalten (Prozess) Eingabesignale Ausgabesignale lokale Variablen Zustände mit Operationen

Scheduler Call Verhalten_1 Call Verhalten_2 Endlosschleife Call Verhalten_N Call Arbitrate leitet Ausgaben weiter löst Konflikte zwischen konkurrierenden Verhalten Realisierung der Unterbrecherknoten

3.2.5 Subsumtion mit IC

Ein einfaches Netz Bumper Escape IR-Detektor Avoid S Photozellen Follow S Cruise S Motoren

Verhalten Cruise

Verhalten Follow

Verhalten Avoid

Verhalten Escape

Hauptprogramm

Funktion arbitrate