Cualquier conductor sabe que un vehículo se siente distinto al transitar sobre grava, asfalto o concreto. Gran parte de esta percepción proviene de las vibraciones generadas por la superficie y el sonido resultante. Dan Velarde aprovechó este fenómeno para dotar a un robot de capacidades de detección de terreno utilizando únicamente una unidad de medición inercial (IMU) y un micrófono.

El propósito de este sistema, llamado GRIP (Ground Recognition Intelligence Platform), es ayudar a un robot a lograr una mejor tracción y control en diversos entornos. Muchos automóviles modernos poseen esta capacidad, aunque generalmente requieren que el conductor seleccione manualmente el tipo de superficie. En este caso, GRIP permite que el robot detecte automáticamente si se desplaza sobre una superficie plana, nieve, grava o pasto, ajustando la potencia de los motores para adaptarse a las condiciones.

Diagrama del sistema GRIP instalado en el chasis del robot
Diagrama del sistema GRIP instalado en el chasis del robot

El sistema funciona clasificando las vibraciones en el chasis mediante una IMU y las firmas acústicas captadas por un micrófono. Un Arduino® UNO™ Q monitorea los datos de salida de la IMU y el audio para determinar el tipo de superficie. Esta tarea sería extremadamente difícil de programar de forma explícita, ya que los datos carecen de umbrales claros y fácilmente distinguibles, pero es el escenario ideal para el aprendizaje automático (machine learning).

Velarde utilizó la plataforma Edge Impulse para entrenar e implementar el modelo de ML. Durante la fase de entrenamiento, registró datos mientras conducía sobre los diferentes tipos de superficie, lo que permitió al modelo aprender qué esperar de la IMU y el micrófono en cada entorno. Una vez implementado, el modelo es capaz de comparar los datos captados por los sensores con los patrones aprendidos.

En las pruebas de rendimiento, la precisión varió según la superficie. La detección de nieve fue la más confiable, alcanzando un 91.4% de precisión. Por su parte, la grava resultó ser la menos predecible, con un 73.8% de efectividad, un margen que sigue siendo bastante aceptable para aplicaciones robóticas de navegación autónoma en exteriores.

Vía Arduino Blog.