Buku Robotika Part3
Buku Robotika Part3
Robotika
Padahal, kondisi ideal di atas dalam dunia nyata tidak akan pernah
dijumpai, karena pada dasarnya semua fenomena sistem dalam alam dan
kehidupan ini adalah non-linier. Meskipun sistem robot, seperti contoh motor
DC-MP dengan lengan tunggal ini, dapat dimodelkan secara matematik dengan
tepat namun dinamika beban dan gangguan selama operasi umumnya tidak
dapat (sulit) dimodelkan secara tepat. Dalam konteks inilah kemudian dikenal
istilah-istilah faktor ketidaktentuan (uncertainty) dan ketidaklinieran (non-
linearity). Beberapa faktor yang masuk dalam dua kategori faktor ini misalnya
keausan bantalan (bearing) yang dapat menyebabkan friksi, beban kerja yang
sangat dinamis seperti beban angkat yang bervariasi, efek dinamik dari momen
inersia sistem sambungan seri seperti robot tangan 2DOF atau lebih, efek
gravitasi, dan berbagai gangguan operasi seperti vibrasi, senggolan, benturan,
dan sebagainya.
Sebagai contoh bahasan kita akan menguji efek beban torsi pada
beberapa kontrol klasik berikut ini. Perlu dipahami di sini bahwa pembebanan
yang berubah-ubah dianggap sebagai gangguan (disturbance).
Dalam Gambar 4.42 nampak bahwa efek pembebanan yang makin besar
menyebabkan steady-state error menjadi semakin besar pula. Sedikit saja ada
beban Ǫ tidak dapat menuju nolwalaupun Kp di-tune kembali. Jadi,
kontroler P untuk control posisi motor DC-MP hanya dapat konvergen untuk
kondisi tanpa beban torsi atau momen inersia. Padahal kondisi ideal tanpa
beban ini hampir tak pernah terjadi dalam aplikasi sebenarnya.
Untuk uji simulasi kali ini Kp di-set sama seperti pada uji sebelumnya,
yaitu 2, sedang Ki diambil pada nilai dimana komponen I dianggap mampu
memperbaiki kinerja P dengan menurunkan steady-state error. Gambar 4.44
dan 4.45 berikut ini memperlihatkan hasil simulasinya.
Akan tetapi persoalannya mulai rumit manakala DOF robot lebih dari 1.
Misalnya 2DOF dan 3DOF pada robot tangan dua lengan seperti gambar
berikut.
, ,
, , ,
Tiap aktuator pada sendi dikontrol secara terpisah agar posisi ujung
lengan memperoleh kedudukan P(x, y) seperti yang diharapkan.
, ,…,
Atau
, = , , , …, , , adalah DOF
Dalam skema aplikasi yang lebih umum untuk sistem robotika dapat
digambarkan sebagai berikut.
Jika aktuator sistem robot lebih dari satu maka referensi posisi dan
kecepatan harus diberikan untuk setiap aktuator. Sensor yang berkaitan juga
harus tersedia untuk tiap aktuator.
= . − + .( − )
= ∙ − + ∙ − +
∙ −
Untuk skema yang lebih umum dalam sistem robotika, diagram control
diatas dapat digambarkan sebagai berikut.
= ∙
= ⇐ (4.14)
∑ = 0 (4.15)
Konsep dasar AFC pada sebuah sistem robotika dengan model dinamik
H(s) dengan actuator motor DC torsi (DC-TQ) ditunjukkan dalam Gambar
4.55 berikut ini.
∑ = ∙ (4.16)
+ = ( )∙ (4.17)
= (θ)∙ − (4.18)
= . (4.19)
dengan crude approximation ini cukup sukses diaplikasikan pada suatu sistem
mekatronik dan sebuah system active suspension untuk kendaraan dalam
eksperimen di laboratorium (Hewit dan Burdess, 1986, Hewit dan Ma’rouf,
1996).
Kontroler robot dalam tahap disain dan uji coba laboratorium dapat
dibuat dari komputer standar (baik PC atau work station) yang dilengkapi
dengan interface ADC dan DAC. Jika proses ujicoba telah dianggap memadai
maka rangkaian kontrolernya dapat dirancang ulang dengan menggunakan
sistem kontroler yang menyatu dengan sistem robot (embedded controller).
Dapat sebagai contoh, kita akan membahas rangkaian berbasis PIC16F877. IC
mikrokontroler ini memiliki ADC yang menyatu di dalam chip sebanyak 8
kanal dengan ketelitian 10-bit. Untuk output, tersedia 2 kanal PWM yang dapat
dihubungkan ke aktuator seperti motor. Input/Output secara umum dapat
diperoleh dari Port A, B, C, D dan E. untuk lebih lengkapnya silahkan cek di
datasheet yang berkaitan.
Misalkan robot diatas akan didisain secara outonomous yang dalam hal
ini memerlukan sebuah sistem embedded controller berbasis PIC16F877.
Sebelum embedded controller kita buat, terlebih dahulu sebuah PC digunakan
sebagai dasar dalam mengembangkan sistem kontroler baik secara perangkat
keras maupun perangkat lunak. Ilustrasi sistem pengembangan robot dapat
dilihat dalam Gambar 4.60 berikut ini.
Pada Gambar 4.61, jika dilihat dari sisi input, system ini memiliki 12
kanal input analog yang dihubungkan ke 12 kanal ADC pada interface
DAS1602. Sedangkan pada rangkaian rotary encoder digunakan system bus
parallel yang terhubung port PPI8255. Jadi total memiliki 16 terminal input
yang masing-masing dapat dikatakan bekerja dengan orientasi analog. Pada sisi
output terdapat 4 kanal yang semuanya bekerja berdasarkan prinsip analog.
Tegangan masing-masing output memiliki jangkauan (0-12)V secara linier.
Untuk arah putaran motor tiap-tiap kanal dibantu dengan 1 bit output digital
(1/0) untuk menyatakan arah putaran CW dan CCW. Karena tiap DAS1602
memiliki 2 kanal DAC maka diperlukan 2 unit untuk mengontrol robot ini.
Motor yang digunakan adalah tipe DC-Servoyang spesifikasinya mendekati
motor torsi ideal. Rangkaian driver-nya ditunjukkan dalam Gambar 4.62.
Untuk pemasangan sensor kecepatan berbasis f/V, sensor arus dan sensor
percepatan dapat menggunakan rangkaian-rangkaian yang telah diterangkan di
bab sebelumnya. Khusus untuk rangkaian rotary encoder yang seluruhnya
berjumlah 4 unit ini Gambar 4.63 memperlihatkan skema lengkapnya. Sistem
koneksi “bus parallel” yang dinyatakan dalam kotak bergaris putus-putus dapat
Sensor Internal:
- Sensor posisi,
- Sensor kecepatan, dan
- Sensor percepatan,
Sensor Eksternal:
- Sensor taktil (tactile), berbasis sentuhan: misalnya limit switch
pada bemper robot,
- Sensor force dan sensor torsi (torque sensor),
- Sensor proksimiti,
- Sensor jarak (sonar, PSD, dll),
- Sensor vision (kamera),
- Gyro, kompas digital, detector api, dan sebagainya.
Dari pengelompokan sensor ini kemudian dikenal istilah low-level control dan
high-level control dalam kontrol robotika. Diagram dasarnya adalah sebagai
berikut.
Dari peta ini robot dapat melakukan perencanaan gerak yang pertam
menuju titik tengah, pada garis pintu masuk ke daerah yang belum
diketahui. Kurva trajektori dapat ditentukan dengan mempertimbangkan titik
koordinat START, perkiraan koordinat titik tengah yang berhasil “dipandang”,
(centroid) dengan menghitung luas daerah terlebih dahulu, dan
perkiraan/perhitungan Koordinat titik . Dengan metoda matematik
sederhana, dari tiga titik koordinasi yang diketahui ini dapat diperoleh fungsi
trajektori yang dikehendaki. Dari hasil perencanaan, robot dapat melakukan
aksi pertama.
Perlu dicatat bahwa Robot Tikus ini melakukan penjelajahan untuk yang
pertama kali tanpa pengetahuan sedikitpun tentang medan kerjanya. Jadi
diasumsikan bahwa setelah berpengalaman menjelajah mencari GOAL untuk
yang ke-1, ke-2 hingga yang ke-n diharapkan robot dapat menemukan jalan
pintas yang paling pendek.
Dari sini, jika langkah robot diteruskan , akan didapat peta terakhir
seperti dalam Gambar 4.71 yang merupakan penyelesaian. Namun langkah ini
bukanlah yang terpendek.
Nampak bahwa jalur jelajah yang dibentuk dalam gambar di atas lebih
pendek dibandingkan dengan peta pada Gambar 4.72.
Sedangkan kelemahannya:
Misalnya, katakanlah kita memiliki tiga behavior, yaitu berjalan, lari, dan
memungut batu kemungkinan melemparnya. Behavior “berjalan” adalah
kondisi normal tanpa stimuli. Lari didefinisikan sebagai behavior jika kita
melihat anjing mengejar kita. Memungut batu dan melemparkan ke anjing
adalah behavior yang distimuli oleh penglihatan mata. Jika dinyatakan dalam
arsitektur subsumption susunan behavior ini dapat diilustrasikan dalam
Gambar 4.77 berikut ini.
Dari contoh dalam Gambar 4.77, dalam keadaan normal, kita tidak
melihat anjing mengejar, maka subsumption akan memutus hubungan panah
dari atas ( ). Jika ketika berjalan kita melihat ada anjing mengejar maka
akan melakukan switching dengan memutuskan panah dari kiri dan
menyambung panah dari . Sementara itu, masih terhubung ke “lari” dan
memutus panah dari atas. Dalam kondisi ini keputusannya adalah lari. Jika
pada saat lari kita melihat ada batu maka akan memutus hubungan dari
“lari”, sehingga kita berhenti, dan sebagai gantinya kita mengambil batu dan
melemparkannya ke anjing yang mengejar. Jika melihat batu tapi tidak sedang
melihat anjing maka kita akan tetap berjalan normal karena behavior
“memungut batu & melemparnya” tidak mendapat stimuli yang lengkap.
Artinya, output behavior ini tidak akan memberikan respon (output non-aktif)
dan tetap terhubung ke panah dari kiri.
Sebagai contoh bahasan yang lebih riil, katakanlah kita punya sebuah
Robot Tikus bermata kamera plus infrared range-finder (PSD) dengan fungsi
mengejar dan menangkap bola seperti dalam Gambar 4.78 berikut ini. Sebut
saja robot ini Robot Tikus Sepak Bola (RTSB).
Jelajah: berjalan bebas kea rah depan dengan memutar roda kiri dan
kanan dalam kecepatan yang sama. (normal)
Menghindar: Hindari jika ada halangan (dinding atau robot lain di
depan). Jika sensor halangan dekat dengan PSDL, robot berbelok ke
kiri. Sebaliknya, jika halangan dekat dengan PSDR maka belok ke
kanan.
Mundur & Belok: Jika bemper SBL ON, artinya menubruk sesuatu
(dinding atau robot lain) di arah sebelah depan-kiri, robot mundur
sedikit sembari belok ke kiri. Sebaliknya, jika tubrukan di sebelah
kanan (SBR ON), robot mundur dan belok ke kanan.
Mencari Bola: Mata kamera menyapukan pandangan ke arah depan.
Dalam hal ini kamera dipasang mati pada tubuh robot. Respon behavior
ini adalah robot mendekati bola hingga dapat ditangkap. (Pintu bola
senantiasa terbuka hingga DB tersentuh).
Memegang Bola: Jika detektor bola DB aktif maka bola telah masuk
ke mulut robot. Maka robot akan menutup pintu bola. DB akan selalu
aktif selama bola berada dimulut robot.
Mencari GOAL: Stimuli berasal dari informasi kamera juga seperti
pada behavior mencari bola. Dalam hal ini diperlukan metoda-metoda
pengolahan citra untuk membedakan bola dengan GOAL. Jika GOAL
didapat, dengan catatan bola sudah di mulut, maka robot akan “lari”
kearah GOAL dan memuntahkan bola dengan membuka pintunya.
Sebagai catatan, dalam kompetisi Robot Sepak Bola (RoboSoccer),
bola biasanya berwarna orange sedang goal berwarna biru atau merah
dengan lantai berwarna gelap (misalnya hijau tua) dan dinding
berwarna putih atau terang.
Sedangkan kerugiannya:
LATIHAN
1. Sebutkan dan jelaskan komponen-komponen sistem robotika!
2. Jelaskan perbedaan antara sistem kontrol ON/OFF dengan sistem
kontrol PID (Proporsional, Integral dan Derivatif)!
3. Sebutkan dan jelaskan kelebihan dan kekurangan masing-masing
kontrol P, I dan D!
4. Bagaimana merepresentasikan kontrol kecepatan ke dalam kontrol
posisi?
5. Jelaskan efek perubahan beban (gangguan torsi) pada kontroler P, PI,
PD dan PID!
6. Apa yang dimaksud dengan “Resolved Motion Rate Control (RMRC)?
Jelaskan cara kerja RMRC!
7. Apa yang dimaksud dengan “Resolved Motion Acceleration Control
(RMAC)? Jelaskan cara kerja RMAC!
8. Apa yang dimaksud dengan “Active Force Control (AFC)? Jelaskan
cara kerja AFC!
9. Jelaskan perbedaan antara “low-level control” dengan “high-level
control”!
10. Jelaskan cara kerja kontrol berdasarkan Model Plan-Act (MPA)!
REFERENSI
1. Hewit, J. R danMarouf, K. B. (1996).Practical Control Enhancement via
Mechatronics Design.IEEE Trans. Industrial Electronics.43(1). 16-22
2. Hewit, J.R. and Burdess (1981).Fast Dynamic Decoupled Control for Robotics
Using Active Force Control.Trans. Mechanism and Machine Theory.16(5).535-
542.
3. Hewit, J.R. danBurdess, J.S. (1986).An Active Method for the Control of
Mechanical System in The Presence of Unmeasurable Forcing.Trans.
Mechanism and Machine Theory.21(3).393-400.
4. Kwek, L. C., Wong, E. K., Loo, C.K. danRao, M.V.V. (2003).Application of Active
Control and Iterative Learning in a 5-Link Biped Robot.Jurnal of Intelligent and
Robotic Systems, 37, 143-162.
5. Microchip. (2001). PIC16F87X Data Sheet, 28/40-pin 8 bit CMOS Flash
Microcontrollers. Data Sheet. Microchip Technology, Inc.
6. Ogata, K. (2002). Modern Control Engineering: Fourth Edition. BukuTeks. New
Jersey: Prentice Hall-Pearson Education International.
7. Pitowarno, E. dan Musa Mailah. (2005). Motion Resolved Acceleration and
Knowledge Based Fuzzy Active Force Control for MobileManipulator. Proc.
Int’1 Conf. on Robotics, Vision, Informations and signal Processing (ROVISP
2005), Penang, Malaysia.
8. Pitowarno, E., Musa MailahdanHishamuddinJamaluddin. (2001). Trajectory
Error Pattern Refinement of A Robot Control Scheme Using A Knowledge-
Based Method.Proc. IEEE Int’1 Conf. on Information, Communications &
Signal Processing (ICICS 2001), Singapore, P0301.
9. Pitowarno, E Musa MailahdanHishamuddinJamaluddin.(2005). Motion
Control for Mobile Manipulator Using Resolved Acceleration and Iterative-
Learning Active Force Control.Proc. Int’1 Conf. on Mechatronics (ICOM 2005)
Kuala Lumpur, p542-549.
10. Uchiyama, M. (1989).Control of Robot Arms.Trans. Japan Society of
Mechanical Engineers. III. 32(1). 1-9.
BAB V
KINEMATIK DAN DINAMIK ROBOT
5.1 PENDAHULUAN
Robot dapat dianalisa dalam dua dominan kajian, yaitu analisa
kinematik dan dinamik. Analisa kinematik berkaitan dengan gerakan robot
tanpa memandang efek inersia/ kelembaman yang terjadi ketika robot
melakukan gerakan, sedang analisa dinamik berhubungan dengan efek inersia
dari struktur dari struktur robot secara fisik hasil dari gerakan yang ditimbulkan
oleh torsi aktuator ketika robot sedang melakukan pergerakan.
Konversi sudut ke koordinat Cartesian pada robot IDOF adalah dasar dari
transformasi dalam analisis kinematik. Untuk sistem robot lebih dari IDOF
(dan kenyataannya, robot aplikasi selalu memiliki lebih dari IDOF) analisa
kinematik mutlak diperlukan. Sistem mobile robot lebih rumit kinematiknya,
karena berkaitan dengan prinsip gerak holonomic dan nonholonomic.
Jika input merupakan fungsi dari suatu koordinat vektor posisi dan
orientasi P(x,y,z) dan output adalah θ(θ1, θ2, … θn) dimana n adalah jumlah
sendi atau DOF, maka Gambar 5.1 dapat digambar ulang sebagai berikut.
Dalam Gambar 5.2 di atas, output yang diukur dari gerakan robot adalah
dalam domain sudut dari sendi-sendi, baik sendi pada sistem tangan/kaki
ataupun sudut dari perputaran roda jika robot adalah mobile robot. Sedang
yang diperlukan oleh user dalam pemrograman atau dalam pemetaan ruang
kerja robot adalah posisi (ujung tangan atau titik tertentu pada bagian robot)
yang dinyatakan sebagai koordinat 2D (Cartesian) ataupun 3D. Dengan
demikian perlu dilakukan transformasi koordinat antara ruang Cartesian
dengan ruang sendi/sudut ini. Di dalam gambar dinyatakan sebagai kinematik
Jika jari-jari r dan θ dari suatu struktur robot n-DOF diketahui maka
posisi P(x, y, z) dapat dihitung. Jika θ merupakan sebuah fungsi
berdasarkan waktu, θ(t), maka posisi dan orientasi P(t) dapat dihitung
secara pasti juga. Transformasi koordinat ini dikenal sebagai kinematik
maju/langsung.
Sebaliknya, jika posisi dan orientasi P(t) diketahui maka θ(t) tidak
langsung dapat dihitung tanpa mendefinisikan berapa DOF struktur
robot itu. Jumlah sendi n dari n-DOF yang bias untuk melaksanakan
tugas sesuai dengan posisi dan orientasi P(t) itu dapat bernilai n = (m,
m+1, m+2, … m+p) dimana m adalah jumlah sendi minimum dan p
adalah jumlah sendi yang dapat ditambahkan. Robot berstruktur m-
DOF disebut sebagai robot non-redundant, sedang bila (m+p)-DOF
maka disebut sebagai robot redundant. Taransformasi ini dikenal
sebagai kinematik invers.
Secara umum persamaan kinematik maju untuk setiap sendi 1DOF secara
parsial dapat dinyatakan sebagai,
Dengan r adalah jari-jari lengan (link) dan θ adalah sudut sendi. Dalam
hal ini P adalah koordinat (x, y) yang relatif terhadap koordinat tetap/acuan (0,
0) pada titik sendi. Jika r adalah tetap dengan asumsi lengan bergerak secara
rotasi maka r dianggap konstan. Dengan demikian perubahan P hanya
dipengaruhi oleh perubahan θ. Persamaan kinematik invers-nya dapat
dinyatakan sebagai,
Dengan
(5.4)
atau ditulis
Dengan P adalah posisi dan orientasi dari posisi ujung lengan (tip-end
position). Perlu diketahui bahwa jika struktur manipulator ini difungsikan
sebagai kaki dalam suatu robot berjalan (walking robot) seperti biped robot
(robot dua kaki) maka ujung struktur adalah posisi dan orientasi (sudut) akhir
dari (misalnya) telapak kaki.
Robot secara fisik adalah suatu benda yang memiliki struktur tertentu
dengan massa tertentu yang dalam pergerakannya tunduk kepada hukum-
hukum alam yang berkaitan dengan gravitasi dan atau massa/kelembaman. Jika
robot berada di permukaan bumi maka kedua efek, gravitasi dan massa ini,
akan mempengaruhi kualitas gerakan. Sedangkan bila robot berada di luar
angkasa yang bebas gravitasi maka massa saja yang dapat menimbulkan efek
τ = I . Ktn (5.7)
Jika output sistem ,.,.. (1,2,…,n) dinyatakan sebagai q maka torsi yang
diberikan kepada sendi-sendi robot adalah,
τ = f(q) (5.8)
Holonomic, dan
Nonholonomic
manipulator yang bersifat holonomic dengan mobile robot yang memiliki sifat
nonholonomic.
Diketahui sebuah Robot Tangan Satu Sendi seperti pada Gambar 5.10 berikut
ini.
y = l . sin(θ) (5.11)
= = tan (5.12)
Persamaan (5.12) ini adalah kinematik invers dari Robot Tangan Satu Sendi.
= cos , (5.14)
= cos ( + ) , ( + ) (5.15)
Maka
(5.16)
(5.17)
Persamaan (5.16) dan (5.17) adalah persamaan kinematik maju dari robot
tangan planar 2 sendi.
(5.20)
(5.21)
Dari dua persamaan terakhir ini kita dapat mencari θ2 terlebih dahulu
dengan mengeluarkan cos θ2 dari kedua persamaan. Dengan operasi pangkat
dua pada kedua nya, dan dikombinasikan didapat,
(5.22)
sehingga
(5.23)
(5.24)
Sedangkan
(5.25)
(5.26)
diperoleh
(5.27)
(5.28)
Sekarang kita akan membahas kinematik dari robot tangan planar tiga
sendi. Daerah kerja robot ini adalah 2D seperti pada Robot Tangan Dua Sendi
yang telah dijelaskan sebelumnya. Konfigurasinya ditunjukkan dalam Gambar
5.12 berikut ini.
Dengan cara analisis kinematik maju yang sama seperti pada Persamaan
(5.14) hingga (5.19) koordinat P(xT, yT) dapat diperoleh,
(5.29)
(5.30)
dengan
(5.31)
Koordinat P(xT, yT) juga dapat dihitung dengan memanfaatkan hasil dari
perhitungan pada kinematik maju robot tangan planar 2 sendi pada Persamaan
(5.20) dan (5.21) dengan rumus sebagai berikut.
(5.32)
(5.33)
Untuk kinematik invers, jika (xT, yT) dan (x, y) diketahui maka θ2 dan θ1
dapat dicari dengan menggunakan Persamaan (5.23) dan (5.28). Dari (xT, yT)
dan (x, y), ψ juga dapat dicari, sehingga θ3 dapat ditentukan.
Berikut ini kita akan membahas transformasi koordinat dalam ruang 3D.
Seperti telah dijelaskan, untuk analisa dalam daerah kerja 2D dapat
menggunakan persamaan trigonometri biasa. Namun tidak demikian halnya
dengan ruang 3D. Penggunaan persamaan parsial trigonometri kurang dapat
memberikan solusi yang tepat untuk menyatakan pergerakan dari titik ke titik
dalam ruang 3D.
Matriks rotasi
kedudukan tetap di muka bumi, sedang OUVW adalah sistem koordinat local
pada tubuh robot.
Misalnya bentuk kubus dalam Gambar 5.13 adalah tubuh robot dan p
adalah suatu titik pada bagian tubuh robot. Maka p dapat dinyatakan dalam
sistem koordinat OUVW maupun OXYZ,
(5.34)
atau
(5.35)
dan menghitung perpindahan koordinat p pada tubuh robot ini? Dalam hal ini
kita dapat menggunakan matriks transformasi (3x3) R sebagai operator
perpindahan berbasis rotasi. Secara umum perpindahan p dinyatakan sebagai,
Jika komponen vektor pada titik pxyz dan puvw diuraikan, diperoleh
(5.37)
(5.38)
Dengan menggunakan prinsip produk scalar, px, py, dan pz dapat dinyatakan,
(5.39)
(5.40)
(5.41)
(5.42)
atau
(5.43)
dengan Q,
(5.45)
Q = R-1 = RT (5.46)
sehingga,
(5.48)
R. Supriyanto, Hustinawati, Ary Bima K, Rigathi. W. N,
Yogi Permadi, Abdurachman Sa’ad Hal 5 - 26
PHK-I 2010 Buku Ajar
Robotika
(5.49)
maka,
(5.50)
Dengan cara yang sama, rotasi sebesar β pada sumbu OY dengan iy ≡ iv,
dan rotasi sebesar γ pada sumbu OZ dengan iz ≡ iw, dapat dihitung sehingga
didapat,
(5.51)
dan
(5.52)
Matriks Rx,α, Ry,β dan Rz,γ ini dikenal sebagai matriks rotasi dasar yang
sangat berguna dalam aplikasi pemrograman gerak robot manipulator.
Dalam Gambar 5.14, titik p’ dapat dinyatakn dalam pxyz maupun puvw .
Karena p melakukan gerakan rotasi sekaligus translasi sepanjang s maka dapat
ditulis,
(5.53)
atau
(5.54)
(5.55)
(5.56)
Dengan cara ini matriks rotasi R pada persamaan (5.50), (5.51) dan
(5.52) dapat ditulis ulang dalam bentuk matriks T sebagai berikut,
(5.57)
(5.58)
(5.59)
penskala local (local scaling), dan satu elemen terakhir di kanan bawah sebagai
penskala global (global scaling). Operasi penskalaan local dapat dinyatakan
sebagai,
(5.60)
(5.61)
dengan s > 0.
Suatu cara khas representasi analisa hubungan gerak rotasi dan translasi
antara lengan-lengan yang terhubung dalam suatu manipulator telah
diperkenalkan oleh Denavit & Hartenberg (1955). Meskipun telah lima
dasawarsa yang lalu, metoda ini masih banyak digunakan utamanya untuk
pemrograman robot-robot manipulator di industri. Mereka memperkenalkan
suatu metoda yang berguna untuk menetapkan suatu sistem koordinat
berorientasi body (body attached frame, OUVW) untuk setiap lengan/link yang
terhubung dalam suatu struktur hubungan seperti rantai.
Untuk link dengan konfigurasi sendi putaran, matriks A pada sendi ke-n
adalah,
(5.63)
Dalam buku ini akan dibahas 3 metoda yang paling umum dan sering
dipakai untuk menganalisa persamaan kinematik, yaitu sudut Euler sistem I, II,
III (roll, pitch, and yaw). Tabel 5.1 menunjukan 3 macam representasi sudut
Euler ini.
Sistem I
(5.64)
Sistem II
(5.65)
Sistem III
(5.66)
(5.67)
(5.68)
(5.69)
(5.70)
(5.71)
(5.7.2)
(5.73)
(5.74)
(5.75)
(5.76)
(5.77)
(5.78)
(5.79)
Akan tetapi solusi dari Persamaan (5.77), (5.78), dan (5.79) tidak
konsisten, dan dapat menyebabkan kesalahan kontrol, sebab:
1. Fungsi arc-cos atau cos-1 tidak memiliki akurasi yang baik dalam
memperoleh kembali sudut dari nilai cos, karena cos(θ) = cos(-θ).
2. Ketika sin(θ) mendekati nol, yakni, θ ≈ 0o atau θ ≈ ± 180o, Persamaan
(5.78) dan (5.79) akan memberikan hasil yang tidak akurat atau yang
tak dapat didefinisikan. Dalam pemrograman komputer hal ini dapat
menyebabkan hasil perhitungan menjadi NaN (tidak dapat
didefinisikan).
Oleh karena itu diperlukan suatu cara untuk mendeskripsikan lebih jelas
tentang sudut asal yang tepat setelah diinvers. Dalam hal ini Paul et al. (1981)
memperkenalkan sebuah metoda untuk mengklarifikasikan sudut yang
sebenarnya dengan memasukkan informasi tambahan tentang kwadran yang
dibentuk oleh dua parameter pembentuk sudut θ, yaitu x dan y. Notasi yang
digunakan adalah atan2(y, x) atau arctan2(y, x).
(5.80)
Pertama, salah satu dari komponen matrik sebelah kanan Rz ,ф, Ru,θ atau
Rw,ψ dipindah ke kiri dengan sebelumnya diinvers terlebih dahulu. Misalnya
Rz ,ф dipindah ke kiri,
(5.81)
(5.82)
(5.83)
(5.84)
(5.85)
(5.86)
(5.87)
(5.88)
(5.89)
Seterusnya, dari elemen (2, 3) dan (3, 3) di kedua matriks dapat dihitung,
(5.90)
(5.91)
(5.92)
Seperti yang telah disinggung di muka bahwa salah satu contoh robot
aplikasi yang memiliki struktur kinematik nonholonomic adalah mobile robot.
Mobile robot didefinisikan bergerak dalam kawasan 2D. Kontur medan yang
R. Supriyanto, Hustinawati, Ary Bima K, Rigathi. W. N,
Yogi Permadi, Abdurachman Sa’ad Hal 5 - 41
PHK-I 2010 Buku Ajar
Robotika
tidak rata seperti jalan yang naik turun lazimnya tidak dimasukkan sebagai
unsure sumbu Z karena navigasi (gerak robot) tetap bias dimasukkan bergerak
dalam kawasan sumbu XY saja.
(5.93)
(5.94)
(5.95)
(5.96)
Untuk pergerakan dari q1 ke q2, titik q berada di (0, 0) pada sumbu UV.
Karena titik yang bergerak berada pada pusat sumbu, (0, 0) maka perubahan
atau rotasi sudut θ dapat dianggap nol, sehingga dapat dibuktikan,
R. Supriyanto, Hustinawati, Ary Bima K, Rigathi. W. N,
Yogi Permadi, Abdurachman Sa’ad Hal 5 - 43
PHK-I 2010 Buku Ajar
Robotika
(5.97)
(5.98)
(5.99)
R. Supriyanto, Hustinawati, Ary Bima K, Rigathi. W. N,
Yogi Permadi, Abdurachman Sa’ad Hal 5 - 44
PHK-I 2010 Buku Ajar
Robotika
Jika setelah itu robot melakukan maneuver lagi sebesar radian, maka
(5.100)
(5.101)
Untuk suatu grup transformasi (TK ,о) pada setiap titik koordinat dengan
orientasi sudut θ dalam domain ruang/daerah kerja robot, R. Simbol о adalah
operator biner fungsi komposisi (composition function) yang didefinisikan
sebagai berikut.
Misalnya
(5.102)
(5.103)
(5.104)
(5.105)
(5.106)
(5.107)
(5.108)
Mobile robot yang dimaksud di sini ialah mobile robot berpenggerak dua
roda kiri-kanan yang dikemudikan terpisah (differentially driven mobile robot,
disingkat DDMR), seperti yang ditunjukkan dalam Gambar 5.18 berikut ini.
r jari-jari roda (roda kiri dan kanan adalah sama dan sebangun)
Dalam kajian kinematik ini robot diasumsikan bergerak relatif pelan dan
roda tdak slip terhadap permukaan jalan. Maka komponen x dan y dapat
diekspresikan dalam suatu persamaan nonholonomic sebagai berikut,
(5.109)
(5.110)
(5.111)
(5.112)
(5.113)
(5.114)
Dalam skema di atas, input yang diperlukan adalah referensi torsi _ref.
Outputnya diukur dalam bentuk percepatan θ’’, sehingga model dinamik yang
dinamik ynag didefinisikan adalah dinamik invers karena mengubah torsi
Torsi yang diberikan oleh aktuator pada dasarnya harus seimbang dengan
torsi (lawan) yang dihasilkan olek komponen-komponen dinamik struktur robot
dalam pergerakan, yaitu torsi yang dihasilkan dari pergerakan (torsi vs
percepatan angular), torsi yang diukur karena benda /struktur memiliki tenaga
kinetik dan tenaga potensial, efek gaya sentrifugal, efek gaya Coriolis dan
inersia yang disebabkan factor pembebanan dan grafitasi bumi.
Selain itu torsi pada aktuator seharusnya juga mampu mengatasi torsi
lawan yang dihasilkan oleh gangguan Q selama operasi, misalnya gangguan
friksi pada sendi, efek backlash pada gearbox (jika digunakan), efek gaya
interaksi kopel (coupling interaction) antar struktur lengan sendi atau antar
lengan dengan tubuh, efek beban yang dinamik (seperti pada robot pengelas),
dan sebagainya.
Sesuai dengan hukum Newton kedua, torsi yang dihasilkan pada gerakan rotasi
dapat ditulis,
(5.115)
Tenaga Kinetik
(5.116)
(5.117)
(5.118)
Tenaga kinetik ini biasa dinyatakan dalam Joules, J (sistem SI). Satu J setara
dengan 1 N.m.
Tenaga Potensial
(5.119)
Gaya Sentrifugal
Gaya sentrifugal untuk suatu lengan padat dengan massa m dapat ditulis,
(5.120)
Gaya Coriolis
Gaya yang diberi nama sesuai dengan penemunya ini (Gaspard Gustave
de Coriolis, 1792-1843) adalah suatu gaya yang dihasilkan sebagai efek dari
bumi perputar pada porosnya. Gaya ini tidak perlu diperhitungkan jika robot
dioperasikan di tempat yang bebas gravitasi atau di luar angkasa. Namun jika
dioperasikan di planet, misalnya Bumi atau Mars, gaya efek rotasi “planet”
akan berpengaruh terhadap dinamik robot.
Jika skema Gambar 5.19 digabung dengan skema Gambar 5.5 di muka,
akan diperoleh skema yang lebih komplit seperti berikut
(5.121)
(5.122)
τ = N.m (kg.m2 /dt2 ), lmp adalah inersia momen putar lengan terhadap
sumbu putaran (kg. m2 /rad), θ’’ adalah percepatan sudut (rad/dt2 ).
(5.123)
Sesuai dengan sifat fisik batang kayu, inersia momen putar pada salah satu
ujung lain sebagai sumbu putar, lmp adalah
(5.124)
maka (5.125)
(5.126)
(5.127)
L adalah fungsi Lagrangian,
(5.128)
Dengan EK tenaga kinetic
EP Tenaga Potensial
qi koordinat umum robot lengan ke-i
qi turunan pertama koordinat umum robot lengan ke-i
τi torsi yang diaplikasikan pada robot sendi ke-i untuk
menggerakan lengan ke-i
Untuk gerak rotasi dapat ditulis,
(5.129)
(5.130)
Tenaga potensial EP dalam robot ini adalah nol karena P(x,y) tidak melakukan
gerakan berputar menuju kea rah atau menjauhi sumbu, maka
(5.131)
Persamaan (5.131) ini sama dengan Persamaan (5.125) hasil dari analisa
dinamik menggunkaan metoda NE secara sederhana.
Contoh berikut adalah penerapan metode LW untuk menyelesaikan
persamaan dinamik Robot Tangan Dua Sendi seperti Gambar 5.22 berikut ini.
Struktur robot diasumsikan vertical terhadap bumi (sumbu Y vertical)
sehingga efek gravitasi peril diperhatikan.
Penyelesaian:
Jumlah tenaga kinetik
Dengan
Berdasarkan persamaan
(5.132)
(5.133)
dengan
(5.134)
(5.135)
(5.136)
(5.137)
(5.138)
(5.139)
g adalah gravitasi bumi, 9.81m/dt2
(5.140)
dengan
τ(t) vector torsi actuator yang diterapkan pada sendi i,
(5.141)
H(q) verktor matriks transformasi dinamik (n×n), n adalah n-DOF
H(q) verktor matriks torsi (n×1) efek gaya Coriolis dan gerak sentrifugal pada
sendi i,
(5.142)
(5.143)
G(q) verktor matriks torsi (n×1) efek grafitasi
(5.144)
τQ vector torsi gangguan atau pembebanan
Dengan demikian hasil-hasil uraian komponen dinamik robot seperti
dalam Gambar 5.22 dapat diperoleh persamaan-persamaan H, h, dan G sebagai
berikut.
Dari Persamaan (5.132) hingga (5.139) dapat ditulis sebuah matriks
transformasi (nxn) dinamik H dengan n adalah 2 (2DOF),
(5.145)
Dengan elemen matrik adalah Persamaan (5.134), (5.135) dan (5.136).
Efek Coriolis dan sentrifugal terjadi di sendi-2 dengan verktor torsi h,
(5.146)
Efek gravitasi terjadi baik de sindi-1 maupun sendi-2,
(5.147)
Untuk sistem robot tangan planar dua sendi maka efek G dapat
diabaikan, sehingga Persamaan (5.140) menjadi,
atau
(5.148)
Dengan demikian persamaan dinamik majunya adalah,
(5.149)
R. Supriyanto, Hustinawati, Ary Bima K, Rigathi. W. N,
Yogi Permadi, Abdurachman Sa’ad Hal 5 - 66
PHK-I 2010 Buku Ajar
Robotika
(5.150)
5.6 JACOBIAN
5.6.1 Euclidean
Untuk menerangkan konsep Jacobian terlebih dahulu diulas ulang
tentang konsep ruang Euclidean (Euclidean Space) yang dipakai sebagai acuan
dalam penerapan konsep Jacobian. Ruang Euclidean adalah termasuk konsep
matematik dasar yang paling kuno yang dipercayai dijabarkan pertama kali
oleh Euclid( 323-283SM), seorang pemikir asal Yunani. Ruang Euclidean
adalah ruang 2D dan 3D yang kita pakai sebagai acuan dalam menerangkan
konsep matematik dasar tentang pengertian suatu ruang. Dari sini kita dapat
menyatakan konsep-konsep tentang jarak, panjang dan sudut dari suatu
koordinat dalam suatu dimensi.
(5.151)
(5.152)
(5.153)
Panjang suatu vector x dapat dinyatakan sebagai,
(5.154)
Sudut θ antara vector x dan y dapat dinyatakan sebagai,
(5.155)
(5.156)
Sebagai contoh, misalnya kita punya suatu bentuk trajektor robot
referensi di ruang 2D yang dinyatakan sebagai tref(t) = f(rxi(t), ryi(t)), dan
trajektor actual tact(t)= f(axi(t), ayi(t)), maka jarak euclidean antara dua fungsi
ini adalah ,
(5.157)
Matriks Jacobian adalah suatu matrik dengan turunan pertama dari suatu
fungsi vektor. Misalnya F: n -> m adalah sebuah fungsi dari suatu
Euclidean n-space ke Euclidean m-space. Jika fungsi dari suatu bilangan nyata
pada setiap elemen dari komponen m, y1(x1,…,xn),…,ym(x1,…xn), maka matriks
Jacobian fungsi F,JF adalah,
(5.158)
Jika q adalah suatu titik didalam Rn, dan fungsi F dapat diturunkan
(differentiable) terhadap q, maka turunannya dinyatakan sebagai J F(q). dalam
hal ini, untuk setiap titik yang berdekatan dengan q, katakanlah p, maka F(p)
dapat didekati dengan cara,
(5.159)
Dalam pemodelan robotika, matriks Jacobian dapat digunakan untuk
memperoleh persamaan gerak. Bentuk dasarnya adalah sebagai berikut,
(5.160)
dengan x matriks x pada koordinat Cartesian
θ matriks θ pada koordinat ruang sendiri/sudut
J matriks Jacobian
R. Supriyanto, Hustinawati, Ary Bima K, Rigathi. W. N,
Yogi Permadi, Abdurachman Sa’ad Hal 5 - 69
PHK-I 2010 Buku Ajar
Robotika
Sebagai contoh, lihat kembali robot tangan planar dua sendi seperti
pada gambar 5.22 dimuka.
Persamaan kinerja majunya adalah
dan
(5.161)
Maka matriks Jacobian dapat diperoleh,
(5.162)
dengan
(5.163)
(5.164)
(5.165)
(5.166)
(5.167)
(5.168)
Maka rumus inversnya,
(5.169)
absolute determinan ini juga dapat memberikan informasi tentang apakah suatu
nilai fungsi bersifat membesar/mengembang atau mengecil/menciut terhadapt
suatu titik q.
5.6.4. Singularity
Singularity adalah suatu keadaan yang terjadi pada suatu fungsi jika
determinan Jacobian-nya adalah sama dengan nol. Misalnya, dalam kasus robot
tangan planar dua sendi,
(5.170)
Maka (5.171)
(5. 172)
Dengan
(5.173)
Perhatikan gambar (5.18). sebelumnya telah diterangkan tentang
persamaan kinematik untuk mobile robot DDRm secara umum yaitu q(t) =
TNH(q)θ(t) dengan TNH adalah matriks transformasi yang dapat menyelesaikan
masalah nonholonimic pada system koordinat umum robot, q= [xF,yF,φ]T ,
dengan
(5.174)
(5.175)
atau
(5.176)
dengan
M(q) matriks transformasi (2×2) yang terkait dengan gerak dinamik percepatan
V(q,q) matriks transformasi (2×2) yang terkait dengan efek Coriolis dan gaya
sentrifugal,
B(q) matriks determinan untuk torsi motor kiri dan kanan,
τQ Gangguan luar
Matriks-matriks ini adalah,
(5.177)
(5.188)
(5.189)
dengan
m = mc+ 2mw ; c = massa robot
(kġ), mw= massa robot (kg). Ic adalah inersia momen tubuh robot
I = mcd2 + 2mwb2+ Ic + 2Im ; terhadap sumbu vertical melalui titik G,
LATIHAN
1. Jelaskan perbedaan antara analisa kinematika dan analisa dinamika
robot!
2. Jelaskan perbedaan antara kinematika maju dan kinematika inverse!
Apa fungsi dari keduanya?
3. Apa yang dimaksud dengan model-based control dan nonmodel-based
control? Jelaskan perbedaannya!
4. Apa yang dimaksud dengan model pergerakan holonomic dan
nonholonomic? Jelaskan perbedaannya dan berikan contohnya!
5. Metode Denavit-Hrtenberg (D-H) biasanya digunakan untuk
menganalisa hubungan gerak rotasi dan translasi antara lengan-lengan
yang terhubung dengan manipulator, Jelaskan cara kerja metode ini!
6. Jelaskan perbedaan antara transformasi homogeny dan transformasi
heterogen dalam sistem nonholonomic!
7. Gambarkan skema dasar kontrol dinamik dan jelaskan fungsi
komponennya!
8. Apa yang anda ketahui tentang matriks Jacobian? Jelaskan fungsi
matriks Jacobian dalam pemodelan gerak dinamik!
REFERENSI
http://teundiksha.files.wordpress.com/2010/04/sekilas20codevisionavr.pdf
http://id.wikipedia.org/wiki/debugging
BAB VI
MOBILE ROBOT
6.1.1. Sensor
1. Sensor Ultrasonik
Sensor ultrasonik adalah sensor yang bekerja berdasarkan prinsip
pantulan gelombang suara, dimana sensor ini menghasilkan gelombang suara
yang kemudian menangkapnya kembali dengan perbedaan waktu sebagai dasar
penginderaannya. Perbedaan waktu antara gelombang suara yang dipancarkan
dengan gelombang suara ditangkap kembali tersebut adalah berbanding lurus
dengan jarak atau tinggi objek yang memantulkannya. Jenis objek yang dapat
diindera diantaranya adalah: objek padat, cair, butiran maupun tekstil.
#include <mega8535.h>
#include <delay.h>
#include <stdio.h>
void main(void)
{
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00;
MCUCSR=0x00;
TIMSK=0x00;
ACSR=0x80;
SFIOR=0x00;
lcd_init(16);
while (1)
{
count=0;
arah=out;
pulse=1;
delay_us(5);
pulse=0;
arah=inp;
pulse=1;
while(echo==0){};
while(echo==1)
{
count++;
}
jarak=((float)count)/242*10;
sprintf(kata1,"Counter=%d",count);
sprintf(kata2,"jarak=%3.2f cm",jarak);
lcd_clear();
lcd_gotoxy(0,0);lcd_puts(kata1);
lcd_gotoxy(0,1);lcd_puts(kata2);
delay_ms(200);
};
}
2. Sensor Inframerah
Sensor ini adalah suatu penambahan besar kepada deretan sensor yang
tersedia untuk robotik. Sensor sharp adalah yang sungguh murah, penggunaan
sangat kecil tenaga, cocok ruang kecil, dan mempunyai suatu cakupan unik
yang idealnya disesuaikan untuk robot kecil dalam ruang manusia seperti gang,
ruang, dan simpang siur jalan yang sekali-kali. Berikut merupakan program
pada penggunaan sensor IR menggunakan Modul Sharp GP2D15.
#include <mega8535.h>
#define IR PORTA.0
void main(void)
{
PORTA=0x01;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00;
MCUCSR=0x00;
TIMSK=0x00;
ACSR=0x80;
SFIOR=0x00;
lcd_init(16);
while (1)
{
// Place your code here
if (IR==0){
lcd_gotoxy(0,0);lcd_putsf(" Terkena Sensor ");
}
else {
lcd_clear();
}
};
}
3. Sensor Api
Sistem informasi pada robot untuk mendapatkan kondisi ada tidaknya
api lilin pada ruangan dan posisi api di dalam ruangan merupakan masalah
tersendiri dalam penyelesaiannya. Salah satu pemecahan tersebut ádalah
dipasangnya sensor yang bekerja dengan mendeteksi adanya panas api. Sensor
ini memberikan sinyal aktif apabila mendeteksi adanya api dalam ruangan. dan
bekerja berdasarkan filter yang dibuat.
Hamamatsu UVTron Flame Detector dan rangkaian driver dapat
mendeteksi api dari lilin atau puntung rokok dalam jarak 5 meter. Biasanya
digunakan sebagai alat untuk mendeteksi sumber api seperti lilin, yang
beroperasi pada panjang spectral 185 hingga 160nm. Sensor ini juga dapat
mendeteksi beberapa fenomena yang tak nampak seperti transmisi tegangan
tinggi. [ 4 ]
#include <mega8535.h>
void main(void)
{
// Declare your local variables here
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
R. Supriyanto, Hustinawati, Ary Bima K, Rigathi. W. N,
Yogi Permadi, Abdurachman Sa’ad Hal 6 - 13