Ilustrasi Penggunaan Quaternion untuk Penanggulangan Gimbal Lock

dokumen-dokumen yang mirip
Aplikasi Aljabar Geometri dalam Menentukan Volume Parallelepiped Beserta Penurunan ke Rumus Umum dengan Memanfaatkan Sifat Aljabar Vektor

Matriks Sebagai Representasi Orientasi Objek 3D

Pemanfaatan Permodelan Ruang Vektor untuk Pengecekan Kemiripan

Penggunaan Bilangan Kompleks dalam Pemrosesan Signal

Penggunaan Quaternion dan Matriks pada Perputaran Spasial

Penggunaan Transformasi Matriks dalam Enkripsi dan Dekripsi

Implementasi Vektor dalam Penyelesaian Car Travelling at The Speed of Light

Penerapan Aljabar Quaternion pada Permainan The Sims

Aplikasi Bilangan Kompleks pada Dinamika Fluida

Aplikasi Interpolasi Polinom dalam Tipografi

A. Vektor dan Skalar I. PENDAHULUAN. B. Proyeksi Vektor II. DASAR TEORI

Penerapan Bilangan Kompleks pada Rangkaian RLC

Representasi Matriks dan Transformasi Lanjar dalam Gerakan Contra Dance

Oktonion I. PENDAHULUAN II. DASAR TEORI

Implementasi Quaternion dalam Slerp (Spherical Linear Interpolation)

Penerapan Pewarnaan Graf dalam Alat Pemberi Isyarat Lalu Lintas

UNIVERSITAS BINA NUSANTARA. Program Ganda Teknik Informatika Matematika Skripsi Sarjana Program Ganda Semester Ganjil 2005/2006

Aplikasi Quartenion pada Game Engine

Implementasi Metode Jumlah Riemann untuk Mendekati Luas Daerah di Bawah Kurva Suatu Fungsi Polinom dengan Divide and Conquer

Penerapan Scene Graph dalam Pemodelan Tiga Dimensi

Aplikasi Aljabar Vektor bagi Pengembang Game (Game Developer)

Strategi Permainan Menggambar Tanpa Mengangkat Pena

Algoritma Puzzle Pencarian Kata

Aplikasi Graf dalam Rute Pengiriman Barang

Menyelesaikan Topological Sort Menggunakan Directed Acyclic Graph

Penerapan TSP pada Penentuan Rute Wahana dalam Taman Rekreasi

Penerapan Gaussian Filter pada Edge Detection

Penerapan Sistem Persamaan Lanjar dalam Penyetaraan Reaksi Kimia

Penerapan Operasi Matriks dalam Kriptografi

Penyelesaian Teka-Teki Matematika Persegi Ajaib Menggunakan Aljabar Lanjar

Keunggulan Penyelesaian Persamaan Linear dengan Metode Dekomposisi LU dalam Komputerisasi

Penerapan Aljabar Lanjar pada Grafis Komputer

Aplikasi Transformasi Lanjar dalam Permainan Dragon Nest

Penerapan Matriks dalam Analisis Sektor Perekonomian Indonesia

Pemanfaatan Algoritma Runut-Balik dalam Menyelesaikan Puzzle NeurOn dalam Permainan Logical Cell

Penerapan strategi runut-balik dalam penyelesaian permainan puzzle geser

Pendeteksian Deadlock dengan Algoritma Runut-balik

Penerapan Transformasi Lanjar pada Proses Pengolahan Gambar

Penerapan Interpolasi Polinom pada Sinkronisasi Subtitle

Aplikasi Teori Graf dalam Penggunaan Cairan Pendingin pada Proses Manufaktur

Penerapan Transformasi Geometri pada Karya Seni Indonesia

BAB 3 ANALISIS DAN PERANCANGAN

Aplikasi Relasi dalam Pengelolaan Basis Data

Penerapan Relasi Rekursif dan Matriks dalam Partisi Bilangan Bulat

