Software
Aquí se encuentran todos los programas que utilizamos como Team Steel Bot para poder desarrollar a Klevor.
Programación
Label Studio
Logo de Label Studio
Label Studio es un programa open-source (de código abierto) el cual nos permite preparar las fotos para poder entrenar una Inteligencia Artificial para la detección de objetos. Este programa no se limita a esta funcionalidad, ya que además permite asignar etiquetas a una gran variedad de tipos, como texto, audio, imágenes, vídeos, series de tiempo, multi-dominio, entre otros.
En el caso de Klevor, este programa se utilizó para remarcar dónde están los bloques en las fotos de entrenamiento para que así, después de dejar el modelo entrenando un rato (ya sea de manera local o en la nube), este pueda reconocer los bloques por sí solo.
Google Colab
Logo de Google Colab
Como se mencionó anteriormente, un modelo de Inteligencia Artificial debe ser entrenado, ya sea de manera local o en la nube, pues Google Colab cumple exactamente está función. Google Colab es un servicio que te permite ejecutar código en Python en tu propio navegador web, además de brindar acceso gratuito a GPU y TPU que puedan ser utilizadas en línea, así como también la posibilidad de utilizar Google Drive para almacenar los archivos generados por el entrenamiento del modelo.
En el caso de Klevor, utilizamos esta plataforma para poder entrenar el modelo YOLO que se mencionó anteriormente, mediante el uso de una GPU Nvidia A100, la cual es una de las más potentes del mercado, lo que nos permitió entrenar el modelo en un tiempo relativamente corto por un costo muy bajo.
Visual Studio Code
Logo de Visual Studio Code
Visual Studio Code es un programa de desarrollo de software con terminal integrado, soporte nativo de Git, soporte a casi todos los lenguajes de programación, un sinnúmero de extensiones y totalmente personalizable.
En el caso de Klevor, nosotros utilizamos Visual Studio Code principalmente en la Raspberry Pi 5, como en los computadores del equipo menos potentes, ya que este programa es más ligero que otros programas de desarrollo, como PyCharm, y permite trabajar con múltiples lenguajes de programación, lo que lo hace ideal para el desarrollo de Klevor.
PyCharm
Logo de PyCharm
PyCharm es otro programa de desarrollo de software; sin embargo, este presenta muchas más funcionalidades que Visual Studio Code, con el detalle que este programa necesita de una licencia, mientras que una Visual Studio Code no necesita de una licencia. Esto es debido a que PyCharm es un programa de desarrollo integrado (IDE) para Python, lo que significa que está diseñado específicamente para trabajar con este lenguaje de programación, mientras que Visual Studio Code es un editor de código fuente más general, por lo tanto, PyCharm ofrece características más avanzadas y específicas para Python, como la depuración avanzada, la refactorización de código, la integración con bases de datos, entre otras.
En nuestro caso, empleamos PyCharm para verificar y depurar con más profundidad el código de Klevor, ya que este programa cuenta con herramientas avanzadas de depuración y análisis de código, lo que nos permitió identificar y corregir errores en el código de manera más eficiente.
Thonny
Logo de Thonny
Thonny es otro programa de desarrollo integrado, utilizado principalmente para poder ejecutar código directamente en la Raspberry Pi Pico 2 W, tanto para probar, como para utilizarlo en los Desafíos. Cabe destacar que, a diferencia de las anteriores soluciones, Thonny es un IDE diseñado específicamente para principiantes en Python, lo que lo hace más fácil de usar y entender para aquellos que están empezando a aprender el lenguaje. Además, Thonny tiene una interfaz más simple y menos abrumadora que PyCharm o Visual Studio Code, así como integra funcionalidades específicas para trabajar con microcontroladores, en nuestro caso, la Raspberry Pi Pico 2 W.
Diseño
Canva
Logo de Canva
Canva es una plataforma de diseño en línea, la cual te permite diseñar cualquier cosa en 2D, decidimos utilizar Canva principalmente para la elaboración de los diagramas de conexiones y diagramas de flujo, como una solución rápida y efectiva para la documentación, sin embargo, notamos que nuestros diagramas eran muy complejos y tomaban mucho tiempo de hacer, por lo que cambiamos a otras soluciones en línea.
Mermaid
Logo de Mermaid
Después de no lograr los resultados esperados con Canva, decidimos optar por Mermaid, el cual es un programa open-source (de código abierto) que se especializa principalmente en la creación de diagramas con texto, con un sistema parecido a Markdown, con el objetivo de elaborar los diagramas de flujo.
Draw.io
Logo de Draw.io
Draw.io es una página web que permite la creación de diagramas en línea, con la posibilidad de que varios usuarios lo puedan modificar al mismo tiempo, con una interfaz muy similar a la de Microsoft Visio, pero con la ventaja de que es completamente gratuita y open-source (de código abierto). Decidimos utilizar Draw.io para la creación de los diagramas de conexiones y esquemas eléctricos, ya que nos permitió crear diagramas más complejos y detallados, además de ser más fácil de usar que Canva.
Fusion 360
Logo de Fusion 360
Fusion 360 es un programa de diseño 3D de Autodesk, con el cual pudimos diseñar las piezas en 3D y exportarlas al formato .stl para imprimir con mucha facilidad. Es muy versátil para dibujantes, ingenieros, fabricantes y para la creación de equipos, ya que tiene funciones de renderizado, diseño, pesaje de componentes, diseño de PCB, simulaciones, modelado de forma libre, etc.
Elegimos este programa porque es una solución "todo en uno" que combina el diseño, la fabricación, la ingeniería y el diseño de PCB, todo esto asistido por computadora, lo que hace todo mucho más cómodo.
Planificación
Jira
Logo de Jira
Jira es una página web cuyo objetivo es la de organizar las tareas de un equipo de trabajo y asignarles una prioridad, básicamente es una página de organización de trabajo.
En nuestro caso, el uso de Jira nos permitió mantener el desarrollo de Klevor a un ritmo constante, ya que cada miembro del equipo tenía asignadas tareas específicas y un plazo para completarlas, lo que nos permitió avanzar de manera más eficiente y organizada.