• Tidak ada hasil yang ditemukan

LAPORAN PRAKTIKUM TENTANG ROBOTIKA

N/A
N/A
Wahyu Nur cahyo

Academic year: 2024

Membagikan "LAPORAN PRAKTIKUM TENTANG ROBOTIKA"

Copied!
106
0
0

Teks penuh

(1)

LAPORAN PRAKTIKUM NAMA PRAKTIKUM

Disusun Oleh : KELOMPOK XIII

Wahyu nur cahyo 200491100015

Sarifatul Laila 200491100025

Moh. Misbahul Munir 200491100043

Alvio Nita Karina Lukman 200491100058

Dosen Pengampu : Dosen Pengampu MK., Gelar., Gelar.

Asisten Praktikum : 1. Buyung NIM

2. ade chika NIM

LABORATORIUM SISTEM CERDAS DAN ROBOTIKA PROGRAM STUDI TEKNIK MEKATRONIKA

JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK

UNIVERSITAS TRUNOJOYO MADURA BANGKALAN

2022

(2)

LEMBAR PENGESAHAN

Telah diperiksa dan disetujui isi laporan ini

LAPORAN

PRAKTIKUM ROBOTIKA

Di Laboratorium Sistem Cerdas dan Robotika Program Studi Teknik Mekatronika

Jurusan Teknik Elektro Fakultas Teknik

Universitas Trunojoyo Madura

Disusun Oleh : Kelompok :

Periode : 2022 – 2023

Koordinator Asisten

Nama Koordinator Asisten NIM.

CO Praktikum

Nama CO Praktikum NIM.

Menyetujui,

Dosen Pengampu Mata Kuliah

Dosen Pengampu MK ., Gelar ., Gelar . NIP.

ii

(3)

LABORATORIUM SISTEM CERDAS DAN ROBOTIKA

FAKULTAS TEKNIK

PROGRAM STUDI TEKNIK MEKATRONIKA

DAFTAR PERBAIKAN LAPORAN PRAKTIKUM

Dari hasil sidang laporan praktikum,

Kelompok :

Mata Kuliah : Praktikum Robotika Tgl Sidang : Senin, 31 Oktober 2022 Perlu dilakukan beberapa perbaikan yaitu,

No Halaman Perbaikan

1 2 3 4 5 6 7

Mengetahui, CO Praktikum

Nama CO Praktikum NIM.

Penguji I

Nama Asisten Penguji 1 NIM.

Koordinator Asisten,

Nama Koordinator Asisten NIM.

DAFTAR PERBAIKAN LAPORAN PRAKTIKUM

Dari hasil sidang laporan praktikum,

Kelompok :

iii

B1

B2

(4)

LABORATORIUM SISTEM CERDAS DAN ROBOTIKA

FAKULTAS TEKNIK

PROGRAM STUDI TEKNIK MEKATRONIKA

Mata Kuliah : Praktikum Robotika Tgl Sidang : Senin, 31 Oktober 2022 Perlu dilakukan beberapa perbaikan yaitu,

No Halaman Perbaikan

1 2 3 4 5 6 7

Mengetahui, CO Praktikum

Nama CO Praktikum NIM.

Penguji II

Nama Asisten Penguji 2 NIM.

Koordinator Asisten,

Nama Koordinator Asisten NIM.

DAFTAR PERBAIKAN LAPORAN PRAKTIKUM

Dari hasil sidang laporan praktikum,

Kelompok :

Mata Kuliah : Praktikum Robotika Tgl Sidang : Senin, 31 Oktober 2022 Perlu dilakukan beberapa perbaikan yaitu,

No Halaman Perbaikan

iv

B3

(5)

LABORATORIUM SISTEM CERDAS DAN ROBOTIKA

FAKULTAS TEKNIK

PROGRAM STUDI TEKNIK MEKATRONIKA

1 2 3 4 5 6 7

Mengetahui, CO Praktikum

Nama CO Praktikum NIM.

Penguji III

Nama Asisten Penguji 3 NIM.

Koordinator Asisten,

Nama Koordinator Asisten NIM.

v

(6)

KATA PENGANTAR

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce tempor vehicula quam ac ultrices. Sed vel ipsum porta, semper ipsum id, aliquam lorem.

Etiam sit amet semper nisi. Integer dignissim finibus turpis, eget sagittis risus facilisis sed. Integer molestie massa nec mollis maximus. Suspendisse potenti.

Sed purus diam, malesuada pharetra urna vitae, imperdiet dictum leo. Praesent finibus porttitor justo sit amet maximus. In accumsan non nibh ut convallis.

Vivamus nisi ligula, interdum sed molestie ac, dignissim eu lorem.

Pellentesque aliquam risus non nisi hendrerit, vel euismod mi semper.

Pellentesque quis lacus velit. Proin sed vulputate odio, id finibus sem. Quisque vitae turpis ac ante rutrum interdum a vitae erat. Nunc bibendum a leo eu ornare.

In placerat volutpat aliquam. Fusce consequat, justo et tincidunt condimentum, purus nibh pretium felis, ut pellentesque justo est sit amet metus. In hac habitasse platea dictumst. Praesent eleifend lobortis nibh, nec tincidunt lacus lobortis rutrum.

Nunc interdum est ut neque pulvinar malesuada. Aenean consequat velit in ultrices tempor. Nullam finibus nunc sit amet est scelerisque, ac molestie libero mattis. Curabitur ut purus eu dui vehicula venenatis.Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed vel dictum purus. Nulla tincidunt tempor egestas. Suspendisse vehicula condimentum justo, et efficitur nulla suscipit nec.

Praesent dui lectus, mattis sit amet tristique molestie, ornare facilisis tortor.

Bangkalan, 7 Oktober 2022

Kelompok … / Nama

vi

(7)

DAFTAR ISI

COVER...i

LEMBAR PENGESAHAN...ii

DAFTAR PERBAIKAN LAPORAN PRAKTIKUM B1...iii

DAFTAR PERBAIKAN LAPORAN PRAKTIKUM B2...iv

DAFTAR PERBAIKAN LAPORAN PRAKTIKUM B2...v

KATA PENGANTAR...vi

DAFTAR ISI...vii

DAFTAR GAMBAR...x

DAFTAR TABEL...xi

MODUL I : JUDUL MODUL...1

1.1. Tujuan...1

1.2. Alat dan Bahan...1

1.3. Dasar Teori...2

1.3.1. Judul Teori...2

1.3.2. Judul Teori...2

1.3.3. Judul Teori...2

1.4. Tugas Pendahuluan...2

1.5. Tugas Praktikum...2

1.6. Analisa...2

MODUL II : JUDUL MODUL...17

2.1. Tujuan...17

2.2 Alat dan Bahan...17

2.3. Dasar Teori...17

2.3.1. Judul Teori...17

2.3.2. Judul Teori...17

2.3.3. Judul Teori...17

2.4. Tugas Pendahuluan...17

2.5. Tugas Praktikum...17

vii

(8)

2.6. Analisa...17

MODUL III : JUDUL MODUL...33

3.1. Tujuan...33

3.2. Alat dan Bahan...33

3.3. Dasar Teori...33

3.3.1. Judul Teori...33

3.3.2. Judul Teori...33

3.4. Tugas Pendahuluan...33

3.5. Tugas Praktikum...33

3.6. Analisa...33

MODUL IV : JUDUL MODUL...50

4.1. Tujuan...51

4.2 Alat dan Bahan...52

4.3. Dasar Teori...53

4.3.1. Judul Teori...55

4.3.2. Judul Teori...55

4.4. Tugas Pendahuluan...55

4.5. Tugas Praktikum...55

4.6. Analisa...55

MODUL V: JUDUL MODUL...66

5.1. Tujuan...66

5.2. Alat dan Bahan...66

5.3. Dasar Teori...66

5.3.1. Judul Teori...66

5.3.2. Judul Teori...66

5.3.3. Judul Teori...66

5.4. Tugas Pendahuluan...66

5.5. Tugas Praktikum...66

5.6. Analisa...66

DAFTAR PUSTAKA...77

viii

(9)

DAFTAR GAMBAR

MODUL I : JUDUL MODUL

Gambar 1.1. Nama gambar...2 Gambar 1.2. Nama gambar...2 MODUL II : JUDUL MODUL

Gambar 2.1. Nama gambar...4 Gambar 2.2. Nama gambar...4 MODUL III : JUDUL MODUL

Gambar 3.1. Nama gambar...6 Gambar 3.2. Nama gambar...6 MODUL IV : JUDUL MODUL

Gambar 4.1. Nama gambar...8 Gambar 4.2. Nama gambar...8 MODUL V : JUDUL MODUL

Gambar 5.1. Nama gambar...10 Gambar 5.2. Nama gambar...10

ix

(10)

DAFTAR TABEL

MODUL I : JUDUL MODUL

Tabel 1.1. Nama tabel...2 Tabel 1.2. Nama tabel...2 MODUL II : JUDUL MODUL

