<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
 
 <title>Straw lab</title>
 
 <link href="http://strawlab.org/" />
 <updated>2013-02-20T17:21:53+01:00</updated>
 <id>http://strawlab.org/</id>
 <author>
   <name>Andrew Straw</name>
   <email>andrew.straw@imp.ac.at</email>
 </author>

 
 <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/strawlab" /><feedburner:info uri="strawlab" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
   <title>lab portrait, spring 2012</title>
   <link href="http://feedproxy.google.com/~r/strawlab/~3/V26aXujfxIc/" />
   <updated>2012-03-12T00:00:00+01:00</updated>
   <id>http://strawlab.org/2012/03/12/lab-photo</id>
   <content type="html">&lt;a href='/assets/lab-picture-20120312-fullsize.jpg'&gt;&lt;img src='/assets/lab-picture-20120312.jpg' width='600' height='457' /&gt;&lt;/a&gt;&lt;p&gt; Most of the lab at the Vienna City Hall after the awards ceremony
for the WWTF Cognitive Sciences grant. &lt;/p&gt;&lt;p&gt; Back row: Andreas Pöhlmann, Lisa Fenk, Karin Panser. Front row:
Andrew Straw (with post-doc in training), John Stowers, Alexander
Prochaska, Mareike Forthmann. (Unfortunately Lucile was out of
town.)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/strawlab/~4/V26aXujfxIc" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://strawlab.org/2012/03/12/lab-photo/</feedburner:origLink></entry>
 
 <entry>
   <title>welcome to the class of 2012</title>
   <link href="http://feedproxy.google.com/~r/strawlab/~3/tAN46XqQYFg/" />
   <updated>2012-02-19T00:00:00+01:00</updated>
   <id>http://strawlab.org/2012/02/19/welcome-class-of-2012</id>
   <content type="html">&lt;p&gt;At the first of this month, the lab grew substantially with four new members. Lucile Belliveau is doing a project as part of her Master&amp;#8217;s degree at the École Normale Supérieure, Paris. Andreas Pöhlmann, recently graduated with an undergraduate degree in Physics from Bayreuth, Germnay, is working as a technician. Dr. Lisa Fenk comes to us to do a postdoc after completing a Ph.D. on spider vision with Prof. Axel Schmid at the University of Vienna. John Stowers is expecting a PhD in electrical engineering and control systems from the University of Canterbury shortly and is working as our resident hardware and software engineer.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/strawlab/~4/tAN46XqQYFg" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://strawlab.org/2012/02/19/welcome-class-of-2012/</feedburner:origLink></entry>
 
 <entry>
   <title>getting from the airport to the IMP</title>
   <link href="http://feedproxy.google.com/~r/strawlab/~3/z-QCygXT9Hg/" />
   <updated>2012-01-28T00:00:00+01:00</updated>
   <id>http://strawlab.org/2012/01/28/getting-from-airport-to-imp</id>
   <content type="html">&lt;h2&gt;Vienna's otherwise good public transportation system is largely an
insider secret, with little in the way of maps and information en
route. Here's what you need to get from the airport to the IMP.&lt;/h2&gt;

&lt;p&gt;Quick summary: take the S7, get off at the Vienna Bio Center
St. Marx stop. But read this for important tips.&lt;/p&gt;

&lt;p&gt;

From the Vienna International Airport (VIE), there are two trains that
you can take into Vienna. The most heavily advertised, more expensive,
and nicer is the City Airport Train (CAT). The other is the S7. They
both share the same track and route, but have different
platforms. &lt;i&gt;To get to the IMP, take the S7, as the CAT bypasses
the correct stop.&lt;/i&gt;
&lt;/p&gt;

&lt;p&gt;

Unfortunately, it's difficult to find the S7 and figure out what
ticket to buy at the airport. To find the S7, you can follow the signs
most of the way to the CAT, but rather than turning into the CAT
departure area, keep walking and you should soon come to the S7
platform.
&lt;/p&gt;

&lt;p&gt;

Buy tickets either before descending the stairs to the platform or
from the ticket machines on the platform. Tickets are somewhat complex
to purchase, but purchase a ticket for the destination "Wien" or "Wien
Mitte".  (The same ticket will work on the U-Bahn.) This should cost
3.60. The S7 departs from the airport at 18 and 48 minutes past the
hour, and it takes 19 minutes to come to the St. Marx stop.
&lt;/p&gt;

&lt;p&gt;

