UNIVERSITAS INDONESIA
RANCANG BANGUN BILATERAL TELEOPERATION DENGAN TEKNIK SCALING MENGGUNAKAN
PI CONTROLLER
SKRIPSI
Disusun Oleh :
YUDO DEWANTO 0706268133
DEPARTEMEN TEKNIK ELEKTRO PROGRAM KEKHUSUSAN KENDALI
FAKULTAS TEKNIK UNIVERSITAS INDONESIA
AGUSTUS 2011
UNIVERSITAS INDONESIA
RANCANG BANGUN BILATERAL TELEOPERATION DENGAN TEKNIK SCALING MENGGUNAKAN
PI CONTROLLER
SKRIPSI
Diajukan sebagai salah satu syarat memperoleh gelar sarjana
Disusun Oleh :
YUDO DEWANTO 0706268133
DEPARTEMEN TEKNIK ELEKTRO PROGRAM KEKHUSUSAN KENDALI
FAKULTAS TEKNIK UNIVERSITAS INDONESIA
AGUSTUS 2011
0BHALAMAN PERNYATAAN ORISINALITAS
Skripsi ini adalah hasil karya saya sendiri, dan semua sumber baik yang dikutip maupun dirujuk
telah saya nyatakan dengan benar.
Nama : Yudo Dewanto NPM : 0706268133 Tanda Tangan :
Tanggal : 12 Januari 2012
HALAMAN PENGESAHAN
Skripsi ini diajukan oleh :
Nama : Yudo Dewanto
NPM : 0706268133
Program Studi : Teknik Elektro
Judul Skripsi : Rancang Bangung Bilateral Teleoperation Dengan Teknik Scaling Menggunakan PI Controller
Telah berhasil dipertahankan di hadapan Dewan Penguji dan diterima sebagai bagian persyaratan yang diperlukan untuk memperoleh gelar Sarjana Teknik pada Program Studi Teknik Elektro, Fakultas Teknik, Universitas Indonesia.
DEWAN PENGUJI
Pembimbing :
Dr. Abdul Muis, ST., M.Eng ( )
Penguji:
Dr. Abdul Halim, M.Eng ( )
Dr. Ir. Wahidin Wahab, M.Sc ( )
Ditetapkan di : Depok
Tanggal : 19 Januari 2012
2BUCAPAN TERIMA KASIH
Puji syukur saya panjatkan kepada Tuhan Yang Maha Esa, karena berkat dan rahmat-Nya saya bisa menyelesaikan skripsi ini. Penulisan skripsi ini merupakan dalam rangka memenuhi salah satu syarat mencapai gelar sarjana Teknik Elektro pada Fakultas Teknik Universitas Indonesia. Saya menyadari bahwa dalam penulisan skripsi ini tidak lepas dari bantuan berbagai pihak, karena tanpa bantuan mereka sangatlah sulit bagi saya untuk menyelesaikan skripsi ini. Oleh karena itu saya ingin mengucapkan terima kasih kepada :
1. Dr. Abdul Muis, ST., M.Eng, selaku dosen pembimbing yang telah membimbing saya dan meluangkan waktu, tenaga dan pikiran dalam penyusunan skripsi ini.
2. Orang tua saya yang selalu memberikan dukungan baik secara moril maupun material.
3. Semua tim robot UI khususnya Wisnu Indrajit dan Harry BP.
4. Teman sebimbingan, Faiz, Agung, Diko dan Rizky yang selalu mendukung; dan
5. Para sahabat dan teman-teman yang telah banyak membantu saya dalam menyelesaikan skripsi ini.
Akhir kata, saya berharap semoga Tuhan Yang Maha Esa bisa membalas kebaikan semua pihak yang telah membantu saya selama ini.Semoga skripsi ini bisa membawa manfaat bagi pengembangan ilmu.
Depok, 12 Januari 2012
Yudo Dewanto
3BHALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI TUGAS AKHIR UNTUK KEPENTINGAN AKADEMIS
Sebagai civitas akademik Universitas Indonesia, saya yang bertanda tangan di bawah ini:
Nama : Yudo Dewanto
NPM : 0706268133
Program Studi : Teknik Elektro Departemen : Teknik Elektro Fakultas : Teknik
Jenis Karya : Skripsi
Demi pengembangan ilmu pengetahuan, menyetujui untuk memberikan kepada Universitas Indonesia Hak Bebas Royalti Noneksklusif (Non-exclusive Royalty- Free Right) atas karya ilmiah saya yang berjudul:
RANCANG BANGUN BILATERAL TELEOPERATION DENGAN TEKNIK SCALING MENGGUNAKAN PI CONTROLLER
beserta perangkat yang ada. Dengan Hak Bebas Royalti Noneksklusif ini Universitas Indonesia berhak menyimpan, mengalihmedia/formatkan, mengelola dalam bentuk pangkalan data (database), merawat, dan mempublikasikan tugas akhir saya selama tetap mencantumkan nama saya sebagai penulis/pencipta dan sebagai pemilik Hak Cipta.
Demikian pernyataan ini saya buat dengan sebenarnya.
Dibuat di : Depok Pada tanggal : 12 Januari 2012
Yang menyatakan
(Yudo Dewanto)
ABSTRAK
Nama : Yudo Dewanto
Program Studi : Teknik Elektro
Judul : Rancang Bangun Bilateral Teleoperation Dengan Teknik Scaling Menggunakan PI Controller
Sistem bilateral teleoperasi memungkinkan antara manipulator master dan slave saling mengirimkan feedback agar pengguna dapat merasakan sensasi pada manipulator slave. Teknik bilateral teleoperation banyak dimanfaatkan untuk manipulasi mikro. Dengan menggunakan teknik scaling, operator dapat memanfaatkan sistem bilateral teleoperasi untuk melakukan pekerjaan dimana manipulator slave difungsikan untuk memanipulasi objek-objek yang berat. Pada skripsi ini akan diterapkan bilateral teleoperation dengan teknik scaling, menggunakan 2 manipulator dengan 2 sendi dengan motor serial servo Dynamixel AX-12 dan mikrokontroler AVR sebagai pengontrolnya. Dalam sistem scaling bilateral yang dirancang juga dikembangkan PI controller untuk meningkatkan performa sistem. Ketika diaplikasikan teknik scaling pada manipulator slave dengan skala 0,5 kali, hasil yang didapat bahwa rata-rata perbedaan posisi antara manipulator master dan slave sebesar 0,384 derajat dengan error terbesar yang terdeteksi sebesar 5,87 derajat ketika digerakkan secara normal. Dan pada kondisi manipulator slave tersangkut objek, perbedaan posisi terbesar antara manipulator master dan slave sebesar 7,03 derajat. Untuk skala 1 kali, error rata-rata sebesar 0,155 derajat dan ketika disimulasikan manipulator slave tersangkut objek error terbesar sebesar 14,07 derajat.
Kara kunci :
Bilateral teleoperation, Scaling Bilateral, AVR, Dynamixel AX-12, PI Controller
ABSTRACT
Name : Yudo Dewanto
Study Program : Electrical Engineering
Title : Design of Bilateral Teleoperation System Using Scaling Technique With PI Controller
Bilateral system allow each manipulator master and manipulator slave send it feedback to let user feels the sensation of the slave manipulation. Bilateral Teleoperation technique is widely use for micro manipulation. By using the scaling technique, the operator can utilize the system to manipulate heavy object.
In this undergraduate thesis, scaling bilateral teleoperation will be applied, using 2 joint with 2 manipulator with motor serial servo Dynamixel AX-12 and AVR microcontroller. PI Controller is also developed to increase system performance.
While the technique was applied to slave manipulator with 0,5 scale, the result show the error average between manipulator master and manipulator slave is 0,384 degree, with the biggest error detection when the manipulator is move freely And when manipulator slave is lodged by object, the biggest error is 7,03 degrees. With 1 scale applied to manipulator, average error is about 0,155 degree, and when the slave manipulator is lodged by object, the biggest error is 14,07 degree.
Keyword
Bilateral teleoperation, Scaling Bilateral, AVR, Dynamixel AX-12, PI Controller
DAFTAR ISI
HALAMAN PERNYATAAN ORISINALITAS ... ii
HALAMAN PENGESAHAN ... iii
UCAPAN TERIMA KASIH ... iv
HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI ... v
ABSTRAK ... vi
ABSTRACT ... vii
DAFTAR ISI ... viii
DAFTAR GAMBAR ... x
DAFTAR TABEL ... xii
DAFTAR ISTILAH ... xiii
BAB 1 ... 1
1.1 Latar Belakang... 1
1.2 Tujuan Penulisan ... 2
1.3 Pembatasan Masalah ... 2
1.4 Metode Penelitian ... 2
1.5 Sistematika Penulisan ... 3
BAB 2 ... 4
2.1 Prinsip Sistem Bilateral Teleoperasi ... 4
2.1.1 Scaling Bilateral Teleoperation ... 5
2.2 PI (Proportional-Integral) Controller ... 8
2.2.1 Tuning PI dengan Metode Ziegler-Nichols ... 9
2.3 Motor Serial Servo ... 10
2.3.1 Dynamixel AX-12 ... 11
2.4 USB to TTL Converter ... 24
2.5 Mikrokontroler Atmega 128 dan Atmega 162 ... 25
BAB 3 ... 30
3.1 Konsep Dasar Sistem Bilateral ... 30
3.2 Perancangan Perangkat Keras ... 32
3.2.1 Motor Servo Serial Dynamixel AX-12 ... 32
3.2.2 Mikrokontroler AVR (Atmega 128 dan 162) ... 37
3.2.3 Algoritma Protokol Komunikasi AX-12 dengan Mikrokontroler AVR 38 3.2.4 Algoritma Sistem Bilateral ... 39
3.2.5 Hasil Perancangan Perangkat Keras... 41
BAB 4 ... 43
4.1 Pengujian Sistem Scaling Bilateral Teleoperation Tanpa Pengendali ... 43
4.2 Metode Tuning Ziegler-Nichols untuk PI Controller ... 46
4.3 Pengujian Sistem Scaling Bilateral Teleoperation dengan PI Controller 48 4.3.1 Pengujian Pertama (Free Motion) ... 49
4.3.2 Pengujian kedua (Gangguan Environment) ... 60
BAB 5 ... 72
DAFTAR ACUAN ... 73
DAFTAR PUSTAKA ... 75
LAMPIRAN ... 76
DAFTAR GAMBAR
Gambar 1.1 Sistem Bilateral Teleoperation ... 1
Gambar 2.1 Ilustrasi Sistem Bilateral Secara Umum... 5
Gambar 2.2 Skema PI Controller ... 9
Gambar 2.3 Kurva Output Sistem yang Berosilasi ... 10
Gambar 2.4 Dynamixel AX-12 ... 11
Gambar 2.5 Konfigurasi Pin Dynamixel AX-12... 12
Gambar 2.6 Aliran Paket Data dalam Komunikasi dengan Dynamixel ... 13
Gambar 2.7 Koneksi Multi Drop pada Dynamixel AX-12 ... 13
Gambar 2.8 Paket Instruksi AX-12 ... 13
Gambar 2.9 Paket Status AX-12 ... 14
Gambar 2.10 Toleransi Margin dan Slope ... 20
Gambar 2.11 Rentang Sudut Dynamixel AX-12 ... 22
Gambar 2.12 USB to TTL Converter ... 24
Gambar 2.13 Atmega 128 ... 25
Gambar 2.14 Atmega 162 ... 26
Gambar 2.15 Komunikasi Asynchronous ... 26
Gambar 2.16 Timer0 ... 29
Gambar 3.1 Blok Diagram Sistem Bilateral yang Dirancang ... 30
Gambar 3.2 Motor Serial Servo Dynamixel AX-12 ... 32
Gambar 3.3 Algoritma Konfigurasi Awal Dynamixel AX-12 ... 33
Gambar 3.4 Konfigurasi Slope dan Margin AX-12 ... 35
Gambar 3.5 Algoritma Komunikasi Dynamixel AX-12 dengan Atmega 128 ... 38
Gambar 3.6 Algoritma Sistem Bilateral yang Dirancang ... 40
Gambar 3.7 Konfigurasi Akhir Sistem ... 41
Gambar 3.8 Rangkaian Hasil Perangkat Keras Sistem Scaling Bilateral Teleoperation ... 42
Gambar 4.1 Hasil Pengujian Joint 1 Tanpa Pengendali ... 44
Gambar 4.2 Error Posisi Manipulator Slave terhadap Manipulator Master (Joint 1) ... 44
Gambar 4.3 Hasil Pengujian Joint 2 Tanpa Pengendali ... 45
Gambar 4.4 Error Posisi Manipulator Slave terhadap Manipulator Master (Joint 2)
... 45
Gambar 4.5 Close Loop Sistem dengan Proportional Controller ... 47
Gambar 4.6 Osilasi ketika Critical Gain pada Sistem ... 47
Gambar 4.7 Pengujian Scaling 1x (Free Motion) ... 50
Gambar 4.8 Hasil Pengujian Joint 1 ... 50
Gambar 4.9 Error antara Manipulator Master dan Slave pada Joint 1 ... 51
Gambar 4.10 Load yang Bekerja Pada Joint 1 Selama Pengujian ... 51
Gambar 4.11 Hasil Pengujian Joint 2 ... 52
Gambar 4.12 Error antara Manipulator Master dan Slave (Joint 2) ... 52
Gambar 4.13 Load Selama Pengujian ... 53
Gambar 4.14 Hasil Pengujian Dengan Skala 1/2 kali ... 55
Gambar 4.15 Hasil Pengujian Joint 1 (Scale = 1) ... 56
Gambar 4.16 Error Selama Pengujian Joint 1 ... 56
Gambar 4.17 Load Joint 1 Selama Pengujian ... 57
Gambar 4.18 Hasil Pengujian dengan Faktor Skala 1/2 (α = 0,5) ... 57
Gambar 4.19 Error Selama Pengujian Joint 2 ... 58
Gambar 4.20 Nilai Beban Selama Pengujian ... 58
Gambar 4.21 Hasil Pengujian Skala 1 kali... 60
Gambar 4.22 Hasil Pengujian Joint 1 ... 61
Gambar 4.23 Error Selama Pengujian ... 61
Gambar 4.24 Beban yang Bekerja Saat Pengujian... 62
Gambar 4.25 Hasil Pengujian Joint 2 (ID 3 dan ID 2) ... 62
Gambar 4.26 Error Joint 2 Selama Pengujian ... 63
Gambar 4.27 Load Joint 2 Selama Pengujian ... 63
Gambar 4.28 Hasil Pengujian Faktor Skala ½ ... 65
Gambar 4.29 Hasil Pengujian Joint 1 ... 65
Gambar 4.30 Error Pada Joint 1 Selama Pengujian ... 66
Gambar 4.31 Beban Pada Joint 1 Selama Pengujian ... 66
Gambar 4.32 Hasil Pengujian Joint 2 ... 67
Gambar 4.33 Error selama Pengujian ... 67
Gambar 4.34 Beban Pada Joint 2 Selama Pengujian ... 68
DAFTAR TABEL
Tabel 2.1 Metode Tuning PID Ziegler-Nichols ... 10
Tabel 2.2 Spesifikasi Teknis Dynamixel AX-12 ... 11
Tabel 2.3 Tabel Kontrol AX-12 ... 15
Tabel 2.4 Tabel Perhitungan Baudrate ... 17
Tabel 2.5 Tabel Status Return Level ... 19
Tabel 2.6 Tabel Compliance slope ... 21
Tabel 2.7 Tabel Beban ... 22
Tabel 2.8 Tabel Instruksi Dynamixel AX-12 ... 23
Tabel 2.9 Register UCSRB ... 27
Tabel 2.10 Deskripsi Register UCSRB ... 27
Tabel 2.11 Register UCSRA ... 28
Tabel 2.12 Deskripsi Register UCSRA ... 28
Tabel 4.1 Error Selama Pengujian Sistem Bilateral Tanpa Pengendali ... 46
Tabel 4.2 Tabel Perhitungan Tuning PI Controller ... 48
Tabel 4.3 Error Pengujian Pertama (a) ... 54
Tabel 4.4 Error Pengujian Pertama (b) ... 59
Tabel 4.5 Rangkuman Hasil Pengujian ... 69
DAFTAR ISTILAH
USART Universal Synchronous Asynchronous Receiver Transmiter
RX Receiver
TX Transmitter
UBBR Register 16 bit pada mikrokontroler AVR yang berguna untuk menentukan kecepatan komunikasi USART
UDR Register yang digunakan mikrokontroler AVR untuk bertukar data
UCSRA Register yang menunjukkan status UART
RXC Bit pada UCSRA yang mengindikasikan penerimaan data TXC Bit pada UCSRA yang mengindikasikan pengiriman data UDRE Bit pada UCSRA yang mengindikasikan register UDR
kosong
UCSRB Register yang bertujuan untuk menginisialisasi dan mengeset fungsi USART
RXEN Bit pada UCSRB yang meng-enable pin RX TXEN Bit pada UCSRB yang meng-enable pin TX
BAB 1 PENDAHULUAN
1.1 Latar Belakang
Pada saat ini, pengembangan sistem telerobotik banyak dikembangkan untuk membantu manusia dalam melakukan berbagai pekerjaan yang berbahaya dan berada dalam lingkungan ekstrem yang tidak dapat diakses oleh manusia secara langsung. Pada sistem telerobotik umumnya digunakan dua buah manipulator, yakni manipulator master dan slave yang saling berhubungan dalam suatu jaringan. Pada sistem ini, gerakan yang diberikan operator akan memberikan sinyal kepada slave untuk mengikuti perintah yang diberikan kepada master.
Karena keterbatasan pada sistem teleoperasi dimana hanya mengandalkan perintah dari master maka sistem bilateral diadopsi untuk menutupi kekurangan dari sistem teleoperasi. Pada sistem bilateral, manipulasi pada master tidak hanya mempengaruhi slave tetapi slave juga memberikan feedback ke master untuk memberikan informasi mengenai lingkungan dari slave sehingga master bisa mengetahui “sensasi” yang dirasakan oleh slave.
Gambar 1.1 Sistem Bilateral Teleoperation
Pada sistem bilateral, komunikasi antara master dan slave memegang peranan penting supaya master bisa memberikan instruksi ke slave dan slave pun
bisa memberikan efek telepresence kepada master. Seperti yang terlihat pada gambar 1.1, sensasi sentuhan ketika manipulator slave menyentuh objek yang terdapat pada lingkungan akan dapat dirasakan oleh operator berkat pencapaian sistem bilateral teleoperasi. Salah satu perkembangan dari aplikasi sistem bilateral yaitu untuk melakukan makro atau mikro manipulation tanpa mengabaikan feedback yang didapatkan dalam sistem bilateral. Pada skripsi ini, akan dirancang sistem bilateral dengan teknik scaling. Medium komunikasi yang digunakan antara master dan slave menggunakan komunikasi serial dengan motor servo Dynamixel AX-12 sebagai aktuatornya.
1.2 Tujuan Penulisan
Tujuan penulisan skripsi ini adalah merancang sebuah sistem Scaling Bilateral Teleoperation dengan 2 DOF menggunakan 2 buah mikrokontroler berbasis AVR sebagai pengendali dan motor serial servo sebagai aktuatornya.
1.3 Pembatasan Masalah
Yang akan dibahas dalam skripsi ini adalah
• Deskripsi peralatan dan rangkaian yang mendukung dalam merancang sistem bilateral menggunakan komunikasi serial mikrokontroler berbasis AVR.
• Metode yang digunakan untuk merancang sistem bilateral.
• Teknik scaling yang digunakan adalah scaling ½x untuk joint 2 dan scaling 1x untuk joint 1.
• Analisa terhadap hasil perancangan sistem scaling bilateral.
1.4 Metode Penelitian
Metode penulisan yang dilakukan dalam membuat skripsi ini meliputi
• Studi literatur
Membaca buku-buku, karya tulis ilmiah, dan informasi dari internet mengenai materi yang dibahas dalam tugas akhir ini untuk dijadikan referensi dan pedoman dalam penulisan skripsi.
• Pendekatan diskusi dengan pembimbing skripsi
Mendiskusikan metode serta perancangan dengan pembimbing skripsi.
• Perancangan dan perakitan perangkat keras sistem bilateral
Sistem bilateral yang telah dirancang direalisasikan dengan menggunakan alat-alat yang akan dijelaskan didalam skripsi ini.
• Pengujian sistem bilateral
Pengujian sistem bilateral dilakukan setelah perakitan sistem bilateral yang telah dirancang telah berhasil direalisasikan. Beberapa pengujian akan dilakukan untuk menguji performa dari sistem bilateral yang telah dirancang untuk kemudian akan dilakukan analisa dari data-data yang telah didapatkan dari pengujian.
• Membuat kesimpulan
Dari hasil analisa data, dapat menarik kesimpulan sehingga dapat melihat performa dari sistem bilateral yang telah dirancang.
1.5 Sistematika Penulisan
Penulisan skripsi ini dibagi ke dalam 5 bagian yang terdiri atas
Bab satu, membahas mengenai latar belakang masalah, tujuan skripsi yang menjelaskan hal apa saja yang ingin dicapai lewat penulisan skripsi ini, batasan masalah yang menjelaskan parameter-parameter yang menjadi pembatas dalam pembahasan yang dilakukan, dan metodologi penulisan yang menjelaskan langkah-langkah yang akan dikerjakan dalam penulisan skripsi ini.
Bab dua yang berisi landasan teori membahas konsep dan prinsip dasar mengenai sistem bilateral dan motor serial servo serta penjelasan lengkap mengenai cara kerja alat-alat pendukung percobaan. Landasan teori berupa uraian deskriptif dan matematis yang berkaitan dengan permasalahan yang dibahas.
Bab tiga membahas mengenai perancangan sistem yang dilakukan untuk mendapatkan data-data yang kemudian bisa diuji serta mengenai pengaturan konfigurasi yang digunakan dalam perancangan sistem.
Bab empat membahas mengenai langkah kerja dalam melakukan uji coba alat serta analisa dari sistem bilateral yang telah dirancang sebelumnya.Analisa berupa evaluasi serta pembahasan mengenai kinerja dari sistem.
Bab lima yang merupakan kesimpulan skripsi berisikan pernyataan singkat dan tepat yang merupakan rangkuman dari hasil studi dan penelitian yang dilakukan dalam skripsi ini.
BAB 2
LANDASAN TEORI
Sistem teleoperasi merupakan salah satu bagian dari dunia robotika. Pada sistem robotika terdapat bagian aktuator dan pengendali (controller). Pada bab ini akan dibahas mengenai pengenalan sistem bilateral secara umum, aktuator yang digunakan dalam rancang bangun sistem bilateral dengan teknik scaling yaitu motor serial servo Dynamixel AX-12 dan juga penjelasan mengenai rangkaian pengendali sistem bilateral yaitu berupa sistem pengendali PI Controller yang tertanam dalam mikrokontroler berbasis AVR
.
2.1 Prinsip Sistem Bilateral Teleoperasi
Sistem bilateral merupakan perkembangan dari sistem teleoperasi. Pada sistem teleoperasi, master hanya bisa memanipulasi slave tanpa menerima feedback dari slave, sedangkan sistem bilateral mengizinkan manusia sebagai operator dari manipulator master merasakan situasi yang terdapat dalam manipulator slave. Gaya yang diberikan oleh operator kepada manipulator master menyebabkan pergerakan pada manipulator slave. Ketika slave menyentuh benda dalam lingkungannya, gaya yang dihasilkan oleh slave juga akan dapat dirasakan pada manipulator master. Inilah yang disebut sebagai sistem bilateral.
Pada perancangan sistem bilateral dalam skripsi ini, pengendalian posisi antara master dan slave dilakukan berdasarkan posisi aktuator motor dan beban yang bekerja di antara kedua manipulatornya. Posisi angular dari sudut aktuator dan gaya yang bekerja pada aktuator master akan menjadi acuan bagi posisi sudut angular slave, begitu juga posisi sudut angular aktuator slave dan gaya yang bekerja pada aktuator manipulator slave akan menjadi acuan bagi posisi sudut master. Pada skripsi ini antara manipulator master dan manipulator slave terkoneksi menggunakan komunikasi serial. Keduanya terkoneksi untuk saling mengirimkan data-data yang mendukung sistem bilateral yang dirancang..
Ilustrasi pengendalian bilateral dalam skripsi ini dapat dilihat pada gambar di bawah ini.
Gambar 2.1 Ilustrasi Sistem Bilateral Secara Umum
Seperti yang terlihat pada gambar di atas, manipulator master menerima perintah posisi baru dari operator. Kemudian posisi baru dikirimkan melalui medium komunikasi baik melalui internet maupun kabel menuju manipulator slave.
Manipulator slave memberikan umpan balik berupa sensasi haptic ke manipulator master, sehingga operator seolah-olah dapat seolah-olah menangani objek tersebut secara langsung.
2.1.1 Scaling Bilateral Teleoperation
Sistem scaling pada bilateral teleoperation merupakan pengembangan sistem bilateral konvensional, namun masih menganut konsep yang ada dalam sistem bilateral sebelumnya. Sistem Scaling bilateral 4 kanal yang ideal dapat direpresentasikan melalui matriks hybrid seperti di bawah ini
−
=
s s m
m
τ θ αθ
βτ
0 1
1 0
(2.1)
Sehingga persamaannya menjadi
0 0
=
−
= +
s m
s m
θ αθ
τ
βτ (2.2)
Dimana f dan x merupakan gaya dan posisi sedangkan m dan s adalah master dan slave. 𝛼 merupakan representasi dari faktor skala untuk posisi sedangkan 𝛽 merupakan representasi dari faktor skala untuk force atau beban yang bekerja pada motor. Dengan persamaan ini posisi master akan sama dengan posisi slave dan gaya pada master akan sama dengan gaya pada slave hanya hanya berlawanan arahnya.
Transformasi dari sistem bilateral dengan teknik scaling direpresentasikan dengan rumus yang dikembangkan oleh Katsura et.al[7]. yang mengembangkan teknik kontrol untuk gaya dan posisi secara terpisah.
Untuk mengontrol komponen gaya digunakan Common mode (fc) diaplikasikan untuk force atau gaya dan differential mode (xD) diaplikasikan untuk posisi.
s m D
s m C
θ αθ θ
τ βτ τ
−
= +
= (2.3)
Kemudian persamaan (2.2) dapat diubah ke dimensi percepatan karena setiap komponen memiliki hubungan dengan percepatan yang dapat terlihat di bawah ini
= Ia
τ (2.4)
dt a d2θ2 =
(2.5) Persamaan untuk pengendali gaya dapat ditulis sebagai berikut
(
m s)
c I
K βτ τ
θ = + (2.6)
(
m s)
f
c K βτ τ
θ = + (2.7)
(
m s)
f
c K βθ θ
θ = + (2.8)
Sedangkan untuk pengendali kecepatan
2 2
dt d d
d
θ = θ
(2.9)
Sedangkan pada persamaan (2.2) dijelaskan bahwa untuk pengendalian nilai ideal untuk sistem scaling bilateral teleoperation adalah posisi master sama dengan posisi slave.
=1
s m
θ
θ (2.10)
Namun pada kondisi aktual, posisi manipulator master dengan manipulator slave tidak akan bernilai sama, oleh karena itu perbedaan (error) antara keduanya akan diminimalisasi menggunakan pengendali PI.
(
m s)
d PI αθ θ
θ = − (2.11)
Sehingga dari persamaan (2.7) dan (2.10) dapat dituliskan sebagai berikut
= −
s m d
c
θ θ θ
θ
1 1
1
1 (2.12)
Untuk mendapatkan komponen master dan slave dilakukan dengan cara sebagai berikut
= −
d c s
m
θ θ θ
θ
1 1
1 1 2
1 (2.13)
Dari persamaan diatas didapatkan
( )(
s m) ( )f (
m s)
m PI θ αθ K βτ τ
θ = − − + (2.14)
( )(
m s) ( )f (
m s)
s PI αθ θ K βτ τ
θ = − − + (2.15)
Dengan menggunakan faktor skala dalam implementasi sistem bilateral, dapat dihasilkan sinkronisasi antara master manipulator dengan slave manipulator yang mempunyai rentang skala sesuai dengan yang diinginkan. Dengan mengubah-ubah nilai α maka akan didapatkan perbedaan skala posisi antara manipulator master dengan manipulator slave. Besarnya perbedaan posisi antara manipulator master dan manipulator slave diatur dengan memberikan nilai yang sesuai kepada nilai alpha (α). Sedangkan nilai β pada komponen gaya, mengizinkan kita untuk memberikan scaling pada manipulator. Dalam hal ini, jika manipulator slave merupakan motor yang sangat besar dan sulit digerakkan dengan kekuatan manusia, maka dengan memberikan scaling gain (β) pada manipulator master, maka komponen gaya dari motor dapat dinormalisasi untuk mencapai kondisi yang setimbang dengan manipulator slave. Jika dimisalkan,
dengan scaling gain (β) pada komponen gaya, ketika motor pada slave hanya bisa digerakkan dengan torsi sebesar 100kgf.cm maka kita tidak perlu menggunakan motor yang sama pada manipulator master, tapi cukup dengan menggunakan motor yang memiliki torsi yang sesuai.
2.2 PI (Proportional-Integral) Controller
Pengendali PI merupakan skema pengontrolan yang banyak digunakan di industri. Dengan menggunakan kontroler PI, error yang dihasilkan antara variabel yang diukur dengan variabel yang diinginkan dapat dikontrol karena tujuan dari kontroler ini adalah untuk meminimalisasi error yang muncul.
Bentuk umum PI controller
MV(t) = Pout + Iout (2.16)
Terdapat 2 mekanisme dalam pengontrolan PI yang masing-masing dapat direpresentasikan pada 2 hal, yaitu proportional (P) yang bergantung terhadap nilai error pada saat ini, integral (I) yang menghitung nilai error sebelumnya.
Dengan menjumlahkan 2 mekanisme tersebut maka proses kontrol yang baik dapat dihasilkan.
Pengendali PI mengacu kepada penjumlahan dari dua mekanisme P dan I yang bertujuan untuk mengatur nilai measured variable (MV). Dengan mendefinisikan u(t) sebagai keluaran kontroler maka perumusan PID controller dapat dituliskan sebagai berikut
( )
t =MV( )
t =K e( )
t +K∫
e( )
t dtu p i (2.17)
Di mana
Kp = Proportional Gain Ki = Integral Gain e = error (SP – PV) t = waktu
Dengan melakukan tuning pada parameter Kp dan Ki maka respons keluaran dari proses kontrol akan menjadi lebih baik mencapai set pointnya. PI controller pada sistem bilateral
Gambar 2.2 Skema PI Controller
Pada skripsi ini digunakan kontroler PI untuk mendapatkan respons sistem yang lebih baik dalam perancangan sistem scaling bilateral yang dirancang.
Implementasi kontroler PI dalam skripsi ini dapat dijabarkan dalam gambar di bawah ini
( )
t = K(
−)
+K∫ (
−)
dtu p θm θs i θm θs (2.18)
Dimana
Kp = Proportional Gain Ki = Integral Gain θm = Posisi master θs = Posisi Slave
2.2.1 Tuning PI dengan Metode Ziegler-Nichols
Metode tuning Ziegler-Nichols merupakan metode yang umum digunakan di dunia industri untuk melakukan tuning pada kontroler PID. Metode yang digunakan adalah metode Ziegler-Nichols yang kedua, yakni dengan memberikan nilai Proportional hingga sistem berosilasi secara tetap tetap atau mempunyai amplitudo yang tetap seperti yang dapat direpresentasikan dengan gambar di bawah ini
Gambar 2.3 Kurva Output Sistem yang Berosilasi
Pada gambar di atas Kurva A menunjukan grafik osilasi yang terus membesar seiring bertambahnya waktu, sedangkan Kurva B menunjukkan grafik dengan nilai osilasi yang stabil, dan kurva C menunjukkan grafik osilasi yang teredam seiring berjalannya waktu. Untuk menggunakan metode kedua Ziegler- Nichols, nilai proportional gain harus disetel hingga output sistem mengalami osilasi seperti pada kurva B. Setelah output berosilasi secara tetap, maka nilai proportional gain akan menjadi nilai Ultimate Gain (Ku) dan periode osilasi sistem akan menjadi periode ultimate dari sistem (Pu). Setelah kedua parameter, yakni Ku dan Pu didapat maka nilai parameter kontrol dapat dihitung dengan menggunakan tabel Ziegler-Nichols.
Tabel 2.1 Metode Tuning PID Ziegler-Nichols
Kontroler Kp Ki
PI 0,45 Ku Pu / 1,2
2.3 Motor Serial Servo
Motor serial servo merupakan jenis motor yang membenamkan mikrokontroler didalamnya. Dengan membenamkan mikrokontroler ke dalam
rangkaian pengontrolannya maka akan didapatkan banyak fungsi-fungsi tambahan yang membuat motor serial servo ini menjadi lebih unggul jika dibandingkan dengan motor servo konvensional yang pengontrolannya masih mengandalkan sinyal PWM (Pulse Width Modulation). Untuk dapat melakukan pengontrolan motor servo serial, digunakan komunikasi serial. Dengan pemanfaatan komunikasi serial dan fitur mikrokontroler yang dibenamkan ke dalam motor servo serial, didapatkan berbagai keuntungan yakni motor servo serial dapat memberikan berbagai feedback posisi angular actuator motor, torsi, beban dan tegangan yang bekerja, temperatur motor. Selain itu penggunaan motor serial servo ini bisa mengurangi beban kerja mikrokontroler karena pengontrolan motor servo serial itu sendiri telah dikonfigurasikan oleh mikrokontroler yang ada di dalam motor serial itu sendiri.
2.3.1 Dynamixel AX-12
Dynamixel AX-12 merupakan motor serial servo yang digunakan dalam melakukan perancancangan robot bilateral. Dynamixel AX-12 merupakan motor serial servo yang diproduksi oleh robotis, yaitu sebuah perusahaan yang mengkhususkan diri dalam pengembangan robot bioloid. Dynamixel AX-12 memiliki kemampuan untuk mendeteksi kondisi dari motor itu sendiri karena memiliki berbagai sensor yang terintegrasi di dalamnya.
Gambar 2.4 Dynamixel AX-12
Spesifikasi dari dynamixel AX-12 yang terdapat pada datasheet ditunjukkan pada tabel di bawah ini
Tabel 2.2 Spesifikasi Teknis Dynamixel AX-12 AX-12
Berat (g) 55
Rasio Gear 1/254
Resolusi 0,3 derajat
Rentang Sudut Operasi 300 derajat, berputar kontinyu
Tegangan 7 – 10 Volt ( rekomendasi 9,6 Volt)
Arus maksimum 900 mA
Temperatur -50 ~ +850 C
Sinyal Perintah Paket dalam bentuk digital
Protokol Komunikasi serial Half Duplex
Asynchronous ( 8 bit, 1 stop, no parity )
Koneksi TTL Multi Drop
ID 254 ID ( 0 – 253)
Komunikasi 7343 bps – 1 Mbps
Feedback Posisi, temperatur, beban, torsi dan tegangan input
Tegangan Input 7 Volt 10 Volt
Torsi Maksimum (kgf.cm) 12 16,5
Kecepatan (detik/60 derajat) 0,296 0,196
Untuk mengkonfigurasikan dynamixel dengan mikrokontroler, dynamixel harus terlebih dahulu dipasang sesuai dengan cara sebagai berikut
Gambar 2.5 Konfigurasi Pin Dynamixel AX-12
Pin-pin yang terdapat pada dynamixel AX-12 tergambar pada gambar di atas. Koneksinya menggunakan 3 pin dengan urutan Data, VDD ( tegangan input) dan GND.
2.3.1.1 Protokol Serial Komunikasi Dynamixel AX-12
Pada sistem komunikasi Dynamixel, kontroler utamanya berkomunikasi dengan mengirim dan menerima paket data. Ada 2 macam paket data yang digunakan pada komunikasi Dynamixel, yaitu paket instruksi (instruction packet)
yang dikirimkan kontroler ke Dynamixel dan paket status (status packet) yang dikirimkan Dynamixel ke kontroler.
Gambar 2.6 Aliran Paket Data dalam Komunikasi dengan Dynamixel
Setiap Dynamixel memiliki ID yang berbeda-beda dengan range ID 0-255.
Koneksi yang digunakan untuk menghubungkan Dynamizel satu dengan yang lain yaitu dengan menggunakan koneksi daisy chain. Koneksi daisy chain dapat dilihat pada gambar di bawah ini
Gambar 2.7 Koneksi Multi Drop pada Dynamixel AX-12
Seperti yang telah dijelaskan sebelumnya, kontroler berkomunikasi dengan Dynamixel dengan menggunakan paket data yaitu
a) Paket instruksi (Instruction Packet)
Untuk melakukan pengontrolan dynamixel AX-12 diperlukan penyusunan paket-paket instruksi yang sesuai dengan data sheet AX-12. Bentuk umumnya adalah sebagai berikut.
Gambar 2.8 Paket Instruksi AX-12
• 0xFF 0xFF
Merupakan indikasi mulainya paket data.
• ID
Merupakan ID dari dynamixel.Tersedia sebanyak 254 ID dengan range dari 0x00 sampai 0xFD.
• Length
Merupakan panjang dari paket dimana nilainya merupakan hail penjumlahan dari banyak parameter (N) +2.
• Instruction
Instruksi yang diberikan ke dynamixel.Untuk instruksi yang dapat diperintahkan ke dynamixel dapat dilihat pada tabel.
• Parameter0….N
Digunakan jika ada tambahan informasi yang dibutuhkan untuk dikirim pada instruksi itu sendiri.
• Checksum
Perhitungan check sum dilakukan sesuai seperti perumusan di bawah ini Check Sum = ~ (ID + LENGTH + INSTRUCTION + PARAMETER 1 +…
PARAMETER N).
Jika nilai perhitungan lebih dari 255 maka LOW BYTE akan menjadi nilai Check Sum.
*~ menunjukkan negasi misal 1100 = ~0011.
b) Paket Status (Status Packet)
Setelah mengirimkan paket instruksi maka dynamixel akan mengirimkan status paket. Struktur dari status packet tidak berbeda jauh dengan instruction packet seperti terlihat di bawah ini
Gambar 2.9 Paket Status AX-12
• 0xFF 0xFF
Mengindikasikan mulai pengiriman paket.
• ID
ID dari dynamixel yang mengembalikan paket.
• Length
Panjang dari paket merupakan banyaknya parameter (N) + 2.
• Error
Jika paket instruksi yang dikirim dapat diterima dengan baik maka bit error akan bernilai 0. Namun jika ada error yang muncul maka bit error yang dikirim balik.
• Parameter0…N
Digunakan bila ada informasi tambahan yang dibutuhkan.
• Checksum
Penjelasan sama seperti pada Instruction packet.
Terdapat beberapa instruksi yang dapat diberikan kepada Dynamixel.
Instruksi yang diberikan ke Dynamixel berguna untuk berbagai hal. Instruksi- instruksi yang dapat diberikan pada Dynamixel terlihat pada tabel di bawah ini.
c) CONTROL TABLE
Tabel 2.3 Tabel Kontrol AX-12
Address Item Access Initial Value
0(0X00) Model Number(L) RD 12(0X0C)
1(0X01) Model Number(H) RD 0(0X00)
2(0X02) Version of Firmware RD ?
3(0X03) ID RD,W R 1(1X01)
4(0X04) Baud Rate RD,W R 1(1X01)
5(0X05) Return Delay Time RD,W R 250(0XFA)
6(0X06) CW Angle Limit(L) RD,W R 0(0X00)
7(0X07) CW Angle Limit(H) RD,W R 0(0X00)
8(0X08) CCW Angle Limit(L) RD,W R 255(0XFF)
9(0X09) CCW Angle Limit(H) RD,W R 3(0X03)
10(0X0A) (Reserved) - 0(0X00)
11(0X0B) The Highest Limit Temperature RD,W R 85(0X55) 12(0X0C) The Lowest Limit Voltage RD,W R 60(0X3C) 13(0X0D) The Highest Limit Voltage RD,W R 190(0XBE)
14(0X0E) Max Torque(L) RD,W R 255(0XFF)
15(0X0F) Max Torque(H) RD,W R 3(0X03)
16(0X10) Status Return Level RD,W R 2(0X02)
17(0X11) Alarm LED RD,W R 4(0X04)
18(0X12) Alarm Shutdown RD,W R 4(0X04)
19(0X13) (Reserved) RD,W R 0(0X00)
20(0X14) Down Calibration(L) RD ?
21(0X15) Down Calibration(H) RD ?
22(0X16) Up Calibration(L) RD ?
23(0X17) Up Calibration(H) RD ?
24(0X18) Torque Enable RD,W R 0(0X00)
25(0X19) LED RD,W R 0(0X00)
26(0X1A) CW Compliance Margin RD,W R 0(0X00)
27(0X1B) CCW Compliance Margin RD,W R 0(0X00)
28(0X1C) CW Compliance slope RD,W R 32(0X20)
29(0X1D) CCW Compliance Margin RD,W R 32(0X20)
30(0X1E) Goal Position(L) RD,W R [Addr36]value
31(0X1F) Goal Position(H) RD,W R [Addr37]value
32(0X20) Moving Speed(L) RD,W R 0
33(0X21) Moving Speed(H) RD,W R 0
34(0X22) Torque Limit(L) RD,W R [Addr14]value
35(0X23) Torque Limit(H) RD,W R [Addr15]value
36(0X24) Present Position(L) RD ?
37(0X25) Present Position(H) RD ?
38(0X26) Present Speed(L) RD ?
39(0X27) Present Speed(H) RD ?
40(0X28) Present Load(L) RD ?
41(0X29) Present Load(H) RD ?
42(0X2A) Present Voltage RD ?
43(0X2B) Present Temperature RD ?
44(0X2C) Registered Instruction RD,W R 0(0X00)
45(0X2D) (Reserved) - 0(0X00)
46(0X2E) Moving RD 0(0X00)
47(0X2F) Lock RD,W R 0(0X00)
48(0X30) Punch(L) RD,W R 32(0X20)
49(0X31) Punch(H) RD,W R 0(0X00)
Tabel kontrol pada datasheet Dynamixel AX-12 mengandung informasi status dan cara pengoperasian aktuator Dynamixel. Aktuator pada Dynamixel bekerja berdasarkan nilai yang dituliskan pada tabel kontrol. Nilai yang dituliskan di control table dynamixel akan menjadi referensi dari dynamixel untuk bekerja sesuai dengan yang diperintahkannya. Penjelasan mengenai bagian-
• Ram dan EEPROM
Pada control table yang terdapat dalam dynamixel terbagi menjadi bagian EEPROM dan RAM. Register EEPROM diwakili dari alamat 0 – 23, sedangkan register RAM berada pada alamat 24 – 49. Nilai pada data yang terdapat di RAM akan diset secara otomatis begitu Dynamixel dinyalakan.
Sedangkan data yang terdapat pada bagian EEPROM merupakan data yang non-volatile dan akan terus tersimpan meskipun power dari Dynamixel dimatikan.
• Nilai Inisialisasi (Initial Value)
Merupakan nilai inisialisasi yang berada pada kolom yang paling kanan pada tabel kontrol yang menunjukkan konfigurasi default pada area EEPROM dan menunjukkan nilai inisialisasi ketika power Dynamixel dinyalakan pada area RAM.
Berikut ini dijelaskan tiap-tiap bagian data yang tersimpan di tiap alamat yang terdapat pada tabel kontrol.
• Alamat 0x00, 0x01
Menunjukkan nomor model dari Dynamixel, untuk kasus ini Dynamixel yang digunakan merupakan AX-12, yang memiliki nilai 0x000C (12).
• Alamat 0x02
Menunjukkan versi Firmware Dynamixel.
• Alamat 0x03
Menunjukkan ID dari Dynamixel.ID ini merupakan ID yang berbeda-beda yang dimiliki Dynamixel. ID yang berbeda ini diperlukan setiap Dynamixel yang berada pada jaringan yang sama.
• Alamat 0x04
Baud Rate. Menentukan kecepatan komunikasi. Perhitungannya sesuai dengan rumus di bawah ini
Speed(BPS) = 2000000/(Address4+1)
Tabel 2.4 Tabel Perhitungan Baudrate
Address4 Hex Set BPS Goal BPS Error
1 0x01 1000000.0 1000000 0.000%
16 0x10 117647.1 115200 -2.124%
34 0x22 57142.9 57600 -0.160%
51 0x33 38461.5 38400 -0.160%
• Alamat 0x05
Return Delay Time.Waktu yang diperlukan untuk mengirimkan Status Packet setelah Instruction Packet dikirim. Delay timenya dapat dicari dengan menggunakan rumus 2uSec * Address 5 value.
• Alamat 0x06, 0x07, 0x08, 0x09
Operating Angle Limit. Mengkonfigurasikan rentang sudut pada aktuator Dynamixel. Posisi tujuan harus berada dalam rentang CW Angle Limit <=
Goal Position <= CCW Angle Limit. Error dari Angle Limit akan terjadi jika Posisi akhir di set diluar rentang operasinya.
• Alamat 0x0B
The Highest Limit Temperature.Menunjukkan batas atas dari temperatur Dynamixel. Jika temperatur yang terdeteksi melebihi ambang batas maka Overheating Error Bit (bit 2 dari Status packet) akan mengembalikan nili 1 dan Alarm akan diset pada alamat 17, 18. Nilainya dalam derajat Celcius.
• Alamat 0x0C, 0x0D
The Lowest (Highest) Limit Voltage.Merupakan batas bagian bawah dan atas dari rentang tegangan Dynamixel. Jika tegangan yang terdeteksi (Alamat 42) diluar dari batas yang diizinkan, maka Voltage Range Error Bit (Bit 0 dari Status packet) akan mengembalikan nilai 1. dan Alarm akan diset pada alamat 17, 18. Nilai yang ditunjukkan merupakan nilai 10x dari nilai asli, misal nilai 80 menunjukkan nilai tegangan sebenarnya sebesar 8 Volt.
• Alamat 0x0E, 0x0F, 0x22, 0x23
Max Torque. Torsi maksimum dari Dynamixel. Ketika nilainya diset 0, maka Dynamixel akan masuk ke mode Free Run. Ada 2 lokasi dimana torsi maksimumnya didefinisikan, di EEPROM ( Alamat 0x0E, 0x0F) dan di RAM (Alamat 0x22, 0x23). Ketika power dinyalakan maka torsi maksimum yang didefinisikan di EEPROM akan disalin ke lokasi di RAM. Torsi dari Dynamixe dibatasi pada nilai yang diletakkan di RAM (Alamat 0x22, 0x23).
Nilai torsi ini juga berpengaruh untuk menentukan kecepatan maksimum dari
aktuator pada motor. Motor yang diset dengan nilai torsi besar akan berputar lebih cepat dibandingkan dengan motor yang diset dengan nilai torsi yang lebih kecil. Nilai torsi juga menentukan besaran maksimum beban yang mampu dideteksi oleh perintah read load yang terdapat pada alamat 0x28 dan 0x29. Jika nilai torsi yang diberikan pada motor merupakan ½ dari nilai torsi maksimum, maka beban yang dapat dideteksi maksimum mempunyai besaran sekitar ½ dari beban maksimum.
• Alamat 0x10
Status Return Level. Menentukan apakah Dynamixel akan mengembalikan Status packet setelah menerima Instruction Packet.
Tabel 2.5 Tabel Status Return Level
Alamat 16 Keterangan pengembalian status packet 0 Tidak merespon semua instruksi 1 Hanya merespon instruksi READ_DATA 2 Merespon semua instruksi
Pada kasus instruksi yang menggunakan Broadcast ID (0xFE), Status packet tidak akan dikirim balik.
• Alamat 0x11
Alarm LED. Jika Bit bernilai 1, maka LED akan berkedip jika terjadi error.
• Alamat 0x12
Alarm Shutdown. Jika bit bernilai 1, maka torsi dari Dynamixel akan dimatikan ketika terjadi error.
• Alamat 0x14 – 0x17
Callibration. Untuk mengkalibrasi antara potensiometer dengan data yang terdapat pada Dynamixel. Pengguna tidak dapat merubah data ini.
Register-register berikut ini berada pada area RAM
• Alamat 0x18
Torque Enable. Ketika power pertama kali dinyalakan, maka Dyamixel akan berada pada mode Torque Free Run ( Torsi = 0). Dengan melakukan penyetelan pada alamat 0x18 menjadi 1 maka akan menyalakan torsi.
• Alamat 0x19
LED. Led akan dinyalakan jika diset 1 dan mati jika diset 0.
• Alamat 0x1A – 0x1D
Compliance Margin and Slope. Toleransi Dynamixel didefinisikan dengan menyetel nilai margin dan slope. Fitur ini bisa digunakan untuk menyerap getaran pada shaft output.Gambar di bawah ini menunjukkan bagaimana nilai toleransi dari margin dan slope didefinisikan dengan posisi error dan torsi yang diaplikasikan.
Gambar 2.10 Toleransi Margin dan Slope
Compliance Margin
Mengacu kepada nilai error yang diset antara posisi tujuan dengan posisi aktuator dynamixel AX-12 pada saat sekarang. Memiliki nilai range 0-255.
Semakin besar nilainya maka perbedaan posisi dynamixel dengan posisi tujuan semakin lebar. Nilai 0-255 merupakan representasi dari nilai toleransi goal yang dikehendaki. Nilai toleransi goal yang dikehendaki dirumuskan dengan rumus
Posisi toleransi = nilai margin x 0,2932 derajat
Compliance slope
Mengacu kepada arah gerakan dari aktuator Dynamixel AX-12. Nilai pada compliance merepresentasikan level torsi pada posisi tujuan. Nilai dari compliance slope terdiri dari 7 langkah, semakin besar nilainya maka aktuator dari dynamixel akan semakin fleksibel. Nilai compliance slope mempunyai rentang 0- 255 dengan pembagian menjadi 7 level torsi seperti yang terlihat pada tabel di bawah ini
Tabel 2.6 Tabel Compliance slope
Step Nilai Slope Nilai Representatif
1 0(0x00) – 2(0x02) 2
2 4(0x04) – 7(0x07) 4
3 8(0x08) – 15(0x0f) 8
4 16(0x10) – 31(0x1f) 16
5 32(0x20) – 63(0x3f) 32
6 64(0x40) – 127(0x7f) 64
7 128(0x80) – 254(0xfe) 128
Dengan merubah-rubah nilai tersebut maka kelenturan dari aktuator dynamixel untuk menyerap getaran dapat divariasikan. Ketujuh level pada compliance slope akan mempengaruhi besar torsi dari dynamixel ketika aktuatornya akan mencapai posisi tujuan yang diperintahkan kepadanya.
Compliance slope akan membagi torsi menjadi 1-7 level. Dengan pembagian level tersebut akan mempengaruhi kecepatan aktuator dynamixel ketika menuju posisi tujuan dan perbedaan posisi aktuator dari posisi tujuan sebenarnya. Selain itu dengan mengubah-ubah nilai compliance slope, berarti mempengaruhi distribusi torsi disekitar goal position. Seperti yang telah dijelaskan sebelumnya, nilai slope yang kecil menunjukkan aktuator dynamixel lebih mudah digerakkan dibandingkan dengan nilai slope yang kecil.
• Alamat 0x1E, 0x1F
Goal Position. Meminta posisi dari Dynamixel untuk bergerak sesuai dengan yang diperintahkan. Menyetel nilai ini menjadi 0x3FF akan menggerakkan aktuator Dynamixel pada posisi 300 derajat.
Gambar 2.11 Rentang Sudut Dynamixel AX-12
• Alamat 0x20, 0x21
Moving Speed. Menyetel kecepatan dari pergerakan Dynamixel untuk mencapai posisi yang diperintahkan.Jika menyetel pada nilai 0x3FF maka kecepatannya mencapai 114 RPM.
• Alamat 0x24, 0x25
Present Position. Menunjukkan posisi sekarang pada actuator Dynamixel.
• Alamat 0x26, 0x27
Present Speed. Menunjukkan kecepatan pada saat ini dari actuator Dynamixel.
• Alamat 0x28, 0x29
Present Load. Menunjukan magnitude dari beban yang beroperasi pada Dynamixel. Bit ke 10 menunjukkan arah dari bebannya. Beban yang dideteksi dipengaruhi oleh nilai torsi yang diatur oleh pengguna yaitu besaran yang terdapat pada alamat 0x22 dan 0x23. Nilai torsi ini menjadi nilai acuan bagi dynamixel untuk dapat menahan beban yang bekerja pada aktuatornya. Jika nilai torsi di set setengah dari nilai maksimum yakni sekitar 8 kgf.cm maka ketika aktuator pada motor diberi beban lebih besar dari 8 kgf.cm atau setara dengan nilai 512 (0x1ff) maka dynamixel tidak akan dapat bergerak dan beban yang terdeteksi juga merupakan nilai torsi yang diset yakni 512. Jadi nilai beban maksimal yang dapat dideteksi oleh dynamixel dipengaruhi oleh nilai torsi.
Tabel 2.7 Tabel Beban
BIT 15-11 10 9 8 7 6 5 4 3 2 1 0
Nilai 0 Arah Beban Nilai Beban
• Alamat 0x2A
Present Voltage. Menunjukkan tegangan yang diaplikasikan kepada motor pada saat ini. Nilainya merupakan 10x dari nilai asli.Misal 10 V menjadi 0x64 (100).
• Alamat 0x2B
Present Temperature. Menunjukan temperatur internal dari actuator Dynamixel dalam derajat Celcius.
• Alamat 0x2C
Registered Instruction. Set menjadi 1 ketika instruksi ditugaskan oleh perintah REG_WRITE. Set menjadi 0 ketika perintah instruksinya telah selesai oleh Action command.
• Alamat 0x2E
Moving. Set menjadi 1 ketika actuator Dynamixel bergerak dengan powernya sendiri.
• Alamat 0x2F
Lock. Jika diset 1, maka hanya alamat 0x18 sampai 0x23 yang bisa dituliskan, sedangkan area lain tidak dapat ditulis. Jika di kunci, maka cara supaya tidak terkunci adalah dengan mematikan power Dynamixel-nya.
• Alamat 0x30, 0x31
Punch. Menunjukkan nilai arus minimum yang disuplai ke motor selama beroperasi. Nilai inisialisasi diset 0x20 dan nilai maksimum 0x3FF.
Instruksi yang dapat dituliskan ke dalam paket instruksi dapat dilihat pada tabel di bawah ini
Tabel 2.8 Tabel Instruksi Dynamixel AX-12
Instruksi Fungsi Value
PING Digunakan untuk
mendapatkan status packet 0x01 READ DATA Membaca nilai pada control
table 0x01
WRITE DATA Menuliskan nilai ke control
table 0x03
REG WRITE
Sama seperti WRITE DATA, tetapi menunggu
instruksi ACTION
0x04
ACTION Menjalankan aksi yang
diinstruksikan REG WRITE 0x05 RESET Mengatur kembali setelan
motor ke kondisi default 0x06 SYNC WRITE Mengontrol banyak motor
sekaligus 0x07
Dalam skripsi ini, instruksi yang sering digunakan adalah instruksi untuk membaca posisi aktuator motor dan membaca beban yang terdeteksi. Berikut ini adalah contoh instruksi yang digunakan dalam skripsi ini
Menggerakkan servo dengan ID 01 ke posisi 207,9 derajat Goal position address 0x1E
Data 0x252
Paket instruksi FF FF 01 05 03 1E 52 02 84 Paket status FF FF 01 02 00 FC
2.4 USB to TTL Converter
Gambar 2.12 USB to TTL Converter
Motor servo Dynamixel AX-12 yang digunakan dalam perancangan sistem bilateral berkomunikasi menggunakan level tegangan TTL yaitu bit bernilai 0 atau
“low”ketika tegangannya 0 volt dan bernilai 1 atau “high” ketika tegangannya
dynamixel yaitu controller CM-5 untuk melakukan penyetelan awal motor dynamixel karena kemampuannya yang dapat berkomunikasi hingga 1 Mbps.
USB to TTL converter yang digunakan dalam skripsi ini menggunakan chip FTDI 232BM yang mempunyai baudrate maksimum sebesar 3 Mbps untuk komunikasi serial TTL. Dengan bantuan USB to TTL ini eksperimen terhadap perintah dasar bagi dynamixel dapat dilakukan.
2.5 Mikrokontroler Atmega 128 dan Atmega 162
Motor Dynamixel sebenarnya mempunyai sebuah rangkaian pengontrolan standar yaitu kontroler CM-5. Kontroler CM-5 merupakan rangkaian pengontrol dynamixel yang berbasis AVR. Untuk mengontrol motor Dynamixel ini digunakan keluarga mitrokontroler yang sama dari keluarga AVR, yaitu mikrokontroler Atmega 128 dan Atmega 162. Dengan cara ini diharapkan sistem bilateral bisa dikembangkan tanpa ada keterbatasan perangkat pengontrolan.
Gambar 2.13 Atmega 128
Gambar 2.14 Atmega 162
Mikrokontroler ini difungsikan sebagai “otak” dari sistem bilateral robot yang dirancang. Digunakan Atmega 128 dan 162 karena chip mikrokontroler ini mempunyai dua UART yang digunakan sebagai sarana komunikasi antar mikrokontroler dengan dynamixel AX-12. UART digunakan mikrokontroler untuk berkomunikasi dengan divais lain. Komunikasi yang digunakan dan didukung oleh AX-12 adalah komunikasi asynchronous. Komunikasi asynchronous memerlukan start bit dan end bit yang ditambahkan ke dalam data bit agar receiver dapat menentukan waktu dan timing dari tiap bitnya. Gambar di bawah ini menjelaskan salah satu contoh dari komunikasi asynchronous.
Gambar 2.15 Komunikasi Asynchronous
Terlihat pada grafik di atas bahwa pada kondisi diam, serial komunikasi bernilai 1 dan bernilai 0 untuk menunjukkan komunikasi serial akan dimulai. Bit
pertama bernilai 1 dan kemudian akan diikuti 8 bit berikutnya. Nilai stop bit bernilai 1 sama seperti keadaan ketika sedang diam.
Fitur-fitur Atmega128 yang digunakan di skripsi ini adalah 1. UART0 (Universal Asynchronous Receiver Transmitter 0)
UART0 difungsikan sebagai sarana komunikasi antara mikrokontroler dengan Dynamixel AX-12. Komunikasinya mempunyai baudrate sebesar 1 Mbps. Register yang digunakan pada UART0 adalah UCSR0A, UCSR0B, UBBR0, dan UDR0. Penjelasan dari tiap-tiap bagiannya akan dijelaskan kemudian.
2. UART1 (Universal Asynchronous Receiver Transmitter 1)
UART1 difungsikan sebagai sarana komunikasi antara kedua mikrokontroler. Komunikasi yang digunakan sebesar 250.000 bps. Register yang digunakan pada UART1 adalah UCSR1A, UCSR1B, UBBR1 dan UDR1.
Pada mikrokontroler berbasis AVR, UART-nya mempunyai 2 register.
Berikut ini adalah penjelasan register-register yang digunakan dalam perancangan sistem bilateral dalam skripsi ini
• UART Control Register (UCSRB dan UCSRA)
UCSRB digunakan untuk mengatur fungsi dari UART. Terdiri dari 7 bit untuk mengatur tiap-tiap fungsi dan inisialisasi yang dilakukan dalam komunikasi asynchronous. Bit-bit tersebut tersusun dalam grafik di bawah ini
Tabel 2.9 Register UCSRB
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
RXCIE TXCIE UDRIE RXEN TXEN UCSZ2 RXB8 TXB8
Tabel 2.10 Deskripsi Register UCSRB
RXCIE Jika nilainya diset menjadi 1, maka setiap selesai menerima data akan terjadi interrupt
TXCIE Jika nilainya diset menjadi 1, maka setiap selesai mengirim data akan terjadi interrupt
UDRIE Setiap register UDRE kembali bernilai 0 maka akan terjadi interrupt RXEN Diset 1 untuk mengaktifkan pin Rx
TXEN Diset 1 untuk mengaktifkan pin Tx
UCSZ2 Digunakan untuk mengeset banyak data dalam bit RXB8 Diaktifkan untuk menerima data dalam mode 9 bit TXB8 Diaktifkan untuk mengirim data dalam mode 9 bit
UCSRA merepresentasikan kondisi UART pada kondisi aktual.
Dengan melihat kepada bit-bit pada register UCSRA, dapat diketahui apakah UART sedang menerima, mengirim data atau siap untuk mengirim data.
Berikut ini adalah register-register yang berada dalam UCSRA.
Tabel 2.11 Register UCSRA
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
RXC TXC UDRE FE DOR PE U2X MPCM
Tabel 2.12 Deskripsi Register UCSRA
RXC Jika bernilai 1 maka telah selesai menerima data TXC Jika bernilai 1 maka telah selesai mengirim data UDRE Jika bernilai 1 maka register UDR sudah kosong
FE Jika bernilai 1 maka ada framing error
DOR Jika bernilai 1 maka ada error
PE Parity error
U2X Diset 1 untuk melipatgandakan kecepatan baudrate MPCM Diset untuk mengijinkan multi proses
• UART Baud Rate Register (UBBRH dan UBBRL)
Register ini digunakan untuk menentukan baudrate yang digunakan selama melakukan proses pengiriman dan penerimaan data. Untuk menghitung baudrate yang ingin digunakan dalam komunikasi serial, digunakan rumus matematis seperti di bawah ini
UBBR = ( System Clock / (16 x Baudrate)) – 1 3. Timer / Counter
Fitur Timer / counter yang terbenam dalam chip mikrokontroler digunakan dalam penentuan waktu pencuplikan serta. Pada skripsi ini digunakan 2 timer yang masing-masing akan dijelaskan sebagai berikut
• Timer0
Gambar 2.16 Timer0
Merupakan timer 8 bit yang biasa difungsikan untuk melakukan pencuplikan dalam sebuah program. Timer0 difungsikan sebagai pembatas waktu eksekusi penerimaan status paket bagi dynamixel. Timer 0 diset untuk memilik periode 3 ms untuk menunggu status paket yang dikirimkan dynamixel AX-12 ke mikrokontroler.
• Timer1
Merupakan timer 16 bit. Dalam skripsi ini Timer1 difungsikan sebagai penentu waktu cuplik dalam perhitungan serta dalam proses looping sistem bilateral yang telah dirancang. Pencuplikan dilakukan setiap 15 ms.
Untuk mengeset nilai timer1 agar bisa memerintahkan mikrokontroler untuk mengambil data dan melakukan perhitungan sistem bilateral digunakan rumus sebagai berikut
Nilai clock mikrokontroler yang digunakan dalam perancangan adalah Nilai clock = Clock Sistem / Prescalar
Nilai clock = 16 MHz / 1024 Nilai clock = 15.625 Hz
Untuk mendapatkan periode sebesar 15 ms digunakan rumus sebagai berikut
OCR = 15 ms / (1/15.625 Hz) OCR = 235
Nilai OCR yang didapatkan akan menjadi penentu waktu pencuplikan setiap 15 ms.
BAB 3 PERANCANGAN
Dalam skripsi ini, sistem bilateral yang dirancang berupa sistem dua lengan dengan 2 DOF. Manipulator dari sistem bilateral berupa lengan yang menggunakan motor serial servo Dynamixel AX-12. Motor serial servo ini terhubung melalui komunikasi serial ke mikrokontroler AVR Atmega 128 dan manipulator master dan Atmega 162 untuk mengontrol manipulator slave. Pada bab ini akan dibahas mengenai konfigurasi perangkat keras yang digunakan serta algoritma dari sistem bilateral yang digunakan.
3.1 Konsep Dasar Sistem Bilateral
Algoritma dari sistem scaling bilateral yang dirancang oleh dalam skripsi ini merupakan hasil dari studi literatur dan berusaha mencakup dari tujuan pembuatan skripsi ini. Blok diagram sistem scaling bilateral yang dirancang dapat direpresentasikan dalam gambar berikut
Gambar 3.1 Blok Diagram Sistem Bilateral yang Dirancang
Pada gambar di atas terlihat bahwa keluaran dari motor berupa posisi sudut dari aktuator motor (θ) serta nilai torsi yang bekerja pada motor (τ). Kedua variabel ini yang menjadi acuan untuk mewujudkan sistem scaling bilateral teleoperation. Secara umum sistem bilateral dengan teknik scaling dapat digambarkan dengan perhitungan berikut
( ) (
sref)
ref m ref
m ref
s res
m θControllerθ αθ τController βτ τ
θ = − − + (3.1)
( ) (
sref)
ref m ref
s ref m res
s θControllerαθ θ τController βτ τ
θ = − − + (3.2)
Sedangkan perhitungan yang lebih terperinci berupa pengendali dan persamaan lain telah dijelaskan pada dasar teori dan akan dijelaskan kembali di bawah ini.
Seperti perhitungan (2.1) dan (2.2) yang telah dijelaskan pada dasar teori, sistem scaling bilateral ideal mengacu kepada perhitungan seperti di bawah ini
s m
s m
τ βτ
θ αθ
−
=
= (3.3)
Dimana α dan 𝛽 merujuk kepada skala yang digunakan, sedangkan notasi x berubah menjadi θ karena merujuk kepada posisi sudut dari aktuator motor dan notasi f berubah menjadi τ karena merujuk kepada nilai torsi yang diaplikasikan ke motor Dynamixel. Dari persamaan (3.1) dapat ditulis ulang sebgai berikut.
0 0
= +
=
−
s m
s m
τ βτ
θ
αθ (3.4)
Mengacu kepada persamaan (2.8) dan (2.11) pada dasar teori, pengendali dari gaya dan pengendali dari kecepatan dapat dituliskan dengan persamaan
(
m s)
f
c K βθ θ
θ = +
(3.5)
(
m s)
d PI αθ θ
θ = −
(3.6) Dari persamaan (3.3) dan (3.4) dapat direpresentasikan dengan matriks berikut
= −
s m d
c
θ θ θ
θ
1 1
1 1
(3.7)