Introductory Robotics Workshop “Successful Strategies in Robotics” Terry Grant, NASA, Ames Research Center Jeneva Westendorf, Foothill High School 2/5/04.

Slides:



Advertisements
Similar presentations
Robofest 2005 Introduction to Programming RIS 2.0 RCX Code.
Advertisements

Introduction to LEGO RCX robotics and Robot Sumo
Programming Your Robot (in C)
EMS1EP Lecture 6 Digital Inputs
BEST Robotic, Inc. easyC Team Training
Lab7: Introduction to Arduino
Mini-SumoBot Construction and Programming
Graphical RobotC NXT (EV3) Robot Workshop 2015 Instructor: Dr. Fred Brauchler Assistant: Chris Parker 2/7/2015Lawrence Technological University1.
Automation and Robotics
Handy Board. Why the Handy Board Designed to be the controller of small, mobil robots Has many features that make it ideal for robotics projects –Integrated.
Handy Board. Why the Handy Board Designed to be the controller of small, mobil robots Has many features that make it ideal for robotics projects –Integrated.
Software Design Project
IR SENSORS AND ENCODERS. LCDs Timothy Friez Class # 2.
Introduction to Sensors
Introduction.
1 ©2006 INSciTE Lab Two Task: Make the program from Lab One (Move forward 5 rotations and turn right 90 degrees) into a MyBlock.
Microcontroller: Introduction
Introductory Robotics Workshop “Successful Strategies in Robotics” Terry Grant, NASA, Ames Research Center 2/1/05 2/8/05.
Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lab 7P. 1Winter Quarter Stop Light Lab 7.
Controller, Sensors and Motors Ding Ke Tutorial 1, UGB 230N.
What is RobotC?!?! Team 2425 Hydra. Overview What is RobotC What is RobotC used for What you need to program a robot How a robot program works Framework.
VEX Robotics Platform and ROBOTC Software
Alternate Version of STARTING OUT WITH C++ 4 th Edition Chapter 1 Introduction to Computers and Programming.
ROBOTC Software Introduction. ROBOTC Software ROBOTC developed specifically for classrooms and competitions Complete programming solution for VEX Cortex.
Program ultrasonic range sensor in autonomous mode
GIRLS Robotic Camp. Let’s Begin Meet and Greet – Camp leaders introduce themselves – Students introduce themselves.
The George Washington University Electrical & Computer Engineering Department ECE 002 Dr. S. Ahmadi Class 2.
ROBOTC for VEX On-Site Professional Development
Weston Schreiber & Joshua Gabrielse Robotics Summer Training Programming #1: EasyC Basics.
The New FTC Platform (Connecting your legacy hardware)
Teacher/Mentor Institute Using easyC Joel Kirkland July 30-31, 2015.
BEST Robotic, Inc. easyC Breakout Session By: Guy Chetrit Programming With easyC September 15, Copyright © 2012 BEST Robotics, Inc. All rights reserved.
EasyC Programming Workshop January 30, 2008 Hauppauge High School SPBLI - FIRST Mark McLeod Advisor Hauppauge Team 358 Northrop Grumman Corp.
Robot Building Lab: Introduction Lab 1 The Handy Board and Interactive-C (IC) es/robotlab/labs/lab1.ps.
EV3 Workshop Oct 3, 2015 Instructor: Chris Cartwright
The George Washington University Department of ECE ECE Intro: Electrical & Computer Engineering –Intro to the Robotics –Introducing the IC –Discuss.
The George Washington University Department of ECE ECE 1010 Intro: Electrical & Computer Engineering –Introducing KIPR Link/Interface and Set-up –Continuation.
Robot Report Group 7. Outline Introduction Introduction Robot Construction Robot Construction Design Specifications Design Specifications Design Process.
A Multidisciplinary Approach for Using Robotics in Engineering Education Jerry Weinberg Gary Mayer Department of Computer Science Southern Illinois University.
The Handy Board Bryan Valentini General Robotics 2003.
Lego MindStorm An Introduction to Blocks. Blocks Blocks are used to give instructions to your robot. There are many types of blocks You can use the blocks.
Castor Bot. Now, we will begin creating a robot Log onto your computer On your screen, click on the website labeled “castor bot” Your building instructions.
Erin Halseth, Will Gottschalk, Briana Warschun, and Michaella Gaines
Engineering H193 - Team Project Gateway Engineering Education Coalition Lab 1P. 1Spring Quarter Introduction to Sensors Lab 1.
Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 29P. 1Winter Quarter Software Design Project Lecture 29.
Minds and Computers 2.1 The RCX l Hitachi H8/3297 series processor l 3 inputs/sensors (1, 2, 3) l 3 outputs/motors (A, B, C) l 32k RAM/ 16k ROM ä 12 kB.
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.
ROBOTC Software EV3 Robot Workshop
ROBOTC Software EV3 Robot Workshop Lawrence Technological University.
Deriving Consistency from LEGOs What we have learned in 6 years of FLL by Austin and Travis Schuh © 2005 Austin and Travis Schuh, all rights reserved.
Automation and Robotics.  First you select the platform type so that you can use Natural Language PLTW.
Vex Robotics program three: using motors and sensors together.
AAPT workshop W03 July 26, 2014 Saint Cloud State University, MN, USA
Casne.ncl.ac.uk Taking care of the CrumbleBot Please do NOT stress the robot's motors 1.Do NOT push the robot 2.Do NOT hold the.
INTRODUCTION TO PROGRAMING System Development Mansoura October 2015.
ROBOTC for CORTEX Teacher Training © 2011 Project Lead The Way, Inc. Automation and Robotics VEX.
Presentation Outline I. Background Information II. Design Project
The George Washington University Department of ECE ECE Intro: Electrical & Computer Engineering Intro to the Robotics Introducing the IC Discuss.
ROBOTC for VEX Online Professional Development
Deriving Consistency from LEGOs
ROBOTC for VEX On-Site Professional Development
Introducing KIPR Link/Interface and Set-up
Automation and Robotics
Programming Part 2 Mod Kit
Describe how NASA remotely controls equipment in space.
Automation and Robotics
The George Washington University Department of ECE ECE Intro: Electrical & Computer Engineering Dr. S. Ahmadi Class 4.
LEGO Mindstorms Robot and Java
Presentation transcript:

