Lego NXT & LeJOS. Eine Einführung

Ähnliche Dokumente
Künstliche Intelligenz - Logische Agenten und Roboter

Daniel Braun. Roboter programmieren. mit NXT-G für LEGO MINDSTORMS NXT

Der Lego NXT Roboter. Hochschule Mannheim Fakultät für Informatik

Softwarepraktikum Teamrobotik SS Gruppe 2

Vergleich zwischen Open Roberta / NEPO und LEGO MINDSTORMS EV3 / EV3-G. - Übersicht/Fact-Sheet - Programmblöcke - Beispielprogramme

Roberta - Tutorial Unterschiede EV3/NXT. Fraunhofer IAIS. v0.1_ TL, BJ

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

Programmierung von Steuerungsalgorithmen für mobile Roboter (Lego-NXT) SOFTWAREPRAKTIKUM SS 2007 ( NICO GEBAUER, STEFAN KIRST, FLORIAN TANKE)

Postenblatt 1: Berührungssensor

Roboter programmieren mit NXT-G für LEGO MINDSTORMS NXT Braun

Softwarepraktikum Teamrobotik SS 2007

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

Lejos LEGO-Mindstorms-Roboter in Java programmieren

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

lejon LeJOS Odometric Navigator

Die Denkschule 1 Reto Speerli

Gforth EC auf dem NXT Brick

Kapitel IV: Hardware. Inhalt

Arbeitsblatt: Berührungssensor (Posten 1)

qfix ASCII-Protokoll

Microcomputer be-greifbare Informatik

Ultraschallsensoren von Alexandra Bauer

Fakultät für Informatik, Institut für Robotik Laborpraktikum I - Medizinarena Legorobotik in C EV3

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

Lego Roboter mit NXT-G programmieren. Hochschule Mannheim

JoyPi. Time for more. Experiment und Education Koffer

EV3-TECHNIK. EV3-Sensoren

Inhaltsverzeichnis. Vorwort NXTundNXC DerNXT NXC Not exactly C Compiler Zusammenfassung 17

Robot-Design Software

LEGO MINDSTORMS NXT MIT LABVIEW 2009 PROGRAMMIEREN

EV3 JAVA-PROGRAMMIERUNG MIT LEJOS INSTALLATIONSANLEITUNG INHALT

[ Experiment- und Datenprotokollierung. mit der EV3 Software]

Technologie. NXT-Hauptmenü My Files

Anywhere Weather LW 301 Smartphone-Wetterstation UVP: 199,00

Wie können See how wir far Enchanting away something mitteilen, is. dass am NXT der Lichtsensor an Port 3 angeschlossen ist?

Programmieren mit RoboLab Bauen mit Lego

Herunterladen der Harmony-App. Inhalt

Erste Schritte zum Start findest du hier:

Ortsbestimmung und Ortsmodelle

Roboter programmieren mit NXC für LEGO MINDSTORMS NXT

Einführung in die Informatik Turing Machines

1.1 Features der Software Folgende Änderungen bzw. Neuerungen sind gegenüber der alten KPS-Lite 2009 Software enthalten:

Die Einführung von mehreren "Start Bausteinen", um das Programm zu starten, realisiert leicht die parallele Programmverarbeitung (Parallele Tasks).

RobotC Beispielprogramme für EV3 Kepler Gymnasium Weil der Stadt Thomas Jörg Stand: 03. September 2018 Version 1.5

Schrittmotorsteuerung PL0061

Programmierung mit LEGO MINDSTORMS NXT. Begrüßung und Organisatorisches

Jan Monsch. Donnerstag, 2. Mai 13

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

NWT Projekt Jannik Karl NWT Projekt Arbeit Legoroboter

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

APEX und Drucken! - Die Schöne und das Biest!

HOW TO. BEHRINGER MOTÖR61/49 Keyboards. Zuweisung des MC Modus in der DAW (Digital Audio Workstation / Sequenzer)

