Inverse Kinematics
Masalah invers kinematika jauh lebih menarik dan solusinya lebih berguna. Pada tingkat posisi, masalahnya adalah dinyatakan sebagai berikut, ” Ditentukan posisi yang diinginkan dari tangan robot, berapa sudut yang harus diberikan pada semua sendi robot?”. Hal ini berbeda dengan masalah Forward Kinematika, yaitu, ” Ditentukan sudut pada semua sendi robot, dimana posisi tangan?”
Manusia memecahkan masalah ini setiap saat tanpa berpikir tentang hal itu. Ketika kita makan sereal di pagi hari kita hanya menjangkau dan mengambil sendok kita. kita tidak berpikir, “bahu saya perlu melakukan hal ini, siku saya perlu melakukan itu, dll” Di bawah ini kita akan melihat bagaimana sebagian besar robot untuk memecahkan masalah. Kita akan mulai dengan contoh yang sangat sederhana.
Gambar di atas adalah skema robot sederhana berbaring pada bidang XY. Robot memiliki satu link l panjang dan satu joint(sendi) dengan sudut Ø. Posisi tangan robot adalah Xhand. Masalah invers kinematika (pada tingkat posisi) untuk robot ini adalah sebagai berikut: Ditentukan Xhand, berapa sudut joint Ø ? Kami akan mulai solusi untuk masalah ini dengan menuliskan persamaan posisi depan, dan kemudian memecahkan untuk Ø.
Xhand = lcosØ (forward position solution)
cosØ = Xhand/l
Ø = cos-1(Xhand/l)
cosØ = Xhand/l
Ø = cos-1(Xhand/l)
Untuk menyelesaikan solusi katakanlah link robot ini memiliki panjang 1 kaki dan kita ingin tangan robot berada di X = 0,7071 kaki. Maka :
Ø = cos-1(.7071) = +/- 45 degrees
Bahkan untuk contoh sederhana ini, ada dua solusi untuk masalah kinematika invers: satu di plus 45 derajat dan satu di minus 45 derajat! Keberadaan beberapa solusi menambah tantangan masalah invers kinematika. Biasanya kita harus mengetahui mana dari solusi yang benar. Semua bahasa pemrograman yang memiliki fungsi trigonometri disebut ATan2 yang akan menemukan kuadran yang tepat ketika diberikan baik argumen X dan Y: Ø = ATan2 (Y / X). Sekarang kita memiliki alat yang kita butuhkan untuk melihat masalah invers kinematika agar lebih menarik:
Skema di atas adalah bagian planar dari robot SCARA. Berikut pernyataan dari masalah invers kinematika di tingkat posisi untuk robot ini:
Diketahui : Xhand, Yhand, Øhand
Cari : Ø1, Ø2 and Ø3
Cari : Ø1, Ø2 and Ø3
Untuk membantu dalam memecahkan masalah ini, kita akan mendefinisikan garis lurus imajiner yang membentang dari sendi pertama robot hingga sendi terakhir sebagai berikut:
B: panjang garis imajiner
q1: sudut antara X-sumbu imajiner dan garis
q2: interior sudut antara garis imajiner dan link l1
q1: sudut antara X-sumbu imajiner dan garis
q2: interior sudut antara garis imajiner dan link l1
Maka kita mempunyai:
B2 = X2 + Y2 (dengan teorema Pythagoras)
q1 = ATan2(Y/X)
q2 = acos[(l12 - l22 + B2)/2l1B] (oleh hukum kosinus)
Ø1 = q1 + q2
Ø2 = acos[(l12 + l22 - B2)/2l1l2] (oleh hukum kosinus)
Ø3 = Ø – Ø1 – Ø2
q1 = ATan2(Y/X)
q2 = acos[(l12 - l22 + B2)/2l1B] (oleh hukum kosinus)
Ø1 = q1 + q2
Ø2 = acos[(l12 + l22 - B2)/2l1l2] (oleh hukum kosinus)
Ø3 = Ø – Ø1 – Ø2
Yang melengkapi solusi untuk Ø1, Ø2 dan Ø3 diberikan X, Y, Ø. Kebanyakan invers kinematika solusi di tingkat posisi dilanjutkan dengan cara yang sama. Dengan menggunakan pengetahuan tentang trigonometri dan geometri, kita dapat merancang sebuah system kerja robot SCARA. Jika kita membayangkan memutar robot SCARA pada sisinya, maka akan terlihat bahwa solusi di atas juga bekerja untuk sebagian besar komponen robot industri yang memiliki enam derajat kebebasan. Solusi inverse kinematika untuk robot kartesian adalah semua sumbu tegak lurus dengan definisi dan karenanya tidak ada sambungan pada gerakan.
sumber: http://www.learnaboutrobots.com/inverseKinematics.htm
saya pernah buat program VB yang awalnya hanya iseng buat nyoba rumus-rumus dari inverse kinematic,
kira-kira tampilan screenshoot-nya seperti ini:
program simulasi inverse kinematic 2 derajat kebebasan yang saya buat ini dapat di download kesini!!
Tidak ada komentar:
Posting Komentar