Difference between revisions of "TU Delft - Search and Rescue with AR Drone 2"

From PaparazziUAV
Jump to navigation Jump to search
 
(32 intermediate revisions by 7 users not shown)
Line 2: Line 2:


== Introduction==
== Introduction==
The high maneuverability and stability of a quadrotor inspired us to make an autonomous search and rescue vehicle. For this the AR Drone 2 was used.  The goal of this project is thus to further develop the AR Drone2 into a robot capable of performing an autonomous search mission. All the steps taken are described on this page.
The high maneuverability and stability of a quadrotor inspired us to make an autonomous search and rescue vehicle. For this the AR Drone 2 was used.  The goal of this project is thus to further develop the AR Drone2 into a robot capable of performing an autonomous search mission. This under guidance of dr. ir. M. Wisse and ir. B. D. W. Remes. All the steps taken are described on this page.


In order to achieve this goal we decided to work with raw data. The data was obtained by creating drivers capable of extracting and interpreting sensor data from the AR Drone2. In order to get the quadrotor flying paparazzi was used. For simulation JSBSim was used, which was then visualized using Flight Gear. The final section of the page will discuss the subject of making the quadrotor autonomous.
In order to achieve this goal we decided to work with raw data. The data was obtained by creating drivers capable of extracting and interpreting sensor data from the AR Drone2. Also because the programming developed by Parrot were not used, motor drivers has to be obtained. In order to get the quadrotor actually to fly, [https://wiki.paparazziuav.org/wiki/Main_Page paparazzi] was used. For simulation JSBSim was used, which was then visualized using Flight Gear. The final section of the page will discuss the subject of making the quadrotor autonomous.
 
First some general information about the project is given in chapter2. How all the data was obtained is presented in chapter 3. In chapter 4 it is described how to get paparazzi working on the drone. Next in chapter 5 we present how simulation was done and finally the proces of making the drone capable of performing an autonomous search and rescue mission is described in chapter 6.


== General project information==
== General project information==


This project was develloped using Linux, more specific Ubunutu. So except for the simulation part all steps are explained for this operating system. But it's a free operating system, so if you want to retrace our steps you can simply download it and access it from your current operating system using virtual box. A small tutorial can be found [[ Virtualbox 4.1.22 for Windows Hosts & Ubuntu 12.04 LTS| here]].
This project was developed using Linux, more specific Ubuntu. So except for the simulation part all steps are explained for this operating system. But it's a free operating system, so if you want to retrace our steps you can simply download it and access it from your current operating system using virtual box. A small tutorial can be found [[ Virtualbox 4.1.22 for Windows Hosts & Ubuntu 12.04 LTS| here]].


 
For this project a repository was used, Github. This allows multiple people to work on the same project at the same time without getting in each other's way. So all files associated with our project associated can be accessed using Github. For beginners, you can read the manual to setup Github for Ubuntu:
For this project we used a repository, Github. This allows multiple people to work on the same project at the same time without getting in eachother's way. So all files assosiated with our project assosiated can be accesed using Github. For beginners, you can read the manual to setup Github for Ubuntu:


* [[Github manual for Ubuntu]]
* [[Github manual for Ubuntu]]


Our git repository is at [https://github.com/RoboticaTUDelft/paparazzi Github RoboticaTUDelft] in the "minor1" branch. You can change to this branch bij executing the following command "git checkout minor1". The related project, [[TU Delft - Lasergame with Autonomous AR Drone]], can be found under the minor2 branch.
Our git repository is at [https://github.com/RoboticaTUDelft/paparazzi Github RoboticaTUDelft] in the "minor1" branch. You can change to this branch by executing the following command "git checkout minor1". The related project, [[TU Delft - Lasergame with Autonomous AR Drone]], can be found under the minor2 branch.


== Data acquisition==
== Data acquisition==
Line 30: Line 27:
The connecting was done using Telnet.
The connecting was done using Telnet.


*[[Telnet AR.Drone2]]
*[[AR_Drone_2#login_to_console_on_AR.Drone2_via_telnet]]


The actual transferring of files is done using a File Transfer Protocol (FTP).
The actual transferring of files is done using a File Transfer Protocol (FTP).


*[[FTP AR.Drone2]]
*[[AR_Drone_2#Transfer_files]]


=== NAV board===
=== NAV board===
Line 40: Line 37:
Throughout this project, on several different occasions, it will be apparent that the AR Drone2 was never really meant to be used as we inteded to. In addition to this, Parrot SA has a vested interest in maintaining the exclusivity of its product, rightfully so. So with what little information is publicly available, reverse engineering was a lot harder than we first thought when we began the project. However the AR.Drone2 looks a lot like the AR.Drone1, its predecessor, for which a lot of reverse engineering has allready been done by other people. Ofcourse there are differences and this is where we started reverse engineering the bits and pieces for the NAV board.
Throughout this project, on several different occasions, it will be apparent that the AR Drone2 was never really meant to be used as we inteded to. In addition to this, Parrot SA has a vested interest in maintaining the exclusivity of its product, rightfully so. So with what little information is publicly available, reverse engineering was a lot harder than we first thought when we began the project. However the AR.Drone2 looks a lot like the AR.Drone1, its predecessor, for which a lot of reverse engineering has allready been done by other people. Ofcourse there are differences and this is where we started reverse engineering the bits and pieces for the NAV board.


*[[NAV board AR.Drone2]]
*[[AR_Drone_2/NAV board]]


=== Motor driver===
=== Motor driver===
Line 46: Line 43:
Using a similar technique as for the NAV board, the motor drivers were obtained.
Using a similar technique as for the NAV board, the motor drivers were obtained.


*[[Motor driver AR.Drone2]]
*[[AR_Drone_2/Motor driver]]


=== GPS===
=== GPS===
The GPS we use with the AR.Drone2 is the [[GPS_specification | BU-353 GPS]]. To make good use of this GPS we had to create our own driver for it.  
The GPS we use with the AR.Drone2 is the [[GPS/BU_353|BU-353 GPS]]. To make good use of this GPS we had to create our own driver for it.  


*[[GPS Driver AR.Drone2]]
*[[AR_Drone_2/GPS]]


== Paparazzi==
== Paparazzi==


Now the necessary raw data can be obtained and the actuators can be controlled, it's time to focus on paparazzi. This section consists of two parts. The first part deals with integrating the AR.Drone2 into the paparazzi libraries, the second part deals with compiling paparazzi for the drone. More inforamtion on how to install paparazzi can be found [[installation|here]].
Now the necessary raw data can be obtained and the actuators can be controlled, it's time to focus on paparazzi. The first part deals with using Paparazzi with the AR.Drone2 The final part gives some additional information on the paparazzi architecture. More information on how to install Paparazzi can be found [[installation|here]].
 
=== Using Paparazzi===
 
This parts describes the process of adapting the paparazzi libraries to make them compatible with the AR.Drone’s hard en software.


*[[Integrating the AR Drone 2 with Paparazzi]]
=== Compiling and using Paparazzi===


=== Compiling===
Paparazzi can be compiled and be put on the AR.Drone 2. This is describes in this section.


Finally paparazzi can be compiled and be put on the AR.Drone 2. This is describes in this section.
*[[AR_Drone_2#Installation]]
 
*[[compiling paparazzi for  the AR.Drone2]]


=== Paparazzi architecture===
=== Paparazzi architecture===
Line 73: Line 64:
In the near future, we'd like to add features like object avoidance. Since this isn't yet implemented in paparazzi we have to start from scratch. Therefore we tried to understand the architecture a little better than is explained on this wiki at the moment.
In the near future, we'd like to add features like object avoidance. Since this isn't yet implemented in paparazzi we have to start from scratch. Therefore we tried to understand the architecture a little better than is explained on this wiki at the moment.


*[[Insight of paparazzi architecture]]  
*[[Insight of paparazzi architecture]]


== Simulation==
== Simulation==


Now paparazzi was compiled and our drone was ready to go, simulation could begin. The simulation was done in JSBSim, which was then visualized using flightgear. This are also the 2 parts in this section. More information on how to install JSBSim see [[JSBSim]]. For more information on how to install Flightgear and link it to Paparazzi see [[Simulation#View_the_simulation_in_Flight_Gear]].
Now our drone was ready to go, simulation could begin. The simulation was done in JSBSim, which was then visualized using flightgear. More information on how to install JSBSim see [[JSBSim]]. For more information on how to install Flightgear and link it to Paparazzi see [[Simulation#View_the_simulation_in_Flight_Gear]].


=== JSBSim===
=== JSBSim===
Line 86: Line 77:
Once JSBSim had been installed, the actual work could begin. Flight Dynamics and the creation of an individual model for an aircraft is essentially a case study regarding its control, stability, and performance. To model those three dynamics aspects is essentially what JSBSIM was used for but before work could begin, JSBSIM would first need to be fed a configuration file. The configuration file is written in a .xml format and, naturally, is unique to each aircraft. Although not applicable to this project, it is worth mentioning in the event that the reader of this page is not following the instruction exactly and is using it more for reference, there is a tool on the JSBSIM page called [http://jsbsim.sourceforge.net/aeromatic2.html Aeromatic], which is a capable .xml configuration file generator. For those following this project closely, a link will follow for creating a suitable JSBSIM .xml configuration file for the AR.Drone2.
Once JSBSim had been installed, the actual work could begin. Flight Dynamics and the creation of an individual model for an aircraft is essentially a case study regarding its control, stability, and performance. To model those three dynamics aspects is essentially what JSBSIM was used for but before work could begin, JSBSIM would first need to be fed a configuration file. The configuration file is written in a .xml format and, naturally, is unique to each aircraft. Although not applicable to this project, it is worth mentioning in the event that the reader of this page is not following the instruction exactly and is using it more for reference, there is a tool on the JSBSIM page called [http://jsbsim.sourceforge.net/aeromatic2.html Aeromatic], which is a capable .xml configuration file generator. For those following this project closely, a link will follow for creating a suitable JSBSIM .xml configuration file for the AR.Drone2.


*[[Creating a JSBSIM .xml Configuration File for AR.Drone2]]
*[[AR_Drone_2#AR.Drone Configuration File]]


=== Flightgear===
=== Flightgear===
Without actually using the drone itself, and only the previously developed JSBSIM configuration file, a simulated drone can be flown in Flightgear. To do so, a CAD model of the drone is implemented to give a visualization to the simulated model. Flightgear is the preeminent open-source flight simulator backed by a large community of active users. Implementation for this particular project can be read about on the [[AR.Drone 2 - Flightgear]] wikipage. More on the software can be found on the [http://www.flightgear.org/ Flightgear website].
Without actually using the drone itself, and only the previously developed JSBSIM configuration file, a simulated drone can be flown in Flightgear. To do so, a CAD model of the drone is implemented to give a visualization to the simulated model. Flightgear is the preeminent open-source flight simulator backed by a large community of active users. Implementation for this particular project can be read about on the [[AR_Drone_2#Flightgear]] wikipage. More on the software can be found on the [http://www.flightgear.org/ Flightgear website].
 
== Autonomous Search and Rescue Mission==
 
This section deals with the final stage of our project of making the further developing the AR.Drone2 into a quadrotor performing an autonomous search and rescue mission. First autonomous flight is discussed, next the features in order to perform a search and rescue mission are discussed. 
 
=== Autonomous flight===
 
The last part of this project consist of making the AR.Drone2 Autonomous. The this process consist of 4 branches:
 
*[[Autonomous flight of Paparazzi AR.Drone2]]
*[[Multidirectional distance measurement AR.Drone2]]
*[[Object Avoidance AR.Drone2]]
*[[Fail safe AR.Drone2]]
 
=== Search and Rescue Features===


*[[Mapping AR.Drone2]]
[[Category: TU Delft - Autonomous Quadrotor]]
*[[Hull Desing AR.Drone2]]
[[Category: Minor Team 1]]
*[[Optical flow AR.Drone2]]
[[Category: AR Drone 2]]
*[[Immage recognitionAR.Drone2]]

Latest revision as of 05:03, 28 November 2017

TU Delft Minor Robotics: Quadrotor Group 1

Introduction

The high maneuverability and stability of a quadrotor inspired us to make an autonomous search and rescue vehicle. For this the AR Drone 2 was used. The goal of this project is thus to further develop the AR Drone2 into a robot capable of performing an autonomous search mission. This under guidance of dr. ir. M. Wisse and ir. B. D. W. Remes. All the steps taken are described on this page.

In order to achieve this goal we decided to work with raw data. The data was obtained by creating drivers capable of extracting and interpreting sensor data from the AR Drone2. Also because the programming developed by Parrot were not used, motor drivers has to be obtained. In order to get the quadrotor actually to fly, paparazzi was used. For simulation JSBSim was used, which was then visualized using Flight Gear. The final section of the page will discuss the subject of making the quadrotor autonomous.

General project information

This project was developed using Linux, more specific Ubuntu. So except for the simulation part all steps are explained for this operating system. But it's a free operating system, so if you want to retrace our steps you can simply download it and access it from your current operating system using virtual box. A small tutorial can be found here.

For this project a repository was used, Github. This allows multiple people to work on the same project at the same time without getting in each other's way. So all files associated with our project associated can be accessed using Github. For beginners, you can read the manual to setup Github for Ubuntu:

Our git repository is at Github RoboticaTUDelft in the "minor1" branch. You can change to this branch by executing the following command "git checkout minor1". The related project, TU Delft - Lasergame with Autonomous AR Drone, can be found under the minor2 branch.

Data acquisition

So as explained in the introduction, firstly the raw data had to be extracted from the AR Drone2. So this data could be fed to paparazzi. So we started with trying to connect and pass files to the AR Drone2, which is desribed in the connecing section. The exact details of the extraction of the data is described in the NAV board section. Next the data from paparazzi had to be passed on to our actuators correctly. This is described in the motor driver section. To be able to perform better in our autonomous mission a GPS was added to the AR Drone2. The details of this are described in the GPS section.

Connecting

For our project the operating system Ubuntu was used, so all the steps described here are for an Ubuntu operating system.

The connecting was done using Telnet.

The actual transferring of files is done using a File Transfer Protocol (FTP).

NAV board

Throughout this project, on several different occasions, it will be apparent that the AR Drone2 was never really meant to be used as we inteded to. In addition to this, Parrot SA has a vested interest in maintaining the exclusivity of its product, rightfully so. So with what little information is publicly available, reverse engineering was a lot harder than we first thought when we began the project. However the AR.Drone2 looks a lot like the AR.Drone1, its predecessor, for which a lot of reverse engineering has allready been done by other people. Ofcourse there are differences and this is where we started reverse engineering the bits and pieces for the NAV board.

Motor driver

Using a similar technique as for the NAV board, the motor drivers were obtained.

GPS

The GPS we use with the AR.Drone2 is the BU-353 GPS. To make good use of this GPS we had to create our own driver for it.

Paparazzi

Now the necessary raw data can be obtained and the actuators can be controlled, it's time to focus on paparazzi. The first part deals with using Paparazzi with the AR.Drone2 The final part gives some additional information on the paparazzi architecture. More information on how to install Paparazzi can be found here.

Compiling and using Paparazzi

Paparazzi can be compiled and be put on the AR.Drone 2. This is describes in this section.

Paparazzi architecture

In the near future, we'd like to add features like object avoidance. Since this isn't yet implemented in paparazzi we have to start from scratch. Therefore we tried to understand the architecture a little better than is explained on this wiki at the moment.

Simulation

Now our drone was ready to go, simulation could begin. The simulation was done in JSBSim, which was then visualized using flightgear. More information on how to install JSBSim see JSBSim. For more information on how to install Flightgear and link it to Paparazzi see Simulation#View_the_simulation_in_Flight_Gear.

JSBSim

Creating A Flight Dynamics Model

In order to control the otherwise highly active dynamic nature of the quadrotor, an autopilot system will be necessary because the reaction time of the pilot will, otherwise, not be sufficient to maintain stable flight. The autopilot system will be created in Paparazzi for which a prerequisite is a proper flight dynamics model (FDM). To create the FDM the team will use JSBSIM, an open-source, platform-independent, flight-dynamics and control software library. Installing JSBSIM is covered for several different operating systems on the Paparazzi Wiki, Installing JSBSIM.

Once JSBSim had been installed, the actual work could begin. Flight Dynamics and the creation of an individual model for an aircraft is essentially a case study regarding its control, stability, and performance. To model those three dynamics aspects is essentially what JSBSIM was used for but before work could begin, JSBSIM would first need to be fed a configuration file. The configuration file is written in a .xml format and, naturally, is unique to each aircraft. Although not applicable to this project, it is worth mentioning in the event that the reader of this page is not following the instruction exactly and is using it more for reference, there is a tool on the JSBSIM page called Aeromatic, which is a capable .xml configuration file generator. For those following this project closely, a link will follow for creating a suitable JSBSIM .xml configuration file for the AR.Drone2.

Flightgear

Without actually using the drone itself, and only the previously developed JSBSIM configuration file, a simulated drone can be flown in Flightgear. To do so, a CAD model of the drone is implemented to give a visualization to the simulated model. Flightgear is the preeminent open-source flight simulator backed by a large community of active users. Implementation for this particular project can be read about on the AR_Drone_2#Flightgear wikipage. More on the software can be found on the Flightgear website.