Abstrak—Perkembangan aplikasi berbasis Augmented Reality (AR) tidak lepas dari keunggulan yang ditawarkan oleh teknologi AR. Dengan teknologi AR, objek virtual 3D dapat dimunculkan di dunia nyata dan berada di sekeliling manusia.
Objek yang dimunculkan dapat berupa benda mati, makhluk hidup, atau unsur alam yang mampu bergerak sesuai realitas.
Akan tetapi, aplikasi-aplikasi AR saat ini cenderung tidak mengembangkan objek yang dapat menanggapi respons untuk berinteraksi dengan manusia. Ketiadaan kemampuan ini membuat objek 3D hanya dapat dilihat, namun tidak dapat bereaksi atas gerakan yang diberikan. Pada penelitian ini dilakukan suatu eksplorasi teknologi AR di mana objek yang ditampilkan dapat berinteraksi dan merespons aksi pengguna.
Respons objek ini dipicu oleh sentuhan tangan dengan memanfaatkan teknologi pelacakan gerakan. Objek yang ditampilkan merupakan objek 3D bergerak yang mampu menunjukkan respons seperti berlari atau reaksi lainnya.
Kata Kunci—Augmented Reality, Collision Detection, FLAR, Motion Tracker, Objek 3D.
I. PENDAHULUAN
eknologi Realitas Tertambah atau Augmented Reality merupakan teknologi yang memungkinkan pengguna teknologi untuk memunculkan objek-objek virtual untuk berada pada lingkungan nyata. Teknologi yang biasa diterapkan dalam perangkat lunak ini digunakan untuk memperkaya isi aplikasi agar tidak hanya menampilkan objek virtual semata, tetapi juga lingkungan sekitar pengguna perangkat lunak. Hal ini membuat aplikasi yang mengadopsi teknologi AR menjadi lebih memiliki unsur realitas karena pengguna dapat secara langsung melihat secara bersamaan lingkungan sekitar pengguna dan objek yang telah tertambahkan [1].
Objek-objek yang dimunculkan sebagai objek tambahan pada lingkungan nyata ini dapat digolongkan berdasar dimensi penyusunnya yakni objek dua dimensi (2D) dan objek tiga dimensi (3D). Penggolongan objek juga dapat dilakukan menjad objek diam (statis) maupun objek bergerak (dinamis).
Keseluruhan objek tersebut saat ini hanya berfungsi sebagai informasi tambahan pengaya aplikasi maupun objek interaktif yang mampu memberikan gerakan-gerakan tertentu. Aplikasi pemuncul objek secara umum masih kurang memanfaatkan
objek yang ditampilkan untuk dirancang dalam menerima masukan langsung oleh pengguna.
Dalam beberapa aplikasi, objek yang ditampilkan dapat mengenali masukan yang diberikan oleh pengguna dan melakukan tindakan-tindakan tertentu. Meskipun demikian, masukan yang diberikan oleh pengguna ini masih menggunakan alat-alat masukan secara umum seperti menggunakan tetikus untuk melakukan klik, ataupun menekan tombol tertentu pada papan tuts komputer [2]. Hal ini membuat unsur realitas yang diusung oleh teknologi AR menjadi kurang selaras karena masukan yang digunakan masih menggunakan alat bantu masukan konvensional.
Sebuah metode berbeda telah ditawarkan dalam memberikan masukan tanpa menggunakan alat bantu masukan konvensional menggunakan pustaka (Library) MotionTracker.as [3]. Metode ini memanfaatkan sistem pelacakan gerakan dengan menggunakan alat bantu berupa kamera. Proses yang dilakukan adalah dengan mengolah gerakan yang tertangkap kamera untuk ditentukan koordinat spesifiknya pada layar komputer yang digunakan. Dengan koordinat gerakan yang dapat ditentukan, aplikasi yang menerapkan metode ini dimungkinkan untuk menerima masukan ketika koordinat gerakan mengenai titik tertentu pada layar. Metode ini secara umum dapat digunakan untuk memberikan masukan pada aplikasi berbasis AR yang lebih memiliki unsur realitas dibandingkan dengan masukan dengan tetikus atau pun papan tuts.
Pada tulisan ini disajikan implementasi perancangan dan pembuatan aplikasi berbasis AR yang menampilkan objek 3D bergerak. Aplikasi ini memiliki fitur untuk melakukan kontrol interaktif sehingga objek dapat memberikan respons tertentu atas masukan pengguna. Masukan yang digunakan merupakan masukan yang menerapkan metode pelacakan gerakan yang akan dijelaskan pada bab selanjutnya. Dengan demikian, objek 3D akan dapat merespons ketika pengguna aplikasi menggerakkan tangan pada lokasi objek 3D pada layar.
II. METODE
Dalam implementasi aplikasi ini terdapat beberapa metode dan teknologi yang diterapkan. Metode-metode dan teknologi- teknologi ini berperan mulai dalam tahap preproses masukan,
Perancangan dan Pembuatan Aplikasi Kontrol Objek 3D Interaktif Melalui Sentuhan Tangan Berbasis Augmented Reality Dengan Library
FLAR dan MotionTracker
Radhitya Wawan Yunarko, Imam Kuswardayan, Dwi Sunaryono
Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember Jalan Arief Rahman Hakim, Surabaya 60111
E-mail: [email protected]
T
pemunculan objek, penanganan proses masukan, dan penghasilan respons. Gambaran umum mengenai mekanisme kerja aplikasi yang dibangun dapat dilihat pada Gambar 1.
Gambar 1. Mekanisme Kerja Aplikasi
A. Augmented Reality
Langkah awal dalam membuat aplikasi ini adalah dengan memanfaatkan teknologi AR ke dalam sistem perangkat lunak.
Pustaka AR yang digunakan dalam hal ini adalah FLARToolkit [4] dengan memanfaatkan kakas kerja (Framework) FLARManager [5]. AR mula-mula bekerja dengan mengenali pola pada penanda yang tertangkap kamera.
Pola yang tertangkap kemudian digunakan untuk mencocokkan dengan pola pada koleksi objek yang masing- masing memiliki pola yang berbeda. Objek yang berasosiasi dengan pola yang sesuai dengan pola yang tertangkap kemudian akan ditampilkan pada layar.
1) Pelacakan Penanda
Pelacakan penanda merupakan proses awal pada penerapan perangkat lunak berbasis AR. Pelacakan ini berfungsi untuk menangkap pola tertentu yang terdapat pada penanda AR yang tampak pada kamera. Proses pada pelacakan ini menerapkan metode Pattern Recognition yang telah terdapat pada pustaka FLARToolkit dan kakas kerja FLARManager. Penanda AR merupakan citra yang telah dicetak pada kertas berdimensi persegi yang memiliki corak warna hitam dan putih. Pola pada penanda AR yang tertangkap ini lah yang merupakan masukan awal yang nantinya digunakan pada proses pencocokan pola dan pemunculan objek 3D. Beberapa contoh penanda AR dapat dilihat pada Gambar 2.
Pola yang terdapat pada penanda yang tampak pada kamera dapat dikenali karena telah terdapat berkas pola yang berekstensi .pat yang direferensikan pada aplikasi. Berkas ini menyimpan pola tertentu yang nantinya akan dicocokkan pada penanda yang tertangkap pada kamera. Model berkas ini adalah berkas berjenis teks yang menyimpan nilai 0 dan 255 yang merepresentasikan warna hitam dan putih yang diisikan
pada matriks posisi. Dengan berkas ini, posisi hitam dan putih pada penanda dapat terlacak dan dikenali oleh sistem.
Gambar 2. Contoh Penanda AR
2) Penanganan Objek 3D
Pemunculan objek 3D merupakan proses penting dalam keseluruhan implementasi teknologi AR. Proses ini dilakukan setelah FLARToolkit mengenali penanda melalui perangkat kamera. Objek 3D yang akan ditampilkan telah memiliki pola unik yang nantinya dicocokkan dengan pola pada penanda yang tertangkap. Pencocokkan ini didasarkan pada koleksi objek yang sebelumnya telah ditentukan pada sistem aplikasi dan berkas .pat yang dimiliki.
Penanganan pemunculan objek pada aplikasi yang dibangun dilakukan dengan memanfaatkan pustaka Papervision3D [6]. Pustaka ini bertugas untuk menampilkan objek 3D ke dalam ruang lingkup lingkungan nyata yang berorientasi 3D. Dengan kata lain, koordinat pemunculan memiliki tiga sumbu, yakni sumbu-X, sumbu-Y, dan sumbu- Z. Ketiga sumbu ini direpresentasikan melalui penanda yang telah memiliki koordinat internal dan telah terdefinisi dalam pustaka Papervision3D. Pendefinisian ini digunakan untuk menentukan arah hadap objek, orientasi objek, dan posisi objek dalam ruang tiga dimensi. Orientasi koordinat yang dimiliki penanda AR dapat dilihat pada Gambar 3 yang terdiri dari sumbu-X, sumbu-Y, dan sumbu-Z.
Gambar 3. Orientasi Koordinat Pemunculan Objek
B. Motion Tracking
Penanganan masukan dalam perangkat lunak yang dibangun ini menerapkan metode motion tracking atau pelacakan gerakan. Pelacakan gerakan ini berjalan dengan melakukan deteksi pada ruang lingkup yang dapat dijangkau oleh perangkat kamera. Sistem dapat mengetahui gerakan yang terjadi dengan mula-mula membagi citra yang tertangkap oleh kamera menjadi blok-blok yang lebih kecil. Blok-blok yang lebih kecil ini masing-masing memiliki kondisi awal (initial state) berupa blok yang memiliki properti warna dan citra tertentu. Kondisi awal inilah yang digunakan sebagai acuan oleh sistem bahwa saat itu semua benda sedang diam dan tidak terdapat gerakan. Pembagian blok dan penentuan properti awal citra tersebut dapat dilakukan dengan mengubah citra yang tertangkap oleh kamera menjadi citra biner. Proses pengubahan citra ini lazim disebut dengan Image Binarization.
Citra yang telah diubah menjadi citra biner menjadi memungkinkan untuk melacak gerakan dengan lebih mudah.
Gerakan yang terjadi dapat terdeteksi ketika sistem, melalui penangkapan citra oleh kamera, mendapati bahwa properti citra awal suatu blok tidak sama dengan properti citra saat ini.
Dengan adanya hal ini, sistem dapat mengetahui bahwa sedang terjadi gerakan pada area yang tertangkap oleh kamera. Dalam hal ini, area yang diam direpresentasikan dengan citra berwarna hitam, dan area yang terjadi gerakan di dalamnya direpresentasikan dengan citra yang berwarna putih.
Dengan pembedaan warna citra ini, sistem dapat mendeteksi secara tepat area mana saja yang sedang mengalami perubahan citra akibat terjadinya gerakan.
C. Collision Detection
Mekanisme deteksi tumbukan atau yang biasa disebut dengan Collision Detection adalah proses pendeteksian apakah terjadi tumbukan antara dua buah objek atau lebih.
Secara umum, proses ini dilakukan dengan melakukan deteksi koordinat antara objek-objek dalam satu bidang. Ketika suatu objek dengan luasan tertentu mengenai area objek lain baik sebagian ataupun seluruhnya maka sistem akan memberikan peringatan bahwa bagian objek saling menindih (overlapping). Dalam hal dua buah objek berbentuk lingkaran, proses pendeteksian ini dapat dilakukan dengan menghitung jarak antara dua buah titik pusat lingkaran (d) dengan (1) dan membandingkannya dengan jumlah radius lingkaran pertama (r1) dan radius lingkaran kedua (r2). Ketika d > r1 + r2, dapat diketahui bahwa objek tidak mengalami tumbukan.
Sebaliknya, objek mengalami tumbukan ketika d <= r1 + r2.
Model penggambaran penghitungan jarak antara dua buah lingkaran dapat dilihat pada Gambar 4.
(1) Proses pendeteksian tumbukan ini menjadi penting karena digunakan pada aplikasi untuk mendeteksi apakah posisi tangan yang digerakkan telah menyentuh bidang dari objek
atau suatu area tertentu pada layar. Dengan menggunakan algoritma pendeteksian tumbukan, perangkat lunak yang dibangun mejadi mungkin melakukan tindakan tertentu ketika dua buah benda mengalami saling sentuh. Dengan begitu, gerakan tangan yang berhasil dilacak dengan menggunakan metode motion tracking sebelumnya dapat digunakan sebagai masukan dengan menerapkan pendeteksian tumbukan antara objek dan posisi area gerakan. Kondisi dua buah objek dengan status tumbukan tertentu dalam suatu waktu dapat dilihat pada Gambar 5.
Gambar 4. Penghitungan Jarak Pada Sistem Koordinat [7]
Gambar 5. (a) Objek Tidak Menumbuk, (b) Objek Tepat Menumbuk, (c) Objek Menumbuk
III. HASILDANPEMBAHASAN
Sistem aplikasi yang dibuat telah diuji dengan menggunakan uji kotak hitam terhadap fungsionalitas yang ada. Dalam pengujian yang dilakukan, terdapat tiga buah fungsi proses yang diuji coba. Ketiga proses tersebut adalah proses AR yang meliputi pelacakan penanda dan penampilan objek 3D, pelacakan gerakan, serta pendeteksian tumbukan.
Pengujian dilakukan untuk mendapatkan kebenaran hasil terhadap masing-masing fungsionalitas tersebut.
A. Augmented Reality
Hasil implementasi sistem pada sisi AR dapat dijalankan dengan adanya proses pelacakan penanda dan pemunculan objek secara simultan. Implementasi dilakukan dengan kakas kerja FLARManager dan pustaka FLARToolkit untuk pelacakan penanda dan pencocokan pola dengan objek.
Sementara tahap penanganan objek 3D dan pemunculannya pada layar, digunakan pustaka Papervision3D yang juga telah terintegrasi pada kakas kerja FLARManager. Penanda yang digunakan merupakan penanda berbentuk persegi dengan ukuran 6,6 x 6,6 cm. Gambar 6 menunjukkan hasil pelacakan penanda dan keberhasilan sistem dalam memunculkan objek 3D pada layar.
Gambar 6. Hasil Proses AR Pada Sistem. (a) Penanda Tertangkap Kamera, (b) Objek Muncul Pada Penanda
Gambar 6 bagian atas menunjukkan bahwa penanda dapat terjangkau dalam area yang dapat ditangkap oleh perangkat kamera. Citra area dari kamera ini kemudian ditampilkan pada aplikasi yang merupakan representasi lingkungan nyata dalam sistem. Setelah lingkungan nyata dapat ditampilkan, aplikasi kemudian melacak adanya penanda dengan pola tertentu yang dan mencocokkannya dengan pola yang telah tersedia pada sistem. Kecocokkan penanda kemudian membuat modul AR yang ditangani oleh pustaka Papervision3D memunculkan objek 3D sesuai dengan lokasi penanda pada koordinat layar yang digunakan. Hal inilah yang ditunjukkan pada Gambar 6 bagian bawah.
B. Motion Tracking
Pelacakan gerakan sebagai bagian inti dari aplikasi yang dibangun ini diimplementasikan dengan memanfaatkan pustaka MotionTracker.as. Sesuai dengan penjelasan metode pelacakan gerakan yang disebutkan pada bab sebelumnya, pustaka ini mula-mula mengubah citra menjadi citra biner.
Dengan pengubahan ini, aplikasi memiliki tampilan citra aktual dan citra biner dalam satu layar.
Hasil yang didapatkan menunjukkan bahwa modul pelacakan gerakan mampu membedakan kondisi di mana terjadi gerakan dan kondisi diam. Modul ini mennandai area yang tidak terdapat gerakan dengan citra hitam dan area terjadi gerakan dengan citra putih. Uji coba hasil juga dilakukan terhadap perubahan properti pencahayaan yang membuat proses pelacakan gerakan menjadi lebih optimal dalam suatu kondisi tertentu. Hasil implementasi modul pelacakan gerakan ini dapat dilihat pada Gambar 7.
Gambar 7. (a) Tampilan Diam, (b) Tampilan Gerakan Pencahayaan Awal, (c) Tampilan Gerakan Dengan Pengubahan Pencahayaan
C. Collision Detection
Bagian modul pendeteksian tumbukan yang bekerja dalam aplikasi merupakan bagian akhir implementasi keseluruhan sistem. Fungsi utama modul ini digunakan untuk mendeteksi apakah gerakan tangan yang tertangkap berada pada posisi (mengenai) objek 3D yang ditampilkan. Sesuai dengan bab sebelumnya, proses pendeteksian tumbukan mengharuskan dua buah objek untuk memiliki area tertentu sehingga dibutuhkan suatu area yang merepresentasikan gerakan yang terjadi. Pada aplikasi ini, dibuat area berbentuk lingkaran yang berpusat pada koordinat gerakan tangan dan memiliki radius jangkauan tertentu. Area ini selalu mengikuti gerakan yang tertangkap kamera dan dapat digunakan untuk mendeteksi tumbukan sejauh radiusnya.
Hasil uji coba menunjukkan bahwa tumbukan antara area gerakan dan objek 3D berhasil terjadi dan terdeteksi oleh sistem. Ketika objek bertumbukan dengan area gerakan inilah kemudian terjadi masukan pada sistem dan mengaktifkan event pada objek. Event yang dimaksud ini adalah adanya gerakan dari objek 3D yang ditampilkan dari yang awalnya hanya diam. Terjadinya gerakan inilah yang membuat objek dikatakan mampu merespons masukan berupa gerakan tangan dari pengguna. Dengan berhasil meresponsnya objek 3D maka proses pelacakan gerakan telah terpenuhi sebagai masukan dengan mekanisme pendeteksian tumbukan. Hasil yang menunjukkan proses pelacakan gerakan hingga memunculkan tumbukan yang terseteksi dapat dilihat pada Gambar 8.
Gambar 8. Hasil Pendeteksian Tumbukan dan Penghasilan Respons. (a) Objek 3D Dalam Keadaan Awal Diam, (b) Objek 3D Berubah Arah Setelah Terkenai Gerakan Tangan
IV. KESIMPULAN
Penggabungan antara AR, objek 3D, pelacakan gerakan, dan pendeteksian tumbukan merupakan hal yang belum tereksplorasi secara mendalam dalam kasus-kasus pengembangan perangkat lunak selama ini. Pengembangan perangkat lunak yang disajikan pada tulisan ini telah mampu menggabungkan elemen-elemen yang disebutkan. Dalam hal ini, aplikasi telah berhasil melakukan pelacakan penanda dengan baik, memunculkan objek 3D sesuai dengan yang diharapkan, dan melacak gerakan yang terjadi pada kamera.
Respons objek 3D yang dihasilkan merupakan akumulasi dari berjalannya fungsionalitas-fungsionalitas dasar tersebut. Hasil akhir menunjukkan bahwa aplikasi yan dibangun terbukti dapat mengolah gerakan sebagai masukan dan memenuhi hasil akhir berupa kontrol interaktif terhadap objek 3D melalui sentuhan tangan.
DAFTARPUSTAKA
[1] Milgram, Paul, Takemura, H., Utsumi, A., Kishino, F. 1994. Augmented Reality: A class of displays on the reality-virtuality continuum.
Telemanipulator and Telepresence Technologies 2351, 282-292.
[2] Azuma, Ronald T., Aug. 1997. A Survey of Augmented Reality.
Teleoperators and Virtual Environments 6, 355-385.
[3] Windle, Justin. AS3 Webcam Motion Tracking: Detecting and Tracking an Objects Movement in Flash. <URL:
http://blog.soulwire.co.uk/code/actionscript-3/webcam-motion- detection-tracking/, diakses pada tanggal 7 April 2012>.
[4] Koyama, Tomohiko. Introduction to FLARToolkit.
<URL:http://www.saqoo.sh/a/labs/FLARToolKit/Introduction-to- FLARToolKit.pdf, diakses pada tanggal 30 April 2012>.
[5] Socolofsky, Eric. FLARManager: Augmented Reality in Flash.<URL:http://words.transmote.com/wp/flarmanager/, diakses pada tanggal 10 Mei 2012>.
[6] Ulloa, Carlos. Papervision 3D History.
<URL:http://blog.papervision3d.org/about/, diakses pada tanggal 30 Maret 2012>.
[7] Intel Corporation. 2008. Collision Detection. Intel Technology Journal vol. 12, Issue 03.