Saya sedang mengerjakan sebuah proyek di mana saya perlu memodelkan sistem yang pada dasarnya terdiri dari serangkaian sambungan ball-and-socket yang terpasang pada sebuah pangkalan, yang kemudian dipasang pada sambungan prismatik (rail).
Saya telah membaca buku Algoritma Rigid Body Dynamics Roy Featherstone secara langsung , dan saya juga membaca bagian Dynamics dari Springer Handbook of Robotics (juga ditulis oleh Featherstone).
Butuh waktu lama bagi saya untuk terbiasa menggunakan notasi "vektor spasial" dan "matriks spasial" -nya, tetapi setelah menciptakan kembali semua notasinya dengan tangan sebagai latihan, ternyata hanya cara yang bagus untuk menggabungkan 3x3 dan Matriks dan vektor 3x1 menjadi matriks dan vektor 6x6 dan 6x1. Matematika yang ia buat untuk melakukan operasi bisa agak membosankan untuk dibaca ketika ia membajak beberapa notasi standar, tetapi secara keseluruhan semuanya sangat kompak, sangat mudah diimplementasikan dalam MATLAB.
Masalah saya adalah ini: Bagaimana cara menambahkan aktuator ke model? Dia berjalan melalui secara eksplisit mengkonfigurasi definisi bersama, definisi tautan, dll., Tetapi ketika datang ke aktuator atau kekuatan yang diterapkan dia mengatakan sesuatu seperti, "Tambahkan saja sini dan Bob pamanmu Bob!" - tidak dibahas sama sekali. Dalam Buku Pegangan Robotika ia menyarankan untuk memperkenalkan akselerasi palsu ke pangkalan tetap untuk menambahkan istilah gaya gravitasi, tetapi tidak menunjukkan cara menambahkannya dalam koordinat lokal atau ia tidak menyebutkan cara menambahkan input aktuator.
Bantuan apa pun akan sangat dihargai. Saya telah mempertimbangkan untuk memulai dari awal dengan buku yang berbeda, tetapi itu akan menjadi pengeluaran besar waktu saya untuk menyesuaikan diri dengan serangkaian notasi yang berbeda. Saya ingin bergerak maju dengan ini, tetapi saya merasa seperti saya hanya beberapa inci dari garis finish.
Jika Anda belum menemukan Perpustakaan Rigid Body Dynamics (RBDL) Anda mungkin ingin melihat bagaimana mereka mengimplementasikannya, dan / atau hubungi penulis Martin Felis.
sumber
G.block(0,q_index,6,1) = base_to_body.apply(model.X_base[j].inverse().apply(model.S[j]));
. Jadi, apa fungsinyaapply
? Yah, saya harus pergi ke file header untuk kelas apa punbase_to_body
, tetapi apakah itu gabungan atau badan? Juga, hal-hal sepertimodel.base[j].inverse().apply(model.S[j])
juga tidak terlalu jelas.