paint-brush
Kötü Ağ Koşulları mı? Sorun Değil! Robotlar için gRPC ve WebRTC Yardımcı Olabilirile@joycelin
158 okumalar

Kötü Ağ Koşulları mı? Sorun Değil! Robotlar için gRPC ve WebRTC Yardımcı Olabilir

ile Joyce Lin4m2024/08/09
Read on Terminal Reader

Çok uzun; Okumak

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. 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. GRPC, REST API'lerinden belki 7-10 kata kadar daha hızlı olan hız için optimize edilmiştir.
featured image - Kötü Ağ Koşulları mı? Sorun Değil! Robotlar için gRPC ve WebRTC Yardımcı Olabilir
Joyce Lin HackerNoon profile picture

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.


Postman'da Viam gRPC API'sini kullanarak bir geziciyi çalıştırın

Robotları kontrol etmek için neden gRPC ve WebRTC kullanmalıyız?

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.

Robotikte gRPC ve Protobuf kullanmanın faydaları

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.

Performans ve Verimlilik

  • Kodlama: Protobuf, JSON-RPC'ye kıyasla düşük güç, bellek, hesaplama veya bant genişliği kısıtlamalarına sahip makineler için ideal olan verimli ikili kodlama sunar.
  • Taşıma: HTTP/2'nin varsayılan taşımasının yanı sıra gRPC, gRPC-Web ve WebRTC ile HTTP/1.1 gibi alternatif taşımaları destekler. Bu, özellikle akışla birlikte, temel taşıma teknolojisinin esnekliğiyle tutarlı bir arayüz sağlar.


Components and services in the Viam API represented as protobuf

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 faydaları

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.

Eşler arası iletişim

  • Doğrudan : WebRTC, cihazlar arasında doğrudan bağlantıları kolaylaştırır, merkezi sunuculara olan bağımlılığı azaltır ve verilerin geçiş yolunu en aza indirir.
  • Ağ uyumluluğu : Video akışı gibi sorunsuz performans için ağ koşullarına göre medya kalitesini ayarlar.


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.

Viam, eşler arası robot iletişimini etkinleştirmek için gRPC ve WebRTC'yi nasıl kullanı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, bir arcade pençe oyununda bir robotun bileşenlerini kontrol ediyor


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.


Viam, bu robot pençe oyununda bağlantıları başlatmak için gRPC'yi ve eşler arası iletişim için WebRTC'yi kullanı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.

Viam kullanarak robotikle çalışmaya başlayın

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


    Referans için Viam gRPC API koleksiyonu

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.


Postman'de Çalıştır düğmesine tıklayarak gRPC koleksiyonunu kendi çalışma alanınıza aktarın

Ve şu kaynakları takip edin:

Teknik inceleme: Nick Hehr