The IMP is at Dr.-Bohr-Gasse 7, near the end of Dr.-Bohr-Gasse where
is approaches Rennweg. The St. Marx stop is a 200 meter walk away
across Rennweg.
&lt;/p&gt;


&lt;iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?q=Dr.-Bohr-Gasse+7,+wien&amp;amp;ie=UTF8&amp;amp;hq=&amp;amp;hnear=Doktor-Bohr-Gasse+7,+Erdberg+1030+Wien,+Austria&amp;amp;t=m&amp;amp;ll=48.189444,16.400946&amp;amp;spn=0.002503,0.00456&amp;amp;z=17&amp;amp;iwloc=A&amp;amp;output=embed"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a href="http://maps.google.com/maps?q=Dr.-Bohr-Gasse+7,+wien&amp;amp;ie=UTF8&amp;amp;hq=&amp;amp;hnear=Doktor-Bohr-Gasse+7,+Erdberg+1030+Wien,+Austria&amp;amp;t=m&amp;amp;ll=48.189444,16.400946&amp;amp;spn=0.002503,0.00456&amp;amp;z=17&amp;amp;iwloc=A&amp;amp;source=embed" style="color:#0000FF;text-align:left"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt;
&lt;img src="http://feeds.feedburner.com/~r/strawlab/~4/z-QCygXT9Hg" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://strawlab.org/2012/01/28/getting-from-airport-to-imp/</feedburner:origLink></entry>
 
 <entry>
   <title>lab portrait, autumn 2011</title>
   <link href="http://feedproxy.google.com/~r/strawlab/~3/0EeSf8rrETg/" />
   <updated>2011-11-29T00:00:00+01:00</updated>
   <id>http://strawlab.org/2011/11/29/lab-photo</id>
   <content type="html">&lt;a href='/assets/lab-picture-20111129-fullsize.jpg'&gt;&lt;img src='/assets/lab-picture-20111129.jpg' width='600' height='450' /&gt;&lt;/a&gt;&lt;p&gt; From left to right: Andrew Straw, Mareike Forthmann and Karin Panser.  &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/strawlab/~4/0EeSf8rrETg" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://strawlab.org/2011/11/29/lab-photo/</feedburner:origLink></entry>
 
 <entry>
   <title>high-level visual behavior grant funded by the WWTF</title>
   <link href="http://feedproxy.google.com/~r/strawlab/~3/FRZ7q95DE9Q/" />
   <updated>2011-11-10T00:00:00+01:00</updated>
   <id>http://strawlab.org/2011/11/10/high-level-visual-behavior-grant-funded</id>
   <content type="html">&lt;p&gt;We just received good news from the Wiener Wissenschafts-, Forschungs- und Technologiefonds (WWTF, in English this translates to the Viennese Science, Research, and Technology Fund). Our grant propsal &amp;#8220;Algorithms, neural circuitry, and genetics of high-level visual behavior in the fly&amp;#8221; was &lt;a href='http://wwtf.at/programmes/ci/index.php?lang=EN#c1154h'&gt;selected for funding&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Together with the ERC Starting Grant FlyVisualCircuits we received a few months ago, the lab is off to a great start.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/strawlab/~4/FRZ7q95DE9Q" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://strawlab.org/2011/11/10/high-level-visual-behavior-grant-funded/</feedburner:origLink></entry>
 
 <entry>
   <title>augmented reality - computing the OpenGL projection matrix from intrinsic camera parameters</title>
   <link href="http://feedproxy.google.com/~r/strawlab/~3/Qfi6ts78Crg/" />
   <updated>2011-11-05T00:00:00+01:00</updated>
   <id>http://strawlab.org/2011/11/05/augmented-reality-with-OpenGL</id>
   <content type="html">&lt;h1 id='summary'&gt;Summary&lt;/h1&gt;

