Augmented reality

From OnnoWiki
Jump to navigation Jump to search

Pendahuluan

Augmented Reality adalah suatu kondisi lingkungan atau fisik yang elemen-elemennya ditambahkan oleh komputer yang dilengkapi oleh sensor, seperti sensor suara, video, GPS dan lain sebagainya. Tujuan dari Augmented Reality (AR) adalah menambahkan informasi dan makna pada suatu benda nyata atau tempat untuk memperdalam pemahaman seseorang terhadap subjek.

Salah satu Toolkit untuk mengembangkan AR Applikasi adalah ARToolKit .ARToolKit pada awalnya dikembangkan oleh Dr Hirokazu Kato, dan pengembangannya selanjutnya didukung oleh Laboratorium Human Interface Technology (HIT Lab) di University of Washington, HIT Lab NZ di University of Canterbury, Selandia Baru, dan ARToolworks, Inc, Seattle. [[1]]

ARToolKit adalah library perangkat lunak untuk mengembangkan Augmented Reality (AR) aplikasi. Ini adalah aplikasi yang melibatkan overlay citra virtual pada dunia nyata. Sebagai contoh, pada gambar dibawah ini memunculkan karakter tiga dimensi virtual yang muncul diatas marker (pola). Hal ini dapat dilihat oleh pengguna di layar monitor dan ketika pengguna menggerakkan marker, karakter virtual akan ikut bergerak mengikuti marker dan tetap melekat pada objek nyata.

Sample Augmented Reality Application

Salah satu kesulitan dalam mengembangkan aplikasi AR adalah menentukan sudut pandang (viewpoint) dari pengguna. Untuk menentukan sudut pandang pengguna, kita harus mengetahui ke arah mana pengguna melihat pada lingkungan nyata.

ARToolKit menggunakan computer vision algorithms untuk memecahkan masalah ini. ARToolKit video tracking libraries menghitung posisi dan orientasi relatif sebenarnya dari kamera terhadap penanda fisik dari suatu marker secara real time. Hal ini memungkinkan pengembangan berbagai macam aplikasi Augmented Reality.

Beberapa fitur dari ARToolKit meliputi:

* Single camera position/orientation tracking.
* Tracking code that uses simple black squares.
* The ability to use any square marker patterns.
* Easy camera calibration code.
* Fast enough for real time AR applications.
* SGI IRIX, Linux, MacOS and Windows OS distributions.
* Distributed with complete source code.

Pada intinya, ARToolKit adalah koleksi software library yang dirancang untuk menghubungkan program aplikasi. Untuk alasan ini, ARToolKit didistribusikan sebagai sourcecode, dan kita harus mengkompikasi sourcecode ini pada sistem operasi dan platform yang kita gunakan. Kita akan memerlukan lingkungan pengembangan sistem operasi yang kita pakai. Sourcecode ini berjalan pada semua platform, seperti Windows, Linux and Mac . Sourcecode yang disediakan memungkinkan mengembangkan applikasi pada Windows dimana platformnya tidak berbasis MS Visual Studio.

Meskipun ARToolKit menawarkan fungsi yang sama di beberapa platform, instalasinya berbeda tergantung pada sistem operasi yang dipakai. Tutorial ini akan memandu kita dalam proses instalasi & konfigurasi pada platform yang kita gunakan.

Sistem operasi dan platform yang digunakan harus memenuhi beberapa persyaratan dasar. Perangkat keras kita harus dapat menerima masukan video, dan memiliki cadangan CPU untuk menangani tugas-tugas pemrosesan video dan tampilan. Ada juga beberapa ketergantungan software dasar - penting untuk menghindari kesalahan compiler dan linker. Paket-paket utama adalah cross-platform (misalnya OpenGL, GLUT), dan lainnya terkait dengan library video khusus untuk mesin yang kita gunakan (DirectShow, V4L, QuickTime).

Instalasi ARToolKits pada Visual Studio Express Edition 2008

Building on Windows (Read the full release notes on Sourceforge for other platforms)


Persyaratan


1. Development environment, menggunakan Microsoft Visual Studio 2008 atau Visual Studio 2010.Dalam percobaan ini kami menggunakan Visual Studio 2008.

2. Paket ARToolKit, bisa diperoleh di sini:http://sourceforge.net/projects/artoolkit/files/ .Percobaan ini menggunakan ARToolKit versi 2.7.2.1.

3. OpenGL library dan GLUT. Untuk GLUT, silahkan download versi 3.7.6 di sini: http://www.xmission.com/~nate/glut.html. Pilih glut-3.7.6-src.zip atau glut-3.7.6-bin.zip.

4. DSVideoLib-0.0.8b-win32, bisa didownload di halaman yang sama dengan paket ARToolKit.