Tabel 2.1. Nama tabel...4 Tabel 2.2. Nama tabel...4 MODUL III : JUDUL MODUL

Tabel 3.1. Nama tabel...6 Tabel 3.2. Nama tabel...6 MODUL IV : JUDUL MODUL

Tabel 4.1. Nama tabel...8 Tabel 4.2. Nama tabel...8 MODUL V : JUDUL MODUL

Tabel 5.1. Nama tabel...10 Tabel 5.2. Nama tabel...10

x

(11)

xi

(12)

xii

(13)

xiii

(14)

MODUL I

PENGENALAN ROBOTIKA SERTA

POSISI DAN

ORIENTASI ROBOT

(15)
(16)

MODUL I ROBOTIKA

PENGENALAN ROBOTIKA SERTA POSISI DAN ORIENTASI ROBOT

1.1. Tujuan praktikum

Adapun tujuan dari praktikum robotika ini adalah seperti pada penjelasan berikut

1. Dapat memahami pengertian dari robot, robotik, serta robotika.

2. Dapat membedakan robot dari tingkatan rendah ke tinggi.

3. Mampu mengenal macam-macam robot yang ada dan yang sedang.

digunakan dalam dunia industri, militer dan lainnya.

1.2. Alat dan Bahan

Adapun alat dan bahan yang diperlukan dalam praktikum robotika, seperti pada keterangan berikut

1. PC atau Laptop

2. MATLAB

3. Toolbox

1.3. Dasar Teori

Berikut ini adalah penjelasan mengenai dasar teori praktikum robotika seperti pada penjelasan berikut

1.3.1. Sejarah dan Pengertian mengenai Robot, Robotik, dan Robotika Sejarah robot bermula ketika sistem otomatis dibuat oleh Jacques De Vaucanson pada tahun 1938, yang membuat bebek mekanik yang dapat memakan dan mencincang biiji bijian, membuka dan menutup sayapnya. Kemudian tahun 1796, hisashine tanaga di Jepang berhasil membuat mainan mekanik yang dapat mnghidangkan the dan menulis huruf kanji. Lalu 1926, Nikola Tesla mendemintrasikan perahu bot yang dapat dikontrol dengan radio. Tahun 1928, Makoto Nishimura membuat robot pertama di Jepang (Agung, 2009). Sejalan dengan perkembangan teknologi elektronika, maka perkembangan robot ini

xvi

(17)

melaju pesat, seperti tahun 1948, William Grey Walter membuat robot elektronik otomatis pertama dimana 4 robot ini dapat merespon cahaya dan dapat melakukan kontak dengan objek dari luar. Pada tahun 1954, saat dimulainya zaman digital, sebuah robot digital yang dapat deprogram ditemukan oleh George Devol. Pada abad modern ini sudah bermacam-macam robot yang dicipta dan digunakan seperti dalam industri, rumah sakit, transportasi, pendidikan dan kehidupan sehari- hari [1].

1.3.2. Macam-Macam Jenis Robot

Robot dibangun dengan berbagai bentuk mulai dari yang kecil hingga yang besar sesuai dengan fungsinya masing-masing. Berikut adalah beberapa jenis robot berdasarkan bentuknya :

1. Turtle robot nama turtle dipakai karena bentuk robot ini mirip rumah kura-kura.

2. Vehicle robot robot jenis ini berbentuk seperti kendaraan yang dilengkapi dengan roda dan bergerak seperti sebuah mobil. Perbedaannya dengan mobil, robot ini mampu diprogram.

3. Rover robot bentuk robot ini cenderung pendek dan juga dilengkapi dengan roda sepert jenis vehicle. Robot jenis ini juga dilengkapi beberapa fungsi, misalnya kemampuan untuk mendeteksi api, mendeteksi objek, mengangkut beban, dan fungsi lainnya. Robot rover biasanya dibuat untuk keperluan “penjelajahan” tempat-tempat tertentu dalam rangka penelitian, seperti penjelajahan planet mars (robot sprit milik NASA).

4. Walker robot pergerakan robot ini tidak menggunakan roda, namun menggunakan kaki. Biasanya robot ini berbentuk miri serangga dan meiliki 4 kaki atau lebih.

5. Arm robot robot ini berupa lengan yang biasanya digunakan untuk mengambil dan memindahkan barang. Lengan ini dapat terpasang pada robot yang bergerak atau pada sebuah tempat yang statis. Jenis robot ini banyak dijumpai di ruang produksi suatu pabrik

xvii

(18)

6. Android robot ini didesain menyerupai manusia dan mempunyai kemampuan untuk berkomunikasi dengan manusia. Untuk mendukung kemampuan tersebut, robot android dilengkapi dengan berbagai macam sensor [2].

1.3.3. Pengertian Lengan Robot

Robot ini berupa lengan yang biasanya digunakan untuk mengambil dan memindahkan barang. Lengan ini dapat terpasang pada robot yang bergerak atau pada sebuah tempat yang statis. Jenis robot ini banyak dijumpai di ruang produksi suatu pabrik manufaktur. Android robot ini didesain menyerupai manusia dan mempunyai kemampuan untuk berkomunikasi dengan manusia. Untuk mendukung kemampuan tersebut, robot android dilengkapi dengan berbagai macam sensor, seperti pada Gambar 1.1. berikut ini

Gambar 1.1. Robot lengan

1.3.4. Pengertian Mobile Robot

Mobile robot adalah perangkat mekanik yang dapat dikendalikan oleh perangkat lunak yang menggunakan sensor untuk memandu satu atau lebih efektor melalui gerakan terprogram dalam suatu ruang kerja dalam hal untuk manipulasi obyek fisik. Berdasarkan alat yang digunakan untuk bergerak, mobile robot terbagi menjadi robot berlengan atau berkaki lengan atau kaki menyerupai

xviii

(19)

manusia (android) ataupun hewan, robot beroda Wheeled Mobile Robot (WMR), seperti pada Gambar 1.2. berikut ini

Gambar 1.2. Mobile robot

1.3.5. Posisi dan Orientasi Robot

Sebagaimana definisi dan fungsinya bahwa robot adalah suatu sistem yang bergerak baik dalam gerak 2D maupun 3D. Robotika membahas hal yang terkait dengan gerak ini. Suatu benda dinyatakan bergerak jika benda tersebut atau bagian dari benda tersebut melakukan perpindahan atau perubahan lokasi. Pada umumnya, pergerakan robot adalah perpindahan dari satu lokasi ke lokasi yang lain, maka lokasi ini harus dapat dinyatakan dengan pasti dan konsisten. Kaitannya dengan robot, informasi mengenai lokasi ada terdiri dari posisi dan orientasi. Vektor posisi yang menunjukkan lokasi suatu titik pada ruang. Orientasi dalam ruang yang dinyatakan dalam bentuk matriks [3]. Adapun contoh lokasi robot yang ditunjukkan pada Gambar 1.3.

Gambar 1.3. Lokasi robot

Pada Gambar 1.3 menggunakan sistem koordinat 2 sumbu atau 2D. Terdapat satu sistem koordinat acuan (frame of reference) berupa F0. Terdapat sistem koordinat lain yang ditempelkan pada suatu benda tertentu (robot) berupa F1.

xix

(20)

1.4. Tugas Pendahuluan

1. Apa yang kamu ketahui mengenai kinematika robot!

Jawab:

Kinematika robot adalah studi analisis peregerakan lengan robot (arm robot) atau kaki terhadap system kerangka koordinat referensi yang diam dan bergerak tanpa memperhatikan gaya yang menyebabkan pergerakan tersebut, terdapat 2 topik pembahasan kinematika

2. Sebut dan jelaskan persamaan kinematika robotika!

Jawab:

Adapun persamaan dari kinematika robotika, seperti pada penjelasan berikut ini:

a. Forward kinematics : (Angles to Positions) Diketahui : panjang setiap link dan sudut setiap joint

Informasi yang akan diperoleh : sudut masing joint untuk dapat mencapai posisi tersebut

b. Invers kinematics : (Positions to Angels) Diketahui : panjang setiap, posisi ujung lengan robot

Informasi yang akan diperoleh : sudut masing joint untuk dapat mencapai posisi tersebut

3. Jelaskan kegunaan posisi dan orientasi pada bidang robotika!

Jawab:

Adapun kegunaan posisi dan orientasi pada bidang robotika sepeti pada penjelasan berikut:

a. Posisi yaitu tempat yang timbul saat terjadi suatu gerakan atau saat posisi semula sebelum ada gerakan biasanya untuk 2 dimensi memiliki data (x,y) dan 3 dimensi memiliki data (x,y,z). dan dapat kita olah

b. Orientasi sendiri memiiki data, yaitu:ψ kegunaan untuk mengetahui penenmpatan awal dan akhir terhadap arah satuan dari frame reference

xx

(21)

4. Sebut dan jelaskan jenis-jenis posisi yang digunakan dalam robotika!

Jawab:

Adapun jenis-jenis posisi yang digunakan dalam robotika antara lain seperti berikut:

a. Posisi X= posisi saat kondisi horizontal.

