SlideShare a Scribd company logo
1 of 33
Download to read offline
Swiftly Coding Robots
Or a journey through the history of educational
robotics and rapid prototyping of mobile robots
Kamilah Taylor, try! Swift Bangalore 2017, @kamilah
WWDC 2017 Playgrounds+Robots Announcement
@kamilah, try! Swift
@kamilah, try! Swift
@kamilah, try! Swift
Swiftly Coding Robots
LEGO Mindstorms Programming Environments
For education
For rapid prototyping
Robotics Programming Platforms
Swift Playgrounds + Robots
@kamilah, try! Swift
LEGO Mindstorms RIS
(Robotics Invention Set)
Seymour Papert, a hero
Gave us LOGO and
LEGO Mindstorms
MIT’s Media Lab and
LEGO - an experiment in
constructive learning
@kamilah, try! Swift
LEGO Mindstorms RIS
(Robotics Invention Set)
An early version of the
programmable LEGO
brick
It is in essence the same
as the version we have
today
@kamilah, try! Swift
@kamilah, try! Swift
The RIS programming language
@kamilah, try! Swift
The educational RIS programming language
@kamilah, try! Swift
My second robot
A robot that could react
to colors in the
environment using a
webcam - completely
programmed in this drag
and drop language
@kamilah, try! Swift
NQC and NXC
The start of non visual
languages for LEGO
Mindstorms
NQC = Not Quite C
NXC = Not eXactly C
@kamilah, try! Swift
@kamilah, try! Swift
@kamilah, try! Swift
My master’s thesis: iBug, in NXC
@kamilah, try! Swift
More LEGO Mindstorms
languages are born
NQC
NXC
RobotBasic
leJOS
RobotC
@kamilah, try! Swift
More robotics ecosystems
Honda’s Asimo
Willow Garage’s PR2 robot
iRobot’s Create (programmable roomba)
Aldeberan Robotics’ Nao robot
Sphero
@kamilah, try! Swift
Emergence of multi robot
platforms
Willow Garage’s ROS (Robot Operating System)
Supported multiple robots (including Mindstorms!)
Supported “real” languages like C++ and Python
Microsoft Robotics Developer Studio
@kamilah, try! Swift
Mathematica + Robots
@kamilah, try! Swift
Mathematica + Robots
Similar end goal - a layer of hardware abstraction
Mathematica also has built in tools like image
processing
You could do clever visualization of sensor data
@kamilah, try! Swift
iBug in Mathematica
Robots, LEGO and Mathematica: https://www.youtube.com/watch?v=wWkT7_mnISI
@kamilah, try! Swift
Swift Playgrounds + Robots
@kamilah, try! Swift
Swift Playgrounds + Robots
Supports multiple platforms
LEGO Mindstorms EV3, Sphero, Parrot’s drones,
UBTECH’s Jimu Robot MeeBot Kit, Dash by Wonder
Workshop, Skoog
Some amount of a layer of hardware abstraction
Visualization of what the sensors are seeing
@kamilah, try! Swift
Sensor Data Visualization
@kamilah, try! Swift
Motor Data Visualization
@kamilah, try! Swift
iBug in Swift (IR Follow
portion)
func goTowardsInfraredSource() {
while ev3.measureIRProximity(on: .two) >= 30 {
let val = ev3.measureIRSeek(on: .two)
if val < -5 {
ev3.move(leftPort: .a, rightPort: .d, leftPower: 5,
rightPower: -25)
} else if val > 5 {
ev3.move(leftPort: .a, rightPort: .d, leftPower: -25,
rightPower: 5)
} else {
ev3.move(leftPort: .a, rightPort: .d, leftPower: -25,
rightPower: -25)
}
}
ev3.stopMove(leftPort: .a, rightPort: .d, withBrake: true)
}
goTowardsInfraredSource()
@kamilah, try! Swift
Infrared seeking robot
@kamilah, try! Swift
Infrared seeking robot
@kamilah, try! Swift
So what are the takeaways?
Playgrounds as a robotics
programming environment
The visualization of motor and sensor data is superb
The templates for the Mindstorms specific methods are
useful but also kind of annoying
Slightly irritating that you’re limited to the iPad and that
it’s in this storybook format instead of a normal
playgrounds format
@kamilah, try! Swift
Key takeaways of
programming robots in Swift
This is the most modern language I’ve ever
programmed a robot with
Easier to understand than NXC and NQC, so a
superior introductory language
When you get your intro to programming with Swift as
your language, you now know one of top programming
languages
@kamilah, try! Swift
– Me
If robots are going to take over, at least program
them in a language that doesn’t make your eyes
bleed.
@kamilah, try! Swift
@kamilah, try! Swift Bangalore 2017
Thanks!

