Jawaban yang saya terima untuk pertanyaan tentang pelatihan robot mengikuti garis menggunakan teknik pembelajaran penguatan , membuat saya berpikir tentang cara melatih robot. Saya percaya pada dasarnya ada dua cara -
- Latih robot fisik.
- Memodelkan robot dan mensimulasikan pelatihan.
- Apakah saya melewatkan sesuatu?
Pendekatan 2 jelas merupakan pendekatan yang lebih baik. Namun, pengetahuan apriori tentang gerak (respons), sinyal PWM tertentu (stimulus) akan menyebabkan ketika robot dalam keadaan tertentu diperlukan. Gerakan yang disebabkan oleh sinyal PWM mungkin tergantung pada ( 1 ) tegangan baterai saat ini, ( 2 ) massa robot dan ( 3 ) kecepatan arus (apakah saya melewatkan sesuatu?).
Bagaimana cara saya memodelkan robot seperti itu? Dan bagaimana cara memodelkannya dengan cepat? Jika saya mengganti baterai atau menambahkan beberapa papan dan periferal lain serta mengubah massa robot, saya harus merombak dan melatih ulang robot. Dapatkah saya melakukan ini dengan memberikan beberapa PWM stimulus acak dan mengukur respons?
menambahkan: Pertanyaan terkait saya di dsp.SE
Pembaruan: Suntingan yang disarankan untuk judul oleh Ian layak disebutkan - " Bagaimana cara saya model melatih robot sehingga jika dinamika berubah, itu tidak perlu pelatihan ulang lengkap? " Saya pikir ini adalah pertanyaan yang bagus juga tetapi berbeda dari yang saya tanyakan di sini. Saya baik-baik saja dengan pelatihan ulang untuk saat ini.
sumber
Jawaban:
Seperti yang saya lihat ada dua pertanyaan utama di sini. Yang pertama adalah, bagaimana cara saya memodelkan robot? Ini sering dilakukan dengan perumusan ruang- gerak dari persamaan gerak . Persamaan yang tepat tergantung pada konstruksi fisik robot Anda. Ya, untuk memodelkan mereka dengan input PWM maka Anda perlu menentukan fungsi transfer dari nilai PWM yang Anda berikan ke output aktuator Anda. Kemudian Anda pasang fungsi itu untuk sinyal kontrol dalam model Anda. Sekali lagi derivasi dari fungsi ini adalah robot khusus. Tegangan baterai saat ini dan massa robot kemungkinan akan berguna tetapi saya tidak tahu tentang kecepatannya.
Pertanyaan kedua adalah, mengingat model matematika robot saya, apa cara terbaik untuk melatih algoritma penguatan belajar (RL) untuk mengendalikannya? Singkatnya tidak ada satu cara terbaik. Pelatihan langsung pada robot cenderung memakan waktu karena membutuhkan robot lebih lama untuk melakukan uji coba. Namun simulasi dapat menghasilkan kebijakan yang kurang akurat karena fisika simulasi disederhanakan. Pendekatan lain adalah melatih pelajar dalam simulasi untuk mendapatkan perkiraan yang masuk akal dan kemudian mentransfer kebijakan yang dihasilkan ke robot untuk penyempurnaan lebih lanjut. Ini tentu saja gagal jika modelnya tidak cukup akurat. Ini juga membutuhkan pengembangan ekstra.
Akhirnya Anda bertanya, "Dapatkah saya [merombak dan melatih ulang robot] dengan memberikan beberapa PWM stimulus acak dan mengukur responsnya?" Dalam kasus RL tidak ada alasan untuk berpikir bahwa kebijakan optimal yang baru adalah sesuatu seperti kebijakan optimal sebelumnya dan karena itu tidak ada banyak alasan untuk berpikir bahwa beberapa kontrol acak akan menyediakan informasi yang cukup untuk mengubah kebijakan dengan tepat. Tentu saja pelatihan ulang hanya perlu terjadi jika perubahan yang Anda buat pada robot Anda memengaruhi formulasi model state-space dan / atau model aksi yang Anda gunakan. Misalnya, jika model tindakan Anda dalam hal tindakan tingkat tinggi ("ke kiri", "ke kanan", "maju") maka mengubah dinamika memerlukan mengubah cara Anda menerapkan gerakan ini tetapi kebijakan tersebut harus tetap berlaku .
sumber
Untuk pemodelan kinematika
Denavit–Hartenberg parameters
biasanya digunakan. kursus Pengantar Robotika yang disediakan oleh Stanford University tersedia di YouTubesumber