<?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-4695338688998685003</id><updated>2011-07-30T10:45:10.049-07:00</updated><category term='gcc'/><category term='carspeed'/><category term='vision'/><category term='embedding'/><category term='python'/><category term='c++'/><category term='shared'/><category term='robotics'/><category term='library'/><category term='jde'/><category term='autoload'/><category term='c'/><title type='text'>David Lobato</title><subtitle type='html'>I'm a computer scientist interested in robotic systems.
This is a technical blog where I speak mainly about robotics, software programming and other related subjects.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://davidlobato.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4695338688998685003/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://davidlobato.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>David Lobato</name><uri>http://www.blogger.com/profile/04272116825504515740</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>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4695338688998685003.post-5811735922160901009</id><published>2010-03-08T07:11:00.000-08:00</published><updated>2010-03-15T08:12:02.870-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='vision'/><category scheme='http://www.blogger.com/atom/ns#' term='robotics'/><category scheme='http://www.blogger.com/atom/ns#' term='carspeed'/><title type='text'>Carspeed 5.0</title><content type='html'>&lt;div&gt;Carspeed 5.0 is my master's project. The idea is to port the current &lt;a href="http://jderobot.org/index.php/CarSpeed"&gt;carspeed&lt;/a&gt;, developed in the URJC Robotics Group, to &lt;a href="http://jderobot.org/index.php/Main_Page"&gt;jderobot&lt;/a&gt; 5.0, the experimental version of our robotics middleware. Jderobot 5.0 is in an early development state, so porting carspeed will help us to verify the non-functional requirements we are trying to get in terms of  performance, inter-machine distribution and usability. It will generate valuable feedback to add new functionalities and to test the existing ones.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;That's a preliminary version of carspeed 5.0:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-5eda932b1a09e74d" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v8.nonxt1.googlevideo.com/videoplayback?id%3D5eda932b1a09e74d%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329956565%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D537AB2360E649F1E5FFFEB1E187F11F0E744F49A.2D17E67F910B9012CBA15FDC589919D18CD79217%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D5eda932b1a09e74d%26offsetms%3D5000%26itag%3Dw160%26sigh%3DHNvkrTxuzdxtAYBoR10phYO2H9M&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v8.nonxt1.googlevideo.com/videoplayback?id%3D5eda932b1a09e74d%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329956565%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D537AB2360E649F1E5FFFEB1E187F11F0E744F49A.2D17E67F910B9012CBA15FDC589919D18CD79217%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D5eda932b1a09e74d%26offsetms%3D5000%26itag%3Dw160%26sigh%3DHNvkrTxuzdxtAYBoR10phYO2H9M&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the video we can see how an area of the road is selected and rectified. The rectified image gives us an overhead perspective of the road that will let us estimate distances according to a standard coordinate system.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4695338688998685003-5811735922160901009?l=davidlobato.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidlobato.blogspot.com/feeds/5811735922160901009/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidlobato.blogspot.com/2010/03/carspeed-50.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4695338688998685003/posts/default/5811735922160901009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4695338688998685003/posts/default/5811735922160901009'/><link rel='alternate' type='text/html' href='http://davidlobato.blogspot.com/2010/03/carspeed-50.html' title='Carspeed 5.0'/><author><name>David Lobato</name><uri>http://www.blogger.com/profile/04272116825504515740</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-4695338688998685003.post-560265204230278745</id><published>2009-06-26T00:24:00.000-07:00</published><updated>2009-06-26T02:27:09.008-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='embedding'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='c'/><category scheme='http://www.blogger.com/atom/ns#' term='jde'/><title type='text'>jderobot meets Python</title><content type='html'>&lt;div&gt;&lt;a href="http://jde.gsyc.es/"&gt;jderobot&lt;/a&gt; is now able to load Python code with a new command "aload" allowing any kind of script to be loaded and executed inside an embedded interpreter. Thank you to the &lt;a href="http://docs.python.org/c-api/"&gt;Python/C API&lt;/a&gt; this task has been easier. Most of the code to do it can be found &lt;a href="http://svn.jde.gsyc.es/jde/jdec/trunk/base/loader.c"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now to load a Python script is as simple as:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;jderobot $&gt; aload hello.py&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Loading hello.py...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Hello world!&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;jderobot $&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Georgia, -webkit-fantasy;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Future jderobot4.4 will be able to load schemas programmed in Python through &lt;a href="http://www.swig.org/"&gt;Swig&lt;/a&gt; wrappers. Almost all the API will be available within Python and schemas will be able to "talk" to other ones, no matter their programming language.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&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/4695338688998685003-560265204230278745?l=davidlobato.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidlobato.blogspot.com/feeds/560265204230278745/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidlobato.blogspot.com/2009/06/jderobot-meets-python.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4695338688998685003/posts/default/560265204230278745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4695338688998685003/posts/default/560265204230278745'/><link rel='alternate' type='text/html' href='http://davidlobato.blogspot.com/2009/06/jderobot-meets-python.html' title='jderobot meets Python'/><author><name>David Lobato</name><uri>http://www.blogger.com/profile/04272116825504515740</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-4695338688998685003.post-961127597353223475</id><published>2009-03-26T10:08:00.000-07:00</published><updated>2009-03-27T11:31:54.495-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='autoload'/><category scheme='http://www.blogger.com/atom/ns#' term='gcc'/><category scheme='http://www.blogger.com/atom/ns#' term='library'/><category scheme='http://www.blogger.com/atom/ns#' term='shared'/><category scheme='http://www.blogger.com/atom/ns#' term='c'/><category scheme='http://www.blogger.com/atom/ns#' term='jde'/><title type='text'>Autoloading a module</title><content type='html'>Some time ago I made some tests on dlopened modules, trying to find some simple autoloading mechanisms. The usual way we were using dlopen was followed by a dlsym calls collection. This way you can get functions defined inside the module. But this forces the application to know the searched symbols names.&lt;br /&gt;&lt;br /&gt;An easy way to avoid this is letting the module to register itself, providing some registering mechanism, on loading time. So the only requirement is some kind of constructor called inmediatelly after dlopen call. gcc function atributes in C and variable initialization through functions in C++ are really easy ways to get this pourpouse.&lt;br /&gt;&lt;br /&gt;More info can be found &lt;a href="http://jde.gsyc.es/index.php/User:Dlobato#Autoloading_modules"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4695338688998685003-961127597353223475?l=davidlobato.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidlobato.blogspot.com/feeds/961127597353223475/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidlobato.blogspot.com/2009/03/autoloading-module.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4695338688998685003/posts/default/961127597353223475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4695338688998685003/posts/default/961127597353223475'/><link rel='alternate' type='text/html' href='http://davidlobato.blogspot.com/2009/03/autoloading-module.html' title='Autoloading a module'/><author><name>David Lobato</name><uri>http://www.blogger.com/profile/04272116825504515740</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>
