SlideShare a Scribd company logo
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

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...
robocupathomeedu
 
Mobile JavaScript
Mobile JavaScriptMobile JavaScript
Mobile JavaScript
Fil Maj
 
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
benDesigning
 
Javascript, DOM, browsers and frameworks basics
Javascript, DOM, browsers and frameworks basicsJavascript, DOM, browsers and frameworks basics
Javascript, DOM, browsers and frameworks basics
Net7
 
20191116 Swift 개발이 좋아요.
20191116 Swift 개발이 좋아요.20191116 Swift 개발이 좋아요.
20191116 Swift 개발이 좋아요.
Clint Jang
 
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
Hardik Upadhyay
 
Contributing swift
Contributing swiftContributing swift
Contributing swift
Yuki Kuroda
 
Scratch Day Welcome Talk - Slideshare
Scratch Day Welcome Talk - SlideshareScratch Day Welcome Talk - Slideshare
Scratch Day Welcome Talk - Slideshare
Mike Lee
 
After school program robotixlab research academy
After school program   robotixlab research academyAfter school program   robotixlab research academy
After school program robotixlab research academy
robotixlab
 
Falsy Values - Warsaw 2011
Falsy Values - Warsaw 2011Falsy Values - Warsaw 2011
Falsy Values - Warsaw 2011Brian 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
 
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
Andy Wang
 
Controlling Robots Remotely with Azure
Controlling Robots Remotely with AzureControlling Robots Remotely with Azure
Controlling Robots Remotely with Azure
Liam Gulliver
 
Measuring Software development with GrimoireLab
Measuring Software development with GrimoireLabMeasuring Software development with GrimoireLab
Measuring Software development with GrimoireLab
Valerio Cosentino
 
DIY- computer vision with GWT
DIY- computer vision with GWTDIY- computer vision with GWT
DIY- computer vision with GWTFrancesca Tosi
 
DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.
JooinK
 
A tale of two proxies
A tale of two proxiesA tale of two proxies
A tale of two proxies
SensePost
 
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 GWTDIY- 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 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

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 

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!