<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    &nbsp; Hola Mikel,<br>
    <br>
    &nbsp; el mundo de gazebo es complejo pero lo de comprobar las masas de
    las ruedas ya me parece excesivo :)<br>
    <br>
    &nbsp; El error que comentas creo que me suena (no s&eacute; porqu&eacute;). Si est&aacute;s
    utilizando el introrob que ya hab&iacute;a, f&iacute;jate en el "controller.cpp",
    en la funci&oacute;n siguiente:<br>
    <font face="Courier New, Courier, monospace">&nbsp;&nbsp;&nbsp; void
      Controller::stopMotors () {<br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this-&gt;mprx-&gt;setV (0.0);<br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this-&gt;mprx-&gt;setW (0.0);<br>
      &nbsp;&nbsp;&nbsp; }</font><br>
    <br>
    &nbsp; A esta funci&oacute;n es a la que llamas cuando pulsas en el bot&oacute;n
    "Stop". Trata de poner trazas a continuaci&oacute;n y verifica que la
    velocidad lineal y rotacional vale un 0 como la copa de un pino.<br>
    <br>
    &nbsp; Esta prueba te deber&iacute;a salir como comento. Pero por probar.<br>
    <br>
    &nbsp; Sinceramente, yo creo que el error es a m&aacute;s alto nivel. Ocurre que
    para que la velocidad rotacional sea X, la rueda loca del Pioneer
    gira. El hecho de que t&uacute; pares ambas velocidades no implica que esa
    rueda vuelva a su sitio, de hecho no ocurre as&iacute;. La soluci&oacute;n inicial
    (tambi&eacute;n conocida como &ntilde;apa) es tener dos botones; uno para parar la
    velocidad rotacional, y acto seguido, cuando la rueda loca est&eacute; en
    su sitio, empleamos el otro para parar la velocidad lineal.<br>
    &nbsp; La opci&oacute;n ideal, y si la l&oacute;gica no falla, ser&iacute;a hacer lo
    siguiente: prueba a cambiar el orden de las instrucciones que te
    indico arriba, para que primero se ponga la velocidad rotacional a 0
    y despu&eacute;s la lineal.<br>
    <br>
    &nbsp; A ver si damos con el clavo. Saludos,<br>
    <br>
    &nbsp; Julio<br>
    <br>
    On 12-02-14 09:29 PM, Mikel Gonzalez Baile wrote:
    <blockquote