b. Posisi Y= posisi saat kondisi vertical.

c. Posisi Z= digunakan jika objek lengan robot 3D dan menjorok timbul kedepan posisi pandangnya.

5. Beri satu contoh penerapan posisi yang digunakan dalam robotika!

Jawab:

Contohnya ada pada jawaban nomer [4]. Untuk lebih detailnya sebagai berikut : menggunakan sistem koordinat 2 sumbu (2 dimensi), terdapat satu sistem koordinat acuan (frame of reference) f0. Terdapat sistem koordinat lain yang "ditempelkan". Pada suatu benda tertentu (robot), f1 dan F2

1.5. Tugas Praktikum

1. Buat sebuah grafik posisi robot dengan titik X=10; Y=15; dan dengan orientasi 90 derajat.

Jawab :

a. Siapkan MATLAB 2017 atau diatasnya b. Instal rvctools

c. Tambahkan rvctools di setpath lalu save, seperti pada Gambar 1.4.

berikut ini

xxi

(22)

Gambar 1.4. Setting setpath

d. Select folder rvctools pada bagian yang saya beri lingkaran dan tarik kearah command windows lalu kita bisa mulai membuat progam untuk soal nomer dan seterusnya dengan memperhatikan soal, seperti Gambar 1.5. berikut

Gambar 1.5. Select folder rvctools

Adapun program pada command window seperti dibawah ini T1=SE2(10,15,90*pi/180)

trplot2(T1,'frame','1','color','b')

Hasil grafik dari program di atas dapat dilihat pada gambar 1.6.

yang dapat dilihat dibawah ini.

Gambar 1.6. Grafik 2D soal nomor 1

2. Buatlah grafik posisi robot dengan ketentuan sebagai berikut :

xxii

(23)

a. TI (X = 5 ; Y = 8 dengan orientasi 40 derajat) b. T2 (X = 6; Y = 12 dengan orientasi 70 derajat)

Adapun pembuatan program pada command window seperti dibawah ini T1=SE2(5,8,40*pi/180)

trplot2(T1,'frame','1','color','g') hold on

T2=SE2(6,12,70*pi/180) trplot2(T2,'frame','2','color','b') axis([0 15 0 15])

Hasil grafik dari program di atas dapat dilihat pada Gambar 1.7.

yang dapat dilihat dibawah ini.

Gambar 1.7. Grafik soal nomor 2

3. Buatlah grafik posisi robot dengan ketentuan sebagai berikut : a. Robot 2 Dimensi

1) TI (X = 2 ; Y = 2 dengan orientasi 20 derajat) 2) T2 (X = 2; Y = 4 dengan orientasi 45 derajat) 3) TI (X = 4; Y = 2 dengan orientasi 75 derajat)

xxiii

(24)

4) T2 (X = 4; Y = 4 dengan orientasi 90 derajat)

Adapun pembuatan program pada command window seperti dibawah ini T1=SE2(2,2,20*pi/180)

trplot2(T1,'frame','1','color','b');

hold on

T2=SE2(2,4,45*pi/180)

trplot2(T2,'frame','2','color','r');

axis ([0 5 0 5]);

hold on

T3=SE2(4,2,75*pi/180)

trplot2(T3,'frame','3','color','ry);

hold on

T4=SE2(4,4,90*pi/180)

trplot2(T4,'frame','3','color','g');

Hasil grafik dari program di atas dapat dilihat pada Gambar 1.8.

yang dapat dilihat dibawah ini.

xxiv

(25)

Gambar 1.8. Grafik soal nomor 3 b. Robot 3 Dimensi

Berikut langkah-langkah pembuatan grafik posisi robot tiga dimensi pada titik dan posisi yang telah di tentukan dapat dilihat di bawah ini :

Adapun program MATLAB seperti pada comman window R= rotx (90*pi/180)

trplot (R)

Hasil grafik dari program di atas dapat dilihat pada Gambar 1.9.

yang dapat dilihat dibawah ini.

Gambar 1.9. Grafik soal nomer 4

xxv

(26)

1.6. Analisis

Dalam program robot 2D dan 3D pada praktikum modul1 kali ini kita diarahkan untuk membuat sudut dengan orientasi berbeda-beda, sebelum itu kita diwajibkan meng-install rcvtools lalu kita dapat menginput folder tersebut kedalam MATLAB command window program kita, setalah itu kita sudah dapat masuk kedalam suatu program MATLAB dalam comman window dengan susunan sebagai berikut T1=SE3(10.15.90*pi/180), kita ketahui T1 sebagai variabel lalu untuk SE2 untuk tampilan cartesius 2D dan angka didalam kurung yaitu orientasi dan juga derajat sudut, jika semua bagian dari orientasi dan sudut sudah terprogram maka selanjutnya kita masuk kedalam susunan untuk memanggil figure seperti berikut programnya “trplot2(T1,’frame’,’1’,’color’,’b’)”,“trplot2”

digunakan untuk memanggil figure atau tampilan yang telah kita buat T1 sebagai variabel, frame sebagai nama tampilan dan 1 sebagai object ke-1 dan color sendiri untuk memberi warna pada grafik yang kita buat.Untuk pemrograman selanjutnya kita diarahkan dengan 2 tampilan hingga lebih yang membedakan dengan program sebelumnya adalah terletak pada hold on dan juga axis

xxvi

hold on axis([0 15 0 15]);program sama seperti sebelumnya hanya saja terdapat hold on yang diperuntukan untuk membuat agar figure tetap tampil setelah itu terdapat juga axis yang digunakan untuk memberi nilai maximal dan minimal pada diagram cartesius, untuk analisa nomer 3 yaitu sebagai berikut R= rotx (90*pi/180) trplot (R)analisanya adalah R sebagai variabel dan rotx sebagai syntax rotasi 3D dan 90 sebagai sudut derajat, lalu trplot untuk memanggil figure 3D. perbedaan cartesius 2D dengan rotasi 3D adalah sumbu axis x akan tetap diam dan sudut y dan z akan berotasi mengikuti sudut yang akan kita tentukan

(27)

xxvii

(28)

MODUL II ROBOTIKA

INVERSE KINEMATICS PADA ARM ROBOT

2.1. Tujuan Praktikum

Adapun tujuan dari praktikum robotika ini adalah seperti pada penjelasan berikut:

1. Dapat memahami mengenai kinematika.

2. Dapat membedakan antara forward kinematics dengan inverse kinematics.

3. Mengerti dan memahami tentang matriks Homogeneous.

2.2. Alat dan Bahan

Adapun alat dan bahan yang diperlukan dalam praktikum robotika ini, seperti pada keterangan berikut:

1. PC atau Laptop

2. MATLAB

3. Robot toolbox peter choke

2.3. Dasar Teori

Berikut ini adalah penjelasan mengenai dasr teori praktikum robotika, seperti pada penjelasan berikut:

2.3.1. Forward Kinematika

Forward kinematic merupakan analisis matematis yang digunakan untuk menghitung posisi dan orientasi ujung lengan (end-effector) robot berdasarkan besaran sudut setiap joint.

Mendefinisikan robot planar manipulator dengan dua link berdasarkan contoh kasus pada buku Spong dan Vidyasagar dengan mengikuti Denavit-Hartenberg (DH) link parameter. Sebagaimana diketahui bahwa prinsip dasar representasi DH adalah melakukan transformasi koordinat antar dua link yang berdekatan dan hasilnya berupa matriks 4x4 yang menyatakan sistem koordinat dari suatu link

xxviii

(29)

dengan link yang terhubung pada link sebelumnya [Fu]. Sehingga posisi koordinat tangan atau posisi end effector akan diketahui [4]. Model robot manipulator dengan dua link seperti yang ditunjukkan pada Gambar 2.1.

Gambar 2.1. Model manipulator dua link

Terdapat dua metodologi yang berbeda untuk menentukan koordinat frame dari Denavit Hartenberg, yaitu standard DH (DH) dan modified DH (MDH). Untuk membedakan keduanya adalah cara memulai penomoran pada frame link-nya. Untuk standard DH, frame ke i merupakan titik origin sumbu joint i+1. Sedangkan untuk MDH frame ke i merupakan titik asli sumbu joint i atau dengan kata lain untuk MDH penomoran joint-nya sesuai penomoran link- nya sedangkan untuk yang standard DH penomoran joint-nya sama dengan link i- 1 [5]. Berikut merupakan perbedaan antara DH dan MDH ditunjukkan oleh Gambar 2.2.

xxix

(30)

Gambar 2.2. Perbedaan DH dan MDH 2.3.2. Inverse Kinematic

Inverse kinematics adalah kebalikan forward kinematics, dimana diberikan posisi end-effector, dan yang akan dicari adalah berapa besar sudut yang harus diubah untuk tiap joint untuk dapat mencapai posisi end-effector tersebut. Pada tugas akhir ini kami menggunakan pendekatan algebraic approach untuk solusi inverse kinematics arm robot 5 dof. Hal ini dikarenakan sifat penurunan matriks transformasi diantara pendekatan yang lain, pendekatan yang paling efisiensi waktu.

a) Algebraic Approach