&lt;p&gt;Here I describe how the &lt;a href='http://www.robots.ox.ac.uk/~vgg/hzbook/'&gt;Hartley-Zisserman&lt;/a&gt; (HZ) pinhole camera model differs from the OpenGL display pipeline and how to build an OpenGL projection matrix directly from the intrinsic camera parameter matrix of HZ. What is particular about this exposition is that I do this by calculating the matrix elements directly from the camera parameters rather than calling the glProjection() function. This allows for a more general camera model including pixels with skew. I also include the algebraic derivation (as a &lt;a href='http://sympy.org'&gt;sympy&lt;/a&gt; script) so you can follow my logic exactly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update (30 Jan 2013):&lt;/strong&gt; The various implementations of the coordinate transform pipeline used in this post are available &lt;a href='https://github.com/strawlab/opengl-hz'&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;div class='maruku_toc'&gt;&lt;ul style='list-style: none;'&gt;&lt;li&gt;&lt;a href='#summary'&gt;Summary&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='#note_about_image_coordinates'&gt;Note about image coordinates&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='#the_opengl_projection_matrix_from_hz_intrinsic_parameters'&gt;The OpenGL projection matrix from HZ intrinsic parameters&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='#comparison_with_the_opencv_camera_calibration'&gt;Comparison with the OpenCV camera calibration&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='#experimental_verification'&gt;Experimental verification&lt;/a&gt;&lt;ul style='list-style: none;'&gt;&lt;li&gt;&lt;a href='#output_of_cpu_implementations'&gt;Output of CPU implementations&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='#output_of_opengl_implementation'&gt;Output of OpenGL implementation&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='#download_these_files'&gt;Download these files&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='#remaining_work_compensating_for_camera_distortion_not_described_by_the_pinhole_model'&gt;Remaining work: compensating for camera distortion not described by the pinhole model&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='#references'&gt;References&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
&lt;h1 id='note_about_image_coordinates'&gt;Note about image coordinates&lt;/h1&gt;

&lt;p&gt;In both OpenGL window coordinates and HZ image coordinate systems, (0,0) is the lower left corner with X and Y increasing right and up, respectively. In a normal image file, the (0,0) pixel is in the upper left corner. We have code paths to deal with this in one of two ways: first, we can draw our images upside down, so that all the pixel-based coordinate systems are the same. This is the code path used when &amp;#8220;window_coords=&amp;#8217;y up&amp;#8217;&amp;#8220;. Second, we can keep the images right side up and modify the projection matrix so that OpenGL will generate window coordinates that compensate for the flipped image coordinates. In this &amp;#8220;window_coords=&amp;#8217;y down&amp;#8217;&amp;#8221; path, the generated OpenGL Y window coordinates are (height-y).&lt;/p&gt;

&lt;h1 id='the_opengl_projection_matrix_from_hz_intrinsic_parameters'&gt;The OpenGL projection matrix from HZ intrinsic parameters&lt;/h1&gt;

&lt;p&gt;Enough of the preliminaries. We calculate the OpenGL Projection matrix when window_coords==&amp;#8217;y up&amp;#8217; to be:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[2*K00/width,  -2*K01/width,   (width - 2*K02 + 2*x0)/width,                            0]
[          0, -2*K11/height, (height - 2*K12 + 2*y0)/height,                            0]
[          0,             0, (-zfar - znear)/(zfar - znear), -2*zfar*znear/(zfar - znear)]
[          0,             0,                             -1,                            0]&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;With window_coords==&amp;#8217;y down&amp;#8217;, we have:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[2*K00/width, -2*K01/width,    (width - 2*K02 + 2*x0)/width,                            0]
[          0, 2*K11/height, (-height + 2*K12 + 2*y0)/height,                            0]
[          0,            0,  (-zfar - znear)/(zfar - znear), -2*zfar*znear/(zfar - znear)]
[          0,            0,                              -1,                            0]&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Where Knm is the (n,m) entry of the 3x3 HZ instrinsic camera calibration matrix K. (K is upper triangular and scaled such that the lower-right entry is one.) Width and height are the size of the camera image, in pixels, and x0 and y0 are the camera image origin and are normally zero. Znear and zfar are the standard OpenGL near and far clipping planes, respectively.&lt;/p&gt;

&lt;p&gt;This is the cut-and-past output of our sympy script &lt;a href='https://gist.github.com/1341472#file_projection_math.py'&gt;projection_math.py&lt;/a&gt;. The approach is that we enter the operations of OpenGL vertex transformation pipeline and the HZ projection model into sympy, a computer algebra system (CAS). We have sympy solve for the OpenGL projection matrix so that the resulting pixel coordinate is the same for both the HZ camera model and the OpenGL pipeline. See the script for the implementation details. Of course this could be done by hand but is tedious and prone to mistakes.&lt;/p&gt;

&lt;h1 id='comparison_with_the_opencv_camera_calibration'&gt;Comparison with the OpenCV camera calibration&lt;/h1&gt;

&lt;p&gt;Although I have not directly used &lt;a href='http://opencv.willowgarage.com/documentation/cpp/camera_calibration_and_3d_reconstruction.html'&gt;OpenCV for camera calibration&lt;/a&gt;, their parameterization of the pinhole camera is a subset of the full HZ model. In particular, their matrix A corresponds exactly to the HZ matrix K with pixel skew fixed at zero. Consequently, this page can be directly used with OpenCV camera calibrations by setting K01 to zero.&lt;/p&gt;

