The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

Robotika Teori dan Aplikasi (Wisnu Jatmiko, Petrus Mursanto, M Iqbal Tawakal etc.) (z-lib.org)

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by Perpustakaan SMK Telkom Banjarbaru, 2022-04-01 00:00:13

Robotika Teori dan Aplikasi (Wisnu Jatmiko, Petrus Mursanto, M Iqbal Tawakal etc.)

Robotika Teori dan Aplikasi (Wisnu Jatmiko, Petrus Mursanto, M Iqbal Tawakal etc.) (z-lib.org)

posisi quadcopter sebelumnya menyusuri koordinat y. Quadcopter
ini selanjutnya akan mendapatkan sinyal wireless dari quadcopter
di depannya, dimana isinya merupakan koordinat sumbu y dari
quadcopter pengirim. Quadcopter kemudian akan melakukan
perhitungan jarak antara posisinya dengan posisi quadcopter di
depannya dengan menggunakan rumus euclidean metric. Ketika
keduanya mencapai jarak aman yang sudah dihitung sebelumnya,
quadcopter tersebut akan berhenti, dan memberikan notifikasi
kepada quadcopter sebelumnya, bahwa posisi sudah ditetapkan,
sehingga quadcopter sebelumnya akan menghentikan pengiriman
koordinat posisinya. Setelah itu, quadcopter akan mengirimkan
koordinat posisinya kepada quadcopter seterusnya. Pseudocode
untuk algoritma posisi quadcopter adalah sebagai berikut:

ambil posisi quadcopter
ambil posisi target objek
jarak = akar ((x quadcopter - x target objek)^2)

if (jarak <0.2 and x quadcopter > target posisi)
set posisi ke x target objek + 0.2, y target objek, z

target objek
else

kirim koordinat posisi ke quadcopter selanjutnya dan
selesai
end

Tahapan tersebut kembali berulang di quadcopter berikutnya,
hingga semua quadcopter sudah bergerak dan berhenti di
tempatnya masing-masing. Dengan begitu, pola garis akan
terbentuk.

Setelah pola garis terbentuk, yang ditandai dengan berhentinya
quadcopter terakhir, quadcopter terakhir akan memberikan
notifikasi ke quadcopter di depannya melalui jaringan wireless
bahwa pola garis sudah terbentuk. Quadcopter di depannya
tersebut nantinya akan menerima notifikasi itu, dan
meneruskannya ke quadcopter di depannya lagi, dan seterusnya
sampai quadcopter kepala menerima notifikasi tersebut. Ketika
quadcopter kepala sudah menerima notifikasi tersebut,

151

quadcopter kepala akan melanjutkan proses pembentukan formasi
ke tahap pembuatan pola lingkaran (gambar 3.30).

Gambar 3.30. Ilustrasi Pola Garis yang Terbentuk
2. Formasi Lingkaran

Pembuatan pola lingkaran dimulai dengan dilakukannya
penetapan pola lingkaran yang akan digunakan, yaitu seberapa
besar lingkaran yang akan dibentuk nantinya. Besarnya lingkaran
ditentukan dari seberapa banyak quadcopter yang akan membuat
formasi, serta dari seberapa jauh jarak antar quadcopter yang
diinginkan. Jarak antar quadcopter memiliki keunggulan dan
kelemahan tersendiri, tergantung dari lingkungan yang akan
dijelajahi nantinya.

Pada pembuatan formasi yang menggunakan 6 quadcopter di
percobaan kali ini, akan digunakan lingkaran dengan jari-jari
berukuran 1.2 unit. Ukuran tersebut diukur berdasarkan ukuran
koordinat yang terdapat di V-REP. Jarak tersebut digunakan agar
formasi quadcopter tersebut mendapatkan ruang pandang untuk
eksplorasi yang cukup besar.
Setelah ukuran lingkaran ditentukan, quadcopter akan
menentukan posisi pemberhentiannya pada lintasan lingkaran.
Posisi tersebut ditentukan oleh pembagian secara merata dari
keseluruhan lintasan dengan jumlah quadcopter. Dalam percobaan
ini, pembagian lintasan diwakili dengan pembagian derajat dari
keseluruhan lintasan lingkaran, yaitu 3600. Dengan pembagian
tersebut, setiap quadcopter akan memiliki jarak yang sama antar

152

quadcopter yang bersebelahan. Jika dituliskan, rumusnya adalah
sebagai berikut.

Quadcopteri = xi

Di mana i merupakan nomor quadcopter yang dimulai dari 0, dan n
merupakan jumlah keseluruhan quadcopter.

Setelah semua data yang dibutuhkan tersebut telah didapatkan,
quadcopter lalu akan menetapkan titik sumbu dari pola lingkaran
yang akan dibentuk. Titik sumbu berada segaris dengan pola garis
yang sudah terbentuk sebelumnya. Bila digambarkan, posisi dari
pola lingkaran yang akan dibentuk akan berada tepat diatas pola
garis yang sudah terbentuk.

Dengan aturan tersebut, maka titik sumbu x dari pola lingkaran
merupakan posisi sumbu x dari quadcopter kepala ditambahkan
dengan jari-jari dari pola lingkaran dan titik sumbu y dari pola
lingkaran merupakan posisi y dari quadcopter kepala. Dalam notasi
matematika dapat ditulis sebagai berikut:

Posisi sumbu x pusat lingkaran = posisi sumbu x quadcopter + jari-
jari lingkaran

Posisi sumbu y pusat lingkaran = posisi sumbu y quadcopter

Setelah data-data yang dibutuhkan tersebut telah didapatkan
semuanya, maka quadcopter kepala akan memulai pergerakannya.
Pergerakan yang dilakukan quadcopter kepala adalah bergerak
secara perlahan melintasi lintasan lingkaran. Pergerakan tersebut
dilakukan dengan menggunakan algoritma circular movement yang
terlihat pada gambar 3.31.

153

Gambar 3.31. Pergerakan Lingkaran

Dalam teknis pelaksanaannya, quadcopter kepala akan mulai
bergerak dari bagian terbawah dari lintasan lingkaran, kemudian
terus berputar ke kanan atas sambil menelusuri lintasan. Lintasan
lingkaran dibentuk dari titik tengah sumbu x ke arah kiri sehingga
sudut 00 merupakan bagian atas dari lintasan lingkaran. Untuk
memulai pergerakan dari bawah, maka quadcopter kepala akan
memulai pergerakan dari posisi yang bersesuaian dengan sudut -
1800, dan terus ke atas dengan penambahan 100 setiap iterasinya.
Pseudocode dari tahapan ini adalah sebagai berikut:

ambil posisi quadcopter
ambil posisi target objek
jarak = akar ((x quadcopter - x target objek)^2)

