机器人可以在各种地方工作,网络条件各异,从稳定的以太网到不稳定的蜂窝或卫星连接。了解如何使用 gRPC 和 WebRTC 让机器人和其他智能机器更可靠地进行通信。 为什么使用 gRPC 和 WebRTC 来控制机器人? 我最近在 Viam 开始了一份新工作,很想了解更多有关其系统架构的 。许多机器人系统由低功耗和低带宽设备组成,或者在较差的网络条件下运行。Viam 是一个开源机器人软件平台,专门用于帮助机器人和其他智能机器更可靠地通信。 信息 它使用 gRPC 进行快速、结构化的客户端-服务器通信,使用 WebRTC 进行机器之间的直接点对点通信。让我们更详细地探讨使用 gRPC 和 WebRTC 的好处。 在机器人技术中使用 gRPC 和 Protobuf 的好处 将 用于机器人技术的原因有很多,例如提高开发人员的工作效率和开发人员的体验。然而,最令人信服的原因是它针对速度进行了优化,可能 ,并且具有轻量级的 Protobuf 消息传递功能。 gRPC 比 HTTP 上的 REST API 快 7-10 倍 性能和效率 Protobuf 提供高效的二进制编码,与 相比,非常适合功率、内存、计算或带宽限制较低的机器。 编码: JSON-RPC 除了默认的 HTTP/2 传输之外,gRPC 还支持其他传输方式,例如带有 gRPC-Web 和 WebRTC 的 HTTP/1.1。这提供了一致的接口以及底层传输技术的灵活性,尤其是在流媒体方面。 传输: 中的组件和服务表示为与语言无关的协议缓冲区 (protobuf) 服务,gRPC 负责在调用 protobuf 方法时传输和通信 protobuf 消息。 Viam API 具体来说,Viam 使用 gRPC 实现机器部件与基于 SDK 的应用程序之间的高级交互,从而实现结构化、低延迟的数据交换和控制命令。这是一种协调待完成工作的有效方法,例如从摄像头检索点云、分析数据以进行对象分割以及指示机械臂根据计算出的姿势执行任务。 Protobuf最小化了传输数据的大小,节省了传输过程中的网络带宽。 在机器人技术中使用 WebRTC 的好处 在机器人技术中使用 原因有很多,例如出于安全性和跨平台兼容性的考虑。不过,最令人信服的原因是它使用直接连接。 WebRTC 的 点对点通信 :WebRTC 促进设备之间的直接连接,减少对中央服务器的依赖,并最大限度地减少数据的遍历路线。 直达 :根据网络状况调整媒体质量,以实现流畅的性能,例如视频流。 网络适应性 Viam 依靠 WebRTC 进行点对点通信,允许机器部件和 Viam SDK 之间直接传输视频和数据流。这意味着一旦建立了初始连接,您的数据就无需经过中央服务器才能与另一台机器通信。这种设置可以优化实时响应能力和运营效率,尤其是在机器配置复杂的情况下。 WebRTC 支持直接的点对点通信,避免了可能引入延迟或故障点的中间服务器。 Viam 如何使用 gRPC 和 WebRTC 实现点对点机器人通信 让我们通过一个由两个机器部件(一个摄像头和一个手臂)组成的街机抓娃娃机的例子来看一下它的工作原理。 Viam 应用程序 (app.viam.com) 监听连接请求,发送连接详细信息,然后让两个对等体直接通信。初始连接通过 gRPC 实现。 连接后,机器部件通过 WebRTC 进行通信,从而允许 SDK 和机器之间的所有交互都使用 gRPC 方法调用通过 WebRTC 进行。换句话说,gRPC 架构决定数据的外观和打包方式,而 WebRTC 则负责将数据从一个地方实际传送到另一个地方。 使用 Viam 开始使用机器人技术 虽然您可以自行构建类似的基础设施,但 Viam 可通过现成的机器人软件提供此功能。 是开源的,可免费使用。如果您最终开始管理车队,则将根据使用情况对云服务和数据存储进行计费。 机器上的功能 和 旨在帮助您使用机器。但是,如果您想探索幕后发生的事情,请查看 Postman 中的 获取有关使用底层 Viam gRPC API 的分步说明,包括: Viam Web 应用程序 SDK Viam API 公共工作区, 授权 gRPC API 调用 调用方法来控制硬件组件 调用方法来管理软件服务 你可能没有机械臂,但你可以用更便宜的机器来尝试,比如 等探测车。Viam 还设计了 ,帮助人们了解机器人技术。 Yahboom 或 SCUTTLE 一款开源探测车 使用 gRPC 和 WebRTC 操作探测车 首先,点击下面的 按钮,将 样本集合分叉到您自己的工作区。 “在 Postman 中运行” Spin a Viam 流动站 并关注以下资源: 分步代码实验室: Viam 的 gRPC API 的 Postman 教程 浏览 以获取有关每个请求的更多详细信息 集合文档 观看视频: 使用 Viam gRPC API 旋转探测车 https://www.youtube.com/watch?v=KaJIXznpssw&t=1s&embedable=true 技术审核: Nick Hehr