Mobile Agents. Uwe Lämmel. Hochschule Wismar Wismar University of Technology, Business, and Design Business School. Mobile Agents LEGO RCX -1 -

Size: px
Start display at page:

Download "Mobile Agents. Uwe Lämmel. Hochschule Wismar Wismar University of Technology, Business, and Design Business School. Mobile Agents LEGO RCX -1 -"

Transcription

1 Mobile Agents Hochschule Wismar Wismar University of Technology, Business, and Design Business School

2 Contents RCX-LEGO-Robot: The Hardware The LEGO Programming Environment Not Quite C and the Command Center Examples Agents and Robots Delphi and the RCX Java and the RCX -2 -

3 RCX The Hardware LEGO MINDSTORMS bit Hitachi H8 microprocessor 16K internal ROM 32K static RAM, 6K "user memory" only Firmware: bytecode interpreter -3 -

4 RCX - Components 3 input ports (sensors) light-, touch, temperature-, rotation- 3 output ports (motors) Infra red interface User interface: LCD display, 4 buttons On/Off, Prgm, Run, View Power supply: 6 x R6 : 6 x 1,5V = 9V sound (programmable) -4 -

5 The LEGO Programming Environment RIS - Robotic Invention System graphical programming environment simple statements O.K. for children -5 -

6 Not Quite C and the Command Centre RXC Command Center Mark Overmars, Dep. of Comp. Sc., Univ. Uetrecht Version 3.01, October 1999 NQC programming environment Direct control of the RCX Monitoring the RCX Bricx Command Center John Binder Enhanced Version of the RcxCC -6 -

7 NQC - Not Quite C Drive in a square #define Tahead 150 #define Tturn 198 #define Nrepeat 4 #define ML #define MR #define MM OUT_A OUT_C ML+MR task main() { repeat (Nrepeat) { SetPower(MM,4); OnFor(MM,Tahead); SetPower(ML,2); On(MR); Wait(Tturn); }// repeat Off(MM); }//main -7 -

8 Sensors in NQC SetSensor(SENSOR_1, SENSOR_TOUCH); // Defines sensor 1 as a touch sensor Sensor configuration Type Values ClearSensor() SENSOR_TOUCH touch 0 - not pressed / 1 - pressed no SENSOR_LIGHT light from 0 (dark) to 100 (bright) no SENSOR_ROTATION rotation 16 for one rotation yes SENSOR_CELSIUS temperature Celsius *10 no SENSOR_FAHRENHEIT temperature Fahrenheit * 10 no SENSOR_PULSE touch number of touches yes SENSOR_EDGE touch number of state transitions yes -8 -

9 task, function, subroutines Tasks - up to 10 tasks - a program must have a task main - activate a task : start name; - stop a task : stop name; Attention: task sensor_task( ) {... } start sensor_task; stop sensor_task; -9 -

10 task, function, subroutines Subroutines - up to 8 subroutines may be defined - Do not call a subroutine from different tasks! - If called from different tasks then we can not define local variables. - real subroutine, one code section only. - no parameters -10 -

11 task, function, subroutines Functions - "inline function" - not a real subroutine: each call to a function results in another copy of the code being included - Parameters possible: int by value const int by value only constants int& by reference only variables const int& by reference argument can not be changed -11 -

12 task, function, subroutines Makros text substitution definition of constant values grouping statements possible #define turn {Off(MM);OnFwd(MR); \ Wait(80); Off(MM);} - no parameters -12 -

13 Examples Go on a Line Obstacle detection by sending messages Thinking in Rules Where I am? Going on a squared world Synchronisation of Tasks Light Sensor and Fuzzy Variables -13 -

14 Go On a Line # define DARK 45 task main(){ SetSensor(SENSOR_2,SENSOR_LIGHT); while(true){ OnFwd(OUT_A+OUT_C); if (SENSOR_2<DARK){// dark-> turn to light Off(OUT_C); }; //if if (SENSOR_2>DARK){// bright -> turn to dark Off(OUT_A); }//if }//while }//main -14 -

15 Obstacle detection by sending messages #define Turn_left #define Turn_right {OnRev(ML);Wait(T_Turn);OnFwd(ML);} {OnRev(MR);Wait(T_Turn);OnFwd(MR);} task send_signal() { while(true){ SendMessage(SIGNAL); Wait(T_Signal);} } //send_signal task check_signal(){ while(true) { lastlevel = SENSOR_1; if(sensor_1 < lastlevel - RECEIVE) if (Random(2)==0) Turn_left; else Turn_right; }//if }//while }//check_signal -15 -

16 Values of the light sensor blue: 30 cm away from wall red: 15 cm away from wall Light sensor receives the sent messages -16 -

17 Thinking in Rules //-- Rule based programming task rulebase() { while (true) { if(ls<dark) // on a line - go ahead {stop search; state=0; OnFwd(MM);} if(tl==1 TR==1) // obstacle - turn back {stop search; back; state=0;} if(ls>dark && state==0) // off line-search {state=1; start search;} if(timer(0)>t_prog_max) // time over {Off(MM); StopAllTasks();} }//while }// rulebase -17 -

18 Where I am? Going on a squared world fixed start position see the lines sending coordinates correct direction -18 -

