• Tidak ada hasil yang ditemukan

Bab II : Pengendalian Gerakan Dasar

N/A
N/A
Protected

Academic year: 2021

Membagikan "Bab II : Pengendalian Gerakan Dasar"

Copied!
10
0
0

Teks penuh

(1)

Bab II : Pengendalian Gerakan Dasar

II.1. Pendahuluan

Pengendalian dasar Robot Mobile, yang selanjutnya kita sebagai mobot, pada bab II ini meliputi beberapa penjelasan pengendalian tanpa menggunakan sensor sama sekali atau pengendalian gerakan dasar. Akan dijelaskan beberapa teknik atau cara untuk melakukan manuver-manuver mobot, penjelasan ini dibagi menjadi 3 bagian.

Pada bagian pertama akan dijelaskan tentang gerakan dasar mobot, termasuk dampak jika dilakukan perubahan-perubahan fisik mobot. Dilanjutkan pada bagian kedua membahas tentang bagaimana caranya agar mobot bisa melakukan gerak belok (kanan maupun kiri) dengan sudut tertentu, sedangkan pada bagian ketiga atau terakhir akan dibahas tentang kombinasi gerakan maju, mundur, kekanan maupun kekiri.

Pembahasan pada bab II ini dan juga bab-bab lainnya dilakukan dengan langsung memberikan program, berikut dengan layout mobot world-nya, teknik

Learning By Doing.

II.2. Gerakan Dasar Mobot (Maju)

Program COBA01

Keterangan

Program COBA01 ini digunakan untuk menjelaskan bagaimana cara menggerakkan mobot secara sederhana menggunakan fungsi SetWheelSpeed yang digunakan untuk mengatur kecepatan masing-masing roda (ada 2 roda) menggunakan satuan RPM atau Rotation Per Minute atau Rotasi per Menit. Sintaksnya sebagai berikut:

SetWheelSpeed(mobot, LeftWheelSpeed, RightWheelSpeed)

Digunakan untuk mengatur kecepatan roda kanan, kiri atau kedua-duanya, dengan parameter:

mobot nomor/nama mobot yang ingin diatur kecepatan rodanya

LeftWheelSpeed kecepatan roda kiri RightWheelSpeed kecepatan roda kanan

Selain fungsi tersebut, ada satu fungsi lain yang digunakan untuk mengatur kecepatan gerak robot, yaitu SetSteering, yang akan dibahas lebih lanjut pada

(2)

EraseTrajectories

Digunakan untuk menghapus seluruh jejak mobot.

SetMobotPosition(mobot, x, y, theta)

Digunakan untuk mengatur posisi atau koordinat lokasi serta arah penempatan mobot, jika pada koordinat yang bersangkutan terdapat objek (rintangan) atau mobot lain, maka mobot yang bersangkutan tidak akan berpindah tempat. Parameter yang digunakan:

mobot nomor mobot yang diatur letaknya x koordinat dalam arah sumbu-x y koordinat dalam arah sumbu-y

theta arah pengarahan mobot (lihat gambar I.4)

SetTimeStep(NewTimeStep)

Digunakan untuk mengatur langkah waktu simulasi yang baru. Nilai langkah waktu digunakan untuk fungsi StepForward untuk mensimulasikan dinamika mobot (dengan nilai saat itu untuk fungsi SetWheelSpeed maupun SetSteering), hanya menggunakan satu parameter NewTimeStep sebagai nilai langkah waktu dalam satuan detik.

StepForward

Digunakan untuk melakukan simulasi berdasar langkah waktu.

Selain fungsi-fungsi tersebut, juga digunakan struktur pengulangan pasti yang menggunakan perintah For … to … next yang terdapat dalam Bahasa BASIC. Layout Mobot World

Layout mobot world atau mobot frame untuk COBA01 ini ditunjukkan pada Gambar II.1. Perhatikan jarak antar titik adalah 1 meter.

Program

