abrari , 10:03:20, 09/12/2015
ANALISIS GERAKAN ROBOT BERKAKI ENAM MENGGUNAKAN 3 SERVO DAN SENSOR JARAK
DODY PRASETYA
ini tidak center di cover, center terhadap halaman, bukan terhadap margin
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR 2015
PERNYATAAN MENGENAI SKRIPSI DAN SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA Dengan ini saya menyatakan bahwa skripsi berjudul Analisis Gerakan Robot Berkaki Enam Menggunakan 3 Servo dan Sensor Jarak adalah benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apapun kepada perguruan tinggi manapun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustakan di bagian akhir skripsi ini. Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut Pertanian Bogor. Bogor, September 2015 Dody Prasetya NIM G64124034
ABSTRAK DODY PRASETYA. Analisis Gerakan Robot Berkaki Enam Menggunakan 3 Servo dan Sensor Jarak. Dibimbing oleh Karlisa Priandana. Pada umumnya, hexapod menggunakan 18 servo. Namun, penggunaan servo yang terlalu banyak mengakibatkan konsumsi daya yang terlalu besar, biaya yang mahal, algoritme pergerakan kaki yang kompleks, dan pergerakan kaki yang lambat. Penelitian ini bertujuan mengembangkan hexapod dengan 3 servo, yang diletakkan di bagian tengah dan belakang robot. Peletakan servo di bagian tengah digunakan untuk mengangkat kaki depan dan belakang pada sisi yang sama, sedangkan peletakan dua buah servo pada bagian belakang robot digunakan untuk menggerakkan kaki depan dan belakang yang sudah saling terhubung. Algoritme pergerakan kaki yang digunakan adalah algoritme Alternating Tripod Gait yang membagi gerakan kaki menjadi 2 set gerakan seperti tripod. Tiap set gerakan terdiri atas 3 kaki, yaitu kaki depan dan belakang pada sisi yang sama, serta kaki tengah pada sisi yang berbeda. Masing-masing set bergerak secara bergantian. Hasil penelitian ini menunjukkan bahwa 3 servo dapat diimplementasikan pada robot hexapod dengan menggunakan algoritme pergerakan Alternating Tripod Gait. Hasil eksperimen menunjukkan bahwa hexapod dengan 3 servo yang telah dibuat dapat berjalan dengan kecepatan 0.047 m/s, lebih cepat 0.017 m/s daripada hexapod dengan 18 servo. Selain itu, bobot hexapod dengan 3 servo adalah 210 gram, jauh lebih ringan dibandingkan dengan hexapod 18 servo yang berbobot lebih dari 3 kg. Kata kunci: alternating tripod gait, hexapod, robot, servo.
ABSTRACT DODY PRASETYA. Six-Legged Robot Movement Analysis Using 3 Servos and Proximity Sensor. Supervised by Karlisa Priandana. In general, hexapod utilizes 18 servos. However, the use of excessive servos may cause high power consumption, high cost, complex algorithms for leg coordination, and slow robot movement. This research aims to develop a hexapod with 3 servos which are placed at the middle and rear section of the robot. One servo at the middle is used to lift the front and rear legs on the same side, while the two servos at the rear of the robot are utilized to drive the front and rear legs that are already interconnected. Alternating Tripod Gait algorithm, which divides the robot’s leg movement into 2 sets of tripod-like movements, is adopted for leg coordination. A set of movements is composed of three legs, namely the front and back legs on the same side, as well as the middle leg on different sides. Each set moves in turn. Experiment results indicated that the three servos can be implemented on a hexapod robot by using Alternating Tripod Gait algorithm. The 3-servos hexapod can walk at a speed of 0.047 m/s, 0.017 m/s faster than the 18servos hexapod. Further more, the weight of the 3-servos hexapod is only 210 grams, much lighter than the 18-servos hexapod that weighs more than 3 kg. Keywords: alternating tripod gait, hexapod, robot, servo.
ANALISIS GERAKAN ROBOT BERKAKI ENAM MENGGUNAKAN 3 SERVO DAN SENSOR JARAK buat center
DODY PRASETYA
Skripsi sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR 2015
Penguji: 1 Dr Ir Sri Wahjuni, MT 2 Dr Heru Sukoco, S.Si, MT
Judul Skripsi : Analisis Gerakan Robot Berkaki Enam Menggunakan 3 Servo dan Sensor Jarak Nama : Dody Prasetya NIM : G64124034
Disetujui oleh
Karlisa Priandana, ST MEng Pembimbing
Diketahui oleh
Dr Ir Agus Buono, MSi MKom Ketua Departemen
Tanggal Lulus:
SETELAH LEMBAR PENGESAHAN, HALAMAN KOSONG
PRAKATA Puji dan syukur penulis panjatkan ke hadirat Allah subhanahu wa ta’ala atas segala rahmat dan nikmat-Nya sehingga karya ilmiah ini berhasil diselesaikan. Tema yang dipilih dalam penelitian yang dilaksanakan sejak bulan April 2014 ini yakni robot berkaki enam, dengan judul Analisis Gerakan Robot Berkaki Enam Menggunakan 3 Servo dan Sensor Jarak. Terima kasih penulis ucapkan kepada Ibu Karlisa Priandana, selaku pembimbing dari Departemen Ilmu Komputer IPB yang memberikan bantuan, dan juga kepada Ibu Sri Wahjuni serta Bapak Heru Sukoco yang telah memberikan saran. Ucapan terima kasih juga kepada Bapak saya, Endan Ruyana, dan Ibu saya, Yanti Mardyanti yang selalu mendoakan dan mendukung baik moral dan material, untuk istri saya Nani Perawati dan anak saya Kainuna Prasetya yang selalu menyemangati dan mendukung, untuk teman-teman Pipit, Beben, Fithranto, Didi, Asep dan Puguh yang membantu dan menyemangati, serta teman-teman Ilmu Komputer Alih Jenis angkatan 7. Semoga karya ilmiah ini bermanfaat.
Bogor, September 2015 Dody Prasetya
SETELAH PRAKATA, HALAMAN KOSONG
iii
DAFTAR ISI DAFTAR ISI
iii
DAFTAR TABEL
iii
DAFTAR GAMBAR
iv
DAFTAR LAMPIRAN
iv
PENDAHULUAN
1
Latar Belakang
1
Perumusan Masalah
2
Tujuan Penelitian
2
Manfaat Penelitian
2
Ruang Lingkup Penelitian
2
METODE PENELITIAN
3
Analisis Kebutuhan dan Perancangan
3
Persiapan Alat dan Bahan
3
Implementasi
6
Pengujian
7
Evaluasi
7
HASIL DAN PEMBAHASAN
7
Analisis Kebutuhan dan Perancangan
7
Persiapan Alat dan Bahan
8
Implementasi
9
Pengujian
14
Evaluasi
17
SIMPULAN DAN SARAN
18
DAFTAR PUSTAKA
18
halaman baru
DAFTAR TABEL 1 2 3 4 5 6 7
Alat dan Bahan yang diperlukan Pengukuran jarak antara sensor dengan penghalang Perbandingan hasil kalibrasi dengan datasheet Pengujian fungsi sensor Waktu gerak robot hexapod dengan 3 servo Waktu gerak robot hexapod dengan 18 Servo (Wulandari 2013) Perbandingan antara hexapod 3 servo dengan hexapod 18 servo
8 11 12 15 17 17 17
iv
DAFTAR GAMBAR 1 Alur metode penelitian
3
2 Mikrokontroler ATMega328P-PU (Datasheet)
4
3 Motor servo SG90
4
4 Prinsip kerja sensor ultrasonik
5
5 Sensor jarak ultrasonik HC-SR04
6
6 Lebar pulsa servo SG90
6
7 Lebar pulsa untuk posisi 0o
6
8 Diagram perangkat keras robot
7
9 Peletakan servo tampak atas
8
10 Rangka robot versi 1
9
11 Rangka robot versi 2 12 Rangkaian minimum circuit 13 Metode kalibrasi sensor ultrasonik
spacing antar-baris samakan dengan daftar tabel
10 10 11
14 Grafik dan persamaan regresi linier
12
15 Robot hexapod
13
16 Alur gerak robot hexapod
13
17 Pergerakan kaki pada set 1
14
18 Pergerakan kaki pada set 2
14
19 Potongan program sensor ultrasonik
15
20 Potongan program gerak robot
16
DAFTAR LAMPIRAN 1 Program Hexapod dengan menggunakan Mikrokontroler
20
2 Foto Implementasi
22
3 Contoh Perhitungan PWM
23
4 Desain kerangka robot
23
FATAL ERROR: lampiran tidak ada yang disebut di tulisan!!! pilihan: - hapus semua lampiran - setiap lampiran harus disebut di tulisan
1
PENDAHULUAN Latar Belakang Robot merupakan alat mekanik yang mampu bergerak pada suatu lingkungan dengan tingkat kemampuan tertentu (Carelli dan Freire 2003). Robot terbagi menjadi 2 jenis yaitu wheeled robot (robot beroda) dan legged robot (robot berkaki). Robot berkaki memiliki jumlah kaki yang bervariasi dari berkaki 2 (humanoid), berkaki 4 (Quadpod), dan berkaki 6 (Hexapod). Kaki hexapod digerakkan menggunakan servo. Jumlah servo yang digunakan berbeda-beda mulai dari 3 servo hingga 18 servo. Perbedaan jumlah servo tentunya membedakan pula algoritme pergerakan kaki, peletakan servo, serta desain kerangka hexapod. Desain kerangka hexapod terdiri atas tubuh yang kaku dengan enam kaki yang sesuai, masing-masing kaki memiliki pergerakan yang bebas (Saranli et al 2001). Selain dari desain kerangka robot yang berbeda, algoritme pergerakan kaki bervariasi. Hal ini disebabkan karena kontrol algoritme berjalan biasanya tidak terpusat, yang berarti bahwa pergerakan setiap kaki relatif bebas (Thirion dan Thiry 2002). Penelitian terdahulu yang terkait dengan pergerakan kaki robot ialah Implementasi Inverse Kinematics untuk Koordinasi Gerak Robot Berkaki Enam, dengan menggunakan 18 servo (Wulandari 2013). Penelitian tersebut berhasil mengimplementasikan algoritme Inverse Kinematics untuk menggerakkan kaki robot dan koordinasi kaki dengan baik. Namun, pergerakan robot masih kurang cepat dan penggunaan 18 servo menghabiskan daya yang cukup besar. Jumlah servo yang minimum diharapkan dapat menghemat daya dan mempercepat pergerakan kaki. Selain cara bergerak robot yang bervariasi, robot juga membutuhkan masukan sebagai pengendali robot. Robot dapat dikendalikan secara manual atau secara otomatis. Robot yang dikendalikan secara manual dapat menggunakan remote control, stick game, atau terhubung langsung dengan perangkat komputer. Sedangkan robot yang dikendalikan secara otomatis dapat menggunakan sensor sebagai masukan untuk robot. Robot yang dikendalikan secara otomatis harus mempunyai sensor yang baik dan juga pemasangan sensor yang tepat. Sensor pada robot digunakan sebagai navigasi. Navigasi pada robot merupakan masalah untuk memerintahkan robot berinteraksi dengan lingkungannya. Deteksi batas-batas pada ruang dan estimasi posisi merupakan dua peranan penting dan mendasar dari navigasi. Deteksi batas diperlukan agar robot tidak bertabrakan dengan objek lain, sementara estimasi posisi diperlukan agar robot dapat menempatkan posisi sesuai dengan lingkungannya (Crowley 1989). Sensor jarak pada robot berfungsi untuk medeteksi batas dan mengetahui letak dari sebuah objek yang berada di sekitarnya. Sensor jarak umumnya menggunakan sensor infrared dan sensor ultrasonik. Sensor infrared memanfaatkan cahaya infrared sebagai pendeteksi jaraknya, sementara sensor ultrasonik memanfaatkan gelombang ultrasonik sebagai pendeteksi jaraknya. Pengukuran kesalahan sensor ultrasonik bergantung pada beberapa faktor. Faktor yang mendasar adalah kondisi lingkungan propagasi gelombang ultrasonik berada seperti suhu, kelembaban, dan pergerakan udara. Kondisi fungsional yang dapat menyebabkan gangguan adalah adanya pemancar gelombang aktif pada frekuensi
2
yang sama, pantulan dari objek lain misalnya fenomena multi-echo dari objek tertentu (Majchrzak et al 2009).
Perumusan Masalah Berdasarkan latar belakang yang telah dipaparkan, masalah yang timbul adalah: Cara mengurangi jumlah servo menjadi seminimum mungkin. Cara meletakkan servo, membuat dan merakit hexapod yang dapat maju dan belok. Algoritme gerakan kaki.
Tujuan Penelitian Tujuan utama dari penelitian ini adalah mengurangi jumlah servo dari yang umum digunakan yaitu 18 servo menjadi 3 servo. Untuk mencapai tujuan tersebut, beberapa hal yang dilakukan meliputi: Membuat dan merakit kerangka hexapod yang terdiri atas badan robot dan kaki robot. Mengimplementasikan 3 servo untuk menggerakkan kaki robot. Mengimplementasikan sensor ultrasonik sebagai sensor jarak ke hexapod. Mengevaluasi keberhasilan pergerakan robot hexapod menggunakan 3 servo.
Manfaat Penelitian Mempercepat dan mengefisienkan gerakan robot hexapod dengan meminimalkan jumlah servo yang digunakan.
Ruang Lingkup Penelitian
Ruang lingkup pada penelitian ini antara lain: Tiga servo akan diimplementasikan pada robot berkaki enam berukuran 13.5 × 14 × 8.5 cm. Pergerakan robot yang diujikan dalam penelitian ini hanya sebatas gerak maju dan belok kanan yang sudah ditentukan sebelumnya dalam program. Sistem navigasi yang dikembangkan pada penelitian ini dibatasi hanya untuk mendeteksi penghalang. Material penghalang yang diujikan hanya sebatas material dengan bidang datar.
3
METODE PENELITIAN Metode yang digunakan pada penelitian ini terdiri atas analisis kebutuhan dan perancangan, persiapan alat dan bahan, implementasi, pegujian, dan evaluasi. Alur tahapan penelitian dapat dilihat pada Gambar 1.
Gambar 1 Alur metode penelitian
Analisis Kebutuhan dan Perancangan Pada tahap ini dilakukan analisis kebutuhan dalam merakit hexapod. Beberapa perangkat yang dibutuhkan untuk yaitu kerangka robot, sensor, mikrokontroler, servo, serta komponen-komponen tambahan lainnya.
Persiapan Alat dan Bahan Komponen-komponen dan alat-alat yang digunakan adalah motor servo, Mikrokontroler ATMega328, sensor ultrasonik, rangka yang terbuat dari akrilik. Mikrokontroler ATMega328 Mikrokontroler ATMEga328 bekerja dengan mengeksekusi perintahperintah dalam suatu program. Program dapat dimasukkan ke dalam mikrokontroler menggunakan komputer. Mikrokontroler ATMega328 memiliki 14 buah pin yang dapat difungsikan sebagai input/output digital. Input dari Arduino Uno dapat dihubungkan dengan sensor, sementara output-nya dapat dihubungkan dengan motor servo. Mikrokontroler ATMega328 dapat berfungsi pada tegangan 5V yang dapat berasal dari tegangan catu daya seperti baterai. Skema mikrokontroler ATMega328 dapat dilihat pada Gambar 2, dengan spesifikasi sebagai berikut: (Duffee 2011) Catu Daya 5 Volt Tegangan input DC 6-20 volt Arus DC setiap pin I/O 40 ma RAM 2 KB Flash Memory 32 KB EEPROM 1 KB Clock speed 16 MHz
4
Bahasa pemrograman C C++ (Dufee 2011)
Gambar 2 Mikrokontroler ATMega328P-PU (Datasheet) Motor Servo SG90 Motor Servo merupakan motor yang mampu bekerja dua arah (clockwise dan counter clockwise) yang arah dan sudut pergerakan rotornya dapat dikendalikan hanya dengan memberikan pengaturan duty cycle sinyal PWM pada bagian pin kontrolnya. Motor Servo tipe SG90 dapat dilihat pada Gambar 3, dengan spesifikasi sebagai berikut: Ukuran 23 × 12.2 × 29 mm Berat 5 g Torsi 1.8kg/cm(4.8V) Kecepatan putaran 0.1 detik/60o (4.8V) Tegangan DC 4.8V
Gambar 3 Motor servo SG90 Sensor Ultrasonik Sensor ultrasonik adalah alat yang terdiri atas unit pemancar dan unit penerima yang prinsip kerjanya merupakan pantulan gelombang. Unit pemancar memancarkan gelombang ultrasonik melalui media udara/gas, jika gelombang tersebut mengenai suatu objek maka gelombang dipantulkan kembali dan diterima oleh unit penerima pada sensor, sehingga menghasilkan tegangan bolak-balik dengan frekuensi yang sama (Taufiqurrahman et al 2013). Prinsip kerja sensor ultrasonik dapat dilihat pada Gambar 4. et al itu HARUS diakhiri titik perbaiki semuanya!
5
Gambar 4 Prinsip kerja sensor ultrasonik Dari Gambar 4, jarak antara sensor dan penghalang dapat diturunkan menjadi persamaan berikut: 𝒙=
𝒗𝒕
(1)
𝟐
keterangan: 𝑥 = Jarak (m) 𝑣 = Cepat rambat gelombang di udara 340 m/s pada suhu 25 oC 330 m/s pada suhu 0 oC 𝑡 = Waktu (s) Berdasarkan datasheet HC-SR04 (ITead Studio, 2010) jarak dapat dicari dengan menggunakan persamaan berikut: kenapa pake koma???
𝑦
𝑥 = 58
(2)
keterangan: 𝑥 = Jarak (cm) 𝑦 = Pulsetime, waktu yang dibutuhkan echo untuk menerima gelombang dari trigger (μs) Persamaan (2) dapat diturunkan dari Persamaan (1), dengan langkah sebagai berikut: 𝑣𝑡 𝑥 (𝑚) = 2 𝑥 (𝑐𝑚) = 340 × 𝑡 (𝑠) 2 𝑥 (𝑐𝑚) = 17 𝑐𝑚/𝑐𝑚 × 𝑡 (𝑚𝑠) 17
𝑥 (𝑐𝑚) = (1000) × 𝑡 (𝜇𝑠) 𝑥 (𝑐𝑚) =
𝑡 (𝜇𝑠) 58.8
6
Sensor ultrasonik yang digunakan adalah sensor ultrasonik dengan tipe HCSR04 (Gambar 5). Sensor HC-SR04 memiliki 4 pin yang terdiri atas catu daya, trigger, echo dan ground.
kalau lebih dari dua, sebelum dan harus ada koma cek lagi semuanya
Gambar 5 Sensor jarak ultrasonik HC-SR04 Implementasi Pada tahap ini, fungsi robot hexapod yang telah dirancang diimplementasikan dengan alat-alat yang sudah dipersiapkan beserta algoritme. Algoritme yang digunakan adalah algoritme Alternating Tripod Gait yaitu pergerakan kaki dibagi atas 2 set. Satu set terdiri atas 3 kaki, 1 kaki depan dan 1 kaki belakang pada sisi yang sama, semetara 1 kaki tengah pada sisi yang berbeda. Masing-masing set bergerak secara bergantian (Porta JM dan Celaya E 1998). judul sub-subbab kok tidak konsisten, ada yang Title Case, ada yang Sentence case yang benar Sentence case
Pengaturan gerakan servo Untuk dapat mengendalikan motor servo, Pulse Width Modulation (PWM) digunakan dengan memanipulasi lebar sinyal yang dinyatakan dengan pulsa dalam suatu periode untuk mendapatkan tegangan rata-rata yang berbeda. Pada motor servo SG90, lebar pulsa setiap periode adalah 20 ms dengan frekuensi 50 Hz (Gambar 6). Untuk mengatur posisi servo ke sudut 0o servo diberikan lebar pulsa sebesar 1.5 ms (Gambar 7), untuk sudut 90o searah jarum jam diberikan lebar pulsa 2ms, sedangkan posisi 90o berlawanan arah jarum jam diberikan lebar pulsa 1ms.
ganti semuanya, konsistenkan
Gambar 6 Lebar pulsa servo SG90 (Micropik 2001)
Gambar 7 Lebar pulsa untuk posisi 0o
7
Pengunggahan program ke mikrokontroler Pengunggahan program ke mikrokontroler dapat dilakukan dengan menggunakan berbagai jenis In-System Programming (ISP), USBasp Programmer atau menggunakan Arduino Uno yang sudah memiliki ISP sendiri. Pada penelitian ini, pengunggahan program dilakukan dengan menggunakan Arduino Uno karena Arduino Uno sudah memiliki perangkat lunak berupa Integrated Development Environment (IDE) dan kabel penghubung ke komputer sehingga mudah digunakan. Pengujian Pada tahapan ini, pengujian dilakukan terhadap alat yang telah diimplementasikan pada robot. Pengujian tahap pertama adalah menguji fungsi sensor jarak, apakah pembacaan sensor jarak dapat memicu robot untuk berbelok atau tidak. Pengujian tahap dua adalah pengujian robot secara keseluruhan, apakah robot dapat bergerak dengan baik atau tidak.
Evaluasi numbering tidak boleh pake titik
Tahapan evaluasi adalah sebagai berikut: 1. Evaluasi terhadap fungsi sensor. Jika sensor dapat mendeteksi adanya penghalang maka sensor dianggap sudah berfungsi dengan baik. Namun, jika tidak dapat mendeteksi halangan harus dilakukan perbaikan terhadap sensor tersebut. 2. Evaluasi terhadap algoritme pergerakan kaki. Jika algoritme pergerakan kaki maju dan berbelok arah ketika ada penghalang sudah sesuai, maka algoritme dianggap sudah baik. Namun, jika tidak sesuai harus dilakukan perbaikan terhadap algoritme tersebut.
HASIL DAN PEMBAHASAN Analisis Kebutuhan dan Perancangan Robot yang dibutuhkan memiliki kemampuan berjalan lurus dan berbelok arah, serta mendeteksi adanya penghalang. Rancangan purwarupa dari robot hexapod dapat dilihat pada Gambar 8.
Gambar 8 Diagram perangkat keras robot
8
Sensor yang dibutuhkan pada penelitian ini adalah sensor yang dapat mendeteksi halangan seperti benda padat, plastik, atau kaca. Sensor jarak ultrasonik digunakan pada penelitian ini karena dapat mendeteksi halangan yang tembus cahaya, berbeda dengan sensor infrared yang tidak dapat mendeteksi halangan tersebut. Sensor ultrasonik akan menjadi masukan ke mikrokotroler. Kemudian mikrokontroler mengolah masukan tersebut dan memberikan sinyal ke servo. Servo akan bergerak sesuai dengan masukan tersebut. Servo yang digunakan pada penelitian ini adalah servo yang berukuran kecil karena menyesuaikan kerangka robot yang berukuran kecil. Peletakkan Servo Kaki depan dan belakang diberi penghubung pada sisi kiri maupun sisi kanan. Satu buah servo digunakan untuk menggerakkan masing-masing sisi, sehingga total servo untuk menggerakkan kaki depan dan belakang adalah 2 servo. Lalu, 1 buah servo digunakan untuk menggerakkan kaki tengah. Peletakan servo dapat dilihat pada Gambar 9.
Gambar 9 Peletakan servo tampak atas Satu servo yang diletakkan di tengah badan robot berfungsi untuk mengangkat 3 kaki robot yaitu dua kaki pada sisi yang sama (depan dan belakang) dan satu kaki tengah pada sisi yang berbeda. Sementara itu, dua servo diletakkan di belakang robot untuk menggerakan kaki depan dan belakang robot yang sudah terangkat (Porta JM dan Celaya E 1998). Persiapan Alat dan Bahan Bahan yang digunakan pada penelitian ini ditunjukkan pada Tabel 1: header tabel tidak bold
Tabel 1 Alat dan Bahan yang diperlukan Alat Bahan 3D Printer Plastik ABS Solder Akrilik Timah Solder Servo SG90 Pemotong Akrilik Sensor Ultrasonik Multimeter IC ATMEGA328P-PU Bor Crystal 16 Mhz Resistor 10 KΩ Kapasitor 22 pF Printed Circuit Board
9
Perangkat lunak yang digunakan pada penelitian ini adalah Arduino versi 1.0.5-r2 dengan menggunakan bahasa C. Implementasi Pembuatan Rangka Robot Rangka robot versi pertama terbuat dari bahan plastik ABS yang dibuat menggunakan 3D Printer dengan dimensi 11 × 9 × 6 cm. Rangka robot terdiri atas badan robot, kaki yang berjumlah enam, penghubung antara kaki kiri depan dan belakang, serta dudukan servo untuk kaki tengah. Bagian-bagian rangka robot versi 1 dapat dilihat pada Gambar 10. Gambar 10(a) merupakan kaki depan dan belakang robot yang dapat bergerak maju setelah terangkat oleh kaki tengah robot (Gambar 10(b)). Gambar 10 (c) merupakan penghubung kaki depan dan belakang robot. Sedangkan Gambar 10 (d) merupakan badan robot tempat meletakkan servo, sensor, minimum circuit dan baterai. Kekurangan rangka robot versi 1 adalah bahan yang terlalu rapuh dan kaki robot yang terlalu pendek. Oleh karena itu, dibuatlah rangka robot versi 2 (Gambar 11) yang berukuran 13.5 × 14 × 8.5 cm.
a. Kaki robot depan dan belakang
b. Kaki Tengah
c. Penghubung Kaki Depan dan Belakang
d. Badan Robot
Gambar 10 Rangka robot versi 1 Gambar 11 merupakan rangka robot yang terbuat dari bahan akrilik. Gambar 11(a) adalah kaki depan dan belakang robot yang lebih panjang 1.7 cm dibandingkan dengan kaki robot versi 1, begitupun dengan kaki tengah robot lebih panjang dari versi 1 (Gambar 11(b)). Kaki-kaki robot pada rangka ini sudah diberi bahan karet yang diletakkan di bawah kaki robot. Karet tersebut berfungsi untuk menambah gesekan sehingga robot tidak tergelincir ketika bergerak di atas bahan kaca, keramik atau bahan-bahan lain yang licin. Gambar 11(c) merupakan
10
penghubung kaki depan dan belakang robot, sedangkan Gambar 11(d) merupakan badan robot tempat meletakkan servo, sensor, minimum circuit dan baterai.
a. Kaki robot depan dan belakang
b. Kaki Tengah
c. Penghubung Kaki Depan dan Belakang
d. Badan Robot
Gambar 11 Rangka robot versi 2 Pembuatan Minimum Circuit Minimum circuit digunakan untuk mengurangi penggunaan komponen pada mikrokontroler. Rangkaian minimum circuit dibuat sesuai referensi dari embecosm.com seperti yang dapat dilihat pada Gambar 12.
Gambar 12 Rangkaian minimum circuit Kalibrasi sensor ultrasonik Kalibrasi dilakukan secara manual dengan mencatat waktu yang dibutuhkan sensor ultrasonik untuk menerima pantulan suara pada jarak 1 cm sampai dengan 10 cm, dengan menggeserkan penghalang secara bertahap setiap 1 cm. Seperti yang dapat dilihat pada Gambar 13.
11
Gambar 13 Metode kalibrasi sensor ultrasonik Hasil pengukuran waktu dan jarak dapat dilihat pada Tabel 2. Dari hasil pengukuran ini, dapat diturunkan suatu formula untuk memperoleh hubungan antara jarak dan return time, menggunakan regresi linier (Gambar 14): 𝑥=
𝑦−0.018 50.965
(3)
keterangan: 𝑦 = return time yang terbaca dari sensor ultrasonik (µs) 𝑥 = jarak yang terukur Persamaan (3) digunakan untuk menghitung jarak dari waktu yang terukur. Hasil pembacaan sensor dengan Persamaan (3) kemudian dibandingkan dengan Persamaan dari datasheet HC-SR04 (ITead Studio 2010) yang telah ditunjukkan pada Persamaan (2). Tabel 2 Pengukuran jarak antara sensor dengan penghalang Return time (ms) Jarak (cm) 2 3 1 89 90 1 87 101 105 2 100 149 155 3 140 182 183 4 176 232 235 5 228 300 305 6 298 344 347 7 343 409 414 8 407 468 473 9 466 530 531 10 525
12
Gambar 14 Grafik dan persamaan regresi linier Perbandingan hasil pengukuran jarak Persamaan (3) hasil kalibrasi dengan Persamaan (2) dari datasheet dapat dilihat pada Tabel 3. Tabel 3 Perbandingan hasil kalibrasi dengan datasheet Pengukuran jarak dengan sensor ultrasonik (cm) Jarak Sebenarnya (cm) Kalibrasi |∆1|* datasheet |∆2|* 1 2 3 4 5 6 7 8 9 10 Rata-rata Minimum Maximum
1.74 2.00 2.90 3.54 4.55 5.91 6.76 8.04 9.20 10.37
0.74 0.00 0.10 0.46 0.45 0.09 0.24 0.04 0.20 0.37 0.27 0.00 0.74
1.53 1.76 2.55 3.11 3.99 5.19 5.94 7.07 8.09 9.11
0.53 0.24 0.45 0.89 1.01 0.81 1.06 0.93 0.91 0.89 0.77 0.24 1.06
*Keterangan: |∆1| adalah selisih antara jarak hasil kalibrasi (Persamaan (3)) dengan jarak sebenarnya. |∆2| adalah selisih antara jarak hasil perhitungan datasheet (Persamaan (2)) dengan jarak sebenarnya.
Berdasarkan hasil perbandingan tersebut, dapat disimpulkan bahwa pengukuran jarak dengan Persamaan (3) lebih baik daripada pengukuran jarak dengan Persamaan (2). Oleh karena itu, Persamaan (3) digunakan dalam program pembacaan sensor. Pembuatan robot hexapod dengan 3 servo Peletakkan servo, minimum sirkuit dan sensor ultrasonik di badan robot dapat dilihat pada Gambar 15. Dua servo diletakkan di belakang robot dengan posisi menghadap ke atas untuk menggerakkan kaki sisi kanan dan kaki sisi kiri. Servo
tabel tidak perlu ada yang bold
13
yang diletakkan di depan robot dengan posisi menghadap ke belakang untuk menggerakkan kaki tengah.
Gambar 15 Robot hexapod Alur Gerak Robot Robot hexapod yang dikembangkan pada penelitian ini menggunakan sensor jarak ultrasonik yang diletakkan di bagian depan robot. Gambar 16 memperlihatkan alur kerja robot hexapod. Pada tahap awal robot berjalan dan menjalankan sensor ultrasonik, jika sensor mendeteksi adanya penghalang maka robot belok arah. Setelah belok, sensor tetap melakukan deteksi penghalang. Mulai
Jalan lurus Tidak
Ada Penghalang? Ya Belok ke kanan Ke kanan
Gambar 16 Alur gerak robot hexapod Pengembangan Algoritme Gerakan Kaki Pergerakan kaki robot menggunakan algoritme Alternating Tripod Gait yaitu pergerakan kaki dibagi atas 2 set. Satu set terdiri atas tiga kaki yaitu kaki depan dan
14
kaki belakang pada sisi yang sama, sedangkan kaki tengah pada sisi yang berbeda. Masing-masing set bergerak secara bergantian. Ilustrasi cara berjalan dengan menggunakan algoritme Alternating Tripod Gait dapat dilihat pada Gambar 17.
Gambar 17 Pergerakan kaki pada set 1 Gambar 17(a) menujukkan bahwa kaki yang terangkat dan bergerak maju sebesar 22.5o adalah set 1, sedangkan kaki yang menapak adalah set 2. Setelah set 1 bergerak maju sebesar 22.5o (Gambar 17(b)). Maka set 1 akan manapak, lalu bergerak kembali pada posisi kaki lurus (Gambar 18(a)). Bersamaan dengan bergeraknya set 1 pada posisi lurus, set 2 mengangkat dan bergerak maju sebesar 22.5o (Gambar 18(b)).
Gambar 18 Pergerakan kaki pada set 2
Pengujian Pengujian terhadap fungsi Sensor Sensor ultrasonik diuji dengan menggunakan program seperti pada Gambar 19. Pada baris program ke 32 trigger diatur low terlebih dahulu selama 2μs. Kemudian pada baris program ke 34 trigger diatur high selama 10μs yang berfungsi untuk mengirimkan gelombang ultrasonik. Setelah trigger mengirim gelombang, trigger diatur low kembali (baris program ke 36) agar gelombang berhenti dipancarkan dan echo dapat difungsikan menerima gelombang dari trigger (baris
15
program ke 38). Waktu yang dibutuhkan echo menerima gelombang dari trigger (pulsetime) ditampung oleh variable duration. Kemudian duration nilainya diubah dari microseconds ke centimeters, dengan menggunakan fungsi msTocm (baris program ke 39). Fungsi msTocm yang dipanggil menggunakan rumus kalibrasi sensor ultrasonik (baris program ke 49). Setelah mendapatkan jarak dalam cm, maka gerak robot ditentukan oleh baris program ke 42 sampai 44. Jika jarak antara sensor dengan penghalang lebih kecil dari sama dengan 5 cm, maka fungsi akan memanggil fungsi belok (Gambar 20(a)). Namun, jika jarak antara sensor dengan penghalang lebih besar dari 5cm fungsi akan selalu memanggil fungsi maju (Gambar 20(b)). Hasil pengujian fungsi dapat dilihat pada Tabel 4.
Gambar 19 Potongan program sensor ultrasonik Tabel 4 Pengujian fungsi sensor Jarak(cm) Fungsi yang dipanggil 1 Belok Kanan 2 Belok Kanan 3 Belok Kanan 4 Belok Kanan 5 Belok Kanan >5 Maju Dengan demikian, sensor jarak telah dapat mendeteksi halangan dengan baik dan mampu memerintahkan robot untuk berbelok. Pengujian robot secara keseluruhan Pengujian algoritme gerakan kaki dilakukan dengan melihat gerakan servo untuk menggerakkan kaki tengah, kaki kiri depan dan belakang, serta kaki kanan
16
depan dan belakang. Kaki depan dan belakang robot bergerak sebesar 22.5o, sedangkan kaki tengah bergerak sebesar 11.25o. Pergerakan kaki depan dan belakang sebesar 22.5o yaitu karena mempertimbangkan keseimbangan robot serta penghubung kaki depan dan belakang robot yang tidak dapat bergerak secara maksimal jika diberi sudut pergerakan sebesar 45o. Hal ini disebabkan oleh penghubung kaki yang terganjal oleh dudukan servo tengah. Sementara itu, pergerakan kaki tengah sebesar 11.5o yaitu karena kaki tengah hanya untuk mengangkat kaki depan dan belakang robot saja. Pergerakan kaki dengan sudutsudut tersebut dapat diatur pada program. Potongan program gerak robot berjalan dapat dilihat pada Gambar 20(a). Pada baris program ke 58, servo kanan diberi PWM sebesar 1750 μs yaitu bergerak maju sebesar 22.5o. Kemudian pada baris ke 60, servo tengah diberi PWM sebesar 1625 μs yaitu bergerak sebesar 11.25o yang berfungsi untuk mengangkat kaki robot bagian kiri yang akan maju. Sebelum kaki kiri bergerak maju, kaki kanan digerakkan mundur ke posisi 0o terlebih dahulu (baris program ke 62). Setelah kaki kanan kembali ke posisi 0o, kaki kiri maju sebesar 22.5o.
a. Potongan program untuk fungsi belok
b. Potongan program untuk fungsi maju Gambar 20 Potongan program gerak robot Gambar 20(b) merupakan potongan program gerak robot belok. Pada potongan program ke 83, servo kanan diberi PWM sebesar 1250 μs yaitu bergerak
17
sebesar -22.5o. Pergerakan tersebut berbeda dengan gerak robot maju yaitu servo kanan yang ditur maju sebesar 22.5o (baris program ke 58). Satu langkah gerak robot belok diulang sebanyak 4 kali agar robot dapat berbelok sebesar 90o. Penggunaan 3 servo untuk menggerakkan kaki robot berkaki enam dengan menerapkan algoritme Alternating Tripod Gait diimplementasikan pada Hexapod. Waktu yang dibutuhkan untuk pergerakan robot dapat dilihat pada Tabel 5. Tabel 5 Waktu gerak robot hexapod dengan 3 servo Jenis Sudut Putar Jarak Waktu Kecepatan Gerakan (o) (mm) (s) (m/s) Maju 0 300 6.32 0.047 Belok Kanan 90 0 3.43 Waktu yang dibutuhkan untuk pergerakan robot pada penelitian sebelumnya yaitu dengan menggunakan 18 servo dapat dilihat pada Tabel 6. Tabel 6 Waktu gerak robot hexapod dengan 18 Servo (Wulandari 2013) Jenis Sudut Putar Jarak Waktu Kecepatan Gerakan (o) (mm) (s) (m/s) Maju 0 130 4.29 0.030 Belok Kanan 45 0 5.42 Hasil perbandingan menunjukan robot yang dikembangkan dengan 3 servo lebih cepat dibandingkan dengan penelitian sebelumnya yaitu menggunakan 18 servo, selisih kecepatannya yaitu 0.017 m/s. Selain itu, pergerakan belok kanan lebih cepat dengan selisih waktu 7.41 detik. Perbandingan robot dengan 3 servo dan robot dengan 18 servo dapat dilihat pada Tabel 7 Tabel 7 Perbandingan antara hexapod 3 servo dengan hexapod 18 servo Hexapod 18 Servo Perbandingan Hexapod 3 Servo (Wulandari, 2013) Bobot 210 >3 kg Dimensi 13.5 × 14 × 8.5 cm 40 × 30 × 27 cm Kecepatan 0.047 m/s 0.030 m/s
Evaluasi Penggunaan 3 servo dapat meningkatkan kecepatan gerak robot, mengurangi biaya pembuatan, serta mengurangi bobot dan dimensi robot. Namun, pergerakan robot menjadi kurang fleksibel karena sudut pergerakan sudah ditentukan. Selain itu, halangan yang dapat dideteksi harus berada tepat di depan robot atau pada sisi sudut tertentu. Hal ini disebabkan oleh penggunaan satu sensor yang hanya diletakkan di depan robot. Penggunaan satu sensor juga tidak dapat menentukan arah belok robot. Oleh karena itu, pada penelitian ini robot hanya diatur untuk berbelok ke arah kanan.
18
SIMPULAN DAN SARAN Penelitian ini telah berhasil membuat robot hexapod dengan 3 servo dan sebuah sensor jarak. Hasil percobaan menunjukkan bahwa robot hexapod dapat dibuat dengan hanya 3 servo dengan menggunakan algoritme pergerakan kaki Alternating Tripod Gait. Penggunaan 3 servo dapat mempercepat gerakan maju dan belok, menghemat daya dan menghemat biaya pembuatan robot, tetapi kaki robot hanya dapat terangkat pada sudut tertentu saja, berbeda dengan penggunaan 18 servo untuk menggerakkan hexapod yang dapat menentukan sendiri jarak perpindahan kaki robot. Sensor jarak yang diimplementasikan telah dapat mendeteksi adanya halangan di depan robot. Namun, belok arah ditentukan hanya ke kanan saja karena sensor yang digunakan hanya satu yang diletakkan di depan robot. Penentuan arah ketika berbelok membutuhkan adanya sensor tambahan yang diletakkan di kanan dan kiri robot.
DAFTAR PUSTAKA
di tulisan tidak dirujuk tahunnya?
kalau bukan nama orang, tuliskan pake kurung siku [Micropik]
Carelli R, Freire EO. 2003. Corridor navigation and wall-following stable control for sonar-based mobile robots. Robotics and Autonomous Systems. 45:235247. doi:10.1016/j.robot.2003.09.005. Crowley JL. 1989. World Modeling and Position Estimation for a Mobile Robot Using Ultrasonic Ranging. IEEE. 3:1574-1579. doi: tidak bisa begini. IEEE harus jelas nama jurnalnya apa. 10.1109/ROBOT.1989.100062. Durfee W. 2011. Arduino Microcontroller Guide. Minnesota: University of Minnesota [internet]. [2013 Mar 3]. Tersedia pada: http://www.me.umn.edu/courses/me2011/arduin o/arduinoGuide.pdf. Embecosm. 2013. Minimum circuit [internet]. [diunduh 2014 Apr 3] Tersedia pada: www.embecosm.com/app/uploads/2013/09/minimal-shrimp-no-uartcircuit.png ITead Studio. 2010. Ultrasonic ranging module [datasheet]. [diunduh 2014 Apr 3]. Tersedia pada: HCSR04.http:// www.micropik.com/PDF/HCSR04.pdf. Majchrzak J, Michalski M, Wiczyn´ski G. 2009. Distance Estimation With a LongRange Ultrasonic Sensor System. IEEE. 9(7):767-773. doi: 10.1109/JSEN.2009.2021787. Micropik. 2001. SG90 9 g Micro Servo [datasheet]. [diunduh 2014 Sept 18]. Tersedia pada www.micropik.com/PDF/SG90Servo.pdf. Porta JM, Celaya E. 1998. Gait Analysis for Six-Legged Robots. Becelona (ES): Institut de Robòtica i Informàtica Industrial (UPC-CSIC). Saranli U, Buehler M, Koditschek DE. 2001. RHex - A Simple and Highly Mobile Hexapod Robot. International Journal of Robotics Research. 20:616-631. Taufiqurrahman, Basuki A, Albana Y. 2013. Perancangan Sistem Telemetri Untuk Pengukuran Level Air Berbasis Ultasonic. Proceeding Conference on SmartGreen Technology in Electrical and Information Systems [internet]. [14-15 November 2013]. Bali (ID). hlm 125 - 130; [diunduh 2014 Mei 8]. Tersedia pada: http://ojs.unud.ac.id/index.php/prosidingcsgteis2013/article/viewFile/ 7218/5468.
19
Thirion B, Thiry L. 2002. Concurrent programming for the control of hexapod walking. ACM SIGAda Ada Letters. 22 (1):17-28. doi: 10.1145/507548.507551. Wulandari. 2013. Implementasi Inverse Kinematics untuk Koordinasi Gerak Robot Berkaki Enam [skripsi]. Bogor (ID): Institut Pertanian Bogor.
20
Lampiran 1 Program Hexapod dengan menggunakan Mikrokontroler. #include <Servo.h> const int trig = 12; //pin 12 untuk trigger const int echo = 13; //pin 13 untuk echo Servo cservo; // pin 9 untuk servo tengah Servo rservo; // pin 10 untuk servo kanan Servo lservo; // pin 11 untuk servo kiri int i=0;
void setup() { Serial.begin(9600); pinMode(trig, OUTPUT); pinMode(echo, INPUT); cservo.attach(9); rservo.attach(10); lservo.attach(11); cservo.writeMicroseconds delay (100); rservo.writeMicroseconds delay (100); lservo.writeMicroseconds delay (100); cservo.writeMicroseconds delay (100);
(1500); // 0 derajat (1500); // 0 derajat (1500); // 0 derajat (1375); // -11,25 derajat
} void Ping() { long duration, cm; digitalWrite(trig, LOW); delayMicroseconds(2); digitalWrite(trig,HIGH); delayMicroseconds(10); digitalWrite(trig,LOW); duration= pulseIn(echo,HIGH); cm= msTocm(duration); delay(100);
21
Lanjutan if(cm<=5) belok(); else maju(); }; long msTocm(long microseconds) { return ((microseconds-0.018)/50.965); } void loop() { Ping(); } void maju(){ rservo.writeMicroseconds delay (100); cservo.writeMicroseconds delay (100); rservo.writeMicroseconds delay (100); lservo.writeMicroseconds delay (100); cservo.writeMicroseconds delay (100); lservo.writeMicroseconds delay (100); } void belok() { cservo.writeMicroseconds delay (100); rservo.writeMicroseconds delay (100); lservo.writeMicroseconds delay (100); cservo.writeMicroseconds delay (100);
(1750); // 22,5 derajat (1625); // 11,25 derajat (1500); // 0 derajat (1250); // -22,5 derajat (1375); // -11,25 derajat (1500); // 0 derajat
(1500); // 0 derajat (1500);// 0 derajat (1500);// 0 derajat (1375); // -11,25 derajat
22
Lanjutan { for (i=0; i < 5; i++) { rservo.writeMicroseconds (1250); // -22,5 derajat delay (100); cservo.writeMicroseconds (1625); // 11,25 derajat delay (100); rservo.writeMicroseconds (1500); // 0 derajat delay (100); lservo.writeMicroseconds (1250); // -22,5 derajat delay (100); cservo.writeMicroseconds (1375); // -11,25 derajat delay (100); lservo.writeMicroseconds (1500); // 0 derajat delay (100); } } }
Lampiran 2 Foto Implementasi
23
Lampiran 3 Contoh Perhitungan PWM Mencari nilai PWM untuk sudut pergerakan 22.5o Pada datasheet servo SG90 telah ditentukan PWM dari sudut 90o adalah 2500 μs dan sudut 0o adalah 1500 μs, maka didapat nilai pengalli dari perbandingan sebagai berikut: 90 − 0 = 11.11 2500 − 1500 Dari hasil perbandingan tersebut dapat ditentukan sudut 22.5o adalah sebagai berikut: y = (22.5 * 11.11) + 1500 y = (250) + 1500 y = 1750 Lampiran 4 Desain kerangka robot
Kaki kanan belakang
Kaki kanan depan
24
Kaki kiri belakang
Kaki kiri depan
Penghubung kaki depan dan belakang
Kaki Tengah
Badan robot
Dudukan servo tengah
25
RIWAYAT HIDUP Penulis dilahirkan di Bogor pada tanggal 25 Agustus 1986 dari ayah Endan Ruyana dan ibu Yanti Mardyanti. Penulis adalah putra kesatu dari dua bersaudara. Pada tahun 2004 penulis lulus dari SMU PGRI 4 Kota Bogor dan pada tahun yang sama melanjutkan pendidikan diploma III di Institut Pertanian Bogor jurusan Elektronika dan Teknologi Komputer lulus tahun 2007. Pada akhir tahun 2012, penulis lulus seleksi masuk program alih jenis Institut Pertanian Bogor (IPB) untuk memperoleh gelar sarjana Ilmu Komputer.