Diferencia entre revisiones de «Sumo Plus»

De Proyecto Butiá
Saltar a: navegación, buscar
(Diseño de la Plataforma)
(Diseño de la Plataforma)
Línea 108: Línea 108:
  
 
==== Diseño de la Plataforma  ====
 
==== Diseño de la Plataforma  ====
h
+
 
 +
 
 +
Posteriormente se agregaron dos aletas laterales para impedir la entrada de luz. Se puede agregar algún tipo de decoración o modificar
 +
el diseño, no obstante no vamos a ahondar en este tema. Los materiales también son variables.
 +
 
 +
Es muy importante que la parrilla no roce contra el suelo, impidiendo el avance del Robot.
  
 
==== Explicación General del Software  ====
 
==== Explicación General del Software  ====

Revisión del 01:36 28 jun 2020

Introducción

Los robots de Sumo son desarrollos bastante accesibles para personas que se empiezan a incorporar al tema de la robótica, es un acercamiento muy interesante para los jóvenes, además de que al poderse competir permite que las habilidades se vallan perfeccionando y uno puede darle tanto en calidad de software como de hardware que uno quiera. Posiblemente sea de las plataformas más entretenidas para los jóvenes y algunos adultos, ya que les da la posibilidad de comparar su desarrollo directamente con otros y perfeccionarlo con la experiencia tanto en la mecánica como en la programación.

La elección del proyecto surge de una tormenta de ideas donde se procuro aprovechar al máximo la capacidad instalada de la placa Butia a la vez de procurar la integración con otros dispositivos y sensores de manera de enriquecer la experiencia del desarrollo, procurando dejar una puerta abierta para otros posibles desarrollos e integraciones.

Dada la orientación que se le termino dando al proyecto, se considera recomendable para personas de ciclo básico, ya que si bien se puede desarrollar la parte básica enteramente en TurtleBots, quedan algunos conceptos (como la modularizacion, el manejo de variables,etc) que no son recomendables para edades más tempranas.

Ademas se considera importante el trato de una serie de ejemplos de integración y manejo de archivos que sin duda serian mejor aprovechados por jóvenes que despierten cierto interés en el desarrollo.

Datos Generales

Repositorio Git Repositorio
Contacto - Sugerencias mario12111988@gmail.com
Entorno de Desarrollo UBUNTU 16.04
Versión ARDUINO IDE 1.8.13
Version TurtleBots turtlebots_32_all.deb Instalar con udo dpkg -i turtlebots_32_all.deb
Version PYTHON 2.17
MATERIALES KIT ROBOTICO EDUCATIVO BUTIA 2.0
CAJA DE SENSORES
Placa ARDUINO ARDUINO UNO R3
HardWare HP-Pavilion-dv6 con Procesador AMD 64 Bits


Especificación del entorno de Desarrollo

Instalacion Arduino AMD 64 Bits

Descargar de la pagina de ARDUINO y de la carpeta de descargas descomprimir y realizar en terminal la seleccionar el siguiente comando
cuando estamos ubicados en la carpeta descargas.



$cd arduino-1.8.13/
$[ls-l] 
$./arduino-linux-setup.sh 
Run the script with command ./arduino-linux-setup.sh $USER
$./arduino-linux-setup.sh $USER 


Análisis

Implementación

Planteo Básico

El planteo básico, orientado a estudiantes de Liceo, busca incluir el uso de las herramientas de desarrollo
para que los estudiantes puedan darle el aire que consideren mas adecuado. En esta etapa se ven tres grandes
focos que son :

Por un lado la calibración de los distintos sensores para ayudar a interpretar su medición y como ellos las lecturas
que los mismos toman varían por condiciones del medio.

Por otra parte el diseño y la solución de problemas de hardware, ya sea la creación de nuevas piezas como la parrilla
para empujar o la ubicación de los soportes para sensores.

Finalmente el diseño del software, las decisiones de diseño que se tomaron y una pequeña explicación que permita que
aquellos interesados puedan modificar el código para usos distintos al ya especificado.

Calibración de Sensores

Se recomienda ver el siguiente documento para profundizar el conocimiento sobre los sensores de distancia y de variación de color:
Archivo:MARIO IBANEZ 48008660 TALLER DE ROBOTICA LABORATORIO 1.pdf


Después de haber realizado un análisis sobre el comportamiento de los sensores se concluyo que las variaciones de luz ambiente generaban efecto
sobre las lecturas, es decir, el robot tenia un comportamiento distinto si el área de juego disponía de luz ambiente o no, posteriormente también
se comprobó que las sobras que la misma silueta del robot proyectaba lo inducían a error, con lo cual la dificultad del proyecto escalo si se quería
poder utilizar en cualquier ambiente que tuviera un pista delimitada sobre una superficie.

La solución que se opto fue una mezcla de manualidades y programación.

El primer problema se detecto desde la calibración de los sensores, al enfrentar variaciones de luz los sensores no estaban identificando bien cuando
el robot salia de la pista y cuando estaba adentro, lo que ocasionaba que se saliera o que quedara dando vueltas. Para remediar esto se decidió
ingresar un paso previo a la ejecución del programa principal que lo que hacia es tomar 100 lecturas con cada uno de los tres sensores y guardar el mínimo
con lo cual al encontrar una linea blanca el valor contrastaría claramente con el suelo y el robot optaría por volver y dar la vuelta.
Adicionalmente se agrego una tolerancia, la cual es variable, que permitía dar espacio para mejoras en la calibración. De esta forma conseguimos
aprovechar el tiempo del arranque de las partidas de sumo.

