Sumo Plus
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
[[MARIO_IBANEZ_48008660_TALLER_DE_ROBOTICA_LABORATORIO_1.pdf|thumb|right|page=4|Trabajo de campo para la materia TRERB-FING Mario Ibañez.]]
Diseño de la Plataforma
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.