Semana 32. Construyendo la aplicación GreenNao y comenzando la memoria oficial del proyecto
Las tareas que tuve para esta semana fueron bastante variadas, e incluían tareas principales y secundarias:
Tareas principales
- Hacer funciones para coger y soltar la caja
- Pensar un título adecuado para el TFG
- Reducir el número mínimo de pasos que NAO puede dar
- Completar el Capítulo 3 de la Memoria oficial del proyecto
- Cambiar nombres a algunas carpetas para que quedase más formal y acorde al proyecto
- Verificar que el rozamiento encontrado la semana anterior era el idóneo
Tareas secundarias
- Refinar los arcos hacia atrás
- Comenzar el capítulo 4 de la Memoria Oficial del proyecto
Decidí comenzar por completar el capítulo 3 de la memoria, cuando terminé, completé también los puntos punto 4.1, dónde se explica cómo preparé el modelo para poderlo usar como hasta ahora, el 4.2, dónde se explican el intérprete y el editor de movimientos, el 4.3, dónde se explica la librería desarrollada (a falta de poner algunos enlaces que aún no podía poner porque dependían de solucionar un fallo con el rozamiento del suelo) y dejé preparado el 4.4, el dedicado a la aplicación para cuando la tuviese terminada fuera más rápido de concluir.
También dejé preparada la portada, con el título “Coordinación de actuadores en el robot humanoide NAO para modos de caminar y otras tareas” y los agradecimientos, ya que los tenía escritos de la semana anterior, además de dejar escrito el resumen que se suele poner en las primeras páginas y parte de la bibliografía.
Una vez terminadas estas cosas referentes a la Memoria final, me puse con las demás tareas.
Tareas principales
Cambiar nombres a carpetas
Esta fue una tarea de lo más sencilla, ya que sólo era ir cambiando poco a poco los nombres en cada uno de los ficheros dónde se hacían referencia a las carpetas.
Al final se ha sustituido el nombre GreenNao por CoordMoves en todos los sitios excepto en el fichero de la aplicación final, que sí tendrá este nombre.
También modifiqué el README.md del proyecto para incluir este cambio.
Reducir el número mínimo de pasos que NAO puede dar
Para esta tarea, simplemente fui borrando poco a poco lineas del fichero de la caminata, hasta que obtuve un resultado de 2 pasos que me gustó:
Cabe destacar que en la marcha atrás ya se daban sólo 2 pasos, así que eso no lo modifiqué.
Sin embargo, tras unas cuantas pruebas, me di cuenta de que si repetíamos mucho la secuencia, NAO resbalaba otra vez y perdía la trayectoria, por lo que me puse a arreglar el rozamiento de nuevo.
Al final llegué a la conclusión de que el mejor rozamiento era 30 en el suelo y 30 en los pies. Mandé el vídeo a mi tutor para que lo revisase:
Sin embargo, al comentarlo con él, vimos que el error era demasiado alto, así que tenía que seguir trabajando en ello.
Para ello, estuve arreglando los pasos de la caminata, ya que al dar varios pasos seguidos, el robot saltaba, indicando que la transición no era lo suficientemente suave, así que trabajé en ello hasta conseguir un salto ínfimo.
También seguí editando el rozamiento y sus correspondientes parámetros para ver si la caminata mejoraba.
Cuando conseguí lo que yo creía que era un buen resultado, obtuve lo siguiente para las diferentes caminatas:
Caminata recta
Caminata en arco
Funciones grab y release
Para esto lo que tue que hacer fue crear 2 funciones en la librería para cada una de las acciones que llamaran al intérprete con el patrón designado a coger y soltar la caja.
Antes de eso, preparé el escenario correctamente, para hacer el movimiento lo más ajustado y preciso posible.
Para preparla, lo que hice fue modelar en el sdf del mundo un par de mesas iguales, la mesa inicial, de color azul, y la final, de color naranja, y las coloqué en posiciones aleatorias pero alcazables para nao en el mundo, coloqué también la caja sobre la mesa inicial:
Y, como se puede ver, estas mesas son ideales para que NAO las utilice.
Ahora, era hora de coger y soltar. Cuando terminé los patrones, quedaron de la siguiente forma:
Tareas secundarias
Refinar arcos hacia atrás
Para esto simplemente estuve probando cambiar los patrones hasta conseguirlo(AUN EN PROCESO)