paint-brush
Điều kiện mạng kém? Không vấn đề gì! gRPC và WebRTC cho Robot có thể giúp íchtừ tác giả@joycelin
287 lượt đọc

Điều kiện mạng kém? Không vấn đề gì! gRPC và WebRTC cho Robot có thể giúp ích

từ tác giả Joyce Lin4m2024/08/09
Read on Terminal Reader

dài quá đọc không nổi

Tìm hiểu cách bạn có thể sử dụng gRPC và WebRTC cho robot và các máy thông minh khác để giao tiếp đáng tin cậy hơn. Nhiều hệ thống robot được tạo thành từ các thiết bị công suất thấp và băng thông thấp hoặc hoạt động trong điều kiện mạng kém. GRPC được tối ưu hóa về tốc độ, có thể nhanh hơn tới 7–10 lần so với REST API.
featured image - Điều kiện mạng kém? Không vấn đề gì! gRPC và WebRTC cho Robot có thể giúp ích
Joyce Lin HackerNoon profile picture

Robot hoạt động ở mọi nơi với các điều kiện mạng khác nhau, từ Ethernet ổn định đến kết nối di động hoặc vệ tinh không ổn định. Tìm hiểu cách bạn có thể sử dụng gRPC và WebRTC cho robot và các máy thông minh khác để giao tiếp đáng tin cậy hơn.


Vận hành xe tự hành bằng API Viam gRPC trong Postman

Tại sao nên sử dụng gRPC VÀ WebRTC để điều khiển robot?

Tôi mới bắt đầu công việc mới tại Viam và tò mò muốn tìm hiểu thêm về kiến trúc hệ thống của họ. Nhiều hệ thống robot bao gồm các thiết bị công suất thấp và băng thông thấp hoặc hoạt động trong điều kiện mạng kém. Viam là một nền tảng phần mềm robot mã nguồn mở được thiết kế riêng để giúp robot và các máy thông minh khác giao tiếp đáng tin cậy hơn.


Nó sử dụng gRPC để giao tiếp máy khách-máy chủ nhanh chóng, có cấu trúc và WebRTC để giao tiếp ngang hàng trực tiếp giữa các máy. Hãy cùng khám phá những lợi ích của việc sử dụng gRPC và WebRTC chi tiết hơn.

Lợi ích của việc sử dụng gRPC và Protobuf trong robot

Có một số lý do để sử dụng gRPC cho robot, chẳng hạn như để cải thiện năng suất và trải nghiệm của nhà phát triển. Tuy nhiên, lý do hấp dẫn nhất là nó được tối ưu hóa cho tốc độ, có thể nhanh hơn tới 7–10 lần so với REST API qua HTTP, với tin nhắn Protobuf nhẹ.

Hiệu suất và hiệu quả

  • Mã hóa: Protobuf cung cấp mã hóa nhị phân hiệu quả, lý tưởng cho các máy có hạn chế về công suất, bộ nhớ, khả năng tính toán hoặc băng thông thấp so với JSON-RPC .
  • Vận chuyển: Cùng với vận chuyển mặc định của HTTP/2, gRPC hỗ trợ các vận chuyển thay thế như HTTP/1.1 với gRPC-Web và WebRTC. Điều này cung cấp một giao diện nhất quán với tính linh hoạt của công nghệ vận chuyển cơ bản, đặc biệt là với phát trực tuyến.


Components and services in the Viam API represented as protobuf

Các thành phần và dịch vụ trong Viam API được biểu diễn dưới dạng các dịch vụ Protocol Buffer (protobuf) không phụ thuộc vào ngôn ngữ và gRPC chịu trách nhiệm vận chuyển và giao tiếp các thông điệp protobuf khi gọi các phương thức protobuf.


Cụ thể, Viam sử dụng gRPC cho các tương tác cấp cao giữa các bộ phận máy và các ứng dụng dựa trên SDK, cho phép trao đổi dữ liệu có cấu trúc, độ trễ thấp và các lệnh điều khiển. Đây là một cách hiệu quả để phối hợp công việc cần thực hiện, chẳng hạn như truy xuất các đám mây điểm từ máy ảnh, phân tích dữ liệu để phân đoạn đối tượng và hướng dẫn cánh tay rô bốt thực hiện các tác vụ dựa trên các tư thế được tính toán.


Protobuf giảm thiểu kích thước dữ liệu được truyền, tiết kiệm băng thông mạng trong quá trình truyền.

Lợi ích của việc sử dụng WebRTC trong robot

