(LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development...

52
2002-09-12 / leJOS.ppt / v1.1 / Slide 1 © 2002 Jochen Hiller An Embedded JavaVM for a robot development kit (LEGO Mindstorms TM RCX) Java User Group Stuttgart (JUGS) SIG Embedded Java 2002-09-12

Transcript of (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development...

Page 1: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 1 © 2002 Jochen Hiller

An Embedded JavaVM for a robot development kit

(LEGO MindstormsTM RCX)

Java User Group Stuttgart (JUGS)SIG Embedded Java

2002-09-12

Page 2: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 2 © 2002 Jochen Hiller

Jochen [email protected]

http://www.bauer-partner.com

Principal ConsultantHead of Research

Page 3: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 3 © 2002 Jochen Hiller

Agenda• An Introduction to LEGO Mindstorms• leJOS – LEGO Java Operating System• Java Robotics Programming

– Examples– Live Demos

• Other Examples / Outlook

Page 4: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 4 © 2002 Jochen Hiller

LEGO MindstormsTM – Introduction• History• The Brick• Sensors• Motors• LEGO Parts• The RCX Software

Development Kit

Page 5: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 5 © 2002 Jochen Hiller

LEGO MindstormsTM – History• Mindstorms concept: partnership / sponsorship

– LEGO Group– MIT Media Laboratory

• MIT activities– Starting 1987: Programmable Brick– 4 Versions until 1998, latest big red brick– Driven by Fred G. Martin

• LEGO Group– Development from ground up, reuse philosophy– Brick based software programming for kids– 1998: 1st commercial version available, 80.000 kits/200$/3 months– Strategic product for LEGO, „Legoland“ activity too

Page 6: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 6 © 2002 Jochen Hiller

LEGO MindstormsTM – RIS • RIS: Robotics Invention

System– v1.0, v1.5, v2.0

• Family of products– computer controlled robots

• Latest product:– Vision Command: Camera

(Logitech)

Page 7: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 7 © 2002 Jochen Hiller

LEGO MindstormsTM – The Brick (1)• RCX

– Robotic Command Explorer– v1.0, v2.0 available

Page 8: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 8 © 2002 Jochen Hiller

LEGO MindstormsTM – The Brick (2)• Components

– Batteries (9 V, 6 x 1,5V)– Microcontroller– 4 Buttons– Input Ports– Output Ports– Infrared Serial

Communication Port– Speaker– LCD Display

Page 9: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 9 © 2002 Jochen Hiller

LEGO MindstormsTM – CPU• CPU

– Hitachi H8/3292 series microcontroller

– 16 MHz– 16 KB ROM– 512 B onchip Cache-RAM– ROM contains core functionality

for hardware access

• RAM– 32 kB– Contains firmware and user

programs

Page 10: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 10 © 2002 Jochen Hiller

LEGO MindstormsTM – HMI• Buttons

– On-Off, Run, Prgm, View

• LCD Display– Multi functions– 4 digits + 1 one digit display

• Speaker– Variable frequency and

duration

Page 11: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 11 © 2002 Jochen Hiller

LEGO MindstormsTM – IR Com.• Infrared based communication

– PC - RCX, RCX – RCX– bidirectional

• IR Tower– RS 232, USB versions (from RIS v2.0)

• Firmware and Software download via IR• PC – RCX

– communication via IR Tower• RCX – RCX

– communication via IR serial communications port

Page 12: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 12 © 2002 Jochen Hiller

LEGO MindstormsTM – Sensors• RCX supports 3 sensors to be connected• Available sensors from LEGO:

– Touch sensor– Light sensor– Rotation sensor

• 3rd party sensors available– E.g. compass, temparature, voltage, motion, ...

• Resolution: 10 bit analogue signal (0-1023)

Page 13: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 13 © 2002 Jochen Hiller

LEGO MindstormsTM – Motors• RCX support 3 actuators• Available actuators from LEGO:

– Motors– Lamp

• Motors – can only be controlled via power, internally implemented

via PWM– Speed not changable, only via gears

Page 14: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 14 © 2002 Jochen Hiller

LEGO MindstormsTM – LEGO parts• 717 parts included• LEGO basic and LEGO

technic parts• Specific parts for

robotics added

Page 15: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 15 © 2002 Jochen Hiller

LEGO MindstormsTM – RCX SDK• LEGO provides Software Development Kit

– Tutorial– Integrated Development Environment (RCX Code)

• Brick based programming paradigm

– RCX Firmware (0309)– Scripting Language (Mindscript)

• RCX firmware– Interpreter, leaves 6 kB code for user programs– Limitations

• No floating point number support• 32 variables, no arrays

Page 16: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 16 © 2002 Jochen Hiller

LEGO MindstormsTM – Alternatives• NQC: Not Quite C, Dave Baum• pbForth: Forth implementation• VisualBasic

– Spirit.OCX : Control as part of core LEGO RCX SDK

• legOS: C/C++ based implementation of an OS

Page 17: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 17 © 2002 Jochen Hiller

leJOS – An Embedded JavaVM• History• Overview• Features• RCX specific extensions

Page 18: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 18 © 2002 Jochen Hiller

leJOS – History• leJOS : LEGO Java Operating System• How to pronounce: [layhoss]

– Like Spanish word: „lejos“ which means far

• Initially developed by José Solorzano– First version available as TinyVM– 09 / 2000: v1.0alpha2 released– 09 / 2001: v1.0.2, first stable release– 05 / 2002: v1.0.5 released, 3k more memory– 07 / 2002: v2.0: communication, smaller footprint, performance

optimisations

Page 19: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 19 © 2002 Jochen Hiller

leJOS – Overview• leJOS is a JavaVM for very small devices

– 8 bit microcontroller, <32 kB RAM

• leJOS has a small footprint (~16 kB)• leJOS replaces the LEGO firmware• leJOS is the JVM running on RCX

Page 20: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 20 © 2002 Jochen Hiller

leJOS – Memory Layout• 4 KB Off Limits used by

ROM• Direct Memory Access• PersistentMemoryArea

– Exists after a run– Destroyed by new program

download• Recyclable objects

– Provided through API• No Garbage Collection

16 kBROM

16 kBROM

~16 kBleJOS JVM~16 kB

leJOS JVM

~12 kBUser Programs

~12 kBUser Programs

4 KBOff Limits

4 KBOff Limits

Page 21: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 21 © 2002 Jochen Hiller

leJOS – Features (1)• Floating point numbers

– The only RCX language support FP– Enables trigonometric functions– 32 bit floats only support– Doubles can be used, but will be mapped to floats– Trigonometric functions in java.lang.Math

• Threads– Preemptive scheduling algorithm– Supports synchronize and interrupting– Up to 255 threads supported

Page 22: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 22 © 2002 Jochen Hiller

leJOS – Features (2)• Arrays

– 1-dimensional AND multi-dimensional Arrays supported

• Event Model– Supports Java Event Model: Listeners, Event Sources– Timer (TimerListener)– Button (ButtonListener)– Sensor (SensorListener)

• Recursion– Max. 10 levels of recursion allowed (Stack limitation)– Dependent of number of local variables

Page 23: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 23 © 2002 Jochen Hiller

leJOS – Features (3)• Exceptions

– leJOS supports complete exception handling

try {...

} catch (Exception type) {...

} finally { // optional...

}

– >15 exceptions implemented in java.lang

Page 24: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 24 © 2002 Jochen Hiller

leJOS – Features (4)• Exceptions

– Exception display: limited to LCD display0052^3

0052 Method exception raised3 Exception class

– Numbers generated within a signature file– RCX beeps for one second

Page 25: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 25 © 2002 Jochen Hiller

leJOS – Features (5)• Collections

– Hashtable and Vector supported (not all methods)

• Garbage Collection– Not yet supported– Implementation under progress– JVM is prepared to maintain object state

• Reflection– Not supported– Some classes implemented as a dummy to satisfy tools (e.g. Class for javac and jikes)

Page 26: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 26 © 2002 Jochen Hiller

leJOS – RCX extensions (1)• Package josx.platform.rcx• Outputs

– Support for Motor, A/B/C are predefined

• Inputs– All Sensor types with all modes (Raw, Binary, ...) supported– SensorListener available

• Button– Can be reprogrammed (except On-Off)– Button, ButtonListener available

Page 27: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 27 © 2002 Jochen Hiller

leJOS – RCX extensions (2)• System Time

– Time resolution in milliseconds– josx.util.Timer, josx.util.TimerListener

• Battery power:– josx.platform.rcx.Battery

• LCD support– Direct programming of LCD elements– Funny TextLCD support, emulating alphanumeric characters

• Speaker– Complete control over frequency and duration– josx.platform.rcx.Sound

Page 28: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 28 © 2002 Jochen Hiller

leJOS – RCX extensions (3)• Multiple programs

– Up to 8 programs can be stored, downloading mutliple class files

• IR Remote Control– Very limited support

Page 29: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 29 © 2002 Jochen Hiller

leJOS – RCX extensions (4)• IR Communication

– PC – RCX / RCX – RCX communication supported

• Multiple protocols– LLC (Low Level Communication)– F7 (LEGO F7 Opcode protocol)– LNP (LEGO Network Protocol), also used by legOS

Page 30: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 30 © 2002 Jochen Hiller

leJOS – Tools (1)• leJOS acts as wrapper for standard Java tools

– Compiler: lejosc– Disassembler: lejosp– Class format until 1.3 supported, 1.4 under progress

• Linker: lejos– Intelligent linker: collects only referred classes– Under progress: Static program analysis, collecting on

method level

Page 31: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 31 © 2002 Jochen Hiller

leJOS – Tools (2)• Loader: lejosrun• Firmware download: lejosfirmdl• Emulation support (without UI)

– Linker: emu-lejos– Loader: emu-lejosrun

• Extension for some Java IDE‘s available– jEdit, Eclipse, special RCX IDEs, others

Page 32: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 32 © 2002 Jochen Hiller

Java Robotics Programming• Examples

– HelloWorld– Behaviour Control– Navigator

• Live Demos

• Try yourself ?

Page 33: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 33 © 2002 Jochen Hiller

Example – HelloWorldimport josx.rcx.*;

public class HelloWorld {public static void main () {LCD.clear();TextLCD.print(„hello“);Thread.sleep(2000);TextLCD.print(„world“);Thread.sleep(2000);

}}

Page 34: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 34 © 2002 Jochen Hiller

Example – DisplayExceptionimport josx.rcx.*;

public class DisplayException {public static void main(String[] aArg) {

LCD.clear();TextLCD.print("start");enforceException ();

}public static void enforceException () {throw new RuntimeException ();

}}

Page 35: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 35 © 2002 Jochen Hiller

Robotics – Behavior Control (1)• Pattern from Robotics programming• Defined by Rodney Brooks, MIT AI Lab• Influenced by insect world, observing the

nature• Named: Subsumption architecture � Behavior

control

Page 36: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 36 © 2002 Jochen Hiller

Robotics – Behavior Control (2)Example:Behaviour Condition Action Priorit

y

Follow light Brightness detected Drive towards lights Low

Go home Battery level low Drive to starting point Mid

Collision Touch sensor pressed Back Up and Rotate High

Page 37: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 37 © 2002 Jochen Hiller

Robotics – Behavior Control (3)package josx.robotics;

public interface Behavior {boolean takeControl();void action();void suppress();

}

public class Arbitrator {public Arbitrator(Behavior[] behaviors);public void start();

}

Page 38: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 38 © 2002 Jochen Hiller

Example – Behavior Control (1)public class DriveForward

implements Behavior {public boolean takeControl() {return true;

}public void action() {Motor.A.forward ();Motor.C.forward ();

}public void suppress() {Motor.A.stop();Motor.C.stop();

}}

Page 39: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 39 © 2002 Jochen Hiller

Example – Behavior Control (2)public class Collision implements Behavior {public boolean takeControl() {return Sensor.S1.readBooleanValue();

}public void action() {Motor.A.backward(); Motor.C.backward();Thread.sleep(500);Motor.A.stop(); Thread.sleep(1000);Motor.C.stop();

}public void suppress() {Motor.A.stop(); Motor.C.stop();

}}

Page 40: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 40 © 2002 Jochen Hiller

Example – Behavior Control (3)public class BumperCar {public static void main(String[] aArg) {Behavior b1 = new DriveForward ();Behavior b2 = new Collision ();Behavior[] b = {b1, b2};Arbitrator arby = new Arbitrator (b);arby.start ();

}}

Page 41: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 41 © 2002 Jochen Hiller

Robotics – Navigator (1)• Navigation pattern, based on

– Direction– Distance

• Requires java.lang.Math, trigonometric functions

• Multiple Implementations available– TimingNavigator

– RotationNavigator

Page 42: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 42 © 2002 Jochen Hiller

Robotics – Navigator (2)package josx.robotics;

public interface Navigator {void forward ();void backward ();void stop ();void travel (int distance);void rotate (float angle);void gotoAngle (float angle);void gotoPoint (float x, float y);float getX ();float getY ();float getAngle ();

}

Page 43: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 43 © 2002 Jochen Hiller

Robotics – Timing Navigatorpublic TimingNavigator (Motor left, Motor right,int timeOneMeter, int timeRotate);

• Requires two motors• Requires timing information for

– Direction change– Distance

• Accuracy not optimal

Page 44: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 44 © 2002 Jochen Hiller

Outlook - leJOS / VisionCommand• Prototype from Simon Ritter, Java Evangelist at SUN• Java API for VisionCommand (Lawrie Griffiths)

– JMF motion detection software– Support for a live video viewer (snapshot, video capture)– Support for region definition– Support for color and light– leJOS remote method execution package

• First implementation with X10XCam2 (wireless) available

Page 45: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 45 © 2002 Jochen Hiller

Outlook – Other Approaches• Other platform implementations of leJOS

– E.g. Prototypes have been implemented for Nintendo Gameboy

• RCX Emulator (Andy Gombos)– Complete RCX Brick Emulator

• EmuLegOS– legOS emulator

Page 46: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 46 © 2002 Jochen Hiller

leJOS works in ISS• LEGO Ultimate Builders Competition (11/2001)• Winner: Konrad und Bastian Schwarzenbach• Jitter: „Garbage collector within ISS“

– Collects pieces– Funny Behavior for communication with astronauts

• Sensors, Actuators– Light, rotation, IR sensons– Impuls control

• Software– Based on leJOS (not TinyVM)

Page 47: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 47 © 2002 Jochen Hiller

leJOS works in ISS – Jitter (1)

Page 48: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 48 © 2002 Jochen Hiller

leJOS works in ISS – Jitter (2)

Page 49: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 49 © 2002 Jochen Hiller

Examples - Ballfaenger

Page 50: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 50 © 2002 Jochen Hiller

Examples - RookerBoogie

Page 51: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 51 © 2002 Jochen Hiller

Resources (1)• LEGO Mindstorms

– http://www.mindstorms.lego.com: The official LEGO Mindstorms homepage

– http://graphics.stanford.edu/~kekoa/rcx: Kekoa Proudfoot, excellent reengineering of Hardware / Software

– Dave Baum: LEGO Mindstorms Roboter, ISBN 3-934358-39-X

– Jonathan B. Knudsen: The unofficial guide to LEGO Mindstorms, ISBN 1-56592-692-7

Page 52: (LEGO Mindstorms TM - JUGS · LEGO Mindstorms TM –RCX SDK • LEGO provides Software Development Kit – Tutorial – Integrated Development Environment (RCX Code) • Brick based

2002-09-12 / leJOS.ppt / v1.1 / Slide 52 © 2002 Jochen Hiller

Resources (2)• leJOS

– http://www.lejos.org: The official homepage of leJOS– http://tinyvm.lejos.org: The leJOS predecessor– http://www.info.ucl.ac.be/people/chp/projects/javarcx/eclip

se/: Eclipse-Plugin, from Christophe Ponsard– Brian Bagnell: LEGO Mindstorms programming, ISBN 0-

13-009364-5• Other RCX languages

– http://legos.sourceforge.net: An C/C++ operating system for LEGO Mindstorms. Renamed to BrickOS in 2002.