Sunday, 29 November 2015

Membimbing robot dua lengan ke jalan yang lurus

Beberapa hari yang lalu aku telah mengakali algoritma inverse kinematik yang aku tulis pada postingan berjudul Hasil melawan kelicikan, sekarang aku tambahkan beberapa rumus atau formula untuk algoritma gerak lurus dari satu titik ke titik yang lain. Setelah aku coba mengendalikan dua motor servo dengan algoritma inverse kinematik ala diriku hehehe, dua servo tersebut berhasil bergerak dari satu titik awal ke satu titik berikutnya hanya dengan menginputkan titik koordinat x dan y dalam semua kuadran. Tapi ternyata kedua servo tersebut tidak bergerak lurus dari titik ke titik. Lalu aku ingin mencoba membuatnya lebih rumit lagi agar kedua motor servo itu bisa bergerak seolah - olah lurus.
Algoritma ini menggunakan titik - titik koordinat diantara titik awal dan titik tujuan yang harus dilewati oleh kedua motor servo tersebut. Jadi seperti pergerakan yang dibimbing titik demi titik yang membentuk garis lurus.






Rumus di atas adalah untuk membaca titik koordinat awal x[0] dan y[0], karena informasi yang dapat kita ambil hanyalah sudut dari masing - masing encoder motor servo. kemudia menentukan jarak r yang akan ditempuh dari titik awal ke titik tujuan x[1] dan y[1].


Mencari n atau berapakah titik - titik antara titik awal dan titik akhir yang akan dilalui. Dimana titik - titik tersebut berjarak 0,1. Nilai 0,1 itu bisa diubah berapapun sesuai keinginan, dengan ketentuan semakin kecil nilainya maka semakin halus gerakannya atau semakin mendekati gerak lurus sempurna, tapi juga semakin banyak titik - titik yang akan dilaluinya sehingga semakin menambah beban kerja controllernya, dan sebaliknya. Iterasi r[n] hanya sampai nilai r[n] kurang dari 0,1 karena tidak semua nilai r bisa habis dibagi 0,1.




dx[i] dan dy[i] adalah daftar titik - titik koordinat yang akan dilalui. Setelah didapat semua titik - titik koordinat yang dibutuhkan maka dilakukanlah algoritma inverse kinematik untuk memprosesnya. Dua motor servo tersebut akan bergerak dari titik - ke titik sampai titik terakhir sebagai target point. Rumus - rumus tersebut memang baru aku simulasikan dengan program delphi dimana hampir semua titik bisa diproses kecuali titik - titik tertentu dengan nilai cos melebihi 1(belum tau penyebabnya). Semoga ini juga bisa langsung diaplikasikan dengan motor servo.

0 comments:

Post a Comment