&lt;h1 id='experimental_verification'&gt;Experimental verification&lt;/h1&gt;

&lt;p&gt;To verify that this computation of the OpenGL projection matrix accurately captures the HZ camera model, we have calculated the projection of vertices into image coordinates three ways:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;A CPU-based implementation of the HZ camera model. This performs matrix multiplication of the eye coordinates by the intrinsic parameter matrix K.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;A CPU-based emulation of the OpenGL pipeline. This performs matrix multiplication of the eye coordinates by the OpenGL projection matrix to produce clip coordinates, transforming those to normalized device coordinates, and then finally using the glViewport parameters to establish the window coordinates.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Direct calls to the OpenGL pipeline, presumably running on your GPU. In this case, we directly load our OpenGL projection matrix by calling glLoadMatrixf() and use OpenGL to perform all vertex transformation.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The first two examples are in the &lt;a href='https://gist.github.com/1341472#file_calib_test_numpy.py'&gt;calib_test_numpy.py&lt;/a&gt; example and their outputs are overlaid. The third (OpenGL) example is in &lt;a href='https://gist.github.com/1341472#file_calib_test_pyglet.py'&gt;calib_test_pyglet.py&lt;/a&gt;. Each of these three examples gives the same results, suggesting that our formulation is correct. All calculations were done with Python scripts, but the concepts and results should be easily adaptable to any language.&lt;/p&gt;

&lt;p&gt;Here is a brief conceptual walkthrough of these programs. Each program starts by loading an image acquired by a (crudely) calibrated camera. This image (luminance.png, included in the zip download below) is of a roughly cylindrical object 1 meter in diameter and 1 meter high. Part of the cylinder is occluded and only the front surface is illuminated. The camera calibration is contained within the file &lt;a href='https://gist.github.com/1341472#cameramatrix.txt'&gt;cameramatrix.txt&lt;/a&gt;. This calibration is decomposed into the intrinsic camera parameters and the rotation matrix, and the camera translation vector. A simple mathematical model of the cylinder is used to generate world coordinates of many vertices. Each of these world coordinates is transformed to camera coordinates &amp;#8211; also called eye coordinates in OpenGL. This is done using the extrinsic camera parameters specifying the camera&amp;#8217;s pose and is done either as a matrix multiplication with the extrinsic parameter matrix or by loading them into the OpenGL modelview matrix. From there, each of these vertices in eye coordinate is transformed to window coordinates using the methods described above.&lt;/p&gt;

&lt;h2 id='output_of_cpu_implementations'&gt;Output of CPU implementations&lt;/h2&gt;

&lt;p&gt;The blue crosses are the vertices after the HZ transformation. The red points are the vertices after the simulated OpenGL pipeline. Calculations done with numpy and scipy, and plotting done with matplotlib.&lt;/p&gt;
&lt;a href='/assets/calib_test_numpy.png'&gt;&lt;img src='/assets/thumbnail_calib_test_numpy.png' width='102' height='90' /&gt;&lt;/a&gt;
&lt;h2 id='output_of_opengl_implementation'&gt;Output of OpenGL implementation&lt;/h2&gt;

&lt;p&gt;The green points are the certices after the OpenGL pipeline. OpenGL called through pyglet.&lt;/p&gt;
&lt;a href='/assets/calib_test_pyglet.png'&gt;&lt;img src='/assets/thumbnail_calib_test_pyglet.png' width='133' height='90' /&gt;&lt;/a&gt;
&lt;h1 id='download_these_files'&gt;Download these files&lt;/h1&gt;

&lt;p&gt;In addition to the individual scripts linked above, all the files are included in &lt;a href='/assets/augmented-reality-with-OpenGL.zip'&gt;this zip file&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id='remaining_work_compensating_for_camera_distortion_not_described_by_the_pinhole_model'&gt;Remaining work: compensating for camera distortion not described by the pinhole model&lt;/h1&gt;

&lt;p&gt;You may want to implement the non-linear warping distortions (radial distortion, tangential distortion) that are often used to extend the pinhole model to be more realistic. A GLSL-based shader implementation of warping and de-warping may be the subject of a future post, but is not described here.&lt;/p&gt;

&lt;h1 id='references'&gt;References&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='http://old.uvr.gist.ac.kr/wlee/web/techReports/ar/Camera%20Models.html'&gt;A nice page on camera models and OpenGL&lt;/a&gt; by Wonwoo Lee&lt;/li&gt;

