Computer Vision con Alvik
Después de los tres programas exploratorios de las capacidades del robot Alvik llegó el momento de agregarle Inteligencia Artificial.
La premisa, sobre la base de mi ubicación geográfica, es que este Alvik carece de los papeles para circular y querría evitar el control policial. Entrené entonces un modelo de Machine Learning capaz de reconocer la figura policial de Lego. Pero antes que nada ¿cómo fue implementado el Computer Vision en Alvik?
Computer Vision en Alvik
En las fotos promocionales del robot Alvik se ve una cámara Grove Vision Module de Xiao, pero como aun no está disponible la información desarrollé una integración casera con los recursos disponibles: los pines de alimentación y conectividad.
Primero entrené un modelo de clasificación con Edge Impulse usando grey scale de46x46 pixels para el Impulse y lo exporté como librería de Arduino con EON compiler optimizado para RAM. Cargué el modelo en una placa Xiao ESP32S3. Le conecté una microcámara y escribí las funciones para enviar las inferencias al Alvik por medio de ESPNow.
Escribí en Alvik las rutinas en Micropython para monitorear ESPNow y ante la detección de la figura del policía con certeza mayor a un límite establecido, girar el robot y prender luces rojas.
Soporte de la cámara
Encontré listo para usar un case de la placa y cámara muy bien modelado, pero tuve que diseñar un soporte para tornillos m3 en Alvik.
Originalmente instalé el soporte en la parte delantera del robot, pero desbalanceaba la trompa así que decidí colocarlo en la parte trasera, donde la rueda giratoria hace contrapeso e invertí la dirección de avance.
TikTok
Demo
https://youtube.com/shorts/LUumWXJNUPo
Pronto voy a subir el tutorial, el código fuente y el modelo.
Ver también
Alvik busca el estacionamiento