SlideShare uma empresa Scribd logo
1 de 46
Baixar para ler offline
Hacking Robots for Fun and Profit

                               presented by Chad Udell
                            at Flash and the City, 2010
Hacking Robots for Fun and Profit

 • Flash is eminently hackable and ideal for building UIs
    for experiences that integrate with hardware
 • Tons of devices are coming with web connections

 • Hardware is getting cheaper and easier to get

 • Hobbyist techniques can be adapted for real world
A History of Hacking Flash with Hardware
About the Adler Planetarium Exhibit Project

 • Planet Explorers: 13 Experiences

 • X-Rovers are one of 7 interactive pieces
Planet Explorers: X-Rovers

 • What is it?

 • How does it work?

 • What is the experience?

 • Demos

 • Code Samples
What is it?

 • Emulating a Mars Rover
    like experience
 • Has to have a “mission”

 • Has to be easy to use
Definition of the Experience

 • Origins (KUD)

   ‣ Remote Exploration is
      the Concept
 • Key Points

   ‣ No Crying Children

   ‣ Some Learning

   ‣ Ages 3-8
First Thoughts

 • Custom R/C

 • T1

 • Imperial Droid
Basic Limitations

 • Skillset - We aren’t robotics engineers or electricians

 • Budget - Every client is conscious of this - duh

 • Scope - Need to integrate a timer, controls, basic
    computer vision, long term maintenance solution
 • Quality - Uptime is crucial. “Out of Order” is not an
    option
Choosing a Robot

 • Essentially we need a connected webcam

 • Needs to be cheap

 • Needs to be hackable




                   Enter, Rovio.
A Diagram of the system
2 Stations, each containing:


                               !"#$%&'()*+,-./+*0)




     UPS (APC BR1200)
                                                                                             APC AV C2




                                                           Happ Kiosk Amp
                                                            and Speakers


                                                     1"234&+56(!11(.7
                                                                                            Rovio Charger

           Happ
          Controls




                                  Server (Red 5)

                                                            Netgear Wireless Access Point
                                                                       WG-102
                                     Switch

                                                                                               Rovio
Rovio to the Rescue

 • Skillset - Essentially like building a mashup
    (documented API, built in webserver)
 • Budget - They are inexpensive and readily available
    (important for uptime)
 • Scope - many of the requirements are handled in
    some built in fashion already (wayfinding, charging).
 • Quality - We have a company backing it
Flash to the Rescue

 • Skillset - We like it.

 • Budget - No extra expensive hardware to be
    designed, no expensive proprietary SDKs.
 • Scope - Still some questions here. Going to have to
    manage the client’s expectations.
 • Quality - Debugging and remote config is easy
Controlling the Rovio

 • Rovio responds via HTTP (CGI script)

 • Use of key listeners to trigger API calls.
    /rev.cgi?Cmd=nav&action=value&drive=d_value&speed=s_value Input
    Parameter

    value = 18 d_value = 0 (Stop)
    1 (Forward)
    2 (Backward)
    3 (Straight left)
    4 (Straight right)
    5 (Rotate left by speed)
    6 (Rotate right by speed)
    7 (Diagonal forward left)
    8 (Diagonal forward right)
    9 (Diagonal backward left)
    10 (Diagonal backward right)
    11 (Head up)
    12 (Head down)
    13 (Head middle)
    14 (Reserved)
    15 (Reserved)
    16 (Reserved)
    17 (Rotate left by 20 degree angle increments)
    18 (Rotate right by 20 degree angle increments)
    s_value = 1 (fastest) – 10 (slowest)
Controlling the Rovio




          Demo 1: Sending
         Commands to Rovio
Getting the Video

 • Rovio sends via MJPEG via HTTP (CGI script)

 • Set a loader’s source to the URL

    Camera Control – GetData.cgi

    Description
    The basic command for acquiring MJPEGGrammar
    /ChangeResolution.cgi?ResType=value[&RedirectUrl=sUrl] Input Parameter
    None
    Privilege
    None
    Return Value
    An instance captured motion image.



 • Results were marginal (12-15 fps)
Getting the Video




      Demo 2: MJPeg stream
                in a Loader
Deeper Research on Video/Image Processing
   Simple color detection -

  •     http://www.interactionfigure.nl/2009/colour-tracking-with-the-webcam-in-flash/


Color detection in Processing

  •    http://jamesalliban.wordpress.com/2008/11/16/colour-detection-in-processing/


Haar training for object detection

  •    http://note.sonots.com/SciSoftware/haartraining.html


Modified facial detection

  •     http://www.quasimondo.com/archives/000687.php
Technology Evaluations

 • Shopping = Fun




 • Reading Electrical Engineer Documents = Not so Fun

 • Wiring Boards = Fun for some

 • Building PoCs = Super fun!
Prototype

 • Software Proof of Concept

 • Hardware Hacking and Integration
Happ Config 1
Happ Config 2
Prototype




     Demo 3: Happ Controls
Alpha

 • Video was ok, but needed some juice.

 • Computer vision was deemed better than AR or
   object detection
 • Play control overall was very pleasing

 • Testing, Testing, Testing
Play Testing Video
Enter Red 5/Xuggle

 • Transcode the Video to H264       (SteamStream)

 • Replace the MJPEG loader with a Netstream object

 • Better results. Lower latency.

 • Approaching 24-30fps

 • There is a bit of a hiccup with the initialization of the
    stream.