Penulisan program utama harus ada di dalam perintah Sub Main dan End Sub. Ini adalah subrutin program utama, semua simulasi diawali dari subrutin ini bukan subrutin lain (yang bukan utama atau main). Program COBA01 menggunakan dua mobot sekaligus, kedua mobot ini akan digunakan hingga program COBA05.

(3)

Gambar II.1. Layout COBA01

Program diawali dengan menghapus jejak mobot dari hasil simulasi sebelumnya:

' menghapus sisa trajektori sebelumnya

EraseTrajectories

Dilanjutkan dengan mengatur posisi dan kecepatan dari mobot-0 dan mobot-1, masing-masing roda, baik untuk mobot-0 maupun mobot-1, diberikan kecepatan 1 RPM, artinya dalam 1 menit ada 1 putaran penuh. Sedangkan posisi mobot-0 dan mobot-1 dibuat bedampingan, mobot-0 pada lokasi (3,4) dan mobot-1 pada lokasi (4,4), semuanya menghadap ke 90 derajat (ke atas):

' mengatur posisi dan kecepatan mobot 0: 1 rpm

SetMobotPosition(0,3,4,90) SetWheelSpeed(0,1,1)

' mengatur posisi dan kecepatan mobot 1: 1 rpm

SetMobotPosition(1,4,4,90) SetWheelSpeed(1,1,1)

Perlu diketahui, jika Anda berhenti membuat program hingga tahap ini kemudian langsung menjalankan simulasi, maka kedua mobot tetap akan diam. Kenapa? Perhatikan kembali fungsi SetTimeStep dan StepForward yang digunakan untuk

(4)

Langkah waktu x banyak pengulangan = lama simulasi 0.4 detik x 300 kali = 120 detik

Selama 120 detik, berapa jarak yang ditempuh kedua mobot tersebut? Karena 120 detik = 2 menit dan kedua mobot diatur kecepatan kedua rodanya 1 RPM serta keliling lingkaran adalah 2 x 7 x R (jejari roda), maka

Jarak tempuh = RPM x keliling lingkaran x menit Jarak tempuh = 1 RPM x (21R) x 2 menit

Karena menggunakan ukuran roda standar, dengan diameter 0.2 meter atau jejari 0.1 meter maka diperoleh jarak tempuh sekitar 1.257 meter (menggunakan persamaan yang dijelaskan sebelumnya).

' mengatur langkah waktu 0.4 detik kerjakan sebanyak 300 x 0.4 = 120 detik ' selama 120 detik dengan kecepatan 1 RPM diperoleh:

' [120/60] x 1 = 2 rotasi

SetTimeStep(0.4) ' atur kecepatan simulasi 0.4 detik For a=1 To 300 ' jalankan selama 30 * 0.4 = 120 detik

StepForward Next

Catatan

Anda bisa mengubah langkah waktu dengan nilai yang lain serta jumlah pengulangan juga bisa diganti, misalnya langkah waktunya 0.2 dan jumlah pengulangan 400, sehingga diperoleh 0.2 x 400 = 80 detik. Jarak tempuh mobot juga akan menyesuaikan, coba lakukan perhitungan sendiri (jawabannya sekitar 0.838 meter).

Bagaimana jika ukuran roda diubah tanpa mengubah program utama? Apa yang terjadi? Ini yang akan dijelaskan pada program COBA02.

Program COBA02

Keterangan

Pada program COBA02 ini dilakukan percobaan atau eksperimen dengan cara mengubah ukuran diameter kedua roda dari salah satu mobot, yaitu mobot-0 tetap dengan diameter 0.2 meter sedangkan mobot-1 dengan diamater 0.3 meter. Kemudian dilakukan simulasi untuk melihat dampak dari perbedaan diameter roda kedua mobot ini.

Fungsi baru yang digunakan adalah:

(5)