Pendekatan aljabar, solusi dicari dengan cara melakukan penurunan persamaan-persamaan kinematik dari matriks transformasi homogeneous sehingga didapatkan sudut-sudut joint yang dibutuhkan. Sebagai contoh, lokasi dan frame {3} relatif terhadap base frame {0} adalah:

0T3 = 0T1 1T2 2T3 dimana:

0T1 = 0A1 1T2 = 1A2 2T3 = 2A3

xxx

(31)

Untuk mencari besarnya persamaan sudut pada setiap joint, bisa dilakukan dengan memindahkan elemen dari bagian kanan ke bagian kiri pada persamaan 2, sehingga menjadi:

( 0T1) -1 0T3 = 1T2 2T3 ( 0T1) -1 0T3 = 1T3

Dengan menggunakan persamaan diatas, maka bisa dicari besarnya sudut- sudut joint yang dibutuhkan untuk mencapai suatu posisi. Apabila masih ada sudut joint lain yang belum didapatkan, maka pindahkan lagi elemen dibagian kanan ke kiri, sehingga menjadi:

( 0T1) -1.(1T2) -1 . 0T3 = 2T3 ( 0T2) -1 . 0T3 = 2T3

Dengan bantuan persamaan diatas, maka solusi untuk inverse kinematics bisa didapatkan.

2.4. Tugas Pendahuluan

1. Apa yang kamu ketahui mengenai transformasi matriks homogeneous!

Jawab:

Transformasi yang menggunakan matriks informasi yang menggabungkan transformasi translasi, perkalian dan relasi kedalam suatu model transformasi dengan menggunakan matriks tidak perlu dibuat produser-produser khusus untuk setiap jenis transformasi tetapi cukup melakukan perkalian matriks saja, isi dari matriks transformasi beergantung pada jenis transformasi yang dilakukan. Sebagiamana berikut:

Translasi: Skala: Rotasi:

2. Jelaskan metode Denavit Hartenberg!

Jawab:

Adapun metode Denavit Hartenberg, seperti pada penjelasan berikut ini:

xxxi

(32)

metode yang menggabungkan proses perhitungan rotasi dan translasi menjadi sebuah matriks yang menyertakan nilai-nilai sudut putar dan jarak sendi dari sebuah lengan robot. Dalam beberapa aplikasi.

Metode Denavid-Hartenberg umumnya digunakan dalam perhitungan forward kinematics.

3. Jelaskan perbedaan Forward Kinematic dan Invers Kinematic!

Jawaban:

Adapun perbedaan dari forward kinematic dan invers kinematic, seperti pada penjelasan berikut ini:

a. Inverse kinematic diberikan posisi end effector maka akan mencari seberapa besar sudut yang harus diubah untuk tiap joint untuk mencapai posisi end effector, sedangkan

b. Forward kinematic merupakan proses menghitung orientasi dan posisi end-effector berdasarkan sudut-sudut pada joint.

2.5. Tugas Praktikum

1. Buatlah robot manipulator dengan ketentuan panjang lengan L_1=(2 angka depanNIM), L_2=(2 angka belakang NIM) dengan diagonal theta Th_1=(2 angka depan NIM) dan Th_2=(2 angka belakang NIM)!

Jawab:

e. Siapkan MATLAB 2017 atau diatasnya f. Install rvctools

g. Tambahkan rvctools di setpath lalu save, seperti pada Gambar 2.3.

berikut ini

xxxii

(33)

Gambar 2.3. Setting setpath

h. Select folder rvctools pada bagian yang saya beri lingkaran dan tarik kearah command windows lalu kita bisa mulai,seperti Gambar 2.4.

Gambar 2.4. Select folder rvctools

Berikut ini adalah penjelasan mengenai program dan hasil running dari masing-masing anggota kelompok seperti pada Tabel 2.3. berikut

Tabel 2.3. Program dan hasil running

Program Hasil Running

200491100015 Th_1 = 20;

Th_2 = 15;

L_1 = 20;

L_2 = 15;

L(1) = Link([0 L_1 0 pi/2]);

L(2) = Link([0 L_2 0 0]);

Robot = SerialLink(L);

Robot.plot([Th_1 Th_2]);

xxxiii

(34)

200491100025 Th_1 = 20;

Th_2 = 25;

L_1 = 20;L_2 = 25;

L(1) = Link([0 L_1 0 pi/2]);

L(2) = Link([0 L_2 0 0]);

Robot = SerialLink(L);

Robot.plot([Th_1 Th_2]);

200491100043 Th_1 = 20;

Th_2 = 43;

L_1 = 20;

L_2 = 43;

L(1) = Link ([0 L_1 0 pi/2]);

L(2) = Link ([0 0 L_2 0]);

Robot = SerialLink(L);

Robot.plot([Th_1 Th_2]);

Program Hasil running

200491100058

Th_1 = 20; Th_2 = 58;

L_1 = 20; L_2 = 58;

L(1) = Link([0 L_1 0 pi/2]);

L(2) = Link([0 L_2 0 0]);

Robot = SerialLink(L);

Robot.plot([Th_1 Th_2]);

2. Buatlah robot manipulator dengan ketentuan panjang lengan L_1=

Tanggal lahir (18), L_2= Bulan lahir (03) L_3= 22, dengan diagonal theta Th_1=(Nomor kelompok), Th_2=(2 angka depan NIM) dan Th_3=(2 angka belakang NIM)!

Adapun pembuatan program pada command window seperti Tabel 2.2.

dibawah ini

xxxiv

(35)

Tabel 2.2. command window

Program Hasil running

200491100015

Th_1 = 13;Th_2 = 20; Th_3 = 15; L_1;L_2;

L_3 = 22;L(1) = Link([0 L_1 0 pi/2]);

L(2) = Link([0 L_2 0 pi/2]);

L(3) = Link([0 0 L_3 0 ]); Robot = SerialLink(L);

Robot.plot([Th_1 Th_2 Th_3]);

200491100025

Th_1 = 13;Th_2 = 20;Th_3 = 25; L_2=11 L_3 = 22; L(1) = Link([0 L_1 0 pi/2]);

L(2) = Link([0 L_2 0 pi/2]);

L(3) = Link([0 0 L_3 0 ]); Robot = SerialLink(L);

Robot.plot([Th_1 Th_2 Th_3]);

Program Hasil running

Th_1 = 13; Th_2 = 20; Th_3 = 43;

L_1 = 30; L_2 = 10; L_3 = 22;

L(1) = Link ([0 L_1 0 pi/2 ]);

L(2) = Link ([0 0 L_2 0]);

L(3) = Link ([0 0 L_3 0]);

Robot = SerialLink(L);

Robot.name = 'modul 2';

Robot.plot([Th_1 Th_2 Th_3]);

xxxv

(36)

Th_1 = 13; Th_2 = 20; Th_3 = 58;

L_1 = 22; L_2 = 9; L_3 = 22;

L(1) = Link([0 L_1 0 pi/2]);

L(2) = Link([0 L_2 0 pi/2]);

L(3) = Link([0 0 L_3 0 ]);

Robot = SerialLink(L);

Robot.plot([Th_1 Th_2 Th_3]);

3. Buatlah robot manipulator dengan banyaknya lengan berdasarkan jumlah anggota kelompok dengan ketentuan panjang lengan urut dari NIM terkecil (gunakan 2 angka dibelakang NIM)!

Adapun pembuatan program pada command window seperti dibawah ini Clc

clear Th_1 = 15;

Th_2 = 25;

Th_3 = 43;

Th_4 = 58;

L_1 = 15;

L_2 = 25;

L_3 = 43;

L_4 = 58;

L(1) = Link([0 L_1 0 pi/2]);

L(2) = Link([0 L_2 0 0]);

L(3) = Link([0 L_3 0 0]);

L(4) = Link([0 0 L_4 0]);

Robot = SerialLink(L);

Robot.plot([Th_1 Th_2 Th_3 Th_4]);

Hasil dari program di atas dapat dilihat pada Gambar 2.5. yang dapat dilihat dibawah ini.

xxxvi

(37)

Gambar 2.5. Hasil grafik soal no 3

xxxvii

(38)

2.6. Analisis

Untuk analisa program diatas kita diharapkan dapat memahami akan konsep dari robot manipulator yang dimana terdapat sudut dan lengan-lengan robot yang dapat diatur posisi letak dan juga sudut putarnya, selain itu terdapat juga forward reverse untuk arah putar dari lengan-lengan robot yang kita program hal ini terdapat pada L(1) = Link([0 L_1 0 pi/2]) angka 0 sendiri memiliki tujuan yaitu letak sumbu cartesius terdapat pada titik koordinat 0 lalu untuk link sendiri adalah titik temu antara lengan satu dengan yang lainnya, dan untuk posisi sudut sendiri terdapat pada theta yang dapat kita atur sesuai dengan keinginan kita, lalu untuk lengan sendiri dapat kita atur panjang nya sesuai dengan keinginan dengan menambah setelah variabel L_1. Untuk menampilkan tiap theta-nya kita harus memasukan alamat theta 1 hingga theta yang telah kita program agar dapat kita tampilkan.