More Related Content

Similar to Swiftly Coding Robots

Falsy Values - Warsaw 2011
Falsy Values - Warsaw 2011Falsy Values - Warsaw 2011
Falsy Values - Warsaw 2011
Brian LeRoux
 
Software Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar TechnologySoftware Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar Technology
AdaCore
 
DIY- computer vision with GWT
DIY- computer vision with GWTDIY- computer vision with GWT
DIY- computer vision with GWT
Francesca Tosi
 
Educators Bonanza – Discovering Resources and Getting Started with Robotics E...
Educators Bonanza – Discovering Resources and Getting Started with Robotics E...Educators Bonanza – Discovering Resources and Getting Started with Robotics E...
Educators Bonanza – Discovering Resources and Getting Started with Robotics E...
MecklerMedia
 

Similar to Swiftly Coding Robots (20)

Robotics Development with MATLAB - Jose Avendano 2020.06.03 | RoboCup@Home Ed...
Robotics Development with MATLAB - Jose Avendano 2020.06.03 | RoboCup@Home Ed...Robotics Development with MATLAB - Jose Avendano 2020.06.03 | RoboCup@Home Ed...
Robotics Development with MATLAB - Jose Avendano 2020.06.03 | RoboCup@Home Ed...
 
Mobile JavaScript
Mobile JavaScriptMobile JavaScript
Mobile JavaScript
 
Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1
 
Webapps mobiles html5
Webapps mobiles html5Webapps mobiles html5
Webapps mobiles html5
 
Javascript, DOM, browsers and frameworks basics
Javascript, DOM, browsers and frameworks basicsJavascript, DOM, browsers and frameworks basics
Javascript, DOM, browsers and frameworks basics
 
20191116 Swift 개발이 좋아요.
20191116 Swift 개발이 좋아요.20191116 Swift 개발이 좋아요.
20191116 Swift 개발이 좋아요.
 
Next Generation Apps with Google Chrome-By Dhruv Gohil
Next Generation Apps with Google Chrome-By Dhruv GohilNext Generation Apps with Google Chrome-By Dhruv Gohil
Next Generation Apps with Google Chrome-By Dhruv Gohil
 
Contributing swift
Contributing swiftContributing swift
Contributing swift
 
Scratch Day Welcome Talk - Slideshare
Scratch Day Welcome Talk - SlideshareScratch Day Welcome Talk - Slideshare
Scratch Day Welcome Talk - Slideshare
 
After school program robotixlab research academy
After school program   robotixlab research academyAfter school program   robotixlab research academy
After school program robotixlab research academy
 
Falsy Values - Warsaw 2011
Falsy Values - Warsaw 2011Falsy Values - Warsaw 2011
Falsy Values - Warsaw 2011
 
Software Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar TechnologySoftware Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar Technology
 
Riding on rails3 with full stack of gems
Riding on rails3 with full stack of gemsRiding on rails3 with full stack of gems
Riding on rails3 with full stack of gems
 
Controlling Robots Remotely with Azure
Controlling Robots Remotely with AzureControlling Robots Remotely with Azure
Controlling Robots Remotely with Azure
 
Measuring Software development with GrimoireLab
Measuring Software development with GrimoireLabMeasuring Software development with GrimoireLab
Measuring Software development with GrimoireLab
 
DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.
 
DIY- computer vision with GWT
DIY- computer vision with GWTDIY- computer vision with GWT
DIY- computer vision with GWT
 
iSoligorsk #3 2013
iSoligorsk #3 2013iSoligorsk #3 2013
iSoligorsk #3 2013
 
A tale of two proxies
A tale of two proxiesA tale of two proxies
A tale of two proxies
 
Educators Bonanza – Discovering Resources and Getting Started with Robotics E...
Educators Bonanza – Discovering Resources and Getting Started with Robotics E...Educators Bonanza – Discovering Resources and Getting Started with Robotics E...
Educators Bonanza – Discovering Resources and Getting Started with Robotics E...
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

