Robotlar, istikrarlı Ethernet'ten tutarsız hücresel veya uydu bağlantılarına kadar değişen ağ koşullarına sahip her türlü yerde çalışır. Robotlar ve diğer akıllı makineler için gRPC ve WebRTC'yi daha güvenilir bir şekilde iletişim kurmak için nasıl kullanabileceğinizi öğrenin.
Yakın zamanda Viam'da yeni bir işe başladım ve sistem mimarileri hakkında daha fazla bilgi edinmek istiyordum. Birçok robotik sistem düşük güç ve düşük bant genişliğine sahip cihazlardan oluşur veya zayıf ağ koşullarında çalışır. Viam, robotların ve diğer akıllı makinelerin daha güvenilir bir şekilde iletişim kurmasına yardımcı olmak için özel olarak tasarlanmış açık kaynaklı bir robotik yazılım platformudur.
Hızlı, yapılandırılmış istemci-sunucu iletişimi için gRPC'yi ve makineler arasında doğrudan, eşler arası iletişim için WebRTC'yi kullanır. gRPC ve WebRTC kullanmanın avantajlarını daha ayrıntılı olarak inceleyelim.
gRPC'yi robotik için kullanmanın geliştirici üretkenliğini ve geliştirici deneyimini iyileştirmek gibi birçok nedeni vardır. Ancak en ikna edici neden, hafif Protobuf mesajlaşmasıyla HTTP üzerinden REST API'lerinden belki de 7-10 kata kadar daha hızlı olan hız için optimize edilmiş olmasıdır.
Viam API'sindeki bileşenler ve servisler dil bağımsız Protokol Arabellek (protobuf) servisleri olarak temsil edilir ve gRPC, protobuf yöntemleri çağrılırken protobuf mesajlarının taşınması ve iletişiminden sorumludur.
Özellikle Viam, makine parçaları ile SDK tabanlı uygulamalar arasındaki yüksek seviyeli etkileşimler için gRPC'yi kullanır ve yapılandırılmış, düşük gecikmeli veri alışverişi ve kontrol komutları sağlar. Bu, kameralardan nokta bulutlarını almak, nesne segmentasyonu için verileri analiz etmek ve robotik kollara hesaplanan pozlara dayalı görevleri gerçekleştirmeleri talimatını vermek gibi yapılacak işleri koordine etmenin etkili bir yoludur.
Protobuf, iletilen verinin boyutunu en aza indirerek iletim sırasında ağ bant genişliğinden tasarruf sağlar.
Robotikte WebRTC kullanmanın güvenlik ve platformlar arası uyumluluk gibi birçok nedeni vardır. Ancak en ikna edici neden doğrudan bağlantı kullanmasıdır.
Viam, eşler arası iletişim için WebRTC'ye güvenir ve makine parçaları ile Viam SDK arasında doğrudan video ve veri akışlarına izin verir. Bu, ilk bağlantı kurulduktan sonra verilerinizin başka bir makineyle iletişim kurmak için merkezi bir sunucudan geçerek uzun bir yol kat etmesine gerek olmadığı anlamına gelir. Bu kurulum, özellikle karmaşık makine yapılandırmalarında gerçek zamanlı yanıt vermeyi ve operasyonel verimliliği optimize eder.
WebRTC, gecikmelere veya arıza noktalarına neden olabilecek ara sunucuların kullanılmasını önleyerek doğrudan eşler arası iletişime olanak tanır.
Bunun, iki makine parçasından oluşan bir arcade pençe oyunu örneğinde nasıl çalıştığını görelim: bir kamera ve bir kol.
Viam uygulaması (app.viam.com) bağlantı isteklerini dinler, bağlantı ayrıntılarını gönderir ve ardından iki eşin doğrudan iletişim kurmasına izin verir. İlk bağlantılar gRPC üzerinden kolaylaştırılır.
Bağlandıktan sonra, makine parçaları WebRTC üzerinden iletişim kurar ve SDK'lar ile makineler arasındaki tüm etkileşimlerin gRPC yöntem çağrılarını kullanarak WebRTC üzerinden gerçekleşmesine olanak tanır. Başka bir deyişle, gRPC şeması verilerin nasıl göründüğüne ve nasıl paketlendiğine karar verirken, WebRTC bu verilerin bir yerden başka bir yere gerçek teslimatını yönetir.
Benzer bir altyapıyı kendi başınıza inşa edebilmenize rağmen, Viam bu yeteneği hazır robotik yazılımlarla sağlar. Makine üzerindeki işlevsellik açık kaynaklıdır ve kullanımı ücretsizdir. Sonunda bir filoyu yönetmeye başlarsanız, bulut hizmetleri ve veri depolama için kullanıma dayalı faturalandırma olur.
Viam web uygulaması ve SDK'ları makinelerinizle çalışmanıza yardımcı olmak için tasarlanmıştır. Ancak, perde arkasında neler olup bittiğini keşfetmek istiyorsanız, aşağıdakiler de dahil olmak üzere temel Viam gRPC API'leriyle çalışma konusunda adım adım talimatlar için Postman'deki Viam API'leri genel çalışma alanına göz atın:
gRPC API çağrılarını yetkilendirme
Donanım bileşenlerini kontrol etmek için yöntemleri çağırma
Yazılım hizmetlerini yönetmek için yöntemleri çağırma
Emrinizde robotik bir kol olmayabilir, ancak bunu Yahboom veya SCUTTLE gibi daha uygun fiyatlı bir makineyle, örneğin bir geziciyle deneyebilirsiniz. Viam ayrıca insanların robotik hakkında bilgi edinmesine yardımcı olmak için açık kaynaklı bir gezici tasarladı.
Bir geziciyi çalıştırmak için gRPC ve WebRTC kullanın
Başlamak için, aşağıdaki Postman'de Çalıştır düğmesine tıklayarak Spin a Viam rover örnek koleksiyonunu kendi çalışma alanınıza aktarın.
Ve şu kaynakları takip edin:
Teknik inceleme: Nick Hehr