Semana 13. Poniéndonos en marcha
Las tareas de esta semana eran bastante importantes, ya que una era hacer que Nao por fin camine y la otra era ir pensando usos para nuestro robot social, ya que el objetivo del tfg es hacer de este pequeño humanoide una ayuda para la sociedad.
Ideas de robot social
Lo primero que abordé fue pensar la aplicación para e robot, el cual, tiene un tamaño muy pequeño como para realizar ciertas tareas, por ejemplo, no lo veo cómo guía debido a que por su tamaño sería muy fácil de perder de vista. Tampoco veo posible que sea un asistente personal, ya que hablando con más compañeros es lo que quieren abordar en sus trabajos de fin de grado, y yo quería ser más original. Por lo que, pensando un rato en posibles usos donde el tamaño del robot no importe, llegué a las siguientes:
Guardia de seguridad nocturno
Esta idea es buena porque, si pintamos al nao completamente de negro de modo que no se le vea de noche, puede ser un perfecto guardia de seguridad que, si detecta una persona, contacta inmediatamente con la policía y tiene acceso para bloquear las salidas del edifcio.
Robot de compañía
Esta idea también es apropiada porque a la hora de hacer compañía el tamaño no es muy importante, pero, esta idea también me resulta poco original, ya que es bastante sonada.
Cuidador de mascotas
Esta sin duda es mi favorita, ya que es una cosa que nadie ha pensado antes y el tamaño no es un problema, ya que lo que tendría que hacer el robot sería cuidar de perros o gatos, que, debido a su naturaleza, lo más probable es que no le presten la atención suficiente al robot como para dañarlo. Esta aplicación serís útil por si los dueños se van de casa una temporada y no tienen cómo cuidar a su mascota este tiempo. Aquí es dónde entra NAO, cuyas tareas serían:
Dar de comer y de beber al animal
Esta tarea es sencilla para Nao ya que, podría llevar una mochila con 2 compartimentos en la espalda dónde el dueño antes de irse deberá llenar con agua y comida suficientes para el tiempo que vaya a estar fuera de la casa.
Para dar de comer o beber al animal, el robot se situará enfrente del recipiente, se dará la vuelta y, con la misma mochila podría hacerlo, ya que lo ideal sería que ésta tuviese una trampilla que se abriese y cerrase, para rellenar por gravedad el recipiente en cuestión, dejo por aquí un plano de cómo sería la mochila:
Limpiar la casa en caso de que el animal la ensucie haciendo sus necesiadades
En el caso de los gatos, limpiar la arena con los instrumentos necesarios, y, en caso de los perro.s, cómo el robot no es capaz de sacarlos a la calle por su tamaño, lo haría barriendo y fregando dónde fuera necesario. Aunque para esto sería necesario arreglar los dedos del Nao en el modelo.
Walking Gate
Para hacer caminar a Nao, lo que hice fue configurar con el creador de jsons el movimiento de las piernas, de forma que nao diese un solo paso, para asi simplemente repetirlo muchas veces para que camine.
Una vez configurado esto, nao se caia, pero de esta forma se puede ver bien cómo se da el paso:
Sin embargo, tras muchas pruebas intentando que nao no cayese sin éxito, decidí ir a ver vídeos de este robot andando, los que más me ayudaron fueron este y este otro, ya que me hicieron darme cuenta de que nao NO mueve los tobillos a la hora de andar, sólo mueve la cadera y la rodilla, por lo que, configurando de nuevo el json, conseguí llegar a un modo de caminar bastante torpe, pero que funcionaba.
Así que, lo siguiente que hice fue crear un nuevo fichero en python para ros para que, en lugar de replicar el json que se pase cómo argumento, se replique el json de caminar, pero un número de veces que se pasa por argumento, aquí dejo los resultados:
10 repeticiones
50 repeticiones
El problema que tiene este modo de caminar, además de su torpeza, es que es extremadamente lento, ya que, al probar 50 repeciones de paso (50 pasos), nao sólo consiguió recorrer esta distancia (video más adelante):
Por lo que debía buscar una forma algo más estable y que recorriese más distancia, aunque no fuese en menos tiempo, ya que eso era más secundario para mí en este momento.
Lo primero que probé fue cambiar el rozamiento del suelo y subirlo, ya que parecia que NAO se deslizaba un poco. Una vez hecho esto, sí que parecía que deslizaba menos, pero aún seguía siendo inestable:
Rozamiento 1.0
Rozamiento 0.5
Tras cambiar el rozamiento y ver que el comportamiento mejoraba un poco, edité un poco los ficheros de la caminata a ver si podía mejorarla aún más, consiguiendo lo siguiente:
Y, tras eso, edité también el rozamiento de las lineas del suelo, ya que parecía que también resbalaban de más, así que, tras hacerlo, nao caminaba de la siguiente forma:
Después de esto, mejoré un peoco más la caminata y probé distintas fricciones en el suelo, a ver cuál me iba mejor:
Pruebas de la caminata “definitiva”
Rozamiento 2.0
Rozamiento 0.7
Rozamiento 0.9
Rozamiento 1.3
Rozamiento 1.1
Rozamiento 1.05
Y, visto este resultado, decidí quedarme con él y ya dar por finalizadas las tareas de esta semana.