Sistemas de coordenadas
A continuación pongo el enlace a un vídeo que muestra un boceto del sistema de marcas que pretendo usar para capturar los movimientos del cuerpo. He puesto figuras virtuales sobre las marcas para hacer ver que el seguimiento de las marcas está prácticamente resuelto.
(Sí, ese soy yo haciendo un poco el gamba, todo sea por la ciencia).
(http://www.youtube.com/watch?v=1dELJbOOixQ)
Como han podido ver lo que hago es colocar marcas en las distintas extremidades, cabeza, y torso de modo que pueda hacer seguimiento (tracking) de las marcas.
Para este caso de cinemática inversa saber las coordenadas “x” “y” en la pantalla de las marcas no es suficiente para capturar un movimiento 3D.
Necesitamos un sistema de referencia en 3 dimensiones y obtener las coordenadas de la marca en ese sistema.
De este modo a posteriori podremos medir la posición de las extremidades o cabeza con respecto la posición del torso, el cual nos dará las coordenadas de traslación del esqueleto 3D.
Para que no dependan las mediciones de la longitud de las extremidades lo que se debe medir es el angulo con respecto a la marca base (la del torso) para cada uno de los ejes del sistema de referencia situado en esta marca base.
Por eso las marcas de las cuales se obtienen las coordenadas son especiales. Tienen una forma cuadrada con unas medidas proporcionales rígidas y un dibujo en el interior. De este modo gracias a funciones de la librería libre ArToolkit (arDetectMarker) conseguimos capturar la posición de los vértices, aristas de la cuadricula negra y el dibujo interior. Esta información la guarda en una estructura de tipo ARMarkerInfo (en realidad primero ARMarkerInfo2 y esta es tratada para convertirla en ARMarkerInfo) (http://artoolkit.sourceforge.net/apidoc/structARMarkerInfo.html )
De este modo al saber que la marca debe ser cuadrada, si en pantalla no se visualiza cuadrada y sus datos guardados en la estructura así lo reflejan será debido a la perspectiva en la que se está visualizando. Así que tratando dicha estructura de datos mediante la función arGetTransMat obtenemos la matriz de transformación entre el sistema de referencia de la marca y el de la cámara, es decir la posición y orientación relativa de la marca con respecto a sistema de referencia de la cámara. Esta matriz es una matriz 3 x 4 que explicaremos a más adelante.
Dibujos de sistemas de referencia de la marca y de la camara .
En el siguiente post explicaré como obtener las coordenadas de unas marcas con respecto a otras.



Deja un comentario