Anda di halaman 1dari 7

LAB ELKA – 02

PRAKTIKUM 3
KINEMATIKA ROBOT LENGAN

Disusun untuk Memenuhi Matakuliah Lab Elka - 02


Dibimbing oleh Ibu Dr. Eng. Siti Sendari, S.T., M.T.

Oleh:
Wardatul Jannah
160534611710

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI S1 PENDIDIKAN TEKNIK ELEKTRO
Maret 2019
FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO

JOBSHEET 3 : KINEMATIKA ROBOT LENGAN

ROBOTIKA PTEL 668 Offering: C Kelompok: 2


NAMA / NIM : Wardatul Jannah/160534611710 Nilai: .............

3.1 Tujuan
Praktikum kinematika robot lengan ini memiliki tujuan sebagai berikut, yaitu:
1) Mahasiswa mampu menganalisis kinematika robot lengan menggunakan forward
kinematic
2) Mahasiswa mampu menganalisis kinematika robot lengan menggunakan inverse
kinematic
3) Mahasiswa mampu menggerakkan robot lengan menggunakan forward
kinematic dan inverse kinematic

3.2 Alat dan Bahan


• Komputer / laptop
• Robot Lengan 2 DOF
• Trainer Arduino Mega 2560
• Kabel Jumper Secukupnya

3.3 Langkah Kerja


1. Siapkan alat dan bahan yang dibutuhkan
2. Hubungkan Arduino dengan PC/laptop
3. Buat inisialisasi motor servo dan aturlah motor servo sehingga terhubung seperti
berikut.
Pin motor servo 1 terhubung ke pin 6 dan pin motor servo 2 terhubung ke pin 7.
#include <Servo.h>
Servo servo1, servo2;
#define pin_servo1 6
#define pin_servo2 7

Gambar 3.11 Setup Kabel Motor Servo


4. Aktifkan pin PWM motor servo dengan menambahkan program berikut.
Kemudian atur nilai pwm motor servo dengan mengubah nilai max dan minimum
pwm motor servo seperti berikut:

void setup() {
servo1.attach(pin_servo1, 499, 2150);
servo2.attach(pin_servo2, 499, 2150); }