APEX, MIDI und das LAUNCHPAD

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

USB Datenerfassungs- und Steuerungsmodul HB628

Einführung in die Informatik Turing Machines

s aufräumen in Outlook 2016

JPSKmail Schnellstart

Datenblatt: i3touch. Features:

EINFÜHRUNG LEGO MINDSTORMS

Arbeiten mit programmierbaren Robotern am Beispiel von LEGO Mindstorms NXT. Mag. DI Gerald Höfler, Georg von Peuerbachgymnasium, LINZ

LEGO MINDSTORMS PRÄSENTATION. PPS im Sommersemester 2007

Pacman. Projektbeschreibung. Aus was wir Pacman nachgebaut haben. Anpassungen and die physikalische Welt, oder wie wir das

LEGO MINDSTORMS Von RCX zu EV3

Programmierung der Lego Mindstorms NXT- Roboter mit lejos!

First Lego League (FLL) ist ein naturwissenschaftliches Teamprojekt für Jungen und Mädchen gleichermaßen

Fraunhofer IAIS. Lernen mit Robotern. Roberta Grundlagen und Experimente. Roberta-Reihe Band 1 - NXT

Sensoren Blöcke. Sensoren Ultraschallsensor. Neu in 2.1 ist die Einbindung verschiedener Sensoren.

Software zur Gestensteuerung von Windows 7 über Kinect for Xbox

Workshop #1 Grundlagen, Motorsteuerung, Schleifen

DMXface ACTIVE SEND mit RS232

Zur Einarbeitung in die Arduino Welt reichen die Folgenden Komponenten aus.

Fakultät für Informatik, Institut für Robotik Laborpraktikum I Legorobotik in JAVA

s aufräumen in Thunderbird v45.3

Pflichtenheft. Projektarbeit. RoboSim (NXT)

Künstliche Intelligenz

Programmierung mit NQC: Kommunikation zwischen zwei RCX

Lego Mindstorms. Diverse Übungen. Autor: Franz Philipp Website:

Putzi4Win 1/ 9. Dokumentation

Aufgabe Im Quadrat fahren

Abschlusspräsentation. Marcel Maier Marius Fabian Sebastian Abele Konstantin Meyer

Arduino Grundkurs. 3. Schreibe eine Funktion für das Morsezeichen S und eine für O

Mac OS X MOUNTAIN LION. Kostenloser Download unseres Grafik Design-Magazins ULTIMATE GUIDE TECHNOLOGY DER ULTIMATIVE GUIDE FÜR

Teil 1 Erste Schritte mit Arduino 1

Praktikum Softwareentwicklung 2

Liste MI / Liste I Programmieren in C++

Geräte Devices. Einleitung

Embedded Software. Praktikum. Licht- und Schlafphasenwecker Lukas Scharlau Timo Schwarte

Transkript:

Lego NXT & LeJOS Eine Einführung

Inhalt Das NXT Set Brick Originalzubehör 3 rd Party Zubehör LeJOS Einleitung Features Einschränkungen

Das NXT Set Der Brick 32 bit Arm7 MC 256KB Flash 64KB RAM Integrierter Lautsprecher 3 Ausgänge für Motoren 4 Eingänge für Sensoren USB und Bluetooth Verbindungsmöglichkeiten

Originalzubehör Geräuschsensor Druckkontaktsensor Lichtsensor Ultraschallsensor Reichweite bis 255cm Funktioniert am Besten wenn er in einem 90 Winkel zum Ziel steht Gibt die kürzeste Distanz im gemessenen Bereich zurück

Originalzubehör (Forts.) Licht- und Farbsensor Erkennt Farbtöne Gibt einen quasi-durchschnittsfarbwert des beobachteten Bereichs zurück Kann auch als Licht benutzt werden Servomotor Mit eingebautem Rotationssensor Akzeptiert verschiedene Einstellungen (Umdrehungen pro Minute, Leerlauf etc.)