cite="mid:CAOff0X7BF-CtFSsrKswtbgdXY6t86uAbzdWZ83f8+Yd2jVBV8g@mail.gmail.com"
      type="cite">He seguido realizando pruebas y creo que puedo acotar
      un poco m&aacute;s el problema.
      <div><br>
      </div>
      <div>El problema no es que tarde en responder en girar en sentido
        contrario, al menos con velocidades de rotaci&oacute;n comprendidas
        entre +-20 deg/s (aprovecho para preguntar que velocidad de giro
        se aproximar&iacute;a a la realidad) ya que m&aacute;s o menos creo que el
        comportamiento es bastante real con el torque a 0.8, que es su
        valor actual. El problema es el siguiente:</div>
      <div><br>
      </div>
      <div>1) Lanzo gazebo e introrob y le doy una velocidad lineal de
        +2000mm/s (por ejemplo), ning&uacute;n problema.</div>
      <div>2) Paro el robot por completo (o no) y le doy una velocidad
        lineal de -2000mm/s (por ejemplo), ning&uacute;n problema de vuelcos ni
        nada.</div>
      <div>3) Paro de nuevo el robot por completo, le doy una velocidad
        rotacional de +20 deg/s (por ejemplo) y cuando gira 180&ordm; le paro
        por completo, ning&uacute;n problema.</div>
      <div>4) El problema viene aqu&iacute;, el robot parado completamente, le
        vuelvo a dar una velocidad lineal de +2000mm/s y durante la
        aceleraci&oacute;n tiende a desviarse hacia su derecha (unas veces m&aacute;s
        que otras, pero de una forma considerable siempre).</div>
      <div><br>
      </div>
      <div>Por eso digo que es como si "persistiera" ese giro previo
        aunque hayas parado el robot por completo, ya que si no se
        realiza dicho giro, el robot no se desv&iacute;a.</div>
      <div><br>
      </div>
      <div>Estoy probando a modificar los valores de las masas de las
        ruedas e intentando comprender el resto de la configuraci&oacute;n,
        aunque a&uacute;n no he conseguido un buen resultado, seguir&eacute; probando.</div>
      <div><br>
      </div>
      <div>Un saludo!</div>
      <div><br>
      </div>
      <div>Maikel.</div>
      <div><br>
        <div class="gmail_quote">El 14 de febrero de 2012 09:49,
          JoseMaria <span dir="ltr">&lt;<a moz-do-not-send="true"
              href="mailto:josemaria.plaza@gmail.com">josemaria.plaza@gmail.com</a>&gt;</span>
          escribi&oacute;:<br>
          <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
            0.8ex; border-left: 1px solid rgb(204, 204, 204);
            padding-left: 1ex;">Uhm... suena a que la acelaraci&oacute;n en el
            giro (torque) es peque&ntilde;a y por<br>
            eso tarda en dejar de girar en el sentido que lleva, tiene
            inercia.<br>
            Quiz&aacute; se pueda mirar esa aceleraci&oacute;n del robot pioneer en
            gazebo, tanto<br>
            para girar como para traccionar, y probar con otros valores,
            y/o<br>
            cambiando las masas por defecto de sus partes. Rebuscando en
            los<br>
            ficheros de configuraci&oacute;n se puede cambiar. Por ejemplo en<br>
            models/pioneer2dx.model tienes el par&aacute;metro Torque (fuerza
            de los<br>
            motores) y el par&aacute;metro mass para cada uno de las partes de
            ese robot<br>
            simulado. Tal vez puedas probar por ah&iacute;.<br>
            <br>
            &iquest;Qu&eacute; velocidades de giro le estas ordenando? Para las
            velocidades de<br>
            tracci&oacute;n 400mm/s dir&iacute;a que es normal-lento, moverse a unos
            800-1000 mm/s<br>
            es m&aacute;s realista, y a unos 2000mm/s una chulada de r&aacute;pido.<br>
            <br>
            &iquest;Has rebuscado en la lista de correo de gazebo mensajes que
            te puedan<br>
            ayudar?<br>
            <br>
            JoseMaria<br>
            On Mon, 2012-02-13 at 19:00 +0100, Mikel Gonzalez Baile
            wrote:<br>
            &gt; Hola gente,<br>
            <div>
              <div class="h5">&gt;<br>
                &gt;<br>
                &gt;<br>
                &gt;<br>
                &gt;<br>
                &gt; durante las pruebas del nuevo introrob estoy
                comprobando que hay<br>
                &gt; algunos problemas de inercia en gazebo con el robot
                pioneer. El<br>
                &gt; problema que encuentro es un tanto extra&ntilde;o, por lo
                que voy a intentar<br>
                &gt; detallarlo lo mejor posible para ver si me pod&eacute;is
                dar alguna pista<br>
                &gt; sobre qu&eacute; modificar y d&oacute;nde para tratar de
                arreglarlo (o en el peor<br>
                &gt; caso mejorarlo):<br>
                &gt;<br>
                &gt;<br>
                &gt; Por un lado, si inicio gazebo y comando al robot
                una velocidad lineal<br>
                &gt; no hay problema ninguno, ya sea un valor grande o
                peque&ntilde;o (entre<br>
                &gt; 0-400, por ejemplo). Asimismo, si le meto otra
                velocidad lineal pero<br>
                &gt; en sentido contrario, tampoco hay problema (ni
                vuelcos ni nada).<br>
                &gt;<br>
                &gt;<br>
                &gt; El problema viene cuando le comandas una velocidad
                rotacional, que el<br>
                &gt; robot comienza a girar, luego le pones a 0 (robot
                parado<br>
                &gt; completamente) y le das una velocidad lineal
                (superior a 200, m&aacute;s o<br>
                &gt; menos), ya que durante la aceleraci&oacute;n (hasta que
                consigue la<br>
                &gt; velocidad) el robot se desv&iacute;a sin un patr&oacute;n muy
                claro. Es como si la<br>
                &gt; fuerza del giro previo "persistiera" y esto
                repercute en su normal<br>
                &gt; comportamiento a posteriori.<br>
                &gt;<br>
                &gt;<br>
                &gt; Espero haberme explicado y que me pod&aacute;is guiar un
                poco para luego yo<br>
                &gt; tratar de arreglarlo.<br>
                &gt;<br>
                &gt;<br>
                &gt; Un saludo y gracias.<br>
                &gt;<br>
                &gt;<br>
                &gt; Mikel.<br>
              </div>
            </div>
            &gt; _______________________________________________<br>
            &gt; Jde-developers mailing list<br>
            &gt; <a moz-do-not-send="true"
              href="mailto:Jde-developers@gsyc.es">Jde-developers@gsyc.es</a><br>
            &gt; <a moz-do-not-send="true"
              href="http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers"
              target="_blank">http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers</a><br>
            <span class="HOEnZb"><font color="#888888"><br>
                --<br>
                <a moz-do-not-send="true" href="http://gsyc.es/jmplaza"
                  target="_blank">http://gsyc.es/jmplaza</a><br>
                Universidad Rey Juan Carlos<br>
                <br>
                <br>
              </font></span></blockquote>
        </div>
        <br>
      </div>
      <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
Jde-developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Jde-developers@gsyc.es">Jde-developers@gsyc.es</a>
<a class="moz-txt-link-freetext" href="http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers">http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers</a>
</pre>
    </blockquote>
  </body>
</html>