BAB III PERANCANGAN SISTEM Pada bab ini akan dijelaskan mengenai perancangan dari perangkat keras, serta perangkat lunak dari algoritma robot.
3.1. Gambaran Sistem Sistem yang dibuat untuk tugas akhir ini adalah berupa sebuah sistem perencanaan gerakan berjalan robot humanoid. Sistem menerima masukan berupa permintaan gerakan dan mengolah parameter gerakan yang sesuai dengan permintaan tersebut menjadi sebuah pola gerakan berjalan, seperti dapat dilihat pada diagram alir dalam Gambar 3.1. Dalam hal ini pembuatan sistem inverse kinematic untuk mengaktualisasikan gerakan dan sistem kontrol keseimbangan tidak tercakup dalam lingkup tugas akhir ini.
Start
Tidak
Apakah ada permintaan gerakan?
Ya Tentukan parameter gerakan
Bagian sistem yang dikerjakan penulis dalam tugas akhir
Fungsi pembangkit
Baca sudut kemiringan dan kecepatan sudut robot
Bagian sistem yang dikerjakan oleh Novembri Priyadmaji W. N.
Offset nilai servo
Kinematika terbalik
Bagian sistem yang dikerjakan oleh Bangkit M.
Aktuator
Gambar 3.1 Diagram alir sistem
11
3.2. Perancangan Sistem Pembangkit Lintasan Untuk membangkitkan pola gerakan berjalan robot ditinjau dari ruang kartesian xy-z, digunakan persamaan pembangkit pola berdasarkan sistem online pattern generation seperti yang diformulasikan oleh Park et al. [3][5] di mana terdapat 3 fungsi pola, yaitu pada arah x, arah y, dan arah z. 3.2.1 Pembangkitan Nilai Koordinat x(t) Lintasan arah x dilihat dari sisi sagital, di mana menunjukkan jarak langkah kaki robot saat berjalan seperti pada Gambar 3.2. Titik A adalah engkel robot dan titik P adalah panggul robot.
Gambar 3.2 Penampang sagital menunjukkan gerakan robot pada arah x dan y.
π₯Μπ (π‘) = (π + π) (
π‘βπ‘1
π‘2βπ‘1
π₯Μπ (π‘) = β3π=0 ππ (
β
1 2π
sin (2π
π‘βπ‘1 π ) π‘2βπ‘1
π‘βπ‘1
)) β π
π‘2βπ‘1
(1)
(2)
Hubungan nilai koordinat x terhadap waktu pada engkel kaki robot diperlihatkan pada persamaan kurva cycloid (1) di mana b merupakan jarak antar kaki sebelum melangkah pada t1 dan f merupakan jarak setelah melangkah pada t2. Periode langkah adalah dari t1 hingga t2, dan t adalah waktu sekarang. Persamaan (2) adalah kurva polinomial orde 3 yang menunjukkan hubungan hubungan nilai koordinat x terhadap waktu pada panggul robot. Koefisien ππ mendefinisikan batas awal dan akhir tiap langkah yang didapatkan dari persamaan (3) di mana ditentukan batas posisi awal π₯Μπ (0) dan batas kecepatan awal π₯ΜπΜ (0), serta batas posisi akhir π₯Μπ (1) dan batas kecepatan akhir π₯ΜπΜ (1). 12
Koefisien Ξ±x merupakan faktor bentuk kurva. Kemudian didapatkan nilai ππ berdasarkan normalisasi skala waktu seperti pada persamaan (4). Faktor bentuk Ξ± menentukan bentuk dari kurva lintasan panggul.
βπβ 2 πΌπ₯ π = π π₯Μπ (1) β 2 [π₯ΜπΜ (1)] [ πΌπ₯ π ] π₯Μπ (0) π₯ΜπΜ (0)
0 0 [ 1 3
0 0 1 2
0 1 1 1
(3)
π₯Μπ (0) 1 π3 π₯ΜπΜ (0) 0 π2 ][ ] = π₯Μπ (1) 1 π1 π 0 0 [π₯Μ Μ (1)]
(4)
π
3.2.2. Pembangkitan Nilai Koordinat y(t) Lintasan arah y menunjukkan tinggi engkel saat kaki mengayun. Hubungan nilai koordinat y terhadap waktu pada engkel robot direpresentasikan pada persamaan (5) di mana h merupakan faktor tinggi dari langkah kaki (Gambar 3.2).
π¦(π‘) = {2 β [cos (2π
π‘βπ‘1
) + 1]} ββ2
π‘2βπ‘1
(5)
3.2.3. Pembangkitan Nilai Koordinat z(t) Lintasan arah z pada robot menunjukkan goyangan panggul ke samping saat melangkah, langkah geser ke samping, dan langkah putar robot. Lintasan posisi engkel pada arah z dihasilkan dengan 2 langkah, langkah pertama adalah untuk berubah dari sikap siap menuju sikap terbuka, dan langkah selanjutnya untuk memulihkan dari sikap terbuka kembali ke sikap siap. Sikap terbuka adalah saat single support phase (SSP) dan sikap siap adalah saat double support phase (DSP).
13
Gambar 3.3 Penampang frontal menunjukkan gerakan robot pada arah sumbu z. Pada Gambar 3.3 ditunjukkan langkah pertama dari π‘1 hingga π‘0 dan langkah kedua dari π‘0 hingga π‘2 . Persamaan posisi engkel terhadap waktu untuk arah z dibentuk seperti persamaan (6), (7), (8), dan (9). πππ 1(π‘) dan πππ 1(π‘) merupakan posisi koordinat engkel pada arah z terhadap waktu untuk kaki kiri dan kanan pada langkah pertama, πππ 2(π‘) dan πππ 2(π‘) merupakan posisi koordinat engkel pada arah z terhadap waktu untuk kaki kiri dan kanan pada langkah kedua. Di mana Ξ· merupakan rasio langkah samping, πΈπππ dan πΈπππ merupakan koordinat akhir langkah kiri dan kanan pada arah z, ππ‘π dan ππ‘π merupakan koordinat awal langkah kaki pada arah z. Nilai πΈπππ , πΈπππ , ππ‘π , dan ππ‘π didapatkan dari parameter lebar langkah A. Pergerakan langkah samping ditunjukkan pada Gambar 3.4.
(
πππ 1(π‘) = (
πΈπππ )(1βπ)βππ‘π 2
2 (
πππ 1(π‘) = (
(
πππ 2(π‘) = (
πΈπππ )(1+π)βππ‘π 2
2 πΈπππ )(1βπ)βππ‘π 2
2 (
πππ 2(π‘) = (
) (1 + cos (π
π‘2 βπ‘1
) (1 + cos (π
π‘2 βπ‘1
2 βπ‘1
)) + ππ‘π
)) + ππ‘π
π‘βπ‘1
) (1 β cos (π π‘
14
)) + ππ‘π
π‘+π‘2 β2π‘1
π‘βπ‘1
) (1 β cos (π π‘
πΈπππ )(1+π)βππ‘π 2
2
π‘+π‘2 β2π‘1
2 βπ‘1
)) + ππ‘π
(6)
(7)
(8) (9)
Gambar 3.4 Penampang frontal menunjukkan gerakan langkah samping robot.
Untuk persamaan posisi panggul arah z terhadap waktu digunakan persamaan interpolasi polinomial orde 3 seperti pada arah x, tetapi dibagi menjadi 2 langkah yaitu untuk π‘1 < π‘ < π‘0 dan π‘0 < π‘ < π‘2 di mana t0 adalah setengah periode atau t2/2. Seperti pada persamaan (10) dan (11), di mana bentuk kurva ditentukan dari faktor bentuk πΌπ§ dan jarak koordinat arah z ditentukan oleh ππ¦ . π‘βπ‘ πΜπ 1(π‘) = β3π=0 πΜπ ( 1 )π
(10)
π‘0βπ‘1
Di mana, πΜπ 1(π‘1 ) = 0; πΜΜπ 1(π‘1 ) = βπΌπ§ ; πΜπ 1(π‘0 ) = βππ¦ ; πΜΜπ 1(π‘0 ) = 0 π‘βπ‘ πΜπ 2(π‘) = β3π=0 πΜπ ( 0 )π
(11)
π‘2βπ‘0
Di mana, πΜπ 2(π‘2 ) = 0; πΜΜπ2 (π‘2 ) = βπΌπ§ ; πΜπ 2(π‘0 ) = βππ¦ ; πΜΜπ 2(π‘0 ) = 0 Untuk mendapatkan nilai πΜπ dilakukan normalisasi skala waktu seperti persamaan (12) dan (13).
π§Μπ (0) π§ΜπΜ (0)
0 βπΌ = [ π§] βππ¦ π§Μπ (1) 0 [π§ΜπΜ (1)]
(12)
15
0 0 [ 1 3
0 0 1 2
0 1 1 1
π§Μπ (0) 1 π3 π§ΜπΜ (0) 0 π2 ][ ] = 1 π1 π§π (1) π 0 0 [π§πΜ (1)]
(13)
Dan untuk arah putaran kaki atau heading digunakan rumus (14) untuk kaki kiri dan (15) untuk kaki kanan, persamaan tersebut menentukan simpangan kaki robot. Di mana βπ 0 dan βπ 0 adalah heading awal kaki kiri dan kanan, sedangkan βπ 1 dan βπ 1 merupakan heading akhir. Ilustrasi dari arah putaran kaki dapat dilihat pada Gambar 3.5.
π»π (π‘) = βπ 0 + (βπ 1 β βπ 0 )(
π‘βπ‘1
)
(14)
π‘2βπ‘1
π»π (π‘) = βπ 0 + (βπ 1 β βπ 0 )(
π‘βπ‘1
)
π‘2βπ‘1
(15)
Gambar 3.5 Penampang transverse telapak kaki robot yang menunjukkan langkah putar.
3.3. Perancangan Perangkat Keras Perangkat keras yang telah direalisasikan yaitu modifikasi terhadap kit robot bioloid GP yang sebagian besar rangka robot diganti menggunakan desain rangka dari robot Darwin-OP seperti pada Gambar 3.6 untuk mengakomodasi penggunaan servo MX28 yang lebih kuat. Robot memiliki tinggi total 49 cm dan memiliki 20 derajat kebebasan dengan perincian 2 servo kepala, 6 servo tangan, dan 12 servo kaki. Kontroler utama berupa 16
Odroid XU-4 berada di dalam torso robot. Akses servo dilakukan secara langsung melalui usb to serial FTDI sehingga tidak memerlukan adanya kontroler sekunder.
Gambar 3.6 Desain robot Bioloid-GP yang dimodifikasi.
3.4. Perancangan Perangkat Lunak Dalam tugas akhir ini dibuat sebuah sistem perencanaan gerakan berjalan robot yang merupakan bagian dari sebuah sistem berjalan robot yang mencakup 2 bagian yaitu pembangkitan lintasan atau trayektori engkel dan panggul dan pengaturan pola langkah berjalan. Pada Gambar 3.7 ditunjukkan diagram alir untuk pembangkit lintasan pada engkel dan panggul di mana parameter gerakan yang telah ditentukan diolah melalui rumus lintasan yang ada untuk menghasilkan kurva lintasan langkah robot. Hasil akhir berupa koordinat titik x, y, dan z untuk kaki kiri dan kanan robot yang merupakan hasil selisih dari koordinat engkel dan panggul. Perhitungan selisih dilakukan karena koordinat yang digunakan untuk sistem inverse kinematic merupakan koordinat dari satu titik end effector.
17
Start
Terima input waktu dan parameter gerakan.
Ya
Tidak Langkah kaki kanan?
Kalkulasi koordinat engkel dan panggul kaki kanan pada arah x,y, dan z, koordinat kaki kiri = 0.
Kalkulasi koordinat engkel dan panggul kaki kiri pada arah x,y, dan z, koordinat kaki kanan = 0.
Lintasan akhir = koordinat engkel β lintasan panggul
End Gambar 3.7 Diagram alir algoritma pembangkit lintasan. Berikut adalah penjelasan diagram alir algoritma pembangkit lintasan pada Gambar 3.7: 1. Algoritma dimulai setelah adanya permintaan gerakan. 2. Masukan dari sistem adalah penanda waktu dan parameter gerakan yang telah ditentukan sebelumnya sesuai dengan permintaan gerakan. Parameter gerakan mencakup panjang langkah engkel (f), tinggi langkah engkel (h), lebar langkah engkel ke samping (A), rasio langkah samping (Ξ·), faktor bentuk lintasan panggul arah x (Ξ±x), faktor bentuk lintasan panggul arah z (Ξ±z), jarak simpangan panggul arah z (Sy), dan arah langkah (heading). Untuk parameter jarak (f), tinggi (h), lebar samping (A), dan simpangan panggul (Sy) dalam satuan milimeter. Sedangkan heading dalam derajat. 3. Tentukan apakah kaki yang akan melangkah adalah kaki kanan atau kaki kiri. 4. Bila yang melangkah adalah kaki kanan, maka dikalkulasikan koordinat x,y, dan z untuk kaki kanan. Kaki kiri tetap pada posisi sebelumnya. 5. Bila yang melangkah adalah kaki kiri, maka dikalkulasikan koordinat x,y, dan z untuk kaki kiri. Kaki kanan tetap pada posisi sebelumnya. 18
6. Dilakukan perhitungan selisih antara koordinat engkel dengan koordinat panggul. 7. Hasil perhitungan selisih merupakan koordinat pembentuk lintasan yang dihasilkan untuk gerakan berjalan, dan direalisasikan menggunakan inverse kinematic. Pada Gambar 3.8 ditunjukkan diagram alir untuk algoritma pengaturan pergantian langkah kaki, di mana perubahan parameter gerakan dan perubahan langkah dilakukan setiap counter waktu t > periode. Start Ya
Tidak Counter waktu sekarang > periode
Ubah parameter gerakan
Tidak
Ya Langkah kaki kanan?
Langkah = kiri
Lakukan perhitungan lintasan
Langkah = kanan
Tambah counter waktu
Lakukan perhitungan lintasan Waktu awal = waktu akhir Waktu akhir = periode Tambah counter waktu
End
Gambar 3.8 Diagram alir algoritma pergantian langkah.
19
Berikut adalah penjelasan diagram alir algoritma pembangkit pola langkah berjalan pada Gambar 3.8: 1. Awal algoritma dimulai dengan menentukan apakah penanda/counter waktu saat ini telah melebihi periode atau tidak. 2. Bila waktu belum melebihi periode yang ditentukan, maka dilakukan perhitungan lintasan dengan sistem pembangkit lintasan pada Gambar 3.7. 3. Setelah itu counter waku t ditambah satu atau diincrement. Counter waktu (t) adalah counter yang berjalan selama satu kali perulangan program dan bukan waktu dalam satuan detik. 4. Ketika waktu telah melebihi periode, maka dilakukan penentuan ulang parameter gerakan. 5. Lalu ditentukan apakah langkah sebelumnya adalah langkah kaki kanan atau langkah kaki kiri. Kemudian penanda langkah kaki dirubah untuk melanjutkan ke langkah kaki berikutnya. 6. Kemudian dilakukan perhitungan lintasan menggunakan algoritma pembangkit lintasan seperti Gambar 3.7. 7. Setelah itu dilakukan pengaturan counter waktu, di mana waktu awal (t1) selanjutnya adalah waktu akhir (t2) sebeumnya, dan waktu akhir (t2) ditambah dengan periode. Sedangkan counter waktu sekarang (t) ditambah satu atau diincrement.
20