Solusi Terbaik Permainan Rocket Mania Deluxe dengan Pendekatan Algoritma BFS dan Algoritma Greedy

Aplikasi Aljabar Lanjar pada Metode Numerik

I. PENDAHULUAN. Gambar 1. Contoh-contoh graf

Pemanfaatan Vektor pada Permainan Super Mario Bros

Penerapan Travelling Salesman Problem dalam Penentuan Rute Pesawat

Aljabar Linear Dasar Edisi Kedua

Implementasi Logika Penurunan Persamaan Aritmatika pada Program Komputer

BAB I PENDAHULUAN 1.1 Latar Belakang

Penerapan Pewarnaan Graf dalam Perancangan Lalu Lintas Udara

Penerapan Teknik Binary Search Tree Sebagai Alternatif Penyimpanan Data

Penerapan Algoritma Prim dan Kruskal Acak dalam Pembuatan Labirin

Aplikasi Pola Fraktal pada Desain Kain Gringsing Cemplong Tenganan Bali

Penyelesaian SPL dalam Rangkaian Listrik

Transformasi Linier dalam Metode Enkripsi Hill- Cipher

SPREADSHEET EXCEL UNTUK PEMBELAJARAN KONSTRUKSI GEOMETRI TEKNIK OPERASI SIMULTAN MENGGUNAKAN FORMULA ARRAY

Penggunaan Metode Dekomposisi LU Untuk Penentuan Produksi Suatu Industri Dengan Model Ekonomi Leontief

Penerapan Graf pada PageRank

I. PENDAHULUAN. 1.1 Permainan Rush Hour

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

Mencari Banyak Posisi yang dapat Dijangkau sebuah Lingkaran dengan Dynamic Programming

Penerapan Algoritma Greedy dalam Penyetokan Barang

Implementasi Algoritma Greedy, BFS, Branch and Bound, dan Metode Heuristik dalam Permainan Reversi

Aplikasi Geogebra dalam Pembelajaran Geometri Bidang

Penyelesaian Sum of Subset Problem dengan Dynamic Programming

Penerapan Algoritma Transversal pada Graf dan Algoritma Pencocokan String dalam Sistem Jual-Beli Tiket Bioskop

Aplikasi Algoritma MiniMax pada Beberapa Permainan Papan

Penerapan Aljabar Vektor pada GPS (Global Positioning System)

Penyelesaian Game Lights Out dengan Algoritma Runut Balik

Aplikasi Aljabar Lanjar pada Teori Graf dalam Menentukan Dominasi Anggota UATM ITB

Penerapan Algoritma Brute Force dan Backtracking pada Permainan Skycraper

II. DASAR TEORI I. PENDAHULUAN

Memecahkan Puzzle Hidato dengan Algoritma Branch and Bound

Aplikasi Algoritma Branch and Bound dalam Pencarian Solusi Optimum Job Assignment Problem

Pembelajaran Klasifikasi Geometris dari Transformasi Mӧbius Suatu Sarana Penyampaian Konsep Grup

PETA KOMPETENSI MATA KULIAH GEOMETRI ANALITIK BIDANG DAN RUANG (PEMA4317) XIII

Penggunaan Pohon Huffman Sebagai Sarana Kompresi Lossless Data

Solusi Rekursif pada Persoalan Menara Hanoi

Penerapan Sistem Persamaan Lanjar Pada Rangkaian Listrik

Aplikasi Teori Graf dalam Permainan Instant Insanity

Implementasi Struktur Data Rope menggunakan Binary Tree dan Aplikasinya dalam Pengolahan Teks Sangat Panjang

Penerapan Integrasi Numerik pada Medan Magnet karena Arus Listrik

Penggunaan Algoritma Brute Force dan Greedy dalam Permainan Atomas

Analisa Kombinatorial Dalam Android Pattern Safety Lock

Penggunaan Sistem Fungsi Iterasi untuk Membangkitkan Fraktal beserta Aplikasinya

Penerapan Algoritma Runut Balik pada Pathuku Games

Aplikasi Dynamic Programming dalam Decision Making pada Reinvestment Problem

DIGITAL SIGNATURE UNTUK VALIDASI IJAZAH SECARA ONLINE

Pencarian Jalur Terpendek Pada Sistem Jaringan Komputer Menggunakan Algoritma Program Dinamis

Menyelesaikan Kakuro Puzzle dengan Kombinatorial

SIMPLE 3D OBJECTS AND THEIR ANIMATION USING GRAPH

Penerapan Algoritma Pencocokan String Boyer-Moore untuk Keamanan Komputer

Algoritma Brute Force pada Fluid Particle Engine

Penerapan Algoritma Greedy pada Permainan Kartu 100

UNIVERSITAS BINA NUSANTARA SIMULASI KINEMATIKA LENGAN ROBOT INDUSTRI DENGAN 6 DERAJAT KEBEBASAN

Penerapan Algoritma Greedy dalam Algoritma Disk Scheduling Shortest Seek Time First

Aplikasi Pohon Pencarian Biner Seimbang sebagai Memo Table Dynamic Programming

Transkripsi:

Ilustrasi Penggunaan Quaternion untuk Penanggulangan Gimbal Lock Nikolas Wangsaputra / 13514048 1 Program Studi Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia 1 13514048@stei.std.itb.ac.id Abstraksi Rotasi adalah salah satu komponen penting dalam berbagai bidang keilmuan, salah satunya adalah pada bidang komputer grafis. Ada berbagai cara untuk melakukan kalkulasi dan representasi terhadap suatu rotasi, diantaranya adalah menggunakan matriks dan sudut euler. Namun, representasi ini memiliki sebuah kelemahan yang cukup fatal, yaitu gimbal lock, yaitu sebuah keadaan dimana derajat kebebasan rotasi hilang akibat beberapa sumbu yang saling mengunci. Oleh karena itu, digunakanlah quaternion untuk menggantikan representasi rotasi Euler di beberapa bidang. Makalah ini menjelaskan penggunaan quaternion untuk menghindari gimbal lock dengan memberikan berbagai ilustrasi. Keywords Quaternion, Rotasi, Animasi, Euler. I. PENDAHULUAN Semua manusia di dunia pasti mengenali keberadaan rotasi dalam kehidupannya sehari-hari. Rotasi adalah sebuah konsep geometri yang sangat erat kaitannya dengan berbagai aspek kehidupan, misalnya pada bidang astronomi, penerbangan, mesin, ataupun animasi. Sejak dahulu kala, para peneliti dan ilmuwan telah banyak melakukan penelitian demi memahami konsep ini sepenuhnya. Dalam ilmu matematika maupun informatika, rotasi ini perlu direpresentasikan dalam bentuk yang dapat dengan jelas diterima dalam aspek matematis maupun oleh komputer. Rotasi sendiri memiliki banyak representasi yang berbeda-beda dalam tiap aspek tersebut, misalnya dengan matriks atau teori Euler, dimana tiap bentuk tersebut memiliki pendekatan yang cukup berlainan terhadap rotasi. Representasi tersebut berkaitan erat dengan aljabar geometri yang mencoba menyelesaikan masalah-masalah geometri dengan pendekatan matematis seperti polinom atau matriks. Dalam dunia keprofesian informatika sendiri, keberadaan rotasi cukup terasa, terutama di bidang grafis dan animasi. Pada dunia komputer ini, representasi rotasi diterjemahkan menjadi kode pemrograman agar mudah diimplementasikan pada program ataupun animasi. Terdapat berbagai konvensi rotasi yang digunakan dalam tiap kasus yang berbeda, dimana tujuannya adalah mencari algoritma yang terbaik baik dari segi kualitas maupun efisiensi. Melalui makalah ini, penulis akan menjelaskan permasalahan yang umum terjadi di dunia komputer grafis sekaligus mengemukakan salah satu alternatif representasi rotasi yang ideal untuk beberapa kasus tersebut, yaitu representasi quaternion. Selain itu, penulis juga akan memaparkan beberapa kelebihan dan kelemahan dari representasi quaternion dalam berbagai penggunaannya. II. DASAR TEORI 2.1. Rotasi Rotasi adalah sebuah prinsip matematis dan fisis dimana suatu objek melakukan gerakan sirkuler berdasarkan suatu sumbu yang diam. Rotasi dapat direpresentasikan dalam beberapa bentuk formal, yaitu: 1. Matriks rotasi, teori rotasi Euler 2. Rotasi sumbu dan sudut (rotasi vektor) 3. Quaternion Gambar 1 : Contoh rotasi pada teknik penerbangan dengan 3 sumbu rotasi yaitu roll, pitch, dan yaw. Sumber : machinedesign.com Berbagai bentuk representasi tersebut memiliki kelebihan dan kekurangan masing-masing, baik dari segi praktis maupun tingkat kerumitan.

2.2. Rotasi Euler Menurut teori rotasi Euler, semua rotasi dapat dideskripsikan dengan 3 sudut. Bila rotasi digambarkan dengan 3 matriks rotasi B,C,D, maka rotasi general A dapat dihitung dengan = Ketiga sudut yang memberikan 3 matriks rotasi tersebut disebut sudut Euler. Ada beberapa konvensi sudut Euler, tergantung dari sumbu dimana rotasirotasi dilakukan. Sebagai contoh, matriks A sebagai berikut: [ ] III. MASALAH GIMBAL LOCK DAN PENGGUNAAN QUATERNION UNTUK MENGATASINYA 3.1 Gimbal Lock Salah satu representasi rotasi yang paling populer adalah menggunakan teori rotasi euler, dimana rotasi direpresentasikan dengan sudut dan 3 buah sumbu. Teori ini sangat mudah divisualisasikan karena rotasi pada setiap sumbu independen satu sama lain. Dengan metode ini, kita dapat memutar sebuah objek ke posisi apapun dengan mengubah sudut maupun urutan sumbu yang dirotasi. Mengilustrasikan konvensi X dimana rotasi dengan sudut Euler B C D dilakukan sebagai berikut: 1. Rotasi pertama pada sumbu z dengan D, 2. Rotasi kedua pada sumbu yang sebelumnya sumbu x menggunakan C, 3. Rotasi ketiga pada sumbu yang sebelumnya sumbu z menggunakan b. 2.3. Quaternion Quaternion adalah sebuah representasi rotasi yang pertama kali diperkenalkan oleh Hamilton pada tahun 1843. Mengembangkan bentuk bilangan kompleks di ruang dimensi 2: = + Hamilton mengembangkan bentuk tersebut menjadi tuple 4 : Dimana: = + + + 2 = 2 = 2 = = =, =, = =, =, = Bentuk tuple 4 tersebut dapat disederhanakan menjadi penjumlahan skalar dan vektor sehingga menjadi: = + Gambar 2 : Contoh kasus dimana 2 sumbu mengunci satu sama lain,dan objek (tanda panah) kehilangan derajat kebebasan. Namun, rotasi euler memiliki sebuah kelemahan, yaitu potensi terjadinya gimbal lock. Gimbal lock sendiri ialah suatu fenomena dimana derajat kebebasan sebuah mekanisme rotasi hilang akibat ada poros yang berada dalam posisi pararel yang sama. Untuk merotasi ke arah yang sumbunya terkunci, objek harus diputar lebih dari satu kali, atau memutar lebih dari 1 sumbu sekaligus sehingga menyebabkan lintasan rotasi berbentuk parabola Dalam kasus tersebut, tidak ada cara untuk merotasi objek ke suatu arah tertentu secara linear. Quaternion + + + pun bisa direpresentasikan dalam bentuk matriks kompleks 2 x 2, yaitu : + + [ + ] Beberapa sifat paling penting dari quaternion antara lain adalah anti komutatif dan memiliki orde yang konsisten.