Introductory Robotics Workshop “Successful Strategies in Robotics” Terry Grant, NASA, Ames Research Center Jeneva Westendorf, Foothill High School 2/5/04 2/12/04

Outline 2/5 –Introductions –Team Building & Strategy –Robotics Hardware & Software Architecture –Programming in C Introduction – with the HB 2/12 –Review: Robot Project Requirements & Example –Object Avoidance Mission –Go + Throw Example –Teacher as Coach –Wrap-up

Team Development Forming  Create Ground Rules/ Key Result Statement  Gain Buy-in on Code of Conduct  Discuss Roles Storming  Establish Trust  Manage Conflict Norming  Solve Problems  Make Decisions Performing Start competition strategy & plans

Team Strategy & Plans Translating a Challenge into Requirements –Robot physical capabilities –Robot behavior (high level code) –Operator – robot interaction Assigning tasks and milestones Writing a total schedule (initial and revised) –Plan to test capabilities & behavior –Plan for full robot tests & re-planning –Plan for team coordination meetings

Robot Building & Coding Completed LEGO robot from MLCAD –Ref: –Art of LEGO Design – Pictures and Code from the Jan ’03 Workshop – IC4 Environment downloads: – Hands-on Challenges Ref: –

Robotics H/W & S/W Architecture Interactive C v * Editor * Debug Interpreter * Loader Other Apps Desktop Operating System Desktop Hardware Bot Multi-tasking S/W Components Real-Time Operating System * P-code interpreter * Input/Output Drivers - Clock * Load/Run modes Handy Board or RCX H/W *Central Processor * Random Access Memory * Special I/O Circuits * Battery & Power Conditioner Serial Data Interface Charger (HB only) Lego Motors & Sensors Lego Mechanical IR for RCX*

Robot Project Requirements Hardware configuration and general environmental constraints Operator Requirements Controller requirements All Three Elements are needed and should be written down for a common team understanding

Programming in C - Introduction IC4 provides an editing, compiling, and downloading environment for either RCX or Handy Board. Follows C syntax (grammar) Uses functions declared and called Many functions for Input/Output are preloaded in a library Good tutorial examples provided with the application Multi-tasking capability in O.S. –allows sampling & holding multiple conditions in parallel: position, direction, and other sensors

General Syntax declaring: output type Function(inputs e.g. int x, int y) {block of statements} calling: Function(x, y); types: int x, y, z; float a, b, c; all variables must have a declared type. –global types are defined at the top, outside of a function, and usable by all functions.

Introductory Checkout This workshop will use the Handy Board (HB) controller and a pre-built demo robot. Checkout your configuration and understanding of the concepts by entering and downloading the following one line program to send a message to the HB display screen: Void main() { printf(“Hello \n”); } Open Interactive C to view the actual environment & write the above code, then run it.

Simple Example Make a Robot Go Forward and Return –H/W & Environment: Build a bot with the HB or RCX, wired to motors such that forward power moves wheels forward, and put on a demonstration table with enough flat surface –Operator: Write the code, load the microcontroller, and initiate the execution (running) of the code –The controller: Turn on the motors forward, wait 2 seconds, reverse the motors, wait 2 seconds, then stop.

Simple Code Example IC4 void main() { fd(0); fd(2); sleep(2.0); bk(0); bk(2); sleep(2.0); off(0); off(2); } Open Interactive C & write the code