Digunakan untuk mengubah diameter roda dari suatu mobot. Jika nilai yang diberikan tidak mengikuti aturan geometrik, misalnya diameter terlalu besar dibanding dengan ukuran mobotnya, maka fungsi ini akan mengalami kegagalan. Parameter yang digunakan adalah:

mobot indeks atau nama mobot yang bersangkutan NewDiameter diameter yang baru dalam satuan meter Layout Mobot World

Layout Mobot World masih sama dengan yang ditunjukkan pada Gambar II.1. Program

Secara umum program COBA02 tidak terlalu jauh berbeda dengan COBA01, hanyasaja pada bagian inisialisasi mobot ditambahkan fungsi untuk mengubah ukuran diameter roda masing-masing mobot:

SetWheelDiameter(0,0.2) ' ukuran roda mobot 0 sebesar 0.2 meter SetWheelDiameter(1,0.3) ' ukuran roda mobot 1 sebesar 0.3 meter Karena sekarang diameter mobot-0 menjadi 0.3 meter atau jejarinya 0.15 meter, maka jarak tempuh mobot-1 menjadi sekitar 1.885 meter, hasil akhir simulasi ditunjukkan pada Gambar II.2.

Gambar II.2. Hasil simulasi COBA02 – posisi mobot-1 <> mobot-0 Catatan

Dengan demikian jelaslah bahwa dengan berubah-nya diameter roda dan menjaga kecepatan roda tetap (dengan SetWheelSpeed) akan terjadi perubahan jarak

(6)

RPM = 1 Diameter = 0.5 jejari 0.25 meter RPM = 0.5 Diameter = 1 jejari 0.5 meter

Okey, masih ingatkah Anda, bahwa saya pernah menuliskan, bahwa selain menggunakan fungsi SetWheelSpeed untuk mengatur kecepatan gerak mobot ada lagi satu fungsi yang lain yang sama fungsinya? Yaitu SetSteering! Nah pada COBA03 dan COBA04 akan dijelaskan penggunaan fungsi ini serta apa pengaruh perubahan diameter roda mobot. Sehingga nantinya, dari keempat program pertama ini (COBA01 sampai COBA04) bisa disimpulkan perbedaan antara penggunaan SetWheelSpeed dan SetSteering. Okey?

Program COBA03

Keterangan

COBA02 ini digunakan untuk menjelaskan fungsi SetSteering yang digunakan untuk mengatur kecepatan gerak mobot yang bersangkutan. Keterangan fungsi ini sebagai berikut:

SetSteering(mobot, CenterSpeed, RotationalSpeed)

Digunakan untuk laju perpindahan titik pusat dan sekaligus kecepatan putar mobot (terhadap poros tengah mobot). Parameter yang digunakan adalah

mobot indeks atau nama mobot yang bersangkutan CenterSpeed kecepatan perpindahan titik pusat mobot

RotationalSpeed Kecepatan putar mobot (dari poros tengah mobot) Layout Mobot World

Layout Mobot World masih sama dengan yang ditunjukkan pada Gambar II.1. Program

Secara umum program COBA03 juga tidak terlalu jauh berbeda dengan COBA01, hanyasaja sekarang digunakan fungsi SetSteering untuk mengatur kecepatan gerak mobot, masing-masing mobot diberi kecepatan titik pusat yang sama, yaitu 0.25 meter/detik:

' mengatur posisi dan kecepatan mobot 0: 1 rpm SetMobotPosition(0,3,4,90)

' kecepatan robot 0 = 0.25 m/detik, 0 derajat/det (lurus) SetSteering(0,0.25,0)

' mengatur posisi dan kecepatan mobot 1: 1 rpm SetMobotPosition(1,4,4,90)

' kecepatan robot 1 = 0.25 m/detik, 0 derajat/det (lurus) SetSteering(1,0.25,0)

(7)

Kemudian dilanjutkan dengan mengatur langkah simulasi sebesar 0.01 detik dan dilakukan sebanyak 800 kali atau sama dengan lama simulasi selama 8 detik:

