Argus -- Parrot AR Drone Ruby API

Current Status

  • Experimental
  • Subject to change
  • Use at your own risk
  • May cause cancer

Example

  require 'argus'

  drone = Argus::Drone.new
  drone.start

  drone.take_off
  sleep 5
  drone.turn_right(1.0)
  sleep 5
  drone.turn_left(1.0)
  sleep 5
  drone.hover.land
  sleep 5
  drone.stop

Using with external socket

You can also use Argus by providing an externally created socket. For example, if you are using Artoo (http://artoo.io), which makes use of celluloid-io (https://github.com/celluloid/celluloid-io). Normally in this use case, you would want to NOT use the automatic navigation callbacks, as they are not guaranteed to be thread safe within Celluloid.

  require 'argus'
  require 'celluloid/io'

  include Celluloid::IO

  socket = UDPSocket.new
  drone = Argus::Drone.new(socket: socket)
  drone.start(false) # do not auto-notify on nav callbacks

  drone.take_off
  sleep 5
  drone.turn_right(1.0)
  sleep 5
  drone.turn_left(1.0)
  sleep 5
  drone.hover.land
  sleep 5
  drone.stop

Download the SDK

For additional reference, you can download the AR Drone Developer Guide (https://projects.ardrone.org/attachments/download/365/ARDrone_SDK_1_7_Developer_Guide.pdf) after signing up here (https://projects.ardrone.org/).