Inspiration

MedicBot nació de una idea sencilla pero importante: en hospitales y laboratorios, transportar una muestra médica frágil puede ser una tarea delicada. Una vacuna, una muestra biológica o un reactivo pueden dañarse si reciben golpes, vibraciones o si pasan por zonas inseguras. Por eso quisimos crear un robot autónomo capaz de tomar decisiones pensando primero en la seguridad de la muestra, no solo en llegar rápido. La inspiración principal fue imaginar un escenario donde un robot tuviera que moverse dentro de un entorno tipo hospital o laboratorio, analizar diferentes rutas y escoger la opción más segura para completar una entrega médica.

What it does

MedicBot es una simulación 3D de un robot autónomo que transporta una muestra médica desde un punto de inicio hasta una zona de entrega. El robot analiza tres rutas posibles: una corta, una intermedia y una más larga pero segura. El sistema usa Gemini AI para evaluar los riesgos de cada ruta y elegir la mejor opción para proteger la muestra. Después, el robot planea su camino con el algoritmo A*, evita obstáculos, avanza por waypoints y monitorea la integridad de la muestra en tiempo real. Si el robot choca o pasa por zonas inestables, la integridad de la muestra disminuye. Al final, el sistema genera un reporte de misión con el resultado de la entrega.

How we built it

Construimos el proyecto usando Python, MuJoCo, Gemini AI, Rich y el algoritmo A*. La simulación física y el entorno 3D se hicieron en MuJoCo, donde colocamos paredes, obstáculos, zonas inestables, una zona de inicio, una zona de llegada y el robot con la muestra médica encima. Dividimos el código en módulos para que cada parte tuviera una responsabilidad clara. El archivo principal controla la misión, el ciclo de simulación y la interfaz en terminal. El módulo de percepción lee la posición y orientación del robot desde MuJoCo. El planeador usa A* sobre un grid de ocupación para encontrar caminos libres de colisiones. El controlador convierte los waypoints en movimiento real, haciendo que el robot primero gire, luego avance y se detenga cuando sea necesario. Finalmente, el narrador con Gemini se encarga de elegir la ruta, actualizar el estado de la misión y generar el reporte final.

Challenges we ran into

Uno de los retos principales fue lograr que el robot no solo se moviera, sino que lo hiciera de forma segura. Al principio, una ruta corta podía parecer mejor, pero no necesariamente protegía la muestra. Por eso tuvimos que pensar en obstáculos, zonas inestables, impactos y distancia de la ruta al mismo tiempo. También fue un reto conectar la planeación con el movimiento real del robot. No bastaba con calcular una ruta; el robot tenía que seguirla correctamente dentro de la simulación. Para resolverlo, usamos una lógica de parar, girar y avanzar, lo que permitió que el robot se alineara mejor con cada waypoint y redujera el riesgo de choques. Otro desafío fue integrar Gemini de una forma útil. No queríamos que la IA solo decorara el proyecto, sino que realmente participara en la toma de decisiones, evaluando riesgos y explicando por qué una ruta era más segura que otra.

Accomplishments that we're proud of

Estamos orgullosos de haber creado una simulación funcional donde el robot puede completar una misión de entrega médica de manera autónoma. El sistema no depende de una persona para mover el robot, ya que percibe su posición, planea la ruta, sigue waypoints y evalúa el estado de la muestra durante el recorrido. También nos gustó mucho haber combinado robótica, simulación física e inteligencia artificial en un mismo proyecto. Gemini no solo genera texto, sino que ayuda a seleccionar la ruta más segura según los riesgos del mapa. Además, la interfaz en terminal muestra información en tiempo real como la posición, el waypoint actual, el nivel de riesgo y la integridad de la muestra.

What we learned

Aprendimos que en robótica autónoma no siempre gana la ruta más corta. Cuando se transporta algo delicado, una ruta más larga puede ser la mejor decisión si reduce el riesgo de daño. También aprendimos a trabajar con MuJoCo para simular física, contactos e impactos, y a usar A* para planear rutas evitando obstáculos. Otro aprendizaje importante fue la importancia de dividir el proyecto en módulos. Tener archivos separados para percepción, planeación, control, narración y simulación hizo que el sistema fuera más ordenado y fácil de mejorar. Además, aprendimos que la inteligencia artificial puede ser más útil cuando se integra como parte del proceso de decisión, no solo como una herramienta para generar texto.

What's next for MedicBot

Lo siguiente para MedicBot sería hacerlo más dinámico e inteligente. Una mejora sería permitir que el robot replanee su ruta en tiempo real si aparece un nuevo obstáculo o si una zona se vuelve peligrosa. También podríamos agregar sensores simulados más realistas, como cámaras o LiDAR, para que el robot no conozca todo el mapa desde el inicio. Otra mejora sería crear más escenarios hospitalarios, con pasillos, puertas, personas moviéndose y diferentes tipos de muestras médicas con distintos niveles de fragilidad.

Built With

Share this project:

Updates