5. DirectX Runtime minimal versi 9.0b. Check di command mode dxdiag versi Direct komputer anda.

6. OpenVRML-0.14.3-win32, bisa didownload di halaman yang sama dengan paket ARToolKit. [[2]]

7. Download libjpeg.lib and libpng.lib [[3]]

8. Hanya jika diperlukan download file library DLL tambahan: msvcp71d.dll dan msvcr71d.dll. Bisa di-download di sini: [4] atau [5]


Program yang harus di Install

Follow each step, unless you have already done one of these steps.

1. Install Visual C++ 2008 Express Edition & MS Windows SDKs Anda dapat mengunduh Visual C++ 2008 & MS Windows SDKs pada halaman Download Center

2. Untuk mengintall GLUT pada VS2008 ada dua cara:

2.1. Unzip glut-3.7.6-bin.zip and copy files as instructed below:

copy glut.h to the folder C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\gl\
copy glut32.lib to the folder C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\
copy glut32.dll to the folder C:\Windows\System32\

2.2. Unzip glut-3.7.6-src.zip dan jalankan glut.sln atau glut.dsw, dimana mode di VC2008 dalam mode administrators.

Setting project properties - Build Events - Post Build Event dengan mengganti

copy $(TargetDir)glut32.dll %WINDIR%\SYSTEM32
copy $(TargetDir)glut32.lib "$(FrameworkSDKDir)..\..\lib"
copy ..\..\include\GL\glut.h "$(FrameworkSDKDir)..\..\include\GL"
Setting glut project properties

3. Unzip file ARToolKit dan dibawah Root C:\ (jika C adalah root), sehingga folder root Anda akan memiliki path sebagai berikut C:\ARToolKit. Untuk selanjutnya, path ini akan disingkah sebagai {artoolkit} saja.

4. Unzip file DSVideoLib, pastikan semua file berada di dalam folder bernama “DSVL”. Kemudian copy folder “DSVL” tersebut ke dalam folder {artoolkit}.

5. Kopikan file DSVL.dll dan DSVLd.dll dari {artoolkit}\DSVL\bin ke dalam {artoolkit}\bin

6. Buka command prompt dengan memencet tombol Start >> Run, kemudian mengisikan perintah “cmd”. Kemudian Jalankan script {artoolkit}\Configure.win32.bat untuk membuat file {artoolkit}\include\AR\config.h.

7. Jika Diperlukan Copy-kan file DLL tambahan msvcp71d.dll dan msvcr71d.dll ke C:\Windows\System32

8. Open and Build the artoolkit


The VRML renderering library

1. Unzip file OpenVRML dan copykan folder OpenVRML ke dalam {artoolkit}

2. Copykan file js32.dll dari {artoolkit}\OpenVRML\bin ke dalam {artoolkit}\bin

3. Jalan C:\ARToolKit\OpenVRML\src\openvrml-0.14.3\ide-projects\Windows\VisualC7\OpenVRML\OpenVRML.sln kemudian ubah [[6]]:

regex/Source Files/regerror.c pada baris 161 - 120 seperti pada gambar dibawah ini: 
regerror updated
antlr/Header Files/AST.hpp pada baris 151 seperti pada gambar dibawah ini: 
AST.hpp updated
antlr/Header Files/Token.hpp pada baris  76 seperti pada gambar dibawah ini:
Token.hpp updated

4. Copykan files2 hasil compiling dibawah ini ke dalam folder C:\ARToolKit\OpenVRML\lib;

C:\ARToolKit\OpenVRML\src\openvrml-0.14.3\ide-projects\Windows\VisualC7\OpenVRML\antlr\Release\antlr.lib;
C:\ARToolKit\OpenVRML\src\openvrml-0.14.3\ide-projects\Windows\VisualC7\OpenVRML\openvrml-gl\Release\openvrml-gl.lib
C:\ARToolKit\OpenVRML\src\openvrml-0.14.3\ide-projects\Windows\VisualC7\OpenVRML\regex\Release\regex.lib;
C:\ARToolKit\OpenVRML\src\openvrml-0.14.3\ide-projects\Windows\VisualC7\OpenVRML\openvrml\Release\openvrml.lib

5. Unzip dan Copy-kan libjpeg.lib dan libpng.lib [[7]] ke C:\ARToolKit\OpenVRML\dependencies\lib;

6. Build and Close the OpenVRML.sln

7. Open the artoolkit, Enable the libARvrml and simpleVRML projects in the VS2008 configuration manager and build.


Menjalankan Utilities

