Desafío AgBot 2019
Escuela Secundaria East
Durante mi tiempo en Escuela Secundaria East en Denver, Colorado (2014-2018), participé activamente en actividades extracurriculares, siendo la más impactante el club de robótica, AngelBotics. No fue hasta mi segundo año de secundaria que me uní, debido a un enfoque inicial en el fútbol. El club participaba principalmente en la Competencia de Robótica FIRST (FRC), lo que me permitió explorar la ingeniería mecánica y eléctrica, así como la programación. A través de AngelBotics, aprendí a usar herramientas CAD, impresoras 3D y otros equipos de ingeniería, obteniendo exposición a conceptos STEM generalmente reservados para estudiantes universitarios. Inicialmente aspiraba a ser físico cuántico, pero mis experiencias en AP Physics y robótica me mostraron que no era tan bueno en física y me alejaron de una trayectoria en ingeniería mecánica.
En su lugar, encontré mi nicho en la programación, que comenzó con la escritura de código Python para mi primer Raspberry Pi y se consolidó mediante proyectos en Java en AP Computer Science. A pesar de tener dificultades con los exámenes, mi profesor, Sr. Nagel, me animó a seguir el desarrollo de software, enfatizando el valor de los proyectos sobre las notas de los exámenes. Esto me impulsó a enfocarme en la informática como mi carrera universitaria con el sueño de convertirme en ingeniero de software y eventualmente en fundador de mi carrera.
Aunque no estaba muy involucrado en AngelBotics debido a la carga académica y la curva de aprendizaje, todavía despertó una pasión de por vida por la robótica. Así que cuando comencé la universidad, estaba decidido a unirme a un club de robótica universitario y algún día crear una empresa que resolviera problemas del mundo real con robótica.
Escuela de Minas
Después de graduarme de la Escuela Secundaria East, comencé mi Licenciatura en Ciencias de la Computación en la Colorado School of Mines (2018-2022). Durante mi primer semestre, revisé los clubes de robótica de Mines y descubrí un nuevo grupo de robótica llamado AgBot.
AgBot era un nuevo club de robótica creado con el objetivo de construir un robot para competir en la Competencia de AgBots Weed and Feed 2019. Esta competencia tenía dos desafíos principales:
- Identificación y erradicación de plagas y malezas
- Creación de nuevos métodos de cosecha mediante robótica
Nuestro equipo decidió enfocarse en el primer desafío. Fue la primera vez que Mines participaba en la competencia AgBot, y la primera vez que un club de robótica de Mines trabajaba en algo relacionado con la agricultura. Eso hizo que todo se sintiera fresco.
Me atrajo inmediatamente el proyecto. Mi familia fue agricultora en Turquía durante generaciones, hasta la generación de mi padre. Así que AgBot se sentía cercano a casa, combinando mi pasión por la robótica y la programación. La idea de construir un robot que pudiera ayudar a agricultores como mis abuelos era muy emocionante.
Desarrollo
Ser parte del equipo AgBot es una de mis experiencias universitarias más memorables. También fue una de las cosas más difíciles en las que había trabajado hasta ese momento. Este proyecto fue la primera vez que realmente me sumergí en Python, Ubuntu y ROS. En FRC todo estaba en Java, así que esto era territorio nuevo para mí. Había usado Python y Ubuntu antes, pero nunca había tocado ROS. Aprender cómo funcionaba ROS fue una batalla cuesta arriba. Ni siquiera sabía qué era un entorno de Python en ese entonces.
Pasé la mayor parte del tiempo intentando que un Lidar enviara datos utilizables a un nodo ROS que estaba escribiendo. Mi tarea era implementar un Nodo ROS llamado end_detector
que pudiera detectar cuando el robot llegaba al final de una fila de cultivos usando datos del Lidar. Suena simple ahora, pero entonces parecía enorme.
Me tomó unas dos semanas de depuración lograr que el Lidar hablara con mi código. Todo el código estaba escrito en C++ o Python, principalmente Python. Así que mi código era solo Python para este trabajo. Una vez que funcionó, comencé a probar la lógica con parches aleatorios de plantas que encontré en el campus. Pasaba el soporte con el Lidar por encima de ellas y veía si el código podía decir cuándo llegábamos al final. Después de muchas horas y depuración, finalmente logré que todo funcionara al menos en mi entorno de pruebas. Fue otra historia cuando intentamos combinar todo.
Mi tiempo se dedicó principalmente a hacer que el hardware y el software se comunicaran. La lógica real para detectar el final de la fila vino después. Pero fue una gran experiencia de aprendizaje. Pasé de entender apenas ROS a escribir y depurar nodos en una placa Jetson con datos de Lidar en tiempo real. También fue durante este tiempo que cambié de usar principalmente Java a preferir Python. Y, a partir de 2025, aún no he usado Java en ninguno de mis proyectos o bases de código relacionadas con el trabajo.
Equipo y Tecnologías
Usamos Ubuntu 16.04 con ROS Kinetic y Python 2.7 en un Nvidia Jetson TX2 que se conectaba a un Hokuyo URG 04LX UG01 Lidar. Teníamos Arduino(s) para sensores como medidores de distancia ultrasónicos. Nuestro código manejaba percepción, navegación, control y pulverización. Puedes ver el repositorio aquí: Repositorio de GitHub. El código específico que escribí está en end_detector.py. Aquí está la lista de la mayoría de los componentes que formaron el robot:
- Ubuntu 16.04 Xenial
- ROS Kinetic Kame
- Python 2.7
- Nvidia Jetson TX2
- Hokuyo URG-04LX-UG01 Lidar
- Arduino Uno & Mega
- Motores DC, codificadores, controladores de motor, batería, etc.
No teníamos un equipo grande, pero algunos nombres destacan:
Tyler era el líder y fundador del club. Lo respetaba mucho entonces y todavía hoy. Zachary lideraba el desarrollo de software del club y me enseñó mucho sobre desarrollo de software y ROS, por lo que le estoy agradecido hasta hoy.
También había otros miembros, como Kevin Barnard y Amit Rotem. Pero lamentablemente no recuerdo los nombres y contactos de todos los miembros originales, ya que han pasado más de 5 años desde que el club se cerró.
La mayor parte del desarrollo del robot ocurrió los fines de semana y hasta altas horas de la noche después de que la mayoría de nuestras clases terminaran. Trabajar en una carrera de ingeniería y en AgBot fue muy agotador, pero lo logramos.
El Viaje y el Caos
Una parte de toda esta experiencia que nunca olvidaré fue el viaje en sí. La competencia se realizó en West Lafayette, Indiana, cerca del campus de Purdue University. Y la competencia tuvo lugar justo después de la semana de finales en Mines, así que no tuvimos tiempo para recuperarnos de esa semana de infierno.
Condujimos desde Golden, Colorado, a Indiana usando la camioneta de Tyler para transportar el robot y todas nuestras herramientas. Lo curioso es que empezamos el viaje literalmente un día antes de la semana de la competencia. Empacamos todo lo que teníamos: el robot, las herramientas, las baterías, los computadores, todo, y condujimos de Golden a West Lafayette. Eso son 18 horas en papel, pero nos tomó cerca de 20 a 22 horas con paradas para gasolina y baños.
Tyler condujo todo el tiempo, alimentándose de bebidas Coffee Monster. Otra compañera, cuyo nombre olvidé pero aparece en las fotos, lo reemplazó a veces. En el camino empezó a llover a cántaros. Tuvimos que detenernos en una gasolinera cerrada y agarrar una lona para proteger el robot. Fue improvisado, caótico, y típico de la robótica universitaria. De alguna manera lo logramos.
Al llegar, instalamos nuestro toldo en el campo y organizamos nuestras herramientas. Yo me concentré en terminar el código y hacerlo funcionar. Durante la mayor parte de la competencia, trabajamos principalmente en depurar nuestro robot y en observar los impresionantes robots de los otros equipos.
¿Ganamos?
No
Al mirar atrás, éramos solo un grupo de niños intentando construir algo que estaba muy por encima de nuestro nivel de experiencia. Los otros equipos estaban en otro nivel. Algunos eran de startups. Otros eran de laboratorios de investigación. Algunos tenían apoyo académico completo. Nosotros éramos un pequeño grupo de estudiantes de pregrado trabajando toda la noche, esperando que Python convirtiera los datos del Lidar en algo útil.
Nuestro robot tenía fallas. Era improvisado. Y honestamente, apenas funcionaba cuando llegamos a la competencia. Muchos del equipo empezaron a abandonar cuando se dieron cuenta de que quizás no terminaríamos a tiempo. Algunos ni siquiera aparecieron. Los exámenes finales habían terminado, el robot no estaba listo y la moral estaba baja.
Pero algunos de nosotros nos quedamos.
Yo no me rendí… Tyler no se rindió… ¡Y las personas en la foto tampoco se rindieron!
Aunque no ganamos ni tuvimos un robot totalmente funcional, no cambiaría esa experiencia por nada. Aprendí sobre ROS, depuración de hardware, construcción de sistemas bajo presión y aprendí sobre lealtad. Me di cuenta de lo importante que es terminar lo que se empieza.
Reflexión, a partir de 2025
Después de la temporada 2019, AgBot cerró. Esto se debió principalmente a la pandemia de COVID, que comenzó casi un año después, provocando que todos los clubes de Mines cerraran por 1-2 años y, cuando el mundo empezó a volver a la “normalidad”, me gradué.
Ahora es 2025, y al mirar atrás, veo a AgBot como el comienzo de todo para mí. Me dio mi primera experiencia real con la robótica y me enseñó a colaborar con un equipo técnico. Me puso en un camino que me ha llevado a oportunidades increíbles.
Desde entonces, he trabajado como ingeniero backend en eBay, desplegando servicios que procesan millones de métricas en centros de datos. Fundé mi primera startup enfocada en pruebas de penetración de ciberseguridad automatizadas con IA. Lanzé Notify Cyber, que alcanzó decenas de miles de visitantes. He escrito software para Docker, Kubernetes, Postgres e infraestructura avanzada de IA.
Pero AgBot sigue siendo una de las mejores experiencias de mi vida. Fue caótico, estresante y a veces parecía imposible, pero me enseñó más que cualquier clase o tutorial. Aprendí que aunque no tengas el plan perfecto, suficiente financiación o el mejor hardware, aún puedes construir algo, aprender mucho y conocer personas increíbles en el camino.
A todos del equipo AgBot 2019, gracias. Al viaje de 2019, la lona que agarramos en una gasolinera cerrada y las noches sin dormir, gracias. Me dieron la determinación para perseguir grandes proyectos con confianza, sin importar lo imposible que parezcan.
Recursos y Enlaces
- Sitio principal de los clubes de robótica de la Colorado School of Mines
- Base de código AgBot 2019
- Artículo de Purdue sobre AgBot 2019
- Artículo de recapitulación visual de Purdue
- Artículo de DTN Progressive Farmer
- Cuenta de Twitter/X de AgBot
- Sitio oficial de AgBot
- GitHub de Zach
- GitHub de Kevin
- GitHub de Tyler
Galería de Fotos
Equipo AgBot de Mines, Nosotros
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Nuestro Robot AgBot
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Videos/GIFs
![]() |
![]() |
![]() |
![]() |
![]() |
Campos de la Competencia
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Otros Equipos en la Competencia
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
FRC 1339 (2014-2017)
![]() |
![]() |
Otras Imágenes Aleatorias
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |