1
KENDALI VISUAL DUAL ARM ROBOT MENGGUNAKAN PENDEKATAN CENTER OF GRAVITY Muhammad Riyadiansya Tanjung 1) Dr. Eng Indra Adji Sulistijono, ST, M.Eng 1) 1) Department of Mechatronics Engineering, Electronics Engineering Polytechnic Institute of Surabaya ITS Surabaya Indonesia 60111, email:
[email protected] Abstract—Lengan robot sangat populer dalam dunia robotik untuk masa depan. Lengan robot memiliki beberapa jenis macam yang berbeda fungsi. Dimana lengan robot selain berfungsi sebagai lengan manusia, juga berfungsi sebagai alat bantu di industri yaitu robot manipulator. Pada tugas akhir ini akan dibuat sebuah Robot Dual Arm dengan sepuluh derajat kebebasan dimana terdapat lima derajat kebebasan pada setiap lengannya. Pengendalian Robot Dual Arm memerlukan kontrol yang cocok agar pergerakan Robot Dual Arm bergerak secara baik dan mencapai tujuan yang diharapkan‚ juga memberikan error yang sedikit pada sistem tersebut. Oleh karena itu Pengendalian Robot Dual Arm menggunakan web camera dapat menghasilkan posisi sumbu X dan Y pada pendeteksian warna. Pengendalian Robot Dual Arm menggunakan web camera ketika data sudah diperoleh berupa titik tengah sumbu X dan Y dari deteksi warna menggunakan OpenCV, Robot Dual Arm dapat mengikuti gerakan posisi dari pendeteksian obyek berwarna tersebut. Kata Kunci: Dual Arm Robot, Web Camera, dan OpenCV.
I. PENDAHULUAN
R
obot adalah sebuah alat mekanik yang dapat melakukan tugas fisik, baik menggunakan pengawasan maupun dibawah kendali manusia, ataupun menggunakan program yang telah didefinisikan terlebih dulu (kecerdasan buatan). Robot biasanya digunakan untuk tugas yang berat, berbahaya, dan pekerjaan yang berulang. Dilihat dari unsur pembentuk katanya, robot humanoid terdiri dari kata robot dan humanoid. Definisi robot adalah "An automatic device that performs functions normally ascribed to humans or a machine in the form of a human.".[1]. Sedangkan definisi dari humanoid adalah segala sesuatu yang memiliki struktur menyerupai manusia.[6]. Maka robot humanoid dapat didefinisikan sebagai sebuah robot yang memiliki bentuk dan sejumlah karakteristik menyerupai manusia, baik keseluruhan struktur maupun pergerakan dari robot itu sendiri. Seperti telah disebutkan sebelumnya, robot humanoid memiliki sejumlah karakteristik menyerupai manusia. Adapun karakeristik yang dimaksud antara lain cara berjalan, pergerakan organ tubuh, bahkan emosi serta cara berpikir yang menyerupai manusia. Salah satu jenis robot yang memiliki pergerakan berdasarkan pergerakan manusia tepatnya pergerakan tangan manusia adalah robot manipulator. Robot manipulator yang biasa disebut robot industri ini merupakan suatu manipulator mekanik yang tersusun dari beberapa kerangka batang kaku yang terhubung secara seri oleh system penyambung revolute atau prismatic. Salah satu ujung rangkaian dihubungkan dengan pangkalan penopang (supporting base) dan ujung yang lain berupa ujung bebas dilengkapi dengan peralatan yang disebut end-effector seperti gripper, welding gun, spray gun, dan sebagainya. Pengontrolan robot dua lengan tersebut dilakukan dengan cara melakukan pembelajaran (learning).
Pembelajaran terhadap robot dua lengan memanfaatkan web camera yang mendeteksi warna dan menghasilkan data posisi dari obyek berwarna tersebut. [12]. II. DASAR TEORI Kinematik dalam robotik adalah suatu bentuk pernyataan yang berisi tentang deskripsi matematik geometri dari suatu struktur robot. Dari persamaan matematik dapat diperoleh hubungan antara konsep geometri ruang sendi pada robot dengan konsep koordinat yang biasa dipakai untuk menentukan kedudukan dari suatu obyek. Dengan model kinematik, programmer dapat menentukan konfigurasi referensi input yang harus diumpankan ke tiap aktuator agar robot dapat melakukan gerakan simultan (seluruh sendi) untuk mencapai posisi yang dikehendaki. Sebaliknya, informasi kedudukan (sudut) yang dinyatakan oleh tiap sendi ketika robot sedang melakukan suatu gerakan, dengan analisa kinematik programmer dapat menentukan dimana posisi ujung lengan atau bagian robot yang bergerak itu dalam koordinat ruang. Secara umum persamaan kinematik maju untuk setiap sendi 1 DOF secara parsial dapat dinyatakan pada persamaan 2.1: P(x,y) = f(r,θ) ………………………..….….... ( 2.1 ) dengan r adalah jari-jari lengan (link) dan θ adalah sudut sendi. Dalam hal ini P adalah koordinat (x, y) yang relatif terhadap koordinat tetap/acuan (0, 0) pada titik sendi. Jika r adalah tetap dengan asumsi lengan bergerak secara rotasi maka r dianggap konstan. Dengan demikian perubahan P hanya dipengaruhi oleh perubahan θ. Persamaan kinematik invers-nya dapat dinyatakan pada persamaan 2.2: (r,θ) = f(P) ……………………………..……. ( 2.2 ) Variabel-variabel bebas pada robot yang diperlukan dalam aktuasi kontrol adalah berupa variabel-variabel sendi (aktuator), sedangkan tugas (task) yang didefinisikan hampir selalu dalam referensi koordinat kartesian maka analisa kinematik invers lebih sering digunakan dan dikaji secara mendalam dalam dunia robotik.[7]. 2.1 Pengolahan Gambar Image yang diperoleh dari lingkungan yang masih terdiri dari warna-warna yang sangat komplek, masih memerlukan proses lebih lanjut agar image tersebut layak digunakan ke dalam sebuah sistem. Image processing atau sering disebut dengan pengolahan gambar digital merupakan suatu metode yang digunakan untuk mengolah atau memproses dari gambar asli sehingga
2 menghasilkan gambar lain yang sesuai dengan kebutuhan. Pengambilan gambar bisa dilakukan oleh kamera video atau alat-alat yang lain yang dapat digunakan untuk mentransfer gambar. 2.2.1. Komponen Warna Pada Citra Citra digital dapat didefinisikan sebagai fungsi dua variabel, f(x,y), dimana x dan y adalah koordinat spasial dan nilai f(x,y) adalah intensitas citra pada koordinat tersebut seperti dijelaskan pada gambar 2.3:
Gambar 2.3: Intensitas Citra.[11]. 2.2.2. Filtering Filtering adalah suatu proses dimana diambil sebagian sinyal dari frekwensi tertentu, dan membuang sinyal pada frekwensi yang lain. Filtering pada citra juga menggunakan prinsip yang sama, yaitu mengambil fungsi citra pada frekwensi-frekwensi tertentu dan membuang fungsi citra pada frekwensi-frekwensi tertentu seperti gambar 2.4:
Terlihat bahwa setiap warna mempunyai range nilai 00 (angka desimalnya adalah 0) dan ff (angka desimalnya adalah 255), atau mempunyai nilai derajat keabuan 256 = 28. Dengan demikian range warna yang digunakan adalah (28)(28)(28) = 224 (atau yang dikenal dengan istilah True Colour pada Windows). Nilai warna yang digunakan di atas merupakan gambungan warna cahaya merah, hijau dan biru seperti dijelaskan pada gambar 2.5:
Gambar 2.5: Komposisi Warna RGB.[10].
Dibawah ini merupakan tabel Hexadesimal dari Warna RGB dapat dijelaskan pada tabel 2.1: Tabel 2.1: Contoh-contoh warna dalam hexadecimal. [10]. Nilai 0x00000000
Warna Hitam
Nilai 0x0000AAFF
Warna Hitam
0x000000FF
Merah
0x00888888
Merah
0x0000FF00
Hijau
0x00FF00AA
Hijau
0x00FF0000
Biru
0x00AAFF00
Biru
0x0000FFFF
Kuning
0x00AA00FF
Kuning
Gambar 2.4: Format Koordinat Frekuensi Pada Citra.[10].
0x00FF00FF
Magenta
0x00AAFFFF
Magenta
Untuk memenuhi kebutuhan mendapatkan nilai warna merah pada image dengan nilai warna RGB, maka filtering yang digunakan adalah filtering warna. Dengan memisahkan nilai warna merah dari nilai warna lainnya, dan mengubah warna lainnya dengan nilai 0 yang berarti hitam.
0x00FFFF00
Cyan
0x000088AA
Cyan
0x00FFFFFF
Putih
0x00AA0088
Putih
2.2.3. Warna RGB Format RGB banyak digunakan dalam menyatakan pixel dalam sistem digital. Hal ini sehubungan dengan kemudahan pernyataan warna dalam bentuk komponen warna primer R, G dan B. Terdapat berbagai ukuran untuk menyatakan warna dalam bentuk RGB, mulai dari penggunaan 4 bit RGB (16 warna), 8 bit RGB (256 warna), 16 bit RGB (65535 warna atau high color), 24 bit RGB (16 juta warna atau true color) sampai dengan 32 bit RGB (4 milyar warna atau true color). Dalam pengolahan citra warna dipresentasikan dengan nilai hexadecimal dari 0x00000000 sampai 0x00ffffff. Warna hitam adalah 0x00000000 dan warna putih adalah 0x00ffffff.
2.2.4. Resolusi Citra Ini berarti bahwa tidak ada sesuatu yang mampu menunjukkan bayangan samar dari obyek. Pixel gambar yang kecerahannya dibawah tingkat tertentu diwakili oleh ”0” sedangkan di atasnya diwakili oleh ”1”, dengan demikian semua citra didalam memori komputer dapat diwakili oleh logika ”1” dan ”0”. Sekarang kita dapat menghitung jumlah memori yang dibutuhkan untuk menyimpan citra tersebut. Sebagai contoh citra yang mewakili resolusi 256x256 pixel ( jumlah total 65536 ), karena setiap pixel diwakili oleh ”0” dan ”1”, maka komputer membutuhkan satu bit untuk menyimpan setiap pixel, sehingga dibutuhkan total bit sekitar 64 kb, dengan demikian jumlah memori akan bertambah besar jika resolusi citra bertambah.
3 2.3. Template Proses template yang dimaksud adalah proses pembuatan permodelan obyek ke dalam bentuk template, dengan pemberian nilai tertentu pada kromosom atau gen dari individu yang meliputi: sumbu x, sumbu y, tinggi, dan lebar. Selanjutnya template tersebut dibagi dalam beberapa bagian, misalnya tinggi dibagi 5 bagian dan lebar dibagi 3 bagian. Sehingga desain template berukuran 5x3. Desain template yang digunakan adalah template dalam bentuk persegi panjang atau berupa lingkaran dimana jari-jari yang dapat digunakan berupa 5 bagian. [10]. III. METHODE 3.1.
Perencanaan Sistem
Secara umum sistem yang dibangun pada proyek akhir ini dapat dijelaskan pada gambar 3.1 sebagai berikut:
Gambar 3.3: Desain Robot, ukuran tiap lengan dan gerakan setiap Joint
Gambar 3.1: Blok diagram sistem Input yang berupa deteksi warna akan dicapture oleh kamera melalui program OpenCV di computer. Setelah mendapatkan data berupa posisi dari warna tersebut akan diproses melalui mikrokontroller dan akan menggerakkan dual arm robot dan mengikuti warna yang dideteksi oleh kamera dan kamera akan mengambil kembali data untuk diproses.
Untuk pergerakan antar Joint sudah diberikan keterangan berupa arah pergerakan robot. Sehingga diketahui pergerakan antar Joint. 3.1.2 Torsi Robot Lengan Perhitungan torsi pada robot lengan akan dijelaskan pada gambar 3.4 dan 3.5 sebagai berikut :
3.1.1 Perangkat Keras Rancangan hardware pada proyek akhir ini dapat dijelaskan pada gambar 3.2:
Gambar 3.2: Mekanik Pada gambar 3.3 menampilkan desain robot dual arm dengan ukuran panjang tiap lengan. Ukuran tersebut sesuai dari bagian antar nylon.
Gambar 3.4: Torsi Tiap Joint
L A W
: Panjang dari poros ke poros : Gaya aktuator : Gaya link
4
Start
Inisialisasi Webcam
Pendeteksian Warna Gambar 3.5: Perhitungan Torque Arm.[4]. Data posisi (X ,Y) Bahwa untuk lengan panjang hanya menggunakan setengah nilai dari panjang keseluruhan lengan. Secara teori menambahkan seluruh lengan dan menerapkannya ke pusat massa dari lengan robot. Pusat massa yang tepat adalah titik di mana sebuah benda dapat sempurna seimbang. Pusat massa menjadi midpoint (1 / 2 panjang) dari lengan robot.[4]. Moment = Gaya actuator x Panjang Lengan + Gaya link x ( 1/2 x Panjang Lengan) Persamaan Torque Joint 1 sebagai berikut: M1=W1*(L1/2)+A2(L1)+W2*(L1+L2/2)+A3*(L1+L2)+W3 *(L1+L2+L3/2)+A4*(L1+L2+L3)+W4*(L1+L2+L3+L 4/2)+A5*(L1+L2+L3+L4) Persamaan Torque Joint 2 sebagai berikut: M2=W2*(L2/2)+A3*(L2)+W3*(L2+L3/2)+A4*(L2+L3)+W 4*(L2+L3+L4/2)+A5*(L2+L3+L4) Persamaan Torque Joint 3 sebagai berikut : M3=W3*(L3/2)+A4*(L3)+W4*(L3+L4/2)+A5*(L3+L4) Persamaan Torque Joint 4 sebagai berikut : M4=W4*(L4/2)+A5*(L4) Pada Torque joint 5 tidak dihitung dikarenakan merupakan bagian gripper. * Perhitungan sementara Momen joint 4 = Gaya link *( 1/2 * Panjang Lengan) + Gaya actuator x Panjang Lengan = 98 *(1/2*0.04)+ 441*0.04 = 19.6 g.m = 1.96 kg.cm Servo untuk join atas memiliki spesifikasi torsi : 30 kg.cm, untuk servo-servo yang dekat dengan beban cukup torsi yang tidak terlalu besar, jadi disesuaikan dengan kebutuhan.[9].
Data posisi titik tengah obyek (m)
End Gambar 3.6: Flowchart Deteksi Web Camera. IV. HASIL PENELITIAN 4.1. Pengujian OpenCV Untuk proses pengolahan gambar menggunakan Visual Studio 2005 dengan library OpenCV. Pendeteksian ini mendeteksi satu warna dan didapatkan nilai posisi dari warna tersebut. Posisi tersebut berupa koordinat x dan y. Posisi dari titik tengah obyek berwarna adalah M. Disini akan terdeteksi obyek berwarna biru dan menghasilkan data berupa titik tengah dari obyek tersebut berdasarkan koordinat x dan y. Pada pengujian posisi ini menghasilkan 3 windows pada program tersebut. Windows pertama yang ditampilkan berupa hasil kamera, untuk windows kedua tampilan filter saja, sedangkan untuk windows ketiga menampilkan data posisi. Pendeteksian pada obyek pertama yaitu berada pada posisi kanan tengah dari sudut pandang kamera, dapat dilihat pada gambar 4.2:
3.2.1. Perangkat Lunak Gambar 3.10 menunjukkan flowchart deteksi web camera dan menghasilkan keluaran input data posisi dan data posisi titik tengah obyek.
Gambar 4.1: Pendeteksian Posisi Obyek Pertama
5 Data yang diperoleh dari program di atas merupakan data posisi tengah dari obyek berdasarkan koordinat x dan y. Pada data ini diperoleh 12 buah data posisi yang sesuai dengan obyek tersebut. Data yang berada ditampilan windows cmd merupakan data pada tabel 4.1: Tabel 4.1: Data Input Posisi Obyek Pertama. No 1 2 3 4 5 6 7 8 9 10 11 12
X1 Blue 26 23 23 23 24 23 23 24 24 24 23 23
Y1 Blue 69 70 68 70 70 70 70 71 70 71 71 71
X2 Blue 38 37 36 36 36 36 36 37 36 36 36 36
Y2 Blue 84 85 84 85 85 85 85 86 86 86 86 86
Mx Blue 32 30 29 29 30 29 29 30 30 30 29 29
My Blue 76 77 76 77 77 77 77 78 78 78 78 78
4.2. Perhitungan Mekanik Untuk perhitungan mekanik digunakan forward kinematik. Pada gambar dibawah ini adalah menentukan transformasi matriks dari T1, T2, dan T3.
Pada perhitungan Transformasi ini hanya dihitung pada joint 1, joint 2, dan joint 3. 0 0 0 1 0 cos sin L1 1 1 T1 0 sin 1 cos 1 0 0 0 1 0 0 cos 2 0 sin 2 0 1 0 L 2 T2 sin 2 0 cos 2 0 0 0 1 0 0 0 0 1 0 cos sin L3 3 3 T3 0 sin 3 cos 3 0 0 0 1 0 Untuk mempermudah perhitungan akan diberikan beberapa notasi yang akan dijumpai dalam perhitungan matriks transformasi, antara lain : Ci = cos θi Cij = cos (θi + θj) S i = sin θi S ij = sin (θi + θj) Beberapa aturan trigonometri juga akan dipakai untuk penyederhanaan matriks transformasi, yaitu: Sin (α + β) = sin α cos β + cos α sin β Sin (α - β) = sin α cos β - cos α sin β Sin (α + β) = cos α cos β - sin α sin β Sin (α - β) = cos α cos β + sin α sin β Sehingga matriks transformasi total adalah T=T1T2T3……………..………………………………….. (4.2)
...............……………………. (4.1) T adalah transformasi matrik yang digunakan adalah dx, dy, dz adalah perpindahan berupa perpindahan sesuai dengan sumbu. Gambar 4.6 menunjukkan letak-letak transformasi masing – masing ujung lengan setiap joint.
0 0 c 2 1 0 0 c s L1 0 1 1 T= 0 s1 c1 0 s 2 0 1 0 0 0
0 s 2 1 0 0 c 2 0 0
0 1 0 0 0 L 2 0 c 3 s 3 L3 0 0 s 3 c 3 0 1 0 0 0 1
T=
s 2 s 3 s2c3 0 c2 s s (c1c2 ) ( s1 )(c 2 )(s3 ) (c1 )( s3 ) ( s1)(c2 )(c 3 ) (c1 )( L3) (c1 )( L2)( L3) 1 2 c1 ( s 2 ) (s1c3 ) (c1c 2 s3 ) (s1 )( s3 ) (c1c 2c3 ) ( s1 )( L3) ( s1 )( L2) 0 0 0 1
T=
s2 c3 c2 s3 s 2 c3 0 c2 ss ( c c s s ) ( s )( c )( s ) ( c )( s ) ( s )( c )( c ) ( c )( L 3 ) ( c )( L 2 )( L 3 ) 1 2 1 3 1 3 1 2 3 1 3 1 2 3 1 1 c1 ( s2 ) ( s1c3 ) (c1c2 s3 ) (s1 )( s3 ) (c12c3 s12 s3 ) ( s1 )( L3) ( s1 )( L 2) 0 0 1 0
Misal untuk mengetahui posisi end effector dengan parameter dapat dijelaskan pada tabel 4.5: Tabel 4.2 Parameter Sudut Dan Panjang Link Joint
Variabel
θi (tetha)
Li (cm)
1
θ1
70
7
2
θ2
-45
8
3
θ3
90
18
Maka didapat diketahui posisi end effector sebagai Gambar 4.1: Transformasi pada lengan robot
berikut.
6 [2] 67.21 0 70.08 T1T2T3 0 ……………………………………… (4.3) 30.49 0 1 1 0 0 c 2 67.21 1 0 70.08 0 c s L1 0 1 1 30.49 0 s1 c1 0 s2 0 1 0 1 0 0
0 s 2 1 0 0 c 2 0 0
0 1 0 L2 0 c3 0 0 s3 1 0 0
0 0 0 s3 L3 0 c 3 0 0 0 1 1
Maka matriks sebelah kanan adalah titik awal atau pangkal dari lengan robot yaitu (0,0,0), sehingga diperoleh posisi x = 67.21, y = 70.08, dan z = 30.49. Dimana nilai tersebut memenuhi nilai dari Mx = 69, My = 71 yang berupa posisi dari deteksi warna pada obyek ketiga menggunakan web camera. Dimana pada posisi deteksi warna pada sumbu z dinisialisasikan sebesar 30. Pada perhitungan di atas diperoleh sudut pergerakan DOF 1 sebesar 700 pada posisi sumbu z, DOF 2 sebesar -450 pada posisi berlawanan sumbu x, dan DOF 3 sebesar 900. Pada posisi obyek ini memiliki error yang sedikit dengan perhitungan.
[3]
[4]
[5] [6]
[7]
[8]
[9] V. KESIMPULAN Dari pengujian yang telah dilakukan, dapat diketahui bahwa ada beberapa hal yang dapat diambil kesimpulan pada pengujian ini bahwa. 1. Data yang diperoleh dari program di atas adalah berupa data posisi x, y, dan z. Data x dan y ini dibagi menjadi 3 bagian masing-masing. Terdapat x1 blue, x2 blue, Mx blue, y1 blue, y2 blue, dan My blue. x dan y merupakan bagian dari posisi sumbu caretesian pada bagian kotak yang mendeteksi warna tersebut. Untuk Mx dan My merupakan titik tengah dari bagian kotak tersebut atau posisi tengah dari warna tersebut. Pada posisi z dikalibrasi sebesar 30 cm. 2. Data yang diperoleh jika obyek berwarna tersebut bergerak ke kiri maka nilai x dan y akan memiliki nilai semakin kecil sedangkan jika bergerak ke kanan maka nilai x dan y akan memiliki nilai semakin besar. Hal ini juga berlaku untuk Mx dan My. 3. Pada perhitungan mekanik diperoleh posisi end effector x = 67.21, y = 70.08, dan z = 30.49. Perhitungan ini diperoleh dengan parameter sudut θ1 = 70, θ2 = -45, θ3 = 90. 4. Pendeteksian warna pada obyek yang terdeteksi pada webcam merupakan data yang diperoleh dari Mx dan My yaitu merupakan titik tengah dari warna tersebut. VI. DAFTAR PUSTAKA [1]
Kaneko, Kenji er.al. (2002) ”Design of Prototype Humanoid Robotics Platform for HRP” Proceedings of the 2002 IEEE/RSJ, Intl. Conference on Intelligent Robot and Systems EPFL, Lausanne, Switzzerland.
[10]
[11]
[12]
Kay, Jennifer. (2005) “Introduction to Homogeneus Transformation & Robot Kinematics”. Rowan University Computer Science Department. Kelly, Alonzo. (1994). “Essential kinematics for Autonomous Vehicle”, Carnegie Mellon University Robotics Institute. Mechanics-statics, http://www.societyofrobots.com/mechanics_statics. shtml, diakses terakhir tanggal 10 Februari 2010. Parken,R. E., (1990) “Applied Robotics Analysis”, Prentice Hall, Englewood Cliff. Paul C., Yokoi H., Matsushita K., (2003) “ Design and Control of Humanoid Robot Locomotion with Passive Legs and Upper Body Actuation”, in : Proc. International Symposium on Robotics, Paris, France. Pitowarno, Endra. (2006). ”Robotika Desain, Kontrol, dan Kecerdasan Buatan”. Yogyakarta: Penerbit ANDI. Risnumawan, Anhar. (2009). “Human Friendly Arm Robot Using Interactive Particle Swarm Optimazation”. Proyek Akhir, PENS – ITS. Robot arm torque, http://www.robotshop.ca/robotarm-torque-tutorial.html, diakses terakhir tanggal 28 Maret 2010. Samuel S.S, Ingot. (2009). “Building A Robot Designed Pantilt : Detection Of Human Hand Position Using Genetic Algorithm”. Proyek Akhir, PENS – ITS. Sutrisna P, Ari, Koredianto U, Murti, M Ary. (2009). ”Deteksi Kebakaran Berbasis Webcam Secara Realtime dengan Pengolahan Citra Digital”. Insititut Teknologi Telkom – Bandung. Zuhantoro W, Arif. (2006) “Sistem Pembelajaran Kinematika Robot Lengan 3D”. Proyek Akhir, PENS – ITS.