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.
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.
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ẹ.
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.
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.
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.
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.
Ứ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.
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.
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 Viam và SDK đượ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ạ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.
Và hãy theo dõi các nguồn tài nguyên sau:
Đánh giá kỹ thuật bởi: Nick Hehr