Slide 1

Slide 1 text

AI.js: Robots with Brains One step closer to the robot invasion. Brought to you by @rockbot

Slide 2

Slide 2 text

Warning: There may be math.

Slide 3

Slide 3 text

Warning: There will be math.

Slide 4

Slide 4 text

rockbot & Robots: A Brief History

Slide 5

Slide 5 text

My First Robot

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

My Second Robot

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

A Few Other Robots

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

“T raditional” Robotics

Slide 12

Slide 12 text

Robots come from research PhDs do research Research costs $$$$ Robots “need” OOP & Threading (i.e. C++, Python)

Slide 13

Slide 13 text

Robot Domination...?

Slide 14

Slide 14 text

Robot Domination...? Not anytime soon.

Slide 15

Slide 15 text

NodeBots: A New Beginning

Slide 16

Slide 16 text

Step 1: eeeee eeeee eeeee eeee e eeeee 8 8 8 88 8 8 8 8 8 " 8e 8 8 8 8e 8 8eee 8e 8eeee 88 8 8 8 88 8 88 e 88 88 88 8 8eee8 88ee8 88ee 88 8ee88 8ee88 eeeee eeee eeeee e eeeee e eeeee eeeee eeeee eeeee 8 " 8 8 8 8 8 8 8 8 8 8 88 8 8 8 8eeee 8eee 8eee8e 8e 8eee8 8e 8eee8 8 8 8eee8e 8e 88 88 88 8 88 88 8 88 88 8 8 88 8 88 8ee88 88ee 88 8 88 88 8 88eee 88 8eee8 88 8 88 (node.js serialport) @voodootikigod

Slide 17

Slide 17 text

Step 2: (Johnny-Five) @rwaldron

Slide 18

Slide 18 text

Step 3: vektor @rockbot

Slide 19

Slide 19 text

Robotics 101: Artificial Intelligence

Slide 20

Slide 20 text

Decisions, Decisions, Decisions Obstacle Obstacle Robot

Slide 21

Slide 21 text

Robotics 101: Serial Manipulators

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

A Serial Manipulator

Slide 24

Slide 24 text

Forward Kinematics Joint Angles Position of End Effector

Slide 25

Slide 25 text

Inverse Kinematics Joint Angles Position of End Effector

Slide 26

Slide 26 text

Matrices are Your Friend Frame Rotation Frame Position

Slide 27

Slide 27 text

Matrices are Your Friend

Slide 28

Slide 28 text

vektor Make the computer do the hard stuff

Slide 29

Slide 29 text

Forward Kinematics with vektor var vektor = require('vektor'), Homog = vektor.homog, Vector = vektor.vector, Rotate = vektor.rotate, H0, H1, H2, H3, endEff; H0 = Homog(Rotate.RotX(0), new Vector([0, 0, 0])); H1 = H0.dot( Homog(Rotate.RotZ(angles[0]), 0) ); H2 = H1.dot( Homog(Rotate.RotZ(angles[1]), new Vector([100,0,0])) ); H3 = H2.dot( Homog(0, new Vector([100,0,0])) ); endEff = T3.getPoint();

Slide 30

Slide 30 text

Demo Time!

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

Ok, cute.

Slide 34

Slide 34 text

Ok, cute. So what?

Slide 35

Slide 35 text

Robots v. NodeBots Traditional (C++) JavaScript (Node.js) Multi-threaded Single-threaded Well established Just getting started Top tools and funding All our pennies together Brilliant People You, me, and all our friends

Slide 36

Slide 36 text

Robots v. NodeBots Traditional (C++) JavaScript (Node.js) Research & Papers Open Source $$$$$ Open Source Compile, Load, Boot, Hope, Pray F5 / ⌘-R Get a PhD Get started

Slide 37

Slide 37 text

Go.

Slide 38

Slide 38 text

Build a robot.

Slide 39

Slide 39 text

Then tell me all about it!

Slide 40

Slide 40 text

Raquel Vélez @rockbot http://rckbt.me raquel@storify.com