Versi ARToolKit sekarang tidak dirancang untuk di install pada sembarang lokasi, sehingga sebaiknya menggunakan direktori (folder) hasil komplikasi untuk membuat ARToolKit applikasi. ARToolKit hanya membuat static library yang akan menghubungkan (linked) pada program hasil komplikasi (exe) yang kita buat.

Untuk menggunakan ARToolkit, kita membutuhkan beberapa marker yang sudah disediakan oleh ARToolKit. Beberapa default marker dapat di akses pada pattern directory ({artoolkit}/patterns). Marker ini dapat dibuka menggunakan pdf reader dan harap di cetak semuanya untuk keperluan experiment kita selanjutnya.

Menjalankan Graphic Test

Setelah mencetak marker yang ada, selanjutnya kita bisa mengetes kemampuan graphic card komputer apakah bisa menjalankan ARToolKit applikasi. Untuk itu jalankan graphicsTest.exe dari direktori {artoolkit}/bin, dan komputer kita akan menampilkan gambar teko 3D (teapot) yang berputar. Testing ini mengkonfirmasikan kalau kamera (webcam) kita mendukung ARToolKit module dengan OpenGL. Frame rate minimum adalah 15 fps, dibawah itu, rendering di ARToolkit mempunyai beberapa keterbatasan.

hasil graphic

Testing Webcam

Kita juga perlu untuk mengetest webcam kita kalau video input bekerja baik dan bisa menampilkan gambar/video pada layar monitor. Untuk itu kita perlu menjalankan videoTest.exe dari direktori{artoolkit}/bin . Jika program bisa dijalankan (tanpa error), maka sebuah window akan menampilkan object yang ada dihadapan webcam komputer kita.Test ini mengkonfirmasikan bahwa kamera kita mendukung ARToolKit video module and ARToolKit graphics module.

hasil video test

Mencoba Contoh Program yang Tersedia

ARToolKit memberikan banyak contoh aplikasi yang bisa digunakan sebagai dasar untuk pengembangan aplikasi lebih lanjut. Untuk mencoba beberapa aplikasi, buka folder C:\Program Files\ARToolKit\bin. Tapi sebelumnya pastikan friendly name webcam yang digunakan disesuaikan (contoh -friendly_name="Qcam") didalam file C:\ARToolKit\bin\Data\WDM_camera_flipV.xml

<?xml version="1.0" encoding="UTF-8"?>
<dsvl_input xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:noNamespaceSchemaLocation="C:\Documents and Settings\Thomas\My Documents\projects\ARToolKit & DSVideoLib\ARVideoLib\DsVideoLi
\DsVideoLib.xsd">
 <camera show_format_dialog="true" friendly_name="Qcam">
 <pixel_format>
 <RGB32 flip_h="false" flip_v="true"/>
 </pixel_format>
 </camera>
</dsvl_input>


Untuk mendapatkan kecepatan capture yang cukup baik, tingkatkan frame rate kamera menjadi 30 Hz. Kemudian cobalah dua buah program, simpleLite.exe dan simpleVRML.exe. Jangan lupa gunakan marker/pattern yang sudah Anda cetak dan hadapkan ke webcam Anda.

Contoh pattern yang digunakan pada experiment ini adalah:

contoh marker yang digunakan

1. SimpleLite.exe


hasil SimpleLite.exe


2. simpleVRML.exe


Hasil SimpleVRML.exe


Menambah Marker Baru

ARToolKit Marker Generator

Pada saat ini ARToolkit memerlukan marker (pola image) untuk mengaktifkan 3D Object atau Animasi yang akan ditampilkan. Marker-marker yang tersedia dapat dilihat pada folder{artoolkits}/patterns, contohnya seperti gambar dibawah ini

contoh marker 1 yang ada di ARToolKit
contoh marker 2 yang ada di ARToolKit
contoh marker 3 yang ada di ARToolKit

Untuk membuat marker baru, pertama gunakan file blankPatt (template) yang ada di patterns direktori ({artoolkit}/patterns). File ini berupa kotak hitam di bingkai luar dengan kotak warna putih didalamnya. Buat gambar hitam putih atau berwarna yang diinginkan pada lokasi kotak putih tadi. Marker yang baik adalah marker yang asimetris dan tidak memiliki detail halus didalamnya. Gambar-gambar diatas menunjukkan beberapa marker (pola) sampel yang ada, marker baru bisa dibuat dengan membuat gambar ditengah kotak kosong putih.

marker template
Marker Dimension

