>>>fromlibardroneimportardrone>>>drone=ardrone.ARDrone()
>>># You might need to call drone.reset() before taking off if the drone is in>>># emergency mode>>>drone.takeoff()
>>>drone.land()
>>>drone.halt()Using the drone's function get_image() you can get the latest image from the camera.
At present this is in the format of a numpy array with dimensions (width, height, 3) that can be used e.g. in opencv:
>>>importcv2>>>cv2.namedWindow('image', cv2.WINDOW_AUTOSIZE)
>>>whileTrue:
>>># get image data as numpy array>>>img=drone.get_image()
>>># show image using opencv>>>cv2.imshow('image', cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
>>>ifcv2.waitKey(1) &0xFF==ord('q'): # press 'q' to quit>>>breakThe drone's property navdata contains always the latest navdata.
You can for example get the current battery charge from that:
>>>bat=drone.navdata.get(0, dict()).get('battery', 0)
>>>print('Battery: %i%%'%bat)There is also a demo application included which shows the video from the drone and lets you remote-control the drone with the keyboard (you need pygame for it to work):
RETURN - takeoff
SPACE - land
BACKSPACE - reset (from emergency - DO NOT USE IN FLIGHT)
w - forward
a - left
s - back
d - right
LEFT/q - turn left
RIGHT/e - turn right
1,2,...,0 - speed ('1' slowest with speed 0.1, then adding 0.1 for every number until '0' for fastest with 1.0)
UP/DOWN - altitude
r - switch to front facing camera
f - switch to downward facing camera
Here is a video of the library in action:
The public repository is located here for the AR.Drone 1.0:
git://github.com/venthur/python-ardrone.git
At present the AR.Drone 2.0 has a separate fork here:
git://github.com/adetaylor/python-ardrone.git
This software was tested with the following setup:
- Python 2.7.13
- Unmodified AR.Drone firmware 2.0
This software is published under the terms of the MIT License: