<?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:blogger='http://schemas.google.com/blogger/2008' 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-5599655897798294228</id><updated>2014-10-05T00:31:10.134-07:00</updated><category term="Robotics"/><category term="Diversos"/><category term="Mapping"/><category term="Kinect"/><category term="Multi-agent systems"/><category term="Professional"/><category term="Programming"/><category term="UAVs"/><title type='text'>blog | robbel.com</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.robbel.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5599655897798294228/posts/default'/><link rel='alternate' type='text/html' href='http://blog.robbel.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Philipp</name><uri>http://www.blogger.com/profile/12471512460965256711</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5599655897798294228.post-3882056024421749054</id><published>2011-01-25T07:47:00.000-08:00</published><updated>2011-01-25T07:47:45.592-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Diversos"/><category scheme="http://www.blogger.com/atom/ns#" term="Professional"/><title type='text'>Joining the AUVSI Communications Committee</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_4BsP67WtUcg/TT7wU21pEZI/AAAAAAAAA4g/UPVseLavhTY/s1600/auvsi.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;145&quot; src=&quot;http://4.bp.blogspot.com/_4BsP67WtUcg/TT7wU21pEZI/AAAAAAAAA4g/UPVseLavhTY/s320/auvsi.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;To complement my &lt;a href=&quot;http://www.mit.edu/&quot;&gt;academic involvement&lt;/a&gt; in the unmanned systems community, I decided to volunteer for the AUVSI Communications Committee this year. &lt;a href=&quot;http://www.auvsi.org/&quot;&gt;AUVSI&lt;/a&gt; is the world&#39;s largest organization devoted exclusively to advancing unmanned systems and includes members from industry, government and academia alike. The communications committee works to guide the association&#39;s public and member communications and media relations activities. I am eager to contribute my academic experience and to learn more about the wider industry. A highly recommended read is the monthly &lt;a href=&quot;http://www.auvsi.org/AUVSI/AUVSI/Publications/UnmannedSystemsMagazine/Default.aspx&quot;&gt;Unmannd Systems Magazine&lt;/a&gt;, published by AUVSI, that originally sparked my interest in the position.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.robbel.com/feeds/3882056024421749054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.robbel.com/2011/01/joining-auvsi-communications-committee.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5599655897798294228/posts/default/3882056024421749054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5599655897798294228/posts/default/3882056024421749054'/><link rel='alternate' type='text/html' href='http://blog.robbel.com/2011/01/joining-auvsi-communications-committee.html' title='Joining the AUVSI Communications Committee'/><author><name>Philipp</name><uri>http://www.blogger.com/profile/12471512460965256711</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_4BsP67WtUcg/TT7wU21pEZI/AAAAAAAAA4g/UPVseLavhTY/s72-c/auvsi.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5599655897798294228.post-6935854488188228591</id><published>2011-01-14T17:05:00.000-08:00</published><updated>2011-01-15T00:14:11.627-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Robotics"/><category scheme="http://www.blogger.com/atom/ns#" term="UAVs"/><title type='text'>Quadrotors made in Germany: AscTec visit</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_4BsP67WtUcg/TTDiMBo68rI/AAAAAAAAA4M/EBJcxqFq1EM/s1600/11272010025_small.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;http://3.bp.blogspot.com/_4BsP67WtUcg/TTDiMBo68rI/AAAAAAAAA4M/EBJcxqFq1EM/s400/11272010025_small.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;This innocent drawer at&amp;nbsp;&lt;a href=&quot;http://acl.mit.edu/&quot;&gt;MIT ACL&lt;/a&gt;&amp;nbsp;titled GERMAN QUADROTOR PARTS contains numerous replacement parts for the&amp;nbsp;&lt;a href=&quot;http://www.asctec.de/asctec-hummingbird-researchpilot-2&quot;&gt;AscTec Hummingbird&lt;/a&gt;&amp;nbsp;UAVs we are flying for our research on multi-robot planning in rescue scenarios. A friend from MIT (now at the &lt;a href=&quot;http://www.asl.ethz.ch/&quot;&gt;Autonomous Systems Lab&lt;/a&gt; at &lt;a href=&quot;http://www.ethz.ch/index_EN&quot;&gt;ETH Zurich&lt;/a&gt;) opened up the opportunity to visit Ascending Technologies during my trip back home to snowy Germany this year. AscTec specializes in rotor UAVs and manufactures a wide variety of them in-house, ranging from systems that are deployable off-the-shelf for aerial photography to more bare bones university research platforms.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;Since one of the major applications is aerial photography, a lot of work is going into stable control in outdoor (potentially windy) environments. The other focus for these systems is ease of use and support for quick deployment out of the box.&amp;nbsp;The most impressive photo-drone is probably the 8-rotor&amp;nbsp;&lt;a href=&quot;http://www.asctec.de/asctec-falcon&quot;&gt;AscTec Falcon 8&lt;/a&gt;&amp;nbsp;whose unique rotor configuration does not interfere with the camera&#39;s field of view even as it is looking up, down, or sideways.&lt;br /&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;Autonomy for these off-the-shelf commercial flyers is intentionally limited to GPS position hold and waypoint-based navigation. Other AscTec systems, such as the &lt;a href=&quot;http://www.asctec.de/asctec-pelican&quot;&gt;Pelican&lt;/a&gt;&amp;nbsp;are naturally geared for more sensor-laden configurations but mostly target university research at this point in time. Memorable are e.g. the recent &lt;a href=&quot;http://www.youtube.com/watch?v=eWmVrfjDCyw&quot;&gt;Kinect-on-Pelican demo&lt;/a&gt; at UC Berkeley or the work here at MIT on autonomous in-door flight in GPS denied environments (using the Hokuyo laser or a stereo camera rig). AscTec has been involved in some of this research themselves, but one of the founders mentioned that a lot of this work (e.g. in autonomous, vision-based obstacle avoidance) is not considered ready to be sold and backed by AscTec as part of their commercial offerings.&lt;br /&gt;&lt;br /&gt;Two more pictures from this fantastic trip to Munich. Please note that AscTec is undergoing vast expansion so the first picture is far from doing &lt;a href=&quot;http://www.asctec.de/kontakt-4&quot;&gt;their large space&lt;/a&gt; justice. Thanks, Markus and the team at AscTec for the opportunity to visit in midst of their expansion.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_4BsP67WtUcg/TTDxi9ov0hI/AAAAAAAAA4Q/Sk40q8Dogkc/s1600/IMG_0243_small.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;226&quot; src=&quot;http://1.bp.blogspot.com/_4BsP67WtUcg/TTDxi9ov0hI/AAAAAAAAA4Q/Sk40q8Dogkc/s400/IMG_0243_small.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;br /&gt;And another, obligatory holiday snapshot at the&amp;nbsp;&lt;a href=&quot;http://en.wikipedia.org/wiki/Marienplatz&quot;&gt;Marienplatz&lt;/a&gt; in Munich:&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_4BsP67WtUcg/TTDxoZeurtI/AAAAAAAAA4U/4phhG5ZE5OA/s1600/IMG_0247_small.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;http://3.bp.blogspot.com/_4BsP67WtUcg/TTDxoZeurtI/AAAAAAAAA4U/4phhG5ZE5OA/s400/IMG_0247_small.jpg&quot; width=&quot;223&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.robbel.com/feeds/6935854488188228591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.robbel.com/2011/01/quadrotors-made-in-germany-asctec-visit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5599655897798294228/posts/default/6935854488188228591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5599655897798294228/posts/default/6935854488188228591'/><link rel='alternate' type='text/html' href='http://blog.robbel.com/2011/01/quadrotors-made-in-germany-asctec-visit.html' title='Quadrotors made in Germany: AscTec visit'/><author><name>Philipp</name><uri>http://www.blogger.com/profile/12471512460965256711</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_4BsP67WtUcg/TTDiMBo68rI/AAAAAAAAA4M/EBJcxqFq1EM/s72-c/11272010025_small.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5599655897798294228.post-3733070371463123330</id><published>2010-12-20T22:35:00.000-08:00</published><updated>2010-12-21T00:03:02.497-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Multi-agent systems"/><category scheme="http://www.blogger.com/atom/ns#" term="Robotics"/><title type='text'>Practical multi-agent systems: Kiva warehouse management</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_4BsP67WtUcg/TRA60J4JxVI/AAAAAAAAA3g/DqwYgJwVDZs/s1600/DSCF1331_small.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;http://1.bp.blogspot.com/_4BsP67WtUcg/TRA60J4JxVI/AAAAAAAAA3g/DqwYgJwVDZs/s400/DSCF1331_small.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;I had the wonderful opportunity to spend close to 2 hours at&amp;nbsp;&lt;a href=&quot;http://www.kivasystems.com/&quot;&gt;Kiva Systems&lt;/a&gt;&amp;nbsp;in North Reading, MA today. The orange Kiva robots (or &lt;i&gt;drive units&lt;/i&gt;) move shelves (or &lt;i&gt;inventory pods&lt;/i&gt;) to a number of manned work cells based on a centralized, real-time job scheduler. Humans are only present at the entry and exit stations of the warehouse while the entire inner storage area is&amp;nbsp;essentially&amp;nbsp;automated. According to the Kiva paradigm, pick or place jobs are brought to the worker and storage of the pods is left to automation.&lt;br /&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;Kiva installations have been fielded with up to 1,000 robots as of 2010.&amp;nbsp;Seeing the real-time resource&amp;nbsp;allocation algorithm in action is quite fascinating. As described in&amp;nbsp;&lt;a href=&quot;http://www.raffaello.name/Assets/Publications/CoordinatingHundreds.pdf&quot;&gt;Wurman et al., 2008&lt;/a&gt;, the resource allocation algorithm is based on a number of heuristics to enable real-time planning for these large numbers of agents and jobs. Additionally, uncertainty is removed from the system by structuring the environment (e.g. through&amp;nbsp;barcode patterns on the floor) and by having real-time feedback on each robot&#39;s position through wireless links across the warehouse.&lt;br /&gt;&lt;br /&gt;I&#39;m very thankful for the opportunity to visit the new Kiva facilities in midst of their construction. The Kiva story is very inspiring to all aspiring entrepreneurs in robotics as well: yes, multi-robot systems outside of the military can be supported with a strong business case--just keep on searching for that business plan! :-)&lt;br /&gt;The snowy weather conditions added even more excitement to this five-days-before-Xmas trip!&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_4BsP67WtUcg/TRBGASChO_I/AAAAAAAAA3k/FKO3PDBE1M0/s1600/DSCF1333_small.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;http://1.bp.blogspot.com/_4BsP67WtUcg/TRBGASChO_I/AAAAAAAAA3k/FKO3PDBE1M0/s400/DSCF1333_small.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.robbel.com/feeds/3733070371463123330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.robbel.com/2010/12/practical-multi-agent-systems-kiva.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5599655897798294228/posts/default/3733070371463123330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5599655897798294228/posts/default/3733070371463123330'/><link rel='alternate' type='text/html' href='http://blog.robbel.com/2010/12/practical-multi-agent-systems-kiva.html' title='Practical multi-agent systems: Kiva warehouse management'/><author><name>Philipp</name><uri>http://www.blogger.com/profile/12471512460965256711</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_4BsP67WtUcg/TRA60J4JxVI/AAAAAAAAA3g/DqwYgJwVDZs/s72-c/DSCF1331_small.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5599655897798294228.post-6412805793968479071</id><published>2010-12-15T12:51:00.000-08:00</published><updated>2010-12-15T12:52:20.567-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Kinect"/><category scheme="http://www.blogger.com/atom/ns#" term="Mapping"/><category scheme="http://www.blogger.com/atom/ns#" term="Robotics"/><title type='text'>KinectBot: Robot control through gesture</title><content type='html'>&lt;object height=&quot;306&quot; width=&quot;499&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/dRPEns8MS2o?fs=1&amp;amp;hl=en_US&amp;amp;rel=0&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/dRPEns8MS2o?fs=1&amp;amp;hl=en_US&amp;amp;rel=0&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;499&quot; height=&quot;306&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;For those of you who haven&#39;t seen my early Kinect hack on the iRobot Create yet, have a look at the video above. An overview&amp;nbsp;of how this weekend project fits with my robotics research goals is up at&amp;nbsp;&lt;a href=&quot;http://bostinnovation.com/2010/12/03/kinect-hacks-from-mit-interview-with-philipp-robbel-creator-of-irobotkinect-robot&quot;&gt;BostInnovation&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://blog.robbel.com/feeds/6412805793968479071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.robbel.com/2010/12/for-those-of-you-who-havent-seen-my.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5599655897798294228/posts/default/6412805793968479071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5599655897798294228/posts/default/6412805793968479071'/><link rel='alternate' type='text/html' href='http://blog.robbel.com/2010/12/for-those-of-you-who-havent-seen-my.html' title='KinectBot: Robot control through gesture'/><author><name>Philipp</name><uri>http://www.blogger.com/profile/12471512460965256711</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5599655897798294228.post-2189554622177467682</id><published>2010-12-15T12:23:00.000-08:00</published><updated>2010-12-15T13:10:13.749-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Diversos"/><category scheme="http://www.blogger.com/atom/ns#" term="Robotics"/><title type='text'>Nice surprise Email</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_4BsP67WtUcg/TQklCWw8w4I/AAAAAAAAA3Y/8HT69GBZd6E/s1600/thrun.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;125&quot; src=&quot;http://1.bp.blogspot.com/_4BsP67WtUcg/TQklCWw8w4I/AAAAAAAAA3Y/8HT69GBZd6E/s400/thrun.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;I received a nice Email from&amp;nbsp;&lt;a href=&quot;http://robots.stanford.edu/&quot;&gt;Sebastian Thrun&lt;/a&gt;&amp;nbsp;after submitting a number of&amp;nbsp;&lt;a href=&quot;http://robots.stanford.edu/probabilistic-robotics/errata.html&quot;&gt;errata&lt;/a&gt;&amp;nbsp;for his&amp;nbsp;&lt;a href=&quot;http://www.probabilistic-robotics.org/&quot;&gt;Probabilistic Robotics&lt;/a&gt;&amp;nbsp;book. I&#39;d take that offer in no time! :-)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.robbel.com/feeds/2189554622177467682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.robbel.com/2010/12/nice-surprise-email.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5599655897798294228/posts/default/2189554622177467682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5599655897798294228/posts/default/2189554622177467682'/><link rel='alternate' type='text/html' href='http://blog.robbel.com/2010/12/nice-surprise-email.html' title='Nice surprise Email'/><author><name>Philipp</name><uri>http://www.blogger.com/profile/12471512460965256711</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_4BsP67WtUcg/TQklCWw8w4I/AAAAAAAAA3Y/8HT69GBZd6E/s72-c/thrun.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5599655897798294228.post-1169016971593593177</id><published>2009-12-05T00:38:00.000-08:00</published><updated>2010-12-15T11:33:32.598-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>/dev/random behavior on Unix</title><content type='html'>&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;While debugging a weird&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://carmen.sourceforge.net/&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Carmen&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;behavior recently, I noticed that some of the included programs would stall on startup if I had quit them shortly before. After some time in the debugger, I narrowed it down to the seeding of the random generator where /dev/random is accessed. Interestingly, read calls to /dev/random stall until enough entropy is accumulated. If you do not want this behavior, /dev/urandom is available which won&#39;t stall waiting for more entropy from physical events at the cost of reducing the quality of the random number stream. Another good thing to know!&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.robbel.com/feeds/1169016971593593177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.robbel.com/2009/12/devrandom-behavior-on-unix.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5599655897798294228/posts/default/1169016971593593177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5599655897798294228/posts/default/1169016971593593177'/><link rel='alternate' type='text/html' href='http://blog.robbel.com/2009/12/devrandom-behavior-on-unix.html' title='/dev/random behavior on Unix'/><author><name>Philipp</name><uri>http://www.blogger.com/profile/12471512460965256711</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5599655897798294228.post-4392870544801702842</id><published>2009-11-16T10:11:00.000-08:00</published><updated>2010-12-14T23:37:50.611-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Mapping"/><category scheme="http://www.blogger.com/atom/ns#" term="Robotics"/><title type='text'>Occupancy grid SLAM with Rao-Blackwellized Particle Filters</title><content type='html'>I have been using &lt;a href=&quot;http://www.openslam.org/gmapping.html&quot;&gt;GMapping&lt;/a&gt; in simulation and on a physical robot recently and wanted to write a note to serve as a reminder how Bayesian filtering with particles, Rao-Blackwellization, SLAM etc. all come together in &lt;a href=&quot;http://www.informatik.uni-freiburg.de/~stachnis/pdf/grisetti06tro.pdf&quot;&gt;Grisetti, Stachniss, and Burgard&#39;s TRO 2007 paper&lt;/a&gt;. My goal is to summarize some of the required background and the important results without going into all derivations in the paper. An excellent background read is the &lt;a href=&quot;http://www.probabilisticrobotics.org/&quot;&gt;Probabilistic Robotics&lt;/a&gt; book on which the background material here is based.&lt;br /&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;i&gt;Note: You may have to refresh this page (F5) if the math below is not displayed correctly.&lt;/i&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;The Bayes filter:&lt;/b&gt;&lt;br /&gt;The Bayes filter is a recursive state estimator of the posterior of state $x$ at times $1\ldots t$. Adapted to the robotics domain, we define $bel(x_t):=p(x_t|z_{1:t},u_{1:t})$ to be the posterior of the state at time $t$, given sensory observations (such as laser scans) up to time $t$, $z_{1:t}$, and control signals (such as odometry readings) $u_{1:t}$. The filter requires initialization with $bel(x_0):=p(x_0)$ which can be set to a uniform distribution in case no specific knowledge about the initial state is available.&lt;br /&gt;Under the Markov assumption, we can derive a recursive relation from $bel(x_{t-1})$ to $bel(x_t)$ as a two-step process:&amp;nbsp;\[\overline{bel}(x_t) = \int p(x_t|u_t,x_{t-1}) bel(x_{t-1})\,\mathrm{d} x_{t-1}\] \[bel(x_t) = \eta p(z_t|x_t) \overline{bel}(x_t)\]&amp;nbsp;These are known as prediction and measurement update (or correction) steps, respectively.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The Particle filter:&lt;/b&gt;&lt;br /&gt;The previous statement of the Bayes filter did not make any claims about the form of the distributions $bel(x_t)$, observation model $p(z_t|x_t)$ and transition model $p(x_t|u_t,x_{t-1})$. Under linear-Gaussian assumptions, the&amp;nbsp;&lt;a href=&quot;http://en.wikipedia.org/wiki/Kalman_filter&quot;&gt;Kalman filter&lt;/a&gt;&amp;nbsp;gives analytic update equations for the mean and covariance of the posterior Gaussian&amp;nbsp;$bel(x_t)$. If we don&#39;t want to commit to such a parametric form of the posterior, we can use a particle filter which represents $bel(x_t)$ by a set of random state samples $x_t^{[m]}$ for $m=1\ldots M$ drawn from this posterior.&lt;br /&gt;The actual particle filter algorithm is quite straight-forward (see, e.g. Table 4.3 on page 98 of the&amp;nbsp;&lt;a href=&quot;http://www.probabilisticrobotics.org/&quot;&gt;Probabilistic Robotics&lt;/a&gt;&amp;nbsp;book). Because we cannot sample from the target distribution $bel(x_t)$ directly, the particle filter uses a trick and draws samples from a &lt;i&gt;proposal distribution&lt;/i&gt;&amp;nbsp;$\pi(x_t)$ instead. Each such sampled particle&amp;nbsp;$x_t^{[m]}$&amp;nbsp;is then associated with an importance weight given by $w_t^{[m]} = \frac{bel(x_t^{[m]})}{\pi(x_t^{[m]})}$, denoting the &quot;difference&quot; between target and proposal distributions. Lastly, particles are redrawn with replacement with a likelihood proportional to their associated weights, a process known as &lt;i&gt;importance sampling&lt;/i&gt;. This last resampling step ensures that the resulting particles are distributed according to the&amp;nbsp;posterior distribution of interest, $bel(x_t)$.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Proposal distributions:&lt;/b&gt;&lt;br /&gt;In order to ensure a quality representation of $bel(x_t)$ with a limited set of $M$ particles, we do not want to waste our particle set with samples generated in regions that are associated with a low likelihood under $bel(x_t)$. In that sense, it is beneficial for $\pi(x_t)$ to be close to $bel(x_t)$. As discussed in the paper, the frequent choice of the odometry motion model $p(x_t|u_t,x_{t-1})$ for proposal $\pi(x_t)$ is not ideal because weights&amp;nbsp;$w_t^{[m]}$ are then computed according to the observation model&amp;nbsp;$p(z_t|x_t)$, which, for precise laser scanners, likely results in a small set of particles associated with large weights while the remaining particles only experience negligible weights.&amp;nbsp;Grisetti, Stachniss, and Burgard therefore suggest to include&amp;nbsp;the observations $z_t$ in the proposal function when generating the next generation of samples, more on this below.&lt;br /&gt;Another issue of the particle filter is the variance inherent in random sampling. In general, we would like the particle set drawn from the proposal distribution to repeatably be a good representation of the true density, i.e. to display low variance. Doucet derived an &lt;i&gt;optimal proposal&lt;/i&gt;&amp;nbsp;$\pi(x_t)$ with respect to the variance of the particle weights which has a convenient recursive form \[\pi(x_{1:t}|z_{1:t}, u_{1:t}) = \pi(x_t|x_{1:t-1},z_{1:t},u_{1:t}) \pi(x_{1:t-1}|z_{1:t-1},u_{1:t-1}) \] allowing us to compute the particle weights at time $t$, $w_t$, recursively as well. The exact form of the optimal proposal $\pi(x_t)$ together with the recursive weight computation is given in the paper in Equations 9 and 13, respectively.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SLAM and Rao-Blackwellization:&lt;/b&gt;&lt;br /&gt;The SLAM (simultaneous localization and mapping) problem can be stated in two forms, an online and a full form. The former is to obtain the posterior joint distribution over location of the robot at time $t$ together with the map, $p(x_t, m|z_{1:t},u_{1:t})$ while the latter is concerned with the entire robot path $x_{1:t}$ and can be stated as&amp;nbsp;$p(x_{1:t}, m|z_{1:t},u_{1:t})$.&amp;nbsp;Rao-Blackwellization uses the following factorization \[p(x_{1:t}, m|z_{1:t},u_{1:t})=p(m|x_{1:t},z_{1:t})p(x_{1:t}|z_{1:t},u_{1:t})\]&amp;nbsp;which makes this problem a trajectory estimation problem (second factor) and a map computation (first factor). The mapping part given known trajectory $x_{1:t}$ is easily solved and a particle filter can be used to estimate the path distribution (the second factor). Note that here each particle corresponds to a path instantiation $x_{1:t}^{[k]}$ and has an associated map $m$ based on that path.&lt;br /&gt;&lt;br /&gt;We are now ready to state the &lt;b&gt;contributions of the paper&lt;/b&gt;. First, the authors present a proposal distribution that incorporates the observations $z_t$ (as briefly mentioned above) and show how to compute it with gridmaps. Second, the authors describe an adaptive resampling technique which reduces the amount of resampling to maintain a diverse particle set and to avoid particle depletion, a common problem of the particle filter.&lt;br /&gt;More details on the first contribution: under the assumption that the optimal proposal is peaked (due to peaked observation model&amp;nbsp;$p(z_t|x_t)$ with accurate sensors, as mentioned above), we should focus sampling around the maximum of the proposal. For gridmaps, the authors employ a scanmatching procedure to narrow down the position estimate given by the odometry. Concretely, the authors use hillclimbing to correct the odometry estimate extrapolated from $x_t^{[k]}$ until it best fits the laser observation $z_t$ and estimate the optimal proposal with a Gaussian around that maximum. The next $x_{t+1}^{[k]}$ is drawn from that Gaussian and the weight of this particle is updated according to Equation 19 in the paper.&lt;br /&gt;Second, in order to avoid particle depletion, resampling is limited and only carried out if the dispersion of particles becomes too large. The criterion used to determine dispersion is the &lt;i&gt;effective sample size&lt;/i&gt;, $N_{eff}$ which is defined as $$\frac{1}{\sum_{i=1}^M(\~w^{[i]})^2}$$ for normalized particle weights $\~w^{[i]}$. Experimental results and a discussion of the behavior of the algorithm with different datasets are provided in the paper. Good stuff, and it actually works! It&#39;s at the core of&amp;nbsp;&lt;a href=&quot;http://www.willowgarage.com/&quot;&gt;WillowGarage&lt;/a&gt;&#39;s navigation stack for the PR2!</content><link rel='replies' type='application/atom+xml' href='http://blog.robbel.com/feeds/4392870544801702842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.robbel.com/2009/11/occupancy-grid-slam-with-rao_16.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5599655897798294228/posts/default/4392870544801702842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5599655897798294228/posts/default/4392870544801702842'/><link rel='alternate' type='text/html' href='http://blog.robbel.com/2009/11/occupancy-grid-slam-with-rao_16.html' title='Occupancy grid SLAM with Rao-Blackwellized Particle Filters'/><author><name>Philipp</name><uri>http://www.blogger.com/profile/12471512460965256711</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5599655897798294228.post-406651782573418661</id><published>2009-10-13T01:00:00.001-07:00</published><updated>2009-10-14T14:30:22.681-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Diversos"/><title type='text'>Hello World!</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;Welcome to my new blog! In this space I plan to present research results and comments on published papers in the fields of robotics, multi-agent systems, and machine learning.&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;As a start, I uploaded my current reading list to &lt;a href=&quot;http://www.bibsonomy.org/user/robbel&quot;&gt;bibsonomy&lt;/a&gt;&amp;nbsp;and set up a&amp;nbsp;&lt;a href=&quot;http://feeds.feedburner.com/bibsonomy&quot;&gt;feedburner&lt;/a&gt;&amp;nbsp;feed. Feel free to take a look, subscribe, or comment on my literature selection. You may also be interested in my &lt;a href=&quot;http://feeds.feedburner.com/ailist&quot;&gt;AI aggregator&lt;/a&gt;&amp;nbsp;feed in which I aggregate posts from the&amp;nbsp;&lt;a href=&quot;https://secure.engr.oregonstate.edu/mailman/listinfo/uai&quot;&gt;UAI&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href=&quot;https://mailman.srv.cs.cmu.edu/mailman/listinfo/connectionists&quot;&gt;Connectionists&lt;/a&gt;&amp;nbsp;mailing lists. Please &lt;a href=&quot;http://feeds.feedburner.com/probot&quot;&gt;subscribe&lt;/a&gt;&amp;nbsp;to this blog and check back soon for updated content.&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.robbel.com/feeds/406651782573418661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.robbel.com/2009/10/hello-world.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5599655897798294228/posts/default/406651782573418661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5599655897798294228/posts/default/406651782573418661'/><link rel='alternate' type='text/html' href='http://blog.robbel.com/2009/10/hello-world.html' title='Hello World!'/><author><name>Philipp</name><uri>http://www.blogger.com/profile/12471512460965256711</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>