1 Robots: The Friendly Motivating Machine R. Mark Meyer Canisius College Computer Science Department Buffalo, NY.

Slides:



Advertisements
Similar presentations
Sonar and Localization LMICSE Workshop June , 2005 Alma College.
Advertisements

Creating a Program In today’s lesson we will look at: what programming is different types of programs how we create a program installing an IDE to get.
Building Mindstorms NXT Robots Dr. David Johnson School of Computing.
Part 2. Overview of Summer Teacher Workshops for In-class Use of FLL/FTC Technology July 28, 2008.
James Tam Introduction To CPSC 231 James Tam Administrative (James Tam) Contact Information -Office: ICT 707 -
The Turtle Laboratory Sequence Myles McNally LMICSE Workshop November , 2004 University of Mississippi.
The Turtle Laboratory Sequence LMICSE Workshop August , 2006 Villanova University.
CSC Intro. to Computing Lecture 17: Even More Robotran!
Computer Science - I Course Introduction Computer Science Department Boston College Hao Jiang.
Not Quite C: A CS 0 Option LMICSE Workshop June , 2005 Alma College.
1 Robots: an educational revelation in CS at a Jesuit College R. Mark Meyer Canisius College Buffalo, NY.
The Turtle Laboratory Sequence LMICSE Workshop June , 2005 Alma College.
Maze Running Robots EGR106 Project Spring Project Goal Computer control (through a Matlab program) of a Lego robot to: 1.Explore a maze (start to.
1 Robotran: Robot programming adventures for novices in LEGO-land R. Mark Meyer Debra T. Burhans Canisius College Buffalo, NY.
Deepak Kumar Promising Practices in CS1 Personal Robots for CS1 Deepak Kumar Bryn Mawr College.
Honors 101, Fall 2006 Please do not sit in back of room! Lots of info on web page Join the mailing list Download Eclipse and start using it Read the text.
Computer Science - I Course Introduction Computer Science Department Boston College Hao Jiang.
Conceptual Model by Aaron Garrett and David Thornton Mindstorms Internet Control Environment.
Geo 118/318 – Introduction to GIS Programming Dr. Jim Graham.
Embedded Programming and Robotics Introduction and Overview Presented by John Cole Senior Lecturer in Computer Science The University of Texas at Dallas,
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.
How to turn on the robot How to start Bluetooth How to connect to robot How to initialize the robot How to not break the robot Sec Getting Started.
1 CS1110 Fall 2011: David Gries & Steve Marschner CS1112: Matlab No prior programming experience One semester of calculus Math- & engineering- type problems.
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.
LEGO NXT Robot Programming Introduction to Programming a Lego NXT robot in Java.
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Carolyn Seaman University of Maryland, Baltimore County.
1 CS1110 Fall 2010 Instructors: David Gries & Lillian Lee CS1112: Matlab No prior programming experience One semester of calculus Math- & engineering-
Adapted for STLP Camp ‘10 STLP Robotics Camp June 3 & 4.
What is AIBO ? AIBO is produced by SONY Marketed as an entertainment robot Has sensors for input Has LEDs and sound for output as well as motors for movement.
Interfacing the LEGO RCX to the outside world John M. Larkin Whitworth College Spokane, WA.
Teaching Deliberative Navigation Using the LEGO RCX and Standard LEGO Components Gary R. Mayer, Dr. Jerry Weinberg, Dr. Xudong Yu
GIRLS Robotic Camp. Let’s Begin Meet and Greet – Camp leaders introduce themselves – Students introduce themselves.
Adapted for STLP Camp ‘09 Mobile Robots Why do robots need to move?
By Crystal Wettingfeld Supported by Lamar University, a Broadening Participation Grant from the National Science Foundation under Grant No , and.
Why do robots need to move?
USING AN INTEGRATED 3D AND ROBOTICS ENVIRONMENT TO TEACH COMPUTATIONAL THINKING EFFECTIVELY Stephanie Graham Shiloh Huff Sabyne Peeler * This research.
CSC Intro. to Computing Lecture 16: Robotran.
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Marie desJardins University of Maryland, Baltimore County.
CS100J Spring 2006 CS100J: 11 weeks of programming using Java and 2 weeks using Matlab. David Gries is teaching CS100J. Graeme Bailey is teaching a special.
A Multidisciplinary Approach for Using Robotics in Engineering Education Jerry Weinberg Gary Mayer Department of Computer Science Southern Illinois University.
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.
1 CS1100 Fall Instructor: David Gries CS100M: Matlab No prior programming experience One semester of calculus Math & engineering type problems CS100J:
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.
1 CS1110 Fall Instructors: David Gries & Lillian Lee CS1112: Matlab No prior programming experience One semester of calculus Math- & engineering-
University of Limerick1 Computer Applications CS 4815 Robocode.
Robots Can Wear Many Hats in the Computer Science Curriculum.
NQC / BricxCC Brief Introduction David Schilling.
Getting Started in RobotC // Comment task main() motor[] {} wait1Msec() ; = Header Code Compile Download Run Take out your notes.
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.
Mindstorms 1.1 Today’s topics l AI l History of Robotics l Uses of robots l The RCX l ROBOLAB l Upcoming ä Basic control ä Kinematics ä Robot architectures.
The George Washington University Electrical & Computer Engineering Department ECE 002 Dr. S. Ahmadi Class3/Lab 2.
Introduction to Robots and the Mind Bert Wachsmuth & Michael Vigorito Seton Hall University.
1- How to connect the robot to the pc Sec Getting Started 3- How to move the robot Sec Scribbler movements 4- How to make a turn 11- How to.
Using the BlueJ IDE with Mindstorms LMICSE Workshop June , 2005 Alma College.
EG1003: Introduction to Engineering and Design Laboratory 4: Sensors.
1 CS100J Spring Instructor: David Gries CS100M: Matlab No prior programming experience One semester of calculus Math & engineering type problems.
A Robotics Introduction to Computer Science AAAI Spring Symposium 2007 Debra T. Burhans Canisius College
Lego League. What is the Lego League? What we will be doing for the next few weeks The AIM of the next few weeks is to gain knowledge into programming,
Geo 118/318 – Introduction to GIS Programming Dr. Jim Graham.
Problem Solving and Creativity for Undergraduate Computing and Engineering students Jonathan Adams Division of Engineering School of Applied Sciences The.
Spring 2008 Mark Fontenot CSE Honors Principles of Computer Science I Note Set 11.
Presentation Outline I. Background Information II. Design Project
Robots: The Friendly Motivating Machine
Universal design in a summer camp on robotics
CS1110 Spring Instructor: David Gries
UNCW Computer Science Jack Tompkins Daniel Heywood
Getting Started in RobotC
Getting Started in RobotC
LEGO Mindstorms Robot and Java
LEGO MINDSTORMS NXT PROGRAMMING
Presentation transcript:

1 Robots: The Friendly Motivating Machine R. Mark Meyer Canisius College Computer Science Department Buffalo, NY

2 Outline 1.Robots in the college curriculum 2.Learning goals 3.Our robots 4.Courses 5.Languages 6.Assignments 7.Experiences and conclusions

3 Robotics in the college curriculum 2006 We were awarded an in-house 3-year grant to introduce robotics into the curriculum. It is called the Peter Canisius Distinguished Teaching Professorship –Deb Burhans (CS and Bioinformatics) –Mark Meyer (CS) –David Sheets (Physics and Pre-engineering) Courses –Computer Science introductory and senior AI –HONORS program science elective –First Year Seminar (writing course) –Engineering 111

4 Goals Recruit new CS majors Retain current CS majors Make the general studies courses more accessible and fun Provide new science elective for HONORS curriculum Motivate freshmen to learn how to write better Improve early programming skills for CS majors Introduce AI concepts to juniors/senior CS majors Learning Goals: the students will know... 1.how to describe and define a robot 2.how to interface robot sensors & motors using Java 3.how to better program traditional loops, decisions, subprograms 4.how to describe some AI challenges and techniques

5 Robots used at Canisius Lego Mindstorms RCX (approximately 30) Lego Mindstorms NXT (approximately 60) Sony AIBO (6) [The cute white “dogs”, no longer made] Create from IRobot (1) [A vacuum-less Roomba] ER-1 (2) [Evolution robotics, requires a laptop] Funded by the in-house grant plus a $70,000 NASA grant

6 Our penbots (RCX) RCX penbot LEGO Mindstorms RCX introduced in 1998, sold over one million

7 Our penbots (NXT) NXT roverbot LEGO Mindstorms NXT introduced in 2006; much different from RCX; reliability issues (failure rate is about 50%)

8 Courses CSC 110 – A “CS 0” course CSC 109 – Another “CS 0” course that is solely robotics EGR 111 – Introduction to engineering (pre-engineers) CSC 111 – Our Java-based “CS 1” 1/3 of the labs are robots CSC 360 – Intelligent Systems: AI, robotics, knowledge bases CSC 391/491 – Seminar, 1 credit hour special projects FYS 101 – First year seminar focused on writing skills

9 Languages NXT-G -- graphical programming language Lejos and Lejos NXJ – Java plus robot libraries Robolang – front end for Lejos used in Robotran NQC and Brixcc – tiny C variants for engineering Python – used with Create and talking to openCV (vision system)

10 NXT-G Graphical language Used in FYS 101 Not free Intuitive and easy to learn Has some problems IDE weaknesses inherent problems with non-textual language, e.g. interruptions

11 Robotran Translator program  Robolang – a simple Pythonish language  Translator to true Lejos  Used as standalone Java app  Compiles and downloads

12 Robolang Details Streamlined syntax for assignments and control structures, especially button handler methods Uses Java expression syntax and transparently inserts into the final Lejos code Simplified robot commands: –go forward 10 seconds Motor.A.start(); Motor.B.start(); try { Thread.sleep(10000); } catch (Exception e) {} Simplified function (method) syntax

13 Simple Light Follower program program follow1 constant BLACK = 42 loop var lightvalue = S3 display lightvalue if lightvalue < BLACK then stop else go forward end

14 Light Hunter program follow4 global constant BLACK = 42 global var turnedLeft = 1 loop var lightvalue = S3 display lightvalue if lightvalue < BLACK then do findLight else go forward end define huntLeft() returns number turn left sharp 25 degrees var lightvalue = S3 if lightvalue > BLACK then return 1 else turn right sharp 25 degrees return 0 end define huntRight() returns number turn right sharp 25 degrees var lightvalue = S3 if lightvalue > BLACK then return 1 else turn left sharp 25 degrees return 0 end define findLight var result if turnedLeft = 1 then result = huntLeft() if result = 1 then return end result = huntRight() if result = 1 then turnedLeft = 0 return end if turnedLeft = 0 then if huntRight() = 1 then return end if huntLeft() = 1 then turnedLeft = 1 return end

15 Our simulator Simulate the penbot, only one at a time, geared towards real assignments Don’t get overly caught up with 3d graphics Provide functionality with both Robolang and Lejos Use the lejos compiled code that makes calls to the firmware ROM Create our own ROM object with same API and let the compiled code, running in tinyVM, call it Then our ROM object sends updates to a graphics simulation object Kudos to students! –David Puehn did initial design and coding of the simulator –Kevin Mastropaolo took over 2 years ago and did phenomenal debugging and extending

Screenshot of Simulator

17 Assignments Early courses (majors and non-majors) –CSC 109 Build robots for competition using Robolang –CSC 110 Write programs to draw things using Robolang –EGR 111 Write programs using bricxcc –FYS 101 Write programs using NXT-G to learn programming CS 1 (usually majors) –Use lejos for wide variety of tasks (listed later) Junior/Senior courses (majors) –CSC 360 Robot competition, wumpus world, track following –Seminar Variety of tasks: Sony AIBO, ER-1, etc. Create robots (Roombas without the vacuum)

18 Activities & Assignments (CSC 111) 1.Robot acts like a sentry (back and forth) 2.Robot avoids obstacles by randomly turning after bumps 3.Robot randomly moves around (Brownian motion) 4.Robot responds to input through the buttons 5.Robot plays music 6.Robot senses light values and displays numbers on LCD 7.Robot goes forward only when flashlight is turned on 8.Robot turns to find light if low light level is sensed 9.Robot uses more elaborate schemes to find light source 10.Robot remembers direction of last successful turn to find light 11.Robot is taught a path which it can then replay (uses arrays) 12.Robot receives input from bumps and button presses, including binary or unary numbers 13.Robot draws a letter based on input number

19 Activities and Assignments (upper level) These are used in the robot competition, which can be entered by anyone in any class, from beginning to junior/senior level. 1.Robot follows a line on the floor, part of drag race competition 2.Robot tries to stay within a sumo ring while pushing another robot outside the ring 3.Robot navigates a maze (needs to remember path & obstacles)

20 Strategies for worthwhile assignments (This applies only to CSC 111 assignments.) Don’t try to accomplish too much in one program! … keep the time-frame in mind and how much out-of-lab time they can have. Reinforce structured programming (use given methods and construct new ones; emphasize problem decomposition). Require use of appropriate data structures (usu. Arrays). Get them thinking about AI issues, especially flexible problem- solving strategies and multiple alternatives. Progress from simple to several more complex versions of same problem, e.g. the light follower. Use the button press model to reinforce listeners and handlers which are used in other aspects of Java (like GUIs).

21 Experiences and conclusions Surveys show a strong positive attitude on part of students The comments are lavish with praise, but a few thought the RCX robots were too primitive FYS 101 students learned to program NXT’s using NXT-G in an amazingly short timeframe (2 weeks) CS 1 students said the robots motivate them to stay in CS More CS 0 students are going on to CS 1 for the fun of it, especially the CSC 109 students No significant change in CS 1 final grades or other indicators of acquisition of programming skills Students in 110 and 109 liked Robolang better than Lejos when they got into 111 In our robot competition, groups used brixcc, Lejos and Robolang and did comparably using any language

22 Our experiences and conclusions (2) We need a lot of help in the labs (so we hire student helpers) Grading must be different because we can’t download and test every single program Robot labs take a lot more time for students to complete; can’t do as much “pure CS” We need to staff after-hours lab time Students respond much more positively when each has their own robot to program; group exercises in 110 (made necessary by large number of students) were less gratifying So far, no theft and almost no breakage! NXT failure rate is alarmingly high, about 50%

23 Current and future work Finish debugging the Robotran simulator and port to NXT Use NXT’s lejos NXJ in CSC 111 next spring Develop a platform for CREATEs that uses Python and OpenCV Continue refining first year seminar using lessons learned Investigate other, more reliable robots for Engineering

24 Our Contact Information cs.canisius.edu/~robotics –SOFTWARE tab on left: Several versions of robotran –COURSES tab: the CSC 111 assignments and Robolang programs Canisius Magazine Fall 2006 – addresses: