<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4302830906892087859</id><updated>2012-05-17T14:54:39.913-07:00</updated><category term='AFSK Modem'/><category term='Paparazzi'/><category term='Quadcopter'/><category term='OSD'/><title type='text'>Vassilis' Hobbies and Projects</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>24</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-563289053877238841</id><published>2011-10-02T10:03:00.000-07:00</published><updated>2011-10-02T10:03:31.224-07:00</updated><title type='text'>Powered Paragliding Over Honey Brook, PA</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Since last year I have been learning to fly a Powered Paraglider (PPG) and I received my PPG2 certification.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/qKxW7aYTF10/0.jpg"&gt;&lt;param name="movie" value="http://www.youtube.com/v/qKxW7aYTF10?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/qKxW7aYTF10?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span id="goog_1935879386"&gt;&lt;/span&gt;&lt;span id="goog_1935879387"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-563289053877238841?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/563289053877238841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2011/10/powered-paragliding-over-honey-brook-pa.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/563289053877238841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/563289053877238841'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2011/10/powered-paragliding-over-honey-brook-pa.html' title='Powered Paragliding Over Honey Brook, PA'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-965283502907447139</id><published>2010-03-04T20:36:00.000-08:00</published><updated>2011-09-24T20:47:23.415-07:00</updated><title type='text'>Working on the OpenPilot project</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;In the last few months I have been working on a new open source autopilot project called &lt;a href="http://www.openpilot.org/"&gt;OpenPilot&lt;/a&gt;. The project is still fairly new but with a lot of potential, I am developing the flight software architecture and framework. Check it out!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" height="90" src="http://3.bp.blogspot.com/-wJ-U-nb9kkY/Tn6je8loXhI/AAAAAAAAAPc/6oHZaUu8Kq0/s400/openpilot_logo.png" width="400" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-965283502907447139?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/965283502907447139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2010/03/working-on-openpilot-project.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/965283502907447139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/965283502907447139'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2010/03/working-on-openpilot-project.html' title='Working on the OpenPilot project'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-wJ-U-nb9kkY/Tn6je8loXhI/AAAAAAAAAPc/6oHZaUu8Kq0/s72-c/openpilot_logo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-2772318806372473736</id><published>2010-01-04T14:03:00.000-08:00</published><updated>2011-09-25T18:30:17.258-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Quadcopter'/><title type='text'>IMU potting in gel</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I got quite a few questions on what get I used to encapsulate the IMU. The gel is the &lt;a href="http://www.amazon.com/Dow-Corning-DIELECT-SYLGARD-DIELECTRIC/dp/B001E99I7C"&gt;Dow Corning Sylgard 527&lt;/a&gt;, the consistency of the gel is controlled by the proportion of part A vs. part B. I used 70% part B and 30% part A. After you mix the two parts you need to heat the mix (and the board in it) in order to cure. I put it in an oven at about 70 degC for 2 hours. It will also cure at room temperature but it may take several days.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-4HOZtRdDjvc/Tn_VoI0sjHI/AAAAAAAAAPg/iOJVhMyrqcg/s1600/IMG_1455.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-4HOZtRdDjvc/Tn_VoI0sjHI/AAAAAAAAAPg/iOJVhMyrqcg/s320/IMG_1455.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-2772318806372473736?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/2772318806372473736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2010/01/imu-potting-in-gel.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/2772318806372473736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/2772318806372473736'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2010/01/imu-potting-in-gel.html' title='IMU potting in gel'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-4HOZtRdDjvc/Tn_VoI0sjHI/AAAAAAAAAPg/iOJVhMyrqcg/s72-c/IMG_1455.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-4307971526200881961</id><published>2009-12-30T13:01:00.000-08:00</published><updated>2011-09-25T18:31:22.123-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Quadcopter'/><title type='text'>Quad-rotor demo with CHR-6D IMU and DCM algorithm</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;After implementing the &lt;a href="http://vrhome.net/vassilis/2009/12/direction-cosine-matrix-implementation-for-the-chr-6d-imu/"&gt;DCM algorithm&lt;/a&gt; on the CHR-6D IMU it was time to flight test it on my &lt;a href="http://vrhome.net/vassilis/category/quadcopter/"&gt;quad-copter&lt;/a&gt;. I used the same &lt;a href="http://vrhome.net/vassilis/2008/12/imu-board-assembled/"&gt;controller&lt;/a&gt; I developed last year but instead of using the onboard 5DOF IMU, I connected a serial port to the CHR-6D IMU. The filters and DCM algorithm was executed on the STM32 of the CHR-6D, the direction matrix was sent to the control board through the serial port. Only a few minor modifications were made on the control software to use the angles from the direction matrix, the rest remained the same.&lt;br /&gt;&lt;br /&gt;I spent a few hours tuning the PID gains, filter cut-off frequencies and DCM parameters and the results look very promising. Occasionally, small corrections are still needed to keep the quad-rotor in one spot but that was expected. With a GPS and altimeter it should be possible to control the position and altitude fairly accurately.&lt;br /&gt;&lt;br /&gt;The main reasons for the improved performance are:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Encapsulating the IMU sensors in gel to reduce vibration&lt;/li&gt;&lt;br /&gt;&lt;li&gt;High speed sampling and extensive filtering of raw sensor data&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Direction Cosine Matrix using a 6DOF IMU (3 accels and 3 gyros) - although a Kalman filter should also have worked&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The ESCs are still controlled using PWM, stability should improve by using a I2C ESCs and a higher update rate (&amp;gt;100Hz). Stability is not as good as in some more high-end setups but I can comfortably fly the quad-rotor outdoors, in fact it is easier than flying a heli. I still need to test the effect of large acceleration on the stabilization e.g. fast ascent, descent or turns (can be easily corrected by calculating and subtracting the centripetal acceleration).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://2.gvt0.com/vi/V-tYxojOP5I/0.jpg"&gt;&lt;param name="movie" value="http://www.youtube.com/v/V-tYxojOP5I&amp;fs=1&amp;source=uds" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/V-tYxojOP5I&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-4307971526200881961?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/4307971526200881961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2009/12/quad-rotor-demo-with-chr-6d-imu-and-dcm.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/4307971526200881961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/4307971526200881961'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2009/12/quad-rotor-demo-with-chr-6d-imu-and-dcm.html' title='Quad-rotor demo with CHR-6D IMU and DCM algorithm'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-6434776817508457351</id><published>2009-12-20T07:48:00.000-08:00</published><updated>2011-09-25T18:34:00.391-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Quadcopter'/><title type='text'>Direction Cosine Matrix implementation for the CHR-6d IMU</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I recently got the CHR-6d IMU from &lt;a href="http://www.chrobotics.com/CHR6d.php"&gt;CH Robotics&lt;/a&gt;, I needed a 6DOF (3 gyros and 3 accelerometers) for my quad-rotor. In my last attempt I used a 5DOF IMU and did all processing in the control board. Although I was able to get it to &lt;a href="http://vrhome.net/vassilis/2009/02/first-indoor-flight/"&gt;hover&lt;/a&gt; fairly well with only minor manual corrections I had two main limitations. Processing power and sensitivity to vibration from the frame. The CHR-6d has a powerful ARM Cortex processor with plenty of processing power available for filtering and additional signal processing. I was able to drastically reduce the effect of vibration by complete potting the IMU in dielectric gel.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-8DyqRKB4y4k/Tn_WSviM03I/AAAAAAAAAPk/la9jz8xJYwE/s1600/chr-6d_home.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-8DyqRKB4y4k/Tn_WSviM03I/AAAAAAAAAPk/la9jz8xJYwE/s1600/chr-6d_home.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The board comes with open source software the implements the digital filters and serial communication. I needed to extend this functionality to calculate the actual Euler angles (or equivalent) that would be used to stabilize the quad-rotor. I have tried a Kalman filter in my &lt;a href="http://vrhome.net/vassilis/category/quadcopter/"&gt;last attempt &lt;/a&gt;so I wanted to try out something different. I found an excellent &lt;a href="http://gentlenav.googlecode.com/files/DCMDraft2.pdf"&gt;paper&lt;/a&gt; from William Premerlani that very clearly explains the theory behind the Direction Cosine Matrix. I prototyped the implementation in Matlab and tested it using data from the actual IMU, I also did a few vibration tests by mounting it on my quad-rotor and powering up the motors while holding it fixed on the ground. With the dielectric gel I was able to reduce the effect of vibration to about 1-2 degrees of error when the motors are running at 65% throttle (typical hover is 55%). The ultimate test will of course be a flight test.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-DuoAXsVfGZM/Tn_WXm2vK0I/AAAAAAAAAPo/t8F9NGmKy7Q/s1600/dcm.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-DuoAXsVfGZM/Tn_WXm2vK0I/AAAAAAAAAPo/t8F9NGmKy7Q/s320/dcm.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The following video is a ground test of the complete setup. The implementation is not yet completed, I have a 3-axis&amp;nbsp; magnetometer break-out board for the HMC5843 from &lt;a href="http://www.sparkfun.com/commerce/product_info.php?products_id=9371"&gt;SparkFun&lt;/a&gt;. It will be connected through the I2C bus to the CHR-6d IMU and will be used to correct the drift of the yaw gyro.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://1.gvt0.com/vi/iWI9GiUFAYk/0.jpg"&gt;&lt;param name="movie" value="http://www.youtube.com/v/iWI9GiUFAYk&amp;fs=1&amp;source=uds" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/iWI9GiUFAYk&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;You can download the latest version of the DCM implementation and Matlab scripts from &lt;a href="http://vassilis.vrhome.net/p/direction-cosine-matrix.html"&gt;the DCM page&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-6434776817508457351?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/6434776817508457351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2009/12/direction-cosine-matrix-implementation.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/6434776817508457351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/6434776817508457351'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2009/12/direction-cosine-matrix-implementation.html' title='Direction Cosine Matrix implementation for the CHR-6d IMU'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-8DyqRKB4y4k/Tn_WSviM03I/AAAAAAAAAPk/la9jz8xJYwE/s72-c/chr-6d_home.jpg' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-7280949004850699223</id><published>2009-10-22T15:02:00.000-07:00</published><updated>2011-09-25T18:36:43.317-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Paparazzi'/><title type='text'>DIY Drones T3 contest - Round 2</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;This month's &lt;a href="http://www.diydrones.com/profiles/blogs/t3-contest-round-2update"&gt;DIY T3 contest&lt;/a&gt; was definitively more challenging. I was only able to have one attempt due to the weather and a few other projects that kept me busy. I got first place on this round as well!&lt;br /&gt;&lt;br /&gt;This time the challenge was that on each waypoint the altitude would change. I was able to hit the target altitude within 5m at each waypoint, it was a clean run. This attempt was without using the airspeed and altimeter sensors (not implemented at the time).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-BIIJQF_rfo4/Tn_W3UwLQiI/AAAAAAAAAPs/_W6iDHZOrBo/s1600/Screenshot1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="232" src="http://1.bp.blogspot.com/-BIIJQF_rfo4/Tn_W3UwLQiI/AAAAAAAAAPs/_W6iDHZOrBo/s400/Screenshot1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-y_eKgMibGLA/Tn_W9-US_II/AAAAAAAAAPw/YvVhhYrkraE/s1600/Screenshot-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="232" src="http://3.bp.blogspot.com/-y_eKgMibGLA/Tn_W9-US_II/AAAAAAAAAPw/YvVhhYrkraE/s400/Screenshot-2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://3.gvt0.com/vi/ljVNekj44uM/0.jpg"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ljVNekj44uM&amp;fs=1&amp;source=uds" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/ljVNekj44uM&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-7280949004850699223?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/7280949004850699223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2009/10/diy-drones-t3-contest-round-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/7280949004850699223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/7280949004850699223'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2009/10/diy-drones-t3-contest-round-2.html' title='DIY Drones T3 contest - Round 2'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-BIIJQF_rfo4/Tn_W3UwLQiI/AAAAAAAAAPs/_W6iDHZOrBo/s72-c/Screenshot1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-7829741752163869497</id><published>2009-10-04T15:16:00.000-07:00</published><updated>2011-09-25T18:39:16.574-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Paparazzi'/><title type='text'>Flight testing of new Paparazzi altitude and airspeed control loops</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Today it was the perfect day to test the new airspeed and altitude control loops. The wind was very gusty and with an average wind speed of 10 m/s, normally I would avoided flying my EasyStar in a day like that but what a better way to test the sensors and control loops! I had a few flights the day before in more mild conditions and had a chance to tune the altimeter and airspeed gains (see &lt;a href="http://vrhome.net/vassilis/2009/10/update-on-airspeed-integration-in-the-paparazzi-code/"&gt;previous post&lt;/a&gt; for implementation details). The GPS only vertical control loops do a very good job when the wind is not too gusty, usually in days like today I would have to modify my airframe configuration to force the throttle to higher values than usual. With the airspeed sensor this is no longer needed, it will keep the airspeed in changing wind or attitude (e.g. climbing).&lt;br /&gt;&lt;br /&gt;The following plots is from today's flight. I was flying an oval against and with the wind, wind speed was about 10 m/s. Altitude hold was done with the barometric altitude sensor.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-0PtecngA4zE/Tn_XbOB8fpI/AAAAAAAAAP0/VC2qUEcQ92s/s1600/Screenshot1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="233" src="http://2.bp.blogspot.com/-0PtecngA4zE/Tn_XbOB8fpI/AAAAAAAAAP0/VC2qUEcQ92s/s400/Screenshot1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For comparison the GPS altittude is also shown. Aggressive climb mode is still not enabled. The EagleTree altimeter is read at 20Hz and the existing Kalman filter is used to calculate the rate of climb. What I found interesting was that the pitch and altitude gains had to be increased considerably when the barometric altitude was used instead of the GPS. I am not sure why, it might have something to do with the update rate or the slightly modified Kalman filter parameters. After some tuning, I am fairly satisfied with the altitude hold (+/- 2m from setpoint for most of the flight), especially considering the effects of the high wind speeds.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-efEA2SW7Ogg/Tn_XmZHeZSI/AAAAAAAAAP8/8J8GLLxqT_Q/s1600/09_10_04__17_50_27_alt2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="183" src="http://4.bp.blogspot.com/-efEA2SW7Ogg/Tn_XmZHeZSI/AAAAAAAAAP8/8J8GLLxqT_Q/s400/09_10_04__17_50_27_alt2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The airspeed hold was the main reason I started this project and the benefits are obvious in this example. The throttle adjusts to keep the airspeed close to the setpoint. This time the airspeed deviation from the setpoint was higher than the last flight, the gains were the same so I believe the winds gusts might be to blame. I will try to see if I can improve the gains in the next flight.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-J8YXbJO5e9A/Tn_XtVIBl-I/AAAAAAAAAQA/OU59CuM_ato/s1600/09_10_04__17_50_27_as1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="183" src="http://1.bp.blogspot.com/-J8YXbJO5e9A/Tn_XtVIBl-I/AAAAAAAAAQA/OU59CuM_ato/s400/09_10_04__17_50_27_as1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The new airspeed and altitude control loops will come in handy in the next &lt;a href="http://diydrones.com/profiles/blogs/the-next-t3-round-that-would"&gt;DIY Drones T3 contest&lt;/a&gt;! Since endurance and not speed is the next objective, optimized throttle control will be essential.&lt;br /&gt;&lt;br /&gt;I have a total of about 10 flights with the modified code and the EagleTree sensors with no major problems. I will be submitting my changes to SVN in the next few days. I still need to look into the following (hopefully in the next few weeks):&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Test EagleTree sensors in 3rd party mode&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Revert to GPS measurements if any of the sensors fail&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-7829741752163869497?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/7829741752163869497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2009/10/flight-testing-of-new-paparazzi.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/7829741752163869497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/7829741752163869497'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2009/10/flight-testing-of-new-paparazzi.html' title='Flight testing of new Paparazzi altitude and airspeed control loops'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-0PtecngA4zE/Tn_XbOB8fpI/AAAAAAAAAP0/VC2qUEcQ92s/s72-c/Screenshot1.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-3435344669203226467</id><published>2009-10-02T16:00:00.000-07:00</published><updated>2011-09-25T18:41:25.156-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Paparazzi'/><title type='text'>Update on airspeed integration in the Paparazzi code</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I was able to do a test flight with the airspeed sensor and the modified airspeed and altitude control loops. Some further tuning is required, but I am fairly happy with the results I got so far. First a brief description of the modifications made.&lt;br /&gt;&lt;br /&gt;Besides the drivers for the EagleTree airspeed sensor, I had to modify the vertical control loops to make use of the airspeed. Since the actual airspeed is now known, I decided to try separating the altitude and airspeed loops as shown in the diagram below. Basically the throttle and pitch are now controlled independently and are not coupled in the control loops (of course one affects the other but the control loops are independent). The airspeed is controlled by two cascaded PI loops, the first is used to regulate the ground speed and the second the airspeed. This is needed to ensure that if the ground speed drops below a certain value the airspeed will be increased to compensate (in order to maintain a valid GPS heading).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Fi_7cPZA_dc/Tn_X81SjnDI/AAAAAAAAAQE/HJdqMREQ91M/s1600/Airspeed.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="307" src="http://2.bp.blogspot.com/-Fi_7cPZA_dc/Tn_X81SjnDI/AAAAAAAAAQE/HJdqMREQ91M/s640/Airspeed.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I did some basic testing on the simulator (using airspeed = ground speed) and it worked well enough to fly test and tune. The following two plots are from an actual test flight after spending some time setting the loop gains (the real-time tuning through the GCS is a time saver!). The plane was flying circles at a constant altitude (except in the end). The wind was about 5 m/s, judging from the ground speed variations. In the middle there is an example of what happens when the ground speed falls below the setpoint. Finally the altitude setpoint was changed to verify that the airspeed will be maintained while climbing.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-phqaBMDQIvw/Tn_YF6fj9-I/AAAAAAAAAQI/st2CWTwAHkQ/s1600/PlotAS.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="185" src="http://4.bp.blogspot.com/-phqaBMDQIvw/Tn_YF6fj9-I/AAAAAAAAAQI/st2CWTwAHkQ/s400/PlotAS.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The altitude gains were the easiest to tune. Altitude is maintained fairly decently, at the end the altitude setpoint was changed (aggressive climb mode was disabled). This is still using the GPS altitude, barometric altitude has been implemented but not tested yet (Kalman parameters may need some tuning)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-_AorRi0NNZw/Tn_YONnGW0I/AAAAAAAAAQM/xOicPNSY7k8/s1600/09_10_01__18_19_21_alt.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="183" src="http://4.bp.blogspot.com/-_AorRi0NNZw/Tn_YONnGW0I/AAAAAAAAAQM/xOicPNSY7k8/s400/09_10_01__18_19_21_alt.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Considering this is the first flight test I am fairly happy with the results. I would like to see if I can get the airspeed to hold closer to the setpoint, the reading is inherently noisy so either some additional filtering or further tuning of the gains might help. As soon as everything is tested I will submit to SVN. Remaining items that need testing:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Aggressive climb mode&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Altitude control using barometric sensor&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Test airspeed and barometric sensors in &lt;a href="http://www.eagletreesystems.com/support/manuals/microsensor-i2c.pdf"&gt;3rd party mode&lt;/a&gt; (in the default mode the sensors will output raw values where in the 3rd party mode they will output converted values)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-3435344669203226467?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/3435344669203226467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2009/10/update-on-airspeed-integration-in.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/3435344669203226467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/3435344669203226467'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2009/10/update-on-airspeed-integration-in.html' title='Update on airspeed integration in the Paparazzi code'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-Fi_7cPZA_dc/Tn_X81SjnDI/AAAAAAAAAQE/HJdqMREQ91M/s72-c/Airspeed.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-3542440097748639064</id><published>2009-09-07T13:18:00.000-07:00</published><updated>2011-09-24T20:27:17.125-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Paparazzi'/><title type='text'>Paparazzi source files for the EagleTree altitude and airspeed sensors</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I was able to do a quick test with both sensors connected. The barometric altitude together with the GPS altitude is shown in the plot below.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://vrhome.net/vassilis/wp-content/uploads/2009/09/altdemo1.png"&gt;&lt;img alt="altdemo1" class="aligncenter size-medium wp-image-204" height="211" src="http://vrhome.net/vassilis/wp-content/uploads/2009/09/altdemo1-300x211.png" title="altdemo1" width="300" /&gt;&lt;/a&gt;There are some discrepancies at the lower altitudes that I will need to work on a bit more. The coefficients for converting raw values from the sensors to the actual altitude and airspeed are calculated experimentally so some tuning may be required.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://vassilis.vrhome.net/p/paparazzi.html"&gt;source code was also released&lt;/a&gt;. This is code I am using to test the sensors and does nothing more than sending the altitude and airspeed data to the GCS. The next step will be to modify the airborne code to make use of the airspeed (for example maintain constant airspeed by adjusting the throttle).&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-3542440097748639064?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/3542440097748639064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2009/09/paparazzi-source-files-for-eagletree.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/3542440097748639064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/3542440097748639064'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2009/09/paparazzi-source-files-for-eagletree.html' title='Paparazzi source files for the EagleTree altitude and airspeed sensors'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-5671804954744780229</id><published>2009-09-06T01:54:00.000-07:00</published><updated>2011-09-25T18:43:36.070-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Paparazzi'/><title type='text'>Connecting the EagleTree airspeed module to Paparazzi</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I had a successful flight with the &lt;a href="http://www.eagletreesystems.com/Support/manuals/airspeed-v3.pdf"&gt;EagleTree airspeed module&lt;/a&gt; connected to my TWOG. I did not have to do any hardware modifications, the sensor has an I2C interface that I connected directly to the TWOG I2C port. I was able to figure out the slave address and decode the raw output of the sensor. The results are quite good, the module is low cost and comes with a very good pitot tube (Prandtl style, pitot-static tube) that includes static and dynamic ports. For now I am simply sending the airspeed through the telemetry, the next step would be to modify the autopilot code to regulate the throttle in order to keep the airspeed constant (and a minimum ground speed). I am also working on interfacing with the &lt;a href="http://www.eagletreesystems.com/Support/manuals/altimeter-v3.pdf"&gt;EagleTree altimeter sensor&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://vrhome.net/vassilis/wp-content/uploads/2009/09/air-micro-v3-pencil.jpg"&gt;&lt;img alt="air-micro-v3-pencil" class="aligncenter size-full wp-image-189" height="203" src="http://vrhome.net/vassilis/wp-content/uploads/2009/09/air-micro-v3-pencil.jpg" title="air-micro-v3-pencil" width="282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Following is the data from my last flight, there was no wind and I tried to keep the pitch close to zero for most of the flight in order to be able to compare ground and air speed.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://vrhome.net/vassilis/wp-content/uploads/2009/09/airspeeddemo1.png"&gt;&lt;img alt="airspeeddemo1" class="aligncenter size-medium wp-image-190" height="165" src="http://vrhome.net/vassilis/wp-content/uploads/2009/09/airspeeddemo1-300x165.png" title="airspeeddemo1" width="300" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I will release the source code as soon as I have both airspeed and altimeter tested.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-5671804954744780229?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/5671804954744780229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2009/09/connecting-eagletree-airspeed-module-to.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/5671804954744780229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/5671804954744780229'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2009/09/connecting-eagletree-airspeed-module-to.html' title='Connecting the EagleTree airspeed module to Paparazzi'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-4635193627009338916</id><published>2009-09-04T13:29:00.000-07:00</published><updated>2011-09-25T18:43:18.254-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Paparazzi'/><title type='text'>DIY Drones T3 competition (August)</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;My Paparazzi / EasyStar entry won first place in the first round of the &lt;a href="http://diydrones.com/profiles/blogs/announcing-the-official-diy"&gt;DIY drones T3 competition&lt;/a&gt;. Very fun competition and the timing was great, right after I finished tuning my EasyStar with Paparazzi. I did damage two LiPo packs running at full throttle but the airframe and autopilot performed great! The best part for me was getting to learn the Paparazzi flight plan editor, extremely powerful and flexible. Total time to complete the course was 49.5 seconds, a lot of very good entries with most autopilots represented. This was a great initiative of Chris Anderson and Gary Mortimer from DIY drones, the plan is to have a contest once a month. In fact the &lt;a href="http://diydrones.com/profiles/blogs/t3-contest-round-2"&gt;September competition&lt;/a&gt; is already ongoing. A video and a few screenshots follow.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://2.gvt0.com/vi/krLsbkEUjJI/0.jpg"&gt;&lt;param name="movie" value="http://www.youtube.com/v/krLsbkEUjJI&amp;fs=1&amp;source=uds" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/krLsbkEUjJI&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-IlW22RgS_WI/Tn_Ye2OCNAI/AAAAAAAAAQQ/RHXIY3DEKrg/s1600/T3_Vassilis_Entry3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="233" src="http://2.bp.blogspot.com/-IlW22RgS_WI/Tn_Ye2OCNAI/AAAAAAAAAQQ/RHXIY3DEKrg/s400/T3_Vassilis_Entry3.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-DwDDREtBqs8/Tn_YlXBq8OI/AAAAAAAAAQU/l01tRen-_Tk/s1600/IMG_0858.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://3.bp.blogspot.com/-DwDDREtBqs8/Tn_YlXBq8OI/AAAAAAAAAQU/l01tRen-_Tk/s400/IMG_0858.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-4635193627009338916?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/4635193627009338916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2009/09/diy-drones-t3-competition-august.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/4635193627009338916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/4635193627009338916'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2009/09/diy-drones-t3-competition-august.html' title='DIY Drones T3 competition (August)'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-IlW22RgS_WI/Tn_Ye2OCNAI/AAAAAAAAAQQ/RHXIY3DEKrg/s72-c/T3_Vassilis_Entry3.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-5275991995784394052</id><published>2009-08-04T04:48:00.000-07:00</published><updated>2011-09-24T18:57:36.055-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Paparazzi'/><title type='text'>EasyStar with Paparazzi autopilot, first AUTO2 flight</title><content type='html'>Success! I was at last able to fly my EasyStar with the &lt;a href="http://paparazzi.enac.fr/wiki/Main_Page"&gt;Paparazzi&lt;/a&gt; open source autopilot. A few days ago I made the first flight in MANUAL and AUTO1 mode to get everything tested and tuned. Today I tried for the first time AUTO2 mode and worked beautifully! Some tuning is obviously required, especially for the roll response but it worked after only a few test flights. I will make a separate post detailing my setup, wiring (very important) and configuration files.&lt;br/&gt;&lt;br/&gt;Following is a picture of my EasyStar, I had to move components around to minimize interference from the various receivers/transmitter. I currently have the following equipment:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;EasyStar airframe with added ailerons&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Paparazzi TWOG autopilot (from &lt;a href="http://ppzuav.com/osc/catalog/"&gt;PPZ UAV&lt;/a&gt;)&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;GPS receiver&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;IR, horizontal and vertical&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;PPM encoder (worked great and with excellent support from Chris)&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Xbee Pro 2.4GHz modem&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;KX191 camera&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;900MHz, 500mW video transmitter&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Pan/tilt video pod&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Spektrum AR9000 receiver with a remote receiver (total of three receivers)&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;p style="text-align: center;"&gt;&lt;a href="http://vrhome.net/vassilis/wp-content/uploads/2009/08/img_0849.jpg"&gt;&lt;img class="aligncenter size-medium wp-image-165" title="EasyStar2 " src="http://vrhome.net/vassilis/wp-content/uploads/2009/08/img_0849-300x225.jpg" alt="EasyStar2 " width="300" height="225" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: center;"&gt;&lt;a href="http://vrhome.net/vassilis/wp-content/uploads/2009/08/img_0851.jpg"&gt;&lt;img class="aligncenter size-medium wp-image-168" title="img_0851" src="http://vrhome.net/vassilis/wp-content/uploads/2009/08/img_0851-300x225.jpg" alt="img_0851" width="300" height="225" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;&lt;a href="http://vrhome.net/vassilis/wp-content/uploads/2009/08/img_0855.jpg"&gt;&lt;img class="aligncenter size-medium wp-image-169" title="img_0855" src="http://vrhome.net/vassilis/wp-content/uploads/2009/08/img_0855-300x225.jpg" alt="img_0855" width="300" height="225" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;The following two screenshots are from the Paparazzi ground station, two flight plans were tested an oval and a figure eight. Both worked very well considering that I have not spent too much time on tuning. Altitude was alse held within about 5 meters of the target.&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;&lt;a href="http://vrhome.net/vassilis/wp-content/uploads/2009/08/screenshot-gcs-oval.png"&gt;&lt;img class="aligncenter size-medium wp-image-172" title="screenshot-gcs-oval" src="http://vrhome.net/vassilis/wp-content/uploads/2009/08/screenshot-gcs-oval-300x153.png" alt="screenshot-gcs-oval" width="300" height="153" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;&lt;a href="http://vrhome.net/vassilis/wp-content/uploads/2009/08/screenshot-gcs-eight.png"&gt;&lt;img class="aligncenter size-medium wp-image-171" title="screenshot-gcs-eight" src="http://vrhome.net/vassilis/wp-content/uploads/2009/08/screenshot-gcs-eight-300x153.png" alt="screenshot-gcs-eight" width="300" height="153" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;Finally a video from the flight follows.&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;httpvh://www.youtube.com/watch?v=jD1Llbc0fkw&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;I am very impressed with the Paparazzi autopilot so far, it is open source, it has the best ground station software and a large and helpful community, what else can I ask for.&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: center;"&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: center;"&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-5275991995784394052?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/5275991995784394052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2009/08/easystar-with-paparazzi-autopilot-first.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/5275991995784394052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/5275991995784394052'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2009/08/easystar-with-paparazzi-autopilot-first.html' title='EasyStar with Paparazzi autopilot, first AUTO2 flight'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-1280929547964700237</id><published>2009-07-10T15:44:00.000-07:00</published><updated>2011-09-24T20:26:34.810-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AFSK Modem'/><category scheme='http://www.blogger.com/atom/ns#' term='OSD'/><title type='text'>OSD and Audio Modem Design Files</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Due to multiple requests, I decided to put together what I have and release it as is. As you can see from the video below it works! However there is still work to be done, including cleaning up the design a bit.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://vassilis.vrhome.net/p/osd-and-audio-modem.html"&gt;OSD and Audio Modem Design Files&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-1280929547964700237?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/1280929547964700237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2009/07/osd-and-audio-modem-design-files.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/1280929547964700237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/1280929547964700237'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2009/07/osd-and-audio-modem-design-files.html' title='OSD and Audio Modem Design Files'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-182407115416635682</id><published>2009-07-10T15:32:00.000-07:00</published><updated>2011-09-24T18:57:36.028-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSD'/><title type='text'>OSD Flight Demo</title><content type='html'>Following is a demo of the OSD in flight. The data are received from the AttoPilot telemetry port. The AFSK audio telemetry is not yet enabled. Still a few things to improve but it is getting there.&lt;br/&gt;&lt;br/&gt;httpvh://www.youtube.com/watch?v=vDj_2fxuBtI&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-182407115416635682?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/182407115416635682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2009/07/osd-flight-demo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/182407115416635682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/182407115416635682'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2009/07/osd-flight-demo.html' title='OSD Flight Demo'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-6424864804029143740</id><published>2009-03-21T07:45:00.000-07:00</published><updated>2011-09-24T18:57:36.066-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AFSK Modem'/><category scheme='http://www.blogger.com/atom/ns#' term='OSD'/><title type='text'>OSD Demo</title><content type='html'>The OSD functionality is now operational. A short demo can be seen in the video below. The OSD and audio telemetry functionality is now combined on the same board. I am planning to use this board with the &lt;a href="http://www.attopilot.com/"&gt;AttoPilot&lt;/a&gt; autopilot. I will be now working on my new airframe (Telemaster Electro) and integration with the AttoPilot.&lt;br/&gt;&lt;br/&gt;httpvh://www.youtube.com/watch?v=V0n4GLd9Ll8&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-6424864804029143740?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/6424864804029143740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2009/03/osd-demo.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/6424864804029143740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/6424864804029143740'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2009/03/osd-demo.html' title='OSD Demo'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-4009883506158629890</id><published>2009-03-11T13:30:00.000-07:00</published><updated>2011-09-24T18:57:36.045-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AFSK Modem'/><title type='text'>Telemetry using audio channel of video transmitter</title><content type='html'>In all my FPV setups the audio channels remains unused, so I decided to use it for telemetry. The idea is quite simple and can be seen in the block diagram below.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://vrhome.net/vassilis/wp-content/uploads/2009/03/afsk-modem-block-diagram.png"&gt;&lt;img class="aligncenter size-medium wp-image-125" title="AFSK Modem Block Diagram" src="http://vrhome.net/vassilis/wp-content/uploads/2009/03/afsk-modem-block-diagram-290x300.png" alt="AFSK Modem Block Diagram" width="290" height="300" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The boxes in orange are the only custom made parts, the rest are existing components. A board with a Propeller chip is used to read the GPS data and send them through the transmitter audio channel. Audio generation with the Propeller can be achieved by using PWM on a single pin and then low pass filtering the output.&lt;br/&gt;&lt;br/&gt;The modulation technique used is also quite standard and implemented in only one COG. I decided to use the &lt;a href="http://en.wikipedia.org/wiki/Bell_202_modem"&gt;Bell 202&lt;/a&gt; AFSK modulation, on top of that the &lt;a href="http://en.wikipedia.org/wiki/AX.25"&gt;AX.25&lt;/a&gt; protocol is implemented. The GPS data are encapsulated into an unnumbered AX.25 frame and send at 1200 bps line speed. Error detection, framing and synchronization is already build in to the AX.25 protocol. This protocol is quite popular and used in HAM radio, the main advantage however is the availability of applications that can be used to receive AX.25 packets. The ground station basically requires no additional hardware, a PC with a sound card is all that is needed. The audio channel of the receiver is connected to the audio input of a PC and an application called &lt;a href="http://www.kc2rlm.info/soundcardpacket/"&gt;AGW Packet Engine&lt;/a&gt; is used to demodulate the data. A custom application was finally made to receive the payload (GPS) data and display them.&lt;br/&gt;&lt;br/&gt;The following video shows the whole system together. My next step is to use the same board to implement OSD functionality, the complete system will be used to display and downlink the telemetry output from an autopilot I will be soon be experimenting with.&lt;br/&gt;&lt;br/&gt;httpvh://www.youtube.com/watch?v=cvzWCTohb1E&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-4009883506158629890?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/4009883506158629890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2009/03/telemetry-using-audio-channel-of-video.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/4009883506158629890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/4009883506158629890'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2009/03/telemetry-using-audio-channel-of-video.html' title='Telemetry using audio channel of video transmitter'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-1983716009207683441</id><published>2009-02-20T12:52:00.000-08:00</published><updated>2011-09-24T20:26:01.075-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Quadcopter'/><title type='text'>IMU stabilizer design files</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Even though the IMU stabilized quadcopter is not yet complete, there have been enough requests for the source code to justify releasing it as it is. Please let me know if you try it out on your design and especially if you&amp;nbsp; make any improvements. As soon as the weather improves around here, I am planning to try the stabilizer on my EasyStar. I will likely have more improvements at this time.&lt;br /&gt;&lt;br /&gt;Download the source code from &lt;a href="http://vassilis.vrhome.net/p/imu-stabilizer.html"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-1983716009207683441?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/1983716009207683441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2009/02/imu-stabilizer-design-files.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/1983716009207683441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/1983716009207683441'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2009/02/imu-stabilizer-design-files.html' title='IMU stabilizer design files'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-9113288996327692612</id><published>2009-02-04T13:11:00.000-08:00</published><updated>2011-09-24T18:57:36.079-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Quadcopter'/><title type='text'>First indoor flight</title><content type='html'>httpvh://www.youtube.com/watch?v=TJIntyaSNqM&lt;br/&gt;&lt;br/&gt;I was at last able to have the first successful indoor flight! Hover seems to be very stable, with only a slight drift. Small corrections are still needed to keep the quad in one spot, however much less input was needed to hover compared to a helicopter (I am flying a TRex 450).&lt;br/&gt;&lt;br/&gt;Development took a bit more effort than I originally anticipated, due to the effect of vibration on the accelerometers. Having four (unbalanced) motors does produce quite a bit of vibration. I had to spend some time trying to understand the vibration and its effect on the accels. Given the constrains I have on the Propeller, I opted for a moving average filter on the accelerometer channels and I noticed a big improvement on the IMU response. The vibration would basically make the roll and pitch output of the Kalman filter drift by up to 15 degrees. With the filters I was able to keep any error below 3-4 degrees. Some more tuning on the filter length and Kalman parameters is possible, however I am quite satisfied with the performance of the IMU stabilizer so far. The results can be seen in the video above, during the flight some small corrections were needed but nothing major.&lt;br/&gt;&lt;br/&gt;I would not declare victory just yet, there is still some room for improvement and more testing is needed on outdoor flights (for example the effect of centripetal force during a turn). However I am quite satisfied with the performance of the controller, considering that low cost gyros and accelerometers are used.&lt;br/&gt;&lt;br/&gt;As soon as the weather improves I will also try it on my &lt;a href="http://www.youtube.com/watch?v=ah9y1kzwXbY"&gt;EasyStar&lt;/a&gt;. I will post the source code and design files on this blog soon, stay tuned!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-9113288996327692612?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/9113288996327692612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2009/02/first-indoor-flight.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/9113288996327692612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/9113288996327692612'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2009/02/first-indoor-flight.html' title='First indoor flight'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-4206594947030972265</id><published>2009-01-07T10:32:00.000-08:00</published><updated>2011-09-24T18:57:36.047-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Quadcopter'/><title type='text'>Update on IMU controller progress</title><content type='html'>httpvh://www.youtube.com/watch?v=IfVrz3Eljck&lt;br/&gt;&lt;br/&gt;The IMU development is coming along but a number of modifications had to be made to get it to work more reliably:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;The original design was updating both IMU and PID loops every 20 ms. I found that this was not fast enough to react to the fast attitude changes of the Quad. To achieve a faster update rate I had to re-write the IMU code and Kalman filters from scratch to allow them to run at a 5 ms update rate.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;The gyro conversion from the raw ADC sample to rad/sec (or deg/sec) was wrong by a factor of two resulting in an error in the short term estimate of the pitch and roll angles (the accels did eventually correct the angle). Fixing the conversion factor considerably improved the the angle response and allowed to tune the Kalman filter to rely on the gyro more than the accels. That results in a much faster IMU response to attitude changes. That can also be seen in the video below. Keep in mind that the artificial horizon is only updated every 100ms through the debug port so there is a noticeable lag in the UI.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;The PID loops now run at a 10 ms rate, the motor ESCs are updated at the same rate however I am not sure how often the input is actually read by the ESC. In any case an improvement was seen with the faster update rate.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Some more progress was also done on the Windows application that is used to record and display data from the IMU controller in real-time. The update rate is a bit slow (100 ms) due to the large number of channels that are transmitted through the debug port.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Preliminary flight tests show that a large amount of derivative control is needed in the PID loops to minimize the oscillation. The PID loops were also modified to use the un-biased rates that are calculated by the Kalman filters as the input to the derivative part of the PID loops (rate of change). That allows the loops to quickly react to changes in attitude before the Quad starts oscillating out of control.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;The GY401 Heli gyro works pretty well, in heading hold mode it keeps the Quad steady in the yaw axis. There is a slow drift but this is expected since there is no sensor to measure the absolute yaw. A magnetic compass could be added in the future for that purpose.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;More work is needed on the tuning of the PID loops and Kalman filters and this is the next step. Preliminary tests show that stable flight is possible with the current setup!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-4206594947030972265?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/4206594947030972265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2009/01/update-on-imu-controller-progress.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/4206594947030972265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/4206594947030972265'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2009/01/update-on-imu-controller-progress.html' title='Update on IMU controller progress'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-5435384618021105215</id><published>2009-01-06T16:38:00.000-08:00</published><updated>2011-09-24T18:57:36.059-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Quadcopter'/><title type='text'>Quadcopter assembly completed</title><content type='html'>The Quadcopter assembly has been finally completed. The design is based on the &lt;a href="http://www.rcgroups.com/forums/showthread.php?t=768115"&gt;Kquad&lt;/a&gt; design as described in the &lt;a href="http://www.rcgroups.com/forums/showthread.php?t=768115"&gt;RCGroups thread&lt;/a&gt;. There are many different frame designs mentioned in the thread but I went for &lt;a href="http://www.radrotary.com/Rev-7_Frame/Rev-7.htm"&gt;Rusty's Rev 7&lt;/a&gt; fiberglass frame. It is a bit heavier than the other options but it can take a lot of punishment (which will be needed while testing the IMU based controller!). Of course I am not using the controller that most use in the Kquad since the IMU I am developing will do all of the work. Assembly was very easy, wiring was a bit tricky but it worked out great. The video camera, transmitter, OSD and eLogger will be installed after IMU stabilized flight is achieved.&lt;br/&gt;&lt;p style="text-align: center;"&gt;&lt;img class="aligncenter size-full wp-image-70" title="img_1" src="http://vrhome.net/vassilis/wp-content/uploads/2009/01/img_1.jpg" alt="img_1" width="368" height="211" /&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: center;"&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;A number of lessons were learned during assembly and initial flight tests:&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Motor spacing plays a big role on stability and yaw control. I found that when the spacing was about 800mm (shaft to shaft) the yaw was nearly impossible to control, also the Quad was impossible to control because any slight change in the motor speed will result in a large change in attitude. The solution was to move the motors in as much as possible for a spacing of 460mm. With that spacing the yaw authority was much better, however yaw became more sensitive to motor alignment so it took a few tries to get the yaw to be stable.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;To my surprise, even at the reduced motor spacing it is nearly impossible to control the quad without active IMU stabilization. Especially when the yaw gyro is in heading-hold mode, the changes in motor speed tend to also affect pitch and roll. This is likely due to slight differences in the motor performance and position. My reflexes are not fast enough to manually compensate in time so I was not able to hover more than a foot from the ground.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;The tennis balls are too heavy but I will temporary use them until I find something better.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Total weight is 1082 grams (38.2 oz) including the tennis balls (200 grams) but not the battery.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;p style="text-align: center;"&gt;&lt;img class="aligncenter size-full wp-image-76" title="img_2" src="http://vrhome.net/vassilis/wp-content/uploads/2009/01/img_2.jpg" alt="img_2" width="384" height="256" /&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: left;"&gt;The next step is to work on the controller, tune the PID loops and Kalman filters for IMU stabilized flight. More details in the next post.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-5435384618021105215?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/5435384618021105215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2009/01/quadcopter-assembly-completed.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/5435384618021105215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/5435384618021105215'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2009/01/quadcopter-assembly-completed.html' title='Quadcopter assembly completed'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-202370133308387360</id><published>2008-12-06T07:44:00.000-08:00</published><updated>2011-09-24T18:57:36.033-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Quadcopter'/><title type='text'>Successful bench test</title><content type='html'>After some tweaking with the Kalman filter I was able to get a decent response. I also started working on a Windows application that I will use to display IMU data in real time, dump the recording memory and play back recordings. The &lt;a href="http://tom.pycke.be/mav/100/artificial-horizon"&gt;Artificial Horizon&lt;/a&gt; component from Tom's web site came in very handy for the Windows application!&lt;br/&gt;&lt;br/&gt;httpvh://www.youtube.com/watch?v=V8YldqttYjg&lt;br/&gt;&lt;br/&gt;As you can see from the video the response if pretty good, some more tuning of the Kalman filter parameters is required. I started working on a Matlab model that will help me test adjustments a bit faster (it is also easier to quantify any improvements).&lt;br/&gt;&lt;br/&gt;The Quadcopter parts are on order.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-202370133308387360?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/202370133308387360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2008/12/successful-bench-test.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/202370133308387360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/202370133308387360'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2008/12/successful-bench-test.html' title='Successful bench test'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-6860126985468958355</id><published>2008-12-05T16:37:00.000-08:00</published><updated>2011-09-24T18:57:36.071-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Quadcopter'/><title type='text'>IMU board assembled</title><content type='html'>The boards have been received and ready for testing. The software is also coming together, I was able to find quite a few objects in the &lt;a href="http://obex.parallax.com/"&gt;Propeller Object Exchange&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://vrhome.net/vassilis/wp-content/uploads/2008/12/img_1347.jpg"&gt;&lt;img class="aligncenter size-medium wp-image-53" title="img_1347" src="http://vrhome.net/vassilis/wp-content/uploads/2008/12/img_1347-300x205.jpg" alt="" width="300" height="205" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The following COGs are used (&lt;a href="http://www.parallax.com/Portals/0/Downloads/docs/prod/prop/PropellerBlockDiagram-RevAhoriz.pdf"&gt;COG&lt;/a&gt; is a the 32-bit processing unit in the Propeller chip, there are a total of eight available)&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;[1 COG] Servo output using the Servo32v3 object.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;[1 COG[ Servo input using the ServoInput object.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;[2 COG] Floating point math using the Float32Full object.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;[2 COG] Logger and high speed UART for real-time debugging. This is only used for testing, if more COGs are needed in the future it can be easily disabled.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;[1 COG] ADC driver using the MCP3208 object. I had to make quite a few modifications on this one to get it to average samples between IMU updates.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;[1 COG] The main loop with the IMU code, Kalman filters, PID loops etc. It executes every 20ms. For the &lt;a href="http://obex.parallax.com/objects/239/"&gt;Kalman&lt;/a&gt; filter I started with an implementation found in the object exchange but I had to make quite a few modifications to speed it up and get it to work using all three accelerometers.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;p style="text-align: center;"&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style="text-align: center;"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-6860126985468958355?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/6860126985468958355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2008/12/imu-board-assembled.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/6860126985468958355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/6860126985468958355'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2008/12/imu-board-assembled.html' title='IMU board assembled'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-5429243248397510030</id><published>2008-12-05T15:58:00.000-08:00</published><updated>2011-09-24T18:57:36.057-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Quadcopter'/><title type='text'>Schematics and layout completed</title><content type='html'>The schematics and layout of the boards has been completed. I decided to use &lt;a href="http://www.expresspcb.com/"&gt;ExpressPCB&lt;/a&gt;, they provide the schematics and layout software and their mini-board service is fairly cheap. The mini-board service is limited to a fixed size board of 3.8 x 2.5 inches, so I decided to fit both the IMU and OSD boards in the same fab. I decided to have two separate Propeller chips, one for the IMU and the motor/servo control and the other for the artificial horizon and OSD. They are connected using an I2C bus.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://vrhome.net/vassilis/wp-content/uploads/2008/12/imustab.jpg"&gt;&lt;img class="aligncenter size-medium wp-image-47" title="imustab" src="http://vrhome.net/vassilis/wp-content/uploads/2008/12/imustab-300x226.jpg" alt="" width="300" height="226" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The IMU board consists of the following:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Controller: &lt;a href="http://www.parallax.com/Store/Microcontrollers/PropellerTools/tabid/143/List/1/ProductID/448/Default.aspx?SortField=ProductName%2cProductName"&gt;Spin Stamp&lt;/a&gt; board. This board includes 3.3V regulator, boot EEPROM and the Propeller chip. To avoid using an extra regulator for the ADC, IMU and EEPROM, I had to add one jumper wire to the Spin Stamp in order to get the 3.3V out on pin 24. The regulator is rated at 500mA so it can easily handle the load of the complete board. The servos are powered directly from the 5V input to the board.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;IMU:The &lt;a href="http://www.sparkfun.com/commerce/product_info.php?products_id=741"&gt;5 DOF IMU&lt;/a&gt; from SparkFun is used, to save some space I was able to fit the ADC right under the IMU. The ADC should also help mechanically support the IMU.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;ADC: The 12bit &lt;a href="http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010534"&gt;MCP3208&lt;/a&gt; from Microchip is used, the ADC has a standard SPI interface.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Memory: The &lt;a href="http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010823"&gt;24LC256&lt;/a&gt; 32KB EEPROM from Microchip. Not much memory but since it will only be used during development I did not want to compromise the size of the board. It should allow to store data for a few minutes.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a href="http://vrhome.net/vassilis/wp-content/uploads/2008/12/osd.jpg"&gt;&lt;img class="aligncenter size-medium wp-image-49" title="osd" src="http://vrhome.net/vassilis/wp-content/uploads/2008/12/osd-300x226.jpg" alt="" width="300" height="226" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The OSD is fairly simple and based on the &lt;a href="http://www.hittconsulting.com/hcosd.htm"&gt;HC-OSD&lt;/a&gt;, Terry was kind enough to also supply the Propeller driver code for the OSD. The OSD will communicate with the IMU using an I2C bus, spare pins are also routed to the connector for future expansion.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://vrhome.net/vassilis/wp-content/uploads/2008/12/imustabpcb.jpg"&gt;&lt;img class="aligncenter size-medium wp-image-50" title="imustabpcb" src="http://vrhome.net/vassilis/wp-content/uploads/2008/12/imustabpcb-300x203.jpg" alt="" width="300" height="203" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The layout is completed. The boards could be made a bit smaller but having a bit more space between components made the layout easier.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-5429243248397510030?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/5429243248397510030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2008/12/schematics-and-layout-completed.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/5429243248397510030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/5429243248397510030'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2008/12/schematics-and-layout-completed.html' title='Schematics and layout completed'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4302830906892087859.post-973443422860068409</id><published>2008-12-03T15:01:00.000-08:00</published><updated>2011-09-24T18:57:36.081-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Quadcopter'/><title type='text'>IMU Stabilized Quadcopter</title><content type='html'>This project started when I found out about the 5 DOF IMU from &lt;a href="http://www.sparkfun.com/commerce/product_info.php?products_id=741"&gt;SparkFun&lt;/a&gt;. I always wanted to experiment with an IMU and Kalman filters so I decided to build an IMU based flight stabilizer. I also recently got in to FPV and was looking for the next platform after my &lt;a href="http://www.youtube.com/watch?v=ah9y1kzwXbY"&gt;EasyStar&lt;/a&gt;. A &lt;a href="http://en.wikipedia.org/wiki/Quadrotor"&gt;Quadcopter&lt;/a&gt; was the perfect platform, easy to build, can launch from my back yard and it should be able to carry a decent payload. Also developing the control hardware and software sounded like a nice challenge.&lt;br/&gt;&lt;br/&gt;The same IMU stabilizer can also be used to stabilize my EasyStar, however I will first test it on the Quadcopter.&lt;br/&gt;&lt;br/&gt;Of course this is not the first project of its kind (&lt;a href="http://tom.pycke.be/"&gt;Tom's&lt;/a&gt; site is worth mentioning) but none of the existing projects was exactly what I wanted to do. So my objectives for this project are:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Develop an IMU stabilization board using the SparkFun IMU, with enough processing power to run the Kalman filters, servo controller, PID loops and data logger.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Tuning PID loops in no fun without a data logger, so enough memory to record a few minutes of data at high speed will be required.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Spare I2C buses for interfacing with peripheral boards and maybe the &lt;a href="http://www.eagletreesystems.com/MicroPower/micro.htm"&gt;EagleTree eLogger&lt;/a&gt;.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Video transmitter (I already have a 900MHz 500mW system, including a ground station).&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Heli gyro for yaw control (the IMU can only be used to control roll and pitch).&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;EagleTree eLogger with GPS, OSD and altimeter sensor.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Spektrum AR7000 receiver.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;A nice to have would be an artificial horizon on the OSD, one approach I am considering is designing an additional OSD that would only be used to generate the artificial horizon. The EagleTree OSD will be used for the display of all other information.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;The IMU board will be based on the &lt;a href="http://www.parallax.com/tabid/407/Default.aspx"&gt;Propeller&lt;/a&gt; chip from Parallax. This device has eight cores and can operate at frequencies up to 80MHz with very little power consumption.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4302830906892087859-973443422860068409?l=vassilis.vrhome.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vassilis.vrhome.net/feeds/973443422860068409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vassilis.vrhome.net/2008/12/imu-stabilized-quadcopter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/973443422860068409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4302830906892087859/posts/default/973443422860068409'/><link rel='alternate' type='text/html' href='http://vassilis.vrhome.net/2008/12/imu-stabilized-quadcopter.html' title='IMU Stabilized Quadcopter'/><author><name>Vassilis</name><uri>http://www.blogger.com/profile/11962189891303245997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