SetTimeStep(0.01) ' atur kecepatan simulasi 0.01 detik For a=1 To 800 ' jalankan selama 800 * 0.01 = 8 detik

StepForward Next

Jarak tempuh kedua mobot sama, yaitu 0.25 meter/detik x 8 detik = 2 meter! Catatan

Anda bisa mengubah-ubah nilai kecepatan titik pusat (sementara kecepatan rotasi masih nol, karena kita belum membahas tentang gerak belok, akan dibahas pada Bagian 2 dengan program COBA06 sampai COBA12) untuk melihat perbedaannya secara lebih jelas.

Program COBA04

Keterangan

Mirip dengan COBA02 sekarang akan dilakukan perubahan diameter pada salah satu mobot kemudian dilakukan simulasi untuk melihat dampak perubahan diameter jika digunakan fungsi SetSteering untuk mengatur kecepatan mobot.

Layout Mobot World

Layout Mobot World masih sama dengan yang ditunjukkan pada Gambar II.1. Program

Secara umum program COBA04 juga tidak terlalu jauh berbeda dengan COBA02, hanya saja digunakan SetSteering untuk mengatur kecepatan gerak masing-masing mobot, perhatikan hasil simulasi COBA04 yang ditunjukkan pada Gambar II.3.

' Diameter roda MOBOT 0 tetap sedangkan MOBOT 1 diubah menjadi 0.3 ' apa yang terjadi?

SetWheelDiameter(0,0.2) SetWheelDiameter(1,0.3)

' mengatur posisi dan kecepatan mobot 0: SetMobotPosition(0,3,5,90)

(8)

' kecepatan robot 1 = 0.25 m/detik, 0 derajat/det (lurus) SetSteering(1,0.25,0)

SetTimeStep(0.01) ' atur kecepatan simulasi 0.01 detik

For a=1 To 800 ' jalankan selama 800 * 0.01 = 8 detik

StepForward Next

Mobot-0 masih tetap menggunakan diameter roda 0.2 meter, sedangkan mobot-1 menggunakan diameter roda 0.3 meter.

Gambar II.3. Hasil simulasi COBA04, posisi mobot-0 = mobot-1 Catatan – Kesimpulan antara SetWheelSpeed dan SetSteering

Dari hasil simulasi keempat program pertama, COBA01, COBA02, COBA03 dan COBA04, ternyata untuk SetSteering, perubahan diameter roda mobot tidak berpengaruh, karena yang dipentingkan adalah kecepatan perpindahan mobot, bukan kecepatan rodanya. Berbeda dengan SetWheelSpeed, yang diatur adalah kecepatan rodanya, bukan kecepatan perpindahan mobot itu sendiri. Jadi semakin jelas bukan? Tinggal mau digunakan yang mana itu terserah Anda, tergantung pada aplikasinya, okey? Mari kita lanjutkan dengan program berikutnya…

Program COBA05

Keterangan

Program COBA05 digunakan untuk memberikan penjelasan cara menggerakkan mobot hingga jarak tempuh tertentu yang ditandai dengan suatu tanda atau mark,

(9)

sebagaimana ditunjukkan pada layout mobot world pada Gambar II.4. Tanda yang dipasang disini hanya digunakan sebagai tanda bukan acuan, sebagai acuan dapat digunakan untuk sensor posisi yang akan dibahas lebih detil pada Bab 3.

Layout Mobot World

Layout untuk COBA05 ini ditunjukkan pada Gambar II.4, perhatikan penempatan masing-masing mobot denga masing-masing tanda, untuk mobot-0 dan mark-0 memiliki koordinat-x yang sama yaitu 2, demikian juga dengan mobot-1 dan mark-1 memiliki koordinat-x yang sama yaitu 4.

Gambar II.4. Layout mobot world untuk COBA05 Program

