<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.paparazziuav.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=SergeLeHuitouze</id>
	<title>PaparazziUAV - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.paparazziuav.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=SergeLeHuitouze"/>
	<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/wiki/Special:Contributions/SergeLeHuitouze"/>
	<updated>2026-05-01T00:53:44Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Media&amp;diff=3774</id>
		<title>Media</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Media&amp;diff=3774"/>
		<updated>2008-06-11T15:12:57Z</updated>

		<summary type="html">&lt;p&gt;SergeLeHuitouze: /* Paparazzi in the News */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|width=&amp;quot;100%&amp;quot; cellpadding=&amp;quot;12&amp;quot; cellspacing=&amp;quot;5&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| style=&amp;quot;width:50%&amp;quot;|&lt;br /&gt;
== Paparazzi in the News ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.flightglobal.com/articles/2008/04/03/222680/cots-uav-makes-arctic-debut.html Flight International: COTS UAV makes arctic debut] - April 3, 2008&lt;br /&gt;
*:&amp;lt;small&amp;gt;A Norwegian university has flown an autonomous unmanned air vehicle equipped with meteorological sensors over the Spitzbergen/Svalbard island in the arctic circle in temperatures of -20 degrees C (-4 degrees F), winds up to 15m/s (50ft/s) and at an altitude of 4,900ft (1,500m). The Multiplex Funjet UAV was modified with electronics for open-source Paparazzi autopilot software…&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://diydrones.com/profiles/blog/show?id=705844%3ABlogPost%3A29982 DIY DRONES: Interview: Martin Müller and the Paparazzi Project (now less DIY!)] - March 25, 2008&lt;br /&gt;
*:&amp;lt;small&amp;gt;DIY DRONES has been following the Paparazzi autopilot project with interest for several years. It's a European open source technology initiative that has created both thermopile (infrared sensor) and gyro-based autopilot hardware, along with quite sophisticated software to run it…&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.spiegel.de/wissenschaft/mensch/0,1518,525696,00.html SPIEGEL Online: Projekt &amp;quot;Paparazzi&amp;quot;: Bau dir deinen fliegenden Spion] - December 28, 2007&lt;br /&gt;
*:&amp;lt;small&amp;gt;Unbemannte Mini-Flugzeuge werden derzeit vor allem von Militärs genutzt. Doch eine Drohne, die selbständig vorgegebene Routen abfliegt, lässt sich auch selbst bauen. Für etwa 1000 Euro bekommt man ein Flugzeug, das sich bequem per Software dirigieren lässt.&lt;br /&gt;
*:Der Flieger macht nicht, was er soll: Plötzlich dreht er um 180 Grad und kehrt zum Startpunkt zurück. &amp;quot;Alles ist unter Kontrolle&amp;quot;, sagt Antoine Drouin und die Zuhörer auf dem Chaos Communication Congress in Berlin lachen…&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.golem.de/0712/56728.html golem.de: 24C3: Paparazzi - Open-Source-Autopilot für Modellflugzeuge] - December 28, 2007&lt;br /&gt;
*:&amp;lt;small&amp;gt;Demo von Flugplanänderungen zweier autonomer Modellflieger über Netzwerke&lt;br /&gt;
*:Auf dem derzeit in Berlin stattfindenden 24. Chaos Communication Congress (24C3) zeigten Martin Müller und Antoine Drouin von der Ecole Nationale de l'Aviation Civile (ENAC) vor versammeltem Hacker-Publikum wie ein wenig kostenintensiver GPS-basierter Autopilot aussieht. Mit der ebenfalls dafür entwickelten Software lassen sich mit einem Netzwerk sogar mehrere Flugzeuge an verschiedenen Standorten verwalten…&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.hackaday.com/2007/12/27/24c3/ HACK A DAY: 24C3 Build your own UAV] - December 27, 2007&lt;br /&gt;
*:&amp;lt;small&amp;gt;The 24th annual Chaos Communications Congress in Berlin is already off to a great start. The first talk we attended was [Antoine Drouin] and [Martin Müller] presenting Paparazzi - The Free Autopilot. Paparazzi is an open source hardware and software project for building autonomous unmanned aerial vehicles. The main hardware board has an ARM processor and GPS. It uses inertial and infrared sensors to determine orientation and altitude. The four infrared thermopiles measure the air temperature. The ground is warmer than the sky and if you compare the temperature in the direction of each wing tip your can tell what angle the airplane is at. It's really that simple…&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.elektor-electronics.co.uk/Default.aspx?tabid=27&amp;amp;art=53265&amp;amp;PN=On Elector Electronics: &amp;quot;Flying Robots&amp;quot;] - Feb 2007&lt;br /&gt;
*:&amp;lt;small&amp;gt;As processors become ever more powerful we are witnessing the rise of more ’intelligent’ systems. We now look to sophisticated robots to assist or even replace us in difficult or hazardous environments. This is particularly true of military hardware where we have seen on our TV screens the use of unmanned aircraft and vehicles in some recent conflicts. The basic idea however is not so new; we take a look into the world of ‘drones’…&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.auvsi.org//members/FeaturedArticles/NovDec06/NovDec06.pdf MAV Student Competition] - Nov/Dec 2006&lt;br /&gt;
*:&amp;lt;small&amp;gt;The Air Force Research Laboratory Munitions Directorate and AUVSI’s Emerald Coast Chapter hosted the 2nd US-European Competition &amp;amp; Workshop on Micro Air Vehicles, MAV06, Oct. 29-Nov. 2.  See page 23.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.flightglobal.com/Articles/2006/11/03/210365/US+Army+battle+laboratory+studies+hand-launched+Dragon+Slayer+micro+UAV+for+battlefield.html &amp;quot;Flight International: Dragon Slayer&amp;quot;] - November 3, 2006&amp;lt;small&amp;gt;&lt;br /&gt;
*:The US Army battle laboratory is to buy several prototypes of the Miraterre Flight Systems Dragon Slayer hand-launched micro unmanned air vehicle (UAV) to develop it into a low-cost, expendable surveillance tool for soldiers...&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.recherche.enac.fr/paparazzi/cache/sherbrooke.html Compétition internationale d'avions espions miniatures: Un succès qui suscite un intérêt international] - ([http://www.recherche.enac.fr/paparazzi/cache/sherbrooke.html cached])- October 5, 2005 &amp;lt;small&amp;gt;&lt;br /&gt;
*:5 octobre 2005 – Une équipe de cinq étudiants en génie de l'Université de Sherbrooke est arrivée première dans 4 catégories et 7e au cumulatif lors d'une importante compétition internationale d'avions espions miniatures, à Garmish-Partenkirchen, en Allemagne. &lt;br /&gt;
*:L'événement nommé US-European Micro-Aerial Vehicle Technology Demonstration and Assessment a accueilli du 19 au 22 septembre 17 équipes provenant de partout à travers le monde. Chacune devait présenter un petit véhicule conçu par les membres et capable d'effectuer de la surveillance aérienne durant 30 minutes afin de détecter un terroriste dans un rayon de 500 m...&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.flightglobal.com/Articles/2005/10/04/201895/French+school+to+go+it+alone.html Flight International: &amp;quot;French School To Go It Alone&amp;quot;] - ([http://www.recherche.enac.fr/paparazzi/cache/fi2.html cached]) October 4, 2005 &amp;lt;small&amp;gt;&lt;br /&gt;
*:French national civil aviation school ENAC plans to demonstrate autonomous formation flight with two micro air vehicles in November. Two 1.4m (4.6ft)-wingspan, electrically powered Twin Star model aircraft are being fitted with GPS receivers and radio transmitters for the tests, in which they will fly about 10m apart, one following the other...&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.flightglobal.com/Articles/2005/09/27/Navigation/251/201713/Teams+chase+MAV+prize.html Flight International: &amp;quot;Teams chase MAV prize&amp;quot;] - ([http://www.recherche.enac.fr/paparazzi/cache/fi.html cached]) - September 27, 2005 &amp;lt;small&amp;gt;&lt;br /&gt;
*:Open-source software, the foam-like material Depron and tiny infrared attitude controllers were common design elements among the 16 teams competing at the first US-European Micro Aerial Vehicle (MAV) Technology Demonstration and Assessment event, held in Garmisch-Partenkirchen, Germany last week...&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.flightglobal.com/Articles/2005/10/25/202326/DOWN+SIZING.html &amp;quot;Flight International: Down Sizing&amp;quot;] - September 26, 2005 &amp;lt;small&amp;gt;&lt;br /&gt;
*:As the first generation of micro-scale UAVs, exemplified by the remote-control Wasp, reaches the hands of military users, the US Army’s MAV competition in Garmisch-Partenkirchen provided a glimpse of the future. The winning University of Arizona team’s fixed-wing MAV transmitted video while flying autonomously via GPS waypoints using an open-source flight-control software package, called Paparazzi, originally developed by France’s national aviation school Enac.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.flightglobal.com/blogs/flight-international/2005/09/from-fallujah-to-garmischparte.html &amp;quot;Flight International Blog: From Fallujah to Garmisch-Partenkirchen&amp;quot;] - September, 2005 &amp;lt;small&amp;gt;&lt;br /&gt;
*:Robots are often used in the media to instil fear with Frankenstein like stories of the scientist and corporation having gone to far with a humanoid machine destroying all before it. But on today's battlefield, and for this US Army sponsored event, and for the war of tomorrow the robots will, apparently, look more like model planes.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
== Design Reports ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.iop.org/EJ/article/1755-1315/1/1/012014/ees8_1_012014.pdf SUMO: A small unmanned meteorological observer for atmospheric boundary layer research]&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(751k, PDF) - May 2008&lt;br /&gt;
*: Paper describing the meteorological campaigns on Iceland and Spitsbergen. Also available from the [http://www.iop.org/EJ/abstract/1755-1315/1/1/012014 IOP conference site]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.recherche.enac.fr/paparazzi/papers_2008/ENAC_MAV08.pdf YAP - Yet Another Paparazzi]&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(4M, PDF) - March 2008&lt;br /&gt;
*: Technical paper of the ENAC entry at [http://www.nal.res.in/MAV08 MAV08]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.recherche.enac.fr/paparazzi/papers_2007/easyDrone.pdf &amp;quot;easyDrone - La nouvelle interface de pilotage de drone (french)&amp;quot;]&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(8.1M, PDF) - March 2007&lt;br /&gt;
*:This report describres a proposal for a new kind of GCS, highly dynamic (no more static flight plan) and using modern interactions (gesture recognition, ...)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.recherche.enac.fr/paparazzi/papers_2006/mav06_paparazzi.pdf &amp;quot;The Paparazzi Solution&amp;quot;]-[http://www.recherche.enac.fr/paparazzi/papers_2006/mav06_paparazzi_slides.pdf (slides)]&amp;lt;small&amp;gt;&amp;lt;br&amp;gt;(4.6MB pdf) - September 2006&lt;br /&gt;
*:This paper describes the Paparazzi project approach: The complete and integrated design of hardware, software, and airframe into a robust and reliable system, proven by formal analytical methods and thousands of flight hours.&lt;br /&gt;
*:Best Oral / Technical Presentation - MAV-06&lt;br /&gt;
*:''Brisset, Drouin, Gorraz, Huard, Tyler''&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.recherche.enac.fr/paparazzi/papers_2005/jpo_2005.pdf &amp;quot;Présentation JPO&amp;quot; (French)]&amp;lt;small&amp;gt;&amp;lt;br&amp;gt;(8MB pdf) - October 2005&lt;br /&gt;
*:A brief presentation of Paparazzi@Enac&lt;br /&gt;
*:''Drouin, Brisset''&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Media:rapport_co_ihm.pdf|&amp;quot;Systémes Interactifs du Drone Paparazzi&amp;quot; (French)]]&amp;lt;small&amp;gt;&amp;lt;br&amp;gt;(1MB pdf) - Feburary 2005&lt;br /&gt;
*:Study of the ground control station interface&lt;br /&gt;
*:''Doscot, Mansouri, Poupard''&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.recherche.enac.fr/paparazzi/papers_2004/drones_et_micro_drones.pdf &amp;quot;Drones et micro-drones&amp;quot; (French)]&amp;lt;small&amp;gt;&amp;lt;br&amp;gt;(10.5MB pdf) - 2004&lt;br /&gt;
*:Introduction to UAVs; presentation of the Paparazzi project&lt;br /&gt;
*:''Drouin, Brisset''&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Media:paparadziy.pdf|&amp;quot;PaparaDzIY : do-it-yourself UAV&amp;quot;]]&amp;lt;small&amp;gt;&amp;lt;br&amp;gt;(800K pdf) - 2004&lt;br /&gt;
*:Guidelines and tools for amateur UAVs&lt;br /&gt;
*:''Drouin, Brisset''&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.recherche.enac.fr/paparazzi/papers_2004/rapport_a_matthieu.pdf &amp;quot;Traitement de la video&amp;quot; (French)]&amp;lt;small&amp;gt;&amp;lt;br&amp;gt;(2.7MB pdf) - 2004&lt;br /&gt;
*:Video data processing&lt;br /&gt;
*:''Matthieu Tobie''&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Media:PaparazziBenchmark11_paper.pdf|&amp;quot;PapaBench : A Free Real-Time Benchmark&amp;quot;]]&amp;lt;small&amp;gt;&amp;lt;br&amp;gt;(365K pdf)&lt;br /&gt;
*:This paper presents PapaBench, a free real-time benchmark and compares it with the existing benchmark suites. It is designed to be valuable for experimental works in WCET computation and may be also useful for scheduling analysis. This benchmark is based on the Paparazzi project that represents a real-time application, developed to be embedded on different Unmanned Aerial Vehicles (UAV).&lt;br /&gt;
*:''Fadia Nemer, Hugues Cassé, Pascal Sainrat, Jean-Paul Bahsoun and Marianne De Michiel''&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Media:infrared_calib_paper.zip|&amp;quot;Calibration d’un récepteur Infra-Rouge pour Micro Drone&amp;quot; (French)]]&amp;lt;small&amp;gt;&amp;lt;br&amp;gt;(800K zip) - January 2004&lt;br /&gt;
*:Hybridization of GPS and infrared data&lt;br /&gt;
*:En fonctionnement normal le filtre de Kalman propose un meilleur fonctionnement que la régression linéaire.&lt;br /&gt;
*:Dans le cas de conditions changeantes, sans panne, le filtre de Kalman s’adapte mieux que la régression linéaire. &lt;br /&gt;
*:Par contre dans le cas d’une panne, le filtre de Kalman ne l’a détecte pas et provoque une dérive du drone.&lt;br /&gt;
*:Hybridization of GPS and infrared data&lt;br /&gt;
*:''Sébastien BINAS, Sylvain DEPLANCHE, Aurélien HADIDA, (IENAC01L)''&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Manuals ==&lt;br /&gt;
* [[Media:users_manual.pdf|&amp;quot;User's Manual&amp;quot;]]&amp;lt;small&amp;gt;&amp;lt;br&amp;gt;(1.5M, pdf) - February 2008&lt;br /&gt;
*:This document is a quick guide to use the Paparazzi system. It is divided into two parts. In the first part an extensive procedure, which can also be used as a check-list, is given to prepare a flight, to operate the UAV and to analyze the results. The procedure is described for a given flight plan and a pre-programmed and tuned aircraft. The second part gives a description of the different components and tools of the system.&lt;br /&gt;
*:''ENAC''&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Other Sites of Interest ==&lt;br /&gt;
[[Image:2g Autonomous Glider.jpg|thumb|300px|Complete autonomous glider weighs only 2 grams including LiPo battery, I2C optic flow sensor for optical obstacle avoidance, stereo microphones for locating the source of audio signals, 200V power supply, and piezoelectric actuators.]]&lt;br /&gt;
* [http://robotics.eecs.berkeley.edu/~ronf/PAPERS/iecon05.pdf &amp;quot;Design, Fabrication and Initial Results of a 2g Autonomous Glider&amp;quot;]&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(900K, PDF) - July 2007&lt;br /&gt;
*:Utilizing the core technologies of emerging microrobotic structures, the rapid design and prototyping of a passive micro air vehicle with the final goal of locating an audio source while avoiding hazardous obstacles is presented. The airfoil and control surfaces are optimized empirically to maximize lift and maneuverability while minimizing drag.  Bimorph piezoelectric bending cantilevers actuate the control surfaces.  Since such actuators require high voltages, an efficient boost circuit is presented along with appropriate high voltage electronics.  To locate audio sources, a pair of acoustic sensors is designed and prototyped using a phase detection algorithm while a custom optic flow sensor is developed to avoid obstacles and give estimates of object distances and velocities.  Finally, each subsystem is demonstrated and the complete glider is integrated to demonstrate initial open loop control performance.&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>SergeLeHuitouze</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Media&amp;diff=3773</id>
		<title>Media</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Media&amp;diff=3773"/>
		<updated>2008-06-11T15:09:40Z</updated>

		<summary type="html">&lt;p&gt;SergeLeHuitouze: /* Paparazzi in the News */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|width=&amp;quot;100%&amp;quot; cellpadding=&amp;quot;12&amp;quot; cellspacing=&amp;quot;5&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| style=&amp;quot;width:50%&amp;quot;|&lt;br /&gt;
== Paparazzi in the News ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.flightglobal.com/articles/2008/04/03/222680/cots-uav-makes-arctic-debut.html Flight International: COTS UAV makes arctic debut] - April 3, 2008&lt;br /&gt;
*:&amp;lt;small&amp;gt;A Norwegian university has flown an autonomous unmanned air vehicle equipped with meteorological sensors over the Spitzbergen/Svalbard island in the arctic circle in temperatures of -20 degrees C (-4 degrees F), winds up to 15m/s (50ft/s) and at an altitude of 4,900ft (1,500m). The Multiplex Funjet UAV was modified with electronics for open-source Paparazzi autopilot software…&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://diydrones.com/profiles/blog/show?id=705844%3ABlogPost%3A29982 Interview: Martin Müller and the Paparazzi Project (now less DIY!)] - March 25, 2008&lt;br /&gt;
*:&amp;lt;small&amp;gt;DIY DRONES has been following the Paparazzi autopilot project with interest for several years. It's a European open source technology initiative that has created both thermopile (infrared sensor) and gyro-based autopilot hardware, along with quite sophisticated software to run it…&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.spiegel.de/wissenschaft/mensch/0,1518,525696,00.html SPIEGEL Online: Projekt &amp;quot;Paparazzi&amp;quot;: Bau dir deinen fliegenden Spion] - December 28, 2007&lt;br /&gt;
*:&amp;lt;small&amp;gt;Unbemannte Mini-Flugzeuge werden derzeit vor allem von Militärs genutzt. Doch eine Drohne, die selbständig vorgegebene Routen abfliegt, lässt sich auch selbst bauen. Für etwa 1000 Euro bekommt man ein Flugzeug, das sich bequem per Software dirigieren lässt.&lt;br /&gt;
*:Der Flieger macht nicht, was er soll: Plötzlich dreht er um 180 Grad und kehrt zum Startpunkt zurück. &amp;quot;Alles ist unter Kontrolle&amp;quot;, sagt Antoine Drouin und die Zuhörer auf dem Chaos Communication Congress in Berlin lachen…&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.golem.de/0712/56728.html golem.de: 24C3: Paparazzi - Open-Source-Autopilot für Modellflugzeuge] - December 28, 2007&lt;br /&gt;
*:&amp;lt;small&amp;gt;Demo von Flugplanänderungen zweier autonomer Modellflieger über Netzwerke&lt;br /&gt;
*:Auf dem derzeit in Berlin stattfindenden 24. Chaos Communication Congress (24C3) zeigten Martin Müller und Antoine Drouin von der Ecole Nationale de l'Aviation Civile (ENAC) vor versammeltem Hacker-Publikum wie ein wenig kostenintensiver GPS-basierter Autopilot aussieht. Mit der ebenfalls dafür entwickelten Software lassen sich mit einem Netzwerk sogar mehrere Flugzeuge an verschiedenen Standorten verwalten…&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.hackaday.com/2007/12/27/24c3/ HACK A DAY: 24C3 Build your own UAV] - December 27, 2007&lt;br /&gt;
*:&amp;lt;small&amp;gt;The 24th annual Chaos Communications Congress in Berlin is already off to a great start. The first talk we attended was [Antoine Drouin] and [Martin Müller] presenting Paparazzi - The Free Autopilot. Paparazzi is an open source hardware and software project for building autonomous unmanned aerial vehicles. The main hardware board has an ARM processor and GPS. It uses inertial and infrared sensors to determine orientation and altitude. The four infrared thermopiles measure the air temperature. The ground is warmer than the sky and if you compare the temperature in the direction of each wing tip your can tell what angle the airplane is at. It's really that simple…&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.elektor-electronics.co.uk/Default.aspx?tabid=27&amp;amp;art=53265&amp;amp;PN=On Elector Electronics: &amp;quot;Flying Robots&amp;quot;] - Feb 2007&lt;br /&gt;
*:&amp;lt;small&amp;gt;As processors become ever more powerful we are witnessing the rise of more ’intelligent’ systems. We now look to sophisticated robots to assist or even replace us in difficult or hazardous environments. This is particularly true of military hardware where we have seen on our TV screens the use of unmanned aircraft and vehicles in some recent conflicts. The basic idea however is not so new; we take a look into the world of ‘drones’…&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.auvsi.org//members/FeaturedArticles/NovDec06/NovDec06.pdf MAV Student Competition] - Nov/Dec 2006&lt;br /&gt;
*:&amp;lt;small&amp;gt;The Air Force Research Laboratory Munitions Directorate and AUVSI’s Emerald Coast Chapter hosted the 2nd US-European Competition &amp;amp; Workshop on Micro Air Vehicles, MAV06, Oct. 29-Nov. 2.  See page 23.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.flightglobal.com/Articles/2006/11/03/210365/US+Army+battle+laboratory+studies+hand-launched+Dragon+Slayer+micro+UAV+for+battlefield.html &amp;quot;Flight International: Dragon Slayer&amp;quot;] - November 3, 2006&amp;lt;small&amp;gt;&lt;br /&gt;
*:The US Army battle laboratory is to buy several prototypes of the Miraterre Flight Systems Dragon Slayer hand-launched micro unmanned air vehicle (UAV) to develop it into a low-cost, expendable surveillance tool for soldiers...&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.recherche.enac.fr/paparazzi/cache/sherbrooke.html Compétition internationale d'avions espions miniatures: Un succès qui suscite un intérêt international] - ([http://www.recherche.enac.fr/paparazzi/cache/sherbrooke.html cached])- October 5, 2005 &amp;lt;small&amp;gt;&lt;br /&gt;
*:5 octobre 2005 – Une équipe de cinq étudiants en génie de l'Université de Sherbrooke est arrivée première dans 4 catégories et 7e au cumulatif lors d'une importante compétition internationale d'avions espions miniatures, à Garmish-Partenkirchen, en Allemagne. &lt;br /&gt;
*:L'événement nommé US-European Micro-Aerial Vehicle Technology Demonstration and Assessment a accueilli du 19 au 22 septembre 17 équipes provenant de partout à travers le monde. Chacune devait présenter un petit véhicule conçu par les membres et capable d'effectuer de la surveillance aérienne durant 30 minutes afin de détecter un terroriste dans un rayon de 500 m...&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.flightglobal.com/Articles/2005/10/04/201895/French+school+to+go+it+alone.html Flight International: &amp;quot;French School To Go It Alone&amp;quot;] - ([http://www.recherche.enac.fr/paparazzi/cache/fi2.html cached]) October 4, 2005 &amp;lt;small&amp;gt;&lt;br /&gt;
*:French national civil aviation school ENAC plans to demonstrate autonomous formation flight with two micro air vehicles in November. Two 1.4m (4.6ft)-wingspan, electrically powered Twin Star model aircraft are being fitted with GPS receivers and radio transmitters for the tests, in which they will fly about 10m apart, one following the other...&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.flightglobal.com/Articles/2005/09/27/Navigation/251/201713/Teams+chase+MAV+prize.html Flight International: &amp;quot;Teams chase MAV prize&amp;quot;] - ([http://www.recherche.enac.fr/paparazzi/cache/fi.html cached]) - September 27, 2005 &amp;lt;small&amp;gt;&lt;br /&gt;
*:Open-source software, the foam-like material Depron and tiny infrared attitude controllers were common design elements among the 16 teams competing at the first US-European Micro Aerial Vehicle (MAV) Technology Demonstration and Assessment event, held in Garmisch-Partenkirchen, Germany last week...&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.flightglobal.com/Articles/2005/10/25/202326/DOWN+SIZING.html &amp;quot;Flight International: Down Sizing&amp;quot;] - September 26, 2005 &amp;lt;small&amp;gt;&lt;br /&gt;
*:As the first generation of micro-scale UAVs, exemplified by the remote-control Wasp, reaches the hands of military users, the US Army’s MAV competition in Garmisch-Partenkirchen provided a glimpse of the future. The winning University of Arizona team’s fixed-wing MAV transmitted video while flying autonomously via GPS waypoints using an open-source flight-control software package, called Paparazzi, originally developed by France’s national aviation school Enac.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.flightglobal.com/blogs/flight-international/2005/09/from-fallujah-to-garmischparte.html &amp;quot;Flight International Blog: From Fallujah to Garmisch-Partenkirchen&amp;quot;] - September, 2005 &amp;lt;small&amp;gt;&lt;br /&gt;
*:Robots are often used in the media to instil fear with Frankenstein like stories of the scientist and corporation having gone to far with a humanoid machine destroying all before it. But on today's battlefield, and for this US Army sponsored event, and for the war of tomorrow the robots will, apparently, look more like model planes.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
== Design Reports ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.iop.org/EJ/article/1755-1315/1/1/012014/ees8_1_012014.pdf SUMO: A small unmanned meteorological observer for atmospheric boundary layer research]&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(751k, PDF) - May 2008&lt;br /&gt;
*: Paper describing the meteorological campaigns on Iceland and Spitsbergen. Also available from the [http://www.iop.org/EJ/abstract/1755-1315/1/1/012014 IOP conference site]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.recherche.enac.fr/paparazzi/papers_2008/ENAC_MAV08.pdf YAP - Yet Another Paparazzi]&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(4M, PDF) - March 2008&lt;br /&gt;
*: Technical paper of the ENAC entry at [http://www.nal.res.in/MAV08 MAV08]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.recherche.enac.fr/paparazzi/papers_2007/easyDrone.pdf &amp;quot;easyDrone - La nouvelle interface de pilotage de drone (french)&amp;quot;]&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(8.1M, PDF) - March 2007&lt;br /&gt;
*:This report describres a proposal for a new kind of GCS, highly dynamic (no more static flight plan) and using modern interactions (gesture recognition, ...)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.recherche.enac.fr/paparazzi/papers_2006/mav06_paparazzi.pdf &amp;quot;The Paparazzi Solution&amp;quot;]-[http://www.recherche.enac.fr/paparazzi/papers_2006/mav06_paparazzi_slides.pdf (slides)]&amp;lt;small&amp;gt;&amp;lt;br&amp;gt;(4.6MB pdf) - September 2006&lt;br /&gt;
*:This paper describes the Paparazzi project approach: The complete and integrated design of hardware, software, and airframe into a robust and reliable system, proven by formal analytical methods and thousands of flight hours.&lt;br /&gt;
*:Best Oral / Technical Presentation - MAV-06&lt;br /&gt;
*:''Brisset, Drouin, Gorraz, Huard, Tyler''&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.recherche.enac.fr/paparazzi/papers_2005/jpo_2005.pdf &amp;quot;Présentation JPO&amp;quot; (French)]&amp;lt;small&amp;gt;&amp;lt;br&amp;gt;(8MB pdf) - October 2005&lt;br /&gt;
*:A brief presentation of Paparazzi@Enac&lt;br /&gt;
*:''Drouin, Brisset''&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Media:rapport_co_ihm.pdf|&amp;quot;Systémes Interactifs du Drone Paparazzi&amp;quot; (French)]]&amp;lt;small&amp;gt;&amp;lt;br&amp;gt;(1MB pdf) - Feburary 2005&lt;br /&gt;
*:Study of the ground control station interface&lt;br /&gt;
*:''Doscot, Mansouri, Poupard''&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.recherche.enac.fr/paparazzi/papers_2004/drones_et_micro_drones.pdf &amp;quot;Drones et micro-drones&amp;quot; (French)]&amp;lt;small&amp;gt;&amp;lt;br&amp;gt;(10.5MB pdf) - 2004&lt;br /&gt;
*:Introduction to UAVs; presentation of the Paparazzi project&lt;br /&gt;
*:''Drouin, Brisset''&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Media:paparadziy.pdf|&amp;quot;PaparaDzIY : do-it-yourself UAV&amp;quot;]]&amp;lt;small&amp;gt;&amp;lt;br&amp;gt;(800K pdf) - 2004&lt;br /&gt;
*:Guidelines and tools for amateur UAVs&lt;br /&gt;
*:''Drouin, Brisset''&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.recherche.enac.fr/paparazzi/papers_2004/rapport_a_matthieu.pdf &amp;quot;Traitement de la video&amp;quot; (French)]&amp;lt;small&amp;gt;&amp;lt;br&amp;gt;(2.7MB pdf) - 2004&lt;br /&gt;
*:Video data processing&lt;br /&gt;
*:''Matthieu Tobie''&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Media:PaparazziBenchmark11_paper.pdf|&amp;quot;PapaBench : A Free Real-Time Benchmark&amp;quot;]]&amp;lt;small&amp;gt;&amp;lt;br&amp;gt;(365K pdf)&lt;br /&gt;
*:This paper presents PapaBench, a free real-time benchmark and compares it with the existing benchmark suites. It is designed to be valuable for experimental works in WCET computation and may be also useful for scheduling analysis. This benchmark is based on the Paparazzi project that represents a real-time application, developed to be embedded on different Unmanned Aerial Vehicles (UAV).&lt;br /&gt;
*:''Fadia Nemer, Hugues Cassé, Pascal Sainrat, Jean-Paul Bahsoun and Marianne De Michiel''&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Media:infrared_calib_paper.zip|&amp;quot;Calibration d’un récepteur Infra-Rouge pour Micro Drone&amp;quot; (French)]]&amp;lt;small&amp;gt;&amp;lt;br&amp;gt;(800K zip) - January 2004&lt;br /&gt;
*:Hybridization of GPS and infrared data&lt;br /&gt;
*:En fonctionnement normal le filtre de Kalman propose un meilleur fonctionnement que la régression linéaire.&lt;br /&gt;
*:Dans le cas de conditions changeantes, sans panne, le filtre de Kalman s’adapte mieux que la régression linéaire. &lt;br /&gt;
*:Par contre dans le cas d’une panne, le filtre de Kalman ne l’a détecte pas et provoque une dérive du drone.&lt;br /&gt;
*:Hybridization of GPS and infrared data&lt;br /&gt;
*:''Sébastien BINAS, Sylvain DEPLANCHE, Aurélien HADIDA, (IENAC01L)''&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Manuals ==&lt;br /&gt;
* [[Media:users_manual.pdf|&amp;quot;User's Manual&amp;quot;]]&amp;lt;small&amp;gt;&amp;lt;br&amp;gt;(1.5M, pdf) - February 2008&lt;br /&gt;
*:This document is a quick guide to use the Paparazzi system. It is divided into two parts. In the first part an extensive procedure, which can also be used as a check-list, is given to prepare a flight, to operate the UAV and to analyze the results. The procedure is described for a given flight plan and a pre-programmed and tuned aircraft. The second part gives a description of the different components and tools of the system.&lt;br /&gt;
*:''ENAC''&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Other Sites of Interest ==&lt;br /&gt;
[[Image:2g Autonomous Glider.jpg|thumb|300px|Complete autonomous glider weighs only 2 grams including LiPo battery, I2C optic flow sensor for optical obstacle avoidance, stereo microphones for locating the source of audio signals, 200V power supply, and piezoelectric actuators.]]&lt;br /&gt;
* [http://robotics.eecs.berkeley.edu/~ronf/PAPERS/iecon05.pdf &amp;quot;Design, Fabrication and Initial Results of a 2g Autonomous Glider&amp;quot;]&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(900K, PDF) - July 2007&lt;br /&gt;
*:Utilizing the core technologies of emerging microrobotic structures, the rapid design and prototyping of a passive micro air vehicle with the final goal of locating an audio source while avoiding hazardous obstacles is presented. The airfoil and control surfaces are optimized empirically to maximize lift and maneuverability while minimizing drag.  Bimorph piezoelectric bending cantilevers actuate the control surfaces.  Since such actuators require high voltages, an efficient boost circuit is presented along with appropriate high voltage electronics.  To locate audio sources, a pair of acoustic sensors is designed and prototyped using a phase detection algorithm while a custom optic flow sensor is developed to avoid obstacles and give estimates of object distances and velocities.  Finally, each subsystem is demonstrated and the complete glider is integrated to demonstrate initial open loop control performance.&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>SergeLeHuitouze</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Lustre&amp;diff=2523</id>
		<title>Lustre</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Lustre&amp;diff=2523"/>
		<updated>2007-07-18T12:00:33Z</updated>

		<summary type="html">&lt;p&gt;SergeLeHuitouze: /* Lustre : a synchronous declarative programming language */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Lustre implementation of critical code'''&amp;lt;br&amp;gt;&lt;br /&gt;
As robustness is the priority of the Paparazzi project, a hardware/software fail-safe is implemented on AVR and Classix autopilots by processing all critical code on a dedicated microcontroller, independent from the navigation, communication, and payload processor. As the role of this processor is absolutely critical, source code must be certified.  Typical industry practice is to certify only ''methods'' of programming, not ''source code''. In the Paparazzi project, we make this code safer by writing clear specifications in reference to which we can prove safety properties. The operational code in C is then automatically generated from these specifications.&lt;br /&gt;
&lt;br /&gt;
== Lustre : a synchronous declarative programming language ==&lt;br /&gt;
Lustre is a data-flow programming language, which means that all precedent values of the variables are known. Lustre is also a synchronous language, meaning  all instructions are considered to be executed simultaneously. &lt;br /&gt;
&lt;br /&gt;
Lustre functions are referred to as nodes, operating on input streams to compute the output streams. A Lustre program has a cyclic behavior - on the n&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt; execution cycle of the program, all involved streams take their n&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt; value. A node defines one or several output parameters as functions of one or more input parameters. &lt;br /&gt;
&lt;br /&gt;
Operators used to write statements in a node operate on the entire stream. This means that if you write X=Y, then the n&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt; value of X will always be equal to the n&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt; value of Y, for all n. &lt;br /&gt;
&lt;br /&gt;
Read more at [http://www-verimag.imag.fr/SYNCHRONE/index.php?page=lang-design Verimag.imag.fr]&lt;br /&gt;
&lt;br /&gt;
== Lustre modelling of all variables ==&lt;br /&gt;
The natural way to write proven code is to write Lustre statements between state variables. The problem is that Lustre proposed types are limited to bool, int and float. To produce code for a µC, we had to specify custom types used on the µC, such as uint16_t (unsigned 16-bits integer) or uint8_t (unsigned 8-bits integer).&amp;lt;br&amp;gt;&lt;br /&gt;
As defining custom types is not possible in Lustre, we use the natural Lustre types, specifying how our types can be represented with natural types. We then redefine common operators to preserve modularity. For instance, uint16_t is a modular integer type. This method allows simulations of the code with Lustre tools (luciole for example). &lt;br /&gt;
&lt;br /&gt;
Lustre generated code can not be used on the µC. Our definitions preserve modularity on state variables, but the internal variables managed by Lustre generated code are not aware of µC limitations. Consequently, generated code cannot be executed on a real µC. For instance, some tests are always true or false due to range limitations of data types, and ignored by the code generator.&lt;br /&gt;
&lt;br /&gt;
== Lustre specifications with C types ==&lt;br /&gt;
From a practical standpoint, we prefer to use only C-defined types. Lustre can manage this type, but every operator must be defined as Lustre can not create operators for unknown types. This method gives good results with generated code that is ready to execute on the µC but there is a problem. As Lustre is not aware of C types, the Lustre tools cannot prove anything in this form and any potential benefits are lost. &lt;br /&gt;
&lt;br /&gt;
== Separating the proof code from the execution code ==&lt;br /&gt;
The method we use combines the best attributes of the above mentioned strategies. We write the operational code using C-defined types, which gives us ready-to-use code, and the proof is done only with Lustre code. The only remaining work is to ensure that the C-code and the Lustre-code of the operators are equivalent, a trivial task since operators are very simple functions/nodes (usually defined by macros in C).&lt;br /&gt;
&lt;br /&gt;
== How to use the Lustre-generated code ==&lt;br /&gt;
Currently only PPM decoding is implemented using the Lustre code. This Lustre description of PPM decoding provides safety by defining precisely what type of PPM frame is to be accepted and what should be rejected. Hardware testing has proven that Lustre implemented PPM decoding outperforms hand written C implemented decoding as we occasionally see valid PPM frames lost with hand written code, but not with Lustre code. &lt;br /&gt;
&lt;br /&gt;
Lustre generated code is not yet entirely generic. It works only with the CockpitMM R/C transmitter used during our hardware tests. Efforts are underway to make it selectable from the configuration file.  If you use the CockpitMM transmitter you can use Lustre code - simply go to the lustre directory in Paparazzi tree, compile, and upload the program to the µC. &lt;br /&gt;
&lt;br /&gt;
 cd $PAPARAZZI_HOME/sw/airborne/fly_by_wire/lustre_version&lt;br /&gt;
 make clean_all&lt;br /&gt;
 make load&lt;/div&gt;</summary>
		<author><name>SergeLeHuitouze</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Tuning&amp;diff=2521</id>
		<title>Tuning</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Tuning&amp;diff=2521"/>
		<updated>2007-07-18T08:21:15Z</updated>

		<summary type="html">&lt;p&gt;SergeLeHuitouze: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides some tips and guidelines for tuning a new aircraft.  Be sure to familiarize yourself with the theory of [[Theory_of_Operation#PID|PID Controllers]] before you begin.&lt;br /&gt;
&lt;br /&gt;
== Sensors ==&lt;br /&gt;
&lt;br /&gt;
=== Neutrals ===&lt;br /&gt;
* Put the aircraft in a styrofoam container or completely seal the IR sensors with styrofoam or similar blocks and get a reading of the neutrals for each axis.  Also take the gyro neutrals at this time.  Update your airframe file, flash the AP and re-check the neutrals.&lt;br /&gt;
&lt;br /&gt;
=== Directions ===&lt;br /&gt;
* Reverse any servos and make sure no mechanical binding occurs at the limits of travel in Manual mode.&lt;br /&gt;
* Take the plane outside and engage AUTO1.  Bank and pitch the plane and verify that the controls respond in the correct direction.  Note that your body will have a tremendous impact on the measured angles.&lt;br /&gt;
* Verify that AUTO1 stick movements respond in the correct direction - important!&lt;br /&gt;
* Move the plane rapidly to ensure the gyro response resists motion - increase the gain if needed for better visualization.&lt;br /&gt;
&lt;br /&gt;
== R/C, Modem, and GPS ==&lt;br /&gt;
Make sure the GPS signal is strong (outdoors) - you should have a 3-D fix in less than 1 minute and at least some satellite signals above 40dB. The plane should not drift on the map by more than 10 meters.  Perform a range test of R/C and modem signals.&lt;br /&gt;
&lt;br /&gt;
== Trim ==&lt;br /&gt;
&amp;lt;b&amp;gt;Important: You must never keep any trim, mixers, or rates in your R/C transmitter.&amp;lt;/b&amp;gt;  R/C trim can be applied in flight but must be corrected and removed on the ground before attempting autonomous flight.  Exponential can be useful and will not adversely affect AUTO1 flight but if &amp;quot;low rates&amp;quot; are needed they should be programmed on the same transmitter switch with AUTO1 so that you always have full travel in AUTO1.&lt;br /&gt;
* Fly the plane at what you feel is a suitable &amp;quot;cruise&amp;quot; throttle setting and set the trims.  Note that setting in the GCS and try to return to that exact setting in subsequent tests.  Enter that throttle setting in your airframe file.&lt;br /&gt;
* Check maximum pitch and roll response and adjust the mixer parameters or mechanical linkages after landing.&lt;br /&gt;
* Land and adjust the linkages.  If necessary, the PPM values can be read from the GCS and servo neutrals adjusted electronically, but manual adjustment will produce far better results.&lt;br /&gt;
* Fly again to verify trim and control response.  If satisfactory, check for any significant throttle-dependent roll.  Again, this is best to correct mechanically but can be addressed with the ''AILERON_OF_THROTTLE'' mixer in the autopilot.  Check also for any odd behavior at full throttle.&lt;br /&gt;
* Make sure that GPS and modem data is reliable during these test flights. Note particularly any tendency for the aircraft to appear to fly sideways on the map - this is an indication of weak GPS signals.&lt;br /&gt;
&lt;br /&gt;
== Auto 1 ==&lt;br /&gt;
* Engage Auto1 and ''immediately'' make sure you can turn both left and right!&lt;br /&gt;
* Fly at your &amp;quot;cruise&amp;quot; throttle and adjust the ''ROLL_PGAIN'' until the plane doesn't quite oscillate&lt;br /&gt;
* Adjust the IR roll neutral as needed&lt;br /&gt;
* Verify adequate pitch response and adjust PITCH_PGAIN as needed&lt;br /&gt;
* Experiment with different throttle settings and tune P and D gains as needed&lt;br /&gt;
&lt;br /&gt;
== Auto 2 ==&lt;br /&gt;
* Engage Auto2 and you're done!&lt;/div&gt;</summary>
		<author><name>SergeLeHuitouze</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Compiling&amp;diff=2520</id>
		<title>Compiling</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Compiling&amp;diff=2520"/>
		<updated>2007-07-18T08:10:45Z</updated>

		<summary type="html">&lt;p&gt;SergeLeHuitouze: /* Environment Variables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Flight plans, tuning and configuration settings are compiled into a single binary image and transferred to the microcontroler flash rom through USB.  Most tuning and flight plan parameters can be changed in-flight but after each power cycle, the autopilot reverts to the original settings.  Permanent changes must be made in the source files, compiled, and uploaded to the autopilot.&lt;br /&gt;
== Environment Variables ==&lt;br /&gt;
Before compiling you must have the Paparazzi source and home environment variables set correctly in your shell.  These variables can be automatically set in your shell by adding the following lines to your .bashrc file:&lt;br /&gt;
{{Box Code|/home/''your_username''/.bashrc|&lt;br /&gt;
 export PAPARAZZI_HOME&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;/home/''your_username''/paparazzi&lt;br /&gt;
 export PAPARAZZI_SRC&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;/home/''your_username''/paparazzi&lt;br /&gt;
}}&lt;br /&gt;
To manually set the env variables (i.e. when compiling a backup copy of your code in a different folder) execute the following command from the folder you wish to set as your active paparazzi folder:&lt;br /&gt;
 export PAPARAZZI_HOME=`pwd`;export PAPARAZZI_SRC=`pwd`&lt;br /&gt;
You may wish to verify that your variables are set correctly with the following command:&lt;br /&gt;
 env | grep PAPARAZZI&lt;br /&gt;
&lt;br /&gt;
== USB flashing ==&lt;br /&gt;
[[Image:Tiny_test_wiring.jpg|thumb|Example wiring for programming and telemetry]]&lt;br /&gt;
If the autopilot senses a connected USB cable during power-on, it will wait to receive a firmware image rather than booting normally.  The firmware can be compiled and flashed by several means, the most common being:&lt;br /&gt;
 make AIRCRAFT=''myplane'' clean_ac ap.upload&lt;br /&gt;
 (where ''myplane'' is the name of your airframe as defined in &amp;lt;tt&amp;gt;conf/conf.xml&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This command erases any compiled autopilot code from the PC, recompiles everything from scratch, and then sends it to the autopilot.  &lt;br /&gt;
Variations include:&lt;br /&gt;
* make AIRCRAFT=''myplane'' sim&lt;br /&gt;
*: Compiles your code for use in the simulator - note that &amp;quot;clean_ac&amp;quot; will remove this code, so the simulator code must be rebuilt each time a clean has been performed.&lt;br /&gt;
* make AIRCRAFT=''myplane'' fbw.upload&lt;br /&gt;
*: This is needed when configuring the separate &amp;quot;fly by wire&amp;quot; MCU on the [[Classix]] autopilot.&lt;br /&gt;
* make AIRCRAFT=''myplane'' ap&lt;br /&gt;
*: This will simply build the portions of autopilot code that have changed since the last compile without attempting to flash.  Note: this method may not detect certain changes (i.e. changes to the airframe makefile section or CVS updated code).&lt;br /&gt;
* make AIRCRAFT=''myplane'' ap.upload FLASH_MODE=IAP&lt;br /&gt;
*: Specifies USB flashing.  This should be specified at the top of the makefile section of your airframe file but can be overridden here.  Use FLASH_MODE=IAS for serial flashing.&lt;br /&gt;
* make AIRCRAFT=''myplane'' tunnel.upload&lt;br /&gt;
*: This will replace the normal autopilot code with a simple serial-to-serial tunnel that connects the GPS serial port directly to the modem serial port.  This is useful when testing/configuring the GPS with [[GPS#GPS_configuration_using_U-Center|U-Center]]&lt;br /&gt;
=== Installing the USB Bootloader ===&lt;br /&gt;
&lt;br /&gt;
The USB bootloader should only need to be installed once.  It is loaded through the serial interface UART0 (Serial1) by holding pin P0.14 low during power-up.  If you were supplied with a Tiny Autopilot it may have already had the USB bootloader installed, please check with your supplier.&lt;br /&gt;
&lt;br /&gt;
You will need to convert the PC's RS232 Serial with voltage levels of +/-13V to 3.3V (or 5V) TTL in order to communicate directly with the device.  This can be accomplished in multiple ways.  The easiest and most convenient method is to purchase or build a USB -&amp;gt; Serial 3.3V adapter similar to this one [http://www.ftdichip.com/Products/EvaluationKits/TTL-232R-3V3.htm TTL-232R-3V3]&lt;br /&gt;
Here's a few other examples:&lt;br /&gt;
[http://www.sparkfun.com/commerce/product_info.php?products_id=199]&lt;br /&gt;
[http://www.sparkfun.com/commerce/product_info.php?products_id=718]&lt;br /&gt;
[http://www.pololu.com/products/pololu/0391/]&lt;br /&gt;
[http://www.hvwtech.com/products_view.asp?CatID=166&amp;amp;SubCatID=183&amp;amp;SubSubCatID=0&amp;amp;ProductID=409]&lt;br /&gt;
Users are strongly urged to use FTDI usb-serial converters as they are well supported by default in the linux kernel and since the Paparazzi ground station software is configured to look for modems on FTDI ports by default, the converter can likely serve as a modem interface after it's use in programming.&lt;br /&gt;
&lt;br /&gt;
Make up a wiring harness similar to the following.  You may vary the details however this is a working solution:&lt;br /&gt;
&lt;br /&gt;
TINY RXD0 &amp;lt;-- PC SERIAL TX (5V or 3.3V)&amp;lt;br /&amp;gt;&lt;br /&gt;
TINY TXD0 --&amp;gt; PC SERIAL RX (5V or 3.3V)&amp;lt;br /&amp;gt;&lt;br /&gt;
TINY RESET --&amp;gt; ''optional'' wired to ground through a pushbutton so you can reset&amp;lt;br /&amp;gt;&lt;br /&gt;
TINY P0.14 (SERIAL1-5) --&amp;gt; attach to ground, or wire through a pushbutton to ground&amp;lt;br /&amp;gt;&lt;br /&gt;
TINY GND --&amp;gt; PC SERIAL ADAPTER GND&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once this wiring is ready you will be ready to send the USB Bootloader to the Tiny from the PC.&lt;br /&gt;
&lt;br /&gt;
To prepare the Tiny to accept programming over its serial port you must have pin P0.14 LOW for at least 3mS while it is powering up or resetting.  While it is still powered up it is ready to accept code over serial.  Proceed now to instructions to load it via software.&lt;br /&gt;
&lt;br /&gt;
'''In Linux'''&lt;br /&gt;
&lt;br /&gt;
From your paparazzi3 folder in linux, type:&lt;br /&gt;
&lt;br /&gt;
 make upload_bl PROC=GENERIC&lt;br /&gt;
&lt;br /&gt;
This will begin compiling your USB Bootloader and then attempt to transfer it to the Autopilot. This will also assume you are using a USB -&amp;gt; Serial adapter for the connection.  It uses /dev/ttyUSB0 by default. If your adapter is mapped to a different tty, you will need to modify the Makefile accordingly.&lt;br /&gt;
&lt;br /&gt;
'''In Windows'''&lt;br /&gt;
&lt;br /&gt;
If for some reason you need to program your Tiny's USB Bootloader in windows grab a copy of LPC2000 Flash Utility V2.2.3 or later.  You will then prepare the Tiny and boot it into the ISP bootloader as mentioned above but program it with this utility.  You will need to copy your compiled bl.hex file from Linux of course.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
As a rapidly evolving open-source project, on occasion your software may fail to compile after a [[Installation#CVS_Update|CVS Update]].  This is most likely due to a new or changed variable name that is now required in your airframe, flight plan, etc.  Since the user-configured files are not updated automatically you may need to view the most recently changed sample airframe or flight plan files to find the required changes.&amp;lt;br&amp;gt;&lt;br /&gt;
See the [[Software_Troubleshooting|Software Troubleshooting]] page for help with common compiliation errors.&lt;/div&gt;</summary>
		<author><name>SergeLeHuitouze</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Airframe_Configuration&amp;diff=2519</id>
		<title>Airframe Configuration</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Airframe_Configuration&amp;diff=2519"/>
		<updated>2007-07-18T08:08:56Z</updated>

		<summary type="html">&lt;p&gt;SergeLeHuitouze: /* Horizontal Control */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The airframe configuration file is located in &amp;lt;b&amp;gt;&amp;lt;tt&amp;gt;conf/airframes/&amp;lt;/tt&amp;gt;&amp;lt;/b&amp;gt; and contains all the hardware and software settings for a particular aircraft.  This is a hybrid file containing [http://en.wikipedia.org/wiki/Xml xml] in the first half with [http://en.wikipedia.org/wiki/Makefile C Makefile] code at the bottom.  All gains, trims, and behavior settings are in the top XML section and the hardware definitions such as processor type, modem protocol, servo driver, etc. are contained in the makefile.&lt;br /&gt;
&lt;br /&gt;
== Selecting the Airframe File ==&lt;br /&gt;
Each airframe file must be assigned a name, unique ID, flight plan, etc. in [[Conf.xml|&amp;lt;tt&amp;gt;conf/conf.xml&amp;lt;/tt&amp;gt;]] as follows:&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;conf&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
    name=&amp;quot;Twin1&amp;quot;&lt;br /&gt;
    ac_id=&amp;quot;1&amp;quot;&lt;br /&gt;
    airframe=&amp;quot;airframes/twinstar1.xml&amp;quot; &lt;br /&gt;
    radio=&amp;quot;radios/mc3030.xml&amp;quot; &lt;br /&gt;
    flight_plan=&amp;quot;flight_plans/mav05_cw.xml&amp;quot;&lt;br /&gt;
    telemetry=&amp;quot;telemetry/default.xml&amp;quot;&lt;br /&gt;
    gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
    name=&amp;quot;Plaster&amp;quot;&lt;br /&gt;
    ac_id=&amp;quot;2&amp;quot;&lt;br /&gt;
    airframe=&amp;quot;airframes/plaster1.xml&amp;quot; &lt;br /&gt;
    radio=&amp;quot;radios/cockpitMM.xml&amp;quot; &lt;br /&gt;
    telemetry=&amp;quot;telemetry/default.xml&amp;quot;&lt;br /&gt;
    flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  .&lt;br /&gt;
  .&lt;br /&gt;
  .&lt;br /&gt;
  &amp;lt;/conf&amp;gt;&lt;br /&gt;
Then, to compile and flash the airframe settings and associated flight plan to your autopilot, simply specify your airframe name in the flash command typed from the prompt:&lt;br /&gt;
 make AIRCRAFT=&amp;lt;b&amp;gt;Twin1&amp;lt;/b&amp;gt; ap.upload&lt;br /&gt;
More information can be found on the [[Conf.xml|conf.xml]] page&lt;br /&gt;
&lt;br /&gt;
== XML Parameters ==&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;b&amp;gt;&amp;lt;tt&amp;gt;commands&amp;lt;/tt&amp;gt;&amp;lt;/b&amp;gt; lists the servo commands you need to control the aircraft. In our example, we have only three:&lt;br /&gt;
 &amp;lt;tt&amp;gt;&lt;br /&gt;
 &amp;lt;commands&amp;gt;&lt;br /&gt;
  &amp;lt;axis name=&amp;quot;THROTTLE&amp;quot; failsafe_value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;axis name=&amp;quot;ROLL&amp;quot;     failsafe_value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;axis name=&amp;quot;PITCH&amp;quot;    failsafe_value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/commands&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
Each command is associated with a failsafe value which will be used if no controller is active (during initialization for example). The range of these values is [-9600:9600].&lt;br /&gt;
&lt;br /&gt;
=== Servos ===&lt;br /&gt;
&lt;br /&gt;
The above commands get translated to the &amp;lt;b&amp;gt;&amp;lt;tt&amp;gt;servos&amp;lt;/tt&amp;gt;&amp;lt;/b&amp;gt; here.  In this example we use two ailevons (surfaces used for both pitch and roll as on a flying wing) and a motor. These are listed in the &amp;lt;b&amp;gt;&amp;lt;tt&amp;gt;servos&amp;lt;/tt&amp;gt;&amp;lt;/b&amp;gt; section:&lt;br /&gt;
 &amp;lt;tt&amp;gt;&lt;br /&gt;
 &amp;lt;servos&amp;gt;&lt;br /&gt;
  &amp;lt;servo name=&amp;quot;THROTTLE&amp;quot;      no=&amp;quot;0&amp;quot; min=&amp;quot;1000&amp;quot; neutral=&amp;quot;1000&amp;quot; max=&amp;quot;2000&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;servo name=&amp;quot;AILEVON_LEFT&amp;quot;  no=&amp;quot;1&amp;quot; min=&amp;quot;2000&amp;quot; neutral=&amp;quot;1500&amp;quot; max=&amp;quot;1000&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;servo name=&amp;quot;AILEVON_RIGHT&amp;quot; no=&amp;quot;2&amp;quot; min=&amp;quot;1000&amp;quot; neutral=&amp;quot;1500&amp;quot; max=&amp;quot;2000&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/servos&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
where names are associated to the corresponding servo channel number on the autopilot and the neutral value, total range and direction are defined.  Min/max/neutral values are expressed in milliseconds and the direction of travel can be reversed by exchanging min with max (as in &amp;lt;tt&amp;gt;&amp;quot;AILEVON_LEFT&amp;quot;&amp;lt;/tt&amp;gt;, above).  The ''standard'' travel for a hobby servo is 1000ms - 2000ms with a 1500ms neutral.  Trim can be added by changing this neutral value, and absolute travel limits can be increased or reduced with the min/max values.  The &amp;lt;tt&amp;gt;&amp;quot;THROTTLE&amp;quot;&amp;lt;/tt&amp;gt; servo typically has the same value for the &amp;lt;b&amp;gt;&amp;lt;tt&amp;gt;neutral&amp;lt;/tt&amp;gt;&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;&amp;lt;tt&amp;gt;min&amp;lt;/tt&amp;gt;&amp;lt;/b&amp;gt;.  Note the following tips:&lt;br /&gt;
* Reverse the servo direction by exchanging min/max&lt;br /&gt;
* Trim should always be adjusted mechanically if possible to avoid asymetrical travel&lt;br /&gt;
* Any reduction of the total travel range should be done mechanically to maintain precision&lt;br /&gt;
* Many servos will respond well to values slightly outside the normal 1000-2000ms range but experiment carefully as the servo may not operate reliably outside this range and may even suffer permanent damage.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;b&amp;gt;&amp;lt;tt&amp;gt;servos&amp;lt;/tt&amp;gt;&amp;lt;/b&amp;gt; are then linked to the commands in the &amp;lt;b&amp;gt;&amp;lt;tt&amp;gt;command_laws&amp;lt;/tt&amp;gt;&amp;lt;/b&amp;gt; section:&lt;br /&gt;
 &amp;lt;tt&amp;gt;&lt;br /&gt;
 &amp;lt;command_laws&amp;gt;&lt;br /&gt;
  &amp;lt;let var=&amp;quot;aileron&amp;quot;         value=&amp;quot;@ROLL  * 0.3&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;let var=&amp;quot;elevator&amp;quot;        value=&amp;quot;@PITCH * 0.7&amp;quot;/&amp;gt;  &lt;br /&gt;
  &amp;lt;set servo=&amp;quot;THROTTLE&amp;quot;      value=&amp;quot;@THROTTLE&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;set servo=&amp;quot;AILEVON_LEFT&amp;quot;  value=&amp;quot;$elevator + $aileron&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;set servo=&amp;quot;AILEVON_RIGHT&amp;quot; value=&amp;quot;$elevator - $aileron&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/command_laws&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
[[Image:airframe_sign_conventions.jpg|thumb|Sign conventions for flight dynamics]]&lt;br /&gt;
where the third line is the simplest: the throttle servo value equals throttle command value. The other lines define and control the pitch/roll mixing.  Ailevon values are computed with a combination of two commands, '''ROLL''' and '''PITCH'''. This ''mixer'' is defined with two intermediate variables '''aileron''' and '''elevator''' introduced with the &amp;lt;b&amp;gt;&amp;lt;tt&amp;gt;let&amp;lt;/tt&amp;gt;&amp;lt;/b&amp;gt; element.  The '''@''' symbol is used to reference a command value in the &amp;lt;b&amp;gt;&amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt;&amp;lt;/b&amp;gt; attribute of the &amp;lt;b&amp;gt;&amp;lt;tt&amp;gt;set&amp;lt;/tt&amp;gt;&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;&amp;lt;tt&amp;gt;let&amp;lt;/tt&amp;gt;&amp;lt;/b&amp;gt; elements.  In the above example, the servos are limited to +/- 70% of their full travel for pitch and 30% for roll, only in combination can the servos reach 100% deflection.  Note that these numbers ''should add up 100% or more, never less''.  For example, you may want 100% travel available for pitch - this means if a roll is commanded along with maximum pitch only one servo will respond to the roll command as the other has already reached its mechanical limit.  If you find after tuning that these numbers add to less than 100% consider reducing the surface travel mechanically.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that the signs used in the description follow the standard convention. &lt;br /&gt;
&lt;br /&gt;
=== Auto1 ===&lt;br /&gt;
The next section, named &amp;lt;b&amp;gt;&amp;lt;tt&amp;gt;AUTO1&amp;lt;/tt&amp;gt;&amp;lt;/b&amp;gt;, gives the maximum roll and pitch (in radians) allowed for the augmented stability mode.&lt;br /&gt;
 &amp;lt;tt&amp;gt;&lt;br /&gt;
 &amp;lt;section name=&amp;quot;AUTO1&amp;quot; prefix=&amp;quot;AUTO1_&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;MAX_ROLL&amp;quot; value=&amp;quot;RadOfDeg(35)&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;MAX_PITCH&amp;quot; value=&amp;quot;RadOfDeg(35)&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/section&amp;gt;&lt;br /&gt;
 &amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ADC === &lt;br /&gt;
In the &amp;quot;adc&amp;quot; section, you will find the correspondance between arguments and their assigned pins on the autopilot board.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Infrared === &lt;br /&gt;
The &amp;lt;b&amp;gt;&amp;lt;tt&amp;gt;INFRARED&amp;lt;/tt&amp;gt;&amp;lt;/b&amp;gt; section describes the configuration of the infrared sensors. It is necessary to calibrate them in order to obtain the neutral values. As the X-Y sensor pairs are usually installed with a 45 degree rotation, combining roll and pitch we have a formula to separate roll from pitch and adjust the output accordingly:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;&lt;br /&gt;
 &amp;lt;linear name=&amp;quot;RollOfIrs&amp;quot; arity=&amp;quot;2&amp;quot; coeff1=&amp;quot;-0.7&amp;quot; coeff2=&amp;quot;0.7&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;linear name=&amp;quot;PitchOfIrs&amp;quot; arity=&amp;quot;2&amp;quot; coeff1=&amp;quot;-0.7&amp;quot; coeff2=&amp;quot;-0.7&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pitch and roll directions are defined here with the &amp;quot;-&amp;quot; sign on some of the 4 &amp;lt;b&amp;gt;&amp;lt;tt&amp;gt;coeff&amp;lt;/tt&amp;gt;&amp;lt;/b&amp;gt; values.  Some trial and error is usually needed to get the directions correct.&lt;br /&gt;
&lt;br /&gt;
Note that the roll angle is positive when the right wing low while pitch is positive when the nose is up.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gyro === &lt;br /&gt;
Defines the type of gyro installed, each axis neutral, and any required temperature compensation. If the gyro has two axes, the pitch neutral is defined as well. Many gyros output their internal temperature and require a temperature-dependent linear correction be made to the neutral value.  No correction is done for the temperature in this example.(&amp;lt;b&amp;gt;&amp;lt;tt&amp;gt;ADC_TEMP_SLOPE=0&amp;lt;/tt&amp;gt;&amp;lt;/b&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;&lt;br /&gt;
 &amp;lt;section name=&amp;quot;GYRO&amp;quot; prefix=&amp;quot;GYRO_&amp;quot;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;ADC_ROLL_COEFF&amp;quot; value=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;ROLL_NEUTRAL&amp;quot; value=&amp;quot;500&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;ADC_TEMP_NEUTRAL&amp;quot; value=&amp;quot;476&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;ADC_TEMP_SLOPE&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/section&amp;gt;&lt;br /&gt;
 &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bat === &lt;br /&gt;
This section for the monitoring the main power battery. The allowed voltage range for this aircraft is 9-12.5V. &amp;lt;b&amp;gt;&amp;lt;tt&amp;gt;MILLIAMP_PER_PERCENT&amp;lt;/tt&amp;gt;&amp;lt;/b&amp;gt; represents the consumption (in mA) for one percent of THROTTLE and for one time unit. The &amp;lt;b&amp;gt;&amp;lt;tt&amp;gt;LOW_BATTERY&amp;lt;/tt&amp;gt;&amp;lt;/b&amp;gt; value defines the voltage at which the autopilot will lock the throttle at 0% in autonomous mode.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;&lt;br /&gt;
 &amp;lt;section name=&amp;quot;BAT&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;MILLIAMP_PER_PERCENT value &amp;quot;0.86&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;VOLTAGE_ADC_A&amp;quot; value=&amp;quot;0.0177531&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;VOLTAGE_ADC_B&amp;quot; value=&amp;quot;0.173626&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;VoltageOfAdc(adc)&amp;quot; value =&amp;quot;(VOLTAGE_ADC_A * adc + VOLTAGE_ADC_B)&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;LOW_BATTERY&amp;quot; value&amp;quot;9.3&amp;quot; unit=&amp;quot;V&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/section&amp;gt;&lt;br /&gt;
 &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Horizontal Control ===&lt;br /&gt;
 &amp;lt;tt&amp;gt;&lt;br /&gt;
 &amp;lt;section name=&amp;quot;HORIZONTAL CONTROL&amp;quot; prefix=&amp;quot;H_CTL_&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;define name=&amp;quot;COURSE_PGAIN&amp;quot; value=&amp;quot;-0.4&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;define name=&amp;quot;ROLL_MAX_SETPOINT&amp;quot; value=&amp;quot;0.35&amp;quot; unit=&amp;quot;radians&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;define name=&amp;quot;ROLL_PGAIN&amp;quot; value=&amp;quot;5000.&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;define name=&amp;quot;AILERON_OF_THROTTLE&amp;quot; value=&amp;quot;0.0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;define name=&amp;quot;PITCH_PGAIN&amp;quot; value=&amp;quot;-8000.&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;define name=&amp;quot;ELEVATOR_OF_ROLL&amp;quot; value=&amp;quot;1250&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/section&amp;gt;&lt;br /&gt;
 &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The outer loop acts on the route. It will produce a roll command from a course setpoint and a course measurement. The COURSE_PGAIN parameter is the factor multiplied by the course error (in radian) to get a roll setpoint (in radian). So if the plane is expected to go north (course=0) and is actually flying to 57 degrees (course=1 radian, i.e. ENE), with a gain of '''-0.4''', a roll of -0.4 (23 degrees) will be set for the lower control loop.&lt;br /&gt;
&lt;br /&gt;
=== Misc ===&lt;br /&gt;
 &amp;lt;tt&amp;gt;&lt;br /&gt;
 &amp;lt;section name=&amp;quot;MISC&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NOMINAL_AIRSPEED&amp;quot; value =&amp;quot;12.&amp;quot; unit=&amp;quot;m/s&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;CARROT&amp;quot; value=&amp;quot;5.&amp;quot; unit=&amp;quot;s&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;KILL_MODE_DISTANCE&amp;quot; value=&amp;quot;(1.5*MAX_DIST_FROM_HOME)&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;CONTROL_RATE&amp;quot; value&amp;quot;60&amp;quot; unit=&amp;quot;Hz&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/section&amp;gt;&lt;br /&gt;
 &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;NOMINAL_AIRSPEED&amp;quot; is mainly used in the simulator.&lt;br /&gt;
* &amp;quot;CARROT&amp;quot; gives the distance (in seconds, so ground speed is taken into account) between the carrot and the aircraft.&lt;br /&gt;
* &amp;quot;KILL_MODE_DISTANCE&amp;quot; is the threshold distance to switch the autopilot into KILL mode (defined descent with no throttle)&lt;br /&gt;
* &amp;quot;CONTROL_RATE&amp;quot; is the rate of the low level control loops in Hertz (60 or 20).&lt;br /&gt;
&lt;br /&gt;
== Hardware definitions - Makefile ==&lt;br /&gt;
&lt;br /&gt;
The airframe file must include the description of the controller board and it's low-level settings.  This is done in one &amp;lt;b&amp;gt;&amp;lt;tt&amp;gt;makefile&amp;lt;/tt&amp;gt;&amp;lt;/b&amp;gt; section starting with the autopilot model and flashing mode:&lt;br /&gt;
{{Box Code|conf/airframes/myplane.xml|&lt;br /&gt;
 &amp;lt;makefile&amp;gt;&lt;br /&gt;
  include $(PAPARAZZI_SRC)/conf/autopilot/tiny.makefile&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;FLASH_MODE=IAP&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  .&lt;br /&gt;
  .&lt;br /&gt;
  .&lt;br /&gt;
 &amp;lt;/makefile&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Below this are the definintions and configuration of the peripherals and interfaces.&lt;br /&gt;
&lt;br /&gt;
=== R/C ===&lt;br /&gt;
&lt;br /&gt;
{{Box Code|conf/airframes/myplane.xml|&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;ap.CFLAGS += -DRADIO_CONTROL&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;ap.EXTRA_SRCS += radio_control.c $(SRC_ARCH)/ppm_hw.c&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;ap.CFLAGS += -DACTUATORS=\&amp;quot;servos_direct_hw.h\&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;ap.EXTRA_SRCS += $(SRC_ARCH)/servos_direct_hw.c&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Modem ===&lt;br /&gt;
The modem protocol and baud rate must be set in both the airframe file and ground station.  Any standard baud rate can be used, with 9600 being adequate and 57600 recommended for most users to allow high speed telemetry for more detailed flight data analysis.  The actual data rate is determined by the number of messages being sent and the period of each message as defined in &amp;lt;tt&amp;gt;conf/telemetry/default.xml&amp;lt;/tt&amp;gt;.  Those wishing to experiment with &amp;quot;alternative&amp;quot; modems can reduce the number and period of each telemetry message to fit within most any bandwidth constraint.&lt;br /&gt;
&lt;br /&gt;
Paparazzi supports the following modem protocols:&lt;br /&gt;
* Standard transparent serial (pprz) - this is compatible with all modems and can be used to connect the autopilot directly to a PC for testing without a modem.&lt;br /&gt;
* Maxstream API protocol (xbee) - compatible with all Maxstream modems including the 9XTend and Zigbee.  This protocol enables hardware addressing, allowing multiple aircraft to be managed from a single ground modem.&lt;br /&gt;
* Coronis Wavecard - necessary for operation with the unusual Coronis Wavecard modem.&lt;br /&gt;
Select the baud/protocol in the airframe file by commenting/uncommenting the appropriate section as follows:&lt;br /&gt;
==== Configuring The Serial Protocol ====&lt;br /&gt;
Users are advised to start with the standard serial protocol before attempting to setup an addressed API link.  The serial protocol works with virtually any modem as well as direct cable connections.  The baud rates of the airborne modem, autopilot, ground modem, and PC must be configured correctly.  The PC and autopilot serial ports do not need to be set to the same baud rate, i.e. when running multiple aircraft from a single ground modem, the ground modem may require a higher baud rate than any of the airborne modems in order to stream the data from multiple simultaneous sources.&lt;br /&gt;
&lt;br /&gt;
{{Box Code|conf/airframes/myplane.xml|&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;section name=&amp;quot;DATALINK&amp;quot; prefix=&amp;quot;DATALINK_&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;define name=&amp;quot;DEVICE_TYPE&amp;quot; value=&amp;quot;PPRZ&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;define name=&amp;quot;DEVICE_ADDRESS&amp;quot; value=&amp;quot;....&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/section&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
The above example tells the autopilot to send and recieve data in standard serial form.&lt;br /&gt;
&lt;br /&gt;
{{Box Code|conf/airframes/myplane.xml - makefile section at the bottom|&lt;br /&gt;
 # Serial modem &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;ap.CFLAGS += -DDOWNLINK -DUSE_UART0 -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_FBW_DEVICE=Uart0 -DDOWNLINK_AP_DEVICE=Uart0 -DPPRZ_UART=Uart0 -DDATALINK=PPRZ -DUART0_BAUD=B57600&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;ap.srcs += downlink.c $(SRC_ARCH)/uart_hw.c datalink.c pprz_transport.c&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
The above example configures the autopilot serial port (Uart0) to 57,600 baud and calls the serial transport protocol (pprz_transport.c).  Use the &amp;quot;#&amp;quot; symbol to comment lines in this section of the airframe file. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Note:&lt;br /&gt;
* The autopilot and modem serial port baud rates must match at all times, check your modem documentation to find the default baud rate and configure a different rate as needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure that the ground station is using the same protocol and an equal or higher baud rate:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;session name=&amp;quot;USB&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;program name=&amp;quot;link&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/paparazzi/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;!-- &amp;lt;arg flag=&amp;quot;-transport&amp;quot; constant=&amp;quot;xbee&amp;quot;/&amp;gt; Comment this line for standard serial protocol --&amp;gt;&lt;br /&gt;
     &amp;lt;arg flag=&amp;quot;-uplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/program&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/session&amp;gt;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Configuring The Maxstream API Protocol ====&lt;br /&gt;
The optional API protocol enables hardware addressing so that multiple aircraft can be managed from a single ground modem, or multiple aircraft and multiple ground stations can work simultaneously without interference from one another.  API mode is enabled by sending an escape sequence (+++) followed by AT commands, this can be done automatically at each boot or can be permanently configured with the &amp;quot;ATWR&amp;quot; command for greater reliability.&lt;br /&gt;
&lt;br /&gt;
{{Box Code|conf/airframes/myplane.xml|&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;section name=&amp;quot;MISC&amp;quot;&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;define name=&amp;quot;XBEE_INIT&amp;quot; value=&amp;quot;\&amp;quot;ATPL2\rATRN1\rATTT80\r\ATBD6\rATWR\r\&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;define name=&amp;quot;NO_XBEE_API_INIT&amp;quot; value=&amp;quot;FALSE&amp;quot;/&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
 &amp;lt;/section&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
The above example will program the Maxstream to API mode, 100mW power (ATPL2), 57600 baud (ATBD6), and permanently store the changes (ATWR).  After flashing allow 30 seconds for the modem to store the changes, then disable the init string &amp;lt;tt&amp;gt;&amp;lt;define name=&amp;quot;NO_XBEE_API_INIT&amp;quot; value=&amp;quot;&amp;lt;b&amp;gt;TRUE&amp;lt;/b&amp;gt;&amp;quot;/&amp;gt;&amp;lt;/tt&amp;gt;, update the baud rate as needed, and re-flash the autopilot.  The modem and autopilot serial port baud rates must match eachother at all times.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Notes: &lt;br /&gt;
* Maxtream modems are factory configured for 9600 baud, in order to change baud rates, first configure the autopilot serial port to match the modem (DUART0_BAUD=B9600), boot the system so that the baud rate change command is sent to the modem (ATBD6) and permanently saved (ATWR), allow 30 seconds for the modem configuration to complete, then reprogram the autopilot with the new baud rate (DUART0_BAUD=B57600) and disabled modem configuration string &amp;lt;tt&amp;gt;&amp;lt;define name=&amp;quot;NO_XBEE_API_INIT&amp;quot; value=&amp;quot;&amp;lt;b&amp;gt;TRUE&amp;lt;/b&amp;gt;&amp;quot;/&amp;gt; &amp;lt;/tt&amp;gt;.&lt;br /&gt;
* The ac_id defined in &amp;lt;tt&amp;gt;conf/conf.xml&amp;lt;/tt&amp;gt; is permanently programmed into the modem so this procedure would need to be re-run if the modem is moved to another plane.&lt;br /&gt;
* For temporary boot-time API configuration remove any baud rate changes, remove &amp;lt;tt&amp;gt;ATWR\r&amp;lt;/tt&amp;gt; from the end of the string and keep &amp;quot;NO_XBEE_API_INIT&amp;quot; value=&amp;quot;FALSE&amp;quot;.&lt;br /&gt;
* Upgrade your Maxstream firmware to the latest version before attempting API mode operation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Box Code|conf/airframes/myplane.xml - makefile section at the bottom|&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Maxstream API protocol&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;ap.CFLAGS += -DDOWNLINK -DUSE_UART0 -DDOWNLINK_TRANSPORT=XBeeTransport -DDOWNLINK_FBW_DEVICE=Uart0 -DDOWNLINK_AP_DEVICE=Uart0 -DXBEE_UART=Uart0 -DDATALINK=XBEE -DUART0_BAUD=B57600&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;ap.srcs += downlink.c $(SRC_ARCH)/uart_hw.c datalink.c xbee.c&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}} &lt;br /&gt;
The above example configures the autopilot serial port (Uart0) to 57,600 baud and calls the Maxstream transport protocol (xbee.c).  Use the &amp;quot;#&amp;quot; symbol to comment lines in this section of the airframe file.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure that the ground station is using the same protocol and an equal or higher baud rate:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;session name=&amp;quot;USB&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;program name=&amp;quot;link&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/paparazzi/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;arg flag=&amp;quot;-transport&amp;quot; constant=&amp;quot;xbee&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;arg flag=&amp;quot;-uplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/program&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/session&amp;gt;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== GPS ===&lt;br /&gt;
The serial port settings must match that of the GPS and are configured here along with the necessary files to interpret the u-blox UBX binary protocol:&lt;br /&gt;
&lt;br /&gt;
{{Box Code|conf/airframes/myplane.xml|&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;ap.CFLAGS += -DGPS -DUBX -DUSE_UART1 -DGPS_LINK=Uart1 -DUART1_BAUD=B38400&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;ap.srcs += gps_ubx.c gps.c&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
'''Note:'''&lt;br /&gt;
* u-blox GPS modules are factory configured for 9600 baud, 38,400 baud is recommended along with the other required changes.  The GPS can be accessed directly thru the [[Compiling#USB_flashing|UART Tunnel]] and [[GPS#GPS_configuration_using_U-Center Configured with|u-center]]&lt;br /&gt;
&lt;br /&gt;
=== Sensors ===&lt;br /&gt;
&lt;br /&gt;
=== Control loops ===&lt;br /&gt;
&lt;br /&gt;
The control loops can be divided in two largely independent groups : the vertical ones and the horizontal ones (files sw/airborne/fw_h_ctl.c and sw/airborne/fw_v_ctl.c ). Those loops can be commanded at different levels by either the R/C transmitter or the autonomous navigation routine.&lt;br /&gt;
&lt;br /&gt;
First the horizontal loop:&lt;br /&gt;
{{Box Code|conf/airframes/myplane.xml|&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;ap.srcs += fw_h_ctl.c&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Radio Control ==&lt;br /&gt;
The Paparazzi autpilot interfaces directly with the PWM signal from any standard hobby R/C receiver.  Signal decoding configuration settings for this are stored in the [[Radio_Control|Radio Control]] file.&lt;/div&gt;</summary>
		<author><name>SergeLeHuitouze</name></author>
	</entry>
</feed>