Enter Red 5/Xuggle




      Demo 4: Red5/Xuggle
Processing the video

 • Considered AR

   • Too Inflexible - Markers weren’t attractive

 • Considered Object Detection (Haar Cascades/
    OpenCV)
   • A tad slow-ish

 • Attempted using simple ColorBoundsRect
Terminator Vision
Finding the Targets




    Demo 5: Computer Vision
What does that get you? (The Good)
What does that get you? (The Bad)
How about Creating a Unique Target?

• Eliminate False Positives (was better, but not perfect)

• Ensure Speedy Detection (was a little slower)




    Not Unique                  A Lot More Unique
Processing the video

 • Settled on Color Detection via Thresholding

 • Tomek’s Blob Detection

   • http://play.blog2t.net/fast-blob-detection

 • Soulwire’s Color Averaging

   • http://blog.soulwire.co.uk/code/actionscript-3/
      extract-average-colours-from-bitmapdata
Fixing the Video




            Demo 5: Revised
            Computer Vision
In Action
In Action
In Action
In Action
In Action
In Action
Buttoning it up

 • Charging handoff

 • Locking the kiosks down

 • C++ Socket Server for the Lights

 • Startup, shutdown

 • Training for the switchover
Lessons Learned

 • SWF to EXE is not needed anymore. AIR 2!

 • Test early! Test Often! Test Under lots of Conditions!

 • Static Electricity Sucks (installation is crazy)

 • Your Kiosk Can Never Be Too Stable (Bullet Proof
    Your Kiosks)
 • Logging, Logging, Logging

 • Buy Lots of Extras
Other stuff to hack!

 • Security/WiFi Cameras - http://www.axis.com

 • Tons of X10 Stuff - http://www.smarthome.com

 • Other Robots - http://www.spykeeworld.com/

 • Rocket Launcher - http://www.thinkgeek.com/
    geektoys/warfare/8bc4/?cpg=cj
 • Ultimarc Controls - http://www.ultimarc.com/
More info, code samples, etc.

 • http://electricpineapple.net/ - Erik Peterson’s blog

 • http://ionagroup.com/labs - Iona’s Blog

 • http://visualrinse.com - My Blog




                  Questions?
Thank you
• Find Us on:




                                               THE IONA GROUP
                    620 West Jackson Street • Morton, Illinois 61550
                P: 309.263.4662 • F: 309.263.8262 • 888.644.IONA
                                              www.ionagroup.com

Mais conteúdo relacionado

Mais procurados

DEVOXX Let's Get Physical: I/O Programming with Java on the Raspberry Pi usin...
DEVOXX Let's Get Physical: I/O Programming with Java on the Raspberry Pi usin...DEVOXX Let's Get Physical: I/O Programming with Java on the Raspberry Pi usin...
DEVOXX Let's Get Physical: I/O Programming with Java on the Raspberry Pi usin...savageautomate
 
OpenCV for Embedded: Lessons Learned
OpenCV for Embedded: Lessons LearnedOpenCV for Embedded: Lessons Learned
OpenCV for Embedded: Lessons LearnedYury Gorbachev
 
Ubiquitous Content Symposium 2009
Ubiquitous Content Symposium 2009Ubiquitous Content Symposium 2009
Ubiquitous Content Symposium 2009Shigeru Kobayashi
 
!Zpx Overview New
!Zpx Overview New!Zpx Overview New
!Zpx Overview Newcynthiabro
 
ELC-E 2010: The Right Approach to Minimal Boot Times
ELC-E 2010: The Right Approach to Minimal Boot TimesELC-E 2010: The Right Approach to Minimal Boot Times
ELC-E 2010: The Right Approach to Minimal Boot Timesandrewmurraympc
 
Velocity london 2012 bbc olympics
Velocity london 2012 bbc olympicsVelocity london 2012 bbc olympics
Velocity london 2012 bbc olympicsAndrew Brockhurst
 
Autonomous Drone Development with Java and IoT
Autonomous Drone Development with Java and IoTAutonomous Drone Development with Java and IoT
Autonomous Drone Development with Java and IoTjavafxpert
 

Mais procurados (8)

DEVOXX Let's Get Physical: I/O Programming with Java on the Raspberry Pi usin...
DEVOXX Let's Get Physical: I/O Programming with Java on the Raspberry Pi usin...DEVOXX Let's Get Physical: I/O Programming with Java on the Raspberry Pi usin...
DEVOXX Let's Get Physical: I/O Programming with Java on the Raspberry Pi usin...
 
OpenCV for Embedded: Lessons Learned
OpenCV for Embedded: Lessons LearnedOpenCV for Embedded: Lessons Learned
OpenCV for Embedded: Lessons Learned
 
Ubiquitous Content Symposium 2009
Ubiquitous Content Symposium 2009Ubiquitous Content Symposium 2009
Ubiquitous Content Symposium 2009
 
Java withrealworldtechnology
Java withrealworldtechnologyJava withrealworldtechnology
Java withrealworldtechnology
 
!Zpx Overview New
!Zpx Overview New!Zpx Overview New
!Zpx Overview New
 
ELC-E 2010: The Right Approach to Minimal Boot Times
ELC-E 2010: The Right Approach to Minimal Boot TimesELC-E 2010: The Right Approach to Minimal Boot Times
ELC-E 2010: The Right Approach to Minimal Boot Times
 
