Title: Bryn Mawr College
1A Hands-on Exploration of Educational
RoboticsPersonal Robots in Education
- Doug Blank
- Bryn Mawr College
- Institute for Personal Robots in Education
2Bryn Mawr College
- Founded 1885
- Located on a 135-acre suburban campus outside of
Philadelphia - 1,300 all-women undergraduates
- 130 Full-time faculty, 3 in CS
3Institute for Personal Robots in Education
- Formed in July 2006
- Georgia Institute of Technology, Bryn Mawr
College, and Microsoft Research - Created to explore and foster the appropriate use
of robots in the CS1 and CS2 courses to help the
growing crisis - Develop hardware, software, and curricular
materials to this end - www.roboteducation.org
4The Personal Robot Niche
- Personal Robot
- Low-cost, small, self-contained, fit in backpack
(or lunchbox), buy at bookstore - Focus on engaging computation
- Avoid mechanical and electrical engineering
topics - Robot as a device and tool
- Inviting to non-traditional students
- Exploit the power of the PC
- Wireless
5The Personal Robot Niche
One robot per student Robots can help make
computer science personal.
6Key concepts for comparing robots
- Price
- Capability
- Size, weight
- Odometry, dead reckoning
- Range sensors (sonar, infrared)
- Camera and image processing
- Analog signal vs. Digital signal
- On-board vs. Off-board Processing
- Appropriateness to task
7Personal Robots for Educations
- Aibo Sony (discontinued)
- AmigoBot MobileRobots
- Webots Cyberbotics
- Khepera K-Team, RoadNarrows
- E-puck GCtronic
- Hemisson K-Team, RoadNarrows
- Roomba/Create iRobot
- SRV1 Surveyor
- Boe-Bot Parallax
- Mindstorms NXT Lego
- Scribbler Parallax
8Personal Robot Landscape
Webots
Khepera
AmigoBot
Aibo
E-puck
Price
Hemisson
SRV1
Boe-Bot
NXT
Create
Scribbler
Capabilities
9Personal Robots for Educations
- Aibo 2500 - 3000 on Ebay
- AmigoBot 1500, plus analog video equipment
- Webots 240 student, 3825 professional
- Khepera 2000, plus analog video equipment
- E-puck 700, 3 for 1975, 1 lb
- Hemisson 788, 1 lb
- Roomba/Create 130, 180, 230, 6 lb.
- SRV1 375, then 295, 3 lb.
- Boe-Bot 110 - 150, 3.43 lb.
- Mindstorms NXT 300, 3 lb.
- Scribbler 60 - 200, 2.23 lb.
10Personal Robot Landscape
Webots
Khepera
AmigoBot
Aibo
E-puck
Price
Hemisson
SRV1
Boe-Bot
NXT
Create
Scribbler
Capabilities
11IPRE Robot Kit, prototype
12Myro Overview
Bluetooth Serial Transmitter/ Receiver
Myro
USB Bluetooth Dongle
13Overview
- Scribbler robot
- Bluetooth Serial Adaptor has already been setup
and given a unique name - USB Bluetooth Dongle
- Just plug it in, and select your Scribbler
- Myro Software
- Run install.bat on the CDROM and it will install
Python and other libraries (95MB) - OR Just boot off of the CD
14Editing Environment (IDLE)
Start Python
15Getting started
- gtgtgt from myro import
- Myro, (c) 2006 Institute for Personal Robots in
Education - See http//www.roboteducation.org/ for more
information - Version 1.0.2, Revision 1.99, ready!
- gtgtgt robot Scribbler(com4)
- Waking robot from sleep...
- Hello, I'm Scribby!
- gtgtgt robot.beep(1, 800)
- gtgtgt robot.joyStick()
- gtgtgt robot.joyStick(1)
- gtgtgt D
16Functional Interface Movement
- initialize(com4)
- turnLeft(value)
- turnRight(value)
- forward(value)
- backward(value)
- stop()
- values are between 0 and 1 and represent
- power or speed
17Functional Interface Movement
- turnLeft(value, time)
- turnRight(value, time)
- forward(value, time)
- backward(value, time)
- values are between 0 and 1 and represent
- power or speed, time is in seconds
18Movement Interface, Advanced
- translate(value)
- rotate(value)
- move(tvalue, rvalue)
- values are between -1 and 1 and
- represent speed and direction
- rotate -1 to right, 1 to left
- translate -1 backwards, 1 forwards
19Functional Interface Sensors
- getLight(position)
- getLine(position)
- getStall()
- getIR(position)
- getInfo() returns dictionary
- getAll() returns dictionary
- get(item, position)
- get(light, left)
- get(stall)
20Functional Interface Sounds
- beep(duration, freq1)
- beep(duration, freq1, freq2)
- speak(Hello world!)
- getVoices()
- setVoice(name)
21Looping constructs
- for seconds in timer(5)
- forward(.7)
- wait(1)
- turnLeft(.7)
- wait(1)
- while timeRemaining(5)
- forward(.7, 1)
- turnLeft(.7, 1)
22Looping constructs
- while timeRemaining(5)
- forward(.7, 1)
- turnLeft(.7, 1)
23Chat (IM) Interface
- c1 Chat(sarah, password)
- c1.send(joe, Hi, whats up?)
- c2 Chat(joe, sEcrEt)
- c2 c2.receive()
- (sara_at_myro.roboteducation.org', Hi, whats
up?')
24Chat 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()
25gtgtgt simulator()
26Python
- 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 (via SWIG)
27Python
- def function(arg1, arg2)
- print arg1, arg2
- return arg1 arg2
- class Classname(C1, C2)
- def __init__(self, arg1, arg2)
- self.args arg1, arg2
- def method(self)
- return self.args0 self.args1
- gtgtgt function(1, 2)
- 12
- gtgtgt o Classname(1, 2)
- gtgtgt o.method(1, 2)
- 3
28Security Guard Example
- 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)
29Robots in the classroom
30USB Bluetooth Dongle
- Insert into a USB slot
- After drivers install, click on Bluetooth icon
and select Open Bluetooth Settings - Turn on Scribbler
- Click on Add, and check My device is ready to
be found - Select Use the passkey from the documentaion
(1234) - Note Outgoing COM Port
31Installation
- install.bat from the CDROM will install
- Python 2.4
- Text-to-speech wrapper
- Sound abstractions
- Serial Port abstractions
- Chat (IM) abstractions
- Myro API and simulator
32Future Myro
- Fall 2007
- Vision!
- Spring 2008
- Reimplement in .NET/Mono
- Allow flexibility in languages
- Allow speed where necessary (vision)
- Gyro
- Utilize Microsofts Robotics Studio
- 3D Simulator
- Pathway to advanced robotics
- GUI-based control interface
- CS2 Robotic Arm and Camera
33Surveyor SRV1
34Scribbler with IPRE vision/Bluetooth board
35Gyro
36Pyro, Python Robotics
- PyroRobotics.org
- Designed for advanced CS students
- Ability to do PhD topics easily as senior
projects - Not appropriate for CS1
- Provides a pathway to advanced robotics
37Servers Robots and Simulators
38Further information
- www.roboteducation.org
- blog.roboteducation.org
- myro.roboteducation.org
- pyrorobotics.org
39Robots in the classroom They are coming!