Skip to content

bklang/ARbDrone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ARbDrone

Ruby Library for the Parrot AR.Drone

ARbDrone is a native Ruby implementation of the protocols necessary to control the Parrot AR.Drone.

This library is brand new and will take some time to mature. Current work is focused around the flight control commands and navdata. Video support is not likely to appear for some time.

Tools for Debugging

During the development of this library it became necessary to reverse engineer parts of the AR.Drone protocol, particularly the parts whose documentation was lacking. I have included a tool that can read PCAP-format network traces and print the activities sent to the drone as well as the navdata received from the drone. Here's an example from a very short flight (note the crash right at the end :)

$ bundle exec bin/pcap-trace.rb ~/ardrone-3.pcap 
AT*PMODE=1,2
AT*MISC=2,2,20,2000,3000
Steering Progressive: Phi: 0% Theta: 0% Yaw: 0% Gaz: 0%
Activating configuration for session "4fe688f8", user "00000000" and application "9a760c9b"
Setting custom:session_id to -all
-----------
vision is now 1
altitude is now 1
command is now 1
navdata_bootstrap is now 1
pic_version is now 1
atcodec_thread_on is now 1
navdata_thread_on is now 1
video_thread_on is now 1
acq_thread_on is now 1
com_watchdog is now 1
-----------
Control: ack
Control: ack
Control: ack
Control: ack
-----------
command is now 0
-----------
Control: ack
Control: get_cfg
-----------
command is now 1
-----------
Control: ack
Control: ack
Control: ack
Control: ack
Control: ack
Control: ack
Control: ack
Control: ack
Control: ack
Control: ack
Control: ack
Control: ack
Control: ack
Control: ack
Control: ack
Control: ack
Control: ack
Control: ack
Control: ack
Control: ack
-----------
command is now 0
-----------
Control: ack
Control: custom_cfg_get
-----------
command is now 1
-----------
Control: ack
Control: ack
Control: ack
Control: ack
-----------
command is now 0
-----------
Control: ack
Activating configuration for session "4fe688f8", user "00000000" and application "9a760c9b"
Setting custom:session_id to 4fe688f8
Activating configuration for session "4fe688f8", user "00000000" and application "9a760c9b"
Setting custom:session_id to 4fe688f8
-----------
command is now 1
-----------
Control: ack
-----------
command is now 0
-----------
Control: ack
Activating configuration for session "4fe688f8", user "00000000" and application "9a760c9b"
Setting custom:application_id to 9a760c9b
Activating configuration for session "4fe688f8"