Setelah kita memahami konsep dari pemrograman tersebut maka kita akan mudah untuk mengaplikasikannya karena kita sudah mengetahui cara dan fungsi dari masing-masing rumus dan juga variabel yang berkaitan satu sama lain tersebut, untuk menapilkan ukuran pastinya kita dapat menggunakan fungsi Robot.teach dengan hal itu figure akan otomatis menampilkan tehta dan panjang lengan selain itu dapat kita atur juga nilainya. Untuk pramameter link digunakan untuk pengabungan antara beberapa lengan robot yang ada

xxxviii

(39)

MODUL III ROBOTIKA

MOBILE ROBOT DAN PATH FOLLOWING MOBILE ROBOT

3.1. Tujuan Praktikum

Adapun tujuan dari praktikum robotika ini seperti yang ada pada penjelasan dibawah ini

1. Dapat memahami lebih awal dari mobile robot.

2. Memahami dan mengerti penggunaan forward dan inverse kinematics pada mobile robot.

3.2. Alat dan Bahan

Adapun alat dan bahan dari praktikum robotika ini seperti yang ada pada penjelasan dibawah ini

1. PC atau Laptop

2. MATLAB

3.3. Dasar Teori

Adapun dasar teori dari praktikum robotika seperti yang terdapat pada penjelasan dibawah ini

3.3.1. Pengertian Mobile Robot

Mobile robot adalah robot yang dapat bergerak, umumnya menggunakan kaki atau roda dalam pergerakannya. Mobile robot adalah robot yang dapat bergerak atau berpindah tempat. Mobile robot dapat dikendalikan secara otomatis maupun pengendalian secara manual yang menggunakan PC dalam pengontrololan robot. Mobile robot yang dibuat baik dalam pengendalian otomatis atau manual di sesuaikan dengan kebutuhan manusia yang tentunya bertujuan agar mempermudah manusia melakukan pekerjaan sehari-hari [7]. Mobile robot yang di kendalikan secara manual saat ini menggunakan kabel sebagai penghubung ke PC. Tentunya terdapat banyak kekurangan dalam penggunaan kabel sebagai media penghubung pengendalian mobile robot misalnya seperti terbatasnya

xxxix

(40)

gerakan mobile robot dari panjang kabel, kabel cepat rusak karena sering terjadinya tekukan pada kabel dan robot terlihat kurang menarik.

3.3.2. Klasifikasi Mobile Robot

Mobile robot adalah konstruksi robot yang ciri khasnya adalah mempunyai aktuator untuk menggerakkan keseluruhan badan robot tersebut, sehingga robot tersebut dapat melakukan perpindahan posisi dari satu titik ke titik yang lain.

Secara umum robot mobile dibagi menjadi dua yaitu robot beroda dan robot berkaki.

a. Robot Beroda (Wheeled Robot)

Robot beroda ini sangat disukai bagi orang yang mulai mempelajari robot.

Hal ini karena membuat robot ini tidak memerlukan kerja fisik yang berat. Roda seringkali dipilih, karena memberikan traction yang bagus, mudah diperoleh dan dipakai, dan juga mudah untuk memasangnya pada robot. Untuk dapat membuat sebuah robot berodaminimal diperlukan pengetahuan tentang mikrokontroler dan sensor-sensor elektronik. Base robot beroda dapat dengan mudah dibuat dengan menggunakan plywood atau triplek, akrilik dan menggunakan logam. Robot ini dapat dibuat sebagai pengikut garis (line follower) atau pengikut dinding (wall follower) ataupun pengikut cahaya seperti pad Gambar 3.1.

Gambar 3.1. Robot beroda

b. Robot Berkaki

Robot berkaki adalah robot yang memiliki cara kerja dengan lengan- lengan kaki yang terdapat pada tiap sendinya, ntuk melewati medan yang tidak menentu, robot berkaki sangat baik digunakan karena robot berkaki lebih mudah beradaptasi bila dibandingkan menggunakan roda seperti untuk menaiki tangga

xl

(41)

[8]. Bentuk robot berkaki banyak diadopsi dari bentuk mahkluk hidup atau manusia, salah satu jenisnya adalah robot robot dengan kecerdasan buatan yaitu robot humanoid seperti halnya Gambar 3.2.

Gambar 3.2. Robot berkaki humanoid

Pergerakan dari mobile robot sering kali menggunakan uni cycle dengan menggunakan gerakan kinematika differential drive yaitu sebuah gerakan yang memungkinkan robot saat berbelok ke sebelah kiri maka roda bagian kiri akan menambah kecepatannya dan roda kanan akan melakukan pengereman begitupun sebaliknya. Berikut merupakan gambar ilustrasi dari pergerakan mobile robot menggunakan differential steering pada Gambar 3.3.

Gambar 3.3. Mobile robot differential drive

xli

(42)

Untuk menentukan posisi dan orientasi dari sebuah robot tersebut dapat digunakan rumus.

Dimana x dan y pada koordinat kartesius digunakan untuk titik awal dari sebuah robot tersebut sementara x dan y aksen digunakan sebagai titik akhir dari sebuah robot dengan. Theta pada rumus tersebut digunakan sebagai heading angle dari sebuah robot [3].

3.3.3. Path following Mobile Robot

Path following mobile robot adalah sebuah kontrol yang digunakan untuk menggerakkan dari gerakan sebuah robot. Path following digunakan untuk manuver dari pergerakan sebuah robot. Pergerakan memutar yang cukup tajam juga bisa membuat robot tidak seimbang sehingga dapat membuat robot kehilangan keseimbagan dan terjatuh. Robot Path following digunakan untuk mengikuti titik yang sudah ditentukan oleh pengguna sehingga robot akan menuju ke titik tersebut [9]. Robot yang digunakan menggunakan sistem penggerak diferensial dan memiliki dua pasang roda yaitu roda penggerak utama. Roda encoder dibuat lebih tipis sehingga mengurangi resiko ketidakpastian dari jarak antara roda encoder kanan dan roda encoder kiri (wheel base). roda encoder ini juga dibuat untuk dapat bergerak secara vertikal untuk meminimalkan faktor selip roda. parameter dalam odometry nantinya akan berasal dari roda encoder ini.

3.4. Tugas Pendahuluan

1. Sebutkan klasifikasi robot yang anda ketahui, serta berikan penjelasannya!

Jawab :

Robot sendiri dapat diklasifikasikan kedalam empat bagian antara lain : a. Non Mobile Robot

Robot ini tidak dapat berpindah posisi dari satu tempat ke tempat lainnya, sehingga robot tersebut hanya dapat menggerakkan beberapa

xlii

(43)

bagian dari tubuhnya dengan fungsi tertentu yang telah dirancang. Berikut ini Gambar 3.4.

Gambar 3.4. Non mobile robot b. Mobile Robot

Mobile dapat diartikan bergerak, sehingga robot ini dapat memindahkan dirinya dari satu tempat ke tempat lain. dari segi manfaat, robot ini diharapkan dapat membantu manusia dalam melakukan otomasi dalam transportasi, platform bergerak untuk robot industri, eksplorasi tanpa awak dan masih banyak lagi. Berikut ini Gambar 3.5.

Gambar 3.5. Mobile robot

c. Gabungan Mobile Robot dan Non Mobile Robot

Robot ini merupakan penggabungan dari fungsi-fungsi pada robot mobile dan non-mobile. sehingga keduanya saling melengkapi dimana robot nonmobile dapat terbantu fungsinya dengan bergerak dari satu tempat ke tempat lain.

d. Robot Humanoid

Robot ini dirancang dengan menirukan anatomi dan perilaku manusia. Fungsi-fungsi tubuh manusia baik lengan, kaki, mata, dan

xliii

(44)

pergerakan sendi kepala dan bagian lainnya sebisa mungkin diterapkan.

Berikut ini Gambar 3.7.

Gambar 3.7. Robot humanoid

2. Jelaskan pengertian mobile robot!

Jawab :

Mobile robot adalah robot yang dapat bergerak, umumnya menggunakan kaki atau roda dalam pergerakannya. Mobile robot adalah robot yang dapat bergerak atau berpindahtempat.

3. Berikan contoh mobile robot yang anda ketahui beserta penjelasannya!

Jawab :

a. Robot Beroda

Robot beroda ini sangat disukai bagi orang yang mulai mempelajari robot. Hal ini karena membuat robot ini tidak memerlukan kerja fisik yang berat.

b. Robot Berkaki

Robot ini dapat digunakan untuk media rintangan yang berat maka dari itu robot ini lebih muda beradaptasi bila dibandingkan menggunakan roda seperti tangga

c. Under Water Robot

Robot ini digunakan untuk dibawah laut untuk memonitor kondisi bawa laut dan juga untuk mengambil dibawa laut.

d. Flying Robot

xliv

(45)

