30
Aplikasi Deteksi Benda Menggunakan Metode
Image Substraction Sebagai Masukan Koordinat
Pada Robot Lengan 3 DOF
Nur Fery Zulfardi
1, Dede Irawan Saputra
2, Abdullah Dienul Ahkam
3 1,2,3Jurusan Teknik Elektro, Fakultas Teknik, Universitas Jenderal Achmad Yani Jl. Terusan Jenderal Sudirman Cimahi, Indonesia
2dedeirawan.saputra@lecture.unjani.ac.id
Abstrak
Image subtraction adalah metode yang memisahkan antara objek dengan latarnya, metode tersebut dapat digunakan pada proses pemindaian dan pemindahan barang menggunakan robot lengan dengan kamera sebagai sensornya. Image subtraction dapat diterapkan untuk mendeteksi suatu objek dan lengan robot dapat memindahkan barang tersebut. Metode image subtraction digunakan pada penelitian untuk mendeteksi suatu objek. hasil pendeteksian akan diberi tanda dan titik tengah sehingga didapatkan koordinatnya. Koordinat tersebut dapat digunakan untuk menggerakan robot lengan agar menuju objek yang telah terdeteksi. Pengolahan citra dilakukan menggunakan perangkat lunak MATLAB sedangkan untuk menggerakan robot lengan menggunakan mikrokontroller. Robot lengan tersebut memiliki 3 DOF. Proses pendeteksian benda berhasil dilaplikasikan menggunakan metode image subtraction dan memberi tanda objek dan titik tengahnya dapat dikonversi sehingga menghasilkan koordinat 2 dimensi x,y pada citranya, citra akan mengirimkan hasil rekontruksi citra dikirimkan ke mikrokontroller secara serial. Robot lengan dapat bergerak menuju objek yang dideteksi sesuai koordinat yang telah didapatkan. Nilai koordinat pada citra dalam piksel harus dikonversikan terlebih dahulu kedalam koordinat dalam satuan millimeter seperti koordinat pembacaan citra pada piksel (217, 5, 20) dapat dikonversikan dengan mengalikan faktor konversi piksel ke millimeter sebesar 0, 26458 sehingga didapatkan nilai koordinat baru pada ( 57.4826, 1.3798, 5.2916). Adapun koordinat z didapatkan berdasarkan tinggi objek.
Kata kunci:image subtraction, MATLAB, koordinat, robot lengan
I.
P
ENDAHULUANProses pemindahan barang di industri dibeberapa tempat masih menggunakan cara konvensional, sehingga diperlukan mekanisme dan mesin yang dapat memindahkan barang seperti menggunakan bantuan robot dalam meningkatkan produksi [1]. Robot terdiri dari berbagai jenis diantaranya yaitu
arm robot dengan cara kerja seperti lengan manusia
dengan bagian siku, pergelangan dan penjepit [2]. Robot lengan kini banyak digunakan pada sektor
industri dengan mekanisme robot terdiri dari link
dan sendi yang dapat bergerak berdasarkan sudut maupun koordinat [3]. Mekanisme gerak robot pada
dasarnya menggunakan algoritma forward dan
inverse kinematik [4] [5].
Pada [6], robot lengan dapat memindahkan barang menggunakan posisi sebagai acuannya, robot tersebut dapat bergerak sesuai dengan
trajektori yang sudah ditentukan. Selain itu robot lengan dapat memindahkan benda berdasarkan deteksi warna benda pada [7], warna tersebut digunakan robot lengan sebagai indikator pemisah barang. Warna dapat dideteksi menggunakan sensor TCS3200, sensor fotodioda maupun sensor kamera. Adapun pendeteksian warna menggunakan sensor kamera dapat diintegrasikan dengan berbagai algoritma pengolahan citra [8][9], salah satunya
adalah metode image subtraction [10][11]. Robot
juga dapat mengambil barang berdasarkan deteksi visual sehingga robot lengan dapat mengidentifikasi posisi keberadaan letak benda menggunakan sensor kamera tanpa menentukan jarak posisi bendanya.
Berdasarkan permasalahan tersebut robot lengan dapat digunakan sebagai pemindah barang dengan menentukan benda secara visual menggunakan sonsor kamera sebagai pendeteksi posisi benda. Dalam pendeteksian benda, robot lengan dapat
31
mengidentifikasi posisi beradasarkan warna benda
tersebut dengan metode image subtraction. Pada
penelitian dikembangkan sebuah skenario
pendeteksian objek dengan kamera dipasang diatas yang menghadap objek berbentuk kubus berwarna biru akan dideteksi dan selanjutnya robot dengan 3 DOF akan mengambil objek tersebut.
II.
M
ETODEP
ENELITIANPada penelitian, proses pendeteksian benda
menggunakan kamera sebagai sensor. Hasil
pendeteksian diolah pada komputer dengan
perangkat lunak MATLAB. metode pengolahan
citra menggunakan metode image subtraction dan
benda akan terdeteksi berdasarkan warna. Berikut diagram blok sistem secara keseluruhan yang ditunjukkan pada Gambar 1.
Blok sistem dibagi menjadi tiga sub sistem, dan sub sistem tersebut dibagi lagi menjadi beberapa bagian untuk memudahkan dalam menentukan komponen yang digunakan.
Blok sistem input, terdapat kamera yang
digunakan untuk mengambil gambar benda dan hasilnya akan diolah pada bagian proses yang
terdapat komputer sebagai pengolahan citra yang akan menghasilkan koordinat. Arduino mengolah
data koordinat menjadi sudut yang dapat
menggerakan motor servo dapat dilihat pada
Gambar 2. Kameraberfungsi sebagai masukan dan
mendeteksi benda, hasi pendeteksian diolah oleh komputer dengan perangkat lunak MATLAB. Berikut langkah-langkah pada proses pendeteksian.
1. Komputer berfungsi untuk pengolahan citra,
hasil dari kamera diolah menggunakan metode
image subtraction dan mendapatkan koordinat posisi dari benda yang terdeteksi.
2. Papan Arduino Uno sebagai kontroler, yang
berfungsi sebagai kontroler yang menerima data berupa sudut akan diolah dengan progam tertanam yang digunakan untuk menggerakan
motor servo dengan algoritma forward dan
inverse kinematik.
3. Motor servo digunakan sebagai aktuator, data
hasil pengolahan pada program yang berupa sudut akan menggerakan motor servo yang berfungsi sebagai sendi pada robot. Robot lengan akan bergerak menuju benda hasil
pengolahan citra menggunakan metode image
subtraction.
32
Gambar 2. Diagram alir sistem
Proses pendeteksian warna dapat dilihat pada Gambar 3 secara lengkap. Pendeteksian benda menggunakan kamera Logitech C170 dengan resolusi kamera 640x480 piksel. Pada citra memiliki koordinat citra dengan sumbu X dimulai darisisi kiri atas dan sumbu Y dimulai dari sisi kiri atas, dapat dilihat pada Gambar 4.
Gambar 3. Diagram Alir Pendeteksian
Gambar 4. Pembagian koordinat citra berdasarkan resolusi
33
A. Perancangan CitraCitra yang memiliki resolusi 640x480 piksel
dibuat penanda yang dapat memudahkan dalam
pendeteksian. Resolusi citra dikurangi sebanyak 50 piksel pada sumbu x, y dikanan, kiri, atas dan bawah untuk dibuat penanda. Penanda tengah citra diposisikan pada piksel 320 pada sumbu x dan piksel 240 pada sumbu y.
Pembentukan penanda citra dibuat menjadi dua kuadran, sehingga memiliki nilai positif dan negatif pada sumbu x. penanda citra memiliki 270 piksel pada kuadran satu dan 270 piksel pada kuadran dua sedangkan pada sumbu y memiliki 190 piksel.
Ketika benda berada pada posisi diluar penanda maka tidak akan terdeteksi, benda hanya dapat terdeteksi jika didalam penanda. Apabila kamera
dipindahkan posisinya maka tidak akan
mempengaruhi nilai dari hasil pendeteksian karena penanda dibuat berdasarkan posisi benda pada piksel.
B. Perancangan Robot
Dalam
perancangan robot pada Gambar 5 dirancang robot lengan dengan 3 derajat kebebasan pada dengan link pertama 85 mm, link kedua 80 mm dan pada link ketiga sepanjang 130 mm.Pada link pertama berputar dari 0 sampai 180
derajat
untukmenjangkau
objek pada kuadran I dan kuadran II, untuk link kedua bergerak dari 0 sampai 90 derajat dan link ketiga bergerak dari 0 sampai 90 derajat. Pada bagian penjepit termasuk pada link ketiga karna pergerakan penjepit mengikuti link tersebut.Gambar 5. Ilustrasi lengan robot 3 DOF
C. Ruang Kerja Robot
Robot lengan diposisikan pada bidang dengan 48x24 cm, Gambar 5 adalah ruang kerja robot lengan. Pada Gambar 6, Kamera sebagai masukan untuk mendeteksi suatu objek diposisikan dengan tinggi penyangga 47,5 cm dengan lebar penyangga 48cm dengan begitu cakupan kamera 24x34 cm. objek terdeteksi hanya pada bidang cakupan kamera.
Gambar 5. Dimensi ruang kerja robot
Gambar 6. Ruang kerja robot tampak depan
III.
HASIL DAN PEMBAHASANA. Realisasi Sistem
Kamera akan mendeteksi objek yang berada dalam penanda saja, apabila objek diposisikan diluar penanda maka tidak akan menampilkan hasil pembacaan kordinat, Gambar 7 adalah hasil dari pendeteksian objek, objek yang dideteksi adalah berwana biru. Kamera pada saat menyala akan
mengambil snapshot dan diolah menggunakan
34
terdeteksi akan di beri tanda dan titik tengahnya sehingga mendapatkan koordinat objek tersebut. Dalam proses pendeteksian objek tersebut ada beberapa tahap yaitu :
Gambar 7. Realisasi sistem
1) Pengambilan data dari kamera
Tahap ini kamera akan mengambil snapshot
sebanyak satu kali, objek yang didapatkan berupa citra berwarna seperti pada Gambar 8.
Gambar 8. Objek yang dideteksi
2) Mengolah citra objek yang berwarna biru
Setelah pengambilan objek citra, citra yang mengandung warna biru akan dipilih. Citra yang sebelumnya berwarna akan diproses menggunakan
metode image subtract dengan program yang
terdapat pada perangkat lunak MATLAB. Pada
program, imsubtract(data(:,:,3),
rgb2gray(data));.
Program imsubtract akan memproses citra
menggunakan image subtraction dan pada perintah
(: , : , 3), program memilih warna biru. Citra berwarna tersusun dari warna dasar yaitu RGB (merah, hijau dan biru). Angka 3 menandakan bahwa objek warna yang dipilih adalah biru, nilai 1 dan 2 adalah nilai untuk mendeteksi warna merah dan hijau.
Setelah warna biru dipisahkan dari latarnya proses selanjutnya adalah mengubah citra berwarna menjadi citra abu, rgb2gray adalah perintah untuk mengubah citra berwarna menjadi citra abu. Pada Gambar 9 adalah hasil dari pengolahan warna biru dan selanjutnya diubah menjadi abu.
Gambar 9. Pengubahan ke gray
3) Pemberian filter median
Hasil citra yang telah diberi filter median akan lebih halus dari sebelumnya, Gambar 10 adalah citra yang telah diberi filter median gambar yang
semula tidak halus dan memiliki gangguan citra salt
and pepper dihilangkan menggunakan filter median dengan cara mencari nilai tengah 3x3 pada piksel yang memiliki gangguan. Median filter adalah
operasi yang digunakan untuk mengurangi
gangguan salt and pepper.
35
4) Mengubah citra menjadi hitam putih
Gambar 11. Citra hitam putih
Gambar 11 adalah hasil konversi citra yang telah diberi filter median dan diubah menjadi citra hitam putih yang dapat memudahkan pemberian tanda pada citra, karena citra hanya memiliki nilai 1 untuk putih dan 0 untuk hitam.
5) Menghilangkan area yang kurang dari 300 piksel
Pada bagian ini yang ditunjukkan pada Gambar 12, citra yang telah diubah menjadi hitam putih dan hanya memiliki dua nilai yaitu nol untuk hitam dan satu untuk putih memudahkan untuk mengurangi
piksel yang kurang dari 300. Dengan
menghilangkan piksel yang kurang dari 300 piksel
membuat citra akan menjadi fokus pada
pendeteksian, karna citra berwarna tersusun dari warna dasar RGB, sehingga masih ada piksel yang seharusnya tidak terdeteksi.
Gambar 12. Hasil menghilangkan area yang kurang dari 300 piksel
6) Pemberian tanda
Gambar 13. Pemberian tanda
Pada tahap ini citra berwarna putih diberi tanda
dengan menggunakan properti regionprops pada
properti tersebut terdapat perintah boundingbox dan
centroid. Properti tersebut digunakan untuk menandai gumpalan warna putih dan lalu diberi titik tengah dari objek yang telah terdeteksi. Nilai tengah tersebutlah untuk menampilkan koordinat objek yang terdeteksi dengan menampilkan kordinat x,y dan z seperti yang ditunjukkan pada Gambar 13.
B. HasilPendeteksian
Objek yang terdeteksi dan melalui proses pengolahan citra sebenarnya hanya memiliki koordinat x dan y saja. Karena kamera yang
digunakan untuk mendeteksi suatu objek
menggunakan satu kamera saja, nilai z dimasukan secara manual untuk merepresentasikan tinggi dari objek yang terdeteksi sehingga objek dapat di angkat oleh lengan robot.pada Gambar 7 koordinat pada citra masih dalam bentuk koordinat piksel hanya saja posisinya telah disesuaikan dengan koordinat yang digunakan oleh robot lengan.
Gambar 14 kamera mendeteksi objek dan mendapatkan koordinat, koordinat benda yang ditampilkan dalam koordinat piksel dan apabila diimplementasikan langsung pada robot maka tidak akan sesuai posisinya. Maka perlu dikonversikan terlebih dahulu, agar pembacaan sesuai dengan pergerakan robot koordinat dikonversikan ke dalam millimeter. 1 piksel sama dengan 0.26458 millimeter, hasil pendeteksian citra piksel dikalikan dengan 0.26458 agar sesuai dengan kondisi pergerakan robot lengan.
36
Gambar 14. Pendeteksian benda
Dengan berbedanya koordinat antara pergerakan robot dengan koordinat piksel maka pada citraI perlu diubah. Pada program MATLAB
x = background(1)-320; y = 430-background(2);
Pembacaan asli citra dikurangin sebanyak 320 piksel pada sumbu x dan untuk sumbu y yaitu 430 piksel dikurangi dengan hasil pembacaan. Hasil tersebut digunakan dan sesuai dengan dengan kondisi nyatanya. Berikut hasil pendeteksian dan konversi piksel ke milimeter dan nilai sudut yang digunakan untuk menggerakan robot lengan yang ditunjukkan pada Tabel 1.
Tabel 1. Hasil pendeteksian benda
NO Pixel Koordinat Inverse Sudut Inverse (
o ) X Y Z X Y Z T1 T2 T3 1 2 194 20 88,21 -153,52 5,29 0,51 51,37 138,64 2 -134 151 20 -35,33 39,97 5,29 132,12 -151,77 137,81 3 -208 14 20 -55,14 3,61 5,29 176,29 -150,08 137,13 4 128 149 20 33,79 39,31 5,29 48,64 -153,12 138,34 5 202 9 20 53,55 2,25 5,29 2,37 -151,55 137,72 6 2 220 20 0,56 58,25 5,29 88,22 -144,62 131,34 7 -71 216 20 -18,78 57,26 5,29 109,13 -142,79 130,48 8 -88 195 20 -23,31 51,47 5,29 115,26 -146,15 132,05 9 -99 190 20 -26,24 50,31 5,29 118,39 -145,94 131,95 10 -94 190 20 -24,77 50,27 5,29 117,09 -146,57 132,23 11 -132 156 20 -35,01 41,30 5,29 130,96 -148,28 133,00 12 -157 134 20 -41,58 35,54 5,29 140,02 -147,78 132,78 13 -203 110 20 -53,82 29,09 5,29 151,99 -141,97 130,08 14 1 194 20 0,17 51,23 5,29 88,58 -150,95 134,14 15 167 93 20 44,27 24,48 5,29 28,55 -151,54 134,38
Tabel 1 merupakan hasil pendeteksian pada kuadran I dan II, sehingga nilai di kuadran satu nilai x bernilai positif dan pada kuadran ke dua nilai x bernilai negatif. Ketiga koordinat tersebut akan
digunakan pada algoritma inverse kinematik dan
menghasilkan sudut untuk menggerakan motor servo pada robot lengan. Berikut Gambar 15 yang
menunjukkan aplikasi mengambilan benda
berdasarkan deteksi citra benda.
C. Inverse Kinematik
Gambar 14. Posisi robot ketika mengambil objek
Robot lengan mula-mula berada pada posisi tegak dengan kondisi capit terbuka. Ketika robot lengan diberi data sudut dari MATLAB hasil pendeteksian, kemudian dikirim secara serial ke mikronotroler pada robot lengan, kemudian robot akan mulai bergerak menuju objek sesuai dengan koordinat
37
masukan. berikut spesifikasi robot lengan yang
digunakan pada algoritma inverse kinematik
a1 = 85 // panjang lengan 1 (mm) a2 = 80 // panjang lengan 2 (mm) a3 = 130 // panjang lengan 3 (mm) X = 46.7307 // contoh masukan koordinat x Y = 23.3928 // contoh masukan koordinat y Z = 5.2916 // contoh masukan koordinat z r1 = sqrt(x^2+y^2) r2 = z-a1 r3 = sqrt(r1^2+r2^2) phi1 = (acos((a3^2-a2^2-r3^2)/(-2*a2*r3)))*3.14*18 phi2 = (atan(r2/r1))*3.14*18 T2 = (180-(phi2-phi1)) T3 = (acos((r3^2-a2^2-a3^2)/(-2*a2*a3)))*3.14*18
Theta1 = (atan(y/x))*3.14*18 //sudut yang diberikan ke servo 1 Theta2 = 180-T2//sudut yang
diberikan ke servo 2 Theta3 = 180-T3 //sudut yang
diberikan ke servo 3
IV.
K
ESIMPULANDalam perancangan pendeteksian benda berhasil
dibuat menggunakan metode image subtraction
dengan hasil pendeteksian menghasilkan koordinat. Proses pendeteksian dapat dilakukan di dalam
marker dengan membagi menjadi kuadran I dan kuadran II. Perancangan robot lengan berhasil dibuat, dengan hasil pergerakan robot lengan dapat bergerak di kuadran I dan kuadran II. Pergerakan robot sesuai dengan titik koordinat yang diberikan
berdasarkan pendeteksian dari kamera
menggunakan metode inverse kinematik.
Pendeteksian objek menggunakan kamera dapat dikembangkan dengan mendeteksi selain warna, seperti bentuk dan ukurannya dan cakupan robot lengan dapat ditingkatkan cakupan area deteksinya menjadi 4 kuadran.
R
EFERENSI[1] D. P. Angin, H. Siagian, M. Adam, E. D. Suryanto, M. Nababan, R. Saut, and Simanungkalit, “Perancangan Robot Lengan
Pemindah Barang Berdasarkan Jarak,” in Seminar Nasional Inovasi dan Ilmu Komputer, 2018, no. April, pp. 84–87.
[2] M. H. Barri, A. Ryandika, A. Cesario, and A. Widyotriatmo, “Desain dan Kontrol Posisi dari Arm Manipulator Robot Sebagai Alat Rehabilitasi Pasien Pasca Stroke,” J. Otomasi, Kontrol dan Instrumentasi, vol. 9, no. 2, pp. 81– 95, 2017.
[3] R. Y. A, “Geometric Jacobians Derivation and Kinematic Singularity Analysis for Smokie Robot Manipulator & the Barrett WAM,” in 5th international Conference on Robotics and Mechatronics, 2017, pp. 1–10.
[4] A. Surriani, M. Arrofiq, and Fahmizal, “Pemodelan Forward Kinematic dan Inverse Kinematic Robot Berlengan PUMA 560,” J. Ilm. Tek. Elektro Komput. dan Inform., vol. 4, no. Desember, pp. 66–75, 2018.
[5] Andy, A. Laurensius, Firmansyah, and I. H. Kartowisastro, “Perancangan Model Industrial Robot Secara Kinematik,” J. Tek. Komput., vol. 17, no. Agustus, pp. 147–162, 2009.
[6] G. Huang, C. Tung, H. Lin, and S. Hsiao, “Inverse Kinematics Analysis Trajectory Planning for a Robot Arm,” in 8th Asian Control Conference, 2011, pp. 965–970.
[7] E. S. Kheng, A. Hasni, A. Hassan, A. Ranjbaran, and T. S. Siong, “Range Estimation for Robot arm Applications using Image Segmentation and Curve Fitting Tool,” in International Conference on Electrical, Control and Computer Engineering, 2011, pp. 275–278.
[8] V. Goel, S. Singhal, T. Jain, and S. Kole, “Specific Color Detection in Images using RGB Modelling in MATLAB,” Int. J. Comput. Appl., vol. 161, no. 8, pp. 38–42, 2017.
[9] D. I. Saputra and L. Aunillah, “Skenario Pengendali Lampu Lalu Lintas Berdasarkan Kepadatan Kendaraan Menggunakan Logika Fuzzy dan Deteksi Tepi,” in Seminar Nasional Teknik Elektro 2019, 2019, vol. 4, pp. 194–200. [10] D. I. Saputra, S. Sambasri, J. Maulana, C. A.
Mulyadi, and L. Aunillah, “Laboratorium Kit Sederhana Untuk Pengolahan Citra Digital dan Instrumentasi,” in Seminar Nasional Instrumentasi, Kontrol dan Otomasi 2018, 2018, pp. 167–178.
[11] E. Ardhianto and W. Hadikurniawati, “Implementasi Metode Image Subtracting dan Metode Regionprops untuk Mendeteksi Jumlah Objek Berwarna RGB pada File Video,” J. Teknol. Inf. Din., vol. 18, no. 2, pp. 91–100, 2013.