Title: ARToolkit
1ARToolkit
N G U K Y E E T N T Y
P O N J R O O N Y A T H A N
- Augmented Reality Toolkit
2Ce que nous allons présenter
- Introduction
- Architecture
- Installation
- Principes de développement
- Tout ce quon peut faire avec
- Limitations
- Outils autour de ARToolkit
- Demo
NGUYEN Ketty PONROY Jonathan 2
3En quelques mots
Quest-ce Architecture Installation
Développement Possibilités Limitations Outils
Demo
- Librairie C/C avec des outils vidéo
- Fonctions prédéfinies
- Utilisation des différents outils
- Réalité augmentée en temps réel
- Introduction dobjets 3D dans le monde
réel par marqueurs
NGUYEN Ketty PONROY Jonathan 3
4Architecture
Quest-ce Architecture Installation
Développement Possibilités Limitations Outils
Demo
- OpenGL pour le rendu
- GLUT pour les évènements et dépendance hardware
de la librairie video - API standard sur chaque platform (e.g win32 pour
Windows)
NGUYEN Ketty PONROY Jonathan 4
5Structure
Quest-ce Architecture Installation
Développement Possibilités Limitations Outils
Demo
- Lutilisateur peut facilement remplacer un module
par un autre - Flux de données
NGUYEN Ketty PONROY Jonathan 5
6Installation
Quest-ce Architecture Installation
Développement Possibilités Limitations Outils
Demo
- Le site http//www.hitl.washington.edu/artoolkit/
(section documentation setup ARToolkit) - donne la liste des éléments à télécharger
-
- ARToolkit
- Glut
- Librairies pour la webcam
- ReadMe disponible pour chaque application
expliquant toute la procédure à suivre - Multi-plateforme Windows, Linux et Mac
NGUYEN Ketty PONROY Jonathan 6
7Quest-ce Architecture Installation
Développement Possibilités Limitations Outils
Demo
Le fonctionnement global
NGUYEN Ketty PONROY Jonathan 7
8Quest-ce Architecture Installation
Développement Possibilités Limitations Outils
Demo
Chargement d'une image
static void mainLoop(void) static int
contF 0 ARUint8 dataPtr
ARMarkerInfo marker_info int
marker_num int j, k /
grab a vide frame / if( (dataPtr (ARUint8
)arVideoGetImage()) NULL )
arUtilSleep(2) return if(
count 0 ) arUtilTimerReset() count
argDrawMode2D() ...
NGUYEN Ketty PONROY Jonathan 8
9Quest-ce Architecture Installation
Développement Possibilités Limitations Outils
Demo
Détection du marqueur
..... / grab a vide frame / if( (dataPtr
(ARUint8 )arVideoGetImage()) NULL )
arUtilSleep(2) return if(
count 0 ) arUtilTimerReset() count
argDrawMode2D() argDispImage( dataPtr, 0,0
) / detect the markers in the video frame
/ if( arDetectMarker(dataPtr, thresh,
marker_info, marker_num) lt 0 )
cleanup() exit(0)
arVideoCapNext() .....
NGUYEN Ketty PONROY Jonathan 9
10Quest-ce Architecture Installation
Développement Possibilités Limitations Outils
Demo
Reconnaissance du symbole
.... if( arDetectMarker(dataPtr, thresh,
marker_info, marker_num) lt 0 )
cleanup() exit(0)
arVideoCapNext() / check for object
visibility / k -1 for( j 0 j lt
marker_num j ) if( patt_id
marker_infoj.id ) if( k -1 ) k
j else if( marker_infok.cf lt
marker_infoj.cf ) k j
if( k -1 ) ....
NGUYEN Ketty PONROY Jonathan 10
11Quest-ce Architecture Installation
Développement Possibilités Limitations Outils
Demo
Calcul de la matrice de transformation
.... / check for object visibility
/ .... / get the transformation between
the marker and the real camera /
arGetTransMat(marker_infok, patt_center,
patt_width, patt_trans) draw()
argSwapBuffers()
NGUYEN Ketty PONROY Jonathan 11
12Quest-ce Architecture Installation
Développement Possibilités Limitations Outils
Demo
Ajout des objets 3D
static void draw( void ) .... / load
the camera transformation matrix /
argConvGlpara(patt_trans, gl_para)
glMatrixMode(GL_MODELVIEW) glLoadMatrixd(
gl_para ) glEnable(GL_LIGHTING)
glEnable(GL_LIGHT0) glLightfv(GL_LIGHT0,
GL_POSITION, light_position)
glLightfv(GL_LIGHT0, GL_AMBIENT, ambi)
glLightfv(GL_LIGHT0, GL_DIFFUSE,
lightZeroColor) glMaterialfv(GL_FRONT,
GL_SPECULAR, mat_flash) glMaterialfv(GL_FRONT
, GL_SHININESS, mat_flash_shiny)
glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient)
glMatrixMode(GL_MODELVIEW)
//glTranslatef( 0.0, 0.0, 25.0 ) glTranslatef(
0, 0, 25.0 ) glutSolidCube(50.0)
glDisable( GL_LIGHTING ) glDisable(
GL_DEPTH_TEST )
NGUYEN Ketty PONROY Jonathan 12
13Quest-ce Architecture Installation
Développement Possibilités Limitations Outils
Demo
Tout ce qu'on peut faire avec ...
Utiliser plusieurs patterns simultanément
Ex pattern1 cone Data/patt.hiro 80.0 0.0 0.0
NGUYEN Ketty PONROY Jonathan 13
14Quest-ce Architecture Installation
Développement Possibilités Limitations Outils
Demo
Créer ses propres patterns avec bin/mk_patt
NGUYEN Ketty PONROY Jonathan 14
15Quest-ce Architecture Installation
Développement Possibilités Limitations Outils
Demo
Utilisation du pattern au niveau du code
char patt_name "Data/patt.hiro" ..... static
void init( void ) ....
arParamChangeSize( wparam, xsize, ysize, cparam
) arInitCparam( cparam ) printf("
Camera Parameter \n") arParamDisp(
cparam ) if( (patt_idarLoadPatt(patt_name)
) lt 0 ) printf("pattern load error
!!\n") exit(0) / open the
graphics window / argInit( cparam, 1.0, 0,
0, 0, 0 )
NGUYEN Ketty PONROY Jonathan 15
16Quest-ce Architecture Installation
Développement Possibilités Limitations Outils
Demo
Calibrer la caméra
NGUYEN Ketty PONROY Jonathan 16
17Quest-ce Architecture Installation
Développement Possibilités Limitations Outils
Demo
calib_dist
- Prendre une autre image et répéter le processus 5
à 10 fois avec des angles de vues différents pour
avoir une calibration plus précise - Ce programme donne le facteur de distorsion et
les coordonnées du centre de l'image
NGUYEN Ketty PONROY Jonathan 17
18Quest-ce Architecture Installation
Développement Possibilités Limitations Outils
Demo
calib_cparam
NGUYEN Ketty PONROY Jonathan 18
19Quest-ce Architecture Installation
Développement Possibilités Limitations Outils
Demo
Pour personnaliser
Par défaut Espacement entre les points 40mm
Distance déloignement à la caméra
100mm Nombre de fois à répéter la procédure 5
inter_coordkji70 40.0iinter_coordk
ji71 40.0j inter_coordkji72
100.0k loop_num 5
NGUYEN Ketty PONROY Jonathan 19
20Quest-ce Architecture Installation
Développement Possibilités Limitations Outils
Demo
Limitations
- Limitations matérielles
- Reconnaissance de pattern
- Ne pas cacher la moindre zone du pattern
- Etre dans de bonnes conditions lumineuses
- Avoir des patterns simples
- Une vue proche du pattern révèle des sauts si la
fonction d'historique n'est pas utilisée - Détection de patterns2D et pas patterns3D
NGUYEN Ketty PONROY Jonathan 20
21Quest-ce Architecture Installation
Développement Possibilités Limitations Outils
Demo
Outils autour de ARToolkit
Modules supplémentaires
Outils de création de nouveaux patterns
Adaptations
Améliorations
NGUYEN Ketty PONROY Jonathan 21
22Améliorations
Quest-ce Architecture Installation
Développement Possibilités Limitations Outils
Demo
-
- Site sur ARToolkit Plus
- Amélioration sur conditions de luminosité
- http//studierstube.icg.tu-graz.ac.at/handheld_
ar/artoolkitplus.php - Real-time Augmented Reality
- Système de tracking robuste
- http//www.cv.iit.nrc.ca/research/ar
NGUYEN Ketty PONROY Jonathan 22
23Quest-ce Architecture Installation
Développement Possibilités Outils Limitations
Demo
DEMO
NGUYEN Ketty PONROY Jonathan 23
24(No Transcript)
25(No Transcript)
26(No Transcript)
27(No Transcript)
28(No Transcript)
29(No Transcript)
30(No Transcript)