Title: Bryn Mawr College
1Robots in the classroom Motivating Students and
Machines
- Douglas Blank
- Computer Science
- Bryn Mawr College
2Big picture
- Would like to create an artificial intelligence
- Needs a body, a physical presence
- And a whole lot of learning
- And a desire to learn
3Big picture
- Would like to create an artificial intelligence
- Needs a body, a physical presence
- And a whole lot of learning
- And a desire to learnDevelopmental Robotics
4Developmental Robotics
- What is thought?
- What is consciousness?
- What drives a system to want to learn?
- How can we create such a system?
5Developmental Robotics
- I believe in strong AI
- Such an intelligence may be quite different from
our own - Will probably be as complex as our own
intelligence, and just as hard to figure out how
it works - Will lead to conscious systems, within 50 years
6Two practical questions
- What robot to use?
- How can students participate in such research?
7What robot to use?
8How can students participate?
- How can we explore the big picture, given that
most of our students are just now encountering CS
and robotics?
9How can students participate?
- How can we explore the big picture, given that
most of our students are just now encountering CS
and robotics? - Make the robots accessible.
10Pyro
- Pyro is the software component of a recently
completed NSF grant, Beyond LEGOs Hardware,
Software, and Curriculum for the Next Generation
Robot Laboratory - Douglas Blank, Bryn Mawr College
- Deepak Kumar, Bryn Mawr College
- Lisa Meeden, Swarthmore College
- Holly Yanco, University of Massachusetts Lowell
11Pyro
- Code for exploring robotics and AI, written in
Python - GUI, libraries, abstractions, and collection of
teaching materials - Robot, Device, OS, and Paradigm independent
- Designed for beginning AI students to
jump-right-in, but to also pedagogically scale as
the user gains experience - A community of users, teachers and students
12Python
- Looks like pseudo-code
- Indentation matters
- Object system built on top of functions
- Support for functional programming
- Large collection of libraries
- Interactive
- Can be easily integrated with other low-level
languages
13Pythons all the way down
- GUI (Tkinter)
- Graphs, plots, bar charts, other visualizations
- Libraries and modules
- Neural networks, self-organizing map,
backpropagation of error, genetic algorithm,
genetic programming, mapping, RL, etc. - Vision interface
- Display, and filter application
- Complete Simulator
- Sonar, Gripper, Camera, Lights, Bulbs, 2D/3D
14Can run the same control programs
15Servers Robots and Simulators
16Brain A Pyro Control Program
- from pyrobot.brain import Brain
- class Avoid(Brain)
- def step(self)
- self.robot.move(1, 0)
- def INIT(engine)
- return Avoid('My Avoid Brain', engine)
17Pyro, Python Robotics
- http//PyroRobotics.org
- Designed for advanced CS students
- Ability to do PhD topics easily as senior
projects - Modules for exploring many topics in AI and
cognitive science - Not appropriate for CS1
18Two additional questions
- Where are all of the computer science students?
- What happened?
19Commission on Professionals in Science and
Technology
- In computer science, the percentage of jobs held
by women was lower at the end of the 20 year
period than it was in 1983. Things were so bad
that even while womens share of these jobs was
declining, their absolute numbers continued to
increase through the year 2000, but then started
to decline.
20By any measure, were failing
21Bryn Mawr College Computer Science
- Small, all womens liberal arts college outside
Philadelphia - CS is newest major
- Computational Methods Minor
- 1 - 5 Majors, Minors each year
22Bryn Mawr College Computer Science
Deepak Kumar
Dianna Xu
Doug Blank
23Microsofts Educational Robot Initiative
- Develop an institute to explore robots and
education - Develop curricular materials for introductory
computing courses - Make them accessible
- Make them appeal to a broad range of students
24Robots could help?
- Provides motivation to learn CS
- We had a better programming environment for
beginning students - Experience with making advanced robotics
accessible - Yes, Person Robots could help make CS personal
25Institute for Personal Robots in Education
- Begun July, 2006 from a 1 million grant from
Microsoft Research - Apply the philosophy of making computer science
relevant and accessible to CS1 - Develop a robot, software, and curricular
materials for CS1 and CS2 - Foster the trend of putting the liberal arts into
engineering and technology-related fields
26A Challenge
- How would you change CS education, if you were
given a million dollars?
27Personal Robot
robot.turnLeft(.5) robot.speak(Hello)
Gyro running Myro
28CS1 Introduction to Computing
29CS2 Data Structures
30Approach
- Robotics and computing interleaved.
- Robotics serves as the motivating context for the
computing. - To improve transfer
- To demonstrate relevance
- Start with the Project
- What can we ask students to do that they will
find motivating and relevant? - Then, what computing do we need (and in what
order) to achieve that project?
3115 Chapter/Week Outline
- Chapter 1 The World of Robots
- Chapter 2 Robots Personal or Otherwise
- Chapter 3 Sensing the World
- Chapter 4 Making Decisions
- Chapter 5 Behaviors
- Chapter 6 Control Paradigms
- Chapter 7 Making Music
- Chapter 8 Communication
- Chapter 9 Artificial Intelligence
- Chapter 10 Computing Computation
- Chapter 11 Games Soccer anyone?
- Chapter 12 Social Robots Entertainment
- Chapter 13 Swarms
- Chapter 14 Robot Ethics
- Chapter 15 Smart Appliances
32Myro Pyro, Reloaded
- Implemented in .NET
- Use IronPython, but be language agnostic
- Simplified framework (zero mystery)
- Rework everything (including C code) into a
single framework - Sophisticated, yet extensible simulator
- Standardized protocols between levels
- Remain compatible with advanced robots and
simulators
33Parallax Scribbler
34Prototypes
Bluetooth Serial Transmitter/ Receiver
Myro
USB Bluetooth Dongle
35IPRE Robot Kit
36Parallax Scribbler
37Scribblers Day 1
38Editing Environment (IDLE)
39More on Myro
- Pyro
- Functions
- Objects
- Movement
- Sensing
- Sounds
- IM
- Future Myro
40Myro, First Steps
- gtgtgt from myro import
- Myro, (c) 2006 Institute for Personal Robots in
Education - See http//www.roboteducation.org/ for more
information - Version 0.8.0, Revision 1.80, ready!
- gtgtgt robot Scribbler(com4)
- Waking robot from sleep...
- Hello, I'm Scribby!
- gtgtgt robot.beep(1, 800)
- gtgtgt robot.joyStick()
- gtgtgt D
41SimScribbler
42Functional Interface Movement
- initialize(com4)
- turnLeft(value)
- turnRight(value)
- forward(value)
- backward(value)
- stop()
- values are between 0 and 1
43Object Interface Movement
- robot Scribbler(com4)
- robot SimScribbler()
- robot.turnLeft(value)
- robot.turnRight(value)
- robot.forward(value)
- robot.backward(value)
- robot.stop()
44Movement Interface, Advanced
- translate(value)
- rotate(value)
- move(tvalue, rvalue)
- robot.translate(value)
- robot.rotate(value)
- move(tvalue, rvalue)
- values are between -1 and 1
45Functional Interface Sensors
- getLight(position)
- getLine(position)
- getStall()
- getIR(position)
- getInfo() returns dictionary
- getAll() returns dictionary
- get(item, position)
- get(light, left)
- get(stall)
46Functional Interface Sounds
- beep(duration, freq1)
- beep(duration, freq1, freq2)
- speak(Hello world!)
- getVoices()
- setVoice(Fred)
47Object Interface Sounds
- robot.beep(duration, freq1)
- computer.beep(duration, freq1)
- computer.speak(Hello world!)
- computer.getVoices()
- computer.setVoice(Fred)
- s1 makeSong(a5 1 b5 .5 c5 .5)
- s2 makeSong(a5 a4 1 c4 c4 1)
- robot.playSong(s1)
- robot.playSong(s2)
48Chat (IM) Interface
- c1 Chat(sarah, password)
- c2 Chat(joe, sEcrEt)
- c1.send(joe, Hi, whats up?)
- c2.receive()
- (sara_at_myro.roboteducation.org', Hi, whats
up?')
49Chat Robot Remote Control
- gtgtgt robot Scribbler()
- gtgtgt robot.setName(Arnold)
- gtgtgt robot.initializeRemoteControl("mypassword")
- gtgtgt robot.processRemoteControlLoop()
- on a computer, far, far away
- gtgtgt chat Chat("myname", passwerd")
- gtgtgt chat.send(Arnold", "robot.turnLeft(.4)")
- gtgtgt chat.receive()
50Reading the Light Sensors
- robot.getLight(left)
- robot.getLight(center)
- robot.getLight(right)
- robot.getLight()
- 657, 1453, 1025
Light sensors
51Security Guard
- from myro import
- robot Scribbler()
- vals 0 for i in range(100)
- calibration
- for i in range(100)
- valsi robot.get("light", "left")
- avg sum(vals)/100.0 securing perimeter!
- within some tolerance
- while abs(robot.get("light", "left") - avg) lt 50
- wait(1)
- intruder alert!
- while 1
- robot.beep(1, 1000)
- robot.beep(1, 500)
52Possible topics in CS1
53Karel the Robot
54Modeling Animals
- How do animals sense light?
- Why do moths move to the light?
- How do they know which way to turn to get there?
- Lets model light-seeking behavior
55Connections to Biology and Psychology
56Robots Gone Berserk
57Summary
- The IPRE hopes to support all robot-related
educational activities, especially those
appropriate for introductory courses that appeal
to the non-traditional computing populations
58Summary
- The IPRE hopes to support all robot-related
educational activities, especially those
appropriate for introductory courses that appeal
to the non-traditional computing populations so
that we can make conscious robots
59Further information
- www.roboteducation.org
- blog.roboteducation.org
- wiki.roboteducation.org