Building robots Spring 20031 Building Braitenberg Vehicles From Abstraction to Realization.

Slides:



Advertisements
Similar presentations
Continuation of chapter 6…. Nested while loop A while loop used within another while loop is called nested while loop. Q. An illustration to generate.
Advertisements

Robotics Invention System 2.0
EIGHTH GRADE ROBOTICS KITTATINNY REGIONAL HIGH SCHOOL MR. SHEA Introduction to Programming
Behavioral Robots with various Controls Generalized Braitenberg Vehicles.
Getting Ready to go with LeJos and an IDE NSF Workshop November 19-21, 2004 The University of Mississippi Pam Lawhead.
Building robots Spring Mindstorms Programming Java + leJOS, NQC, and others.
The Turtle Laboratory Sequence LMICSE Workshop August , 2006 Villanova University.
Analysis vs. Design When you take a test in your math or physics course, there is one and only one answer! When you do a goal-driven design there may be:
Using LeJOS LMICSE Workshop August , 2006 Villanova University.
Using LeJOS LMICSE Workshop June , 2005 Alma College.
Programming with Lejos Part 1. What is lejos? Cut-down version of Java for the RCX platform Includes: –Lejos API –JVM API includes functionality needed.
LEGO Mindstorms NXT Programming We will be using the Common Palette for our Robots This is how you download your program onto the brick Drag and drop a.
Localization Using Interactive C and a Standard LEGO Mindstorms Hardware Suite Gary R. Mayer, Dr. Jerry Weinberg, Dr. Xudong Yu
Java for Robots How to program an NXT robot with a Java Brain Bert G. Wachsmuth Seton Hall University.