3 rd Party Zubehör Kompasssensor RFID-Sensor Kann RFID-Tags auslesen... oder spontan in Flammen aufgehen EOPD-Sensor Alternative zur Entfernungsmessung Präziser, aber maximal auf 20 cm nutzbar Touchsensor Multiplexer Für bis zu 4 Touchsensoren an einem Port

LeJOS - Einleitung Lego Java OS Wird seit 2006 entwickelt (Aktuelle Version: 0.85) Abgespeckte Java VM/Firmware für NXT Bricks sowie API Bietet Eclipse und Netbeans Plugins Basiert auf dem Java 1.6 Standard

LeJOS - Features Basiert (größtenteils) auf Java 1.6 Bietet Zusatzklassen für häufige Aufgaben (z.b. Pilotklasse, Lokalisationsklassen etc.) Schneller als NXT-G Umfangreiche Tutorials und Beispielprogramme verfügbar Unterstützt einen Großteil der für NXTs verfügbaren Zusatzausstattung Funktionsumfang grob vergleichbar mit JME

LeJOS - Einschränkungen Funktionsumfang grob vergleichbar mit JME Noch im Beta-Stadium, also noch streckenweise buganfällig oder unvollständig Sehr eingeschränkte Collection-Klassen Hilfsklassen sind teilweise nicht universell einsetzbar Manche Zusatzausstattung wird nicht oder nur teilweise unterstützt

Nützliche Links Wiki dieses Kurses http://www.software-quality.fh-koeln.de/robotics/ Downloads und Infos zu Lejos http://lejos.sourceforge.net/ Lego Digital Designer http://ldd.lego.com/

Noch Fragen?

Lego NXT & LeJOS Eine Einführung 1 Dieses Dokument enthält die Folien und Notizen zur Einführungspräsentation des KI2 Praktikums (WS 2010/2011) der FH Köln, herunterladbar auf unserem Wiki.

Inhalt Das NXT Set Brick Originalzubehör 3 rd Party Zubehör LeJOS Einleitung Features Einschränkungen 2

Das NXT Set Der Brick 32 bit Arm7 MC 256KB Flash 64KB RAM Integrierter Lautsprecher 3 Ausgänge für Motoren 4 Eingänge für Sensoren USB und Bluetooth Verbindungsmöglichkeiten 3 Es ist wichtig, darauf zu achten die Grenzen von Flash und RAM nicht zu überschreiten. So kann es beispielsweise vorkommen, dass umfangreiches Logging mit Dateiausgabe während des Programmablaufs den Flash auffüllt und zum Programmabbruch führt. Das heißt selbstverständlich nicht, dass Logging nicht nützlich zum Debugging ist, derartige Funktionen sollten aber als potentielle Übeltäter in Betracht gezogen werden, falls ein Programm unerwartet nach einer gewissen Zeit eine Exception wirft und abbricht. Ähnliches gilt für Referenzen innerhalb des Programms, es sollte darauf geachtet werden, keinen Datenmüll in Listen o.ä. Aufzubewahren, um dem Garbage-Collector die Gelegenheit zu geben den RAM frei zu halten.

Geräuschsensor Druckkontaktsensor Lichtsensor Ultraschallsensor Reichweite bis 255cm Originalzubehör Funktioniert am Besten wenn er in einem 90 Winkel zum Ziel steht Gibt die kürzeste Distanz im gemessenen Bereich zurück 4 Der Geräuschsensor kann dazu verwendet werden, einfache und distinktive Geräusche zu erkennen um entsprechend innerhalb des Programms zu reagieren. Der Druckkontaktsensor kennt nur zwei Zustände: Gedrückt/Nicht Gedrückt, kann also nicht Krafteinwirkung oder Ähnliches genauer registrieren. Der Lichtsensor kann die Helligkeit einer Oberfläche messen, dazu ist entweder der aktive (Mit eigener Ausstrahlung von Infrarotlicht) oder passive (Ausschließlich Messung mit Hilfe des Umgebungslichts) Modus verfügbar. Der Ultraschallsensor besteht aus Sender und Empfänger, er misst die Zeit die die Schallwellen benötigen um von einer angepeilten Oberfläche zu reflektieren und wieder empfangen zu werden. Es ist zu beachten, dass alle USS mit der selben Frequenz arbeiten, es also durchaus zu Interferenzen kommen kann wenn mehrere USS in der gleichen Umgebung benutzt werden.

