Institute for Personal Robots in Education -- One Year On PowerPoint PPT Presentation

presentation player overlay
About This Presentation
Transcript and Presenter's Notes

Title: Institute for Personal Robots in Education -- One Year On


1
Computer vision and image processing Accessible
resources for robotics and CS curricula
Designed for Pedagogy Exploring Robot Vision in
CS1 The Institute for Personal Robots in
Education Doug Blank, Bryn Mawr College In
association with Tucker Balch, Deepak Kumar,
Stewart Tansley, Mark Guzdial, Keith OHara, and
Jay Summet and many others
2
Introduction
  • Institute for Personal Robots in Education (IPRE)
  • Fluke Scribbler, hardware
  • Myro, software
  • Learning Computing with Robots
  • Summer workshops at GATech and Bryn Mawr College
    this summer! See our booth over the next couple
    of days.

3
IPRE Overview
  • Mission
  • Make education more fun and effective through the
    use of personal robots
  • Audience All levels, from middle school to
    graduate school
  • Joint effort hosted at Georgia Tech with Bryn
    Mawr College and Microsoft Research
  • 3 year seed funding provided by Microsoft
    Research
  • Special ingredient and hypothesis
  • A personal robot for every student programmer

4
Personal Robot
  • Every student gets their own robot
  • Small enough to carry in backpack
  • Cost about the price of a textbook
  • Wireless, controlled from computer
  • Interactive and easy to program
  • Robust
  • Personalizable
  • More than just a robot

5
Personal Robot
turnLeft(1, .5) speak(Hello, SIGCSE!)
6
IPRE Pilot Hardware KitFeaturing Parallaxs
Scribbler
  • 6 Light sensors
  • 7 IR sensors
  • Stall sensor
  • Speaker
  • 5 LEDs
  • 2 motors
  • Bluetooth wireless
  • Camera
  • Gamepad

7
IPREs Philosophy
  • The Personal Robot provides the context
  • The needs of the curriculum drive the design of
    the robot, software, and text
  • The software is easy to pickup, but scales with
    experience (pedagogically scalable)
  • An accessible, engaging environment for new,
    diverse students
  • Computer Science ? programming
  • Computing a social activity
  • Computing a medium for creativity
  • Focus on performances rather than competitions

8
Scribbler with IPRE Fluke
9
A CS1 Assignment Exploring a Pyramid
10
Civic Computing
11
Myro is Python
  • Looks like English
  • Indentation matters
  • Interactive
  • Easy to learn, but powerful

12
Myro is Python
  • Looks like English
  • Indentation matters
  • Interactive
  • Easy to learn, but powerful
  • IronPython gives access to Microsoft Robotics
    Studio
  • and Linux and Macintosh via Mono

13
Python Functions
  • def functionName(arg1, arg2value)
  • print hello world!, arg1, arg2
  • this is a comment
  • functionName(1)

14
Myro, inspired by MediaComp
15
Myro, inspired by MediaComp
  • picture takePicture()
  • count 0.0
  • for pixel in getPixels(picture)
  • if distance(getRGB(pixel), getRGB(pink)) lt 100
  • totalX getX(pixel)
  • count 1
  • if totalX/count lt getWidth(picture)/2
  • turnLeft(1, .2)
  • else
  • turnRight(1, .2)

16
Panorama
  • for i in range(10) show(takePicture(gray))tur
    nLeft(1, .2)

ONLINE Evaluation
www.cse.buffalo.edu/sigcse08/evaluations
Password sigcse08
17
IPRE Open Textbook
18
Connections to Biology and Psychology
19
www.roboteducation.org
  • Institute for Personal Robots in Education (IPRE)
  • Fluke Scribbler, hardware
  • Myro, software
  • Learning Computing with Robots
  • If you are interested in working with us to
    explore robots and education, please let us know.

20
Analysis so far Retention?
CS2 Data Structures Enrollment
21
Analysis so far Retention!
CS2 Data Structures Enrollment
22
Hands-on with Myro
  • 10 IPRE Robot kits
  • Explore image processing, or any aspect of robots
    and education
  • Install software
  • Explore Python, Myro, and Robot

23
Using Myro
  1. Install software on any computer (Mac, Linux, or
    Windows)
  2. Establish Bluetooth connection (via a Serial
    port)
  3. Start Python
  4. Load Myro
  5. Initialize connection with robot
  6. Have fun!

24
1. Install software
Myro
25
2. Serial Connection over Bluetooth (com4)
Serial Bluetooth Adapter
Myro
USB Bluetooth Adapter
26
3. Start Python (IDLE)
27
4. Load Myro
  • gtgtgt from myro import

28
5. Initialize connection to robot
  • gtgtgt from myro import
  • gtgtgt init(com4)

29
6. Have Fun!
  • gtgtgt gamepad()

