BAB II TINJAUAN PUSTAKA 2.1
Robot Manipulator
Robot manipulator merupakan robot industri yang bersifat general purpose yang dikendalikan oleh komputer, terdiri atas beberapa link kaku yang dihubungkan secara seri oleh sendi-sendi putar atau prismatik[7]. Satu ujung dari rangkaian link tersebut dikaitkan dengan dasar penyangga, sedangkan ujung lainnya dapat bergerak bebas dan dilengkapi dengan sebuah alat (tool) untuk memanipulasi obyek atau melakukan tugas-tugas perakitan. Gerakan sendi-sendi akan menghasilkan gerakan link secara relatif. Secara mekanik, robot tersusun dari sebuah lengan/arm (atau mainframe) dan sebuah pergelangan tangan (wrist) yang dilengkapi sebuah alat. Robot didesain untuk dapat menjangkau sebuah benda kerja (workpiece) yang terdapat dalam lingkup kerja (work volume) robot tersebut. Lingkup kerja adalah ruang lingkup pengaruh sebuah robot di mana lengan robot dapat menghantarkan pergelangan tangan ke setiap titik dalam ruang lingkup tersebut.
Gambar II.1 PUMA seri 560. Lengan secara umum dapat bergerak dengan tiga derajat kebebasan, yang kombinasinya akan dapat menempatkan pergelangan tangan pada benda kerja. Pergerakan pergelangan tangan terdiri atas tiga gerakan putar, yang biasa disebut pitch, yaw, dan roll. Kombinasi gerakan-gerakan tersebut akan mengarahkan
8
orientasi alat sesuai dengan konfigurasi obyek yang akan dimanipulasi. Jadi, untuk robot enam-sendi, subassembly lengan berfungsi untuk mekanisme mendapatkan posisi, sedangkan subassembly pergelangan tangan berfungsi untuk mekanisme mendapatkan orientasi. Konsep ini direpresentasikan dengan baik oleh robot Unimation PUMA seri 560 yang dapat dilihat pada Gambar II.1. Cara pergerakan sebuah robot manipulator dipelajari dalam kinematika dan dinamika robot. Sebuah robot manipulator tidak dapat dipandang hanya sebagai sebuah rangkaian link mekanis. Lengan mekanis hanya merupakan satu komponen dalam sistem robot. Seperti tergambar pada Gambar I.1, sistem robot terdiri dari lengan manipulator, catu daya eksternal, piranti ujung lengan, sensor eksternal dan internal, antarmuka komputer, dan komputer pengendali[14]. Bahkan piranti lunak pemrograman juga harus dianggap sebagai bagian yang integral dengan sistem keseluruhan, karena bagaimana sebuah robot diprogram dan dikendalikan mempunyai pengaruh yang besar pada unjuk kerja dan jangkauan aplikasinya.
piranti input atau teach pendant
sensor
catu daya
pengendali komputer
pengendali komputer
penyimpan program atau jaringan
tool ujung lengan
Gambar II.2 Diagram blok sistem robot.
9
2.1.1 Kinematika Maju Kinematika adalah ilmu mengenai gerakan yang memperlakukan gerakan tanpa memperhatikan gaya-gaya yang menyebabkan gerakan tersebut[5]. Dalam ilmu kinematika, variabel yang diperhitungkan adalah posisi, kecepatan, percepatan dan turunan-turunan variabel posisi yang lebih tinggi, baik terhadap waktu atau variable lain. Jadi pembahasan kinematika manipulator merujuk pada semua sifatsifat geometris dan berbasis waktu dari gerakan. Permasalahan yang dibahas dalam kinematika maju adalah bagaimana menghitung posisi dan orientasi efektor akhir sebuah lengan manipulator, apabila diketahui sudut gerakan sendi-sendi putar manipulator. Masalah kinematika sangat terkait dengan bagaimana mendefinisikan bentuk geometris sebuah robot seperti yang akan dibahas di bawah ini. Dalam mempelajari robotika, lokasi obyek dalam ruang 3D merupakan hal yang perlu diperhatikan. Yang dimaksud dengan obyek adalah link manipulator, bagian dan peralatan yang berhubungan dengan manipulator, serta obyek-obyek dalam lingkungan manipulator. Pada tingkatan paling dasar, obyek-obyek tersebut dapat dideskripsikan dengan dua atribut, yaitu posisi dan orientasi[5]. Untuk mendeskripsikan posisi dan orientasi, sebuah sistem koordinat, atau kerangka (frame), dilekatkan pada obyek. Selanjutnya posisi dan orientasi dari rangka tersebut dideskripsikan terhadap sebuah sistem koordinat referensi, seperti pada Gambar II.3. Setiap kerangka dapat menjadi sebuah sistem referensi di mana posisi dan orientasi obyek dinyatakan. Sehingga transformasi dan pengubahan deskripsi atribut posisi dan orientasi sebuah benda dari satu kerangka ke kerangka lain biasa dilakukan dalam robotika.
10
Gambar II.3 Sistem koordinat dilekatkan pada manipulator dan obyek-obyek di lingkungan[5]. Untuk mendeskripsikan bentuk geometris sebuah robot manipulator, sebuah mekanisme yang biasa disebut notasi Denavit-Hartenberg (D-H) biasa dipakai. Notasi D-H ini akan menghasilkan matrik transformasi homogen 4x4 yang mewakili sistem koordinat sebuah link dipandang dari sistem koordinat link sebelumnya[7]. Pada notasi D-H, setiap link akan mempunyai empat buah parameter, yaitu ai, αi, di, dan θi. Definisi dari masing-masing parameter tersebut, merujuk pada Gambar II.4, adalah sebagai berikut. ai = jarak dari Zˆ i ke Zˆ i 1 diukur sepanjang Xˆ i αi = sudut dari Zˆ i ke Zˆ i 1 diukur di sekeliling Xˆ i di = jarak dari Xˆ i 1 ke Xˆ i diukur sepanjang Zˆ i θi = sudut dari Xˆ i 1 ke Xˆ i diukur di sekeliling Zˆ i Definisi yang disebutkan di atas adalah konvensi yang digunakan Craig (2005). Hal di atas perlu ditekankan karena banyak notasi yang disebut DenavitHartenberg, namun berbeda dalam beberapa detail[5]. Contoh dari implementasi notasi ini dapat dilihat di subbab 3.3.1.
11
Gambar II.4 Frame {i} dilekatkan secara kaku pada link i. Setelah parameter-parameter D-H diketahui, maka dapat disusun sebuah matrik transformasi untuk masing-masing link yang akan menyatakan posisi dan orientasi frame {i} terhadap frame {i-1}. Matrik tersebut mempunyai bentuk umum sebagai berikut. c i s c i 1 i i 1 iT s i s i 1 0
s i c i c i 1
s i 1
c i s i 1 0
c i 1 0
0
s i 1d i c i 1d i 1 a i 1
... (II.1)
dengan: cθi
= cos θi,
sθi
= sin θi,
cαi
= cos αi,
αi
= sin αi.
Selanjutnya semua matrik transformasi yang sudah diperoleh dikalikan untuk mendapatkan satu matrik transformasi yang menghubungkan frame {N} (frame efektor akhir) dengan frame {0} 0 0 1 2 N 1 N T 1T 2T 3T ... N T
... (II.2)
12
Merujuk Gambar III.5, bila diketahui koordinat O0 (x0, y0, z0) dan diketahui matrik transformasi homogen
0 6T
, maka koordinat O6 dapat dihitung dengan
persamaan berikut. O6 0P6 O0
... (II.3)
dengan 0P6 adalah matrik yang menyatakan translasi dari koordinat {0} ke koordinat {6} yang dibentuk dari kolom ke-4 matrik transformasi homogen 06T . Matrik lain yang biasa digunakan adalah 60 R yang menyatakan rotasi dari koordinat {0} ke koordinat {6} yang dibentuk dari kolom ke-1, ke-2 dan ke-3 matrik transformasi homogen 06T . 2.1.2 Kinematika Balik Kebalikan dengan kinematika maju, kinematika balik (inverse kinematics) membahas mengenai komputasi sudut gerakan sendi-sendi putar manipulator, apabila diketahui target posisi dan orientasi efektor akhir[5]. Masalah ini dapat dipandang sebagai sebuah pemetaan dari lokasi-lokasi pada ruang Cartesian 3D ke lokasi pada ruang sendi internal robot. Pemasalahan kinematika balik tidak sesederhana kinematika maju, karena persamaan-persamaan kinematika adalah persamaan nonlinear dan pertanyaan mengenai berapa banyak alternatif solusi muncul dalam kinematika balik. Masalah kinematika balik ini dapat diselesaikan dengan banyak metoda. Metoda-metoda penyelesaian kinematika balik dapat dibagi menjadi dua kelompok besar, yaitu penyelesaian bentuk tertutup (closed-
form) dan penyelesaian numeris[5]. Kelompok penyelesaian bentuk tertutup dapat dibagi lagi menjadi dua metoda: pendekatan aljabar dan pendekatan geometris. Untuk menyelesaikan masalah kinematika balik sebuah robot manipulator dengan enam derajat kebebasan biasanya digunakan pendekatan numeris. Namun kasus khusus robot manipulator dengan enam derajat kebebasan dapat diselesaikan secara analitis. Kasus khusus tersebut adalah ketika robot tersebut mempunyai sumbu-sumbu sendi bersebelahan yang berpotongan pada satu titik. Contohnya,
13
sumbu-sumbu sendi 4, sendi 5, dan sendi 6 pada PUMA berpotongan pada satu titik. Metode penyelesaian kasus khusus ini pertama kali dipaparkan oleh Pieper sehingga sering disebut penyelesaian Pieper[5]. Dalam masalah kinematika balik, posisi dan orientasi efektor akhir terhadap O0 diketahui, sehingga 06T , 0P6 dan 60 R diketahui. Pada penyelesaian Pieper, pertama kali dicari 0P4 dengan menyelesaikan persamaan berikut. 0 0 0 P4 0P6 d 6 0T6 1 0
... (II.4)
Setelah 0P4 dihitung, nilai theta untuk sendi 1, sendi 2, dan sendi 3 dicari dengan menyelesaikan persamaan-persamaan berikut. 0
P4 01T 21T 32T 3P4
... (II.5)
a3 d s 0 P4 01T 21T 32T 4 3 d 4 c 3 1
... (II.6)
Dengan menyelesaikan persamaan di atas, diperoleh θ1, θ2, dan θ3. Selanjutnya persamaan berikut diselesaikan, dihitung ketika θ4=0. 4 6R
40R 1 60 R
... (II.7)
Setelah 64 R diketahui, dengan menggunakan penyelesaian sudut Euler Z-Y-Z, maka θ4, θ5, dan θ6 dapat diperoleh.
2.1.3 Dinamika Robot Manipulator Dinamika adalah sebuah bidang ilmu pengetahuan yang mempelajari gaya-gaya yang dibutuhkan untuk menimbulkan gerakan[5]. Untuk mempercepat sebuah manipulator dari kondisi diam, meluncur dengan kecepatan efektor akhir konstan, dan akhirnya mengurangi kecepatan hingga berhenti, sebuah fungsi torsi yang
14
cukup kompleks perlu diberikan pada aktuator-aktuator sendi. Fungsi torsi aktuator yang diperlukan tergantung pada sifat-sifat temporal dan spasial dari jalur yang ditempuh efektor akhir, massa link-link manipulator dan beban yang sedang ditangani, gesekan pada sendi-sendi, dan faktor-faktor lain. Salah satu metoda untuk mengendalikan sebuah manipulator untuk mengikuti jalur yang diinginkan meliputi perhitungan fungsi torsi aktuator dengan menggunakan persamaan-persamaan dinamika gerakan manipulator. Penggunaan lain dari persamaan-persamaan dinamika adalah untuk simulasi. Dengan merumuskan
persamaan-persamaan
dinamika
sedemikian
rupa
sehingga
percepatan sebuah manipulator dihitung sebagai fungsi dari torsi aktuator, dimungkinkan untuk menyimulasikan bagaimana sebuah manipulator akan bergerak ketika dikenai seperangkat torsi-torsi aktuator. Banyak pendekatan yang bisa digunakan untuk merumuskan persamaan-persamaan dinamika. Pendekatan yang banyak dipakai adalah perumusan Newton-Euler dan Lagrange-Euler[7]. Perumusan persamaan dinamika tersebut belum melibatkan aktuator yang menggerakkan sendi robot. Penurunan fungsi transfer yang menghubungkan torsi yang diberikan aktuator dan perubahan angular dari sendi akan dibahas di subbab 2.3.1.
2.2
Simulasi Fisika dan Physics Engine
2.2.1 Simulasi Model terkait erat dengan simulasi. Oleh karena itu sebelum membahas apa itu simulasi, perlu dibahas dahulu pengertian model. Secara singkat, model dapat dinyatakan sebagai sekumpulan asumsi mengenai sebuah sistem[8]. Model biasa dibedakan menjadi model statis dan model dinamis. Sebuah model disebut statis bila model tersebut hanya mencakup asumsi-asumsi sistem dalam keadaan diam atau tidak berubah dalam waktu. Sebuah model disebut dinamis bila model tersebut juga mencakup evolusi dalam kawasan waktu dari sistem. Walaupun kebanyakan sistem, baik sistem di alam maupun sistem sosial, berubah dalam waktu, namun membangun model statis bukannya tanpa alasan. Alasan utama dari
15
membangun model statis adalah bahwa umumnya lebih mudah untuk memperoleh pemahaman menyeluruh terhadap suatu sistem dalam keadaan diam. Hartmann (1996) mengajukan definisi: simulasi adalah sebuah peniruan sebuah proses dengan proses yang lain. Dasar dari simulasi adalah sebuah model dinamis yang menetapkan beberapa asumsi mengenai evolusi-dalam-waktu, selain beberapa sifat statis, dari obyek atau sistem yang dikaji. Simulasi dapat dibagi menjadi simulasi yang mengasumsikan dinamika kontinu dan simulasi yang mengasumsikan dinamika diskrit. Hartmann juga menyebutkan alasan-alasan melakukan simulasi sebagai berikut. 1. Simulasi sebagai sebuah teknik untuk meneliti dinamika detail dari sebuah sistem. 2. Simulasi sebagai sebuah alat heuristik untuk membangun hipotesis, model, dan teori. 3. Simulasi sebagai sebuah pengganti dari eksperimen, yaitu untuk melakukan eksperimen numeris. 4. Simulasi sebagai sebuah alat
untuk para experimentalist, yaitu untuk
mendukung eksperimen. 5. Simulasi sebagai sebuah alat pedagogis, yaitu untuk memperoleh pemahaman terhadap sebuah proses.
2.2.2 Simulasi Fisika Walaupun simulasi fisika (physics simulation) sudah menjadi bidang penelitian yang amat luas, namun mencari definisi simulasi fisika bukanlah hal yang mudah. Banyak referensi yang membahas simulasi fisika, antara lain oleh Leckie dan Greenspan[10], dan Chabukswar, dkk[3] , namun tidak menyebutkan secara eksplisit apa definisi simulasi fisika. Salah satu definisi yang diperoleh adalah definisi yang dirumuskan Chaperot dan Fyve[4], yaitu simulasi badan kaku (rigid body simulation), atau simulasi fisika, adalah metoda untuk menyimulasikan sistem mekanika. Definisi di atas menyamakan simulasi fisika dengan simulasi rigid body, namun istilah simulasi fisika juga digunakan di lingkup yang lebih luas, seperti pada simulasi fisika di bidang penelitian nuklir atau simulasi terkait hukum
16
termodinamika. Dari referensi yang ada, dapat disimpulkan definisi yang lebih tepat dari simulasi fisika adalah simulasi dari sebuah sistem yang terdiri dari benda-benda yang berperilaku sesuai dengan hukum-hukum fisika, seperti hukum Newton atau hukum termodinamika. Istilah lain yang juga sering digunakan adalah simulasi dinamika, yang bisa didefinisikan sebagai simulasi dari sistem yang terdiri dari benda-benda yang dapat bergerak bebas di ruang tiga dimensi menurut hukum-hukum dinamika Newton. Istilah simulasi fisika sering digunakan untuk merujuk simulasi dinamika seperti pada penelitian Chaperot dan Fyve di atas, yang juga menyebut istilah simulasi rigid body yang pada dasarnya sama dengan simulasi dinamika. Untuk selanjutnya pada penelitian ini, istilah simulasi fisika akan merujuk pada konteks yang lebih sempit, yaitu untuk simulasi dinamika.
2.2.3 Physics Engine Seperti telah disebutkan pada Bab I, physics engine adalah sebuah program komputer yang menyimulasikan model fisika Newtonian, menggunakan variabelvariabel seperti massa, kecepatan, gesekan dan hambatan angin. Physics engine biasanya terdiri dari dua komponen: sebuah mesin simulasi dinamika dan mesin deteksi tumbukan (collision detection). Mesin deteksi
tumbukan akan
mendapatkan informasi bentuk dari setiap benda. Pada setiap langkah waktu, mesin ini akan menentukan benda mana yang menyentuh benda lain, dan memberikan informasi titik kontak yang ada pada mesin simulasi dinamika. Mesin simulasi dinamika akan membuat sebuah sendi kontak (contact joint) antara benda-benda yang bersentuhan. Selanjutnya mesin simulasi dinamika akan menghitung posisi dan orientasi dari benda-benda yang disimulasikan untuk langkah waktu (time step) berikutnya dengan memperhitungkan semua gaya-gaya yang mempengaruhi benda-benda tersebut. Sebuah simulasi dalam physics engine akan berlangsung sebagai berikut[13]. 1. Ciptakan sebuah dunia dinamika. 2. Ciptakan benda-benda dalam dunia dinamika tersebut. 3. Tetapkan posisi dan orientasi dari semua benda.
17
4. Ciptakan sendi-sendi dalam dunia dinamika. 5. Pasang sendi-sendi tersebut pada benda-benda yang sesuai. 6. Tetapkan parameter-parameter dari semua sendi. 7. Ciptakan dunia tumbukan dan obyek-obyek geometri tumbukan bila diperlukan. 8. Ciptakan sebuah grup sendi untuk menyimpan sendi-sendi kontak. 9. Diulangi selama simulasi : a. berikan gaya pada benda-benda bila diperlukan, b. atur parameter sendi bila diperlukan, c. panggil deteksi tumbukan, d. ciptakan sebuah sendi kontak untuk setiap titik tumbukan, dan simpan dalam grup sendi kontak, e. lakukan sebuah langkah simulasi, f. hapus semua sendi yang ada dalam grup sendi kontak. 10. Hancurkan dunia dinamika dan dunia tumbukan.
2.3
Pengendalian Robot Manipulator
2.3.1 Pengendalian Robot Manipulator dengan Perhitungan Torsi 1. Fungsi Transfer sebuah Sendi Tunggal Sendi-sendi robot manipulator biasanya digerakkan dengan motor DC. Untuk itu perlu dibahas terlebih dahulu pemodelan sebuah motor DC. Pada dasarnya motor torsi DC adalah sebuah motor dengan magnet permanen, armature yang dieksitasi, dan mempunyai rotasi yang kontinu, yang mempunyai fitur-fitur seperti rasio tenaga-torsi yang tinggi, operasi dengan kecepatan rendah yang halus, karakteristik kecepatan-torsi linear, dan konstata waktu pendek[7]. Penggunaan medan magnet permanen dan catu daya DC memberikan torsi maksimum dengan masukan daya minimum dan berat minimum. Fitur-fitur ini juga mengurangi induktansi motor, dan oleh karena itu mengurangi konstanta waktu elektris. Pada Gambar II.5, sebuah rangkaian ekivalen dari motor torsi magnet permanen DC dikendalikan-armature untuk sebuah sendi digambarkan.
18
Gambar II.5 Rangkaian ekivalen sebuah motor DC dikendalikan-armature[7]. Va
tegangan armature, volt
Vf
tegangan medan, volt
La
induktansi armature, Henry
Lf
induktansi medan, Henry
Ra
hambatan armature, ohm
Rf
hambatan medan, ohm
ia
arus armature, ampere
if
arus medan, ampere
eb
back electromotive force (emf), volt
torsi yang diberikan oleh motor, oz.in
m
perpindahan angular dari poros motor, radian
L
perpindahan angular dari poros beban, radian
Jm
momen inersia dari motor ditinjau dari poros motor, oz.in.s2/rad
fm
koefisien friksi viscous dari motor ditinjau dari poros motor, oz.in.s/rad
JL
momen inersia dari beban ditinjau dari poros beban, oz.in.s2/rad
fL
koefisien friksi viscous dari beban ditinjau dari poros beban, oz.in.s/rad
Nm
cacah gigi dari gir masukan (gir motor)
NL
cacah gigi dari gir keluaran (gir beban)
19
Batang motor dirangkaikan ke rangkaian gir ke beban dari link. Merujuk rangkaian gir pada Gambar II.6 , jarak linear total yang ditempuh masing-masing gir adalah sama, sehingga : d m d L , dan rm m rL L
... (II.8)
dengan rm dan rL adalah radius dari gir masukan dan gir keluaran. Karena radius dari gir proporsional dengan banyaknya gigi yang dipunyai gir, maka :
atau
Nmθm = NLθL
... (II.9)
Nm m n 1 NL L
... (II.10)
dengan n adalah rasio gir dan n menghubungkan θL ke θm dalam persamaan :
L (t ) n m (t )
... (II.11)
Gambar II.6 Analisa sebuah rangkaian gir.
20
Mengambil dua turunan waktu pertama dari persamaan di atas, diperoleh:
L (t ) nm (t )
... (II.12)
L (t ) nm (t )
... (II.13)
Bila sebuah beban disambungkan ke gir keluaran, maka torsi yang dibangkitkan di poros motor sama sengan penjumlahan dati torsi yang didisipasi oleh motor dan beban, sehingga: torsi dari torsi pada torsi pada beban poros motor motor dirujuk ke poros motor
... (II.14)
(t ) m (t ) L* (t )
... (II.15)
atau,
Torsi beban dirujuk ke poros beban adalah :
L (t ) J LL (t ) f LL (t )
... (II.16)
Sedangkan torsi motor dirujuk ke poros motor adalah :
m (t ) J mm (t ) f mm (t )
... (II.17)
Mengingat prinsip konservasi usaha menyatakan bahwa usaha yang dilakukan beban dirujuk ke poros beban, L L , besarnya sama dengan usaha yang dilakukan beban dirujuk ke poros motor, L* m , maka :
L* (t )
L L (t ) n L (t ) m (t )
... (II.18)
Menggunakan persamaan II.16, persamaan II.12, dan persamaan II.13, diperoleh: L* (t ) n 2 J Lm (t ) f Lm (t )
... (II.19)
Menggunakan persamaan II.17 dan persamaan II.19, torsi yang dibangkitkan pada poros motor (persamaan II.15) adalah :
(t ) m (t ) L* (t ) ( J m n 2 J L )m (t ) ( f m n 2 f L )m (t ) J eff m (t ) f eff m (t )
... (II.20)
21
dengan Jeff = Jm + n2JL adalah momen inersia efektif dari gabungan momen inersia motor dan beban ditinjau ke poros motor, dan feff = fm + n2fL adalah koefisien gesekan viscous efektif dari gabungan koefisien motor dan beban ditinjau ke poros motor Berdasar persamaan di atas, fungsi transfer dari sistem manipulator sendi-tunggal dapat diturunkan, Karena torsi yang dibangkitkan pada poros motor meningkat secara linear terhadap arus armature, independen terhadap kecepatan dan posisi angular, maka:
(t ) K a ia (t )
... (II.21)
dengan Ka adalah konstanta proporsional torsi-motor dalam satuan oz.in/A. Menerapkan hukum tegangan Kirchhoff pada rangkaian armature, diperoleh: V a(t ) Ra i a (t ) La
dia (t ) eb (t ) dt
... (II.22)
dengan eb(t) adalah gaya gerak listrik (electromotive force/emf) balik yang besarnya proporsional dengan kecepatan angular motor.
eb (t ) K bm (t )
... (II.23)
dan Kb adalah konstanta proporsionalitas dengan satuan V.s/rad. Mengambil transformasi Laplace dari persamaan di atas, dan menyelesaikannya untuk Ia(s), diperoleh: Va ( s ) sK b m ( s ) Ra sLa Menerapkan transformasi Laplace pada persamaan II.20, diperoleh: I a (s)
... (II.24)
T ( s ) s 2 J eff m ( s ) sf eff m ( s )
... (II.25)
Menerapkan transformasi Laplace pada persamaan II.21, dan melakukan substitusi Ia(s) dari persamaan II.24, diperoleh: V ( s ) sK b m ( s ) T ( s) K a I a (s) K a a Ra sLa
... (II.6)
Menyetarakan persamaan II.25 dan persamaan II.26 dan mengatur suku-suku persamaan, diperoleh fungsi transfer dari tegangan armature ke perpindahan angular dari poros motor:
22
m (s) Va ( s )
Ka 2
s s J eff La ( La f eff ) s Ra J eff K a K b
... (II.27)
Karena konstanta waktu elektris dari motor jauh lebih kecil dari konstanta waktu mekanis, pengaruh induktansi armature, La, dapat diabaikan, sehingga persamaan di atas dapat disederhanakan sebagai berikut: m (s) Ka K Va ( s ) s sRa J eff Ra f eff K a K b s (Tm s 1)
... (II.28)
dengan
K
Tm
dan
Ka adalah konstanta gain motor Ra f eff K a K b
Ra J eff Ra f eff K a K b
adalah konstanta waktu motor
Karena keluaran sistem kendali adalah perpindahan angular dari sendi [ΘL(s)], menggunakan persamaan II.11 dan hasil transformasi Laplace ekivalennya, posisi angular sendi ΘL(s) dapat dihubungkan dengan tegangan armature Va(s): L ( s) nK a Va ( s ) s ( sRa J eff Ra f eff K a K b )
Va(s) +
τm(s)
Σ -
1 sLs Rs
Ka
... (II.29)
θm(s)
sθm 1 J eff s f eff
1 s
θL(s)
n
Kb
Gambar II.7 Fungsi alih lup terbuka dari sebuah lengan robot sendi-tunggal.
23
Persamaan II.29 adalah fungsi transfer dari sebuah manipulator sendi-tunggal yang menghubungkan tegangan yang diberikan dengan perpindahan angular dari sendi. Diagram blok dari sistem ditunjukkan pada Gambar II.7. 2. Pengendali Posisional untuk Sebuah Sendi Tunggal
Kegunaan sebuah pengendali posisional adalah untuk men-servo motor sehingga perpindahan angular sendi aktual akan mengikuti perpindahan angular yang diinginkan. Pada teknik ini, tegangan yang diberikan proporsional secara linear dengan galat antara perpindahan angular aktual sendi yang diinginkan. Va (t )
K p e(t ) n
K p [ Ld (t ) L (t )] n
... (II.30)
dengan Kp adalah gain balikan posisi dengan satuan volt per radian, e(t ) Ld (t ) L (t ) adalah galat sistem, dan n (rasio gir) dimasukkan untuk
menghitung tegangan yang diberikan merujuk ke poros motor. Persamaan II.30 menunjukkan bahwa perpindahan angular aktual sendi dibalikkan untuk mendapatkan galat yang dikuatkan dengan gain balikan posisi KP
untuk
memperoleh tegangan yang diberikan. Dengan demikian, sistem robot senditunggal yang dibahas telah diubah dari sistem kendali lingkar terbuka (persamaan II.29) menjadi sistem kendali lingkar tertutup dengan balikan negatif, yang ditampilkan pada Gambar II.8. Posisi angular aktual dari sendi dapat diukur baik dengan enkoder optis maupun dengan potensiometer. Menerapkan tranformasi Laplace pada persamaan II.30: Va ( s )
K p [ dL ( s ) L ( s )] n
K p E ( s) n
... (II.31)
dan melakukan substitusi Va(s) ke persamaan II.29 menghasilkan fungsi transfer lingkar terbuka yang menghubungkan sinyal galat [ E(s) ] dengan perpindahan aktual sendi. Ka K p L ( s) G (s) s ( sRa J eff Ra f eff K a K b ) E (s)
24
... (II.32)
Ld (s ) +
Va(s) Kp+sKv
Σ
-
1 n
+
τ(s) 1
Σ
-
sL a R a
Ka
θL(s)
sθm 1 sJ eff f eff
1 s
n
Kb
Gambar II.8 Diagram blok kendali umpan balik dari sebuah manipulator sendi-tunggal. Setelah menerapkan manipulasi aljabar sederhana, diperoleh fungsi transfer lingkar tertutup yang menghubungkan perpindahan angular aktual [ΘL(s)] dengan perpindahan angular yang diinginkan [ dL ( s ) ] sebagai berikut. Ka K p L ( s) G (s) 2 d L ( s ) 1 G ( s ) s Ra J eff s ( Ra f eff K a K b ) K a K p
K a K p / Ra J eff s [( Ra f eff K a K b ) / Ra J eff ]s K a K p / Ra J eff 2
... (II.33)
Persamaan III.33 menunjukkan bahwa pengendali proporsional untuk robot senditunggal adalah sistem orde-kedua yang selalu stabil bila semua parameter sistem positif. Untuk meningkatkan waktu tanggap sistem dan mengurangi galat steadystate, gain umpan balik Kp dapat diperbesar dan sebuah derivatif dari galat posisional dapat ditambahkan untuk memasukkan damping pada sistem. Kecepatan angular dari sendi dapat diukur dengan tachometer atau diperkirakan dari data posisi yang diambil pada dua waktu pengambilan data yang berturutan. Dengan menambahkan umpan balik ini, tegangan yang diberikan motor sendi proporsional secara linear dengan galat posisi dan turunannya, sehingga:
25
K p [ Ld (t ) L (t )] K v [Ld (t ) L (t )]
Va (t )
n K p e(t ) K v e(t )
... (II.34)
n
dengan Kv adalah gain balikan dari derivatif galat, dan rasio gir n dimasukkan untuk menghitung tegangan yang diberikan merujuk ke poros motor. Persamaan II.34 menunjukkan bahwa, selain balikan galat posisi, kecepatan motor juga diukur atau dihitung dan dibalikkan untuk mendapatkan galat kecepatan yang dikalikan dengan gain balikan kecepatan Kv. Menerapkan transformasi Laplace pada persamaan II.34, dan men-substitusi Va(s) ke persamaan II.29, menghasilkan fungsi transfer yang menghubungkan sinyal galat [ E(s) ] dengan perpindahan sendi aktual. K a ( K p sK v ) L ( s) GPD ( s ) E (s) s ( sRa J eff Ra f eff K a K b )
Ka Kv s Ka K p s ( sRa J eff Ra f eff K a K b )
... (II.35)
Manipulasi aljabar sederhana akan menghasilkan fungsi transfer lingkar tertutup yang menghubungkan perpindahan angular aktual [(ΘL(s)] dengan perpindahan angular yang diinginkan [ dL (s ) ].
L (s) dL ( s )
G PD ( s ) 1 G PD ( s )
Ka Kv s Ka K p s Ra J eff s( Ra J eff K a K b K a K v ) K a K p 2
... (II.36)
Persamaan II.36 adalah sistem orde-kedua dengan finite zero yang teletak di –Kp/Kv pada bidang sebelah kiri dari bidang s. Tergantung letak dari zero ini, sistem dapat mempunyai overshoot yang besar dan settling time yang lama. Pada Gambar II.9 nampak bahwa sistem manipulator juga dipengaruhi oleh gangguangangguan [D(s)] yang timbul karena beban gravitasi dan efek sentrifugal dari link. Karena gangguan-gangguan ini, torsi yang dibangkitkan pada poros motor harus
26
memberikan kompensasi untuk torsi yang dihamburkan oleh motor, beban,dan gangguan-gangguan. Jadi persamaan II.25 dikembangkan menjadi: T ( s ) [ s 2 J eff sf eff ] m ( s ) D( s )
... (II.37)
dengan D(s) adalah hasil transformasi Laplace ekivalen dari gangguan. Fungsi transfer yang menghubungkan masukan gangguan dengan perpindahan sendi aktual adalah sebagai berikut: nRa L (s) 2 D( s ) d ( s )0 s Ra J eff s ( Ra f eff K a K b K a K v ) K a K p L
... (II.38)
Dari persamaan II.36 dan persamaan II.38, dan menggunakan prinsip superposisi, diperoleh perpindahan sendi aktual dari dua masukan ini sebagai berikut: L (s)
K a ( K p sK v ) dL ( s ) nRa D( s )
... (II.39)
s 2 Ra J eff s ( Ra f eff K a K b K a K v ) K a K p D(s)
Ld
Va(s)
(s )
+
Kp+sKv
Σ
-
1 n
+
1
Σ
-
sθm
-
sL a R a
Ka
+
Σ
+
1 sJ eff f eff
θL(s) 1 s
n
Kb
Gambar II.9 Diagram blok kendali umpan balik dari sebuah manipulator dengan gangguan. Persamaan di atas hanya berlaku untuk robot manipulator dengan sendi tunggal. Untuk merumuskan persamaan fungsi transfer untuk robot dengan sendi lebih dari satu, persamaan-persamaan dinamika, baik dengan perumusan Newton-Euler atau Lagrange Euler, dari robot manipulator perlu dimasukkan. Namun, saat ini kebanyakan pembuat robot industri memutuskan untuk tidak menggunakan model manipulator dalam pengendali yang digunakan, antara lain disebabkan sulitnya mencari nilai parameter-parameter yang tepat[5]. Kebanyakan manipulator saat ini
27
dikendalikan dengan aturan kendali sederhana yang didorong oleh galat (errordriven), yaitu dengan mekanisme servo. Mengingat dalam penelitian ini pengendalian robot riil menggunakan mekanisme servo, maka pengendalian robot manipulator dengan persamaan dinamika tidak dibahas lebih lanjut. 2.3.2 Robot PUMA 260
Robot PUMA 260 merupakan salah satu jenis robot manipulator yang sering menjadi contoh dalam pembelajaran robotika. Menurut lembar spesifikasinya, robot PUMA seri 200, yang mencakup PUMA 260, didesain untuk aplikasi perakitan (assembly) dan penanganan material dengan kecepatan menengah sampai tinggi[18]. Seri 200 mempunyai kemampuan yang cocok dengan kebutuhan industri elektronik dan industri lain di mana penanganan komponen-komponen yang ringan bersifat sangat repetitif, cepat, dan presisi. Berikut adalah spesifikasi robot PUMA 206A. Tabel II.1 Spesifikasi PUMA 260A[17]. Umum
Area Kerja
Kapasitas Beban Unjuk Kerja Lingkungan Berat
Sendi Drive Kendali Kendali posisional Koordinat Konfigurasi Kabel Minimum Reach Maximum Reach Limit Joint 1 Limit Joint 2 Limit Joint 3 Limit Joint 4 Limit Joint 5 Limit Joint 6 Beban pada kecepatan maksimum Repeatability Kecepatan maksimum Suhu Proteksi (hanya lengan) Power Supply Lengan Kabinet mini
28
6 Motor DC Numeris Enkoder inkremental Cartesian Revolute 5 m (10 & 15 opsional) 0.125 m 0.406 m 308° 314° 292° 578° 244° 534° 1 kg jarak – 84mm dari Joint 5 +/- 0.05 mm 1.2 m/s 10° hingga 40° C IP54 115/220/240 V 50-60 Hz 1kw -1 phase 13.2 kg 80 kg
2.3.3 Pengendalian Motor Servo
Pengendalian lengan robot yang biasa digunakan di industri menggunakan mekanisme yang biasa disebut servomechanism[7]. Servomechanism adalah mekanisme di mana pengendali harus mengendalikan nilai sebuah variabel untuk mengikuti sebuah set point yang berubah, misalnya menggerakkan lengan robot dari satu posisi ke posisi yang lain.
Gambar II.10 Servomechanism pada lengan robot. Aktuator robot PUMA 260 adalah motor DC. Pada bagian terakhir, pengendalian motor DC dilakukan dengan mengirimkan sinyal-sinyal Pulse-width modulation (PWM) ke motor DC. PWM adalah teknik pengendalian torsi dan kecepatan sebuah motor DC dengan cara memberikan daya ke motor dalam bentuk sinyal gelombang kotak dengan nilai yang konstan namun mempunyai lebar pulsa yang bervariasi, yang biasa disebut duty cycle[9]. Duty cycle merujuk prosentase waktu di mana pulsa bernilai tinggi dalam satu siklus. Gambar II.11 menunjukkan bentuk gelombang untuk empat kecepatan yang berbeda. Untuk kecepatan yang lebih rendah, daya diberikan hanya pada seperempat waktu siklus (duty cycle 25%). Frekuensi pulsa diatur cukup tinggi untuk memastikan inersia mekanis dari armature akan menghaluskan lonjakan daya, dan motor akan bergerak pada kecepatan konstan dengan seperempat kecepatan maksimal. Untuk duty cycle 50%, motor akan bergerak pada setengah kecepatan maksimal, dan seterusnya. Pada prakteknya, faktor nonlinear menyebabkan motor berjalan lebih pelan daripada perhitungan ini, namun prinsip yang berlaku sama, yaitu kecepatan sebuah motor dapat diatur dengan memberikan daya dalam bentuk pulsa-pulsa.
29
Selain itu, motor DC baru akan bergerak jika daya yang diberikan mencukupi kebutuhan torsi minimal untuk dapat berputar. Untuk itu motor DC yang diberikan sinyal PWM baru akan bergerak pada duty cycle tertentu. Duty cycle ini merupakan batas dead band dari motor DC.
Gambar II.11 Sinyal PWM[9]. 2.3.4 Pengendalian PID
Salah satu strategi pengendalian yang banyak dipakai dalam mekanisme servo adalah
pengendalian
Proporsional-Integral-Derivatif
(PID).
Keluaran
pengendalian ini dibentuk dari tiga suku: suku proporsional, suku integral, dan suku derivatif. Suku proporsional akan menghasilkan keluaran berbaikan yang besarnya proporsional dengan besar galat. Suku integral bertujuan mengurangi galat keadaan tunak (steady-state error), dengan menghasilkan keluaran yang proporsional dengan penjumlahan semua galat yang telah terjadi dikalikan dengan waktu. Sedangkan suku derivatif bertujuan meredam masalah overshoot, dengan memperlambat perubahan variabel yang dikendalikan sebelum variabel tersebut mencapai tujuannya. Suku ini menghasilkan keluaran yang proporsional dengan perubahan galat terhadap waktu. Keluaran pengendalian PID dapat dinyatakan dalam persamaan berikut. dE Output PID K p E K i E dt K d dt
30
... (II.40)
dengan: OutputPID = keluaran dari pengendali PID Kp
= gain pengendalian proporsional
Ki
= gain pengendalian integral
Kd
= gain pengendalian derivatif
E
= galat (selisih antara set point dengan variable proses)
E dt
= jumlah seluruh galat yang telah terjadi
dE dt
= kecepatan perubahan galat.
Untuk pengendalian PID secara digital dengan menggunakan pengendali berbasis mikroprosesor, maka suku-suku integral dan derivatif dari persamaan (II.40) didekati dengan persamaan berikut, dengan merujuk Gambar II.12. Pendekatan suku integral adalah sebagai berikut. K i E dt K i E1T K i E 2T K i E3T
... (II.41)
dengan: Ki
= gain pengendalian integral
E1
= galat pada waktu 1
E1
= galat pada waktu 1
T
= waktu antara sample-sample data.
Pendekatan suku derivatif adalah sebagai berikut. Kd
dE K d E3 K d E 2 dt T
... (II.42)
31
galat
waktu Gambar II.12 Galat pada perhitungan suku PID untuk kendali digital. Sebuah program pengendali mempunyai format umum berupa perulangan (loop) yang terus-menerus. Untuk setiap perulangan, dilakukan empat operasi dasar sebagai berikut (merujuk Gambar II.10). 1. Baca nilai set point (SP) dan sensor data (PV). 2. Hitung nilai galat, suku integral, dan suku derivatif, kemudian jumlahkan suku-suku tersebut. 3. Kalikan jumlah yang diperoleh pada langkah sebelumnya dengan Kp. 4. Kirimkan keluaran PID ke aktuator. Mengingat perulangan tersebut dilakukan dalam mekanisme servo, maka perulangan tersebut biasa disebut servo loop. 2.3.5 Modul Pengendali Berbasis PIC-Servo
Pada penelitian ini, data robot riil akan diambil dari sebuah robot riil yang dikendalikan sebuah unit kendali berbasis mikrokontroler PIC- Servo. PIC-Servo SC berfungsi sebagai pemberi data PWM pada driver motor DC dan pembaca enkoder dari remote dan manipulator[1]. PIC-Servo SC sendiri merupakan solusi satu chip untuk implementasi kendali servo motor DC dengan balikan incremental encoder. PIC-Servo SC merupakan sebuah mikrokontroler PIC18F2331 yang
32
telah diprogram dengan berbagai fitur, diantaranya pengendali PID, kendali posisi dan kecepatan dan sebuah antarmuka serial yang dapat terhubung dengan RS232, RS485 dan RS422. Selain dari itu dilengkapi dengan enkoder yang dapat berantarmuka dengan enkoder dari motor DC. Gambar II.13 merupakan skematik modul PIC-Servo yang digunakan dalam mengendalikan motor DC melalui komunikasi RS-232.
Gambar II.13 Pengendali PIC-Servo SC dengan komunikasi RS232[16]. Untuk mengirim paket data dan perintah ke PIC-Servo SC, digunakan protokol komunikasi NMC (Networked Modular Control) berbasis RS232 atau RS485 (4jalur) yang full-duplex. Protokol tersebut juga digunakan pengendali PIC-STEP dan PIC-I/O. Protokol tersebut merupakan sebuah protokol master/slave, di mana paket-paket perintah yang dikirim ke modul pengendali oleh komputer host, dan sebuah paket status dikembalikan ke modul.. Koneksi antar modul jika menggunakan lebih dari satu modul diperlihatkan pada Gambar II.14 di bawah ini.
33
Gambar II.14 Koneksi beberapa modul kendali[16]. Masing-masing modul memiliki alamat yang unik yang diberikan secara dinamik oleh host. Paket perintah dikirim ke sebuah modul pengendali yang alamatnya sudah diinisialisasi oleh sebuah host dalam hal ini komputer. Kecepatan pengiriman data bawaan yang digunakan adalah 19.200 bit per detik, tetapi dapat diubah sampai 230.400 bit per detik. Protokol komunikasi yang digunakan adalah 8 bit paket data, 1 start bit, 1 stop bit dan tidak menggunakan paritas. PIC-Servo SC memiliki beberapa tingkatan kendali yang dapat digunakan sesuai dengan kebutuhan. Tingkat-tingkat kendali tersebut dapat dilihat pada Gambar II.15 berikut ini.
Gambar II.15 Tingkat-tingkat kendali PIC-Servo SC[16].
34
Tingkat-tingkat kendali tersebut adalah sebagai berikut. 1. Modus PWM Lapisan kendali PIC-Servo SC paling bawah adalah modus PWM. Pada modus PWM, PIC-Servo SC menerima data PWM dari luar dan memberikan sinyal PWM langsung ke amplifier. Modus PWM aktif atau bekerja pada saat catu daya mulai bekerja, dan modus profile dan servo tidak aktif, modus PWM juga bekerja ketika modus posisi berhenti akibat kehilangan daya, galat posisi keluar batas yang ditetapkan, dan pada saat perintah stop motor bekerja. 2. Modus Servo Posisi Lapisan berikutnya adalah modus servo posisi. Pada modus ini, PID bekerja menghitung nilai PWM untuk menggerakkan motor pada posisi yang diinginkan. 3. Modus Kecepatan Pada modus kecepatan, selain putaran motor dapat bekerja pada kecepatan konstan juga putaran motor dapat berubah dari satu nilai kecepatan ke nilai kecepatan lain secara halus dengan nilai percepatan tertentu. 4. Modus Posisi Trapezoidal Pada modus ini, posisi tujuan, maksimum kecepatan dan percepatan dapat ditentukan oleh perancang. Ketika motor mulai bekerja, motor akan dipercepat sampai kecepatan maksimum kemudian tetap pada kecepatan konstan sampai posisi tujuan mendekat dan melakukan perlambatan sampai posisi tujuan tercapai. 5. Modus Path Control Modus path control atau modus Coordinated Motion Control (CMC) merupakan modus khusus. Karena pada modus ini, host dapat dengan mudah mengkoordinasi pergerakan motor dari beberapa PIC-Servo SC. 6. Modus Masukan Arah dan Step Pada modus ini, motor bekerja pada modus stepper yaitu bergerak atau berputar berdasarkan urutan pulsa. Pada penelitian ini, data gerakan robot riil yang akan digunakan untuk memvalidasi simulator dikendalikan dengan mode gerakan Modus Posisi Trapezoidal. 35
2.3.6 Profiling Kecepatan
Profiling kecepatan merupakan teknik yang banyak dipakai pengendalian motor
servo. Secara umum profiling kecepatan adalah penentuan bagaimana gerakan variabel yang dikendalikan dengan menentukan bagaimana kecepatan perubahan variabel
yang
dikendalikan
selama
proses
pengendalian.
Kebanyakan
mikrokontroller pengendali motor mendukung profiling kecepatan. Ada dua jenis profil kecepatan yang biasa didukung pengendali servo, yaitu profil trapezoidal dan kurva-S. Seperti telah dibahas sebelumnya, PIC-Servo hanya mendukung profil trapezoidal. Kedua profil tersebut digambarkan pada Gambar II.16.
kecepatan
kecepatan
percepatan
percepatan
waktu
waktu
(a)
(b)
Gambar II.16 Profil kecepatan kurva-S (a) dan trapezoidal (b). Dalam bidang robotika, konsep profiling ini biasa disebut penentuan trayektori. Trayektori mendeskripsikan gerakan yang dari sebuah manipulator dalam ruang multidimensi. Trayektori merujuk pada sejarah terhadap waktu dari posisi, kecepatan, dan percepatan dari setiap derajat kebebasan[5]. Pada penentuan trayektori ini, biasanya diawali dengan menentukan titik-titik jalur (path point), yang terdiri dari tiik awal, titik tujuan, dan titik-titik antara. Baru setelah profil posisi didapatkan, profil kecepatan dan profil percepatan diturunkan. Diagram blok pengendalian dengan menyertakan perencanaan trayektori dapat dilihat pada gambar berikut.
36
gangguan perencanaan trayektori
robot
pengendal
manipulator
lingkungan
sensor dan estimator antar muka Gambar II.17 Diagram blok pengendalian robot manipulator dengan perencanaan trayektori[7].
37