sendiri adalah sebuah bilangan dan sebuah vektor dengan bilangan imajiner. Berikut ini adalah beberapa contoh visualisasi dari quaternion = + + + dimana nilai dari a, a x, a y, dan a z dialterasi. Gambar 3 : Keadaan setelah objek yang terkena gimbal lock dipaksa diputar. Terlihat bahwa gerakan berputar tidak sesuai yang diharapkan (berbelok) akibat terkuncinya sumbu putar. Keadaan Gimbal Lock ini tidak ideal untuk berbagai kasus di sekitar manusia. Salah satunya adalah pada prinsip rotasi pada penerbangan, dimana rekayasa penerbangan menggunakan teori rotasi euler dengan 3 sumbu, yaitu sumbu vertikal, sumbu lateral, dan sumbu longitudinal untuk merepresentasikan rotasi sebuah objek (pesawat). Selain itu, Gimbal Lock juga memunculkan kesulitan pada pembuatan animasi yang melibatkan rotasi. Kehilangan 1 derajat kebebasan akan sangat menyulitkan karena gerakan rotasi tidak lagi ideal. Suatu kasus nyata dimana gimbal lock menimbulkan masalah adalah pada penerbangan Apollo 11, dimana sistem 3 poros ternyata tidak cukup sempurna dan para astronot harus teliti dalam mengendalikan pesawatnya agar tidak mengalami gimbal lock. Gambar 5 : Contoh ilustrasi quaternion saat a = - 0.69, a x =0.5,a y =0.5,dan a z =0.5 Gambar 6 : Contoh ilustrasi quaternion saat a = 0, a x =-1.99,a y =0.5,dan a z =0.5 Gambar 4 : Berbagai kasus gimbal lock derajat dua yang mungkin terjadi. 3.2 Ilustrasi Quaternion untuk Mengatasi Gimbal Lock Suatu cara yang cukup efisien dan banyak digunakan dalam dunia komputer grafis untuk mengatasi gimbal lock adalah penggunaan quaternion. Struktur quaternion Gambar 7 : Contoh ilustrasi quaternion saat a = 0, a x =0.5,a y =1.52,dan a z =0.5