Originalzubehör (Forts.) Licht- und Farbsensor Erkennt Farbtöne Gibt einen quasi-durchschnittsfarbwert des beobachteten Bereichs zurück Kann auch als Licht benutzt werden Servomotor Mit eingebautem Rotationssensor Akzeptiert verschiedene Einstellungen (Umdrehungen pro Minute, Leerlauf etc.) 5 Der Farbsensor gibt einen "Durchschnittsfarbwert" des untersuchten Bereiches zurück, des Weiteren hängt seine Performance zumindest zum Teil von der Umgebungsbeleuchtung ab. Es ist möglich, die Rohwerte in RGB und Helligkeit auszulesen und somit eigene Algorithmen zur Analyse & Einschätzung der Farbwerte zu verwenden. Die Servomotoren können mit relativ hoher Genauigkeit angesteuert werden um sich beispielsweise gradweise zu bewegen, somit lassen sich festgelegte Distanzen zurücklegen. Ein wichtiges Detail unter LeJOS ist, dass die Methoden zu Motoransteuerung überladen sind, wobei einige Methoden warten bis die Bewegung abgeschlossen ist, andere dahingegen sofort zurückkehren (Also die Kontrolle an das Hauptprogramm zurückgeben)

Kompasssensor RFID-Sensor 3 rd Party Zubehör Kann RFID-Tags auslesen... oder spontan in Flammen aufgehen EOPD-Sensor Alternative zur Entfernungsmessung Präziser, aber maximal auf 20 cm nutzbar Touchsensor Multiplexer Für bis zu 4 Touchsensoren an einem Port 6 Der Kompasssensor gibt wie erwartet die Himmelsrichtung an, beim Design eines Bots mit Kompasssensor gibt es allerdings einige Stolperfallen: Der Sensor reagiert empfindlich auf nahe elektromagnetische Felder, darf also nicht zu nah an den Motoren verbaut werden (Eine vernünftige Mindestdistanz ist 20 cm) und kann u.u. von Stromleitungen in Wänden und Böden abgelenkt werden. Der RFID-Sensor leidet an Depressionen und erhöhter Suizidgefahr, wenn ihr ihn benutzt, rechnet mit einem raschen Ende seiner Kooperationsbereitschaft. (Und ohne für allzu viele Überraschungen sorgen zu wollen, wenn er kooperiert ließt er RFID-Tags aus) Der EOPD-Sensor ist gut für den Einsatz auf kurze Reichweiten geeignet und weitestgehend unempfindlich gegenüber Interferenzen. Der Touchsensor Multiplexer kann benutzt werden um bis zu 4 Touchsensoren an einem Sensorport anzuschließen, die Zustände der Sensoren werden in einem Byte abgespeichert und können abgefragt werden.

