<?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-7480758147387236475</id><updated>2011-07-31T00:10:04.737-07:00</updated><title type='text'>KUBUS</title><subtitle type='html'>El sobrino de Skynet</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://elrobotkubus.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7480758147387236475/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://elrobotkubus.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Kubus</name><uri>http://www.blogger.com/profile/16644428205893466111</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>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7480758147387236475.post-8639328465431541571</id><published>2010-04-29T15:45:00.000-07:00</published><updated>2010-06-07T06:14:44.446-07:00</updated><title type='text'>KUBUS, el último robot</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;¡Saludos!&lt;br /&gt;&lt;br /&gt;Somos Alejandro Núñez y Rui Almeida y abrimos nuestro blog con  un poco de retraso. Pero ya se sabe, ¡los últimos serán los  primeros!&lt;br /&gt;&lt;br /&gt;Este blog está dedicado a las prácticas de la asignatura de  robótica de la URJC, actualizaremos con lo que vayamos aprendiendo en ella, de  la forma más amena posible :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7480758147387236475-8639328465431541571?l=elrobotkubus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elrobotkubus.blogspot.com/feeds/8639328465431541571/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://elrobotkubus.blogspot.com/2010/02/kubus-el-ultimo-robot.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7480758147387236475/posts/default/8639328465431541571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7480758147387236475/posts/default/8639328465431541571'/><link rel='alternate' type='text/html' href='http://elrobotkubus.blogspot.com/2010/02/kubus-el-ultimo-robot.html' title='KUBUS, el último robot'/><author><name>Kubus</name><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-7480758147387236475.post-5527748249362174121</id><published>2010-03-25T19:45:00.000-07:00</published><updated>2010-06-07T06:15:18.085-07:00</updated><title type='text'>Primeros pasitos</title><content type='html'>&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Bueno, bueno! Primera  práctica a contrarreloj, anoche bien tarde terminamos de configurar todo después  de 3 días peleándonos con el Linux.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;Afortunadamente nos  ha ido bien, hemos tenido tiempo para responder todas las cuestiones que se nos  pedían. Y es que esta primera práctica, aunque larga, ha sido sencillita.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Empezamos comentando el  segundo apartado, ya que el primero es completamente trivial. La visualización  de la odometría del motor, que parecía ser muy sencilla, nos ha traido más  problemas de lo que esperábamos. De vez en cuando aparecían datos incoherentes y  a veces se salía de los límites (0º-359º). Pero, misterios de la informática, en  una de las soluciones que hemos dado que era idéntica a una anterior sí que ha  funcionado adecuadamente.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;La clase TachoPilot es  realmente cómoda. Indicándole el diámetro de las ruedas y la distancia entre sí,  esta clase nos da la opción de girar el robot un número de grados (y no los  motores, ya que girar 45º una rueda no es lo mismo, ni mucho menos, que girar  45º el robot). Con ella, realizar un cuadrado con el robot no ha sido díficil.  Al principio tuvimos problemas ya que el robot giraba demasiado, pero nos dimos  cuenta de que las medidas estaban mal (de rueda a rueda), y tras eso, el  cuadrado ha sido bastante preciso.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;a href="http://www.youtube.com/watch?v=o9udonTCcDA"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="color: rgb(0, 0, 0);  -webkit-text-decorations-in-effect: none; font-family:Georgia, serif;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;a href="http://www.youtube.com/watch?v=o9udonTCcDA"&gt;&lt;span&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/o9udonTCcDA&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/o9udonTCcDA&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Si hemos tenido algunas  variaciones al tomar las medidas ha sido precisamente porque el bolígrafo que  pintaba la línea en el papel frenaba el robot y hacía que este patinara  ligeramente al girar, haciendo unas curvas menos pronunciadas, como se puede  observar en los videos.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;a href="http://www.youtube.com/watch?v=P3SNe7m4kIA"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;a href="http://www.youtube.com/watch?v=P3SNe7m4kIA"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/P3SNe7m4kIA&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/P3SNe7m4kIA&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;&lt;a href="http://www.youtube.com/watch?v=2QCHCbYbNmY"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Georgia, serif;"&gt;&lt;a href="http://www.youtube.com/watch?v=2QCHCbYbNmY"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/PQsunxmNdcI&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/PQsunxmNdcI&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;La verdad es que no hay  mucho más que decir, la matriz de covarianza calculada tiene unos valores  aceptable, lo que quiere decir que nuestro robot mola mucho.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;¡Nos vemos en la  próxima práctica!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7480758147387236475-5527748249362174121?l=elrobotkubus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elrobotkubus.blogspot.com/feeds/5527748249362174121/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://elrobotkubus.blogspot.com/2010/02/primeros-pasitos.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7480758147387236475/posts/default/5527748249362174121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7480758147387236475/posts/default/5527748249362174121'/><link rel='alternate' type='text/html' href='http://elrobotkubus.blogspot.com/2010/02/primeros-pasitos.html' title='Primeros pasitos'/><author><name>Kubus</name><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-7480758147387236475.post-1382476380470923447</id><published>2010-03-11T23:19:00.000-08:00</published><updated>2010-06-07T06:15:59.050-07:00</updated><title type='text'>Pubertad</title><content type='html'>&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;¡Segunda práctica!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Ahí vamos, ¡viento en popa! Kubus se hace  mayor, tiene cabeza, bracitos y está más alto y encantador... Un mojón pa  Wall-e!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Hemos empezado a trabajar con sensores, con  los que Kubus empieza a hacer cosas interesantes. Ha aprendido a echar a andar  cuando escucha una palmada, y a pararse cuando escucha otra:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span class="Apple-style-span"   style="font-family:verdana;color:#0000FF;"&gt;&lt;span class="Apple-style-span"  style="color: rgb(0, 0, 0);  font-family:Georgia, serif;"&gt;&lt;a href="http://www.youtube.com/watch?v=CkpgratnmzY"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/CkpgratnmzY&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/CkpgratnmzY&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Sí, es cierto, se salta una palmada ¿vamos a  pelearnos por eso? &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span class="Apple-style-span"  style=" ;font-family:verdana;"&gt;Ya lo corregimos después con un menor valor para "sleep".&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;También sabe que no es suficientemente  fuerte (todavía) para derribar paredes, así que cuando se choca con una  ¡retrocede y cambia de dirección!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;a href="http://www.youtube.com/watch?v=s1aWT5rCh5g"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/s1aWT5rCh5g&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/s1aWT5rCh5g&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Breve pero intenso.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Y lo mejor de todo, si alguna vez Kubus  acabara encerrado en algún laberinto por alguno de sus muchos enemigos (vease  Roxxxy, cigarro o tomatito) sería capaz de salir en unos minutos y reirse de  ellos. Porque Kubus es capaz de seguir las paredes, doblando en las esquinas y  doblando el cuello con más estilo que Robocop:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/3DcxRNa_NHQ&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/3DcxRNa_NHQ&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Bueno, aquí estaba un poco nervioso.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Aquí Kubus fue directo al servicio de las  chicas (qué listo), pero Youtube nos ha censurado el video así que os lo  imaginais. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;a href="http://www.youtube.com/watch?v=A8BWCu_U8kE"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/A8BWCu_U8kE&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/A8BWCu_U8kE&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Vale, quizá este tampoco sea un gran  ejemplo, pero la verdad es que sí que sale de laberintos y queda muy guapo. Ya  colgaremos otro video en el nuevo blog.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;En esta práctica también hemos tenido que  hacer unos mil doscientos millones de medidas, pero al menos ya entendemos  claramente los conceptos de incertidumbre y qué es lo que indican los valores de  las matrices de covarianza.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px" align="center"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;img height="205" src="http://el-robot.blogspot.es/img/imagem1.png" width="275" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Kubus aprende lentamente y nos quita mucho,  mucho tiempo, pero es un tipo divertido.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;¡Hasta la próxima!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7480758147387236475-1382476380470923447?l=elrobotkubus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elrobotkubus.blogspot.com/feeds/1382476380470923447/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://elrobotkubus.blogspot.com/2010/02/pubertad.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7480758147387236475/posts/default/1382476380470923447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7480758147387236475/posts/default/1382476380470923447'/><link rel='alternate' type='text/html' href='http://elrobotkubus.blogspot.com/2010/02/pubertad.html' title='Pubertad'/><author><name>Kubus</name><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-7480758147387236475.post-5909305862962522519</id><published>2010-02-25T14:10:00.000-08:00</published><updated>2010-06-07T06:16:22.015-07:00</updated><title type='text'>Por las calles nocturnas</title><content type='html'>¡Hola!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En la práctica de esta semana hemos sobrevivido como hemos podido, ya que un servidor ha tenido un accidente esquíando y casi se mata. Hemos hecho la práctica por videoconferencia, y compilando a distancia el código ya que el ordenador de Rui aún no está configurado correctamente para usar Lejos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Kubus se hace mayor, y le gusta salir por las noches a tomarse unas copas. Ahora es capaz de sortear los obstáculos en la total oscuridad y dirigirse hacia la luz de un sitio bien ambientado.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/eIKLe5DM2Uc&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/eIKLe5DM2Uc&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El video está grabado con la habitación iluminada para que se vea mejor, pero Kubus iba con los ojos cerrados.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Y aquí podemos ver como se encara hacia la luz, usando dos sensores infrarrojos reciclados del RCX con gran maestría.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/C0orjyixNHw&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/C0orjyixNHw&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En esta práctica hemos diseñado "comportamientos" del robot, que se activan cuando se dan ciertas condiciones y en base a algunas prioridades. Gracias a esto, usando los dos anteriores comportamientos, Kubus es capaz de ir hacia una luz sorteando todos los obstáculos del camino. Pero la verdad es que el movimiento no ha quedado fluido del todo (demasiado bien nos ha salido todo dadas las circunstancias), así que ya colgaremos un video la próxima semana cuando el programa completo esté bien pulido.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Mejorándose poco a poco os saluda Ale,&lt;/div&gt;&lt;div&gt;¡nos vemos pronto!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7480758147387236475-5909305862962522519?l=elrobotkubus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elrobotkubus.blogspot.com/feeds/5909305862962522519/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://elrobotkubus.blogspot.com/2010/03/por-las-calles-nocturnas.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7480758147387236475/posts/default/5909305862962522519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7480758147387236475/posts/default/5909305862962522519'/><link rel='alternate' type='text/html' href='http://elrobotkubus.blogspot.com/2010/03/por-las-calles-nocturnas.html' title='Por las calles nocturnas'/><author><name>Kubus</name><uri>http://www.blogger.com/profile/16644428205893466111</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-7480758147387236475.post-1246013987075181822</id><published>2010-02-18T18:00:00.000-08:00</published><updated>2010-06-07T06:19:08.012-07:00</updated><title type='text'>Perdone, ¿me puede decir dónde estoy?</title><content type='html'>&lt;p class="MsoNormal"&gt;Filtro de partículas. Me gusta pronunciarlo, aunque la verdad, no entiendo por qué se llama así. Vale, lo del filtro lo pillo, pero ¿por qué llamar partículas a las hipótesis de situación?&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Bueno resulta que Kubus le cogió el gusto a eso de salir por las noches, y la última acabó tan mal que no sabía ni volver a casa… Así que le hemos incorporado un programa sencillito que dadas las coordenadas de su casa sea capaz de llegar hasta ella. También le hemos añadido un filtro de partículas y ahora Kubus es capaz de autolocalizarse (¡la última vez, ni sabía dónde estaba!)&lt;/p&gt;  &lt;p class="MsoNormal"&gt;La idea del primer ejercicio es que Kubus se mueva describiendo un cuadrado de 40 cm de lado desde la posición (30,30) y que muestre por pantalla dónde cree él que está situado en el mapa.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;A ver si consigo explicar esto del filtro de forma simple:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Creamos un mapa (en este caso un cuadrado 1mx1m) &lt;span style="mso-spacerun:yes"&gt; &lt;/span&gt;y proponemos cien hipótesis de situación, es decir, cien lugares posibles en los que el robot puede estar. Mediante el filtro, se asigna una probabilidad a cada posición y se recogen las más probables. También mediante el filtro, podemos aplicar un movimiento (el del robot) a cada partícula, con el ruido correspondiente, creando así una nueva generación de partículas a partir de las más probables de la generación anterior, que ya no nos sirve puesto que Kubus se ha movido.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Para empezar inicializamos todas las partículas en las coordenadas (30,30), que es dónde Kubus está en principio. No tomamos (0,0) porque si se desviara podría tomar valores negativos y se saldría del mapa. Así pues, al mostrar por pantalla las partículas, solo aparecerá un punto (30,30) en el que están las cien. Kubus empieza a moverse, y el filtro aplica el movimiento a las partículas. De esta manera, cuando haya recorrido toda la trayectoria, en la pantalla debería mostrarse un cuadrado (todas las posiciones en las que ha estado Kubus) y es lo que aparece.&lt;/p&gt;&lt;p class="MsoNormal"&gt;Pero el filtro no le aplica el mismo movimiento exacto a cada partícula, porque tiene en cuenta la imprecisión (ruido) de movimiento de giro y desplazamiento, así que Kubus sabe que puede que no esté de vuelta exactamente en el origen. Aparecen pues los lugares en los que más probablemente esté, quedando como resultado una “mancha” alrededor del destino.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/rfQ_Yyq0zso&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/rfQ_Yyq0zso&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/i0VFX-2kkUI&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/i0VFX-2kkUI&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Quizá no sea demasiado vistoso, pero es muy interesante saber dónde esta uno mismo en el mapa para decidir lo próximo que se va a hacer.&lt;/p&gt;&lt;p class="MsoNormal"&gt;En el segundo ejercicio, queremos que, introducidas unas coordenadas y un ángulo mediante los botones de Kubus, éste vaya hacia dicho punto. Para ello, primero rota en dirección al destino y avanza la distancia exacta. Una vez allí, se coloca en la dirección que le hayamos dicho.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Si tomamos (0,0) como la posición de Kubus, el ángulo de la trayectoria es el arco tangente de la coordenada Y entre la coordenada X (trigonometría simple). Y la distancia a recorrer se halla con el teorema de Pitágoras (la raíz cuadrada de la suma de los cuadrados de X e Y).&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Aquí, Kubus se coloca en dirección a la tiza (coordenadas 60,40) y va hacia ella. El ángulo introducido es 180º, con lo que termina en dirección opuesta a la original.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/6tZz8Mv97BQ&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/6tZz8Mv97BQ&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Hacer el recorrido mediante curvas no lo hemos conseguido implementar, porque pensábamos que no estaba tan enfocado a la geometría y que había otra forma de hacerlo. Después de las explicaciones en clase hemos visto que no es tan difícil.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Sin más, nos despedimos hasta la próxima práctica, ¡que es la última de Kubus!&lt;/p&gt;&lt;p class="MsoNormal"&gt;¡Un saludo!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7480758147387236475-1246013987075181822?l=elrobotkubus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elrobotkubus.blogspot.com/feeds/1246013987075181822/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://elrobotkubus.blogspot.com/2010/03/perdone-me-puede-decir-donde-estoy.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7480758147387236475/posts/default/1246013987075181822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7480758147387236475/posts/default/1246013987075181822'/><link rel='alternate' type='text/html' href='http://elrobotkubus.blogspot.com/2010/03/perdone-me-puede-decir-donde-estoy.html' title='Perdone, ¿me puede decir dónde estoy?'/><author><name>Kubus</name><uri>http://www.blogger.com/profile/16644428205893466111</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-7480758147387236475.post-4674387577090415903</id><published>2010-02-10T14:10:00.000-08:00</published><updated>2010-06-07T06:16:51.044-07:00</updated><title type='text'>Fín de los días</title><content type='html'>&lt;div&gt;Kubus ha evolucionado, esta vez por última, para convertirse en un viejecito encorvado. Después de esta práctica no lo volveremos a ver, pero esto es despedirse por todo lo alto: &lt;span class="Apple-style-span"  style="color:#CC0000;"&gt;¡Kubus ha quedado campeón!&lt;/span&gt; Ha ganado la competición de autolocalización y navegación con amplio margen. Ya dijimos en la primera entrada del blog que los últimos serían los primeros :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esta práctica ha sido, sin duda, la más tediosa y desesperante, ya que muchos algoritmos proporcionados por la API no funcionaban en absoluto ¡y no lo sabíamos!. Pero vayamos por partes:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Ejercicio 1: Visualización del mapa y las partículas (2 puntos)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Este es uno de varios ejercicios que construyen la base para el reto final. En concreto este no tiene la menor complicación. Si bien se resuelve en 3 minutos, nosotros tomamos al pie de la letra "distribuir uniformemente las partículas en el mapa" y asi lo hicimos. Repartimos todas las partículas con la misma distancia entre ellas y no de forma aleatoria, así que tuvimos que hacer un buen montón de cuentas.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Ejercicio 2: Diseño del radar (2 puntos)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lo mismo que el anterior, el radar es clave para tomar las distancias mediante el sensor de ultrasonidos y almacenarlas en unas estructuras de datos (RangeReadings) que usaremos asiduamente en siguientes ejercicios.&lt;/div&gt;&lt;div&gt;Nuestro radar en concreto capturaba la distancia cada 10º, asi que tomaba 36 medidas (0º-350º ambos inclusive).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Ejercicio 3: Reconocimiento de posición y orientación (4 puntos)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Este SÍ es un ejercicio complejo. Se trata de, marcados 5 puntos en un mapa, colocar a Kubus en cualquiera de ellos y con cualquier dirección y conseguir que éste sea capaz de decir en que punto está y en que dirección (con una resolución de 10º).&lt;/div&gt;&lt;div&gt;Para ello, antes Kubus tiene que "aprender" las características de los puntos, así que primero Kubus se coloca en cada uno de ellos y toma medidas usando el radar.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/E62-F5i6LTA&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/E62-F5i6LTA&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ahora viene lo interesante. Mediante magia (y algunos cálculos con unas cositas llamadas histogramas) nuestro robot determina con gran precisión en que punto está y que dirección lleva. No explico más porque sería profundizar mucho y la verdad es que os había mentido, no es tan interesante. Quien quiera saber más del tema, aquí viene muy bien explicado:&lt;/div&gt;&lt;div&gt;http://gsyc.escet.urjc.es/moodle/file.php/11/Practicas/09_10/Practica5/p5.pdf&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En principio tuvimos muchos problemas con este ejercicio, ya que la idea correcta nos vino tras un buen rato de pensar, tuvimos un error casi insignificante en la implementación que pasó desapercibido y que echaba por tierra todos los cálculos. Pero al final bien, gracias.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Ejercicio 4: Reto de la auto-localización (8 puntos)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Y aquí viene lo gordo. Usando todos los algoritmos anteriores, conseguir que Kubus, colocado en un punto al azar con una dirección también al azar, recorra todo los demas puntos (son 5), intentando corregir la trayectoria en cada uno tomando las medidas adecuadas. Si bien parece que no es muy complejo, la realidad es que el error de cada giro y de cada viaje del robot es BASTANTE alto, y si Kubus no usara la auto-localización y viajara a ciegas, probablemente acabaría en Coria del Río.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Y lo complicado sobre todo viene porque el que hizo los filtros de partículas, los hizo con los pies parece ser, porque no funcionan ni para atrás. Hemos tenido que corregir un montón de código de algoritmos que se suponían funcionales para conseguir un resultado aceptable. No es nada fácil saber que hipótesis de situación es la correcta de entre todas las posibles, ya que tras hacer un recorrido, Kubus tiene en cuenta que hay un posible error, pero no sabe a donde le ha dirigido ese error. Afortunadamente, nuestro profesor Carlos nos echó una mano con una ecuación para asignarle peso (importancia) a las partículas. Aún así ha sido una pelea de muchas horas.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Pero con una gran recompensa, el reto lo hemos convertido una competición, y quien quedara más cerca de los destinos, se llevaría unos puntos extra, que desde aquí decimos que esperamos que sean un montón.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=QpAWCqNV8aU"&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/QpAWCqNV8aU&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/QpAWCqNV8aU&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Este video se grabó justo después de la competición (ya están dibujadas las "dianas") por mi querido compañero Rui, que como se ve, es un genio con la cámara. Planos absurdos aparte, Kubus lo clava y es porque mola un huevo. Cabe decir que todo el tiempo que está parado entre punto y punto está calculando los pesos de las partículas, para averiguar cual es el sitio más probable en el que esté, que sería la hipótesis de mayor peso.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Quizá nos veamos en la próxima práctica &lt;i&gt;optativa&lt;/i&gt; (la de dominar el mundo), aunque parece que como están las cosas con los exámenes encima, no está el horno pa bollos. Por si acaso, un saludo y muchas gracias por leer nuestro blog.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;¡Adiós!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;P.D: Próximamente, si obtenemos el permiso de los profesores, subiremos el código de todas las prácticas, para todos aquellos a los que pueda interesar y hacer así de este blog un sitio útil.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7480758147387236475-4674387577090415903?l=elrobotkubus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elrobotkubus.blogspot.com/feeds/4674387577090415903/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://elrobotkubus.blogspot.com/2010/04/fin-de-los-dias.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7480758147387236475/posts/default/4674387577090415903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7480758147387236475/posts/default/4674387577090415903'/><link rel='alternate' type='text/html' href='http://elrobotkubus.blogspot.com/2010/04/fin-de-los-dias.html' title='Fín de los días'/><author><name>Kubus</name><uri>http://www.blogger.com/profile/16644428205893466111</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>