if (jarak <0.3)
posisi x baru = pusat lingkaran x + (jari-

jari*(cos(sudut dalam radian))
posisi y baru= pusat lingkaran y + (jari-

jari*(cos(sudut dalam radian))
sudut = sudut + perubahan sudut
if (sudut==160) then
selesai
if (sudut==-120) then
kirim perintah ke quadcopter selanjutnya dan

selesai
end
set posisi quadcopter ke posisi x baru, posisi y

baru, z target objek
end

Quadcopter kepala nantinya akan memberikan instruksi ke
quadcopter selanjutnya untuk memulai pergerakan ketika ia sudah
bergerak selama 1.5 satuan waktu simulasi (sekitar 6 detik waktu

154

normal). Waktu tersebut merupakan perkiraan waktu aman
dimana quadcopter berikutnya tidak akan dapat mengejar
quadcopter sebelumnya jika terdapat selisih waktu sebesar itu.
Quadcopter kepala akan terus melanjutkan pergerakannya
menyusuri lingkaran setelah mengirimkan instruksi tersebut, dan
baru akan berhenti ketika posisi perhentian yang sudah dihitung
sebelumnya tercapai.

Quadcopter-quadcopter selanjutnya akan mengikuti langkah-
langkah yang dilakukan oleh quadcopter kepala sebelumnya dan
berhenti pada posisi perhentiannya masing-masing yang sudah
dihitung sebelumnya.

Pembuatan pola lingkaran ini (Gambar 3.32) akan berakhir ketika
quadcopter terakhir sudah berhenti di posisinya. Ketika hal itu
terjadi, quadcopter terakhir akan memberikan pemberitahuan
kepada quadcopter kepala melalui jarungan wireless. Ketika
quadcopter kepala menerima pemberitahuan ini, maka quadcopter
kepala akan memulai tahap selanjutnya, yaitu pembuatan formasi
poligon. Pseudocode pengecekan apakah quadcopter terakhir
sudah berhenti serta pemberitahuannya ke quadcopter kepala
adalah sebagai berikut:

if (kecepatan quadcopter sumbu x <0.10) and kecepatan
quadcopter sumbu y <0.10 and kecepatan quadcopter sumbu z
<0.10) then

kirim pemberitahuan ke quadcopter kepala
end

155

Gambar 3.32. Ilustrasi Pola Lingkaran yang Terbentuk

3. Formasi Poligon
Pembuatan formasi poligon dilakukan dengan menggunakan
persamaan periodik tertentu sesuai dengan bentuk formasi
poligon yang diinginkan. Persamaan periodik itu nantinya akan
menentukan peran yang akan dijalankan oleh quadcopter.
Penentuan peran dilakukan dengan cara memetakan setiap
quadcopter ke suatu nilai persamaan periodik tersebut dengan
menggunakan rumus yang akan dirancang nantinya. Nilai setiap
quadcopter akan dibandingkan dengan tetangga di sebelah kiri dan
kanannya. Jika nilai persamaan suatu quadcopter lebih tinggi dari
tetangganya, maka quadcopter tersebut akan menjadi sudut.
Sebaliknya, jika nilainya lebih rendah, maka quadcopter tersebut
akan menjadi garis.

Setiap formasi yang dibentuk akan mempunyai persamaan
periodik masing-masing. Persamaan periodik yang digunakan
dipilih dengan menyesuaikan jumlah sudut dari formasi poligon
yang ingin dibuat dengan jumlah puncak gelombang yang ada dari
suatu persamaan periodik. Salah satu fungsi periodik yang cukup
mudah untuk digunakan adalah fungsi sin , dimana jumlah
puncaknya dapat diketahui dari variabel yang ada di depan

Quadcopter yang ada nantinya akan dipetakan pada persamaan
periodik tersebut, dengan menggunakan rumus pemetaan yang
disediakan khusus untuk suatu formasi poligon tertentu.

156

Dalam percobaan ini, formasi poligon yang akan dibentuk adalah
formasi segitiga dan formasi jajar genjang. Fungsi periodik yang
digunakan merupakan fungsi sin karena fungsi tersebut cukup
sederhana dan sudah mencukupi kebutuhan untuk membentuk
formasi segitiga dan jajar genjang. Kedua formasi ini akan dibentuk
dengan tahapan yang berbeda satu sama lainnya. Tahapan masing-
masing formasi tersebut akan dijelaskan di bawah ini.

4. Formasi Segitiga
Formasi segitiga dibentuk dengan menentukan peranan setiap
quadcopter, yaitu quadcopter mana yang akan menjadi sudut, dan
quadcopter mana yang akan menjadi garis. Ketika peranan sudah
ditentukan, quadcopter yang menjadi sudut akan bergerak mundur
menyesuaikan diri menjadi sudut, sedangkan quadcopter yang
menjadi garis akan berada tetap pada posisinya semula seperti
yang terlihat pada gambar 3.33.

Gambar 3.33. Proses Perubahan Formasi dari Pola Lingkaran ke
Pola Segitiga

Formasi segitiga merupakan formasi yang memiliki tiga titik sudut.
Karena itu, dibutuhkan fungsi sin yang mempunyai 3 puncak
gelombang, yaitu fungsi sin 3 . Setelah fungsi ditetapkan, tahapan
selanjutnya adalah menentukan rumus untuk melakukan
pemetaan quadcopter ke fungsi periodik.

Rumus pemetaan didapatkan dengan menghitung posisi tiap
quadcopter dengan menambahkan selisih dari pembagian sudut
pola lingkaran dengan tiap quadcopter secara merata, kemudian
menggesernya hingga nilai hasil pemetaan dari quadcopter

157

pertama sesuai dengan nilai puncak pertama dari grafik yang
terbentuk. Dengan adanya rumus ini, nantinya algoritma
pembentukan formasi ini bisa digunakan untuk pembentukan
formasi dengan jumlah robot yang lebih banyak lagi. Hasil
pembagian sudut pola lingkaran dengan enam quadcopter adalah
600, dan puncak pertama dari grafik Sin 3Ө adalah 300. Karena itu,
rumus pembagian digeser 300 kebelakang, sehingga didapatkan
rumus:

360 ∗
= − 30
Dimana qi adalah quadcopter ke i dan n adalah jumlah quadcopter.

Setelah rumus didapatkan, maka dilakukan pemetaan
menggunakan rumus tersebut untuk masing-masing quadcopter
terhadap grafik sin 3Ө, dan kemudian dihitung perbandingan nilai
setiap quadcopter dengan tetangganya masing-masing. Hasil
pemetaannya bisa dilihat pada gambar 3.34.

Gambar 3.34. Hasil Pemetaan Quadcopter pada Grafik Fungsi sin


Dari hasil perbandingan nilai, terlihat bahwa quadcopter yang
nilainya lebih tinggi dari tetangga di sebelahnya adalah quadcopter
pertama, ketiga, dan kelima. Oleh karena itu, quadcopter tersebut
akan berperan sebagai sudut. Sedangkan quadcopter sisanya, yaitu
quadcopter kedua, keempat, dan keenam, akan berperan sebagai
garis.

158

Pergerakan menuju formasi segitiga dimulai dengan diberikannya
perintah untuk membentuk formasi pada quadcopter yang
bertindak sebagai sudut. Perintah dikirimkan secara broadcast
menggunakan jaringan wireless oleh quadcopter kepala. Ketika
quadcopter yang berperan sebagai sudut menerimanya, maka
quadcopter tersebut akan mundur menyesuaikan posisinya
menjadi sudut.

Quadcopter akan bergerak mundur tegak lurus terhadap garis
pusat. Karena sebelumnya quadcopter berhenti pada posisi yang
sudah ditetapkan pada pola lingkaran, maka target posisi
pergerakan mundur untuk membentuk sudut tersebut bisa
didapatkan dengan memperbesar jari-jari dari pola lingkaran
sebelumnya, sesuai dengan jarak mundur yang diinginkan. Dengan
begitu, prosesnya bisa menggunakan algoritma circular movement
yang sudah dipakai sebelumnya.

posisi x baru = pusat lingkaran x + (jari-jari + jarak
mundur*(cos(sudut quadcopter berhenti))

posisi y baru= pusat lingkaran y + (jari-jari + jarak
mundur*(cos(sudut quadcopter berhenti))

set posisi quadcopter ke posisi x baru, posisi y baru, z
target objek

Setelah semua quadcopter selesai bergerak, maka terbentuklah
formasi segitiga.

5. Formasi Jajar Genjang
Secara umum, tahapan pembentukan formasi dari lingkaran ke
jajar genjang sama dengan tahapan pembuatan formasi dari
lingkaran ke segitiga yang sudah dibahas sebelumnya.
Perbedaannya hanya terletak pada perbedaan fungsi sin yang
digunakan serta perbedaan rumus pemetaannya. Ilustrasi
pembentukan formasi jajar genjang dapat dilihat pada gambar 3.35.

159

Formasi jajar genjang merupakan formasi yang memiliki empat
titik sudut. Karena itu, dibutuhkan fungsi sin yang mempunyai 4
puncak gelombang, yaitu fungsi sin 4 .

Gambar 3.35. Proses Perubahan Formasi dari Pola Lingkaran ke
Pola Jajar Genjang

Rumus pemetaan didapatkan dengan cara sebelumnya yang
digunakan pada pembentukan formasi segitiga, yaitu melakukan
pembagian sudut pola lingkaran secara merata dengan jumlah
quadcopter yang digunakan. Kemudian menggeser hasil
pemetaannya hingga quadcopter pertama berada pada posisi
puncak gelombang pertama. Hasil pembagian sudut pola lingkaran
dengan enam quadcopter adalah 600, dan puncak pertama dari
grafik Sin 4Ө adalah 32.50. Karena itu, rumus pembagian digeser
37.50 kebelakang, sehingga didapatkan rumus:

360 ∗
= − 30
Di mana qi adalah quadcopter ke i dan n adalah jumlah
quadcopter.
Setelah rumus didapatkan, maka akan dilakukan pemetaan
masing-masing quadcopter terhadap grafik sin 4Ө, dan kemudian
dihitung perbandingan nilai setiap quadcopter dengan tetangganya
masing-masing. Hasil pemetaannya bisa dilihat pada gambar 3.36.

160

Gambar 3.36. Hasil Pemetaan Quadcopter pada Grafik Fungsi sin


Dari hasil perbandingan nilai, terlihat bahwa quadcopter yang
nilainya lebih tinggi dari tetangga di sebelahnya adalah quadcopter
kedua dan kelima. Oleh karena itu, quadcopter tersebut berperan
menjadi sudut. Sedangkan quadcopter sisanya, yaitu quadcopter
pertama, ketiga, keempat, dan keenam, akan berperan sebagai
garis. Pada pemetaan ini, terlihat bahwa jumlah quadcopter yang
menjadi sudut lebih sedikit dibandingkan sudut yang terbentuk.
Hal ini terjadi karena memang 6 quadcopter yang ada bukanlah
jumlah ideal untuk membentuk bangun dengan 4 sudut. Karena
itu, bangun yang dibuat akan menggunakan sudut semu, dengan
tetap mengutamakan bentuk bangun tetap terlihat.

Pergerakan menuju formasi jajar genjang serupa dengan yang
sudah dijelaskan pada formasi segitiga sebelumnya, dimana
tahapan dimulai dengan diberikannya perintah untuk membentuk
formasi kepada quadcopter yang bertindak sebagai sudut melalui
jaringan wireless. Ketika quadcopter yang berperan sebagai sudut
menerimanya, maka quadcopter tersebut akan mundur
menyesuaikan posisinya menjadi sudut. Quadcopter akan bergerak
mundur tegak lurus terhadap garis pusat. Penentuan posisi
mundur sama dengan yang dilakukan saat pembentukan formasi
segitiga, yaitu dengan menggunakan algoritma circular movement
yang jari-jarinya ditambahkan.

161

posisi x baru = pusat lingkaran x + (jari-jari + jarak
mundur*(cos(sudut quadcopter berhenti))
posisi y baru= pusat lingkaran y + (jari-jari + jarak
mundur*(cos(sudut quadcopter berhenti))
set posisi quadcopter ke posisi x baru, posisi y baru, z
target objek

Setelah semua quadcopter selesai bergerak, maka terbentuklah
formasi jajar genjang.

3.4.4 Uji Coba dan Evaluasi Hasil Simulasi
Dalam melakukan uji coba, akan dilakukan beberapa skenario. Uji coba
ini dilakukan untuk menguji apakah algoritma yang digunakan dapat
bekerja dengan baik dengan kondisi quadcopter yang ada. Skenario-
skenario tersebut adalah:

1. Quadcopter berjumlah enam unit melakukan pembentukan
formasi segitiga.
Pada skenario ini, enam buah quadcopter akan membentuk
formasi segitiga seperti yang terlihat pada gambar 3.37. Pertama
sekali, keenam quadcopter yang ada disusun berjajar dimana tiga
quadcopter bernomor satu, dua, dan tiga di bagian depan, dan tiga
quadcopter bernomor empat, lima, dan enam di bagian belakang.
Quadcopter diurutkan secara acak, karena perbedaan urutan
quadcopter tidak akan banyak mempengaruhi jalannya simulasi.
Yang penting, posisi dari quadcopter yang bernomor lebih besar
tidak boleh berada di depan quadcopter yang nomornya lebih
kecil.

162

163

Gambar 3.37. Tahapan Pembentukan Formasi Segitiga pada Simulasi V-
REP

Formasi segitiga berhasil dibentuk dalam waktu 2 menit 22 detik
dalam waktu nyata (bukan waktu perangkat lunak simulasi).
Formasi berhasil dibentuk tanpa adanya quadcopter yang keluar
dari jalurnya ataupun menabrak helikopter lain. Rincian waktu
untuk setiap tahapan dalam pembentukan formasi segitiga dapat
dilihat pada Tabel 3-4.

Tabel 3-4. Jangka Waktu Pembentukan Pola Formasi Segitiga

Pola yang dibentuk Jangka waktu pelaksanaan
Garis lurus 1 menit 2 detik
Lingkaran 2 menit 7 detik
Segitiga 2 menit 22 detik

2. Quadcopter berjumlah enam unit melakukan pembentukan
formasi jajar genjang.
Tujuan utama dari skenario ini adalah membentuk formasi jajar
genjang. Tahapan awal skenario ini sama dengan skenario
pembuatan formasi segitiga yang dijelaskan sebelumnya, yaitu
enam buah quadcopter akan diletakkan acak.

164

165

Gambar 3.38. Formasi Jajar Genjang yang Berhasil Dibentuk pada
Simulasi V-REP

Formasi jajar genjang berhasil dibentuk dalam waktu 2 menit 8
detik dalam waktu nyata. Formasi berhasil dibentuk tanpa adanya
quadcopter yang keluar jalur ataupun menabrak quadcopter lain.
Rincian waktu untuk setiap tahapan dapat dilihat pada Tabel 3-5:

Tabel 3-5. Jangka Waktu Pembentukan Pola Formasi Jajar Genjang

Pola yang dibentuk Jangka waktu pelaksanaan
Garis lurus 56 detik
Lingkaran 1 menit 56 detik
Segitiga 2 menit 8 detik

3.5 Kesimpulan dan Pengembangan Lebih Lanjut

Penggunaan UAV quadcopter AR.Drone untuk pemulihan jaringan
telekomunikasi telah dianggap memadai. Parameter penilaian ini
diukur dari keberhasilan quadcopter menyambungkan sink dengan
target, dan keterhubungan antara satu agen dengan agen yang lain,
serta terbentuknya jaringan ad-hoc yang memungkinkan pengiriman
paket data dari sink menuju target. Pada penelitian selanjutnya akan
dilakukan pemulihan jaringan komunikasi dengan area yang lebih luas
serta penggunaan agen yang lebih banyak. Selain itu, akan dilakukan
integrasi fungsionalitas AR.Drone sebagai pendeteksi dan pelacakan
objek untuk pencarian korban bencana dengan pemulihan jaringan

166

komunikasi sehingga dapat dilakukan pada saat bersamaan dapat
dilakukan dua hal yang berbeda. Hal ini memungkinkan peningkatan
efektifitas dari AR.Drone.
Deteksi objek topi telah dapat dilakukan dengan baik. Meskipun
demikian jika warna objek sekitar memiliki nilai piksel yang
berdekatan dengan objek topi, maka deteksi dan pelacakan
memberikan hasil yang kurang baik. Hal ini merupakan poin perbaikan
yang harus dilakukan untuk pengembangan berikutnya.
Dalam kasus penerapan UAV untuk eksplorasi ruang. Hasil proses
simulasi yang didapatkan, menyimpulkan bahwa pembentukan
formasi telah berhasil dan algoritma yang diterapkan dapat berjalan
dengan baik. Pada penelitian selanjutnya akan dilakukan implementasi
pembentukan formasi secara langsung menggunakan AR.Drone.
Pada proses implementasi tersebut mungkin akan sedikit berbeda
dengan proses implementasi dengan cara simulasi, karena proses
implementasi secara langsung harus memperhatikan seluruh kondisi
lingkungan dan kondisi dari AR.Drone itu sendiri.

167

168

4|BAB

4. BAB 4| Penerapan Robot Berkaki

Robot berkaki yang dijelaskan pada bagian ini merupakan robot
berkaki berbentuk humanoid. Dua aplikasi penggunaan robot
humanoid yang akan dijelaskan pada buku ini adalah robot soccer
untuk bermain bola dan robot imitasi gerak manusia. Rancangan robot
humanoid diterangkan pada subbab pertama mencakup perangkat
keras dan perangkat lunak robot, dan bentuk rancangan fisik robot.
Selanjutnya pada subbab kedua, dijelaskan beberapa teori dasar yang
digunakan pada robot humanoid soccer serta algoritma dan strategi
yang dipergunakan dalam pertandingan. Kemudian pada subbab
terakhir, dijelaskan mengenai robot imitasi mencakup proses robot
dalam mengimitasi gerak manusia mulai dari tangkapan gerakan
manusia oleh Microsoft Kinect (Kinect) sampai gerakan ditirukan oleh
robot.

Robot humanoid adalah jenis robot yang memiliki kemampuan untuk
mengimitasi kebiasaan dari gerak-gerik manusia. Dalam membangun
robot humanoid, hal utama yang perlu kita pikirkan adalah
pembangunan tubuh robot (badan robot) dan kecerdasan robot
(otak). Dalam pembangunan tubuh robot, robot humanoid memiliki
beberapa aktuator yang menyerupai manusia antara lain kepala,
muka, tangan, lengan, kaki, dan lutut sebagai alat gerak bagi robot
humanoid.

Dalam pembangunan kecerdasan robot maka ada beberapa hal yang
perlu menjadi perhatian antara lain, bagaimana robot tersebut dapat
berjalan menyetupai manusia, menggerakan seluruh aktuator dan
mengekspresikan emosi yang dimilikinya. Setelah ketiga hal tersebut
terpenuhi, barulah pada akhirnya robot humanoid dapat memiliki

169

kecerdasan untuk pengenalan benda disekitarnya dan melakukan
pekerjaan sesuai dengan perintah yang telah ditanamkan pada
program robot.

4.1 Desain Robot Humanoid

Robot humanoid pada buku ini diaplikasikan untuk pertandingan
sepak bola robot dan pengimitasian gerak manusia. Dalam kasus robot
soccer, desain robot harus dibuat dengan sebaik-baiknya, sehingga
robot mampu bergerak cepat dan melakukan setiap peran yang telah
ditentukan. Peran tersebut antara lain menyerang, bertahan, dan gol
kipper. Dalam kasus robot humanoid imitasi, setiap gerakan tubuh
manusia yang ditangkap menggunakan Kinect dan harus dapat
diimitasi oleh robot dengan baik. Kedekatan bentuk fisik robot dengan
fisik manusia akan mempengaruhi kemiripan gerakan yang ditiru.
Bagian berikut ini menjelaskan rancangan fisik robot humanoid yang
terbagi dalam desain elektrik robot, perangkat keras yang dipasang,
serta perangkat lunak yang ditanamkan.

4.1.1 Perangkat Keras Robot Humanoid
Implementasi sistem gerak manusia pada robot humanoid soccer
membutuhkan berbagai macam perangkat. Perangkat-perangkat yang
digunakan dalam hal ini meliputi perangkat keras dan perangkat lunak.
Dalam subbab ini akan dijelaskan mengenai perangkat-perangkat yang
digunakan dalam mengimplementasikan sistem gerak manusia pada
robot humanoid soccer.

4.1.1.1 Komponen Penyusun Robot Humanoid
Robot humanoid yang dipergunakan dalam pertandingan
menggunakan paket Bioloid Robot Kit. Paket robot humanoid ini
merupakan produksi Robotis dan telah menggunakan aktuator digital
servo motor digital yang memungkinkan pengendalian dengan cepat
dan penggunaan komunikasi data serial. Servo motor Dynamixel juga
dapat memberikan feedback berupa kecepatan, suhu, beban, dan
sebagainya yang dapat dimanfaatkan untuk pengendalian yang efektif.
Bioloid Premium dapat digunakan untuk pengujian algoritma imitasi
gerakan manusia. Dengan memanfaatkan feedback dari servo serta

170

sensor Gyro, dapat dilakukan adaptasi gerakan menurut beban setiap
servo dan gangguan keseimbangan pada robot. Gambar robot,
penjelasan singkat dapat dilihat pada gambar 4.1.

Gambar 4.1. Bioloid Kit beserta Kit
Paket bioloid premium ini terdiri dari:
1. Servo Controller CM-510

Merupakan controller yang digunakan untuk menggerakkan sendi-
sendi robot sehingga membentuk suatu gerakan. Controller ini
berbasis ATMega2561 produksi Robotis, CM-510 memiliki enam
buah port ADC dan dapat mengatur gerakan servo Dynamixel AX-
12A yang dipasang secara daisy chain. CM-510 dapat
mengendalikan servo Dynamixel AX-12A. Kontroler CM-510
mengirimkan instruksi spesifik kepada masing-masing servo sesuai
ID servo yang telah diatur. Gambar 4.2 menunjukan bentuk
Controller CM-510.

171

Gambar 4.2. Controller CM-510
2. AX-12 Servo Motor

Merupakan motor servo yang berperan sebagai sendi-sendi robot.
Motor ini memiliki 1024 titik koordinat. Seluruh titik–titik
koordinat tersebut mewakili 330 derajat. Keseluruhan terdapat
total 18 motor yang disertakan dalam kit ini.

Gambar 4.3. Dynamixel AX-12
3. Lipo battery

Merupakan sumber energi bagi robot saat bergerak. Baterai ini
memiliki tegangan 11.1v dan arus 1000mA.

4. Gyro sensor GS-12
Merupakan sensor untuk mengetahui perubahan kemiringan
robot, sehingga dapat membantu keseimbangan robot saat
berjalan seperti yang terlihat pada Error! Reference source not
found.. Data sensor accelerometer dibaca oleh CM-510 berupa
tegangan dan diterjemahkan dengan ADC (Analog Digital
Converter). Perubahan kemiringan yang dapat dideteksi yaitu dua

172

sumbu. Nilai perubahan kemiringan ini yang diproses oleh CM-510
untuk menentukan offset servo kaki robot.

17. Gyro GS-12
5. Cable header

Merupakan benda yang digunakan untuk menjepit kabel pada
badan robot sehingga tidak tersangkut saat robot bergerak.

6. Infrared sensor
Merupakan sensor yang dapat digunakan untuk mengetahui ada
tidaknya benda di depan sensor tersebut. Pada bioloid robot
sensor ini dipasang di muka robot.

7. Distance measurement sensor (DMS)
Merupakan sensor yang dapat digunakan untuk mengetahui
seberapa jauh benda yang ada didekatnya. Meskipun demikian
sensor ini memiliki jarak yang bisa diukur.

8. Wireless Communicator Zig110
Modul ini merupakan modul yang digunakan untuk komunikasi
antar device secara wireless, akan tetapi modul ini bersifat
opsional dan untuk paket default pembelian, Zig110 tidak
disertakan. Modul ini juga dapat berkomunikasi dengan IR receiver
dari Bioloid kit. Tampilan fisik zig100 dapat dilihat pada Gambar
4.4.

173

Gambar 4.4. Modul Zig100

9. Infra Red Receiver
Modul ini merupakan modul yang dapat digunakan untuk
komunikasi secara wireless dengan device sejenis (IR transmitter)

10. RC-100 Remote Control
Modul ini merupakan remote kontrol yang berpasangan dengan
modul IR receiver.

4.1.1.2 Komponen Tambahan Penyusun Robot Soccer
Komponen-komponen pada 4.1.1.1 merupakan komponen yang
disertakan saat pembelian Bioloid premium kit. Terdapat beberapa
sensor yang tidak boleh dipergunakan saat pertandingan robot soccer
khususnya IR sensor dan DMS sensor sehingga diperlukan penggantian
komponen-komponen tersebut dengan komponen lain yang
diperbolehkan. Komponen-komponen tambahan tersebut adalah:
1. Accelerometer MMA7260

Accelerometer digunakan sebagai sensor tambahan untuk
mengukur kemiringan robot untuk mendeteksi apakah robot
sedang dalam keadaan jatuh (gambar 4.5). Data sensor
accelerometer dibaca oleh CM-510 berupa tegangan, dan
diterjemahkan dengan ADC.

Gambar 4.5. Accelerometer MMA7260

174

MMA7260 dapat memberikan nilai kemiringan tiga sumbu, namun
yang digunakan pada robot hanya satu sumbu, yaitu untuk
menentukan apakah robot jatuh ke depan atau kebelakang atau
sedang berdiri.
2. OV6620 Camera Module
Kamera dengan resolusi maksimal 352 x 288 dan kedalaman
warna 8 bit (gambar 4.6). Kamera ini memberikan nilai RGB kepada
LPC2106.

Gambar 4.6. Sensor Kamera OV6620
3. Additional Microcontroller Philips LPC2106

Prosesor ARM7TDMI dengan kecepatan CPU 60Mhz, RAM 64KB,
dan ROM 128KB. LPC2106 (gambar 4.7) pada CMUcam3 dapat
menggerakkan hingga empat buah servo serta memiliki dua buah
port UART untuk berkomunikasi dengan perangkat lain.
Microcontroller ini digunakan untuk memproses gambar yang
diterima dari kamera dan menggerakkan servo Turnigy TGY-90S
pada kepala, mendeteksi objek di sekitar robot, menentukan posisi
dan jarak objek-objek (gawang, garis lapangan, bola, atau robot
lain).

Gambar 4.7. Modul CMUcam3 (Kamera dan LPC2106)

175

4.1.1.3 Rancangan Fisik Robot Humanoid
Robot soccer dan robot imitasi gerak memiliki bentuk fisik yang mirip
karena dirancang menggunakan basis komponen yang sama yaitu
Bioloid premium kit. Meskipun demikian terdapat sedikit perbedaan
karena pada robot soccer sebagian komponen penyusunnya diganti
dengan komponen alternatif, dimana hal ini tidak terjadi untuk kasus
robot imitasi gerak. Bentuk fisik robot soccer ditunjukkan oleh Gambar
4.8Gambar 4.8. Bentuk Fisik Robot Humanoid (Tampak belakang, tampak
samping, tampak depan), sementara bentuk fisik robot imitasi masih
mengikuti bentuk awal yang disediakan paket Bioloid, ditunjukkan
oleh Gambar 4.1.

Gambar 4.8. Bentuk Fisik Robot Humanoid (Tampak belakang, tampak
samping, tampak depan)

4.1.2 Perangkat Lunak Robot Humanoid
4.1.2.1 Robot Operating System
ROS (Robot Operating System) merupakan development environment
pada Sistem Operasi Linux yang menyediakan sekumpulan API
(Application Programming Interface) yang bersifat open source dan
dikembangkan oleh Stanford Artificial Intelligence Laboratory,
dilanjutkan oleh Willow Garage dan lebih dari 20 institusi yang
berkolaborasi seperti yang terlihat pada Gambar 4.9.

176

Gambar 4.9. Robot-Robot yang Dikembangkan dengan ROS

ROS telah digunakan pada berbagai robot, beberapa diantaranya
dapat dilihat pada gambar 4.9. ROS memiliki beberapa library yang
dapat mendukung penafsiran gerakan manusia dari Microsoft Kinect
ke model kerangka humanoid, yaitu openni_kinect yang didukung oleh
package pendukung seperti openni_camera, openni_tracker, dan
depth_image_proc.

Pada pengambilan data maupun penentuan gerakan robot dibutuhkan
visualisasi untuk memudahkan proses debugging data yang diterima
maupun perintah pada robot. Sangat menyulitkan jika harus melihat
hasil persepsi data dari sensor berupa angka-angka saja, sehingga
dibutuhkan suatu antarmuka yang menyajikan visualisasi dari data
tersebut. Salah satu program yang dapat digunakan sebagai antar
muka adalah rvis. Program ini merupakan sebuah environment
visualisasi tiga dimensi pada ROS. Pemanfaatkan program ini
membuat data yang diperoleh dari sensor seperti Microsoft Kinect
dapat divisualisasikan dalam bentuk tiga dimensi. Visualisasi ini akan
mempermudah proses debugging dan simulasi robot. Contoh proses
visualisasi dapat dilihat pada gambar 4.10.

177

Gambar 4.10. Hasil Visualisasi dengan Menggunakan rviz

Jika dilihat secara fisik ROS merupakan aplikasi yang berjalan di atas

sistem operasi linux. Meskipun demikian ROS dapat mengolah

beberapa macam aplikasi yang berjalan di atasnya. Dengan demikian

ROS berperan sebagai sistem operasi. Aplikasi yang dijalankan di atas

ROS diwujudkan sebagai node-node yang dapat berkomunikasi satu

sama lain. Node-node tersebut dapat berkomunikasi dengan pesan

yang disebut dengan “topic”. Pengirim pesan dikatakan sebagai

“publisher” topik sedangkan penerima pesan (pengakses pesan)

disebut sebagai “subscriber” topik. Untuk melihat bagaimana node-

node pada ROS berinteraksi, dapat dilakukan visualisasi dengan

“rxgraph”. Contoh rxgraphh dapat dilihat pada Gambar 4.11. Dalam

Gambar 4.11 terlihat bahwa node /kinect_base_link,

/kinect_base_link1, node /kinect_base_link2, node /kinect_base_link3,

dan node /rgbdslam mempublish topik /tf yang di-subscribe oleh node

/objects_database_node.

178

Gambar 4.11. Contoh Interaksi Node pada ROS (rxgraph)

4.1.2.2 Roboplus
Roboplus merupakan aplikasi yang dibuat oleh Robotis Corporation
(produsen Bioloid) untuk mengembangkan piranti lunak untuk
mengendalikan/mengontrol Bioloid Kit. Aplikasi roboplus ini
sebenarnya tidak hanya ditujukan untuk Bioloid Kit saja, tetapi juga
Ollo Kit. Terdapat tiga subaplikasi yang disediakan oleh roboplus untuk
membuat kontrol pada Bioloid yaitu roboplus task, roboplus manager,
dan roboplus motion. Gambar aplikasi roboplus untuk kategori bioloid
kit dapat dilihat pada gambar 4.12.

179

Gambar 4.12. Roboplus

RoboPlus manager merupakan subaplikasi yang berfungsi untuk
pengaturan– pengaturan dasar komponen kit, baik controller, aktuator
maupun sensor. Melalui aplikasi ini kita bisa mengetahui kondisi
aktuator (servo motor) dan melakukan pengecekan-pengecekan dasar
pada aktuator tersebut. Selain itu, kita bisa memberikan batasan–
batasan nilai pada aktuator seperti batasan voltase yang diberikan,
batasan suhu maksimal yang diizinkan untuk beroperasi, sampai
batasan koordinat yang boleh digunakan ketika beroperasi. RoboPlus
manager juga dapat digunakan untuk mengecek kondisi sensor yang
dalam hal ini adalah nilai hasil pembacaan sensor. Tampilan RoboPlus
manager dapat dilihat pada gambar 4.13.

Gambar 4.13. RoboPlus Manager

180

Sedangkan RoboPlus Motion digunakan untuk membuat atau
mengatur motion (gerakan) pada Robot Bioloid. Tampilan roboplus
motion dapat dilihat pada gambar 4.14. Antarmuka RoboPlus Motion
dibagi menjadi tiba bagian utama. Bagian paling kiri merupakan list
page, dimana setiap page mengintrepetasikan suatu gerakan. Bagian
tengah atas merupakan langkah-langkah dari page yang ditunjuk saat
itu. Pada bagian ini ada pengaturan delay dan waktu pengeksekusian.
Pada bagian tengah bawah terdapat pengaturan lanjutan dari langkah-
langkah, baik speed rate, repeat time, maupun inertial force.
Sedangkan bagian ketiga (kanan) merupakan antarmuka untuk
mengunggah data koordinat servo dari komputer ke robot atau
mengunduh data koordinat servo dari robot ke komputer.

Gambar 4.14. Roboplus Motion
Sementara itu RoboPlus Task Manager digunakan untuk memprogram
logika robot untuk menjalankan tugas. Program yang dapat dibuat
menggunakan RoboPlus Task ini menyerupai program komputer pada
umumnya, atau tepatnya mirip program C. Melalui Roboplus dapat
dibuat sintaks pemanggilan motion (gerakan) robot yang dibuat
menggunakan roboplus motion. Roboplus task ini bisa dikatakan
sebagai aplikasi untuk membuat program yang mengatur jalannya
gerakan-gerakan yang telah dibuat. Tampilan antarmuka aplikasi
Roboplus task dapat dilihat pada gambar 4.15.

181

Gambar 4.15. Roboplus Task manager

4.2 Robot Humanoid untuk Pertandingan Soccer

Pertandingan robot soccer merupakan salah satu cabang yang
diperlombakan pada Kontes Robot Cerdas Indonesia (KRCI). Oleh
sebab itu robot yang dirancang harus disesuaikan dengan peraturan
Perlombaan KRCI, mulai dari bentuk, dimensi robot, perangkat keras,
dan perangkat lunak yang digunakan serta sistem kecerdasan yang
“ditanamkan” pada robot.

4.2.1 Tata Cara Perlombaan Robot Humanoid Soccer
Tata cara perlombaan robot soccer berbentuk humanoid yang
dijabarkan disini mengikuti peraturan yang didefinisikan pada Kontes
Robot Cerdas Indonesia.

1. Tugas Robot
Pembuatan robot dilakukan dengan tujuan mengikuti dan
menjuarai Kontes Robot Cerdas Indonesia divisi Robot Soccer
Humanoid League. Tugas robot ini adalah bermain bola dengan
aturan lomba yang digunakan dalam kompetisi.

2. Lapangan
Lapangan yang digunakan dalam kompetisi robot ini dapat
diilustrasikan pada gambar 4.16.

182

Gambar 4.16. Detail Spesifikasi Lapangan

Keterangan:
A. Panjang Lapangan: 600 cm
B. Lebar lapangan: 400 cm
C. Kedalaman gawang: 50 cm
D. Lebar gawang: 150 cm
E. Panjang goal area: 60 cm
F. Lebar goal area: 300 cm
G. Jarak penalti: 180 cm
H. Diameter lingkaran tengah: 120 cm
I. Lebar border strip (min): 70 cm
J. Jarak pole ke lapangan: 40 cm
Bola yang digunakan: bola tenis berwarna oranye ukuran standar
bola tennis.

3. Peraturan Lomba
Peraturan lomba mengacu pada peraturan RoboCup Soccer
Humanoid League Kid Size. Pada peraturan lomba tersebut setiap
pertandingan dilakukan oleh dua tim, dengan masing-masing tim
tidak lebih dari tiga robot. Robot yang tidak mampu bermain
(tidak mampu berjalan dengan dua kaki, tidak dapat berdiri, atau
malfungsi lainnya) tidak diperbolehkan berpartisipasi dalam
pertandingan dan harus dikeluarkan dari lapangan. Penentuan
mampu atau tidaknya robot bermain tergantung pada keputusan
wasit. Wasit boleh meminta ketua tim untuk mendemonstrasikan
kemampuan robot kapan pun.

183

Robot yang tidak dapat bangun dari jatuh selama 20 detik akan
dikeluarkan dari lapangan selama 30 detik dan masuk kembali
sesuai peraturan. Pada setiap pertandingan, paling banyak dua
robot boleh digantikan oleh robot cadangan dari tim yang sama.
Robot pengganti boleh masuk ke lapangan setelah robot yang
digantikan dikeluarkan dari lapangan dan mendapat tanda dari
wasit. Pergantian posisi permainan tidak dianggap sebagai
substitusi. Robot dapat dikeluarkan dari lapangan untuk perbaikan
setelah mendapatkan izin dari juri. Robot dapat masuk kembali
setelah lebih dari 30 detik dikeluarkan, dengan posisi menghadap
tengah lapangan di salah satu dari dua ujung garis tengah sesuai
keputusan juri (Gambar 4.17. Reposisi robot ketika pelanggaran).

Gambar 4.17. Reposisi robot ketika pelanggaran
4. Spesifikasi

a. Robot harus berbentuk seperti manusia yang terdiri dari dua
kaki, dua lengan, satu kepala, yang terpasang pada sebuah
tubuh. Robot harus dapat berdiri dan berjalan dengan kakinya.

b. Tinggi robot (H) antara 30 cm hingga 60 cm, dengan luas tiap
kaki maksimal H2/30 , dan lebar saat tangan terentang kurang
dari 1,2H.

c. Sensor eksternal yang digunakan hanya boleh sensor suara
dengan frekuensi dan volume seperti pendengaran manusia
sedangkan kamera hanya boleh dipasang di kepala robot.

d. Pandangan robot harus kurang dari 180 derajat dan gerakan
putar kepala maksimal 270 derajat.

e. Sensor internal seperti sensor tegangan, arus, gaya, gerakan,
percepatan, boleh dipasang di bagian manapun dari robot.

184

f. Robot saling boleh berkomunikasi dan mendapat sinyal mulai
atau berhenti melalui jaringan wireless yang disediakan panitia.

5. Dimensi :
a. Tinggi = 48,5 cm
b. Lebar = 22,5 cm
c. Tebal = 9 cm

6. Struktur material
a. Akrilik
b. Plastik
c. Aluminum

7. Dimensi robot (gambar 4.18. struktur robot bagian depan dan belakang
dan gambar 4.19. struktur robot bagian bawah)
a. Tinggi: 42 cm
b. Lebar: 19 cm
c. Tebal: 14 cm

Gambar 4.18. Struktur Robot Bagian Depan dan Belakang

185

Gambar 4.19. Struktur Robot Bagian Bawah

4.2.2 Strategi dalam Pertandingan
Dalam pertandingan robot humanoid soccer diperlukan strategi yang
handal guna memaksimalkan hasil yang ingin dicapai, yaitu
memaksimalkan gol yang bisa dibuat oleh tim dan meminimalkan
kemungkinan lawan untuk membuat gol ke gawang kita. Sebelumnya
perlu di-review terlebih dahulu bahwa dalam pertandingan robot
humanoid soccer berukuran mini, ada tiga robot yang bermain dari
setiap tim. Salah satu dari tiga robot tersebut harus ada yang menjadi
penjaga gawang.

Salah satu strategi yang dapat digunakan dalam pertandingan robot
humanoid soccer adalah dengan menggunakan konfigurasi penjaga
gawang – pemain bertahan – pemain penyerang. Setiap robot
mengerjakan tugas sesuai dengan perannya masing-masing. Karena
memiliki perannya masing-masing, setiap robot juga memiliki daerah
eksplorasi dan operasi masing-masing.

Konfigurasi strategi ini dapat dilihat pada Gambar 4.20 Robot
penyerang memiliki wilayah operasi dari belakang bundaran tengah
lapangan sampai depan gawang lawan. Wilayah operasi robot
penyerang ditunjukkan dengan kotak warna merah. Sedangkan
pemain bertahan memiliki wilayah operasi dari depan kotak penalti
sampai belakang bundaran tengah lapangan di sisi lawan. Wilayah
operasi robot bertahan ditunjukkan dengan kotak warna ungu. Kiper

186

memiliki wilayah operasi di daerah penalti saja. Wilayah operasi robot
kiper ditunjukkan dengan kotak warna biru.

Keuntungan dari strategi ini adalah memiliki kestabilan yang kokoh
mulai dari lini depan sampai lini belakang. Hal ini dikarenakan setiap
wilayah lapangan dijaga oleh setiap robot dengan perannya masing-
masing. Strategi ini cocok untuk menghadapi tim yang memiliki
kecepatan dalam menyerang. Robot penyerang lawan yang bergerak
cepat dapat ditahan oleh pemain bertahan tim. Selain itu, jika
menggunakan strategi ini, pemain bertahan dan juga kiper harus
memiliki tendangan yang keras guna mempercepat counter kepada
tim lawan.

Gambar 4.20. Pembagian wilayah untuk masing-masing robot pada
saat pertandingan.

Seperti yang disebutkan pada paragraf sebelumnya bahwa setiap
robot dalam strategi ini memiliki peran masing-masing. Oleh sebab itu,
setiap robot memiliki algoritma yang berbeda-beda saat bermain
dalam pertandingan. Robot penyerang memiliki tugas untuk mengejar
bola dan memasukkan bola ke gawang lawan. Algoritma robot
penyerang dapat digambarkan pada Gambar 4.21. Setiap kali iterasi
robot penyerang akan mengecek frame dari sensor kamera. Apabila
pada frame terdeteksi bola, maka robot akan melakukan tracking
pada bola.

Pada saat melakukan tracking digunakan algoritma PID (subbab
4.2.3.7). Setelah melakukan tracking, robot penyerang akan mengecek

187

apakah bola berada pada jarak yang dekat atau jauh. Jika bola masih
jauh maka robot penyerang akan mendekati bola. Jika bola sudah
dekat maka robot akan mengubah orientasi badannya menuju arah
gawang lawan, kemudian mengepaskan ke kaki robot dan
menendangnya. Jika robot tidak menemukan bola pada frame yang
diambil kamera, maka robot akan melakukan scanning guna mencari
bola. Jika sudah melakukan scanning tetapi tidak juga menemukan
bola maka robot akan mengubah orientasinya lalu melakukan
scanning lagi.

Gambar 4.21. Flow Algoritma Robot Penyerang dan Bertahan pada
saat Pertandingan.

Robot bertahan memiliki tugas untuk menghadang lawan, merebut
bola, dan menendang bola ke arah gawang lawan. Flow algoritma
untuk robot bertahan ini sama dengan flow algoritma untuk robot
penyerang. Perbedaannya terletak pada area jelajah di mana robot
bertahan memiliki wilayah operasi di sekitar lingkaran tengah
lapangan sampai depan kotak penalti sendiri sedangkan robot
penyerang memiliki wilayah operasi sampai kotak penalti daerah
lawan. Selain itu, robot bertahan juga harus segera menempatkan
posisinya di tengah wilayah operasinya yaitu di belakang garis
lingkaran tengah pada daerah sendiri setelah melakukan counter.

188

Secara teknis, setelah robot bertahan menendang bola (counter),
robot akan langsung mundur menuju posisinya.
Robot kiper bertugas menjaga gawang tim. Flow algoritma untuk
robot kiper dapat dilihat pada Gambar 4.22. Dapat dilihat bahwa secara
umum flow algoritma robot kiper hampir sama dengan flow algoritma
kedua robot lainnya. Akan tetapi, robot kiper tidak perlu mengejar
bola, melainkan hanya menunggu datangnya bola. Jika bola sudah
dekat maka robot kiper akan mendekatinya dan menendang ke arah
gawang lawan. Pada strategi ini memang tidak disebutkan bahwa
robot akan menangkap bola, tetapi diganti dengan menendang bola.
Hal ini dikarenakan mendekati bola dan menendangnya ke arah
gawang lawan lebih efektif daripada menangkap bola (menghadang
bola dengan tangan dan menjatuhkan diri). Jika memang dibutuhkan,
maka bisa saja ditambahkan gerakan menghadang bola dengan tangan
dan menjatuhkan diri.

Gambar 4.22. Flow Algoritma Robot Kiper pada saat Pertandingan
4.2.3 Implementasi Kecerdasan Robot Soccer
Robot humanoid soccer melakukan peran penyerang, bertahan, dan
penjaga gawang yang dilakukan secara otonom. Sistem kecerdasan

189

yang ditanamkan pada robot mengimplementasikan sejumlah
algoritma untuk memainkan peran-peran tersebut. Hal tersebut
dijelaskan pada bagian berikut.

4.2.3.1 Komunikasi antar Controller
Komunikasi antara LPC2106 dengan CM-510 dilakukan melalui
komunikasi UART (Universal Asynchronous Receiver / Transmitter),
dengan Baud Rate 57600, dengan 8 data bit, tanpa parity bit, dan 1
stop bit (57600/8-N-1). Setiap angka dikirimkan dengan checksum
sesuai dengan yang dapat diterima CM-510. LPC2106 mengirim
perintah kepada CM-510 menggantikan RC-100 yang tersedia dari
Bioloid Premium Kit. Perintah yang dikirim berupa angka yang
mewakili gerakan tertentu:
1: Berjalan maju
2: Berjalan mundur
3: Berputar ke kiri
4: berputar ke kanan, dan seterusnya.
Perintah untuk gerakan-gerakan tersebut berupa angka 2k dengan
tujuan perintah dapat digabungkan, misalnya untuk berjalan maju
sekaligus berputar ke kiri dapat menggunakan perintah 5, yang
didapatkan dari 1+ 4.

4.2.3.2 Algoritma Deteksi Objek
Berdasarkan aturan pertandingan robot soccer, setiap objek yang
berada dalam lapangan pertandingan memiliki warna tertentu. Objek-
objek tersebut mencakup bola, robot soccer, garis lapangan, dan
lapangan itu sendiri. Algoritma color filtering merupakan algoritma
dasar yang dibutuhkan robot humanoid untuk mengetahui objek-
objek di lingkungannya. Dalam suatu perlombaan robot humanoid
soccer benda-benda yang ada di lapangan dapat diidentifikasi melalui
warnanya. Sesuai dengan ketentuan lomba bahwa warna lapangan
adalah hijau, warna bola adalah oranye, warna gawang adalah biru
dan kuning, serta warna garis pada lapangan adalah putih. Oleh sebab
itu, algoritma color filtering sangat cocok untuk identifikasi benda
pada saat pertandingan.

190

Alur algoritma color filtering cukup sederhana, karena dapat dilakukan
dengan melakukan thresholding saja. Thresholding merupakan
metode yang digunakan untuk menyaring suatu nilai tertentu.
Threshoding dapat dilakukan dengan menentukan satu nilai batas
tertentu yaitu , dimana nilai yang diperhatikan adalah nilai yang lebih
besar dari saja. Hal ini juga dapat dilakukan dengan cara sebaliknya,
yaitu nilai yang akan diperhitungkan adalah nilai yang lebih kecil dari
saja. Selain menggunakan dengan nilai batas (threshold), metode ini
dapat dilakukan dengan menggunakan dua batas, yaitu minimal dan
maksimal. Dengan demikian, nilai yang akan diperhitungkan nantinya
adalah nilai yang berada pada rentang batas minimal dan maksimal
yang diizinkan.

Gambar 4.23. Proses Kalibrasi Penentuan Rentang RGB
Aplikasi algoritma color filtering pada robot humanoid pemain bola
diawali dengan kalibrasi terlebih dahulu. Kalibrasi ini digunakan untuk
mengetahui batas minimal dan batas maksimal nilai komponen warna
merah (red), hijau (green), dan biru (blue) untuk masing-masing
warna. Dengan kata lain, kalibrasi ini bertujuan untuk mencari batas
minimal dan maksimal masing-masing komponen warna. Kalibrasi ini
juga akan dilakukan untuk setiap warna yang ingin diidentifikasi
karena setiap warna memiliki nilai rentang RGB yang berbeda-beda.
Contoh kalibrasi untuk menentukan rentang RGB warna oranye (bola)
dapat dilihat pada Gambar 4.23.

191

Setelah dilakukan kalibrasi, robot memiliki rentang nilai RGB untuk
masing-masing warna. Selanjutnya, rentang nilai itu dipergunakan
untuk mencari dan menjejaki objek yang diinginkan. Ambil salah satu
contoh objek yang paling utama dalam pertandingan robot humanoid
soccer yaitu bola. Selama pertandingan, bola selalu menjadi objek
yang paling pertama untuk dicari. Proses pencarian dan
pengidentifikasian bola menggunakan algoritma color filtering
berdasarkan nilai batas yang telah diperoleh pada kalibrasi
sebelumnya. Alur algoritma color filtering dalam mengidentifikasi bola
dapat dilihat pada pseudo code Gambar 4.24.

color_filtering {
//Variable
min_x, max_x, min_y, max_y, num_pixel
min_R, max_R, min_G, max_G, min_B, max_B
input_frame, output_frame
pixel_in // 3 channel
pixel_out // 1 channel
input_frame <- take_frame
min_x <- input_frame.width
max_x <- 0
min_y <- input_frame.height;
max_y <- 0
//Process each pixel
for (i <-0 to input_frame.height) {

for ( j <- 0 to input_frame.width) {
pixel_in <- input_frame.getPixel(i,j)
if (pixel_in.R >= min_R && pixel_in.R <= max_R && pixel_in.G >= min_G
&& pixel_in.G <= max_G && pixel_in.B >= min_B && pixel_in.B <=
max_B) {

pixel_out <- output_frame.getPixel(i,j)
pixel_out.value <- 1
num_pixel <- num_pixel + 1
if(i < min_x ) min_x <- i
if(j < min_y ) min_j <- j
if(i > max_x ) max_x <- i
if(j > max_y ) max_j <- j
}
}
}
}

Gambar 4.24. Algoritma color filtering

192

Dari Gambar 4.24 dapat dilihat bahwa melalui algoritma color filtering
tidak hanya diperoleh piksel-piksel pada frame gambar yang memiliki
nilai dalam rentang yang diinginkan, tetapi juga diperoleh data jumlah
piksel, letak minimum, dan letak maksimum piksel dalam koordinat
sumbu dan sumbu . Selanjutnya, data jumlah piksel nantinya dapat
digunakan untuk menentukan apakah objek yang diidentifikasi benar-
benar objek yang dicari atau hanya noise. Selain itu, data koordinat
minimal dan maksimal piksel dapat digunakan untuk mengetahui titik
pusat massa objek yang diinginkan.

4.2.3.3 Algoritma Mencari Bola
Mencari bola dilakukan dengan menangkap gambar dari kamera,
mencari warna bola yang telah diatur sebelumnya, dan menggerakkan
servo ke arah lain. Tahapan-tahapan tersebut dilakukan berulang-
ulang hingga menemukan bola. Algoritma mencari bola pada LPC2106
dijelaskan melalui Gambar 4.25.

1 bool mencari(){
2 for(int i=0;i<3;++i){ //verifikasi bahwa robot kehilangan bola
3 cc3_pixbuf_load();
4 cc3_track_color(&t_pkt[0]);
5 if(t_pkt[0].int_density >= 5) return true; //menemukan bola
6}
7 //awal pencarian
8 servo.x = cari.x0;
9 servo.y = cari.y0;
10 cc3_gpio_set_servo_position (0, servo.x);
11 cc3_gpio_set_servo_position (1, servo.y);
12 for(servo.y = cari.y0; servo.y <= cari.y1; servo.y += cari.gy){
13 cc3_gpio_set_servo_position (1, servo.y);
14
15 for(; servo.x >= cari.x0 && servo.x <= cari.x1; servo.x += cari.gx){
16 cc3_gpio_set_servo_position (0, servo.x);
17 cc3_pixbuf_load();
18 cc3_track_color(&t_pkt[0]);
19 if(t_pkt[0].int_density >= 5) return true; //ketemu :D
20 cc3_pixbuf_load();
21 cc3_track_color(&t_pkt[0]);
22 if(t_pkt[0].int_density >= 5) return true; //ketemu :D
23 }
24 if(servo.x < cari.x0) servo.x = cari.x0;
25 if(servo.x > cari.x1) servo.x = cari.x1;
26 cari.gx *= -1;

193

27 }
28 return false;
29 }

Gambar 4.25. Algoritma pencarian bola

4.2.3.4 Algoritma Mendekati Bola
LPC2106 memerintahkan CM-510 untuk berjalan sesuai dengan posisi
bola terhadap robot.
1. Jika bola di depan robot dan di luar jangkauan tendangan maka

robot berjalan maju seperti yang terlihat pada Gambar 4.26.

Gambar 4.26. Robot Berjalan Maju
2. Jika bola di depan robot dan dalam jangkauan tendangan maka

atur tendangan bola seperti yang terlihat pada Gambar 4.27.

Gambar 4.27. Robot Menendang

194

3. Jika bola di sebelah depan kanan robot maka robot akan berjalan
ke samping kanan sambil maju seperti yang ditunjukan gambar
4.28.

Gambar 4.28. Robot Berjalan Samping Kanan
4. Jika bola di sebelah depan kiri robot maka robot akan berjalan ke

samping kiri sambil maju seperti yang terlihat pada Gambar 4.29.

Gambar 4.29. Robot Berjalan Maju Samping Kiri
5. Jika bola di sebelah kanan robot maka robot akan berjalan ke

samping kanan seperti yang terlihat pada Gambar 4.30.

195

Gambar 4.30. Robot Berjalan Samping Kanan
6. Jika bola di sebelah kiri robot maka robot akan berjalan ke samping

kiri seperti yang terlihat pada Gambar 4.31.

Gambar 4.31. Robot Bergerak Samping Kiri
4.2.3.5 Algoritma Mengatur Keseimbangan
Gerakan robot diatur oleh LPC2106, namun CM-510 mengatur
keseimbangan robot dengan sensor accelerometer dan gyro. Jika nilai
sensor accelerometer menandakan bahwa robot terjatuh, CM-510
mengatur gerakan bangun terlebih dahulu. Setiap gerakan berjalan
akan menghasilkan perubahan arah robot yang mengubah nilai dari
sensor gyro, nilai ini digunakan untuk mengatur kembali offset pada
servo kaki robot agar robot dapat berjalan lebih stabil.

4.2.3.6 Algoritma Mengatur Tendangan Bola
Saat bola berada dalam jangkauan tendangan robot, robot akan
mencari arah gawang lawan, lalu memutari bola hingga menghadap ke
gawang lawan. Setelah itu, robot bergeser sedikit ke kanan atau ke kiri

196

untuk memposisikan bola pada kaki agar tendangan lebih tepat
sasaran dan bola dapat bergerak lebih jauh. Setelah posisi sudah
tepat, bola ditendang menuju gawang lawan.

4.2.3.7 Sistem Kontrol PID
Kontrol Proportional Integral Differential (PID) adalah salah satu
metode untuk meminimalkan error antara state yang diinginkan
dengan real state. Aplikasi paling sederhana yang menggunakan PID
adalah pengendalian kecepatan roda pada robot beroda. Penggunaan
PID dilatarbelakangi permasalahan bahwa nilai kecepatan roda yang
diinginkan memiliki perbedaan dengan kecepatan aktual yang dicapai.
Oleh sebab itu, dibutuhkan suatu metode kontrol untuk
meminimalisasi error di antara keduanya.

Pada dasarnya programmer yang membuat program pada robot
memiliki intuisi untuk meminimalisasi error dengan melakukan
pemberian feedback sesuai besar error, metode ini dikenal sebagai
metode proportional. Meskipun demikian, pendekatan ini
menimbulkan error yang steady-state, dimana kecepatan roda yang
dicapai sudah konvergen. Akan tetapi, memiliki selisih konstan dengan
nilai kecepatan yang diinginkan. Oleh karena itu, diperlukan metode
kontrol integral yang menggunaan error pada state sebelumnya
sebagai tambahan untuk perhitungan feedback. Penambahan metode
kontrol integral ini berguna untuk menghilangkan steady-state error
yang dihasilkan oleh metode kontrol proporsional. Dengan demikian,
kombinasi kontrol proportional-integral (PI) ini sudah mampu
konvergen menuju kecepatan yang diinginkan. Walau demikian ada
permasalahan kecepatan reaksi untuk menuju konvergen. Dengan
kata lain, kombinasi kontrol PI masih lambat untuk mencapai
konvergensi. Oleh sebab itu, ditambahkan kontrol differential (D)
untuk mengatasi lambatnya konvergensi maka ketiga aspek kontrol ini
sistem dapat konvergen menuju state yang diinginkan dengan waktu
yang cepat. Perbedaan tingkah laku masing-masing dan kombinasi
kontrol dapat dilihat pada Gambar 4.32. Grafik perilaku kontrol PID.

197

(a) (b)

(c) (d)
Gambar 4.32. Grafik perilaku kontrol PID (Braunl 2006)
Pada Gambar 4.32. (a) dapat dilihat bahwa untuk berbagai kombinasi
nilai konstanta propostional (KP), steady state error tetap muncul
meskipun kecepatan aktual roda sudah konvergen. Pada gambar
tersebut juga dapat dilihat bahwa untuk nilai KP yang sangat besar
akan menimbulkan osilasi nilai kecepatan roda motor. Pada Gambar
4.32. (b), dapat dilihat bahwa kombinasi kontrol PI dapat
menghilangkan steady state error, walau masih terjadi osilasi yang
cukup besar sehingga sulit untuk konvergen. Pada Gambar 4.32. (c),
dapat dilihat bahwa kombinasi kontrol PD mampu untuk mencapai
konvergensi dengan cepat, meskipun sampai akhir state tetap ada
steady state error. Dengan menggabungkan ketika aspek tersebut
diperoleh hasil kontrol yang cepat dan tidak mengandung steady state
error seperti pada Gambar 4.32 (d).

198

Alur kontrol PID secara lengkap dapat dilihat pada Gambar 4.33.

1 static int r_old=0, e_old=0, e_old2=0;
2 ...
3 e_func = v_des - v_act;
4 r_mot = r_old + Kp*(e_func-e_old) + Ki*(e_func+e_old)/2
5 + Kd*(e_func - 2* e_old + e_old2);
6 r_mot = min(r_mot, +100); /* limit output */
7 r_mot = max(r_mot, -100); /* limit output */
8 r_old = r_mot;
9 e_old2 = e_old;
10 e_old = e_func;

Gambar 4.33. Alur kontrol PID

Berikut adalah langkah-langkah dalam menentukan nilai KP, KI, dan
KD:

1. Tentukan nilai KP sembarang, nilai KI = 0 , dan nilai KD = 0.
Selanjutnya, naikkan nilai KP, sampai terjadi osilasi.

2. Jika terjadi osilasi nilai KP dibagi dengan 2. Langkah ini
berulang terus menerus sampai tidak terjadi osilasi lagi.

3. Naikkan nilai KD sampai respon yang diberikan sesuai.
4. Naikkan nilai KI secara perlahan-lahan sampai terjadi osilasi

lagi, lalu nilai KI dibagi dengan 2 atau 3.

Gambar 4.34. Deskripsi joint dan servo pada robot humanoid

199

Aplikasi kontrol PID pada robot humanoid soccer adalah untuk
keperluan tracking objek. Tracking adalah proses untuk selalu
menempatkan objek pada tengah gambar yang ditangkap oleh
kamera, dengan demikian robot dapat menentukan langkah
selanjutnya berdasarkan letak objek saat ini. Untuk keperluan
tracking, leher robot humanoid soccer dilengkapi dengan dua buah
servo yang berperan sebagai joint dengan dua derajat kebebasan.
Deskripsi joint dan servo pada robot humanoid soccer dapat dilihat
pada Gambar 4.34.

Aplikasi tracking objek menggunakan PID memanfaatkan kamera
sebagai sensor untuk mengetahui kondisi state yang dicapai.
Perbedaan aplikasi untuk tracking objek dengan speed control adalah
pada aplikasi ini ada dua unit kontrol yang dijalankan yaitu kontrol
terhadap posisi servo dan kontrol terhadap posisi servo . Sebagai
parameter untuk menentukan apakah posisi servo sudah benar maka
akan digunakan lokasi pixel dari titik tengah (center) objek yang di-
tracking. Lokasi titik tengah objek memiliki koordinat dan
terhadap lebar frame gambar dan tinggi frame gambar. Nilai koordinat
inilah yang nantinya akan dijadikan acuan untuk menghitung error
guna memberikan feedback pada servo.

4.3 Robot Humanoid untuk Imitasi Gerak Manusia

Robot imitasi gerak bertujuan untuk menirukan gerakan manusia.
Sama halnya dengan tubuh manusia, pada robot tersebut terdapat
banyak sendi yang berfungsi sebagai pusat dari pergerakan tubuhnya.
Beberapa gerakan dasar seperti gerakan tangan dan kaki dapat
dikombinasikan menjadi gerakan berjalan, seperti berlari, berhenti,
dan berputar ke kiri atau ke kanan. Pada saat ini, mayoritas dari
gerakan tersebut adalah hasil input secara manual ke robot melalui
piranti lunak yang sudah tersedia dari paket peralatan (kit) robot
tersebut. Namun demikian, kekurangan dari cara ini adalah
membutuhkan waktu yang lama untuk menentukan gerakan yang
diinginkan. Hal ini disebabkan karena banyaknya motor yang harus
dikendalikan sehingga terlalu banyak kombinasi yang harus dicoba

200


Click to View FlipBook Version