Robot yang mampu terbang, robot ini menyerupai pesawat model yang deprogram khusus untuk memonitor keadaandan ditanah dari atas 4. Jelaskan perbedaan forward dan inverse kinematics pada mobile robot

dengan arm robot!

Jawab :

Forward kinematic pada sebuah arm bot digunakan untuk penentuan nilai parameter dan variabel yang terdapat pada masing masing link selain itu forward kinematics pada sebuah arm bot dapat diartikan proses menghitung orientasi dan posisi dari end-effector , dimana yang akan dicari adalah besaran sudut yang harus diubah untuk setiap joint.

Forward kinematics pada sebuah mobile robot dapat digunakan untuk pergerakan dari sebuah mobile robot atau digunakan untuk mengatur kecepatan linear dan dan kecepatan angular. Inverse kinematics adalah kebalikan forward kinematics, dimana diberikan posisi end-effector, dan yang akan dicari adalah berapa besar sudut yang harus diubah untuk tiap joint untuk dapat mencapai posisi end-effector tersebut. Sementara inverse kinematics pada sebuah mobile robot digunakan untuk menentukan kecepatan angular dari roda kanan dan kiri jika menggunakan roda untuk aktuator nya atau inverse kinematics digunakan untuk pergerakan atau pengaturan dari aktuator untuk bergerak.

5. Buatlah diagram blok dari robot line followers, serta berikan penjelasan bahasamu sendiri!

Jawab :

Berikut ini adalah diagram blok dari robot line follower seperti pada Gambar 3.4.

Gambar 3.4. Diagram blok line follower

xlv

Input

LED Proses

ATMEGA

output DC motor

Input IR sensor

(46)

Untuk penjelasan yaitu inputan menggunakan LED dan diteruskan ke proses menggunakan AT-Mega seteah itu dieksekusi oleh output yaitu motor DC sebelum AT-Mega memerintah tindakan input IR sensor akan memberi perintah

3.5. Tugas Praktikum

Berikut ini merupakan penjelasan mengenai tugas praktikum modul ketiga seperti pada keterangan dibawah ini

1. Membuat jalur atau waypoint sesuai dengan NIM 2 angka dari belakang

(sesuai dengan kreativitias masing-masing)

2. Arah orientasi awal harus sesuai dengan jalur yang diberikan

3. Robot ditunjukkan dalam warna merah, arah haadap ditunjukkan pada warna biru, dan untuk hasil pergerakan robot berwarna hijau

4. Beri Nama, NIM dan Kelompok pada title plot

5. Beri bentuk lingkaran warna biru pada titik awal robot dan beri bentuk kotak warna hijau pada titik akhir robot

6. Beri keterangan berupa teks pada start dan finish beserta koordinatnya, 7. Berikut ini adalah penjelasan mengenai langkah-langkah pmerograman

menggunakan MATLAB 2018 seperti pada keterangan dibawah ini i. Siapkan MATLAB 2018 atau diatasnya

j. Install rvctools

k. Tambahkan rvctools di setpath lalu save, seperti pada Gambar 3.5.

berikut ini

Gambar 3.5. Setting setpath

xlvi

(47)

l. Select folder rvctools pada bagian yang saya beri lingkaran dan tarik kearah command windows lalu kita bisa mulai,seperti Gambar 3.6.

Gambar 3.6. Select folder rvctools

m. Berikut ini adalah penjelasan mengenai program dan hasil running dari masing-masing anggota kelompok seperti pada Tabel 3.1.

berikut

Tabel 3.1. Hasil Running

Program Hasil running

jalur = [6.00 2.00 9.00 2.00 9.00 5.00 6.00 5.00 6.00 8.00 9.00 8.00 9.00 9.00 4.00 9.00 4.00 2.00 4.00 2.00 ];

plot(jalur(1,1),jalur(1,2),'ko','LineWidth',20,'color',' blue')

hold on;

plot(jalur(end,1),jalur(end,2),'ks','LineWidth',20,'co lor','green')

xlvii

(48)

Program Hasil running hold on;

plot(jalur(:,1), jalur(:,2),'k-','LineWidth',8) xlim([0 10])

ylim([0 10])

nama = ('Wahyu nur cahyo (200491100015) kelompok 13');

start = {'Start', '(6,2)'};

finish = {'Finish', '(4,2)'};

text(6,1,start,'color','r') text(4,2,finish,'color','r') title({nama},'FontSize',15)

xlabel('X[Meter]'),ylabel('Y[Meter]') titikSekarang = jalur(1,:);

titikAkhir = jalur(end,:);

orientasiAwal = 0;

robotCurrentPose = ([titikSekarang orientasiAwal]);

robot =

ExampleHelperDifferentialDriveRobot(robotCurre ntPose);

controller = robotics.PurePursuit;

controller.Waypoints = jalur;

controller.DesiredLinearVelocity = 0.9;

controller.MaxAngularVelocity = 5;

controller.LookaheadDistance = 0.3;

radiusTarget = 0.1;

jarakKeTarget = norm(titikSekarang - titikAkhir);

controlRate = robotics.Rate(50);

while(jarakKeTarget > radiusTarget)

[v, omega] = step(controller,robot.CurrentPose);

xlviii

(49)

Program Hasil running drive(robot, v, omega);

titikSekarang = robot.CurrentPose(1:2);

jarakKeTarget = norm(titikSekarang - titikAkhir);

waitfor(controlRate);

end

jalur = [2.00 7.00 4.00 7.00 4.00 5.00 2.00 5.00 2.00 3.00 7.00 3.00 7.00 5.00 5.00 5.00 5.00 7.00 7.00 7.00];

plot(jalur(1,1),

jalur(1,2),'ko','LineWidth',7,'color','blue') hold on;

plot(jalur(end,1),jalur(end,2),'ks','linewidth',7,'color ','green')

hold on;

plot (jalur(:,1),jalur(:,2),'k-','Linewidth',7) plot (jalur(:,1),jalur(:,2),'color','green') xlim([0 10])

ylim([0 10])

xlabel('X[Meter]'),ylabel('Y[Meter]')