*Apabila hasil sudut servo kurang presisi ubah nilai minimum dan nilai
maksimum masingmasing motor servo
5. Buatlah fungsi untuk menghitung inverse kinematik dengan mengetikkan
program berikut:
void inverse_kinematik(long x, long y){
const long L_SHOULDER = 10; //cm
const long L_ELBOW = 10; //cm
float q1, q2, q1a, q1b; //tetha
int sudutBase, sudutShoulder, sudutElbow, sudutWrist; long
im_1, a, b;
boolean inRange = false;

//Hitung sisi miring x dan y (Persamaan 3.11) im_1


= sqrt(sq(x)+ sq(y));

//Hitung sudut q1a (Persamaan 3.10)


q1a = (atan2(y, x)) * RAD_TO_DEG;

//Hitung sudut q1b (Persamaan 3.12)


a = sq(L_SHOULDER) + sq(im_1) -
sq(L_ELBOW); b = 2 * L_SHOULDER * im_1;
q1b = acos((float)a / (float)b);

//Jumlahkan sudut q1 (Persamaan 3.12)


q1 = (q1a + q1b) * RAD_TO_DEG;

// Hitung sudut q2
a = sq(L_SHOULDER) + sq(L_ELBOW) -
sq(im_1); b = 2 * L_SHOULDER * L_ELBOW;
q2 = (acos((float)a / (float)b)) * RAD_TO_DEG;

// Write Servo
servo1.write(sudutShoulder);
servo2.write(sudutElbow);

Serial.print(“Sudut 1:”); Serial.println(sudutShoulder);


Serial.print(“Sudut 2:”); Serial.println(sudutElbow);
}
}
6. Panggil fungsi inverse kinematik pada void loop () dengan mengetikkan program
berikut:
void
loop() {
inverse_kinematik(15,
5); while(1);

7. Ubah nilai koordinat (x, y) seperti berikut:

Hasil
Perhitungan Program Selisih
No x Y Pengukuran
θ1 θ2 θ1 θ2 x y x y
1 10 10
2 20 0
3 15 8
4 15 15
5 5 13

8. Lakukan analisis terhadap hasil percobaan yang telah anda lakukan.


9. Buatlah kesimpulan.

3.4 Hasil Percobaan


1. Hasil Pembacaan data

Hasil
Perhitungan Program Selisih
No x Y Pengukuran
θ1 θ2 θ1 θ2 x y x y
1 10 10 85.11° 65.35° 85° 64° 4.7 11.9 5.3 -1.9
2 20 0 28.95° 104.47° 28° 104° 11.2 11.2 8.8 -11.2
3 15 8 63.80° 83.10° 63° 83° 15 7.6 0 0.4
4 15 15 70.39° 114.58° 82° 76° 20 -1.4 5 16.4
5 5 13 109.20° 64.05° 110° 58° 10 9.9 -5 3.1
Dengan L1 = 15 dan L2 = 10
1. Perhitungan x = 10 dan y = 10
= 10 + 10 = √100 + 100 = √200 = 14.14
10 15 + 14.14 − 10
= +
10 2 15 14.14
10 225 + 199.4 − 100
= +
10 424.2
10 324.4
= + = 85.11°
10 424.2
15 + 10 − 14.14
=
2 15 10
225 + 100 − 199.9
=
300
125.1
= = 65.35°
300

2. Perhitungan X= 20 dan Y=0


= 20 + 0 = √400 + 0 = √400 = 20
0 15 + 20 − 10
= +
20 2 15 20
0 225 + 400 − 100
= +
20 600
0 525
= + = 28.95°
20 600
10 + 15 − 20
=
2 10 15
100 + 225 − 400
=
300
−75
= = 104.47°
300

3. Perhitungan X= 15 dan Y=8


= 15 + 8 = √225 + 64 = √289 = 17
8 15 + 17 − 10
= +
15 2 15 17
8 225 + 289 − 100
= +
15 510
8 414
= + = 63.80°
15 510
10 + 15 − 17
=
2 10 15
100 + 225 − 289
=
200
36
= = 83.10°
300

4. Perhitungan X= 15 dan Y=15


= 15 + 15 = √225 + 225 = √450 = 21.21
15 15 + 21.21 − 10
= +
15 2 15 21.21
15 225 + 449.8 − 100
= +
15 636.3
15 574.8
= + = 70.39°
15 636.3
15 + 10 − 21.21
=
2 15 10
225 + 100 − 449.8
=
300
−124.8
= = 114.58°
300

5. Perhitungan X= 5 dan Y=13


= 5 + 13 = √25 + 169 = √194 = 13.92
13 15 + 13.92 − 10
= +
5 2 15 13.92
13 225 + 193.76 − 100
= +
5 417.6
13 318.76
= + = 109.20°
5 417.6
15 + 10 − 13.92
=
2 15 10
225 + 100 − 193.76
=
300
131.24
= = 64.05°
300

3.5 Analisis terhadap Hasil Percobaan


Dari hasil praktikum selisih dari nilai koordinat sudut x dan y terpaut agak jauh,
karena pada pembacaan hasil dari praktikum bahwa pada arduino tidak dapat
membaca nilai pecahan karena pada sintak program menggunakan tipe data berupa
integer jadi hasil yang dapat dibaca hanya berupa bilangan bulat saja. Untuk
meminimalisir selisih error pada penulisan program maka dilakukan pengconvertan
nilai satuan dari cm ke mm.
Untuk selisih dan untuk nilai koordinator pada sudut perhitungan pada nomor
satu, dua dan tiga memiliki selisih yang kecil, hanya selisih pada nilai dibelakang
koma, karena progra tidak dapat membaca nilai dibelakang koma, namun untuk nilai
koordinator sudut perhitungan pada nomor 4 dan nomor 5 selisihnya sangat terpaut
jauh antara hasil perhitungan dan pembacaan data pada program dikarenakan
kemungkinan akurasi dari model tidak sempurna dan juga faktor human error.
3.6 Kesimpulan
Robot manipulator atau biasa disebut dengan robot lengan merupakan
gabungan dari beberapa segmen dan sendi yang secara umum dibagi menjadi 3
bagian, yaitu: arm, wrist, dan gripper. Robot lengan dapat bergerak menyerupai
lengan manusia yang dapat memindahkan barang dari satu tempat ke tempat yang
lainya.
Banyaknya sendi pada suatu robot menentukan kebebasan gerak atau biasa
disebut dengan derajat kebebasan atau DOF (Degree Of Freedom). Semakin
banyak DOF maka kombinasi gerakan yang dapat dilakukan akan semakin
banyak.
Kinematika robot secara umum terbagi menjadi dua, yaitu kinematika maju
(forward kinematic) dan kinematika balik (inverse kinematic). Kinematika maju adalah
analisis kinematik untuk mendapatkan koordinat posisi (x, y, z) jika diketahui sudut
dari tiap sendi. Kinematika balik adalah analisi kinematik untuk mendapatkan
besar sudut dari masing-masing sendi jika diketahui data koordinat posisi (x, y, z).
Analisis persamaan kinematik dapat diselesaikan dengan cara yang paling
dasar, yaitu menggunakan persamaan trigonometri. Setiap komponen dalam
koordinat (x, y, z) dinyatakan sebagi transformasi dari tiap-tiap komponen ruang
sendi (r, θ) dimana jari-jari r merupakan panjang lengan atau link.

Anda mungkin juga menyukai