Un escáner láser 2D está montado en un eje giratorio. Deseo determinar la matriz de transformación desde el centro del eje hasta el centro del escáner, utilizando solo la entrada del escáner y el ángulo de rotación.
Se supone que el escáner 2d mismo está calibrado, medirá con precisión la posición de cualquier objeto dentro del plano del láser, con respecto al origen del escáner.
El eje giratorio también está calibrado, medirá con precisión el ángulo de su propio movimiento.
El escáner está alineado y montado cerca del centro de rotación, pero se desconoce el desplazamiento exacto y puede desplazarse con el tiempo.
Suponga que no es práctico medir la posición y orientación del escáner directamente. Estoy buscando una manera de determinar los valores exactos para los 6 grados de desplazamiento que el escáner puede tener en relación con el eje, determinado únicamente en la información 2D del escáner y el ángulo de rotación desde el eje.
Estoy principalmente interesado en los 4 desplazamientos representados aquí, ya que los otros dos no importan en lo que respecta a generar una nube de puntos 3D consistente a partir de los datos de entrada.
Al escanear un objeto de calibración conocido, debería ser posible determinar estos desplazamientos. ¿Cuáles son las fórmulas matemáticas para esto?
¿Qué tipo de información de calibración se requiere como mínimo? ¿Es posible, por ejemplo, determinar todos los parámetros simplemente escaneando una superficie plana, sin saber nada sobre la superficie, excepto que es plana?
(La matriz de transformación del eje de rotación al mundo también es desconocida, pero esa es trivial para determinar una vez que se conoce la transformación del eje a la cámara).
Ejemplo
A la izquierda, la cámara se coloca exactamente en el eje de rotación. La cámara escanea un objeto plano con los puntos de referencia AB y C. Según las mediciones de distancia del láser y el ángulo del eje, este objeto plano puede reconstruirse.
A la derecha, la cámara tiene un desplazamiento desconocido del eje. Escanea el mismo objeto. Si la nube de puntos se construye sin conocer este desplazamiento, la superficie plana se asigna a una superficie curva.
¿Puedo calcular el desplazamiento en función de la curvatura de la superficie?
Si conozco las distancias y ángulos del mundo real entre A, B y C, ¿cómo puedo calcular los desplazamientos de la cámara a partir de eso? ¿Cuál sería el número mínimo de puntos de referencia que necesito para las 4 compensaciones?
fuente
El método más simple en este caso es esencialmente forzar el problema con fuerza bruta, pero forzarlo de manera inteligente.
Lo que necesitará es un conjunto de datos del escáner mientras está escaneando un objeto, preferiblemente un objeto matemáticamente simple como un cubo o una esfera y la posición de desplazamiento exacto o desplazamiento de ese objeto en relación con la montura de este escáner.
Si tiene estos dos datos, el siguiente truco consiste esencialmente en probar varias combinaciones de compensaciones del escáner (lo que normalmente llamaría valores de calibración) hasta que encuentre compensaciones que hagan que los datos del escáner representen con precisión su objeto. Para esto, puede adivinar valores al azar que pueden tomar una eternidad y no llegar a ninguna parte (pero en teoría eventualmente le daría la respuesta correcta) o puede usar un método de optimización
Para utilizar un método de optimización, deberá desarrollar algún tipo de métrica para determinar si un conjunto particular de compensaciones funciona mejor que otro conjunto. Entonces, cualquiera que sea el método de optimización que esté utilizando, usará esa puntuación para decir si debe ajustar los valores en una dirección particular. Eventualmente, se establecerá en un conjunto particular de valores que parecen funcionar mejor.
Esta es una descripción bastante breve y deficiente de un tema muy profundo, pero espero que lo apunte en una dirección. Si desea una descripción más detallada de algo, deje un comentario.
fuente