%% penambahan title title ({'SARIFATUL

LAILA';'200491100025';'Kelompok 13'})

xlix

(50)

Program Hasil running text (jalur (1,1), jalur (1,2)-0.7,'\it start (2,7)',

'Color', 'blue', 'FontSize',12);

text(jalur(end,1),jalur(end,2)-0.7,'\it finish(7,7)','Color', 'green', 'FontSize',12);

titikSekarang = jalur(1,:);

titikAkhir = jalur(end,:);

orientasiAwal = 0;

robotCurrentPose = [titikSekarang orientasiAwal];

%Menggunakan Class

ExampleHelperDifferentialDriveRobot robot =

ExampleHelperDifferentialDriveRobot(robotCurre ntPose);

%Menggunakan kontrol dari pure pursuit controller = robotics.PurePursuit;

controller.Waypoints = jalur;

controller.DesiredLinearVelocity = 0.3;

controller.MaxAngularVelocity = 5;

controller.LookaheadDistance = 0.3;

radiusTarget = 0.1;

jarakKeTarget = norm(titikSekarang - titikAkhir);

controlRate = robotics.Rate(50);

while( jarakKeTarget > radiusTarget )

[v, omega] = step(controller, robot.CurrentPose);

drive(robot, v, omega)

titikSekarang = robot.CurrentPose(1:2);

jarakKeTarget = norm(titikSekarang - titikAkhir);

waitfor(controlRate);

end jalur =[

l

(51)

Program Hasil running 3.80 5.00

1.00 5.00 4.00 9.00 4.00 1.00 8.00 1.00 8.00 4.80 6.00 4.80 6.00 5.00 8.00 5.00 8.00 9.00 6.00 9.00];

plot(jalur(1,1), jalur(1,2), 'ko','Linewidth',9,'color','blue') hold on

plot(jalur(end,1), jalur(end,2), 'ks','Linewidth',9,'color','green') hold on

plot(jalur(:,1), jalur(:,2), 'k-','Linewidth',9) plot(jalur(:,1),

jalur(:,2),'color','green') xlim([0 10])

ylim([0 10])

title('Moh Misbahul Munir 200491100043 Kelompok 13');

text (jalur (1,1), jalur (1,2)-0.7,'\it start(3,5)','color','blue','FontSize',12);

text (jalur (end,1), jalur (end,2)-0.7,'\it finish(6,9)','color','green','FontSize',12);

xlabel('X[Meter]'),ylabel('Y[Meter]') titikSekarang = jalur(1,:);

li

(52)

Program Hasil running titikAkhir = jalur(end,:);

orientasiAwal = 0;

robotCurrentPose = [titikSekarang orientasiAwal];

robot =

ExampleHelperDifferentialDriveRobot(robotCurre ntPose);

controller = robotics.PurePursuit;

controller.Waypoints = jalur;

controller.DesiredLinearVelocity = 0.5;

controller.MaxAngularVelocity = 5;

controller.LookaheadDistance = 0.2;

radiusTarget = 0.1;

jarakKeTarget = norm(titikSekarang - titikAkhir);

controlRate = robotics.Rate(50);

while( jarakKeTarget > radiusTarget ) [v, omega] =

step(controller,robot.CurrentPose);

drive(robot, v, omega)

titikSekarang = robot.CurrentPose(1:2);

jarakKeTarget = norm(titikSekarang - titikAkhir);

waitfor(controlRate);

end

lii

(53)

Program Hasil running jalur = [2.00 2.00

5.00 2.00 5.00 5.00 2.00 5.00 2.00 8.00 5.00 8.00 10.00 8.00 10.00 2.00 7.00 2.00 7.00 4.80 9.60 4.80 9.60 5.00 7.00 5.00 7.00 7.80];

plot(jalur(1,1),

jalur(1,2),'ko','LineWidth',7,'color','blue') hold on;

plot(jalur(end,1),jalur(end,2),'ks','linewidth',7,'color ','green')

hold on;

plot (jalur(:,1),jalur(:,2),'k-','Linewidth',7) plot (jalur(:,1),jalur(:,2),'color','green') xlim([0 12])

ylim([0 12])

xlabel('X[Meter]'),ylabel('Y[Meter]')

%% penambahan title title ({'Alvio Nita Karina

Lukman';'200491100058';'Kelompok 13'}) text (jalur (1,1), jalur (1,2)-0.7,'\it start (2,2)',

liii

(54)

Program Hasil running 'Color', 'blue', 'FontSize',12);

text(jalur(end,1),jalur(end,2)-0.7,'\it finish(7,7.8)','Color', 'green', 'FontSize',12);

titikSekarang = jalur(1,:);

titikAkhir = jalur(end,:);

orientasiAwal = 0;robotCurrentPose = [titikSekarang orientasiAwal];

%Menggunakan Class

ExampleHelperDifferentialDriveRobot robot =

ExampleHelperDifferentialDriveRobot(robotCurre ntPose);

%Menggunakan kontrol dari pure pursuit controller = robotics.PurePursuit;

controller.Waypoints = jalur;

controller.DesiredLinearVelocity = 0.3;

controller.MaxAngularVelocity = 5;

controller.LookaheadDistance = 0.3;

radiusTarget = 0.1;

jarakKeTarget = norm(titikSekarang - titikAkhir);

controlRate = robotics.Rate(50);

while( jarakKeTarget > radiusTarget )

[v, omega] = step(controller, robot.CurrentPose);

drive(robot, v, omega)

titikSekarang = robot.CurrentPose(1:2);

jarakKeTarget = norm(titikSekarang - titikAkhir);

waitfor(controlRate);

end

liv

(55)

3.6. Analisis

Untuk analisa program pada praktikum kali ini pertama diarahkan untuk membuat pola sesuai dengan NIM jangan lupa juga tentukan untuk sudut X dan Y sebagai acuan batas maksimal dan minimal dari sebuah garis yang akan dibuat, untuk syntax plot(jalur(end,1), jalur(end,2), memiliki fungsi sebagai pembuat tampilan jalur untuk program ini menggunakan beberapa sudut agar membentuk NIM yang diinginkan, setalah membuat NIM tersebut dapat membuat plot sebagai indicator jalur awal dan juga jalur yang akan dijalankan agar program dapat berjalan sesuai dengan yang diinginkan lalu untuk titik start dan finish dapat menggunakan variabel start dan finish sebagai indikasi titik awal dan akhir.

Lalu gunakan fungsi untuk kecepatan dari motor dan juga ada batas maximal dari sebuah kecepatan yang ditentukan, lalu menggunakan juga perulangan untuk jarak dan juga target dan juga perulangan untuk nila v dan juga omega, setelah itu robot mobile robot dapat berfungsi semestinya. Controller.

DesiredLinearVelocity = 0.9 digunakan untuk setting kecepatan motor dan untuk controller. MaxAngularVelocity = 5 digunakan untuk setting kecepatan maksimal.

lv

(56)

lvi

(57)

MODUL IV ROBOTIKA

PATH PLANNING MOBILE ROBOT

4.1. Tujuan

Adapun tujuan dilakukannya praktikum robotika modul keempat tentang path planning mobile robot ini memiliki tujuan yang diharapkan praktikan dapat:

1. Memahami lebih awal pengertian Path planning dari mobile robot.

2. Membuat map terkait Path planning dan terdapat beberapa obstacle.

3. Memahami dan mengerti perbedaan mengenai path planing dengan path following.

4.2. Alat dan Bahan

Adapun alat dan bahan yang diburuhkan dalam modul empat praktikum robotika seperti pada berikut

1. Laptop

2. Software MATLAB

4.3 Dasar Teori

Adapula beberapa pengertian dari path planning mobile robot dan juga obstacle avoidance

4.3.1. Path planning Mobile Robot

Path planning adalah metode untuk menemukan kan jalur yang akan menjadi sebuah tujuan dari sebuah mobile robot tersebut, Path planning juga mampu menemukan jalur terpendek atau optimal antara dua titik. Path yang optimal belum tentu yang terpendek, ada hal yang perlu dipertimbangkan seperti jumlah belok dan berhenti untuk robot itu melakukan pergerakan [10]. Hal ini dipengaruh oleh rintangan. Path planning adalah suatu metode yang digunakan untuk memetakan atau membuat jalur pada suatu perjalanan dari titik A ke C.

Terdapat tiga asumsi dasar path planning pada robot antara lain : Robot mengenali daerah sekitarnya seperti indera yang terdapat pada manusia.

lvii

(58)

1. Adanya obstacle (hambatan) dapat menggangu indera pengenalan pada robot.

2. Robot mengetahui koordinat dan orientasinya (seperti menggunakan gps) [11]

4.3.2. Obstacle Avoidance

Dari namanya jelaslah bahwa robot obstacle avoidance bertujuan untuk menghindari tabrakan dengan penghalang. Disebut obstacle avoidance karena robot ini hanya akan bergerak menghindari objek yang bergerak mendekat di depannya tanpa kembali ke jalurnya Struktur dan bentuk obstacle avoiding robot roda dua dapat diklasifikasikan, menjadi tiga bagian. Aplikasi dan keuntungan dari sensor pada obstacle avoiding robot roda dua dapat digunakan untuk memperoleh pengukuran percepatan, jarak tempuh, dan sudut kemiringan robot (tilt angle) seperti yang pernah dilakukan pada penelitian [12].

Pada struktur obstacle avoiding robot dengan menggunakan model kinematika obstacle avoiding Model kinematika obstacle avoiding robot roda dua Akselerasi roda kiri dan kanan adalah ωL dan ωR. Kami berasumsi bahwa kontak antara roda dan lantai yang terguling murni dan tidak tergelincir itu memiliki hubungan antara velg kiri dan kanan dengan kecepatan dan akselerasi. Dimana r adalah jari-jari roda. Kecepatan linear robot obstacle avoiding adalah V.

Kecepatan linier untuk roda kiri dan kanan adalah VL dan VR, Hubungan antara ωL, ωR, VL, VR. Kini kita bisa meringkas model dinamis untuk obstacle avoiding robot, adalah sebagai berikut:

4.4. Tugas Pendahuluan

1. Jelasakan dengan bahasamu sendiri pengertian dari path planning dalam mobile robot?

Jawab :

Path planning adalah metode untuk menemukan jalur yang akan

lviii

(59)

menjadi sebuah tujuan dari sebuah mobile robot tersebut. path planning juga mampu maenemukan jalur terpendek atau optimal antara 2 titik.

1. Adanya obstade (hambatan) dapat mengganggu indera.

2. Robot mengetahui koordinat dan orientasinya.

2. Mengapa path planning diperlukan untuk sistem mobile robot?

Jawab :

Karena dalam path planning ini robot harus diharuskan menemukan yang akan menjadi tujuan dari sebuah robot. Karena hal inilah path planning sangat dibutuhkan. Selain itu path planning juga sangat membantu bagi programmer karena adanya algoritma yang dapat membantu kita menemukan titik letak start dan finish atau titik awal dan akhir dari sebuah robot

3. Apa perbedaan Path following dan path planning?

Jawab :

Adapun Path following dan path planning seperti yang dijelaskan pada keterangan dibawah ini

Path following adalah salah satu metode yang digunakan untuk mencari solusi optimal dari masalah program linier . Path planning adalah metode untuk menemukan jalur yang akan menjadi sebuah tujuan dari sebuah mobile robot tersebut. Perbedaannya Jika Path following robot akan melewati jalur yang kita tentukan sebelumnya dengan pasti dan tepat, sedangkan path planning adalah cara robot melewati opstekel dan jalur tercepat dengan ditentukannya set title yang akan terhubung dengan beberapa titik terhubung.

4. Carilah salah satu jurnal yang berkaitan dengan path planning pada mobile robot. Lalu, tulislah hal-hal sebagai berikut:

a. Penjelasan singkat mengenai judul jurnal (diberi sumber jurnal) b. Penjelasan mengenai sensor yang digunakan

c. Algoritma path planning d. Bagan alir cara kerja robot e. Hasil Pembahasan

lix

(60)

Jawab :

a. Berikut merupakan jurnal dengam pembahasan mengenai mobile robot denngan basis visible light communication yang didalamnya memuat path planning ‘’ Implementasi System Path Planning dan Roaring Untuk Mobile Robot Berbasis Visible Light Communication’’.

b. Photodiode sebagai sensor gelap terang yang diberi oleh lintasan dari lampu LED. yang digunakan untuk memberi input-an dan perintah untuk tindakan output

c. Algoritma best path planning merupakan algoritma yang diusulkan oleh Chao Lin Liu untuk mengatasi masalah pencarian rute pada transportasi public dengan meminimalkan jumlah transfer antar rute untuk efisiensi waktu dan biaya. Algoritma best arst search yang melakukan transfer satu persatuan setiap simpul untuk memperoleh lintasan terpendek pada suatu grafik

Fcn

= gcn) + hcn) Keterangan:

N = node

g(n) = nilai node awal ke – n hcn) = nilai n ke node akhir

fcn) = nilai untuk menemukan node