Velocity london 2012 bbc olympics
Velocity london 2012 bbc olympicsVelocity london 2012 bbc olympics
Velocity london 2012 bbc olympics
 
Autonomous Drone Development with Java and IoT
Autonomous Drone Development with Java and IoTAutonomous Drone Development with Java and IoT
Autonomous Drone Development with Java and IoT
 

Destaque

Programmable Network Node: Applications
Programmable Network Node: ApplicationsProgrammable Network Node: Applications
Programmable Network Node: ApplicationsTal Lavian Ph.D.
 
Hacking Robotics(English Version)
Hacking Robotics(English Version)Hacking Robotics(English Version)
Hacking Robotics(English Version)Kensei Demura
 
Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)Piyush Chand
 

Destaque (6)

Network with node
Network with nodeNetwork with node
Network with node
 
Programmable Network Node: Applications
Programmable Network Node: ApplicationsProgrammable Network Node: Applications
Programmable Network Node: Applications
 
Hacking Robotics(English Version)
Hacking Robotics(English Version)Hacking Robotics(English Version)
Hacking Robotics(English Version)
 
ROS distributed architecture
ROS  distributed architectureROS  distributed architecture
ROS distributed architecture
 
Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)
 
Roomba
RoombaRoomba
Roomba
 

Semelhante a Hacking Robots for Fun and Profit

Hacklu2011 tricaud
Hacklu2011 tricaudHacklu2011 tricaud
Hacklu2011 tricaudstricaud
 
Hadoop Demystified + Automation Smackdown! Austin JUG June 24 2014
Hadoop Demystified + Automation Smackdown!  Austin JUG June 24 2014Hadoop Demystified + Automation Smackdown!  Austin JUG June 24 2014
Hadoop Demystified + Automation Smackdown! Austin JUG June 24 2014datafundamentals
 
Practical IoT Exploitation (DEFCON23 IoTVillage) - Lyon Yang
Practical IoT Exploitation (DEFCON23 IoTVillage) - Lyon YangPractical IoT Exploitation (DEFCON23 IoTVillage) - Lyon Yang
Practical IoT Exploitation (DEFCON23 IoTVillage) - Lyon YangLyon Yang
 
Functional verification techniques EW16 session
Functional verification techniques  EW16 sessionFunctional verification techniques  EW16 session
Functional verification techniques EW16 sessionSameh El-Ashry
 
WTF is Twisted?
WTF is Twisted?WTF is Twisted?
WTF is Twisted?hawkowl
 
IEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
IEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architectureIEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
IEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architectureSebastien Kuntz
 
Neotys PAC 2018 - Jonathon Wright
Neotys PAC 2018 - Jonathon WrightNeotys PAC 2018 - Jonathon Wright
Neotys PAC 2018 - Jonathon WrightNeotys_Partner
 
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)OpenBlend society
 
Scratching the itch, making Scratch for the Raspberry Pie
Scratching the itch, making Scratch for the Raspberry PieScratching the itch, making Scratch for the Raspberry Pie
Scratching the itch, making Scratch for the Raspberry PieESUG
 
When DevOps and Networking Intersect by Brent Salisbury of socketplane.io
When DevOps and Networking Intersect by Brent Salisbury of socketplane.ioWhen DevOps and Networking Intersect by Brent Salisbury of socketplane.io
When DevOps and Networking Intersect by Brent Salisbury of socketplane.ioDevOps4Networks
 
雲端影音與物聯網平台的軟體工程挑戰:以 Skywatch 為例-陳維超
雲端影音與物聯網平台的軟體工程挑戰:以 Skywatch 為例-陳維超雲端影音與物聯網平台的軟體工程挑戰:以 Skywatch 為例-陳維超
雲端影音與物聯網平台的軟體工程挑戰:以 Skywatch 為例-陳維超台灣資料科學年會
 
Capacity Planning for fun & profit
Capacity Planning for fun & profitCapacity Planning for fun & profit
Capacity Planning for fun & profitRodrigo Campos
 
Python performance profiling
Python performance profilingPython performance profiling
Python performance profilingJon Haddad
 
Patterns & Antipatterns in Docker Image Lifecycle
Patterns & Antipatterns in Docker Image LifecyclePatterns & Antipatterns in Docker Image Lifecycle
Patterns & Antipatterns in Docker Image Lifecycleyoavl
 
Arduino Workshop @ MSA University
Arduino Workshop @ MSA UniversityArduino Workshop @ MSA University
Arduino Workshop @ MSA UniversityAhmed Magdy Farid
 
Continuous Delivery: releasing Better and Faster at Dashlane
Continuous Delivery: releasing Better and Faster at DashlaneContinuous Delivery: releasing Better and Faster at Dashlane
Continuous Delivery: releasing Better and Faster at DashlaneDashlane
 
"Using Automation Tools To Deploy And Operate Applications In Real World Scen...
"Using Automation Tools To Deploy And Operate Applications In Real World Scen..."Using Automation Tools To Deploy And Operate Applications In Real World Scen...
"Using Automation Tools To Deploy And Operate Applications In Real World Scen...ConSol Consulting & Solutions Software GmbH
 
"Using Automation Tools To Deploy And Operate Applications In Real World Scen...
"Using Automation Tools To Deploy And Operate Applications In Real World Scen..."Using Automation Tools To Deploy And Operate Applications In Real World Scen...
"Using Automation Tools To Deploy And Operate Applications In Real World Scen...ConSol Consulting & Solutions Software GmbH
 

