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 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. 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. Viam 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 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ể qua HTTP, với tin nhắn Protobuf nhẹ. gRPC nhanh hơn tới 7–10 lần so với REST API Hiệu suất và hiệu quả 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 . Mã hóa: JSON-RPC 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. Vận chuyển: Các thành phần và dịch vụ trong đượ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. Viam API 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 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. WebRTC Giao tiếp ngang hàng : 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. Trực tiếp : Đ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. Khả năng thích ứng với mạng 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. Ứ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. 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. 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. Chức năng trên máy và đượ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 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: Ứng dụng web Viam SDK không gian làm việc công khai của Viam API 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ư . Viam cũng thiết kế để giúp mọi người tìm hiểu về robot. Yahboom hoặc SCUTTLE một xe tự hành mã nguồn mở 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 sang không gian làm việc của bạn bằng cách nhấp vào nút bên dưới. xe tự hành Spin a Viam Chạy trong Postman Và hãy theo dõi các nguồn tài nguyên sau: Codelab từng bước: Hướng dẫn Postman cho API gRPC của Viam Duyệt để biết thêm chi tiết về từng yêu cầu tài liệu thu thập Xem video: Quay xe tự hành bằng API Viam gRPC https://www.youtube.com/watch?v=KaJIXznpssw&t=1s&embedable=true Đánh giá kỹ thuật bởi: Nick Hehr