lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · –...

29
lejON – LeJOS Odometric Navigator Ein Teamprojekt im Fach „Programmierung mobiler Agenten“ für den Masterstudiengang „Informatik/Mobile Systeme“ im Wintersemester 2005/2006 an der Hochschule Harz

Transcript of lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · –...

Page 1: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

lejON – LeJOS Odometric Navigator

Ein Teamprojektim Fach „Programmierung mobiler Agenten“

für den Masterstudiengang „Informatik/Mobile Systeme“im Wintersemester 2005/2006 an der Hochschule Harz

Page 2: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 2

P r o j e k t t e a m

Jan Grohmann, Annedore Rößling, Florian Ruh, Kai Schories

P r o j e k t - H o m e p a g e

http://lejon.sourceforge.net/

Page 3: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 3

Motivation

Odometrie

Architektur

lejON-API

Evaluierung

Fazit

Agenda● Motivation● Odometrie● Architektur● lejON-API● Evaluierung● Fazit

Page 4: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 4

M o t i v a t i o n

Page 5: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 5

Motivation

Odometrie

Architektur

lejON-API

Evaluierung

Fazit

Aufgabenstellung● Entwicklung einer Architektur zur Navigation von

zweirädrigen Robotern mit LeJOS– LeJOS = Lego Java Operating System (vgl. /1/)– Java VM als Firmware-Ersatz auf dem LEGO-

Mindstorms RCX-Baustein● Ziele

– Kapselung der Navigationsfunktionen– Anwender nutzt High-Level-Methoden

statt LeJOS-API direkt– präzisere Navigation als mit

RotationNavigator aus LeJOS– SW-gestützte Regelung der Kursabweichung

Page 6: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 6

Motivation

Odometrie

Architektur

lejON-API

Evaluierung

Fazit

Projektgrenzen● Einschränkungen von Mindstorms und LeJOS

– nur 12 KB RAM für Usercode auf RCX (Microcontroller)– nur 8 Leistungsstufen der Motoren– grobe Auflösung der Rotationssensoren (16 Impulse/U)– geringe Verarbeitungsbreite– kein GarbageCollector– keine long-Arithmetik– Klasse RotationNavigator

● unpräzise Navigation● nur Translation und Rotation möglich● keine Kurvenfahrt● keine eigene API

Page 7: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 7

O d o m e t r i e

Page 8: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 8

Motivation

Odometrie

Architektur

lejON-API

Evaluierung

Fazit

Odometrie● Odometrie: Berechnung von Wegstrecke und

Richtungswinkel– über Rotationssensoren– Impulszählung („Ticks“)– Ermitteln der Umrechnungsfaktoren

● Ticks pro Zentimeter (TPC)● Differentielle Ticks pro Grad (DTPD)

– Berechnen der aktuellen Position und Zielkoordinaten ➔ Kursabweichungen erkennbar

Page 9: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 9

A r c h i t e k t u r

Page 10: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 10

Motivation

Odometrie

Architektur

lejON-API

Evaluierung

Fazit

Hardware-Architektur● beliebige Hardware-Architekturen möglich● hier behandelt: Single Differential Drive (DD)

Page 11: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 11

Motivation

Odometrie

Architektur

lejON-API

Evaluierung

Fazit

DIDI● DIDI = Differential Drive

– Prototyp für ein Single DD (vgl. /2/)– voneinander getrennte Antriebsräder– ein Motor pro Rad➔ zwei Motoren zuständig für Geradeausfahrt,

beide auch für Rotation

Page 12: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 12

Motivation

Odometrie

Architektur

lejON-API

Evaluierung

Fazit

DIDI● Problem/Herausforderung

– gleichmäßige Bewegung u. a. gestört durch● unterschiedliche Motorenbeschaffenheit

(Herstellungstoleranzen, Verschleiß)● Spiel der Zahnräder● Kunststoff als Material aller Bauteile

– Navigation nicht ohne Regelung möglich!

Page 13: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 13

Motivation

Odometrie

Architektur

lejON-API

Evaluierung

Fazit

PID-Regler● Regelung der Stellgröße

– Vergleich Soll-/Ist-Werte– beruht auf Anzahl der Ticks– PID-Konstanten einzeln für jede Architektur berechnen– experimentelles Verfahren nach Ziegler-Nichols

Page 14: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 14

l e j O N - A P I

Page 15: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 15

Motivation

Odometrie

Architektur

lejON-API

Evaluierung

Fazit

SchichtenmodellApplication

Steerer

MotionReport

DriveModel

MotionCommand

LeJOS

Hardware

Page 16: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 16

Motivation

Odometrie

Architektur

lejON-API

Evaluierung

Fazit

Klassen

Thread Sensor Motor Timer

Steerer

<<interface>>TimerListener

PIDController

DDModel

DriveModel

MotionReportPose<<interface>>

SteeringEventListener

DriveParameters

MotionCommand

<<interface>>MotionEvent

Listener

High-Level

Low-Level

Page 17: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 17

Motivation

Odometrie

Architektur

lejON-API

Evaluierung

Fazit

Anwendungsfälle

Set up a motion

Start a motion

Pause motion

Cancel motion

Resume motion

Get a motion report

Page 18: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 18

E v a l u i e r u n g

Page 19: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 19

Motivation

Odometrie

Architektur

lejON-API

Evaluierung

Fazit

Evaluation● Sensorrohdaten (reibungsfreier Zustand)

– Sensor „verschluckt“ Impulse– empfohlene Übersetzung: Sensor:Rad < 1:2

● Basisfiguren, vgl. /4/– getestet mit DIDI