Semelhante a Hacking Robots for Fun and Profit (20)

Hacklu2011 tricaud
Hacklu2011 tricaudHacklu2011 tricaud
Hacklu2011 tricaud
 
Hadoop Demystified + Automation Smackdown! Austin JUG June 24 2014
Hadoop Demystified + Automation Smackdown!  Austin JUG June 24 2014Hadoop Demystified + Automation Smackdown!  Austin JUG June 24 2014
Hadoop Demystified + Automation Smackdown! Austin JUG June 24 2014
 
Practical IoT Exploitation (DEFCON23 IoTVillage) - Lyon Yang
Practical IoT Exploitation (DEFCON23 IoTVillage) - Lyon YangPractical IoT Exploitation (DEFCON23 IoTVillage) - Lyon Yang
Practical IoT Exploitation (DEFCON23 IoTVillage) - Lyon Yang
 
Functional verification techniques EW16 session
Functional verification techniques  EW16 sessionFunctional verification techniques  EW16 session
Functional verification techniques EW16 session
 
WTF is Twisted?
WTF is Twisted?WTF is Twisted?
WTF is Twisted?
 
IEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
IEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architectureIEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
IEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
 
Neotys PAC 2018 - Jonathon Wright
Neotys PAC 2018 - Jonathon WrightNeotys PAC 2018 - Jonathon Wright
Neotys PAC 2018 - Jonathon Wright
 
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
 
Scratching the itch, making Scratch for the Raspberry Pie
Scratching the itch, making Scratch for the Raspberry PieScratching the itch, making Scratch for the Raspberry Pie
Scratching the itch, making Scratch for the Raspberry Pie
 
When DevOps and Networking Intersect by Brent Salisbury of socketplane.io
When DevOps and Networking Intersect by Brent Salisbury of socketplane.ioWhen DevOps and Networking Intersect by Brent Salisbury of socketplane.io
When DevOps and Networking Intersect by Brent Salisbury of socketplane.io
 
雲端影音與物聯網平台的軟體工程挑戰:以 Skywatch 為例-陳維超
雲端影音與物聯網平台的軟體工程挑戰:以 Skywatch 為例-陳維超雲端影音與物聯網平台的軟體工程挑戰:以 Skywatch 為例-陳維超
雲端影音與物聯網平台的軟體工程挑戰:以 Skywatch 為例-陳維超
 
Capacity Planning for fun & profit
Capacity Planning for fun & profitCapacity Planning for fun & profit
Capacity Planning for fun & profit
 
Python performance profiling
Python performance profilingPython performance profiling
Python performance profiling
 
Patterns & Antipatterns in Docker Image Lifecycle
Patterns & Antipatterns in Docker Image LifecyclePatterns & Antipatterns in Docker Image Lifecycle
Patterns & Antipatterns in Docker Image Lifecycle
 
Arduino Workshop @ MSA University
Arduino Workshop @ MSA UniversityArduino Workshop @ MSA University
Arduino Workshop @ MSA University
 
Continuous Delivery: releasing Better and Faster at Dashlane
Continuous Delivery: releasing Better and Faster at DashlaneContinuous Delivery: releasing Better and Faster at Dashlane
Continuous Delivery: releasing Better and Faster at Dashlane
 
"Using Automation Tools To Deploy And Operate Applications In Real World Scen...
"Using Automation Tools To Deploy And Operate Applications In Real World Scen..."Using Automation Tools To Deploy And Operate Applications In Real World Scen...
"Using Automation Tools To Deploy And Operate Applications In Real World Scen...
 
"Using Automation Tools To Deploy And Operate Applications In Real World Scen...
"Using Automation Tools To Deploy And Operate Applications In Real World Scen..."Using Automation Tools To Deploy And Operate Applications In Real World Scen...
"Using Automation Tools To Deploy And Operate Applications In Real World Scen...
 
The Java Carputer
The Java CarputerThe Java Carputer
The Java Carputer
 
IoT Aquarium 2
IoT Aquarium 2IoT Aquarium 2
IoT Aquarium 2
 

Mais de Chad Udell

DevLearn 2018 - Designing AR Experiences for Performance Support
DevLearn 2018 -  Designing AR Experiences for Performance SupportDevLearn 2018 -  Designing AR Experiences for Performance Support
DevLearn 2018 - Designing AR Experiences for Performance SupportChad Udell
 
ATD - Western Michigan September Meeting
ATD - Western Michigan September MeetingATD - Western Michigan September Meeting
ATD - Western Michigan September MeetingChad Udell
 
Atd 2015 - Mastering Mobile Learning
Atd 2015 - Mastering Mobile LearningAtd 2015 - Mastering Mobile Learning
Atd 2015 - Mastering Mobile LearningChad Udell
 
Leveraging Devices to Create Amazing Mobile Learning - TK2014 Results
Leveraging Devices to Create Amazing Mobile Learning - TK2014 ResultsLeveraging Devices to Create Amazing Mobile Learning - TK2014 Results
Leveraging Devices to Create Amazing Mobile Learning - TK2014 ResultsChad Udell
 
Mlearning Unraveled - With Poll Results
Mlearning Unraveled - With Poll ResultsMlearning Unraveled - With Poll Results
Mlearning Unraveled - With Poll ResultsChad Udell
 
