Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
16
BAB III
PERANCANGAN
Membahas perancangan sistem yang terdiri dari gambaran umum sistem dan
bagaimana mengolah informasi yang didapat dari penglihatan dan arah hadap robot di
dalam algoritma penentuan lokasi dan penempatan posisi.
3.1. Sistem Instruksi dan Kontrol Robot
Sistem kontrol robot terdiri dari 3 bagian utama, yaitu smartphone Android
sebagai pemroses utama, controller servo robot kondo KHR-3HV (RCB4) sebagai
pengontrol servo-servo yang menggerakkan tubuh robot, dan ATMega324 sebagai
pengontrol servo kepala dan memberikan perintah kepada controller KHR-3HV dari
smartphone Android. Gambar 3.1 menunjukkan blok diagram sistem instruksi robot
yang digunakan.
Gambar 3.1. Sistem instruksi dan kontrol robot.
17
3.2. Desain Perangkat Keras
3.2.1. Smartphone Android
Smartphone Android Xperia Mini St15i digunakan sebagai pemroses algoritma
utama. Semua instruksi yang dijalankan oleh ATMega 324, controller servo KHR-3HV
dan servo kepala berasal dari smartphone Android. Algoritma yang dijalankan
mengambil tindakan berdasarkan citra yang didapat dan diolah menggunakan library
OpenCV. Informasi akan dieksekusi dalam bahasa Java yang dirancang menggunakan
Eclipse IDE.
Gambar 3.2. Sensor orientasi smartphone Android.
Smartphone Android memiliki sensor orientasi dimana terdapat sumbu yaw,
pitch, dan roll seperti yang ditunjukkan pada Gambar 3.2. Kompas memanfaatkan
sumbu yaw dari sensor Android ini. Sudut 0° diatur agar selalu mengarah ke tiang
gawang musuh. Pengaturan sudut kompas ditunjukkan oleh Gambar 3.3.
Gambar 3.3. Nilai kompas (yaw) yang digunakan [14].
18
3.2.2. Mikrokontroler ATMega 324 dan Controller Servo KHR-3HV
Mikrokontroler ATMega 324 bertugas mengontrol servo pan dan tilt kepala dan
servo tubuh. Pengontrolan servo tubuh dilakukan dengan mengirimkan instruksi
gerakan ke controller servo KHR-3HV. Instruksi gerakan yang dikirim adalah instruksi
gerakan yang didapat dari perintah smartphone Android.
3.2.3. Modul Bluetooth
Modul bluetooth dengan versi DF-Bluetooth V3 digunakan sebagai media
penghubung smartphone dengan ATMega 324. Instruksi-instruksi dari Android
berbentuk paket data dikirim melalui modul bluetooth ke ATMega 324. Instruksi yang
dikirimkan berupa instruksi untuk menggerakkan servo pan dan tilt kepala serta servo
tubuh robot.
3.2.4. Motor Servo
Motor Servo digunakan untuk mengontrol gerakan kepala robot. Terdapat 2
motor servo yang digunakan, yaitu untuk pan dan tilt kepala robot. Motor servo
dikontrol oleh ATMega 324 dengan menggunakan modulasi lebar pulsa atau Pulse
Width Modulation (PWM). Gambar 3.4 menunjukkan konfigurasi pan dan tilt kepala
robot
Gambar 3.4. Arah sudut pan dan tilt servo kepala robot [14].
19
3.3. Pendeteksian Tiang Gawang Menggunakan Android dan OpenCv
Algoritma penentuan lokasi dan penempatan posisi robot di lapangan diperoleh
dengan menggunakan informasi yang diperoleh dari citra gawang, kompas, dan pan
kepala robot. Citra gawang yang dipakai adalah citra tiang gawang. Tiang gawang
dipilih sebagai acuan karena tiang gawang adalah landmark yang mudah terlihat dari
posisi mana saja di lapangan. Proses pendeteksian tiang gawang dilakukan
menggunakan android dengan bantuan library OpenCV.
Kamera Android akan mengirimkan citra yang akan dilakukan pemeriksaan
objek tiang gawang menggunakan library Android OpenCV. Untuk menentukan tiang
gawang, digunakan metode penentuan pusat massa [1] dengan mencari objek yang
memiliki lebar minimal ptgMin dan tinggi minimal htgMin.
Jika sebuah bagian vertikal memiliki warna kuning dengan ketinggian minimal
htgMin, maka akan dilakukan pemeriksaan secara horisontal. Jika lebar objek (ptg) lebih
besar dari lebar proyeksi sebuah objek tiang gawang minimal (ptgMin), maka objek
adalah tiang gawang yang memiliki lebar proyeksi ptg pixel [13].
Gawang tim musuh dan gawang tim sendiri dibedakan menggunakan kompas,
dimana 0° adalah arah hadap robot ke gawang tim musuh dan 180° adalah arah hadap
ke gawang tim sendiri. Tiang gawang kanan dan kiri dibedakan menggunakan metode
pusat massa. Tiang kiri memiliki pusat massa yang berada di kiri pusat massa gawang
secara keseluruhan, sedangkan tiang kanan memiliki pusat massa yang berada di kanan
pusat massa gawang secara keseluruhan. Gambar 3.5. menunjukkan contoh
pendeteksian tiang gawang.
Gambar 3.5. Contoh pendeteksian tiang gawang dengan ptgMin=2 pixel dan htgMin=5
pixel
20
3.4. Perhitungan Jarak Robot dan Gawang
Tiang gawang yang berbentuk silinder akan terlihat berbentuk persegi panjang
pada bidang gambar kamera. Jika jarak antara kamera dan tiang gawang serta tilt robot
tetap, meskipun dilihat dari sudut manapun, lebar persegi panjang hasil proyeksi tiang
gawang akan selalu tetap. Lebar tiang gawang akan digunakan untuk mencari jarak
antara robot dan tiang gawang.
Gambar 3.6. Proyeksi lebar tiang gawang pada kamera yang akan dianalisis.
Perhitungan jarak robot dan gawang dilakukan dengan menggunakan persamaan
(3) pada Bab 2.5.2. Gambar 3.6 menunjukkan lebar tiang gawang hasi proyeksi pada
bidang gambar kamera yang dapat diibaratkan sebagai sebuah garis dengan lebar dtg cm.
Jika lebar tiang gawang asli adalah Dtg cm, dan fokus kamera adalah f cm, maka dapat
dicari jrg, yaitu jarak robot ke gawang dengan persamaan :
tg
tg
rgd
Dfj
........................................................................................................ (4)
dengan
jrg = jarak bola dan tiang gawang (cm)
f = fokus kamera (cm)
Dtg = lebar tiang gawang asli (cm)
dtg = lebar tiang gawang hasil proyeksi dalam dalam sentimeter (cm)
21
Pendeteksian tiang gawang pada Bab 3.3 mendeteksi lebar tiang gawang dalam
satuan pixel, sedangkan persamaan untuk menghitung jarak robot dan tiang gawang
(persamaan 4) menggunakan lebar tiang gawang dalam satuan sentimeter. Oleh karena
itu, dibutuhkan pengkonversian nilai antara sentimeter dan pixel sebagai satuan lebar
tiang gawang yang terdeteksi.
Resolusi kamera adalah 480 x 320 pixel. Analisa lebar tiang gawang dilakukan
secara landscape, sehingga lebar resolusi layar yang digunakan adalah 480 pixel.
Sebuah objek yang terdeteksi pada layar dengan panjang dob, akan menggunakan pob
pixel dengan rumus:
L
dRp ob
ob ........................................................................................................ (5)
dengan :
pob = lebar proyeksi sebuah objek di bidang gambar kamera (pixel)
R = resolusi (pixel)
dob = lebar benda yang terdeteksi pada layar (cm)
L = lebar layar (cm)
Gambar 3.7 menunjukkan hubungan lebar benda dan nilai pixel yang digunakan
pada layar sesuai dengan rumus (5).
(1) (2) (3)
Gambar 3.7. Pendeteksian sebuah objek bola menunjukkan lebar benda dan nilai
pixel yang berhubungan.
Keterangan gambar 3.7:
(1) dob = 0,9 cm ; pob = 67 pixel
(2) dob = 1,7 cm ; pob = 127 pixel
(3) dob = 2,0 cm ; pob = 153 pixel
22
Jarak robot dan tiang gawang (jrg) pada persamaan (4) dapat dicari dengan
menggunakan persamaan (5) dengan pob=ptg dan dob=dtg karena objek yang dideteksi
adalah tiang gawang.
tg
tg
rgd
Dfj
, sedangkan L
dRp
tg
tg , maka :
)(R
Lp
Dfj
tg
tg
rg
Lp
RfDj
tg
tg
rg
........................................................................................................ (6)
Fokus kamera yang digunakan (f) adalah 7,2 cm, lebar tiang gawang yang asli
(Dtg) adalah 10 cm, Resolusi layar (R) adalah 480 pixel, dan lebar layar (L) adalah 6,4
cm. Dari rumus jrg, L
RfDtgadalah suatu konstanta yang memiliki nilai 5400, sehingga jrg
dapat dicari dengan rumus:
tg
rgp
j5400
......................................................................................................... (7)
dengan :
jrg = jarak antara robot dan tiang gawang (cm)
ptg = lebar proyeksi tiang gawang di bidang gambar kamera (pixel)
23
3.5. Penentuan Posisi Robot di Lapangan
Gambar 3.8. Desain sistem koordinat lapangan KRSBI.
Desain sistem koordinat lapangan KRSBI ditunjukkan pada Gambar 3.8.
Koordinat (0,0) berada di tengah lapangan dengan sumbu Y positif menunjukkan daerah
depan penyerangan, sedangkan sumbu Y negatif menunjukkan daerah belakang
penyerangan. Sumbu X positif menunjukkan daerah kanan lapangan, sedangkan sumbu
X negatif menunjukkan daerah kiri lapangan.
Setelah didapat jarak robot dan tiang gawang, yaitu jrg dan selisih sudut pan
kepala dan kompas robot (α), maka posisi robot relatif terhadap salah tiang gawang,
yaitu koordinat x dan y dapat dicari menggunakan selisih pan dan kompas robot seperti
yang ditunjukkan pada Gambar 3.9. Koordinat robot diperoleh dari rumus:
)sin(rgrg jx .................................................................................................. (8)
)cos(rgrg jy .................................................................................................. (9)
dimana
α = pan – 90 – kompas ....................................................................................... (10)
90 adalah nilai saat robot menghadap lurus ke depan (gambar 3.4).
24
Gambar 3.9. Penentuan koordinat relatif robot terhadap salah satu tiang gawang
Koordinat robot relatif terhadap koordinat lapangan dapat dicari dengan
melakukan pergeseran koordinat xrg dan yrg tergantung dari jenis tiang gawang yang
sedang digunakan untuk acuan. Tabel 3.1 adalah pergeseran koordinat relatif robot
terhadap tiang gawang ke koordinat robot terhadap lapangan. Gambar 3.10
menunjukkan diagram alir penentuan lokasi robot. Pseudocode 1 menunjukkan
algoritma menghitung lokasi robot di lapangan.
Tabel 3.1. Tabel pergeseran koordinat relatif robot terhadap tiang gawang ke koordinat
robot terhadap lapangan.
Jenis tiang gawang Rumus koordinat robot terhadap
lapangan
Gawang sendiri
Tiang kanan xrl = xrg - 112,5
yrl = -450 - yrg
Tiang kiri xrl = xrg +112,5
yrl = -450 - yrg
Gawang musuh
Tiang kanan xrl = xrg + 112,5
yrl = 450 - yrg
Tiang kiri xrl = xrg - 112,5
yrl = 450 - yrg
25
26
Gambar 3.10. Diagram alir algoritma menentukan lokasi robot
//Menghadapkan kepala ke depan
if(ada tiang gawang){
//memfokuskan kamera ke tengah tiang gawang
//menghitung jarak robot dan tiang gawang
//menyelisihkan kompas dan pan kepala robot
//mencari x dan y robot terhadap tiang gawang
//memeriksa jenis tiang gawang yang sedang dilihat
//mendapatkan x dan y robot terhadap lapangan berdasarkan
jenis tiang gawang yang sedang dilihat
}
else{
if(kompas/orientasi robot menghadap ke kiri){
//menghadapkan kepala robot ke kiri
//selama belum menemukan gawang, robot melakukan
pergeseran kepala ke arah kanan
}
else{
//menghadapkan kepala robot ke kanan
//selama belum menemukan gawang, robot melakukan
pergeseran kepala ke arah kiri
}
}
Pseudocode 1. Pseudocode algoritma menghitung lokasi robot di lapangan
27
3.6. Penentuan Posisi Bola di Lapangan
Robot dapat menentukan posisi bola dilapangan dengan cara mencari jarak bola
terhadap robot terlebih dahulu dengan bantuan tilt robot. Gambar 3.11 menunjukkan
jarak antara robot dan bola (jbr) diperoleh dari rumus:
tan
rbr
hj , dengan hr (tinggi robot) adalah 47 cm.
tan
47brj
....................................................................................................... (11)
dengan
jbr = jarak bola dan robot (cm)
hr = tinggi robot (cm) = (47 cm)
γ = sudut tilt (derajat)
Gambar 3.11. Penentuan jarak robot terhadap bola.
28
Setelah mendapatkan jarak robot dan bola, dapat dicari koordinat x dan y relatif
bola terhadap robot menggunakan selisih pan dan kompas robot (β) seperti yang
ditunjukkan pada Gambar 3.12. Koordinat relatif bola diperoleh dengan rumus:
)sin(rbbr jx ................................................................................................ (12)
)cos(rbbr jy .................................................................................................. (13)
dimana
β = pan – 90 – kompas ....................................................................................... (14)
90 adalah nilai saat robot menghadap lurus ke depan (gambar 3.4).
Gambar 3.12. Penentuan koordinat relatif bola terhadap robot.
Jika robot telah mengetahui posisinya di lapangan, maka robot dapat
menentukan posisi bola relatif terhadap lapangan.
rlbrbl xxx ...................................................................................................... (15)
rlbrbl yyy ..................................................................................................... (16)
Gambar 3.13 menunjukkan diagram alir penentuan posisi bola. Pseudocode 2
menunjukkan algoritma menghitung lokasi bola relatif terhadap robot.
29
Gambar 3.13. Diagram alir algoritma menentukan lokasi bola
//Menghadapkan kepala depan
if(ada bola){
//memfokuskan kamera ke bola
//menghitung jarak robot bola
//menyelisihkan kompas dan pan kepala robot
//mencari x dan y bola terhadap robot
}
else{
//melakukan gerakan memutar tubuh dan kepala untuk mencari
bola
}
Pseudocode 2. Pseudocode algoritma menghitung lokasi bola
30
3.7. Penentuan Daerah Kerja Robot di Lapangan
Terdapat 2 macam peran robot di lapangan yang memerlukan algoritma
penentuan lokasi dan penempatan posisi, yaitu robot penyerang dan robot bek. Daerah
kerja penyerang adalah untuk berjaga di lapangan bagian depan, sedangkan daerah kerja
bek adalah untuk berjaga di lapangan bagian belakang. Algoritma penentuan lokasi dan
penempatan posisi didukung oleh proses komunikasi antar robot dimana terdapat
informasi tentang robot yang sedang memegang bola seperti yang ditunjukkan pada
Gambar 3.14 dan Gambar 3.15. Terdapat 2 kondisi permainan di lapangan, yaitu saat
menyerang dan bertahan. Kondisi menyerang ditunjukkan saat robot penyerang
mendapatkan bola, dan kondisi bertahan ditunjukkan saat kiper mendapatkan bola.
Proses komunikasi akan mengirimkan data kondisi permainan berdasarkan robot yang
sedang memegang bola. Berdasarkan data yang masuk, robot akan memanggil fungsi
yang menjalankan proses penempatan posisi. Saat menerima data komunikasi yang
menunjukkan kondisi untuk menyerangke arah musuh, robot penyerang akan
memanggil fungsi yang akan memposisikan dirinya untuk selalu berjaga di depan,
sedangkan robot bek akan memanggil fungsi yang memposisikan dirinya untuk selalu
berjaga di belakang garis tengah lapangan. Sedangkan saat menerima data komunikasi
yang menunjukkan kondisi untuk bertahan, robot penyerang akan memanggil fungsi
yang memposisikan dirinya untuk pergi ke belakang hingga garis tengah lapangan,
sedangkan robot bek akan berusaha membuang bola ke depan. Proses pemposisian diri
terjadi saat robot penyerang/bek tidak sedang memegang bola. Algoritma penentuan
lokasi dan penempatan posisi dirancang terpisah dengan algoritma untuk mengejar bola.
31
Gambar 3.14. Proses pergantian kondisi pada robot penyerang
Gambar 3.15. Proses pergantian kondisi pada robot bek
32
3.7.1. Algoritma Penempatan Posisi Menyerang Robot Penyerang
Robot penyerang ditunjukkan pada Gambar 3.16. Gambar 3.17 menunjukkan saat
kondisi menyerang dan robot tidak sedang memegang bola, maka robot penyerang akan
memposisikan dirinya ke arah penyerangan bagian depan bola dengan jarak setengah
jarak bola ke gawang, kecuali bola berada di dalam kotak penalti.
Gambar 3.16. Robot yang menjalankan algoritma penyerang.
Gambar 3.17. Penempatan posisi menyerang robot penyerang.
Robot penyerang akan pergi ke arah tengah gawang hingga setengah dari jarak
bola ke tengah gawang. Hal ini dilakukan agar proses interaksi lebih sering terjadi
antara robot dan bola yang ditendang oleh robot teman. Gambar 3.18 menunjukkan
diagram alir penempatan posisi menyerang robot penyerang. Pseudocode 3
menunjukkan algoritma penempatan posisi menyerang robot penyerang.
33
Gambar 3.18. Diagram alir algoritma penempatan posisi menyerang robot
penyerang.
34
//mengarahkan orientasi robot ke arah penyerangan
//mencari gawang
//menghitung lokasi robot di lapangan
//mencari bola
//menghitung lokasi bola di lapangan
if(bola pada kotak pinalti){
//standby menjaga bola
}
else{
//menghitung seberaba banyak robot harus melangkah ke depan
bola ke arah gawang musuh
while(langkah belum habis){
//robot maju ke depan
if(ada bola){
//mengarahkan pandangan robot ke bola
}
else{
//mencari bola dengan menggelengkan kepala
}
}
}
Pseudocode 3. Pseudocode algoritma positioning attack robot penyerang
3.7.2. Algoritma Penempatan Posisi Bertahan Robot Penyerang
Gambar 3.19 menunjukkan saat kondisi sedang bertahan, maka robot penyerang
akan mundur ke belakang lurus hingga garis tengah lapangan. Hal ini mencegah robot
penyerang kehilangan bola di bagian depan lapangan. Gambar 3.20 menunjukkan
diagram alir penempatan posisi bertahan robot penyerang. Pseudocode 4 menunjukkan
algoritma penempatan posisi bertahan robot penyerang.
Gambar 3.19. Penempatan posisi bertahan robot penyerang.
35
Gambar 3.20. Diagram alir algoritma penempatan posisi bertahan robot
penyerang.
36
//mengarahkan orientasi robot ke arah gawang sendiri
//mencari gawang
//menghitung lokasi robot di lapangan
//menghitung seberaba banyak robot harus melangkah ke depan bola
ke arah gawang sendiri
while(langkah belum habis){
//robot maju ke arah sendiri
if(ada bola){
//mengarahkan pandangan robot ke bola
}
else{
//mencari bola dengan menggelengkan kepala
}
}
Pseudocode 4. Pseudocode algoritma positioning bertahan robot penyerang
3.7.3 Algoritma Penempatan Posisi Robot Bek
Robot penyerang ditunjukkan pada Gambar 3.21. Gambar 3.22 menunjukkan
saat kondisi menyerang, robot bek akan memposisikan dirinya untuk selalu berjaga di
belakang garis tengah lapangan. Gambar 3.23 menunjukkan diagram alir penempatan
posisi bertahan robot penyerang. Pseudocode 5 menunjukkan algoritma penempatan
posisi robot bek.
Gambar 3.21. Robot yang menjalankan algoritma bek.
Gambar 3.22. Penempatan posisi robot bek.
37
Gambar 3.23. Diagram alir algoritma penempatan posisi robot bek.
38
//mengarahkan orientasi robot ke arah gawang musuh
//mencari gawang
//menghitung lokasi robot di lapangan
if(lokasi robot melebihi garis tengah lapangan){
//menghitung seberaba banyak robot harus melangkah ke depan
bola ke arah gawang sendiri
while(langkah belum habis){
//robot maju ke arah sendiri
if(ada bola){
//mengarahkan pandangan robot ke bola
}
else{
//mencari bola dengan menggelengkan kepala
}
}
}
else{
//standby dan menjaga bola
}
Pseudocode 5. Pseudocode algoritma positioning robot bek