● Translation 50, 100, 200, 400 cm● Rotation 45°, 90°, 180°, 360°● Kurvenfahrt 45°, 90°, 180°, 360° à 50 cm Radius● 5 Messungen je Motorleistungsstufe,

5x8=40 pro Figur, ~500 Messungen à 3 Werte allein für DIDI

– verglichen mit LeJOS-Klasse RotationNavigator

Page 20: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 20

Motivation

Odometrie

Architektur

lejON-API

Evaluierung

Fazit

Evaluation der Translation● Translation

Vergleich der Translation mit gemessenen (M), vom Fahrzeug berechneten (B)Werten und deren relativer Differenz (D) bei Motorleistungsstufe 4

– Abweichungen● M vs. B: wesentliche Verbesserung● M vs. Sollwert: teilweise Verbesserung

50 cm 200 cmM B D M B D

lejON 56,20 54,40 3,6% 203,20 203,80 -0,6%LeJOS 47,67 51,00 -6,7% 173,67 200,67 -27,0%

Page 21: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 21

Motivation

Odometrie

Architektur

lejON-API

Evaluierung

Fazit

Evaluation der Rotation● Rotation

Vergleich der Rotation mit gemessenen (M), vom Fahrzeug berechneten (B)Werten und deren relativer Differenz (D) bei Motorleistungsstufe 4

– Abweichungen● M vs. B: wesentliche Verbesserung● M vs. Sollwert: keine Verbesserung

90° 360°M B D M B D

lejON 143,0 147,2 -4,7% 388,0 397,4 -2,61%LeJOS 100,0 90,0 11,1% 330,0 360,0 -8,33%

Page 22: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 22

Motivation

Odometrie

Architektur

lejON-API

Evaluierung

Fazit

Evaluation der Kurvenfahrt● Kurvenfahrt

Vergleich der Kurvenfahrt mit gemessenen (M), vom Fahrzeug berechneten (B)Werten und deren absoluter Differenz (D) bei Motorleistungsstufe 4

– Abweichungen● M vs. B: hinreichend genau● M vs. Sollwert: bei großen Kreisfahrten

zu kurz („Schlangenlinien“)

90° 360°Soll M B D Soll M B D

lejON X 50 52,0 47,6 4,4 0 -68,8 -70,8 2,0Y 50 53,6 57,8 -4,2 0 50,0 39,0 11,0Θ 90 84,8 83,4 1,4 360 277,2 285,2 -8,0

Page 23: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 23

Motivation

Odometrie

Architektur

lejON-API

Evaluierung

Fazit

Testfazit● Fahrfiguren

– präzisere Geradeausfahrt– jedoch Probleme bei Rotation– hinreichend genaue Kurvenfahrt

● Odometrie des Fahrzeugs– Selbstlokalisation deutlich zuverlässiger– Korrektur damit möglich:

● aktuelle und Zielposition erkennen● erneute Fahrfigur mit Differenzwert fahren

Page 24: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 24

Motivation

Odometrie

Architektur

lejON-API

Evaluierung

Fazit

Testparcours mit DIDI

Demonstration der Korrekturmethodenbei Rotation mit Hilfe der Selbstlokalisation

Vorführung im Rahmen des SPP-1125-Kolloquiums in Magdeburg, 2006

Page 25: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 25

F a z i t

Page 26: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 26

Motivation

Odometrie

Architektur

lejON-API

Evaluierung

Fazit

Zusammenfassung● lejON

– API zur Navigation zweirädriger Roboter mit LeJOS– präziseres Fahren möglich durch PID-Regelung– komfortable Nutzung für Anwender– Kapselung der Navigationsfunktionen– Implementierung für Single Differential Drives

vorhanden (DIDI)– erweiterbar für weitere Implementierungen, z. B. für

Dual Differential Drives (HILDE)

Page 27: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 27

Motivation

Odometrie

Architektur

lejON-API

Evaluierung

Fazit

Ausblick● nächste Mindstorms-Generation NXT

– seit Oktober 2006 (/3/)– 32-bit-Microcontroller– Motoren mit integrierten Rotationssensoren

(1°-Auflösung!)– 100 Leistungsstufen für Motoren regelbar– LeJOS wird darauf portiert werden (/1/)

● Vorgehen zur Portierung von lejON– Low-Level an NXT anpassen– High-Level bleibt unverändert– Anwender definiert lediglich neue PID-Konstanten

Page 28: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 28 /1/ Andrews, P. et al.: leJOS, Java for the RCX; 2002; http://lejos.sourceforge.net/; Stand: 08.03.2006

/2/ Baums, D.: LEGO MINDSTORMS Roboter, Der Profi Guide; Galileo Press GmbH, Bonn, 2000; ISBN 3-934358-39-X

/3/ McNally, M.: Lego Mindstorms NXT Key Product Features; The LEGO Group, Denmark, 2006; http://mindstorms.lego.com/press/2057/LEGO%20MINDSTORMS%20NXT%20Key%20Product%20Features.aspx; Stand: 08.10.2006

/4/ Grohmann, Rößling, Ruh, Schories: lejON – LeJOS Odometric Navigator; Hochschule Harz, Wernigerode, 2006; http://lejon.sourceforge.net/; Stand: 08.10.2006

Literatur

Page 29: lejON - LeJOS Odometric Navigatorlejon.sourceforge.net/docs/lejon_presentation_wait06.pdf · – LeJOS = Lego Java Operating System (vgl. /1/) ... – nur 12 KB RAM für Usercode

13.10.06 Teamprojekt "leJON" im Masterstudiengang Informatik an der HS Harz

Folie 29

Vielen Dank fürs Zuhören!

Es folgt die Diskussion...

Folien und Quellen unterhttp://lejon.sourceforge.net/