Tappestry Demo
Tappestry DemoTappestry Demo
Tappestry DemoChad Udell
 
Whats Next for Mobile Learning
Whats Next for Mobile LearningWhats Next for Mobile Learning
Whats Next for Mobile LearningChad Udell
 
There Is No Easy Button
There Is No Easy ButtonThere Is No Easy Button
There Is No Easy ButtonChad Udell
 
Learning Tracking Out of the LMS and Embracing Learning Analytics
Learning Tracking Out of the LMS and Embracing Learning AnalyticsLearning Tracking Out of the LMS and Embracing Learning Analytics
Learning Tracking Out of the LMS and Embracing Learning AnalyticsChad Udell
 
The Leadership Challenge - mLearnCon
The Leadership Challenge - mLearnConThe Leadership Challenge - mLearnCon
The Leadership Challenge - mLearnConChad Udell
 
Design concepts for Mobile Learnng
Design concepts for Mobile LearnngDesign concepts for Mobile Learnng
Design concepts for Mobile LearnngChad Udell
 
ASTD St. Louis Presentation - July 28th
ASTD St. Louis Presentation - July 28thASTD St. Louis Presentation - July 28th
ASTD St. Louis Presentation - July 28thChad Udell
 
Is Mobile For Me? What Skills Do I Need?
Is Mobile For Me? What Skills Do I Need?Is Mobile For Me? What Skills Do I Need?
Is Mobile For Me? What Skills Do I Need?Chad Udell
 
How to Convert Your eLearning to Mobile
How to Convert Your eLearning to MobileHow to Convert Your eLearning to Mobile
How to Convert Your eLearning to MobileChad Udell
 
Max 2010- Building Mobile Learning with Your Existing eLearning Toolkit - Ado...
Max 2010- Building Mobile Learning with Your Existing eLearning Toolkit - Ado...Max 2010- Building Mobile Learning with Your Existing eLearning Toolkit - Ado...
Max 2010- Building Mobile Learning with Your Existing eLearning Toolkit - Ado...Chad Udell
 
Comparing the Four Main Mobile OSes
Comparing the Four Main Mobile OSesComparing the Four Main Mobile OSes
Comparing the Four Main Mobile OSesChad Udell
 
Creating mLearning With Your Existing Toolkit
Creating mLearning With Your Existing ToolkitCreating mLearning With Your Existing Toolkit
Creating mLearning With Your Existing ToolkitChad Udell
 
Hacking Robots for Fun and Profit
Hacking Robots for Fun and ProfitHacking Robots for Fun and Profit
Hacking Robots for Fun and ProfitChad Udell
 
History of Generative and Computer Art
History of Generative and Computer ArtHistory of Generative and Computer Art
History of Generative and Computer ArtChad Udell
 

Mais de Chad Udell (20)

DevLearn 2018 - Designing AR Experiences for Performance Support
DevLearn 2018 -  Designing AR Experiences for Performance SupportDevLearn 2018 -  Designing AR Experiences for Performance Support
DevLearn 2018 - Designing AR Experiences for Performance Support
 
ATD - Western Michigan September Meeting
ATD - Western Michigan September MeetingATD - Western Michigan September Meeting
ATD - Western Michigan September Meeting
 
Atd 2015 - Mastering Mobile Learning
Atd 2015 - Mastering Mobile LearningAtd 2015 - Mastering Mobile Learning
Atd 2015 - Mastering Mobile Learning
 
Leveraging Devices to Create Amazing Mobile Learning - TK2014 Results
Leveraging Devices to Create Amazing Mobile Learning - TK2014 ResultsLeveraging Devices to Create Amazing Mobile Learning - TK2014 Results
Leveraging Devices to Create Amazing Mobile Learning - TK2014 Results
 
Mlearning Unraveled - With Poll Results
Mlearning Unraveled - With Poll ResultsMlearning Unraveled - With Poll Results
Mlearning Unraveled - With Poll Results
 
Tappestry Demo
Tappestry DemoTappestry Demo
Tappestry Demo
 
Prototyping
PrototypingPrototyping
Prototyping
 
Whats Next for Mobile Learning
Whats Next for Mobile LearningWhats Next for Mobile Learning
Whats Next for Mobile Learning
 
There Is No Easy Button
There Is No Easy ButtonThere Is No Easy Button
There Is No Easy Button
 
Learning Tracking Out of the LMS and Embracing Learning Analytics
Learning Tracking Out of the LMS and Embracing Learning AnalyticsLearning Tracking Out of the LMS and Embracing Learning Analytics
Learning Tracking Out of the LMS and Embracing Learning Analytics
 
The Leadership Challenge - mLearnCon
The Leadership Challenge - mLearnConThe Leadership Challenge - mLearnCon
The Leadership Challenge - mLearnCon
 
Design concepts for Mobile Learnng
Design concepts for Mobile LearnngDesign concepts for Mobile Learnng
Design concepts for Mobile Learnng
 
ASTD St. Louis Presentation - July 28th
ASTD St. Louis Presentation - July 28thASTD St. Louis Presentation - July 28th
ASTD St. Louis Presentation - July 28th
 
Is Mobile For Me? What Skills Do I Need?
Is Mobile For Me? What Skills Do I Need?Is Mobile For Me? What Skills Do I Need?
Is Mobile For Me? What Skills Do I Need?
 
