【随手记】Covariant’s Brain Service和gRPC谷歌远程过程调用
高性能:HTTP/2 + Protobuf,高吞吐量、低延迟实时双向通信:机器人和 Brain Service 可持续交换数据支持流式数据:感知数据和动作指令都是连续流跨语言系统支持:简化分布式开发正是 gRPC 的这些特性,使得 Covariant 的机器人系统能够像“智能团队”一样高效协作,实现真正的工业自动化智能。
为什么 Covariant 的 Brain Service 要用 gRPC?
在现代工业机器人系统中,实现高效、智能和实时的控制是一大挑战。Covariant 作为一家领先的机器人智能公司,其核心技术之一——Brain Service——通过 gRPC 完美解决了多机器人系统中的通信和控制难题。本文将带你理解其中的原因。
1. Covariant Brain Service 的挑战
Covariant 的 Brain Service 可以看作是 机器人系统的大脑,主要职责包括:
- 集中处理来自多台机器人的感知数据(摄像头、传感器等)
- 为机器人生成动作决策(抓取、搬运、移动等)
- 与机器人形成闭环控制,实现实时响应
这套系统有几个关键特点:
- 分布式多机器人环境:多个机器人同时工作,需要集中协调。
- 实时性要求高:感知数据和动作指令需要连续流动,延迟太高会影响操作。
- 多语言系统:机器人控制端和 Brain Service 可能使用不同的编程语言。
- 大量连续数据:包括图像、3D 位置信息、传感器流等。
这些特点对传统的 HTTP/REST 请求-响应通信模式提出了巨大挑战。
2. gRPC 的优势
高性能传输
gRPC 基于 HTTP/2,使用 Protocol Buffers(Protobuf) 进行二进制序列化,相比 JSON/HTTP:
- 带宽占用小
- 数据传输更高效
- CPU 消耗低
这在传输大规模感知数据时至关重要。
支持流式通信
gRPC 支持多种调用模式:
| 模式 | 描述 |
|---|---|
| Unary | 单次请求-单次响应 |
| Server streaming | 客户端请求,服务器可以连续发送多个响应 |
| Client streaming | 客户端连续发送数据,服务器一次性返回响应 |
| Bidirectional streaming | 客户端和服务器都可以连续发送消息,实现实时交互 |
Brain Service 与机器人之间的感知与控制正好需要 双向流(Bidirectional streaming):
- 机器人上传感知数据 → Brain Service
- Brain Service 返回动作指令 → 机器人
- 整个过程持续进行,形成实时闭环
跨语言支持
gRPC 的接口定义和 Protobuf 支持多语言生成客户端和服务器代码,使得:
- Brain Service 可以用 Python 开发
- 机器人控制端可以用 C++ 或 Java 实现
- 两端轻松互通,无需手动处理数据序列化和接口兼容问题
3. 为什么 gRPC 适合 Covariant
将 Covariant 系统的需求与 gRPC 的特性对应:
| Covariant 需求 | gRPC 特性 | 说明 |
|---|---|---|
| 高性能数据传输 | HTTP/2 + Protobuf | 二进制高效序列化,节省带宽,减少延迟 |
| 双向通信 | Bidirectional streaming | 机器人和 Brain Service 可以实时交互 |
| 持续流数据 | Server/Client streaming | 支持感知数据和动作指令的连续传输 |
| 跨语言支持 | gRPC 跨语言库 | 简化多语言分布式系统开发 |
总结:gRPC 不仅能处理常规的客户端-服务器请求,还能满足 高吞吐量、低延迟、实时流式通信、跨语言 的复杂需求。
4. 工作流程示意
假设一个机器人抓取场景:
- 机器人摄像头捕捉到物体 → 数据流送 Brain Service
- Brain Service 处理图像并生成抓取决策 → 返回给机器人
- 机器人执行动作 → 继续上传状态信息
- 系统形成闭环,持续优化动作
使用 gRPC:
- 一次建立连接 → 双向流通信
- 服务器可以“主动”下发动作指令
- 数据传输高效、实时性强
如果不用 gRPC,必须每次动作都发 HTTP 请求 → 响应,延迟高且效率低。
5. 总结
Covariant 的 Brain Service 使用 gRPC 的原因很清晰:
- 高性能:HTTP/2 + Protobuf,高吞吐量、低延迟
- 实时双向通信:机器人和 Brain Service 可持续交换数据
- 支持流式数据:感知数据和动作指令都是连续流
- 跨语言系统支持:简化分布式开发
正是 gRPC 的这些特性,使得 Covariant 的机器人系统能够像“智能团队”一样高效协作,实现真正的工业自动化智能。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)