Şu anda, birden fazla kontrollü serbestlik ve sensör derecesine sahip bir mobil robot + monte kol tasarlıyoruz.
İki bölümden oluşan bir mimari düşünüyorum:
Kol motorlarını ve enkoderleri kontrol etmek için bir dizi gerçek zamanlı kontrolör (Xenomai gibi bir RTOS çalıştıran Raspeberry Pis veya çıplak metal mikrodenetleyiciler). Bu makinelere mikro denetleyicilerin sayısına bağlı olarak x = 1,2,3… ile RTx diyelim. Bu kontrol döngüsü 200Hz'de çalışacaktır.
SLAM, mocap ve yüksek seviyeli mantığı çalıştırmak için ROS çalıştıran güçlü bir vanilya linux makinesi (robotun görevine karar verin ve motorların istenen konumunu ve hızını hesaplayın). Bu kontrol döngüsü 30Hz'de çalışacaktır.
Çerçevemin daha fazla motor, daha fazla sensör, daha fazla PC (örneğin harici mocap için) hesaba katmak için ölçeklenebilir olması gerektiğini biliyorum.
Benim asıl sorun farklı RTx PC1 ile iletişim kurmak karar vermek. Robot mimarisiyle ilgili makalelere baktım (örneğin HRP2 ), çoğu zaman üst düzey kontrol mimarisini tanımlarlar, ancak henüz düşük seviyenin yüksek seviyeyle ve ölçeklenebilir bir şekilde nasıl iletişim kuracağı hakkında bilgi bulamadım. Bir şey mi kaçırdım?
Motor kontrolünü sağlayan hızlı RT makinelerini PC1 ile bağlamak için TCP / IP, CAN ve UART'ı düşündüm:
- TCP / IP: deterministik değil, yerleştirilmesi kolaydır. Determinizm gerçek bir mesele midir (sadece 30Hz'de düşük hızda kullanılacağı için)?
- CAN: Yavaş, çok güvenilir, arabalara yönelik (robotlarla CAN kullanan bazı örnekler var, ancak egzotik görünüyordu)
- UART: Motor kontrolü için sadece bir RT makinem olsaydı, UART'ı düşünürdüm ama sanırım bu port birçok RTx ile iyi ölçeklenmiyor TCP / IP, deterministik olmayan özellikleri nedeniyle gerçekten bir sorun değil mi? Kullanımı çok kolay…
Şu anda hiçbir çözüm benim için gerçekten açık görünmüyor. Belirli bir güvenilir ve ölçeklenebilir çözüm kullanarak ciddi bir robot örneği bulamadığım için, seçim yapmaktan kendimi emin değilim.
Bu noktaya veya literatüre işaret edecek herhangi bir kimse var mı? Robotlarda kullanılan tipik veya genel iletişim çözümleri var mı?