Có một số lý do để sử dụng WebRTC trong robot, chẳng hạn như vì lý do bảo mật và khả năng tương thích đa nền tảng. Tuy nhiên, lý do thuyết phục nhất là nó sử dụng kết nối trực tiếp.

Giao tiếp ngang hàng

  • Trực tiếp : WebRTC tạo điều kiện cho các kết nối trực tiếp giữa các thiết bị, giảm sự phụ thuộc vào máy chủ trung tâm và giảm thiểu tuyến đường truyền dữ liệu.
  • Khả năng thích ứng với mạng : Điều chỉnh chất lượng phương tiện dựa trên điều kiện mạng để có hiệu suất mượt mà, chẳng hạn như phát trực tuyến video.


Viam dựa vào WebRTC để giao tiếp ngang hàng, cho phép luồng dữ liệu và video trực tiếp giữa các bộ phận máy và Viam SDK. Điều này có nghĩa là sau khi kết nối ban đầu được thiết lập, dữ liệu của bạn không cần phải đi qua một máy chủ trung tâm để giao tiếp với máy khác. Thiết lập này tối ưu hóa khả năng phản hồi theo thời gian thực và hiệu quả hoạt động, đặc biệt là với các cấu hình máy phức tạp.


WebRTC cho phép giao tiếp ngang hàng trực tiếp, tránh các máy chủ trung gian có thể gây ra sự chậm trễ hoặc lỗi.

Cách Viam sử dụng gRPC và WebRTC để cho phép giao tiếp ngang hàng giữa robot

Chúng ta hãy xem cách thức hoạt động trong ví dụ về trò chơi gắp thú gồm hai bộ phận máy: một máy ảnh và một cánh tay.


Viam điều khiển các thành phần của một con rô-bốt trong trò chơi gắp thú


Ứng dụng Viam (app.viam.com) lắng nghe các yêu cầu kết nối, gửi thông tin chi tiết về kết nối và sau đó cho phép hai đối tác giao tiếp trực tiếp. Các kết nối ban đầu được tạo điều kiện thuận lợi qua gRPC.


Viam sử dụng gRPC để khởi tạo kết nối và WebRTC để giao tiếp ngang hàng trong trò chơi gắp robot này


Sau khi kết nối, các bộ phận máy giao tiếp qua WebRTC, cho phép mọi tương tác giữa SDK và máy diễn ra qua WebRTC bằng cách sử dụng lệnh gọi phương thức gRPC. Nói cách khác, lược đồ gRPC quyết định dữ liệu trông như thế nào và được đóng gói như thế nào, trong khi WebRTC xử lý việc phân phối thực tế dữ liệu đó từ nơi này đến nơi khác.

Bắt đầu với robot bằng Viam

Mặc dù bạn có thể tự xây dựng một cơ sở hạ tầng tương tự, Viam cung cấp khả năng này với phần mềm robot có sẵn. Chức năng trên máy là mã nguồn mở và miễn phí vận hành. Nếu cuối cùng bạn bắt đầu quản lý một đội xe, đó là thanh toán dựa trên mức sử dụng cho các dịch vụ đám mây và lưu trữ dữ liệu.


Ứng dụng web ViamSDK được thiết kế để giúp bạn làm việc với máy của mình. Tuy nhiên, nếu bạn muốn khám phá những gì đang diễn ra đằng sau hậu trường, hãy xem không gian làm việc công khai của Viam API trong Postman để biết hướng dẫn từng bước về cách làm việc với Viam gRPC API cơ bản, bao gồm:


  • Cho phép các cuộc gọi API gRPC

  • Gọi các phương pháp để kiểm soát các thành phần phần cứng

  • Gọi các phương pháp để quản lý các dịch vụ phần mềm


    Bộ sưu tập API Viam gRPC để tham khảo

Bạn có thể không có cánh tay robot theo ý mình, nhưng bạn có thể thử nghiệm với một cỗ máy giá cả phải chăng hơn, như xe tự hành, chẳng hạn như Yahboom hoặc SCUTTLE . Viam cũng thiết kế một xe tự hành mã nguồn mở để giúp mọi người tìm hiểu về robot.


Sử dụng gRPC và WebRTC để vận hành rover


Để bắt đầu, hãy chuyển bộ sưu tập mẫu xe tự hành Spin a Viam sang không gian làm việc của bạn bằng cách nhấp vào nút Chạy trong Postman bên dưới.


Phân nhánh bộ sưu tập gRPC vào không gian làm việc của riêng bạn bằng cách nhấp vào nút Chạy trong Postman

Và hãy theo dõi các nguồn tài nguyên sau:

Đánh giá kỹ thuật bởi: Nick Hehr