19 In a Squared World task mainloop() { while (true) { state=3; getnewcoordinates(); // while goal position not reached do while(ypos!=ydest XPos!=XDest) { setdirection(); turn(); horizontalline(); }//while goal not reeached goalreached(); }//while(true) }//mainloop -19 -

20 Squared World - Detecting a Line do{ //while until (state==1 state==2); // horizontal line if (state==1) {// right eye looks at the line i=0; // try to see the line with the other eye: while(sl<grey&&i<ncorrsteps) { OnFor(ML,T_corr); i++; } } // here the same for left eye looking at the line if (i==ncorrsteps){ // line not found go back and try again if (state==1) OnRev(ML); else OnRev(MR); Wait(T_turnback); OnRev(MM); Wait(T_back); state=0; } } while (i==ncorrsteps); // while line not found -20 -

21 Synchronisation of Tasks no synchronisation: every task controls the motors in parallel stopping tasks: only one task at a time controls the output a task starts always from the very beginning Using semaphores: motor control is synchronised suspension of task is programmed -21 -

22 No Synchronisation task main() { SetSensor(TS,SENSOR_TOUCH); start check_sensors; while (true) { OnFwd(MM); Wait(Tgo); // go a line OnRev(OUT_C); Wait(Tturn); }//while }//main // turn a right-angle task check_sensors() { while (true) { if (TS == 1) { // obstacle touched OnRev(MM); Wait(Tback);// going back OnFwd(OUT_A); Wait(Tturn);// turning OnFwd(OUT_C); }//if }//while }//check_sensors // Go ahead again -22 -

23 Stopping Tasks task move_square() { while (true) { OnFwd(MM); Wait(Tgo); // go a line OnRev(OUT_C); Wait(Tturn); }//while }//main // turn right-angle task check_sensors() { while (true) { if (TS == 1) { // obstacle touched stop move_square; OnRev(MM); Wait(Tback);// going back OnFwd(OUT_A); Wait(Tturn);// turning OnFwd(OUT_C); // Go ahead again start move_square; }//if }//while }//check_sensors -23 -

24 Semaphore task move_square() { while (true) { until (sem==0); sem=1; OnFwd(MM); sem=0; Wait(Tgo); until (sem==0); sem=1; OnRev(OUT_C); sem=0; Wait(Tturn); // turn }//while }//main // wait for access // go a line // wait for access task check_sensors() { while (true) { if (TS == 1) { // obstacle touched until (sem==0); sem=1; // wait for motor access OnRev(MM); Wait(Tback); // going back OnFwd(OUT_A); Wait(Tturn); sem=0; }//if }//while }//check_sensors // turn -24 -

25 Light Sensor and Fuzzy Variables Fuzzy-values for different grounds 1,00 0,80 0,60 0,40 0,20 white area green line black line black area 0,

26 What is a Robot? Illustrated oxford Dictionary, Oxford, 1998: a machine with a human appearance or function like a human a machine capable of carrying out a complex series of action automatically a person who works mechanically and efficiently but insensitively -26 -

27 A robot A brain controls actions and responds to sensor signals. A body holds all the parts together. Actuators allow the robot to move. Sensors give information about the environment. A power source. Mobile robots: tethered autonomous -27 -

28 Delphi and LEGO-OCX LEGO MINDSTORMS Software Developer Kit Spirit.OCX install Spirit.OCX into Delphi Use a TSpiritCtrl object in an application: myrobot : TSpiritCtrl; -28 -

29 Drive in a Square using Delphi-OCX procedure TLEGOMAIN.DownLoadProgButtonClick(Sender: TObject);... begin myrobot.selectprgm(prog2); myrobot.beginoftask(mytask); myrobot.setpower('motor0motor2',con,4); myrobot.setfwd('motor0motor2'); myrobot.loop(con,4); myrobot.on_('motor0motor2'); myrobot.wait(con,tahead); myrobot.off('motor0motor2'); myrobot.on_('motor0'); myrobot.wait(con,tturn); myrobot.endloop(); myrobot.endoftask; end; -29 -

30 import josx.platform.rcx.*; public class Distance { public static boolean go=true; public static void main(string[ ] args){... SendSignal sender = new SendSignal(); Watcher see sender.start(); see.start(); }//main }//Distance = new Watcher(); lejos Program class SendSignal extends Thread { static final byte[ ] message = {-1}; public SendSignal(int millisec) {... } public void run() { while (Distance.go) { Serial.sendPacket(message, 0, 1);... }//while }//run }//SendSignal -30 -

31 lejos-api: class summary -31 -

32 lejos Java for the RCX Java-based operating system (~16k) programs: > lejosfirmdl // download the lejos-firmware > lejosc // Java-Compiler, uses jdk > lejos // download a program into the RCX needs: JDK Java Communcations API Include lejos path into PATH variable SET RCXTTY=COM1-32 -

33 lejos extension of TinyVM TinyVM Object oriented language (Java) Preemptive threads (tasks) Arrays, including multi-dimensional ones Recursion Synchronization Exceptions lejos A Windows version Floating point operations (doubles truncated to 32 bits) String constants Casting of longs to ints and vice versa Marks references in the stack (garbage collection possible) Multi-program downloading java.lang.math sin, cos, tan, atan,

Programming robots with NQC

Programming robots with NQC Programming robots with NQC Eric Martin School of Computer Science and Engineering University of New South Wales Sydney, Australia ENGG1000 (2007) Programming robots with NQC CSE, UNSW 1 / 75 Acknowledgments

More information

School of Computer Science and Engineering The Uno cial Guide to Lego Mindstorms Robots

School of Computer Science and Engineering The Uno cial Guide to Lego Mindstorms Robots Acknowledgments Programming robots with NQC This presentation borrows material from two sources: A tutorial on NQC by Mark Overmars, entitled Programming Lego Robots using NQC, Eric Martin which is available

More information

Programming Lego Robots using NQC

Programming Lego Robots using NQC Programming Lego Robots using NQC William J. Taffe November 2002 Modified from the tutorial originally written by Mark Overmars (Version 3.03, Oct 2, 1999) Preface The Lego MindStorms kits are wonderful

More information

Programming Lego Robots using NQC

Programming Lego Robots using NQC Programming Lego Robots using NQC (Version 3.04, Feb 14, 2002) by Mark Overmars (revisions by John Hansen) Department of Computer Science Utrecht University P.O. Box 80.089, 3508 TB Utrecht the Netherlands

More information

Computers in Engineering Lab #2 Maze Treasure Searching

Computers in Engineering Lab #2 Maze Treasure Searching Computers in Engineering Lab #2 Maze Treasure Searching Objective The objective of this lab project is to program the robot to tracking the maze. The goal is to pick up all the silver treasure in the maze.

More information

Robotic Behaviors What makes a robot a robot? It is the ability of the robot to independently accomplish complex tasks. Being able to independently

Robotic Behaviors What makes a robot a robot? It is the ability of the robot to independently accomplish complex tasks. Being able to independently Robotic Behaviors What makes a robot a robot? It is the ability of the robot to independently accomplish complex tasks. Being able to independently do things is commonly thought of as a sign of intelligence.

More information

Hands-on Lab. Lego Programming BricxCC Basics

Hands-on Lab. Lego Programming BricxCC Basics Hands-on Lab Lego Programming BricxCC Basics This lab reviews the installation of BricxCC and introduces a C-like programming environment (called NXC) for the Lego NXT system. Specific concepts include:

More information

SSP ROBOT DESIGN A. DEAN 11/29/05 LAB: ROBOT OBJECTS IN LEJOS

SSP ROBOT DESIGN A. DEAN 11/29/05 LAB: ROBOT OBJECTS IN LEJOS SSP 100.9 ROBOT DESIGN A. DEAN 11/29/05 LAB: ROBOT OBJECTS IN LEJOS As we saw in class last Tuesday (well, as at least a few of us saw the rest should check the web for the slides), everything in Java

More information

XS: Lisp on Lego MindStorms

XS: Lisp on Lego MindStorms XS: Lisp on Lego MindStorms Taiichi Yuasa Graduate School of Informatics, Kyoto University Kyoto 606-8501, Japan yuasa@kuis.kyoto-u.ac.jp ABSTRACT We present a Lisp system XS which is designed to control

More information

Non-Portable C-Language for Microcontroller Applications

Non-Portable C-Language for Microcontroller Applications Session 3547 Non-Portable C-Language for Microcontroller Applications Stephanie Goldberg Department of Technology Buffalo State College Abstract A previous goal of the microprocessor/microcontroller class

More information

Fun with Java Technology on Lego Mindstorms

Fun with Java Technology on Lego Mindstorms Speaker logo centered below photo Fun with Java Technology on Lego Mindstorms Roger Glassey University of California, Berkeley Andy Shaw Sun Microsystems LEGO, the LEGO logo, MINDSTORMS, the Brick and

More information

PROGRAMMING ROBOTS AN ABSTRACT VIEW

PROGRAMMING ROBOTS AN ABSTRACT VIEW ROBOTICS AND AUTONOMOUS SYSTEMS Simon Parsons Department of Computer Science University of Liverpool LECTURE 3 comp329-2013-parsons-lect03 2/50 Today Before the labs start on Monday, we will look a bit

More information

what is an algorithm? analysis of algorithms classic algorithm example: search

what is an algorithm? analysis of algorithms classic algorithm example: search event-driven programming algorithms event-driven programming conditional execution robots and agents resources: cc3.12/cis1.0 computing: nature, power and limits robotics applications fall 2007 lecture

More information

Unified Computers & Programming Installation Instructions for Windows

Unified Computers & Programming Installation Instructions for Windows Unified Computers & Programming Installation Instructions for Windows IMPORTANT INSTALLATION NOTE: The USB IR Tower has been known to cause Windows computers to crash if plugged in for prolonged periods.

More information

MaSH Environment nxt. Contents

MaSH Environment nxt. Contents MaSH Environment nxt Andrew Rock School of Information and Communication Technology Griffith University Nathan, Queensland, 4111, Australia a.rock@griffith.edu.au January 2, 2016 Contents 1 Purpose 3 2

More information

Generation of NXC code for control programs

Generation of NXC code for control programs Generation of NXC code for control programs Thao Dang VERIMAG, CNRS (France) NXC Overview The NXT has a bytecode interpreter (provided by LEGO), which can be used to execute programs. The NXC compiler

More information

INTRODUCTION TO ARTIFICIAL INTELLIGENCE

INTRODUCTION TO ARTIFICIAL INTELLIGENCE DATA15001 INTRODUCTION TO ARTIFICIAL INTELLIGENCE THE FINAL EPISODE (11): ROBOTICS TODAY S MENU 1. "GRAND CHALLENGE" 2. LEGO MIND- STORMS 3. ROBO WORKSHOPS ROBOTICS AS A "GRAND CHALLENGE" OF AI actuators:

More information

Final Report. [Establish User Requirements] User must be able to press the run button on the robot, as well as use the NQC software.

Final Report. [Establish User Requirements] User must be able to press the run button on the robot, as well as use the NQC software. Team 3 David Letteer Greg Broadwell Kathryn della Porta BE 1200 Basic Engineering Final Report Final Report [Clarify Objectives] Design, build, and program a robot that will acknowledge the presence of

More information

RCX Tutorial. Commands Sensor Watchers Stack Controllers My Commands

RCX Tutorial. Commands Sensor Watchers Stack Controllers My Commands RCX Tutorial Commands Sensor Watchers Stack Controllers My Commands The following is a list of commands available to you for programming the robot (See advanced below) On Turns motors (connected to ports

More information

ROBOLAB Tutorial MAE 1170, Fall 2009

ROBOLAB Tutorial MAE 1170, Fall 2009 ROBOLAB Tutorial MAE 1170, Fall 2009 (I) Starting Out We will be using ROBOLAB 2.5, a GUI-based programming system, to program robots built using the Lego Mindstorms Kit. The brain of the robot is a microprocessor

More information

Why robotics in Education? DEI The University of Padova

Why robotics in Education? DEI The University of Padova Why robotics in Education? DEI The University of Padova Why robotics in Education? A Picture Is Worth A Thousand Words Why robotics in Education? Emotional engagement Interaction with physical devices

More information

Baggage Sorting Facility

Baggage Sorting Facility 02224 Modelling and Analysis of Real-Time Systems Spring 2018 1 Overview Mandatory Assignment 1 Baggage Sorting Facility This assignment deals with a baggage sorting facility such as the ones found in

More information

Relationship of class to object

Relationship of class to object Relationship of class to object Writing and programming Writing a program is similar to many other kinds of writing. The purpose of any kind of writing is to take your thoughts and let other people see

More information

Part A: Monitoring the Touch Sensor and Ultrasonic Sensor

Part A: Monitoring the Touch Sensor and Ultrasonic Sensor LEGO MINDSTORMS NXT Lab 2 This lab introduces the touch sensor and ultrasonic sensor which are part of the Lego Mindstorms NXT kit. The ultrasonic sensor will be inspected to gain an understanding of its

More information

We are IntechOpen, the world s leading publisher of Open Access books Built by scientists, for scientists. International authors and editors

We are IntechOpen, the world s leading publisher of Open Access books Built by scientists, for scientists. International authors and editors We are IntechOpen, the world s leading publisher of Open Access books Built by scientists, for scientists 3,500 108,000 1.7 M Open access books available International authors and editors Downloads Our

More information

Patterns, frameworks & Lejos: part 1: Behavior control

Patterns, frameworks & Lejos: part 1: Behavior control Patterns, frameworks & Lejos: part 1: Behavior control How robots are like insects Insects are highly successful in the world, managing to perform the necessary functions of life despite the fact that

More information

INDEX. A SIMPLE JAVA PROGRAM Class Declaration The Main Line. The Line Contains Three Keywords The Output Line

INDEX. A SIMPLE JAVA PROGRAM Class Declaration The Main Line. The Line Contains Three Keywords The Output Line A SIMPLE JAVA PROGRAM Class Declaration The Main Line INDEX The Line Contains Three Keywords The Output Line COMMENTS Single Line Comment Multiline Comment Documentation Comment TYPE CASTING Implicit Type

More information

RoboStamp Basic Software (A tutorial by Technotutorz)

RoboStamp Basic Software (A tutorial by Technotutorz) RoboStamp Basic Software (A tutorial by ) The Robostamp robotic kit is one of the robots used as standard in the workshops. Two versions can be built up: the izebot and the RoboTank. The Robostamp can

More information

Today. Robotics and Autonomous Systems. The scenario (again) Basic control loop

Today. Robotics and Autonomous Systems. The scenario (again) Basic control loop Today Robotics and Autonomous Systems Lecture 3 Programming robots Richard Williams Department of Computer Science University of Liverpool Before the labs start on Monday, we will look a bit at programming

More information

Instructions For Constructing A Braitenberg Vehicle 2 Robot From LEGO Mindstorms Components

Instructions For Constructing A Braitenberg Vehicle 2 Robot From LEGO Mindstorms Components Instructions For Constructing A Braitenberg Vehicle 2 Robot From LEGO Mindstorms Components Michael R.W. Dawson, Biological Computation Project, University of Alberta, Edmonton, Alberta September, 2003

More information

Tic-Tac-LEGO: An Investigation into Coordinated Robotic Control

Tic-Tac-LEGO: An Investigation into Coordinated Robotic Control Tic-Tac-LEGO: An Investigation into Coordinated Robotic Control Ruben Vuittonet and Jeff Gray Department of Computer and Information Sciences University of Alabama at Birmingham Birmingham, AL 35294 USA

More information

TinyVM: User's Guide

TinyVM: User's Guide TinyVM (Java for Lego RCX) - User's Guide Page 1 of 3 TinyVM: User's Guide The information in this guide may only apply to the latest version of TinyVM Unix Edition. For the Cross-Platform Edition, please

More information

Team Project: A Surveillant Robot System

Team Project: A Surveillant Robot System Team Project: A Surveillant Robot System Status Report : 04/05/2005 Little Red Team Chankyu Park (Michael) Seonah Lee (Sarah) Qingyuan Shi (Lisa) Chengzhou Li JunMei Li Kai Lin Agenda Problems Team meeting

More information

Lego Robots and Software Design. CITS1220 Software Engineering

Lego Robots and Software Design. CITS1220 Software Engineering Lego Robots and Software Design CITS1220 Software Engineering Lecture Overview 1. Designing NXT Robots 2. NXT Hardware 3. Sensors and Actuator API 4. The Behaviour Interface 2 Software Design is a problem-solving

More information

CMP 108: Programming for Non-Majors

CMP 108: Programming for Non-Majors CMP 108: Programming for Non-Majors Lecture Notes 9 February 2007 Prof. Katherine St. John Lehman College & the Graduate Center City Universtity of New York Katherine St. John City University of New York

More information

NQC Programmer's Guide

NQC Programmer's Guide Version 2.5 a4 by Dave Baum Contents 1 Introduction... 1 2 The NQC Language... 2 2.1 Lexical Rules... 2 2.1.1 Comments... 2 2.1.2 Whitespace... 3 2.1.3 Numerical Constants... 3 2.1.4 Identifiers and Keywords...

More information

Robotics and Autonomous Systems

Robotics and Autonomous Systems Robotics and Autonomous Systems Lecture 13: Navigation in LeJOS Richard Williams Department of Computer Science University of Liverpool 1 / 40 Today From navigation to motion control. 2 / 40 Navigation

More information

An Introduction to the Lego Mindstorms

An Introduction to the Lego Mindstorms Abstract An Introduction to the Lego Mindstorms Daniel Cliburn Assistant Professor Mathematics and Computer Science Hanover College Box 890 Hanover, IN 47243 (812) 866 7286 cliburn@hanover.edu http://www2.hanover.edu/cliburn

More information

Intro to Programming the Lego Robots

Intro to Programming the Lego Robots Intro to Programming the Lego Robots Hello Byng Roboticists! I'm writing this introductory guide will teach you the basic commands to control your Lego NXT Robots. Keep in mind there are many more commands

More information

MS4SSA Robotics Module:

MS4SSA Robotics Module: Robotics Module: Programming and Sensors Kim Hollan Why Program a Robot? Building a robot teaches many valuable skills; however, the learning doesn t stop there Programming also teaches valuable life skills

More information

Agreement. Objectives. General Guidelines for Labs. Reading Assignment

Agreement. Objectives. General Guidelines for Labs. Reading Assignment 1 CMPSC 111 Introduction to Computer Science I Fall 2016 Janyl Jumadinova Lab 9 for Section 1 17 November 2016 Due: 1 December, by 2:30 pm This is a team-based assignment. You have to work in teams of

More information

Workshop Swarm robotics Reactive control of LEGO robots with MDL2e. Thomas Schamm

Workshop Swarm robotics Reactive control of LEGO robots with MDL2e. Thomas Schamm Workshop Swarm robotics Reactive control of LEGO robots with MDL2e Thomas Schamm 23.05.2006 A look on the structure of the presentation Project SIMON Behaviour based robot control LEGO robot pros and cons

More information

Project from Real-Time Systems Lego Mindstorms EV3

Project from Real-Time Systems Lego Mindstorms EV3 Project from Real-Time Systems March 13, 2017 Lego Mindstorms manufactured by LEGO, http://mindstorms.lego.com extension of LEGO Technic line history: RCX, 1998 NXT, 2006; NXT 2.0, 2009 EV3, 2013 why LEGO?

More information

LEGO Mindstorm EV3 Robots

LEGO Mindstorm EV3 Robots LEGO Mindstorm EV3 Robots Jian-Jia Chen Informatik 12 TU Dortmund Germany LEGO Mindstorm EV3 Robot - 2 - LEGO Mindstorm EV3 Components - 3 - LEGO Mindstorm EV3 Components motor 4 input ports (1, 2, 3,

More information

ROBOLAB Reference Guide

ROBOLAB Reference Guide ROBOLAB Reference Guide Version 1.2 2 Preface: Getting Help with ROBOLAB ROBOLAB is a growing application for which users can receive support in many different ways. Embedded in ROBOLAB are context help

More information

An Undergraduate Course in Robotics & Machine Intelligence

An Undergraduate Course in Robotics & Machine Intelligence An Undergraduate Course in Robotics & Machine Intelligence B.A. Juliano & R.S. Renner Institute for Research in Intelligent Systems California State University, Chico 400 West First Street Chico, CA 95929

More information

Not Quite C Compiler version 1.0 b1

Not Quite C Compiler version 1.0 b1 Not Quite C Compiler version 1.0 b1 Introduction NQC is a simple language for programming the LEGO RCX. The preprocessor and control structures of NQC are very similar to C. NQC is not a general purpose

More information

EEL 5666C FALL Robot Name: DogBot. Author: Valerie Serluco. Date: December 08, Instructor(s): Dr. Arroyo. Dr. Schwartz. TA(s): Andrew Gray

EEL 5666C FALL Robot Name: DogBot. Author: Valerie Serluco. Date: December 08, Instructor(s): Dr. Arroyo. Dr. Schwartz. TA(s): Andrew Gray EEL 5666C FALL 2015 Robot Name: DogBot Author: Valerie Serluco Date: December 08, 2015 Instructor(s): Dr. Arroyo Dr. Schwartz TA(s): Andrew Gray Jacob Easterling INTRODUCTION ABSTRACT One of the fun things

More information

COMP 250 Winter 2011 Reading: Java background January 5, 2011

COMP 250 Winter 2011 Reading: Java background January 5, 2011 Almost all of you have taken COMP 202 or equivalent, so I am assuming that you are familiar with the basic techniques and definitions of Java covered in that course. Those of you who have not taken a COMP

More information

Using lejos communication for games

Using lejos communication for games Using lejos communication for games Timo Paukku Dinnesen (timo@daimi.au.dk) University of Aarhus Aabogade 34, 8200 Aarhus N, Denmark June 3, 2005 1 Contents 1 Introduction 3 2 Game communication 3 3 The

More information

Technical Aspects of Multimodal System Dept. Informatics, Faculty of Mathematics, Informatics and Natural Sciences University of Hamburg

Technical Aspects of Multimodal System Dept. Informatics, Faculty of Mathematics, Informatics and Natural Sciences University of Hamburg Praktikum: 3 Telebot: first try Lecturers Houxiang Zhang Manfred Grove TAMS, Department t of Informatics, Germany @Tams/hzhang Institute TAMS Technical Aspects of Multimodal Systems http://tams-www.informatik.uni-hamburg.de/hzhang

More information

Introduction to Lab 2

Introduction to Lab 2 Introduction to Lab 2 Programming in RTOS using LEGO Mindstorms Martin Stigge 9. November 2009 Martin Stigge Lab 2: LEGO 9. November 2009 1 / 20 Lab 2:

More information

Praktikum: 2. Content of today s lecture. Content of today s lecture. Houxiang Zhang Manfred Grove

Praktikum: 2. Content of today s lecture. Content of today s lecture. Houxiang Zhang Manfred Grove 18.272 Praktikum: 2 Lego Mindstorms experience, Germany @Lego Institute TAMS s http://tams-www.informatik.uni-hamburg.de/hzhang 1 Institute TAMS s http://tams-www.informatik.uni-hamburg.de/hzhang 2 Content

More information

Hands-on Lab. Lego Programming BricxCC Basics

Hands-on Lab. Lego Programming BricxCC Basics Hands-on Lab Lego Programming BricxCC Basics This lab reviews the installation of BricxCC and introduces a C-like programming environment (called NXC) for the Lego NXT system. Specific concepts include:

More information

1. What is the name of the control unit in Robotics? a. R2D2 b. MSN c. Pilot d. XJ7 e. RCX

1. What is the name of the control unit in Robotics? a. R2D2 b. MSN c. Pilot d. XJ7 e. RCX Quiz Name: Robotics Pilot/ Inventor Quiz Teacher: Mr. Famighetti Class: Robotics Instructions: Choose the best answer. Work with the members of your team only! 1. What is the name of the control unit in

More information

Controlling LEGO R EV3 robots with Prolog

Controlling LEGO R EV3 robots with Prolog Controlling LEGO R EV3 robots with Prolog Sibylle Schwarz, Mario Wenzel Hochschule für Technik, Wirtschaft und Kultur Leipzig Fakultät für Informatik, Mathematik und Naturwissenschaften {sibylle.schwarz,mario.wenzel}@htwk-leipzig.de

More information

Navigation and path execution NAVIGATION IN LEJOS ROBOTICS AND AUTONOMOUS SYSTEMS. Today. Digging into the detail of how you do the last two.

Navigation and path execution NAVIGATION IN LEJOS ROBOTICS AND AUTONOMOUS SYSTEMS. Today. Digging into the detail of how you do the last two. ROBOTICS AND AUTONOMOUS SYSTEMS Simon Parsons Department of Computer Science University of Liverpool LECTURE 13 comp329-2013-parsons-lect13 2/43 Today From navigation to motion control. NAVIGATION IN LEJOS

More information

Prototype Prolog API for Mindstorms NXT

Prototype Prolog API for Mindstorms NXT Prototype Prolog API for Mindstorms NXT Grzegorz J. Nalepa 1 Institute of Automatics, AGH University of Science and Technology, Al. Mickiewicza 30, 30-059 Kraków, Poland gjn@agh.edu.pl Abstract. The paper

More information

COMP 250: Java Programming I. Carlos G. Oliver, Jérôme Waldispühl January 17-18, 2018 Slides adapted from M. Blanchette

COMP 250: Java Programming I. Carlos G. Oliver, Jérôme Waldispühl January 17-18, 2018 Slides adapted from M. Blanchette COMP 250: Java Programming I Carlos G. Oliver, Jérôme Waldispühl January 17-18, 2018 Slides adapted from M. Blanchette Variables and types [Downey Ch 2] Variable: temporary storage location in memory.

More information

Unit 03 Tutorial 3: Sensors: Touch Sensor Brighton H.S Engineering By: Matthew Jourden

Unit 03 Tutorial 3: Sensors: Touch Sensor Brighton H.S Engineering By: Matthew Jourden Unit 03 Tutorial 3: Sensors: Touch Sensor Brighton H.S Engineering By: Matthew Jourden Robots have a variety of sensors that help the machine sense the world around it. We will be looking at four different

More information

USB. Bluetooth. Display. IO connectors. Sound. Main CPU Atmel ARM7 JTAG. IO Processor Atmel AVR JTAG. Introduction to the Lego NXT

USB. Bluetooth. Display. IO connectors. Sound. Main CPU Atmel ARM7 JTAG. IO Processor Atmel AVR JTAG. Introduction to the Lego NXT Introduction to the Lego NXT What is Lego Mindstorm? Andreas Sandberg A kit containing: A Lego NXT computer 3 motors Touch sensor Light sensor Sound sensor Ultrasonic range

More information

McGill University School of Computer Science COMP-202A Introduction to Computing 1

McGill University School of Computer Science COMP-202A Introduction to Computing 1 McGill University School of Computer Science COMP-202A Introduction to Computing 1 Midterm Exam Thursday, October 26, 2006, 18:00-20:00 (6:00 8:00 PM) Instructors: Mathieu Petitpas, Shah Asaduzzaman, Sherif

More information

Fundamentals of Programming Data Types & Methods

Fundamentals of Programming Data Types & Methods Fundamentals of Programming Data Types & Methods By Budditha Hettige Overview Summary (Previous Lesson) Java Data types Default values Variables Input data from keyboard Display results Methods Operators

More information

LEGO P-brick Script Code Language

LEGO P-brick Script Code Language LEGO P-brick Script Code Language 2000 LEGO Company Page 1 of 20 Table of contents 1 LEGO P-brick Script code specification...3 1.1 Program structures... 3 1.2 Macros... 6 1.3 Control structures... 7 1.4

More information

Pace University. Fundamental Concepts of CS121 1

Pace University. Fundamental Concepts of CS121 1 Pace University Fundamental Concepts of CS121 1 Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University October 12, 2005 This document complements my tutorial Introduction

More information

RIS version 2.0 Software Training Lab

RIS version 2.0 Software Training Lab RIS version 2.0 Software Training Lab Version 0.9 September 6, 2002 By Joel Stone www.hightechkids.org About the Author This document was written by Joel Stone, an FLL coach who wanted to pass on his

More information

Robotics II. Module 1: Introduction to Data & Advanced Programming Blocks

Robotics II. Module 1: Introduction to Data & Advanced Programming Blocks Robotics II Module 1: Introduction to Data & Advanced Programming Blocks PREPARED BY Academic Services Unit December 2011 Applied Technology High Schools, 2011 Module 1: Introduction to Data & Advanced

More information

Activity Basic Inputs Programming - VEX Clawbot

Activity Basic Inputs Programming - VEX Clawbot Activity 3.1.3 Basic Inputs Programming - VEX Clawbot Introduction Inputs are devices which provide a processor with environmental information to make decisions. These devices have the capacity to sense

More information

Robotics Study Material School Level 1 Semester 2

Robotics Study Material School Level 1 Semester 2 Robotics Study Material School Level 1 Semester 2 Contents UNIT-3... 4 NXT-PROGRAMMING... 4 CHAPTER-1... 5 NXT- PROGRAMMING... 5 CHAPTER-2... 6 NXT-BRICK PROGRAMMING... 6 A. Multiple choice questions:...

More information

Computer Science AP 2017 Summer Assignment Mrs. McFarland

Computer Science AP 2017 Summer Assignment Mrs. McFarland Computer Science AP 2017 Summer Assignment Mrs. McFarland Read Chapter 1 from the book Think Java: How to Think Like a Computer Scientist by Allen B. Downey. I have included Chapter 1 in this pdf. If you

More information

WIZ-PRO2 CURRICULUM HIGHLIGHTS

WIZ-PRO2 CURRICULUM HIGHLIGHTS WIZ-PRO2 CURRICULUM HIGHLIGHTS STEM Learning and Advanced Robotics (ages 9-11) Develop more advanced programming skills, create programs using lines of code in Scratch, use more powerful robotics components

More information

Robot Practical Course

Robot Practical Course 64-272 Robot Practical Course http://tams-www.informatik.uni-hamburg.de/ lectures/2013ss/praktikum/robot_practical_course/ Manfred Grove, Ben Adler University of Hamburg Faculty of Mathematics, Informatics

More information

LEGO RCX Hitachi H8/3292

LEGO RCX Hitachi H8/3292 LEGO RCX Hitachi H8/3292 LISHA/UFSC Fauze Valério Polpeta Prof. Dr. Antônio Augusto Fröhlich {fauze guto}@lisha.ufsc.br http://www.lisha.ufsc.br/~{fauze guto} March 2003 March 2003 http://www.lisha.ufsc.br

More information

Introduction to Robotics using Lego Mindstorms EV3

Introduction to Robotics using Lego Mindstorms EV3 Introduction to Robotics using Lego Mindstorms EV3 Facebook.com/roboticsgateway @roboticsgateway Robotics using EV3 Are we ready to go Roboticists? Does each group have at least one laptop? Do you have

More information

COMP6700/2140 JDK Tools

COMP6700/2140 JDK Tools COMP6700/2140 JDK Tools Alexei B Khorev and Joshua Milthorpe Research School of Computer Science, ANU February 2017 Alexei B Khorev and Joshua Milthorpe (RSCS, ANU) COMP6700/2140 JDK Tools February 2017

More information

CSCI 111 Midterm 1, version A Exam Fall Solutions 09.00am 09.50am, Tuesday, October 13, 2015

CSCI 111 Midterm 1, version A Exam Fall Solutions 09.00am 09.50am, Tuesday, October 13, 2015 QUEENS COLLEGE Department of Computer Science CSCI 111 Midterm 1, version A Exam Fall 2015 10.13.15 Solutions 09.00am 09.50am, Tuesday, October 13, 2015 Problem 1 Write a complete C++ program that does

More information

lab A.3: introduction to RoboLab vocabulary materials cc30.03 Brooklyn College, CUNY c 2006 Name: RoboLab communication tower canvas icon

lab A.3: introduction to RoboLab vocabulary materials cc30.03 Brooklyn College, CUNY c 2006 Name: RoboLab communication tower canvas icon cc30.03 Brooklyn College, CUNY c 2006 lab A.3: introduction to RoboLab Name: vocabulary RoboLab communication tower canvas icon drag-and-drop function palette tools palette program algorithm syntax error

More information

Chapter. Focus of the Course. Object-Oriented Software Development. program design, implementation, and testing

Chapter. Focus of the Course. Object-Oriented Software Development. program design, implementation, and testing Introduction 1 Chapter 5 TH EDITION Lewis & Loftus java Software Solutions Foundations of Program Design 2007 Pearson Addison-Wesley. All rights reserved Focus of the Course Object-Oriented Software Development

More information

LME Software Block Quick Reference 1. Common Palette

LME Software Block Quick Reference 1. Common Palette LME Software Block Quick Reference Common Palette Move Block Use this block to set your robot to go forwards or backwards in a straight line or to turn by following a curve. Define how far your robot will

More information

THREADS AND MULTITASKING ROBOTS

THREADS AND MULTITASKING ROBOTS ROBOTICS AND AUTONOMOUS SYSTEMS Simon Parsons Department of Computer Science University of Liverpool LECTURE 10 comp329-2013-parsons-lect10 2/37 Today Some more programming techniques that will be helpful

More information

ROBOTICS AND AUTONOMOUS SYSTEMS

ROBOTICS AND AUTONOMOUS SYSTEMS ROBOTICS AND AUTONOMOUS SYSTEMS Simon Parsons Department of Computer Science University of Liverpool LECTURE 10 THREADS AND MULTITASKING ROBOTS comp329-2013-parsons-lect10 2/37 Today Some more programming

More information

mi:node User Manual Element14 element14.com/minode 1 User Manual V3.1

mi:node User Manual Element14 element14.com/minode 1 User Manual V3.1 mi:node User Manual Element14 element14.com/minode 1 Table of Contents 1) Introduction... 3 1.1 Overview... 3 1.2 Features... 3 1.3 Kit Contents... 3 2) Getting Started... 5 2.1 The Connector Board...

More information

Introduction to Mechatronics

Introduction to Mechatronics Introduction to Mechatronics Discover robots with the Lego Mindstorms Loïc Cuvillon, Bernard Bayle Ecole Nationale Supérieure de Physique de Strasbourg Strasbourg University March 30, 2012 Introduction

More information

Introduction to Programming (Java) 2/12

Introduction to Programming (Java) 2/12 Introduction to Programming (Java) 2/12 Michal Krátký Department of Computer Science Technical University of Ostrava Introduction to Programming (Java) 2008/2009 c 2006 2008 Michal Krátký Introduction

More information

Robotics with Lego EV3 + MS Makecode. Andrea Sterbini

Robotics with Lego EV3 + MS Makecode. Andrea Sterbini Robotics with Lego Andrea Sterbini sterbini@di.uniroma1.it Microsoft Makecode.com Many development systems supported (embedded/robotics/game) micro:bit Adafruit Minecraft Lego EV3 Cue Arcade Chibi chip

More information

An overview of Java, Data types and variables

An overview of Java, Data types and variables An overview of Java, Data types and variables Lecture 2 from (UNIT IV) Prepared by Mrs. K.M. Sanghavi 1 2 Hello World // HelloWorld.java: Hello World program import java.lang.*; class HelloWorld { public

More information

Lecture 1: Overview of Java

Lecture 1: Overview of Java Lecture 1: Overview of Java What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++ Designed for easy Web/Internet applications Widespread

More information

Building Java Programs. Introduction to Programming and Simple Java Programs

Building Java Programs. Introduction to Programming and Simple Java Programs Building Java Programs Introduction to Programming and Simple Java Programs 1 A simple Java program public class Hello { public static void main(string[] args) { System.out.println("Hello, world!"); code

More information

17 Statement: assignment statement: assigning an expression value 18 Age next year 19 Type: String: conversion: from int 21 Age next year 22 The full

17 Statement: assignment statement: assigning an expression value 18 Age next year 19 Type: String: conversion: from int 21 Age next year 22 The full List of Slides 1 Title 2 Chapter 3: Types, variables and expressions 3 Chapter aims 4 Section 2: Example:Age next year 5 Aim 6 Design: hard coding 7 Age next year 8 Type 9 Type: int 10 Variable 11 Variable:

More information

Objectives. Problem Solving. Introduction. An overview of object-oriented concepts. Programming and programming languages An introduction to Java

Objectives. Problem Solving. Introduction. An overview of object-oriented concepts. Programming and programming languages An introduction to Java Introduction Objectives An overview of object-oriented concepts. Programming and programming languages An introduction to Java 1-2 Problem Solving The purpose of writing a program is to solve a problem

More information

Part A: Monitoring the Rotational Sensors of the Motor

Part A: Monitoring the Rotational Sensors of the Motor LEGO MINDSTORMS NXT Lab 1 This lab session is an introduction to the use of motors and rotational sensors for the Lego Mindstorm NXT. The first few parts of this exercise will introduce the use of the

More information

Open and respond to this poll: PollEv.com/comp110. Calling Methods Mr. Roboto

Open and respond to this poll: PollEv.com/comp110. Calling Methods Mr. Roboto Open and respond to this poll: PollEv.com/comp110 Lecture 1 Calling Methods Mr. Roboto Fall 2016 Special thanks to Dr. Andy van Dam, my grad school advisor, and Brown s CS15 course for this fantastic method

More information

The Java Language The Java Language Reference (2 nd ed.) is the defining document for the Java language. Most beginning programming students expect

The Java Language The Java Language Reference (2 nd ed.) is the defining document for the Java language. Most beginning programming students expect The Java Language The Java Language Reference (2 nd ed.) is the defining document for the Java language. Most beginning programming students expect such a document to be totally beyond them. That expectation

More information

Arduino Uno. Power & Interface. Arduino Part 1. Introductory Medical Device Prototyping. Digital I/O Pins. Reset Button. USB Interface.

Arduino Uno. Power & Interface. Arduino Part 1. Introductory Medical Device Prototyping. Digital I/O Pins. Reset Button. USB Interface. Introductory Medical Device Prototyping Arduino Part 1, http://saliterman.umn.edu/ Department of Biomedical Engineering, University of Minnesota Arduino Uno Power & Interface Reset Button USB Interface

More information

EV3 Programming Workshop for FLL Coaches

EV3 Programming Workshop for FLL Coaches EV3 Programming Workshop for FLL Coaches Tony Ayad 2017 Outline This workshop is intended for FLL coaches who are interested in learning about Mindstorms EV3 programming language. Programming EV3 Controller

More information

Crash Course in Java. Why Java? Java notes for C++ programmers. Network Programming in Java is very different than in C/C++

Crash Course in Java. Why Java? Java notes for C++ programmers. Network Programming in Java is very different than in C/C++ Crash Course in Java Netprog: Java Intro 1 Why Java? Network Programming in Java is very different than in C/C++ much more language support error handling no pointers! (garbage collection) Threads are

More information

3. Java - Language Constructs I

3. Java - Language Constructs I Educational Objectives 3. Java - Language Constructs I Names and Identifiers, Variables, Assignments, Constants, Datatypes, Operations, Evaluation of Expressions, Type Conversions You know the basic blocks

More information

introduction to RoboCupJunior Rescue vocabulary materials

introduction to RoboCupJunior Rescue vocabulary materials robotics.edu agents lab, Brooklyn College, CUNY c 2007 http://agents.sci.brooklyn.cuny.edu/robotics.edu introduction to RoboCupJunior Rescue Name: vocabulary task multi-tasking hardware conflicts obstacle

More information

Introduction to Lab 2

Introduction to Lab 2 Introduction to Lab 2 Programming in RTOS on LEGO Mindstorms Jakaria Abdullah 9 September 2015 Jakaria Abdullah Lab 2: LEGO 9 September 2015 1 / 21 Lab 2: Programming in RTOS using LEGO Mindstorms Lab

More information

General Syntax. Operators. Variables. Arithmetic. Comparison. Assignment. Boolean. Types. Syntax int i; float j = 1.35; int k = (int) j;

General Syntax. Operators. Variables. Arithmetic. Comparison. Assignment. Boolean. Types. Syntax int i; float j = 1.35; int k = (int) j; General Syntax Statements are the basic building block of any C program. They can assign a value to a variable, or make a comparison, or make a function call. They must be terminated by a semicolon. Every

More information