Hay dos formas de determinar la distancia de un objeto:
-
TRIANGULACIÓN: mides el ángulo que el punto que estás midiendo con dos o más sensores; esto es lo que Russell le dijo y, por ejemplo, usó con la brújula;
-
TRILATERACIÓN: mides la distancia desde el punto hasta dos o más sensores, sin saber la dirección; Este es el caso del rastreo por GPS o sensores ultrasónicos.
Básicamente, puede usar láseres (o luces en general, que también involucran detección de imágenes) con cámaras para hacer triangulación, o sensores de rango como sensores ultrasónicos (que también se utilizan en robótica) y usar trilateración. Creo que depende de las propiedades de los objetos que estás midiendo y también de otras cosas como la precisión, el tamaño y otros.
Si me puede ayudar, he visto que las autodirigidas, como las que participan en el Gran Desafío DARPA, suelen usar cámaras, y como la distancia es similar, probablemente esa sea la mejor opción.
Usando la visión artificial, un enfoque común es proyectar en los objetos un patrón (hay estudios sobre cuál es mejor para una tarea específica) y usar mapas de disparidad para encontrar las diferencias entre las imágenes (obviamente, se necesita visión estéreo). / p>
Este último método es realmente poderoso, y probablemente la imagen que publicaste proviene de eso (aunque no puedo entender por qué la lata parece plana; probablemente se haya aplanado más adelante). Hay una caja de herramientas de Matlab y, por supuesto, existen funciones en OpenCV biblioteca para C, C ++, Python y Java. Probablemente el primero sea el mejor para la implementación incrustada.