&lt;li&gt;&lt;a href='http://www.songho.ca/opengl/gl_projectionmatrix.html'&gt;A nice page on the OpenGL projection matrix&lt;/a&gt; by Song Ho Ahn&lt;/li&gt;

&lt;li&gt;&lt;a href='http://www.epixea.com/research/multi-view-coding-thesisse8.html'&gt;A good description of the pinhole camera model&lt;/a&gt; by Yannick Morvan&lt;/li&gt;

&lt;li&gt;&lt;a href='http://en.wikipedia.org/wiki/Camera_resectioning'&gt;Another description of the pinhole camera model mostly compatible with the terminology here&lt;/a&gt; at Wikipedia.&lt;/li&gt;

&lt;li&gt;The &lt;a href='http://www.opengl.org/documentation/specs/'&gt;OpenGL specifications&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/strawlab/~4/Qfi6ts78Crg" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://strawlab.org/2011/11/05/augmented-reality-with-OpenGL/</feedburner:origLink></entry>
 
 <entry>
   <title>welcome to PhD student Mareike Forthmann</title>
   <link href="http://feedproxy.google.com/~r/strawlab/~3/epzQibmuu8I/" />
   <updated>2011-10-31T00:00:00+01:00</updated>
   <id>http://strawlab.org/2011/10/31/welcome-mareike</id>
   <content type="html">&lt;p&gt;Mareike Forthmann joined the lab this month as a PhD student. She has a masters degree in biology (a Diplom-Biologe, actually) from LMU Munich. Welcome, Mareike!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/strawlab/~4/epzQibmuu8I" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://strawlab.org/2011/10/31/welcome-mareike/</feedburner:origLink></entry>
 
 <entry>
   <title>lab portrait, summer 2011</title>
   <link href="http://feedproxy.google.com/~r/strawlab/~3/8FAlODLQ5T0/" />
   <updated>2011-08-19T00:00:00+02:00</updated>
   <id>http://strawlab.org/2011/08/19/lab-photo</id>
   <content type="html">&lt;a href='/assets/lab-picture-20110819-fullsize.jpg'&gt;&lt;img src='/assets/lab-picture-20110819.jpg' width='600' height='360' /&gt;&lt;/a&gt;&lt;p&gt; From left to right: Andrew Straw, Natalia Balcu, Karin Panser and
Linda Ma.  &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/strawlab/~4/8FAlODLQ5T0" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://strawlab.org/2011/08/19/lab-photo/</feedburner:origLink></entry>
 
 <entry>
   <title>upcoming conferences</title>
   <link href="http://feedproxy.google.com/~r/strawlab/~3/ecrsx0xGvlU/" />
   <updated>2011-08-14T00:00:00+02:00</updated>
   <id>http://strawlab.org/2011/08/14/upcoming-conferences</id>
   <content type="html">&lt;p&gt;The end of August and September are going to be busy for me, with plans to attend five conferences. I look forward to catching up with colleagues I&amp;#8217;ve known a while and meeting new ones. &lt;a href='/contact/'&gt;Contact&lt;/a&gt; me if you want to meet up.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='http://www.euroscipy.org/conference/euroscipy2011'&gt;EuroScipy2011&lt;/a&gt; 25-28 August, Paris&lt;/li&gt;

&lt;li&gt;&lt;a href='http://wiki.epfl.ch/yedi'&gt;JEDI conference&lt;/a&gt; 2-4 September, Leysin, Switzerland&lt;/li&gt;

&lt;li&gt;&lt;a href='http://www.the-embo-meeting.org/'&gt;EMBO conference&lt;/a&gt; 10-13 September, Vienna&lt;/li&gt;

&lt;li&gt;&lt;a href='http://symposium.neuro.fchampalimaud.org/'&gt;Champalimaud Neuroscience Symposium&lt;/a&gt; 18-21 September, Lisbon&lt;/li&gt;