untuk nilan hcn) dapat dicari dengan fungsi berikut : X(n) : abs ( node . X (n) – goal . X (n) )

Y(n) : abs ( node . y (n) – goal y (n) ) h(n) : ( X (n) . y (n) – goal y (n) ) h (n) : ( X (n) + y (n) ) (2)

h (n) 2

h(n) (yn – y goal )2

=fuzzy logic

lx

(61)

d. Flowchart.

Berikut ini adalah diagram alir dari tugas pendahuluan nomor empat seperti pada Gambar 4.1. Berikut

Gambar 4.2. Diagram alir sistem

d. Hasil Pembahasan

Pengujian ini dilakukan untuk mengetahui apakah pada saat receiver dengan menggunakan Sensor laser di robot menerima data dengan tepat dengan waktu menangkap data dan menampilkan data id lampu di LCD dengan jarak dari lampu ke sensor yaitu 80 cm dengan 5 kali percobaan pada setiap lampu saat sensor menerima data

1. Pengujian nilai lux dan sinyal osiloskop

Pengujian yang dilakukan pada parameter nilai lux pada jarak lampu dengan 2 meter dan bertujuan mengetahui hubungan terhadap sensor laser apakah receiver bisa

lxi

(62)

menerima menerima pancaran cahaya lampu yang sudah ditentukan dengan robot mencapai titik tujuan. Grafik 3-1 Hasil Pengujian nilai lux Berikut ini adalah hasil dari analisa pengujian jarak lampu ke lux seperti pada Gambar 4.2.

Gambar 4.3. Hasil pengujian nilai lux

Berdasarkan Gambar 4.2, diatas bisa dilihat bahwa semakin jauh pembacaan jarak sensor ke lampu, semakin mengecil juga nilai dari lux meter jadi pembacaan sensor juga semakin akurat jika dengan jarak semakin dekat dan sebaliknya, dan jika pembacaan sensor semakin jauh maka tegangan yang diterima juga akan semakin mengecil yang diterima ke receiver

2. Pengujian Path planning dan routing menggunakan Algoritma A* dengan rintangan pada 6 grid lampu

Pengujian Algoritma A*dengan posisi titik awal di lampu a menuju titik f dan titik b sebagai rintangan dilakukan sebanyak 30 kali. Tujuan dari pengujian ini adalah untuk membuktikan apakah algoritma A* dapat diimplementasikan pada kondisi dimana terdapat titik rintangan pada lampu dan dapatkah robot memilih rute

lxii

(63)

tercepat lainnya menuju titik tujuan. Hasil pergerakan yang dilakukan robot untuk mencapai led f dengan rintangan pada led b. Robot akan berubah arah menghadap led d lalu lurus lagi ke led d, lalu lurus lagi ke led e, lalu lurus lagi ke led f. seperti Gambar 4.3.

Gambar 4.4. Skema pengujian

Pengujian Pengujian pada tahap ini dilakukan percobaan yang dilakukan robot yang bergerak menuju posisi destinasi tujuan berbeda. Bentuk skema 3x2 yang artinya terdapat 6 rute lintasan yang dapat di lewati robot ditambahkan berupa satu rute yang tidak dapat dilewati sebagai rintangan. Setelah memilih set point rute start, sebagai posisi awal robot pada lintasan kemudian menentukan led posisi destinasi yang menjadi tujuan robot

4.5. Tugas Praktikum

Adapun tugas praktikum mengenai praktikum robotika modul empat seperti pada keterangan dibawah ini

1. Membuat map sesuai dengan gambar di bawah ini 2. Ukuran robot harus proporsional dengan ukuran map 3. Beri Nama dan NIM pada title Plot

4. Beri bentuk lingkaran warna biru pada titik awal robot dan beri bentuk kotak warna merah pada titik akhir robot

lxiii

(64)

n. Siapkan MATLAB 2021 o. Instal exampleMaps

p. Tambahkan exampleMaps pada folder yang sudah kita siapkan dan file program MATLAB dan juga gambar maps lintasan

Berikut adalah pembuatan folder baru yang didalamnya terdapat file MATLAB, gambar lintasan, dan juga library exampleMaps seperti Gambar 4.4.

Gambar 4.4. Folder baru library exampleMaps

d. Gambar lintasan sesuai dengan asisten praktikum masing-masing dengan ketentuan yang sudah disepakati, seperti Gambar 4.5.

lxiv

(65)

Gambar 4.5. Pembuatan map

e. Buat program setelah itu screenshoot hasil running program dan input seperti Tabel 4.1. Berikut

Tabel 4.1. Program dan Running Program

Program Running program

%file Path = fullfile (file

parts(which('PathPlanningExample')),'data','exampleMa ps.mat');

load exampleMaps.mat

image=imread('revisike2.png');

abu=rgb2gray(image);

bwimage = abu< 0.5;

mapbaru = robotics.BinaryOccupancyGrid(bwimage);

show(mapbaru);

robotRadius = 0.5;

mapInflated = copy(mapbaru);

%% Construct PRM and Set Parameters prm = robotics.PRM;

prm.Map = mapInflated;

prm.NumNodes = 50;

prm.ConnectionDistance = 5;

% Define start and end locations on the map for the path planner to use.

startLocation = [25 20];

endLocation = [111 114];

path = findpath(prm, startLocation, endLocation);

while isempty(path)

prm.NumNodes = prm.NumNodes + 10;

% Use the |update| function to re-create the PRM roadmap with the changed

% attribute

lxv

(66)

Program Running program update(prm);

% Search for a feasible path with the updated PRM path = findpath(prm, startLocation, endLocation);

end

% Display path path;

total = prm.NumNodes;

show(prm, 'Map', 'on', 'Roadmap', 'on', 'Path','on');

rectangle('position',[25 20 5 5],'FaceColor','r')

rectangle('position',[111 114 5 5],'Curvature',[1 1],'FaceColor','b')

hold on;

%grid on;

title({'wahyu nur cahyo';'200491100015'});

orientasiAwal = 0;

robotCurrentPose = [startLocation orientasiAwal];

%Menggunakan

Class ExampleHelperDifferentialDriveRobot

robot=ExampleHelperDifferentialDriveRobot(robotCurr entPose);

controller = robotics.PurePursuit;

controller.Waypoints = path;

controller.DesiredLinearVelocity = 1;

controller.MaxAngularVelocity = 5;

controller.LookaheadDistance = 0.3;

radiusTarget = 0.1;

jarakKeTarget = norm(startLocation - endLocation);

while( jarakKeTarget > radiusTarget )

[v, omega] = step(controller, robot.CurrentPose);

drive(robot, v, omega)

lxvi

(67)

Program Running program titikSekarang = robot.CurrentPose(1:2);

jarakKeTarget = norm(titikSekarang - endLocation);

end

%file Path = fullfile (file

parts(which('PathPlanningExample')),'data','exampleMa ps.mat');

%load(file Path) load exampleMaps.mat

image=imread('revisike2.png');

abu=rgb2gray(image);

bwimage = abu< 0.5;

mapbaru = robotics.BinaryOccupancyGrid(bwimage);

show(mapbaru);

robotRadius = 0.5;

mapInflated = copy(mapbaru);

%inflate(mapInflated,robotRadius)

%% Construct PRM and Set Parameters prm = robotics.PRM;

prm.Map = mapInflated;

prm.NumNodes = 50;

prm.ConnectionDistance = 5;

% Define start and end locations on the map for the path planner to use.

startLocation = [25 20];

endLocation = [115 115];

path = findpath(prm, startLocation, endLocation);

while isempty(path)

% No feasible path found yet, increase the number of nodes

prm.NumNodes = prm.NumNodes + 10;

lxvii

Gambar

Gambar 1.1. Robot lengan
Gambar 1.3. Lokasi robot
Gambar 1.2. Mobile robot
Gambar 1.4. Setting setpath
+7

Referensi

Garis besar

Dokumen terkait