This project provides an open source firmware for the AR.Drone quadrocopter by Parrot.
WARNING: This project is not supported nor endorsed by Parrot S.A., using this sofware will most likely void your warranty and might destroy your drone or make it fly away into deep space. Use at your own risk.
The new firmware for the drone is called ‘fly’. Upon start it will listen on UDP port 7777, waiting for the PC based controller called ‘OpenFlight’ to connect. Once OpenFlight connects, ‘fly’ kills the Parrot firmware ‘program.elf’ and takes control of the drone. Now you can fly the drone with the PC keyboard. OpenFlight logs the flight data to a file called YYYYMMDDHHMMSS_navlog.csv.
- The PID controller parameters have not been optimized yet and currently only use ‘P’ parameters. In particular the height controller will probably settle below the target height, or the drone might not have enough power to take off.
- The OpenFlight user interface is very rudimentary.
- No soft landing function is implemented. In order to land: fly the drone to minimum altitude and then switch off the motors.
- ‘Flat Trim’ parameters are not saved and are estimated after OpenFlight connects. Place the drone on a horizontal surface before connecting with OpenFlight.
- No battery voltage monitoring. The drone will fall out of the sky once the battery is drained.
1) FTP the folder ardrone/bin to your drone
2) Open a telnet session to your drone and execute:
# chmod 777 /data/video/bin/*
3) On your pc, start OpenFlight.exe and follow the instructions on screen.
4) (Optional) Execute the following command to make ‘fly’ start everytime you powerup the drone:
# echo -e “\n\n/data/video/bin/fly &” >> /etc/init.d/rcS
Other telnet commandline demo programs on the drone are:
You’ll need to execute `killall program.elf` before using these programs!
# /data/video/bin/navboard – to see the navboard raw sensor data (3-axis accelleration, 3-axis gyro, sonar echos)
# /data/video/bin/attitude – to see the navboard attitude data (pitch angle, roll angle, yaw angle, height)
# /data/video/bin/motorboard – to control the motors/leds
# /data/video/bin/vbat – to see the on board voltages
# /data/video/bin/video – turns the drone into a giant optical mouse, keep it about 1 meter above ground and move it parallel to the ground. The program should report the movement.
ardrone/bin – Pre-compiled binaries. FTP these files to your drone and run them in a telnet session.
ardrone/fly – Custom firmware to fly the drone, the controller is in directory /pc/OpenFlight
ardrone/navboard – Navboard driver and demo getting raw data from the navboard and converting it to realworld units
ardrone/attitude – Attitude driver and demo calculating attitude (pitch,roll,yaw and height) estimates from navboard data
ardrone/motorboard – Motorboard driver and demo control of the 4 motors and leds
ardrone/vbat – Battery voltage driver and demo
ardrone/gpio – GPIO driver and demo
ardrone/video – Video driver and demo (needs start&kill of program.elf to init the video)
ardrone/util – Utilities
pc/OpenFlight – C# controller for /ardrone/bin/fly
For ardrone source code:
1) Download and install arm-2011.03-41-arm-none-linux-gnueabi.exe “Sourcery G++ Lite 2011.03-41 for ARM GNU/Linux” from http://www.codesourcery.com/sgpp/lite/arm/portal/release1803
2) On Windows: open a command prompt and cd to one of the directories
3) Run the make.bat batch file to compile the program in that directory
For pc source code
1) Download and install Visual Studio C# 2010 Express
2) Open pc/OpenFlight.sln
19-Sep-2011 V03 Added ardrone/fly and pc/OpenFlight
20-Jul-2011 V02 Added video
17-Jul-2011 V01 Initial release