Seperti biasa, program diawali dengan menghapus seluruh jejak mobot (dari hasil simulasi sebelumnya), mengatur posisi mobot 0 pada lokasi (2,6), mengatur kecepatan pusat mobot 0 sebesar 0.25 m/detik, mengatur posisi mobot 1 pada lokasi (4,6) dan mengatur kecepatan pusat mobot 1 sebesar 0.50 m/detik:

' menghapus sisa trajektori sebelumnya EraseTrajectories

' mengatur posisi dan kecepatan mobot 0: SetMobotPosition(0,2,6,90)

' kecepatan robot 0 = 0.25 m/detik, 0 derajat/det (lurus) SetSteering(0,0.25,0)

(10)

SetSteering(1,0.50,0)

Kecepatan kedua mobot jelas berbeda, yang paling cepat digunakan sebagai acuan untuk menghentikan simulasi. Jarak antara lokasi mobot dengan tanda adalah 4 meter, dengan kecepatan mobot 1 sebesar 0.5 m/detik, maka lama simulasi yang dibutuhkan adalah 4 m / 0.5 m/det = 8 detik. Jika digunakan langkah waktu sebesar 0.01 detik maka dibutuhkan pengulangan sebanyak 8 detik / 0.01 detik = 800 kali:

SetTimeStep(0.01) ' atur kecepatan simulasi 0.01 detik

For a=1 To 800 ' jalankan selama 800 * 0.01 detik = 8 detik StepForward

Next

Catatan

Sekali lagi saya sampaikan bahwa tanda yang digambarkan belum digunakan sebagai sensor posisi, hanya sebagai tanda saja, hasil simulasi akhir ditunjukkan pada Gambar II.5.

Anda perhatikan mobot-1 digunakan untuk menghentikan simulasi setelah mencapai jarak tempuh 4 meter, yaitu jarak antara posisi awal mobot-1 (juga mobot-0) dengan posisi tanda atau mark.

Untuk penggunaan tanda atau mark sebagai sensor posisi akan dibahas secara detil pada Bab 3.

Gambar

Gambar II.1. Layout COBA01
Gambar II.2. Hasil simulasi COBA02 – posisi mobot-1 &lt;&gt; mobot-0  Catatan
Gambar II.3. Hasil simulasi COBA04, posisi mobot-0 = mobot-1  Catatan – Kesimpulan antara SetWheelSpeed dan SetSteering
Gambar II.4. Layout mobot world untuk COBA05  Program
+2

Referensi

Dokumen terkait

Dengan demikian, cerita II Samuel 5:1-5 yang mengatakan bahwa ada semacam perjanjian atau kesepakatan antara Daud dan suku-suku di Israel- yang ditulis oleh

Menimbang : bahwa dalam rangka melaksanakan Pasal 31 Peraturan Menteri Pendidikan dan Kebudayaan Nomor 41 Tahun 2012 tentang Organisasi dan Tata Kerja Pusat

Hasil dari penelitian ini adalah (1) Aktifitas fisik kebanyakan duduk merupakan faktor risiko kejadian hemoroid dengan besar resiko 0,37%, (2) Kurang aktifitas

yang menunjuk- kan bahwa secara keseluruhan terdapat pening- katan status gizi setelah suplementasi pada kelom- pok zink, namun setelah dilakukan uji dengan menggunakan

Wali perusahaan atau wiraniaga yang bertugas untuk berhubungan langsung dengan konsumen sasaran harus memahami dan mendalami langkah- langkah yang diambil

Hal ini tergantung dari sistem peralatan, faktor teknis, faktor ekonomis serta kelayakan lingkungan kerja tetapi instrumen yang digunakan cenderung pada pemakaian alat kontrol

Adapun tujuan penelitian ini adalah untuk: (1) mengetahui spesies rama-rama (Thalassina spp.) yang terdapat di lingkungan pesisir Bukit Batu; (2) mengetahui pola

Hasil penelitian menunjukkan bahwa, komposisi media batang jagung 68%, jerami 17%, bekatul 10%, dan dolomit 5% merupakan variasi komposisi media dengan berat basah, berat kering,