Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AIR WOLF: Leveraging ActionScript to Control a Quadcopter

AIR WOLF: Leveraging ActionScript to Control a Quadcopter

I gave this technical presentation about reverse engineering a AR Drone to be controlled via ActionScript at 360Flex in 2011 to a room of about 40 attendees.

Conference: http://www.360flex.com/

Scott Janousek

May 04, 2011
Tweet

More Decks by Scott Janousek

Other Decks in Technology

Transcript

  1. Scott Janousek - 2011 AIR WOLF Leveraging ActionScript to Control

    a Quadcopter EPISODE 2 “A Tale of Reverse and Forward Engineering”
  2. Scott Janousek - 2011 Scott janousek Founder, Hooken Mobile Long

    Time (Flash) Mobile Advocate Working on all kinds of devices & platforms “Gadget Geek” AR.Drone enthusiast
  3. Scott Janousek - 2011 “ok, ok, the commercial is kind

    of silly ... but, let’s have a go at it ...”
  4. Scott Janousek - 2011 RECENT uav USAGE CNN: “Flying Drone

    peers into Japan’s damaged reactors”
  5. Scott Janousek - 2011 “Yes, I know native is better

    in this case, but ... I wonder if I could connect to AR.Drone via ACTIONSCRIPT ...”
  6. Scott Janousek - 2011 Reverse Engineering 1. Download AR Drone

    SDK 2. Browse Wiki & Forums 3. Look at C Source Code provided 4. Figure out the open Protocol
  7. Scott Janousek - 2011 setup Wi- Ad-hoc Wi- 10.0.0.x physical

    network 10.0.0.x port 8080 10.0.0.1 port 8080 10.0.0.x port 8080 192.168.1.1 port 5556 192.168.1.2 port 5556 “bandaid” reset button MacBook Pro AR Drone DROIDX (Android) Airport Extreme
  8. Scott Janousek - 2011 basic commands altitude max2m AT*CONFIG=1,\"control:altitude_max\",\"2000\" Landing

    AT*REF=101,290718208 Takeoff AT*REF=102,290717696 Hovering AT*PCMD=201,1,0,0,0,0 gaz 0.1 AT*PCMD=301,1,0,0,1036831949,0 gaz -0.1 AT*PCMD=302,1,0,0,-1110651699,0 pitch 0.1 AT*PCMD=303,1,1036831949,0,0,0 pitch -0.1 AT*PCMD=304,1,-1110651699,0,0,0 yaw 0.1 AT*PCMD=305,1,0,0,0,1036831949 yaw -0.1 AT*PCMD=306,1,0,0,0,-1110651699 roll 0.1 AT*PCMD=307,1,0,1036831949,0,0 roll -0.1 AT*PCMD=308,1,0,-1110651699,0,0 pitch -30 deg AT*ANIM=401,0,1000 pitch 30 deg AT*ANIM=402,1,1000
  9. Scott Janousek - 2011 AT syntax AT*REF=<sequence>,<UI> AT*PCMD=<sequence>,<enable>,<pitch>,<roll>,<gaz>,<yaw> ( oat)0.05

    = (int)1028443341 ( oat)-0.05 = (int)-1119040307 ( oat)0.1 = (int)1036831949 ( oat)-0.1 = (int)-1110651699 ( oat)0.2 = (int)1045220557 ( oat)-0.2 = (int)-1102263091 ( oat)0.5 = (int)1056964608 ( oat)-0.5 = (int)-1090519040 AT*ANIM=<sequence>,<animation>,<duration> AT*CONFIG=<sequence>,\"<name>\",\"<value>\"
  10. Scott Janousek - 2011 at bits UI_BIT: 00010001010101000000000000000000 | |

    | | | || | ||||+--0: Button turn to left | | | | | || | |||+---1: Button altitude down (ah - ab) | | | | | || | ||+----2: Button turn to right | | | | | || | |+-----3: Button altitude up (ah - ab) | | | | | || | +------4: Button - z-axis (r1 - l1) | | | | | || +--------6: Button + z-axis (r1 - l1) | | | | | |+----------8: Button emergency reset all | | | | | +-----------9: Button Takeoff / Landing | | | | +-------------------18: y-axis trim +1 (Trim increase at +/- 1??/s) | | | +---------------------20: x-axis trim +1 (Trim increase at +/- 1??/s) | | +-----------------------22: z-axis trim +1 (Trim increase at +/- 1??/s) | +-------------------------24: x-axis +1 +-----------------------------28: y-axis +1
  11. Scott Janousek - 2011 Battery Life Lack of protocol documentation

    Indoor testing limits R&D Network cong was time confusing No Binary Sockets in AIR for Android !!!! Network Latency Buggy Firmware (pre 1.5) tech challenges
  12. Scott Janousek - 2011 Urbi is an open source driver

    for multiple robotic systems. A driver has been developed that allows Urbi to interface with the AR Drone. So now you can control your drone with a laptop, joystick, keyboard, wii remote, etc. Urbi even allows you to write scripts to have the bot perform actions.
  13. Scott Janousek - 2011 Gostai Studio and Labs are IDEs

    that allow developers to interface with robotics, etc. It can be used with URBI. ULA files are markup files similar to MXML. Drag and Drop components are available.
  14. Scott Janousek - 2011 take aways AR Drone is an

    fun toy AIR, Flex = Prototyping made easy URBI & Gostai = great for hobby robotics Experiment, tinker, & have fun Air Wolf Movie? ... I hope so ... :)