Interfacing the LEGO RCX to the outside world John M. Larkin Whitworth College Spokane, WA.
Available at: 2.3, Build a Drift Chassis Build a Drift Chassis Graphic retrieved from, spn/gallery/enlargePhoto?id.
1 CS 177 Week 5 Recitation Slides Loops. 2 Announcements Project 2 due next Thursday at 9PM. Exam 1 this evening (switch and loop not covered) Old exams.
Capacitor Connection in to LED socket Connection to 5v and ground Connection to light sensor pin.
Lego Robot Construction Project. Adam, Roger, Lu, Riana, Paul.
LeJos Kyle Adams Rob Boorman. Overview of leJos leJos stands for LEGO Java Operating System. leJos was originally developed by Jose Solorzano, and is.
Designed to introduce students to programming, logical thinking, teamwork, and project-based learning.
Robotics Overview of NXT-G Actuators in Mindstorms. Touch sensor Labwork: Right turn. Touch/bump. [Explore move versus Motor Move mini & motor mini. Motor*.]
Sound, Touch Sensor, and Motors. Wheeled Vehicles Using the Pilot class: –Constructor Pilot(float wheelDiameter, float trackWidth,Motor leftMotor, Motor.
How to Control a Robot Kickoff Why, How, Where? Sense, think, act Robot, laptop, your brain GameRobot Human Game State Score External Sensors Internal.
Minds and Computers4.1 Today's Topics l Braitenberg Vehicles l Art of Lego Design ä Notes from Jason Geist, Carnegie Mellon University l Differential Drive.
Event Driven Programming Minus the GUI Plus a Robot By Charlie Vick.
The George Washington University Department of ECE ECE Intro: Electrical & Computer Engineering Dr. S. Ahmadi Class 4.
CSE 1341 Honors Professor Mark Fontenot Southern Methodist University Note Set 11.
BEGINNING PROGRAMMING.  Literally – giving instructions to a computer so that it does what you want  Practically – using a programming language (such.
Minds and Computers 3.1 LEGO Mindstorms NXT l Atmel 32-bit ARM processor l 4 inputs/sensors (1, 2, 3, 4) l 3 outputs/motors (A, B, C) l 256 KB Flash Memory.
Find the Mindstorms Icon on the computer.. To start a new program click go.
1 Model Checking of Robotic Control Systems Presenting: Sebastian Scherer Authors: Sebastian Scherer, Flavio Lerda, and Edmund M. Clarke.
NXT Drag Racer Deanna Margo, Darrah Margo, Melissa Kinsman.
Braitenberg Vehicles. A little history… Valentino Braitenberg (born 1926) is a cyberneticist and former director at the Max Planck Institute for Biological.
FOR LOOP WALK THROUGH public class NestedFor { public static void main(String [] args) { for (int i = 1; i
The George Washington University Department of ECE ECE Intro: Electrical & Computer Engineering Dr. S. Ahmadi Class 4/Lab3.
The George Washington University Electrical & Computer Engineering Department ECE 002 Dr. S. Ahmadi Class3/Lab 2.
ECE 002 Robots and Sensors Group 14. Objectives Research sensors and their usefulness to analyze data Research sensors and their usefulness to analyze.
Controlling a Robot with a Neural Network n CS/PY 231 Lab Presentation # 9 n March 30, 2005 n Mount Union College.
Group 7 Project 1 Presentation Robert Moe John Zumwalt Mark Woehrer Celi Sun.
Introduction to Computer Science – Chapter 6 CSc 2010 Spring 2011 Marco Valero.
MEH108 - Intro. To Engineering Applications KOU Electronics and Communications Engineering.
Introduction to Robots and the Mind - Programming with Sensors - Bert Wachsmuth & Michael Vigorito Seton Hall University.
Feedback Systems and Driving Clinton Matney AT Workshop 2016.
The George Washington University Department of ECE ECE Intro: Electrical & Computer Engineering Dr. S. Ahmadi Class 4.
SEI Robotics Lego Mindstorm Competition
Lecture 10 Sensors.
using System; namespace Demo01 { class Program
Getting Ready to go with LeJos and an IDE
Mindstorm Robots 4th Grade Lesson 1.
Intelligent Traction Control Smart Robot
IT Basic Wednesday 14 April 2010
Review and Ideas for future Projects
Lego Robots We built many robots from Lego kits.
Using Encoders to go Straight
BEGINNER PROGRAMMING LESSON
Introduction to Robots and the Mind - Methods -
Cole Perrault Spring 2015 ET 493 Wesley Deneke
Fe Maidens Programming
null, true, and false are also reserved.
Condition Variables and Producer/Consumer
Condition Variables and Producer/Consumer
The George Washington University Department of ECE ECE Intro: Electrical & Computer Engineering Dr. S. Ahmadi Class 5.
BEGINNER PROGRAMMING LESSON
Lego EV3 Mindstorms SW Programming Blocks.
class PrintOnetoTen { public static void main(String args[]) {
Intelligent Traction Control Smart Robot
Lego MINDSTORMS EV3.
LEGO MINDSTORMS NXT PROGRAMMING
Presentation transcript:

Building robots Spring Building Braitenberg Vehicles From Abstraction to Realization

Building Robots Spring Vehicles Review vehicle 2A: aggresive crossed excitatory connections vehicle 2B: coward straight excitatory connections vehicle 3A: love straight inhibitory connections

Building Robots Spring Vehicle Design ‘differential steering’ contrast to steering wheel balance other options: tanks, bicycles, etc

Building Robots Spring Drive System ratios and reduction—why? gears: pro: efficient, accurate, strong con: need precise alignment, backlash pulleys: pro: simplicity, flexibility con: slippage, poor durability motor control: speed, direction, braking note: Connector direction matters.

Building Robots Spring Example Vehicle Design Differentially-steered vehicle with pulley drive See handout for construction details

Building Robots Spring MotorTest.java import josx.platform.rcx.*; class MotorTest { static final int STOP = 0; static final int RUN = 1; static final int FLOAT = 2; static int mode = STOP; static int power = 0; public static void main(String [] args) { setupButtonListeners(); while (true) { if (mode == RUN) { Motor.A.setPower( power ); // power in range [0, 7]. incremented with each press of View button. Motor.A.forward(); } else if (mode == STOP) { Motor.A.stop(); } else if (mode == FLOAT) { Motor.A.flt(); }... (button listener code not shown)

Building Robots Spring Mindstorms Light Sensor why the LED? sensor mode: raw vs. percent I/0 graph, compared to mammal eyes spectral response sunlight vs incandescent vs fluorescent

Building Robots Spring LightTest.java import josx.platform.rcx.*; class LightTest implements SensorConstants { public static void main(String [] args) throws InterruptedException { Sensor.S1.setTypeAndMode (SENSOR_TYPE_LIGHT, SENSOR_MODE_PCT); Sensor.S1.activate(); while (true) { int lightReading; if (Button.VIEW.isPressed()) { lightReading = Sensor.S1.readRawValue(); } else { lightReading = Sensor.S1.readValue(); } LCD.showNumber( lightReading ); }

Building Robots Spring Complete Example: “Aggressive.java” import josx.platform.rcx.*; class aggressive implements SensorConstants { public static void main(String [] args) { int minBrightness = 100; final int gain = 12; Sensor.S1.setTypeAndMode (SENSOR_TYPE_LIGHT, SENSOR_MODE_PCT); Sensor.S1.activate(); Sensor.S3.setTypeAndMode (SENSOR_TYPE_LIGHT, SENSOR_MODE_PCT); Sensor.S3.activate(); for (int i = 0; i < 100; i++) { if (Sensor.S1.readValue() < minBrightness) { minBrightness = Sensor.S1.readValue(); } else if (Sensor.S3.readValue() < minBrightness) { minBrightness = Sensor.S3.readValue(); } Thread.sleep(20); } Motor.A.forward(); Motor.C.forward(); while (true) { int motorASpeed = (Sensor.S3.readValue() - minBrightness) / gain; int motorCSpeed = (Sensor.S1.readValue() - minBrightness) / gain; setMotorSpeed(Motor.A, motorASpeed); setMotorSpeed(Motor.C, motorCSpeed); }

Building Robots Spring Aggressive.java (continued) protected static void setMotorSpeed(Motor m, int motorSpeed) { if (motorSpeed < 1) { m.flt();// important LCD.showNumber(-1); } else { if (motorSpeed > 7) { motorSpeed = 7; } m.forward(); m.setPower(motorSpeed); LCD.showNumber(motorSpeed); }

Building Robots Spring Observations Closed loop control; lessens importance of mechanical imperfections (e.g. pulley slip). The map is not the territory. Make your own—robots and observations!