Untuk membuat pola baru pada marker disarankan tidak mengubah ukuran contoh (template)marker yang disediakan. Untuk membuat marker baru bisa menggunakan beberapa program applikasi seperti photoshop, gimp, inkscape , dan lain sebagainya. Setelah pola baru telah dibuat, pergi ke direktori bin ({artoolkit}/bin) dan jalankan program mk_patt.exe. Kita akan diminta untuk memasukkan nama file parameter kamera. Masukkan nama file kamera parameter atau tekan enter untuk menggunakan default file ({ARToolKit}/bin/Data/camera_para.dat) yang digunakan. Setelah program dijalankan akan menampilkan video window seperti ini

hasil mendaftarkan marker baru

Posisikan pola baru yang akan dilatih dalam kondisi pencahayaan yang sama seperti ketika aplikasi tersebut akan dijalankan. Kemudian arahkan kamera video ke pola gambar yang baru dibuat, dan atur hingga persegi merah dan hijau muncul di sekitar pola (seperti pada gambar ). Hal ini menunjukkan bahwa software applikasi mk_patt telah menemukan kotak persegi di sekitar pola yang dites. Kemudian gambar di atur agar sudut merah dari persegi yang disorot adalah sudut kiri atas pada gambar di video, seperti pada gambar. Setelah kotak pola telah ditemukan dan orientasinya benar, tekan tombol kiri mouse, kemudian kita akan diminta untuk memberikan nama file pada pola yang baru kita buat. Ketikkan nama file seperti patt.newpola Setelah nama file di buat kemudian disalin dari direktori {artoolkit}/bin ke dalam {artoolkit}/bin/data.


lokasi penyimpanan hasil capture marker


Kemudian untuk menguji pattern yang baru dibuat, buka project ARToolKit solution dengan VC2008 kemudian ganti simpleTest.c pada baris 34

char  *patt_name      = "Data/patt.hiro"; 

menjadi

char  *patt_name      = "Data/patt.newpola";

Setelah itu compile simpleTest.c dan jalankan hasil komplikasinya. Pada layar monitor terlihat kotak kubus warna biru yang melekat diatasnya marker yang baru kita buat.

visualisasi menggunakan marker baru

Membuat Marker Secara Online

Selain menggunakan tool yang disediakan ARToolKit, saat ini kita juga bisa membuat marker secara online tanpa perlu mencetak marker yang dibuat dengan mengklik link berikut Membuat Marker Online.

Cara Menggunakan:

1. Buatlah marker baru dan simpan dalam format jpg,jpeg, png atau gif 
2. Jalankan Marker Generator Online.
3. Pilih Mode Select - Load marker image
4. Browse lokasi marker image yang dibuat
5. Set Marker Segment
6. Klik Get Pattern ketika garis merah sudah  mengelilingi marker
7. Klik save current 
8. Ketikkan nama marker yang akan disimpan
Online Marker Generator

Web-based Marker Generator

Marker web-based generator adalah marker generator yang membuat marker berdasarkan gambar yang ada pada web. Saat ini hanya Jpg format yang bisa gunakan pada layanan ini. Kita cukup memasukan alamat website dimana image tersebut ada. Layanan ini dapat diakses pada Web-Based ARToolKit Marker Generator.

Menggunakan Multiple Marker

Untuk menggunakan lebih dari satu marker yang berasosiasi dengan 3D object yang berbeda, kita bisa menggunakan contoh program loadMultiple yang dapat di akses pada {ARToolKit}\bin. Dengan memodifikasi file object_data2 yang ada pada direktori {ARToolKit}\bin\Data, kita bisa mengganti marker default dengan marker yang akan digunakan. Isi file object_2 adalah sebagai berikut

#the number of patterns to be recognized
2
#pattern 1
Hiro
Data/patt.hiro
80.0
0.0 0.0
#pattern 2
Kanji
Data/patt.kanji
80.0
0.0 0.0

Saat ini program loadMultiple hanya mengenali dua marker, tapi dapat dikembangkan untuk mendeteksi lebih dari dua marker dengan memodifikasi file object_2 pada {ARToolKit}\bin\Data dan loadMultiple.c pada ARToolKit solution pada bagian yang menampilkan object 3D.

if(obj_id == 0){
 glMaterialfv(GL_FRONT, GL_SPECULAR, mat_flash_collide);
 glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient_collide);
 /* draw a cube */
 glTranslatef( 0.0, 0.0, 30.0 );
 glutSolidSphere(30,12,6);
 }
else {
 glMaterialfv(GL_FRONT, GL_SPECULAR, mat_flash);
 glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
 /* draw a cube */
 glTranslatef( 0.0, 0.0, 30.0 );
 glutSolidCube(60);
 }
Multiple Marker Detection

Pranala Menarik

1. ARToolkits Principle

2. Installation ARToolkit

3. Computer Vision

4. OpenGL and glut in C++ with MS Visual Studio 2008

5. Belajar AR

6. Marker Generator Online