ARToolkit nos brinda la posibilidad de crear nuestros propios marcadores (fiducials), aqui detallamos el proceso:
1) Se crean los marcadores que uds desean, obviamente recordando que tienen que estar dentro del cuadrado negro habitual.
Un detalle al momento de crear un marcador, es tener en cuenta que no sea ni vertical ni horizontalmente simetrico, ya que sino les pasa que ARToolkit no sabe reconocer que lado es arriba, bajo etc de la figura.
Si buscan en internet pueden encontrar el siguiente sitio: http://www.roarmot.co.nz/ar/ que ofrece la posibilidad de generar la imagen del marcador, aunque no hemos logrado utilizarlo con exito por lo que optamos por crear nuestras imagenes manualmente.
2) Una vez que tienen los marcadores tienen que imprimirlos. Una vez impresos hay que lograr generar un .patt para cada uno de ellos (son archivos enteramente numericos). ARToolkit usa esos .patt para hacer el reconcimiento real.
Tenemos dos posibles caminos, usar el mk_patt que viene en ARToolkit o usar este otro link que se puede encontrar publicado en internet (pero fue testeado por nosotros): http://flash.tarotaro.org/ blog/2008/12/14/artoolkit- marker-generator-online- released/.
Tomando ambos caminos la logica es la misma, se pone el marcador impreso delante de la pantalla hasta que el borde superior izquierdo tome color rojo y el borde opuesto color verde. Detalles de este proceso estan disponibles en este link:
http://www.artoolworks.com/ support/library/Creating_and_ training_new_ARToolKit_markers.
1) Se crean los marcadores que uds desean, obviamente recordando que tienen que estar dentro del cuadrado negro habitual.
Un detalle al momento de crear un marcador, es tener en cuenta que no sea ni vertical ni horizontalmente simetrico, ya que sino les pasa que ARToolkit no sabe reconocer que lado es arriba, bajo etc de la figura.
Si buscan en internet pueden encontrar el siguiente sitio: http://www.roarmot.co.nz/ar/ que ofrece la posibilidad de generar la imagen del marcador, aunque no hemos logrado utilizarlo con exito por lo que optamos por crear nuestras imagenes manualmente.
2) Una vez que tienen los marcadores tienen que imprimirlos. Una vez impresos hay que lograr generar un .patt para cada uno de ellos (son archivos enteramente numericos). ARToolkit usa esos .patt para hacer el reconcimiento real.
Tenemos dos posibles caminos, usar el mk_patt que viene en ARToolkit o usar este otro link que se puede encontrar publicado en internet (pero fue testeado por nosotros): http://flash.tarotaro.org/
Tomando ambos caminos la logica es la misma, se pone el marcador impreso delante de la pantalla hasta que el borde superior izquierdo tome color rojo y el borde opuesto color verde. Detalles de este proceso estan disponibles en este link:
http://www.artoolworks.com/
Un ultimo detalle sobre este proceso, utilizando el mk_patt en Windows no tuvimos problemas, pero en Linux, debemos asegurarnos de exportar los parametros tal cual lo hacemos para ejecutar la aplicacion. En el extracto de codigo que se muestra a continuacion ejemplificamos el cambio que tuvimos que hacer en nuestro caso:
# if defined(AR_INPUT_GSTREAMER)
//char *vconf = "videotestsrc";
char *vconf = "v4l2src device=/dev/video0 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink";
3)Si se quiere lograr un ejemplo que maneje detecciones multiples (similar al ejemplo Multitest), se deben disponer todas las imagenes a reconocer en una hoja e imprimirlas.
//char *vconf = "videotestsrc";
char *vconf = "v4l2src device=/dev/video0 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink";
3)Si se quiere lograr un ejemplo que maneje detecciones multiples (similar al ejemplo Multitest), se deben disponer todas las imagenes a reconocer en una hoja e imprimirlas.
4)Ahora que todos los patrones fueron reconocidos, tenemos que lograr que ARToolkit los reconzca como a la aplicacion "multitest". Entonces debemos pasar como parametro un archivo .dat con la cantidad de marcadores, tamaños y posiciones relativas.
Nota: Nos hemos enfrentado a un problema al generar archivos .dat en Windows y luego querer utilizarlos en Linux debido a la diferencia entre los saltos de linea entre ambos sistemas. Es por eso que si se genera un .dat en Windows, el ARTookit puede no procesarlo al utilizarlo en Linux.
Por ultimo, la logica que se puede usar para elegir los valores a asingar en las distancias del archivo .dat, es la de simplemente tomar el ejemplo del multitest como base de medicion (si lo miden con una regla, los valores del .dat de este ejemplo equivalena a centimetros). Con esas proporciones se llega a un muy buen resultado.
O sea, si nuestros fiducials miden 5.6 x 5.6, debemos especificar 56 en el tamaño correspondiente del .dat.
Los detalles de cada campo y para tener una idea mas general de esta ultima parte del manejo se encuentran disponibles aqui: http://www.hitl.washington. edu/artoolkit/documentation/ tutorialmulti.htm
Por ultimo, la logica que se puede usar para elegir los valores a asingar en las distancias del archivo .dat, es la de simplemente tomar el ejemplo del multitest como base de medicion (si lo miden con una regla, los valores del .dat de este ejemplo equivalena a centimetros). Con esas proporciones se llega a un muy buen resultado.
O sea, si nuestros fiducials miden 5.6 x 5.6, debemos especificar 56 en el tamaño correspondiente del .dat.
Los detalles de cada campo y para tener una idea mas general de esta ultima parte del manejo se encuentran disponibles aqui: http://www.hitl.washington.
¡Hola! Llegué hasta aquí y veo que les debió hber salido un error similar al mío, por la aclaración del pat, pero yo no consigo arreglarlo. ¿Tienen idea qué más puede ser?
ResponderEliminargaby@GABY-NTB ~/Desktop/ARToolKit/bin $ ./mk_patt
Enter camera parameter filename(Data/camera_para.dat): Data/camera_para.dat
Using supplied video config string [videotestsrc].
libARvideo: GStreamer 0.10.35
(mk_patt:6107): GLib-GObject-WARNING **: invalid cast from `GstVideoTestSrc' to `GstBin'
(mk_patt:6107): GStreamer-CRITICAL **: gst_bin_get_by_name: assertion `GST_IS_BIN (bin)' failed
Pipeline has no element named 'artoolkit'!
setupCamera(): Unable to open connection to camera.
main(): Unable to set up AR camera.