How to Convert Your eLearning to Mobile
How to Convert Your eLearning to MobileHow to Convert Your eLearning to Mobile
How to Convert Your eLearning to Mobile
 
Max 2010- Building Mobile Learning with Your Existing eLearning Toolkit - Ado...
Max 2010- Building Mobile Learning with Your Existing eLearning Toolkit - Ado...Max 2010- Building Mobile Learning with Your Existing eLearning Toolkit - Ado...
Max 2010- Building Mobile Learning with Your Existing eLearning Toolkit - Ado...
 
Comparing the Four Main Mobile OSes
Comparing the Four Main Mobile OSesComparing the Four Main Mobile OSes
Comparing the Four Main Mobile OSes
 
Creating mLearning With Your Existing Toolkit
Creating mLearning With Your Existing ToolkitCreating mLearning With Your Existing Toolkit
Creating mLearning With Your Existing Toolkit
 
Hacking Robots for Fun and Profit
Hacking Robots for Fun and ProfitHacking Robots for Fun and Profit
Hacking Robots for Fun and Profit
 
History of Generative and Computer Art
History of Generative and Computer ArtHistory of Generative and Computer Art
History of Generative and Computer Art
 

Último

WOMEN EMPOWERMENT women empowerment.pptx
WOMEN EMPOWERMENT women empowerment.pptxWOMEN EMPOWERMENT women empowerment.pptx
WOMEN EMPOWERMENT women empowerment.pptxpadhand000
 
LC_YouSaidYes_NewBelieverBookletDone.pdf
LC_YouSaidYes_NewBelieverBookletDone.pdfLC_YouSaidYes_NewBelieverBookletDone.pdf
LC_YouSaidYes_NewBelieverBookletDone.pdfpastor83
 
call Now 9811711561 Cash Payment乂 Call Girls in Dwarka Mor
call Now 9811711561 Cash Payment乂 Call Girls in Dwarka Morcall Now 9811711561 Cash Payment乂 Call Girls in Dwarka Mor
call Now 9811711561 Cash Payment乂 Call Girls in Dwarka Morvikas rana
 
the Husband rolesBrown Aesthetic Cute Group Project Presentation
the Husband rolesBrown Aesthetic Cute Group Project Presentationthe Husband rolesBrown Aesthetic Cute Group Project Presentation
the Husband rolesBrown Aesthetic Cute Group Project Presentationbrynpueblos04
 