More Basics Three modes: off, standby, run Use of ‘Interaction’ window in IC4 –Test new functions for I/O, robot behavior Check list of library functions, global variables Download firmware Upload Arrays for spread-sheet analysis Edit aids –Auto-indentation –Parenthesis matching –Syntax checking (on download) Use of ‘save as’ to file new, or trial code

Notation of IC 4 IC notation is the same for RCX & HB if ("condition") { "statements" } else { "statements" } while ("condition") { "statements" }

Notation of IC4 -2 Defining a function or task: xxx “name”() { "statements" } xxx = ‘void’ if no return variables = ‘int’ if integer return variables = ‘float’ if floating point return variables

Notation of IC4 - 3 Starting and ending parallel tasks: pid = start_process(taskname()); kill_process(pid);

Notation of IC4 - 4 Inputs for RCX - light(y) for y = 1,2, or 3 - light_passive(y) - digital(y) or touch(y)

Notation of IC4 - 5 IC Outputs Motor outputs, ports 0 to 3 for HB(or A to C for RCX) To use port 1: fd(1); forward, positive voltage bk(1); backward, negative voltage Motor(1, x); x = -100 to 100 off(1); leave port ‘open’ brake(1); for the RCX only, to brake the motor

Notation of IC4 - 6 To display on Controller LCD e.g. printf(“Hello\n”); printf(“X= %d\n”, x); /* x is an integer */ printf(“X= %f\n”, y); /* y is floating point */ printf(“%d -%d\n”, a, b); /* a & b are integers */ In the RCX only five characters total can be displayed, and “\n” is not needed.

Object Avoidance Example

Requirements Robots with range sensors start facing each other about one foot apart. Robots must start when a button is pushed or the light comes on. Robots must stop after T (5-15) seconds. The first robot to touch the barrier loses. Bot 1Bot 2 4’ x 4’ barrier Starting Light

Object Avoidance Behavior Display program title Wait for start_button push, then beep Wait 3 seconds to start Go straight forward –while T is not exceeded, Turn if an object is sensed –When T is exceeded stop

Object Avoidance Code /* bang-bang control to avoid obstacles using rangefinders - Grant 1/27/04*/ /******************** Robot port configuration ***********/ #define R_MOTOR 2 /* motor port 2 */ #define L_MOTOR 0 /* motor port 0 */ #define R_ENC 1 /* encoder 1 is digital port 8 */ #define L_ENC 0 /* encoder 0 is digital port 7 */ #define L_RANGE 18 /* range sensor in analog 18*/ #define R_RANGE 16 /* range sensor in analog 16*/ #define THROW_DIST 195 /* sensor reading to throw the ball, avoid obstacles, etc*/ #define T 5000L /* run time in millisec */ /*********** globals for left and right sensors, bumper *****/ int L_Range, R_Range, Bumper=0, L_Enc, R_Enc;

Object Avoidance Code - cond void main() { start_process(monitor_sensors()); printf("range avoid press start\n"); start_press(); sleep(3.); /* wait for start button press */ avoid(); } void monitor_sensors() { enable_encoder(R_ENC); /*enable the encoders */ enable_encoder(L_ENC); while(1){ Bumper=digital(15); /* front bumper switch */ L_Enc=read_encoder(L_ENC); R_Enc=read_encoder(R_ENC); L_Range= 255-analog(L_RANGE); /* range reading is big for big distances */ R_Range = 255-analog(R_RANGE); defer(); }

Object Avoidance Code - cond void avoid() { int l_speed, r_speed; long time_s=mseconds()+T; while(!stop_button()&&(mseconds()<time_s)) { l_speed=r_speed=75; if(L_Range<=THROW_DIST) r_speed=0; else { if(R_Range<=THROW_DIST) l_speed=0; } motor( L_MOTOR, l_speed); motor(R_MOTOR, r_speed); defer(); } ao(); }

Light Trigger Calibration Hardware & Environment –L1 is the remote trigger light. –L2 is the room lighting. –Pd photodetector has a wide field of view. The Controller display helps the operator measure both the dark and light response. The controller [HB or RCX code] sets the “light vs. dark” threshold and waits for the threshold to be exceeded to trigger the action.

Avoidance - Sensor Test Project To support a robot avoidance contest with a light start, design a robust light trigger for the action which runs the avoidance behavior for 5 seconds after a light is turned on. –Discuss all requirements (total group) –Write a code design for each Bot. –Write and debug the code Participate in an Avoidance contest Compare trigger and behavior designs and results

Avoidance - Sensor Test Behavior e.g. Display program title [for a few seconds] While start_button is not pushed, –Display sensor level and –Prompt for start_button push –While stop_button is pushed, display and increment the trigger threshold When start_button is pushed, –Display sensor level –Wait for sensor level to cross the trigger threshold, then go forward, etc as original object avoidance When T is exceeded: stop, –display “done” for a few seconds