Kami saat ini merancang robot mobile + lengan yang terpasang dengan beberapa derajat kebebasan dan sensor yang terkontrol.
Saya sedang mempertimbangkan arsitektur dalam dua bagian:
Seperangkat pengendali waktu nyata (baik Raspeberry Pis menjalankan RTOS seperti Xenomai atau mikrokontroler logam telanjang) untuk mengontrol motor lengan dan enkoder. Mari kita sebut mesin ini RTx, dengan x = 1,2,3 ... tergantung pada jumlah mikrokontroler. Loop kontrol ini akan berjalan pada 200Hz.
Mesin linux vanilla yang tangguh yang menjalankan ROS untuk menghitung SLAM, mocap, dan menjalankan logika tingkat tinggi (memutuskan tugas robot dan menghitung posisi dan kecepatan yang diinginkan motor). Loop kontrol ini akan berjalan pada 30Hz.
Saya tahu kerangka kerja saya harus dapat diukur untuk memperhitungkan lebih banyak motor, lebih banyak sensor, lebih banyak PC (mis. Untuk mocap eksternal).
Masalah utama saya adalah memutuskan bagaimana agar RTx berbeda berkomunikasi dengan PC1. Saya telah melihat makalah yang berkaitan dengan arsitektur robot (mis. HRP2 ), paling sering mereka menggambarkan arsitektur kontrol tingkat tinggi tetapi saya belum menemukan informasi tentang cara berkomunikasi tingkat rendah dengan tingkat tinggi dan dengan cara yang dapat diskalakan. Apakah saya melewatkan sesuatu?
Untuk menghubungkan mesin RT cepat yang memastikan kontrol motor dengan PC1, saya telah mempertimbangkan TCP / IP, CAN dan UART:
- TCP / IP: tidak deterministik tetapi mudah diterapkan. Apakah non determinisme merupakan masalah nyata (karena hanya akan digunakan pada kecepatan lambat 30Hz)?
- CAN: lambat, sangat andal, ditargetkan untuk mobil (telah melihat ada beberapa contoh menggunakan CAN dengan robot tetapi terlihat eksotis)
- UART: jika saya hanya memiliki satu mesin RT untuk kontrol motor saya akan mempertimbangkan UART tetapi saya kira port ini tidak skala dengan banyak RTx Apakah TCP / IP benar-benar tidak jalan karena karakteristik non-deterministiknya? Sangat mudah digunakan ...
Saat ini tidak ada solusi yang tampak jelas bagi saya. Dan karena saya tidak dapat menemukan contoh robot serius menggunakan solusi spesifik yang andal dan dapat diskalakan, saya tidak merasa percaya diri untuk membuat pilihan.
Adakah yang memiliki pandangan yang jelas tentang hal ini atau literatur yang harus ditunjukkan? Apakah ada solusi komunikasi khas atau mainstream yang digunakan pada robot?