Lego Java OS LeJOS - Einleitung Wird seit 2006 entwickelt (Aktuelle Version: 0.85) Abgespeckte Java VM/Firmware für NXT Bricks sowie API Bietet Eclipse und Netbeans Plugins Basiert auf dem Java 1.6 Standard 7 LeJOS NXT ist eine Portierung des Original LeJOS, welches für den ursprünglichen RCX Brick entwickelt wurde. Da es sich um ein Community-Projekt handelt, ist es teilweise schwer abzuschätzen wie weit einzelne Features entwickelt sind (So ist beispielsweise das instanceof keyword erst seit Version 0.85 integriert); während es weitestgehend ausreichend bis gut dokumentiert ist, ersetzt die Dokumentation oft keine persönlichen Tests. Andererseits ergeben sich die "Mängel" von LeJOS oft aus einer mangelnden Notwendigkeit. Manchmal lohnt es sich, sich die Frage zu stellen ob beispielsweise ein voll integrierter Heap wirklich sinnvoll ist wenn die Datenstruktur nur zehn, zwanzig oder auch hundert Datensätze verwalten muss, oder ob es anders betrachtet eine gute Idee ist, auf einem NXT Brick Programme zu entwickeln die hunderttausend Datensätze benötigen.

LeJOS - Features Basiert (größtenteils) auf Java 1.6 Bietet Zusatzklassen für häufige Aufgaben (z.b. Pilotklasse, Lokalisationsklassen etc.) Schneller als NXT-G Umfangreiche Tutorials und Beispielprogramme verfügbar Unterstützt einen Großteil der für NXTs verfügbaren Zusatzausstattung Funktionsumfang grob vergleichbar mit JME 8 Die Hauptfeatures von LeJOS (Abgesehen von den standard Java Features) bestehen aus dem ständig erweiterten Support für neue Zusatzprodukte (Wobei einige Geräte, wie beispielsweise der Standard Sensor Multiplexer, zum jetzigen Zeitpunkt noch nicht unterstützt werden) und einer gut dokumentierten API. Des Weiteren ist auch eine kleinere API für PC-Client- Programme (Also für den PC geschriebene Programme die mit dem Brick kommunizieren) verfügbar, was beispielsweise ermöglicht einen Großteil der Berechnungen bei komplexeren Problemen auszulagern und so Rechenleistung auf dem Brick frei zu halten. Zu guter Letzt: Da LeJOS open source ist, ist es jedem Nutzer möglich die offiziellen Klassen zu verändern oder erweitern und eventuelle Verbesserungen direkt der Community zur Verfügung zu stellen. Weitere Informationen sind auf der LeJOS sourceforge Seite verfügbar.

LeJOS - Einschränkungen Funktionsumfang grob vergleichbar mit JME Noch im Beta-Stadium, also noch streckenweise buganfällig oder unvollständig Sehr eingeschränkte Collection-Klassen Hilfsklassen sind teilweise nicht universell einsetzbar Manche Zusatzausstattung wird nicht oder nur teilweise unterstützt 9 Einige der angeboteten Features von LeJOS erweisen sich bei der Integration und Nutzung in Agenten als nicht vollkommen und uneingeschränkt adäquat; oft lassen sich solche Probleme durch kleinere Fixes oder Tests zur vorgesehenen Nutzung lösen, gelegentlich erweist sich eine Hilfsklasse aber auch als den Umständen nicht anpassbar. Ein Beispiel hierfür ist die Pilot-Klasse. Während diese Klasse weithin einsetzbar ist, scheint es Radkombinationen zu geben die bei der Entwicklung nicht vorgesehen wurden, was teilweise zu problematischen Ergebnissen bei Präzisionsfahrten führen kann. Ist Präzision keine hohe Priorität des Agenten, dann kann dieses Problem ignoriert werden, andernfalls kann es nötig werden das Programm oder das Botdesign anzupassen. Wenn das alles nicht hilft (Oder nicht möglich ist) bleibt in diesem Fall nur die Entwicklung einer eigenen Ersatzklasse.

Wiki dieses Kurses Nützliche Links http://www.software-quality.fh-koeln.de/robotics/ Downloads und Infos zu Lejos http://lejos.sourceforge.net/ Lego Digital Designer http://ldd.lego.com/ 10 Weitere Links sind auf dem Wiki verfügbar, Interessante und Nützliche neue Links sind natürlich auch jederzeit willkommen!

Noch Fragen? 11 Falls ja, ihr wisst ja wann und wo ich zu finden bin.