Swiftly Coding Robots

  • 1. Swiftly Coding Robots Or a journey through the history of educational robotics and rapid prototyping of mobile robots Kamilah Taylor, try! Swift Bangalore 2017, @kamilah
  • 2. WWDC 2017 Playgrounds+Robots Announcement @kamilah, try! Swift
  • 5. Swiftly Coding Robots LEGO Mindstorms Programming Environments For education For rapid prototyping Robotics Programming Platforms Swift Playgrounds + Robots @kamilah, try! Swift
  • 6. LEGO Mindstorms RIS (Robotics Invention Set) Seymour Papert, a hero Gave us LOGO and LEGO Mindstorms MIT’s Media Lab and LEGO - an experiment in constructive learning @kamilah, try! Swift
  • 7. LEGO Mindstorms RIS (Robotics Invention Set) An early version of the programmable LEGO brick It is in essence the same as the version we have today @kamilah, try! Swift
  • 9. The RIS programming language @kamilah, try! Swift
  • 10. The educational RIS programming language @kamilah, try! Swift
  • 11. My second robot A robot that could react to colors in the environment using a webcam - completely programmed in this drag and drop language @kamilah, try! Swift
  • 12. NQC and NXC The start of non visual languages for LEGO Mindstorms NQC = Not Quite C NXC = Not eXactly C @kamilah, try! Swift
  • 15. My master’s thesis: iBug, in NXC @kamilah, try! Swift
  • 16. More LEGO Mindstorms languages are born NQC NXC RobotBasic leJOS RobotC @kamilah, try! Swift
  • 17. More robotics ecosystems Honda’s Asimo Willow Garage’s PR2 robot iRobot’s Create (programmable roomba) Aldeberan Robotics’ Nao robot Sphero @kamilah, try! Swift
  • 18. Emergence of multi robot platforms Willow Garage’s ROS (Robot Operating System) Supported multiple robots (including Mindstorms!) Supported “real” languages like C++ and Python Microsoft Robotics Developer Studio @kamilah, try! Swift
  • 20. Mathematica + Robots Similar end goal - a layer of hardware abstraction Mathematica also has built in tools like image processing You could do clever visualization of sensor data @kamilah, try! Swift
  • 21. iBug in Mathematica Robots, LEGO and Mathematica: https://www.youtube.com/watch?v=wWkT7_mnISI @kamilah, try! Swift
  • 22. Swift Playgrounds + Robots @kamilah, try! Swift
  • 23. Swift Playgrounds + Robots Supports multiple platforms LEGO Mindstorms EV3, Sphero, Parrot’s drones, UBTECH’s Jimu Robot MeeBot Kit, Dash by Wonder Workshop, Skoog Some amount of a layer of hardware abstraction Visualization of what the sensors are seeing @kamilah, try! Swift
  • 26. iBug in Swift (IR Follow portion) func goTowardsInfraredSource() { while ev3.measureIRProximity(on: .two) >= 30 { let val = ev3.measureIRSeek(on: .two) if val < -5 { ev3.move(leftPort: .a, rightPort: .d, leftPower: 5, rightPower: -25) } else if val > 5 { ev3.move(leftPort: .a, rightPort: .d, leftPower: -25, rightPower: 5) } else { ev3.move(leftPort: .a, rightPort: .d, leftPower: -25, rightPower: -25) } } ev3.stopMove(leftPort: .a, rightPort: .d, withBrake: true) } goTowardsInfraredSource() @kamilah, try! Swift
  • 29. So what are the takeaways?
  • 30. Playgrounds as a robotics programming environment The visualization of motor and sensor data is superb The templates for the Mindstorms specific methods are useful but also kind of annoying Slightly irritating that you’re limited to the iPad and that it’s in this storybook format instead of a normal playgrounds format @kamilah, try! Swift
  • 31. Key takeaways of programming robots in Swift This is the most modern language I’ve ever programmed a robot with Easier to understand than NXC and NQC, so a superior introductory language When you get your intro to programming with Swift as your language, you now know one of top programming languages @kamilah, try! Swift
  • 32. – Me If robots are going to take over, at least program them in a language that doesn’t make your eyes bleed. @kamilah, try! Swift
  • 33. @kamilah, try! Swift Bangalore 2017 Thanks!