AI.js: Robots with Brains

AI.js: Robots with Brains

Take JavaScript robots to the next level - presented at JSConf US 2013

See the demo video: http://youtu.be/JKumEFyOvuI

583a0cfd3e0ec851166c5c6fa5e506a5?s=128

Raquel Vélez

May 27, 2013
Tweet

Transcript

  1. AI.js: Robots with Brains One step closer to the robot

    invasion. Brought to you by @rockbot
  2. Warning: There may be math.

  3. Warning: There will be math.

  4. rockbot & Robots: A Brief History

  5. My First Robot

  6. None
  7. My Second Robot

  8. None
  9. A Few Other Robots

  10. None
  11. “T raditional” Robotics

  12. Robots come from research PhDs do research Research costs $$$$

    Robots “need” OOP & Threading (i.e. C++, Python)
  13. Robot Domination...?

  14. Robot Domination...? Not anytime soon.

  15. NodeBots: A New Beginning

  16. 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
  17. Step 2: (Johnny-Five) @rwaldron

  18. Step 3: vektor @rockbot

  19. Robotics 101: Artificial Intelligence

  20. Decisions, Decisions, Decisions Obstacle Obstacle Robot

  21. Robotics 101: Serial Manipulators

  22. None
  23. A Serial Manipulator

  24. Forward Kinematics Joint Angles Position of End Effector

  25. Inverse Kinematics Joint Angles Position of End Effector

  26. Matrices are Your Friend Frame Rotation Frame Position

  27. Matrices are Your Friend

  28. vektor Make the computer do the hard stuff

  29. 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();
  30. Demo Time!

  31. None
  32. None
  33. Ok, cute.

  34. Ok, cute. So what?

  35. 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
  36. 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
  37. Go.

  38. Build a robot.

  39. Then tell me all about it!

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