El siguiente paso fue adaptar la parrilla, la cual permitía el traspaso de la luz por los costados cuando la luz provenía de un ventanal o similar,
lo que ocasionaba que el butia al encontrase enfrentando el ventanal o dándole la espalda generara sombra sobre los sensores y dificultara la medición.
Se opto por poner dos paletas laterales que evitaran que la luz bajo el robot cambiara abruptamente. Debe de tenerse en cuenta que en las partidas de sumo
profesional los robots casi estan adheridos al piso, con lo cual los sensores no reciben cambios en la sombra que el robot proyecta.

En el caso de los sensores de distancia no se encontraron mayores problemas con la luz ambiente, por lo cual se mantuvo con la primera versión ajustada
a unos 55000 en el valor minimo de recepcion, ya menos de eso ( aproximadamente 25 cm) se interpretaría que el oponente esta en frente y el robot arremeteria
contra él.

Diseño de la Plataforma

Posteriormente se agregaron dos aletas laterales para impedir la entrada de luz. Se puede agregar algún tipo de decoración o modificar el diseño, no obstante no vamos a ahondar en este tema. Los materiales también son variables.

Es muy importante que la parrilla no roce contra el suelo, impidiendo el avance del Robot.

Explicación General del Software

Planteo Avanzado

Integración con Arduino mediante Python

Librerias Necesarias
serial
simplejson

Para aquellos interesados en profundizar sobre el tema se les recomienda ver Referencia Integración

Al momento de elegir la forma en la que íbamos a incorporar la informacion de los sensores de Arduino manejamos dos posibilidades, por un lado usar el código de
ejemplo Firmata que viene disponible en el IDE de ARDUINO o usar la comunicación serial a la implementacion de JSON, un
formato de texto que podíamos usar para leer datos de los sensores.


Si bien Firmata proporcionaba multiples ventajas como el poder leer los pines a demanda, tener continuidad en los datos (en el caso de ARDUINO puede fallar el primer dato o algún dato en particular) y no necesitar de hacer una programación especifica en ARDUINO optamos por decidir el uso de la comunicación serial por un tema de adecuación a los tiempos y conocimiento previo.

El modulo lectorPuertosJson.py tiene la informacion disponible sobre la comunicación.

Soporte

Falla en las baterías

Usualmente cuando el Robot butia empieza a funcionar lento estamos ante una baja en las baterías, es recomendable, si se sabe que se va a
utilizar intensamente, cargar las baterías la tarde anterior. Generalmente las baterías brindan un voltaje en su conjunto de 9.6 V en teoría, pero al estar a
tope puede llegar en pruebas a 11 o mas, dependiendo de las baterías y el fabricante, cuando el voltaje llega a 9.6 el rendimiento comienza a verse afectado.
Se puede notar una lentitud en los motores y comienzan a andar sin fuerza. Los sensores no se ven afectados porque están alimentados por la PC.

Peso Excesivo

Falla en el Sensor de Distancia

Esta falla se atestigua en que el sensor reporta datos muy variables y poco fiables, por ejemplo pasa de 28000 a 50000 en pocos segundos sin que
en el entorno exista algún objetivo nuevo. Posiblemente se deba a una presión sobre los cables ocasionado por la parrilla, la forma de solucionarlo
a sido retirar la parrilla, desconectar el sensor y el cable. Suele suceder que a veces el problema persiste, por lo cual se recomienda también
cambiar o rotar el sensor.

Problemas Conexión

Puntualmente en la implementacion realizada con Python nos ha pasado que el robot butia tarda algunas veces en ser reconocido, podemos notarlo
por ejemplo porque nuestra consola nos va a estar mostrando -1 en todos los sensores, por lo cual es conveniente como primera solución conectar
y desconectar el usb, usualmente después de 4 segundos el Robot retoma bien. Si no genera ningún movimiento a conectar el usb es que la batería
debe estar acabada, en este caso a pesar de que los sensores registren no ocurrirá ningún movimiento.

Precauciones

En la medida de lo posible evitar que los jovenes realizen cualquier tipo de soldadura, es recomendable para el docente que no se manipulen soldadores
y cutters. En cuanto al Voltaje, si perciben que las luces de los sensores se apagan o bajan la intensidad durante la instalación es posible que este
realizando corto, se recomienda ver lo planteado para sensores que fallan. También es recomendable no tener el Butia sobre una mesa al encenderlo
porque se desplaza unos centímetros al encenderse y se puede caer.

Falla Puertos Seriales Ocupados o Python no puede acceder a Butia

En el caso de que les aparezca que tal o cual programa no funciona porque el puerto esta ocupado usualmente se debe a que están dejando un puerto escuchando
la informacion y es imposible acceder a el, suele pasar lo mismo cuando quieren ejecutar un programa de python y tienen el TurtleBots ejecutando algo en
consola

Falla Butia no avanza frontalmente de forma pareja

Si bien Butia avanza con una pequeña desviación hacia la izquierda, puede darse el caso de que exista una desviación importante, usualmente puede deberse
a que la rueda no esta bien atornillada, o a que algo esta atascado en la rueda, en el caso puntual del sumo básico puede pasar que la parrilla de cartón
sea demasiado larga y rose con el suelo.

Falla en los Sensores

La falla de sensores se puede apreciar cuando uno de los mismos da un valor de -1,o alguna lectura que es claramente erronea. En el caso de los sensores
de color nos podemos dar cuenta porque la luz del led verde no prende. En los casos que en el desarrollo del proyecto se nos plantean han estado:

1- Cambiar los Cables
2- Cambiar el Sensor
3- Revisar la Placa y los puertos

Siempre es aconsejable rotar puertos y sensores cuando nos percatamos de que uno no funciona.
En caso los Sensores de color, si al presionar el led verde mientras esta conectado este enciende, con hacer una presión un poco
mayor el contacto deberia quedar bien, se puede medir con un tester en caso de disponer de uno.