2k Shots ≽ 9205541914 ≼ Call Girls In Palam (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Palam (Delhi)2k Shots ≽ 9205541914 ≼ Call Girls In Palam (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Palam (Delhi)Delhi Call girls
 
$ Love Spells^ 💎 (310) 882-6330 in West Virginia, WV | Psychic Reading Best B...
$ Love Spells^ 💎 (310) 882-6330 in West Virginia, WV | Psychic Reading Best B...$ Love Spells^ 💎 (310) 882-6330 in West Virginia, WV | Psychic Reading Best B...
$ Love Spells^ 💎 (310) 882-6330 in West Virginia, WV | Psychic Reading Best B...PsychicRuben LoveSpells
 
Pokemon Go... Unraveling the Conspiracy Theory
Pokemon Go... Unraveling the Conspiracy TheoryPokemon Go... Unraveling the Conspiracy Theory
Pokemon Go... Unraveling the Conspiracy Theorydrae5
 
Top Rated Pune Call Girls Tingre Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Tingre Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Tingre Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Tingre Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
2k Shots ≽ 9205541914 ≼ Call Girls In Jasola (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Jasola (Delhi)2k Shots ≽ 9205541914 ≼ Call Girls In Jasola (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Jasola (Delhi)Delhi Call girls
 
2k Shots ≽ 9205541914 ≼ Call Girls In Dashrath Puri (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Dashrath Puri (Delhi)2k Shots ≽ 9205541914 ≼ Call Girls In Dashrath Puri (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Dashrath Puri (Delhi)Delhi Call girls
 
KLINIK BATA Jual obat penggugur kandungan 087776558899 ABORSI JANIN KEHAMILAN...
KLINIK BATA Jual obat penggugur kandungan 087776558899 ABORSI JANIN KEHAMILAN...KLINIK BATA Jual obat penggugur kandungan 087776558899 ABORSI JANIN KEHAMILAN...
KLINIK BATA Jual obat penggugur kandungan 087776558899 ABORSI JANIN KEHAMILAN...Cara Menggugurkan Kandungan 087776558899
 
2k Shots ≽ 9205541914 ≼ Call Girls In Mukherjee Nagar (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Mukherjee Nagar (Delhi)2k Shots ≽ 9205541914 ≼ Call Girls In Mukherjee Nagar (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Mukherjee Nagar (Delhi)Delhi Call girls
 

Último (14)

WOMEN EMPOWERMENT women empowerment.pptx
WOMEN EMPOWERMENT women empowerment.pptxWOMEN EMPOWERMENT women empowerment.pptx
WOMEN EMPOWERMENT women empowerment.pptx
 
LC_YouSaidYes_NewBelieverBookletDone.pdf
LC_YouSaidYes_NewBelieverBookletDone.pdfLC_YouSaidYes_NewBelieverBookletDone.pdf
LC_YouSaidYes_NewBelieverBookletDone.pdf
 
call Now 9811711561 Cash Payment乂 Call Girls in Dwarka Mor
call Now 9811711561 Cash Payment乂 Call Girls in Dwarka Morcall Now 9811711561 Cash Payment乂 Call Girls in Dwarka Mor
call Now 9811711561 Cash Payment乂 Call Girls in Dwarka Mor
 
(Aarini) Russian Call Girls Surat Call Now 8250077686 Surat Escorts 24x7
(Aarini) Russian Call Girls Surat Call Now 8250077686 Surat Escorts 24x7(Aarini) Russian Call Girls Surat Call Now 8250077686 Surat Escorts 24x7
(Aarini) Russian Call Girls Surat Call Now 8250077686 Surat Escorts 24x7
 
the Husband rolesBrown Aesthetic Cute Group Project Presentation
the Husband rolesBrown Aesthetic Cute Group Project Presentationthe Husband rolesBrown Aesthetic Cute Group Project Presentation
the Husband rolesBrown Aesthetic Cute Group Project Presentation
 
2k Shots ≽ 9205541914 ≼ Call Girls In Palam (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Palam (Delhi)2k Shots ≽ 9205541914 ≼ Call Girls In Palam (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Palam (Delhi)
 
(Anamika) VIP Call Girls Navi Mumbai Call Now 8250077686 Navi Mumbai Escorts ...
(Anamika) VIP Call Girls Navi Mumbai Call Now 8250077686 Navi Mumbai Escorts ...(Anamika) VIP Call Girls Navi Mumbai Call Now 8250077686 Navi Mumbai Escorts ...
(Anamika) VIP Call Girls Navi Mumbai Call Now 8250077686 Navi Mumbai Escorts ...
 
$ Love Spells^ 💎 (310) 882-6330 in West Virginia, WV | Psychic Reading Best B...
$ Love Spells^ 💎 (310) 882-6330 in West Virginia, WV | Psychic Reading Best B...$ Love Spells^ 💎 (310) 882-6330 in West Virginia, WV | Psychic Reading Best B...
$ Love Spells^ 💎 (310) 882-6330 in West Virginia, WV | Psychic Reading Best B...
 
Pokemon Go... Unraveling the Conspiracy Theory
Pokemon Go... Unraveling the Conspiracy TheoryPokemon Go... Unraveling the Conspiracy Theory
Pokemon Go... Unraveling the Conspiracy Theory
 
Top Rated Pune Call Girls Tingre Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Tingre Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Tingre Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Tingre Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
2k Shots ≽ 9205541914 ≼ Call Girls In Jasola (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Jasola (Delhi)2k Shots ≽ 9205541914 ≼ Call Girls In Jasola (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Jasola (Delhi)
 
2k Shots ≽ 9205541914 ≼ Call Girls In Dashrath Puri (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Dashrath Puri (Delhi)2k Shots ≽ 9205541914 ≼ Call Girls In Dashrath Puri (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Dashrath Puri (Delhi)
 
KLINIK BATA Jual obat penggugur kandungan 087776558899 ABORSI JANIN KEHAMILAN...
KLINIK BATA Jual obat penggugur kandungan 087776558899 ABORSI JANIN KEHAMILAN...KLINIK BATA Jual obat penggugur kandungan 087776558899 ABORSI JANIN KEHAMILAN...
KLINIK BATA Jual obat penggugur kandungan 087776558899 ABORSI JANIN KEHAMILAN...
 
2k Shots ≽ 9205541914 ≼ Call Girls In Mukherjee Nagar (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Mukherjee Nagar (Delhi)2k Shots ≽ 9205541914 ≼ Call Girls In Mukherjee Nagar (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Mukherjee Nagar (Delhi)
 

Hacking Robots for Fun and Profit

  • 1. Hacking Robots for Fun and Profit presented by Chad Udell at Flash and the City, 2010
  • 2. Hacking Robots for Fun and Profit • Flash is eminently hackable and ideal for building UIs for experiences that integrate with hardware • Tons of devices are coming with web connections • Hardware is getting cheaper and easier to get • Hobbyist techniques can be adapted for real world
  • 3. A History of Hacking Flash with Hardware
  • 4. About the Adler Planetarium Exhibit Project • Planet Explorers: 13 Experiences • X-Rovers are one of 7 interactive pieces
  • 5. Planet Explorers: X-Rovers • What is it? • How does it work? • What is the experience? • Demos • Code Samples
  • 6. What is it? • Emulating a Mars Rover like experience • Has to have a “mission” • Has to be easy to use
  • 7. Definition of the Experience • Origins (KUD) ‣ Remote Exploration is the Concept • Key Points ‣ No Crying Children ‣ Some Learning ‣ Ages 3-8
  • 8. First Thoughts • Custom R/C • T1 • Imperial Droid
  • 9. Basic Limitations • Skillset - We aren’t robotics engineers or electricians • Budget - Every client is conscious of this - duh • Scope - Need to integrate a timer, controls, basic computer vision, long term maintenance solution • Quality - Uptime is crucial. “Out of Order” is not an option
  • 10. Choosing a Robot • Essentially we need a connected webcam • Needs to be cheap • Needs to be hackable Enter, Rovio.
  • 11. A Diagram of the system 2 Stations, each containing: !"#$%&'()*+,-./+*0) UPS (APC BR1200) APC AV C2 Happ Kiosk Amp and Speakers 1"234&+56(!11(.7 Rovio Charger Happ Controls Server (Red 5) Netgear Wireless Access Point WG-102 Switch Rovio
  • 12. Rovio to the Rescue • Skillset - Essentially like building a mashup (documented API, built in webserver) • Budget - They are inexpensive and readily available (important for uptime) • Scope - many of the requirements are handled in some built in fashion already (wayfinding, charging). • Quality - We have a company backing it
  • 13. Flash to the Rescue • Skillset - We like it. • Budget - No extra expensive hardware to be designed, no expensive proprietary SDKs. • Scope - Still some questions here. Going to have to manage the client’s expectations. • Quality - Debugging and remote config is easy
  • 14. Controlling the Rovio • Rovio responds via HTTP (CGI script) • Use of key listeners to trigger API calls. /rev.cgi?Cmd=nav&action=value&drive=d_value&speed=s_value Input Parameter value = 18 d_value = 0 (Stop) 1 (Forward) 2 (Backward) 3 (Straight left) 4 (Straight right) 5 (Rotate left by speed) 6 (Rotate right by speed) 7 (Diagonal forward left) 8 (Diagonal forward right) 9 (Diagonal backward left) 10 (Diagonal backward right) 11 (Head up) 12 (Head down) 13 (Head middle) 14 (Reserved) 15 (Reserved) 16 (Reserved) 17 (Rotate left by 20 degree angle increments) 18 (Rotate right by 20 degree angle increments) s_value = 1 (fastest) – 10 (slowest)
  • 15. Controlling the Rovio Demo 1: Sending Commands to Rovio
  • 16. Getting the Video • Rovio sends via MJPEG via HTTP (CGI script) • Set a loader’s source to the URL Camera Control – GetData.cgi Description The basic command for acquiring MJPEGGrammar /ChangeResolution.cgi?ResType=value[&RedirectUrl=sUrl] Input Parameter None Privilege None Return Value An instance captured motion image. • Results were marginal (12-15 fps)
  • 17. Getting the Video Demo 2: MJPeg stream in a Loader
  • 18. Deeper Research on Video/Image Processing Simple color detection - • http://www.interactionfigure.nl/2009/colour-tracking-with-the-webcam-in-flash/ Color detection in Processing • http://jamesalliban.wordpress.com/2008/11/16/colour-detection-in-processing/ Haar training for object detection • http://note.sonots.com/SciSoftware/haartraining.html Modified facial detection • http://www.quasimondo.com/archives/000687.php
  • 19. Technology Evaluations • Shopping = Fun • Reading Electrical Engineer Documents = Not so Fun • Wiring Boards = Fun for some • Building PoCs = Super fun!
  • 20. Prototype • Software Proof of Concept • Hardware Hacking and Integration
  • 23. Prototype Demo 3: Happ Controls
  • 24. Alpha • Video was ok, but needed some juice. • Computer vision was deemed better than AR or object detection • Play control overall was very pleasing • Testing, Testing, Testing
  • 26. Enter Red 5/Xuggle • Transcode the Video to H264 (SteamStream) • Replace the MJPEG loader with a Netstream object • Better results. Lower latency. • Approaching 24-30fps • There is a bit of a hiccup with the initialization of the stream.
  • 27. Enter Red 5/Xuggle Demo 4: Red5/Xuggle
  • 28. Processing the video • Considered AR • Too Inflexible - Markers weren’t attractive • Considered Object Detection (Haar Cascades/ OpenCV) • A tad slow-ish • Attempted using simple ColorBoundsRect
  • 30. Finding the Targets Demo 5: Computer Vision
  • 31. What does that get you? (The Good)
  • 32. What does that get you? (The Bad)
  • 33. How about Creating a Unique Target? • Eliminate False Positives (was better, but not perfect) • Ensure Speedy Detection (was a little slower) Not Unique A Lot More Unique
  • 34. Processing the video • Settled on Color Detection via Thresholding • Tomek’s Blob Detection • http://play.blog2t.net/fast-blob-detection • Soulwire’s Color Averaging • http://blog.soulwire.co.uk/code/actionscript-3/ extract-average-colours-from-bitmapdata
  • 35. Fixing the Video Demo 5: Revised Computer Vision
  • 42. Buttoning it up • Charging handoff • Locking the kiosks down • C++ Socket Server for the Lights • Startup, shutdown • Training for the switchover
  • 43. Lessons Learned • SWF to EXE is not needed anymore. AIR 2! • Test early! Test Often! Test Under lots of Conditions! • Static Electricity Sucks (installation is crazy) • Your Kiosk Can Never Be Too Stable (Bullet Proof Your Kiosks) • Logging, Logging, Logging • Buy Lots of Extras
  • 44. Other stuff to hack! • Security/WiFi Cameras - http://www.axis.com • Tons of X10 Stuff - http://www.smarthome.com • Other Robots - http://www.spykeeworld.com/ • Rocket Launcher - http://www.thinkgeek.com/ geektoys/warfare/8bc4/?cpg=cj • Ultimarc Controls - http://www.ultimarc.com/
  • 45. More info, code samples, etc. • http://electricpineapple.net/ - Erik Peterson’s blog • http://ionagroup.com/labs - Iona’s Blog • http://visualrinse.com - My Blog Questions?
  • 46. Thank you • Find Us on: THE IONA GROUP 620 West Jackson Street • Morton, Illinois 61550 P: 309.263.4662 • F: 309.263.8262 • 888.644.IONA www.ionagroup.com