2 minute read

Las tareas principales de esta semana eran las mismas que la semana anterior, ya que no las pude completar:

  1. Modificar los ficheros de la semana anterior para que en lugar de tener sólo un fichero pudiésemos tener varios, y cargar el deseado en tiempo de ejecución
  2. Crear los patrones para caminar, levantarse de cúbito supino y levantarse de cúbito prono

Debido a que el patrón de caminar se me hizo muy complicado y no pude terminarlo a tiempo, decidí dejarlo para el último esta vez, dando más importancia a los patrones de levantarse.

Levantarse de cúbito supino

Para este movimiento, como se hizo la semana anterior, vi y analicé este video para hacerme una idea de lo que tenía que hacer mi robot, y me hice un json con los primeros movimientos para ir probando.

Sin embargo, cuando intenté tumbar al NAO en el suelo de gazebo, no se podía mover de ninguna forma, ya que siempre que intentaba moverlo, volvía solo a su posición inicial, por lo que pensé que esto se debía a alguna restricción del propio modelo, así que, investigando, llegué a que ql problema era el siguiente fragmento dentro del modelo sdf de NAO:

<joint name="World" type="fixed">
    <child>Torso</child>
    <parent>world</parent>
    <axis>
        <xyz>0 0 1</xyz>
    </axis>
</joint>

Entonces, lo borré para que esta restricción desapareciera, pero, para mi sorpresa, la siguiente vez que abrí la simulación de NAO, éste se caía del mapa.

Así que otra vez, investigando, me di cuenta de que el problema era que mi suelo no tenía colisiones, así que, fue tan sencillo como añadirlas, y así se solucionaba el problema del NAO cayendo, pero, los problemas no terminan aquí, ya que, después de estos cambios, a NAO le pasaba lo siguiente:

Cosa que no di mucha importancia ya que lo que quería hacer era levantar a NAO del suelo, dejo por aquí una de las pruebas que hice:

Sin embargo, al terminar esa prueba me di cuenta de que, si mi objetivo era levantar a NAO del suelo, debía encontrar una posición estable en la que el robot no se cayese al estar quieto, es decir, una posición estable estáticamente

Para ello, lo que hice fue ir cambiando las posiciones iniciales e los joints desde el propio sdf del Nao, dejo una prueba y el resultado final de este procedo de búsqueda:

Prueba

Resultado

Aunque, me parecía que tenía las piernas demasiado abiertas, ya que en el vídeo, cuando terminaba de levantarse se quedaba así:

nao_video

Por lo que decidí buscar otra posición estable. Cosa que me obligó a editar de nuevo el sdf del nao para que comenzase directamente la simulación siendo estable estáticamente.

Levantarse de cúbito prono

Para este movimiento, me basé en este video