Project: Trajectory Control of AR.Drone ver 2.0 quadrotor model
Authors: Trung Nguyen and Oscar De Silva
Intelligent Systems Lab - Memorial University of Newfoundland - Canada
The project can be used for researching quadrotor with specific topics:
- Trajectory control or path following
- State estimation (Attitude and Heading Reference System)
- Trajectory generation or path planning
- AR.Drone quadrotor ver 2.0
- Ground station (desktop or laptop) with ROS (Fuerte, Hydro or Indigo) installed
- Optitrack motion capture system (or camera mounting on the ceiling)
- Joystick Logitech Attrack3 (optional)
The C code project is in folder ardrone2islab: https://github.com/tn0432/ardrone2islab.git
Steps to complie and upload the code to AR.Drone are presented following:
- Prepare your code for attitude control to upload to AR.Drone
- [First time install compiler] Please follow the steps in the following link to setup the compiler as well as test simple program uploading to AR.Drone
- Open new terminal to setup compiler,
codesourcery-arm-2009q3.sh
- cd to your folder ardrone2islab,
make
, it will generate an executive file fly_ardrone_pid - Connect to AR.Drone wifi, the IP of AR.Drone: 192.168.1.1
ftp 192.168.1.1
- Until see connection successful, Press Enter
put fly_ardrone_pid
. Now your file is in AR.Drone
How to run your file on AR.Drone board?
- Open new terminal or Ctrl+Alt+T
telnet 192.168.1.1
cd ./data/video/fly_ardrone_pid
The compiled file uploaded to AR.Drone will temporary kill the original file. The emergency-stop function is still running in AR.Drone. If any collision happens during experiment, the AR.Drone propellers will stop immediately.
How to restart AR.Drone back to original manufacturing? or How to make emergency stop for AR.Drone during flight?
Simple method is unpluging battery from AR.Drone and pluging it in again, or use following commands for emergency stop:
- Open new terminal or Ctrl+Alt+T
telnet 192.168.1.1
cd ./sbin/reboot
The optitrack motion capture system will estimate the current position of AR.Drone and send that position to the ground station. The ROS driver for motion capture system is mocap_optitrack. In a ground station (your desktop), a ROS node (communication_node_pid_semitrajectorycontrol3) is used to calculate control signals sent to AR.Drone. The control signals are desired Thrust, Pitch, Roll, Yaw.
In the beginning, AR.Drone is at manual control state with very small value of Thrust. I use joystick for manual control. When it transfers to trajectory control state, the value of Thrust is set by the error of height. AR.Drone will start to track the desired circle trajectory. So, please focus on the safety issues when the flight mode is transfered to trajectory control!
[January 2016] Upload the code project to github
Trung Nguyen ([email protected])
Intelligent Systems Lab, Memorial University of Newfoundland, Canada
http://taghof.github.io/Navigation-for-Robots-with-WIFI-and-CV/blog/2012/01/13/Compiling-Code-For-The-ARDrone/
http://wiki.paparazziuav.org/wiki/AR_Drone_2
http://blog.perquin.com/blog/category/ardrone/