Namun quaternion pun memiliki beberapa kelemahan, antara lain: Gambar 8 : Contoh ilustrasi quaternion saat a = 0, a x =0.5,a y =0.5,dan a z =-1.82 Terlihat bahwa dengan sistem quaternion dimana rotasi direpresentasikan dengan bilangan kompleks dan vektor imajiner, tidak lagi ada kasus dimana sumbu terkunci ataupun derajat kebebasan hilang. Dengan ini, fenomena gimbal lock tidak akan terjadi. IV. KELEBIHAN DAN KEKURANGAN PENGGUNAAN QUATERNION Penggunaan quaternion sebagai representasi rotasi memiliki beberapa kelebihan dibandingkan representasi lain, diantaranya: 1. Quaternion menggunakan memori yang lebih sedikit bila dibandingkan dengan matriks rotasi, dimana quaternion hanya menghabiskan memory sebesar 4xfloat sedangkan matriks rotasi (3x3) menghabiskan memory sebesar 9xfloat. 2. Selain menghemat memori, quaternion juga bekerja lebih cepat karena translasi quaternion ke matriks dan penghitungannya lebih cepat dibandingkan translasi sudut Euler ke matriks. 3. Representasi quaternion lebih aman karena saat di interpolasi tidak terlalu terpengaruh oleh rounding error jika dibandingkan dengan representasi Matriks. 4. Quaternion merepresentasikan 1 rotasi dengan sumbu yang jelas terdefinisi, sehingga tidak menimbulkan potensi ambiguitas seperti pada sudut Euler yang menggunakan beberapa rotasi yang berpotensi ambigu jika dioperasikan dalam pemrograman. 5. Seperti yang telah dijelaskan, penggunaan quaternion dapat mencegah terjadinya gimbal lock yang cukup mengganggu pada berbagai kasus rotasi, yang mana dengan metode rotasi euler memerlukan kehati-hatian atau bahkan tambahan poros demi mengatasinya. 1. Quaternion lebih sulit diilustrasikan dibandingkan dengan representasi Euler, dan secara konsep tidak praktis untuk dianalisa. 2. Quaternion kurang cocok untuk diimplementasikan pada rotasi yang melibatkan transformasi benda kaku (melibatkan translasi dan transformasi lainnya) dibandingkan dengan representasi lain karena bersifat lebih rumit. 3. Setelah dioperasikan terus menerus nilai pada quaternion dapat mengalami pergeseran sehingga harus dilakukan pengecekan apakah quaternion masih valid dan melakukan normalisasi jika sudah tidak valid. Karena rotasi quaternion pun memiliki beberapa kelemahan, quaternion tidak dapat sepenuhnya menggantikan representasi rotasi Euler di segala bidang. Penggunaan representasi rotasi Euler masih lebih luas digunakan diluar komputer grafis karena lebih sederhana dan mudah dipahami pemula. V. KESIMPULAN Berdasarkan pembahasan dan ilustrasi di atas, terlihat bahwa penggunaan quaternion dapat mencegah terjadinya gimbal lock dan memberikan berbagai keunggulan jika dibandingkan dengan teori Euler. Pada bidang dimana kebebasan rotasi sangat diperlukan, quaternion lebih unggul dibandingkan dengan representasi yang lain, namun quaternion tidak dapat digunakan untuk transformasi bentuk. Dalam prakteknya, pemilihan representasi yang tepat sangat vital untuk fleksibilitas dan efisiensi. VII. UCAPAN TERIMA KASIH Pertama-tama, penulis ingin memanjatkan puji syukur kepada Tuhan Yang Maha Esa atas rahmat, berkat, dan hikmatnya yang telah menyertai penulis dari awal tugas ini diberikan sampai pada penyelesaian makalah ini. Penulis juga ingin mengucap syukur kepada kedua orang tua yang baik secara langsung maupun tidak langsung telah mendukung terselesaikannya makalah ini, baik dalam bentuk dukungan moral maupun materi. Penulis juga mengucapkan terima kasih yang sebesar-besarnya kepada Bapak Rinaldi Munir yang telah mengamanahkan tugas ini kepada penulis serta kepada Bapak Judhi Santoso yang telah memberikan materi Aljabar Geometri pada penulis di akhir semester ini. Tidak lupa juga penulis berterimakasih pada rekan-rekan mahasiswa informatika 2014 yang berjuang bersama-sama penulis dalam proses kuliah di Informatika ITB.

VIII. DAFTAR REFERENSI www.xbdev.net/misc_demos/demos/quaternions_in_practice/paper, diakses 22 November 2015 demonstrations.wolfram.com/fromquaternionto3drotation/,diakses 21 November 2015 machinedesign.com/, diakses 21 November 2015 mathworld.wolfram.com, diakses 21 November 2015 science.howstuffworks.com, diakses 22 Novemver 2015 stackoverflow.com, diakses 22 November 2015 Vince, John, Geometric Algebra for Computer Graphics, Springer Verlag London Limited, 2008 youtube.com/user/guerillacg/, diakses 20 November 2015 PERNYATAAN Dengan ini saya menyatakan bahwa makalah yang saya tulis ini adalah tulisan saya sendiri, bukan saduran, atau terjemahan dari makalah orang lain, dan bukan plagiasi. Bandung, 27 November 2015 Nikolas Wangsaputra 13514048