&lt;li&gt;&lt;a href='http://www.edrc2011.org/'&gt;European Drosophila Research Conference&lt;/a&gt; 21-24 September, Lisbon&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/strawlab/~4/ecrsx0xGvlU" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://strawlab.org/2011/08/14/upcoming-conferences/</feedburner:origLink></entry>
 
 <entry>
   <title>welcome to summer student Linda Ma</title>
   <link href="http://feedproxy.google.com/~r/strawlab/~3/yMwEGoLoNhQ/" />
   <updated>2011-06-24T00:00:00+02:00</updated>
   <id>http://strawlab.org/2011/06/24/welcome-linda-ma</id>
   <content type="html">&lt;p&gt;Linda Ma is studying at Columbia University and will be spending her summer studying fly neurobiology as part of the &lt;a href='http://www.vbcsummerschool.at/'&gt;VBC Summer School&lt;/a&gt;. Welcome!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/strawlab/~4/yMwEGoLoNhQ" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://strawlab.org/2011/06/24/welcome-linda-ma/</feedburner:origLink></entry>
 
 <entry>
   <title>the Grand Unified Fly (GUF) model</title>
   <link href="http://feedproxy.google.com/~r/strawlab/~3/iIEFLNUa2Fs/" />
   <updated>2011-03-23T00:00:00+01:00</updated>
   <id>http://strawlab.org/2011/03/23/grand-unified-fly</id>
   <content type="html">&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This page contains the most important information from the original location at the Dickinson Lab Caltech website (http://dickinson.caltech.edu/Research/Grand_Unified_Fly), which is now offline.&lt;/p&gt;
&lt;a href='/assets/GUF_integrated_fly.mpeg'&gt;&lt;img alt='GUF overview' src='/assets/GUF_overview.png' class='movielink' /&gt;&lt;/a&gt;
&lt;p&gt;Block diagram of &amp;#8220;Grand Unified Fly&amp;#8221; and a model fly situated in a tunnel environment under closed-loop visual control.&lt;/p&gt;

&lt;h2 id='overview'&gt;Overview&lt;/h2&gt;

&lt;p&gt;We are developing a computer model of Drosophila to investigate the aerodynamics, control, neural processing, and sensory inputs of fly flight. The components of the model are individually useful as research tools but also perform as parts in an integrated whole. For more information, please read the papers above.&lt;/p&gt;

&lt;p&gt;Our code consists of the following elements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://github.com/strawlab/drosophila_eye_map'&gt;Drosophila eye map&lt;/a&gt; &amp;#187; Viewing directions (eye map) of each Drosophila ommatidium in the compound eye&lt;/li&gt;

&lt;li&gt;&lt;a href='https://github.com/strawlab/fsee'&gt;fsee&lt;/a&gt; &amp;#187; Fly-eye view and neural processing simulation code&lt;/li&gt;

&lt;li&gt;&lt;a href='https://bitbucket.org/willdickson/fmech/overview'&gt;fmech&lt;/a&gt; &amp;#187; Insect flight mechanics simulator.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id='references'&gt;References&lt;/h2&gt;

&lt;p&gt;William B. Dickson, Andrew D. Straw, Michael H. Dickinson (2008) Integrative Model of Drosophila Flight. &lt;em&gt;AIAA Journal&lt;/em&gt; 46 (9). doi:10.2514/1.29862 &lt;a href='http://www.mendeley.com/download/public/2464051/3635807622/d68e6de2dd62de6ee7cf6193a9cf443a32160846/dl.pdf'&gt;PDF&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Epstein M., Waydo, S., Fuller, S.B., Dickson, W., Straw, A., Dickinson, M.H. &amp;amp; Murray, R.M. (2007) Bioligically Inspired Feedback Design for Drosophila Flight. &lt;em&gt;Proceedings of the 2007 American Controls Conference&lt;/em&gt;. &lt;a href='http://www.mendeley.com/download/public/2464051/3652638132/f7b14315dcccb2088f5b651c198cf4cafd386715/dl.pdf'&gt;PDF&lt;/a&gt;&lt;/p&gt;
&lt;a href='/assets/GUF_2007ACC_movie.mpeg'&gt;&lt;img alt='2007 ACC movie' src='/assets/GUF_2007ACC_movie.png' class='movielink' /&gt;&lt;/a&gt;
&lt;p&gt;Dickson, W.B., Straw, A.D., Poelma, C., &amp;amp; Dickinson, M.H. (2006) An Integrative Model of Insect Flight Control. &lt;em&gt;Proceedings of the 44th AIAA Aerospace Sciences Meeting and Exhibit&lt;/em&gt; AIAA-2006-0034 &lt;a href='http://www.mendeley.com/download/public/2464051/3652638122/d3bd7957efd2c8a011afb0687dfb6943731cb6d0/dl.pdf'&gt;PDF&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/strawlab/~4/iIEFLNUa2Fs" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://strawlab.org/2011/03/23/grand-unified-fly/</feedburner:origLink></entry>
 
 
</feed>
