En la emblemática Marina da Glória, con el resplandeciente sol carioca como testigo, el Club de Informática y Robótica Alan Turing (CIRAT) hizo historia. Por tercera vez, el CIRAT se aventuró en tierras internacionales, y esta vez, el escenario fue el Festival Internacional de Robótica SESI 2023, el más grande de su tipo en Brasil. El equipo, conformado por cinco jóvenes colombianos de entre 13 y 16 años, se llevó el ‘Premio de los Jueces’.
Lee también: Las 10 empresas líderes en inteligencia artificial y machine learning en 2023
Del 2 al 5 de agosto, el aire se llenó de expectación y emoción. Bajo el lema ‘energía que alimenta el futuro’, el Festival se convirtió en un foco de ideas y soluciones innovadoras en ciencia, tecnología, ingeniería y matemáticas (STEM).
Emilio Gómez Torres, Alfredo Gómez Torres, Federico Riveros Suanca, Joseph Peñaranda Castro y Michelangelo Romero Chisco, integrantes del equipo CIRAT, no solo representaron a Colombia, sino que también se convirtieron en la revelación del torneo. Con apenas dos meses de preparación, estos ‘novatos’ se alzaron con el ‘Premio de los jueces’, un reconocimiento otorgado al equipo que mejor encarna el desafío FTC.
En este video vemos uno de los robots que el equipo llevó a la competencia. En este reto, el robot debía insertar los conos de color azul en las varillas de color amarillo. Esto involucraba notable precisión:
“El momento cumbre fue cuando nuestro robot, fruto de noches de trabajo y dedicación, logró la mayor cantidad de puntos en el lanzamiento que nos correspondía”, relata Emilio Gómez, vocero del equipo, con una mezcla de orgullo y emoción. “Ahora, nuestro sueño es abrir la categoría FTC en Colombia, para que otros equipos puedan competir localmente y aspirar a la gran competencia internacional de Robótica FTC en Houston, EEUU”.
El equipo del CIRAT cuenta con el apoyo de varias firmas tecnológicas, entre ellas Kingston y Rockwell Automation.
Pero más allá de la competencia, lo que estos jóvenes rescatan es la experiencia humana. “Competir en Brasil fue especial. Los equipos nos acogieron con calidez, compartieron sus conocimientos y nos mostraron el verdadero significado del profesionalismo cordial”, añade Gómez.
Detalles técnicos del robot utilizado en la competencia
Durante la competencia se usó un robot diferencial. Es un tipo de robot móvil que se caracteriza por tener dos ruedas independientes en un mismo eje, junto con una rueda de soporte o una esfera en la parte frontal o trasera para mantener el equilibrio. Las ruedas se controlan de manera independiente, lo que permite al robot moverse y cambiar de dirección de manera ágil y versátil.
La principal ventaja de los robots diferenciales es su capacidad para girar sobre el mismo lugar, lo que les brinda una mayor agilidad en comparación con otros tipos de robots móviles. Al variar la velocidad y la dirección de las ruedas, el robot puede realizar desplazamientos en línea recta, giros en el lugar o seguir trayectorias curvas.
Cinemática del robot
Para saber qué orientación y distancia tiene el robot primero debemos ubicarnos en un plano cartesiano, que se compone de las coordenadas X y Y. Segundo, debemos tener en cuenta que nuestro robot tiene una dirección que representamos como y una posición que serán X0 y Y0.
La posición completa del robot se representa como Pos = (X0,Y0,). “Nuestro robot tiene un centro de masa, aproximado, que se representa como ⛒. Nuestro robot tiene seis ruedas, pero asumimos que todas las ruedas tienen el mismo radio (r1 = r2 = r3) y el lugar del trabajo es plano lo que nos permite simplificar este robot a uno diferencial. Nosotros vimos más fácil el control de potencia, lo que indica es más manejo por velocidad”, explicó el equipo ganador a Crónicatech.
“Por ello se piensa en velocidad, por lo que debemos entender que el robot se compone de 2 velocidades, la velocidad angular w y la velocidad lineal VM = Vx+Vy, donde para calcular VM tenemos en cuenta que el robot no es omnidireccional, solo tienen velocidad en My no en N, son ejes coordenados puestos en el robot. El problema planteado es cinemática directa por lo que es necesario saber la velocidad del robot en base a la velocidad de las ruedas para ello se desarrolló las siguientes ecuaciones
VM= R2(R+L)
w =RL(R-L)”, añadió.
Encoders
Los encoders rotatorios son un sensor que se implementó en la programación autónoma del robot, de modo que se pudiera determinar con precisión cuántos mm debía/podía avanzar.
Según la definición proporcionada por REV Robotics, un encoder se define como cualquier dispositivo capaz de traducir información de un formato definido a otro. En el caso concreto de los sensores considerados, se trata de dispositivos eléctrico-mecánicos capaces de transformar las posiciones angulares de un eje, motor o similares a una señal eléctrica capaz de ser interpretada por un microcontrolador. Hay ciertas características importantes del encoder creado por el equipo del CIRAT:
Se trata de un encoder relativo (incrementativo), mas no absoluto. Esto significa que el encoder proporcionará información únicamente mientras exista una rotación por parte del eje conectado al actuador, es decir, proporcionarán información sobre el cambio en el valor acumulativo de la posición debida a una rotación por parte del eje.
Se trata de un encoder magnético, que aprovecha el efecto Hall para detectar los cambios en el campo magnético; producido cuando se ejerce un campo magnético transversal a un cable por el que circulan cargas.
El encoder usado por el CIRAT consta de magneto multipolo montado de manera constante en la parte posterior del motor. Allí mismo, con una separación de 90°, están montados dos sensores de efecto HALL “A” y “B” capaces de traducir el cambio en el campo magnético en un voltaje definido. Esto dependerá por completo de la rapidez absoluta, además de la dirección con la que esté rotando el motor.
Dicho fenómeno, crea un ciclo que puede ser interpretado de varias maneras, tal como se muestra a continuación:
Con las especificaciones anteriores, el equipo del CIRAT fue capaz de determinar que a una rotación del robot equivalen 28 counts. En otras palabras, para los motores montados en el robot, aplica la relación 28 counts/revolution.
Motores
El robot utilizado está conformado por cinco motores en total; dos motores destinados a mover las llantas, dos destinados al movimiento de los brazos del ‘gripper’, y un servomotor para el funcionamiento del ‘gripper’.
Motores de las llantas: los motores utilizados en las llantas son los HD Hex Motor de REV. Cada motor está acoplado a dos Ultra Planetary Gearbox Cartridges de relación 5:1 y 4:1, y acoplado a la base del robot con un REV-41-1615 Ultra Planetary 5mm Hex Output. La función de los Cartridges es la de una caja de reducción para los engranajes de los motores, sacrificando así un poco de fuerza para ganar más velocidad en el giro de las llantas.
Motores de los brazos del gripper: se utilizó un Core Hex Motor de REV a cada lado del robot para levantar los brazos que están acoplados al ‘gripper’. Insertamos un ‘shaft’ en el motor junto con spacers, y un engranaje tal como se muestra en el manual.
Motor del ‘gripper’: Para el funcionamiento del ‘gripper’ utilizamos un Smart Robot Servo REV-41-1097, el cual acoplamos al hardware tal cómo decía el manual para crear un ‘gripper’ que funcionara para agarrar los conos. Este se programó en modo continuo, para que el agarre de los conos fuera más simple para el robot y así asegurar los de mejor manera.
Programación general
El robot de FTC está programado en el lenguaje JAVA. La programación fue dividida en dos partes. Una para la parte autónoma y otra para la parte controlada.
Parte controlada: para la parte controlada se usaron los controles logitech. Estos tienen la función de poder mover el robot de manera remota desde el área en la cual los dos pilotos van a estar. Para poder lograr esto, el equipo tuvo que eliminar todos los tipos de configuración que habían para el control de manera default, después, se creó una nueva configuración llamada “FTC Río”, en esta configuración se tuvieron que asignar los motores a cada puerto del hub, siendo los 4 motores 0, 1, 2 y 3, y siendo el servomotor de la garra el número 1 de las conexiones analógicas ubicadas a la derecha de el hub . Después de esto, los controles fueron configurados con código en JAVA. Los controles se configuraron con los ejes X y Y para cada motor.
Ejemplo de la configuración de los ejes:
while (opModeIsActive()) {
x = gamepad1.right_stick_x;
y = -gamepad1.right_stick_y;
rightmotor.setPower(y-x);
leftmotor.setPower(y+x);
telemetry.addData("Status", "Running");
telemetry. Update();
}
1 comentario
¡Bravo! Qué viva el talento colombiano, que brilla en cada participación.