30
Gamepad controls
  • Pad Action
  • ------ -------
  • Left/Right turnLeft() and turnRight()
  • Up/Down forward() and backward()
  • Button Action
  • ------ -------
  • 1 takePicture()
  • 2 beep(.25, 523)
  • 3 beep(.25, 587)
  • 4 beep(.25, 659)
  • 5 speak('Hello. My name is Scribby.')
  • 6 speak('Ouch! I'm a sensitive
    robot.')
  • 7 speak('I'm hungry.')
  • 8 speak('Good bye, for now.') and
    stop()

31
Manual Control
  • gtgtgt from myro import
  • Myro, (c) 2008 Institute for Personal Robots in
    Education
  • See http//www.roboteducation.org/ for more
    information
  • Version 2.6.5, ready!
  • gtgtgt init()
  • Waking robot from sleep...
  • Hello, I'm Scribby!
  • gtgtgt senses()
  • gtgtgt gamepad()

6
5
3
7
8
Forward
2
4
Left
Right
Back
1
32
Lets get Personal!
  • Name your robot
  • gtgtgt setName(Fifi)
  • gtgtgt setName(Robbie)
  • gtgtgt setName(Toaster)
  • gtgtgt setName(Bob)

33
Challenges
  1. Is there Life on Mars?
  2. Build a Dancing Robot
  3. Build a Robo Cockroach

34
Challenge 1Is there Life on Mars?
  • Mars is the center of the room
  • There is a picture of an alien in the mountains
  • Manually drive your robot to Mars
  • Photograph the specimen
  • Is there life on mars?

35
Its alive!
36
Challenge 2Build a Dancing Robot
www.blogguelph.com
37
Movement
  • forward(speed, seconds)
  • gtgtgt forward(1, 2.3)
  • backward(speed, seconds)
  • gtgtgt backward(.5, 4.6)
  • turnLeft(speed, seconds)
  • gtgtgt turnLeft(1, .3)
  • turnRight(speed, seconds)
  • gtgtgt turnRight(1, .6)

38
Dancing
  • gtgtgt forward(1, 1.4)
  • gtgtgt turnLeft(1, .3)

39
Dancing
  • gtgtgt forward(1, 1.4)
  • gtgtgt turnLeft(1, .3)
  • gtgtgt forward(1, 1.4)
  • gtgtgt turnLeft(1, .3)

40
Square Dancing
  • gtgtgt forward(1, 1.4)
  • gtgtgt turnLeft(1, .3)
  • gtgtgt forward(1, 1.4)
  • gtgtgt turnLeft(1, .3)
  • gtgtgt forward(1, 1.4)
  • gtgtgt turnLeft(1, .3)
  • gtgtgt forward(1, 1.4)
  • gtgtgt turnLeft(1, .3)

41
range()
  • gtgtgt range(4)
  • 0, 1, 2, 3
  • gtgtgt for i in range(4)
  • print Hi
  • Hi!
  • Hi!
  • Hi!
  • Hi!

42
range()
  • gtgtgt for i in range(4)
  • forward(1, 1.4)
  • turnLeft(1, .3)

43
Making Noise
  • beep(duration, freq1)
  • gtgtgt beep(.5, 880)
  • gtgtgt beep(.5, 440)
  • beep(duration, freq1, freq2)
  • gtgtgt beep(1, 440, 880)

44
Making Noise
  • speak(any string)
  • gtgtgt speak(Hello world!)
  • gtgtgt speak(Whats up, Doctor Jay?)
  • getVoices()
  • gtgtgt getVoices()
  • setVoice(Name)
  • gtgtgt setVoice(Fred)

45
Making Noise
  • playSong( makeSong(string))
  • gtgtgt playSong(makeSong(a 1 c 1/8))
  • gtgtgt playSong(makeSong(c4 1 d3 1 a5 1))

46
Putting it all together
  • Instead of entering the commands one at a time,
    we can put them all together into a program
  • From the IDLE menu, select File -gt New Window
  • Name it by selecting File -gt Save asfrom the
    new window
  • Name it Dance.py

47
Python
  • Looks like English
  • Indentation matters
  • Interactive
  • Easy to learn, but powerful

48
Dance.py
  • for i in range(10)
  • forward(1, 2)
  • backward(1, 2)
  • for i in range(3)
  • beep(.25, 200)
  • beep(.25, 400)
  • beep(.25, 800)
  • beep(.25, 1600)

49
Dance.py
  • for i in range(10)
  • forward(1, 2)
  • backward(1, 2)
  • for i in range(3)
  • beep(.25, 200)
  • beep(.25, 400)
  • beep(.25, 800)
  • beep(.25, 1600)

To run your program, select Run -gt Run
Module from the new window menu
50
Myro control
  • wait(seconds)
  • gtgtgt wait(.5)
  • for seconds in timer(10) do something for
    10 seconds
  • while timeRemaining(20)
  • do something for 20 seconds

51
Camera
  • gtgtgt picture takePicture()
  • gtgtgt show(picture)
  • Click and drag in show window
  • gtgtgt picture takePicture(blob)
  • gtgtgt count, x, y getBlob()
  • gtgtgt configureBlob(y1,y2,u1,u2,v1,v2)

52
Robot Bling
  • gtgtgt setLEDBack(1)
  • gtgtgt setLEDBack(0)

53
Challenge 3Build a Robo Cochroach
  • If you see light, run

54
Robot Sensors
55
Senses
  • getLight()- left, center, right
  • getBright() - left, center, right
  • getIR() - left, right
  • getObstacle() - left, center, right

56
Reading the Light Sensors
Light sensors
  • getLight(left)
  • getLight(center)
  • getLight(right)
  • getLight()
  • 657, 1453, 1025

57
Python functions
  • def functionName(arg1, arg2value)
  • print hello world!, arg1, arg2
  • this is a comment
  • functionName(1)

58
Thank you for your time!
For more information see www.roboteducation.org
Write a Comment
User Comments (0)
About PowerShow.com