[资料] CPU+FPGA,机器人最强大脑即将问世

[复制链接]

助理工程师

发表于 2017-3-20 17:54:31   389 查看 0 回复 显示全部楼层 倒序浏览
分享
对于机器人而言,什么才最重要?

能够暴力弹跳的复杂机械装置?各类价格昂贵的传感器?或像EVE那样以萌神外形征服世界?

No,no,no!最重要的是:能在复杂的环境中完成特定工作,做一个有益于人民的机器人(好正的三观!)

为了实现这一崇高目标,机器人要眼观六路,耳听八方,行走天下,胸有丘壑。而这一切都离不开一颗强劲的大脑——高性能计算平台和高效算法。

通用处理器在计算性能和能效上越来越难以满足日益庞大、多样化的数据处理需求。借助由GPU、FPGA和其他智能引擎等协处理器与CPU一起组成的异构计算平台来提升计算性能,已成为当下学术界和工业界的研究热点。异构计算作为一种特殊的并行计算方式,能够根据每个计算子系统的结构特点为其分配不同的计算任务,在提高计算性能、能效比和实时性保障方面体现出传统架构所不具备的优势,逐渐在各种计算需求量较大的场合得到应用。针对数据中心场景,英特尔已经宣布要通过Xeon+FPGA平台和Xeon Phi系列产品来推动异构计算的实施。

那么,在我们所关心的机器人领域,情况又是如何?

1.webp.jpg

机器人是复杂的机电一体化装置,综合运用了机械与精密机械、微电子与计算机、自动控制与驱动、传感器与信息处理以及人工智能等多学科的最新研究成果。

2.webp.jpg
机器人系统和系统中的传感器

为了将这些成果融合起来,真正形成认知、感受和行动的能力,使机器人能够理解并应对真实的世界,准确完成操作任务,其搭载的计算平台需满足多种要求,包括:

  • 感知能力:具备丰富的I/O接口,支持USB 3、UART、I2C等多种I/O协议,用以接收各类传感器数据。


  • 控制能力:能够控制各个运动部位,如底盘、手臂、手指和头部,完成多个维度的动作,并且具备实时性和安全性方面的保障。


  • 计算能力:既要应对大量数据的处理开销,更要满足各类智能算法巨大的计算需求。


  • 功耗控制:要在满足以上能力的同时尽可能降低功耗,避免成为电池杀手。


  • 易用性:必须提供友好的编程模型,使机器人的应用开发快速、准确。


现有的计算平台很难满足以上需求,搭建适用于机器人的异构计算平台已经迫在眉睫!CPU+FPGA的方案以其独特的优势进入我们眼帘。

3.webp.jpg

自1985年问世以来,FPGA这种可编程逻辑器件凭借在性能、上市时间、成本、稳定性和长期维护方面的优势,在通信、医疗、工控和安防等领域占有一席之地。特别是近两年,随着云计算、高性能计算和人工智能的繁荣,拥有先天优势的FPGA更是得到了前所未有的关注。

FPGA由六部分组成:可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核。英特尔首席执行官科再奇曾这样描述:“你可以把FPGA想象成一堆gate,能够随时编程。FPGA可以用作多个领域的加速器,例如在加密的同时进行面部搜索,并能在微秒内重新编程。其成本远低于大规模单个定制部件,并具有更高的灵活性。”  

随着工艺的发展,技术的进步,FPGA的性能、指标都达到了新高度。新的Arria10系列FPGA 和 SoC 功耗比前一代 FPGA 和 SoC 低 40%,具有业界唯一的硬核浮点数字信号处理 (DSP) 模块,其速率高达每秒 1.5万亿次浮点运算 (1.5 TFLOPS)。

4.webp.jpg
FPGA的结构

即便拥有上述优势,传统上FPGA的开发难度还是令诸多程序员望而却步。然而,随着OpenCL标准的出现,FPGA的应用门槛正在大幅降低。基于OpenCL的开发框架,用户可以摆脱传统的基于硬件描述语言(HDL)的开发流程,转而采用更高效、也更符合广大程序员背景的软件开发流程。

OpenCL 标准是第一个开放、免版税、统一的编程模型,能够在异构系统上加速算法实现,支持使用基于 C 的编程语言进行跨平台开发,例如 CPU、GPU、DSP和FPGA。支持OpenCL的异构系统一般通过PCle总线实现主机与硬件加速器(或者一个内核与另一个没有主机控制的内核)之间的通信,而这一切并不需要程序开发者的关注。相反,开发者只需了解OpenCL 定义的标准化的应用程序接口 (API)。如今,各个主流的深度学习框架都提供OpenCL的支持。英特尔正计划推出基于FPGA的CNN的多种网络实现。

5.webp.jpg
OpenCL的编程模型

6.webp.jpg

我们机器人系统实验室今年的工作重点便是为机器人搭建基于CPU+FPGA的异构计算平台。根据我们的经验,FPGA能够在一些关键的机器人应用中发挥极大的价值。例如,我们将机器人自身定位的算法(SLAM)移植到FPGA中执行,实现了比CPU高出十多倍的定位频率,从而允许机器人以双倍的速度运动,而不会“迷失方向”。

为了打造通用的机器人计算平台,我们选用了英特尔提供给移动平台使用的CPU和Arria 10系列的FPGA。两者通过高带宽,低延迟的I/O接口(如PCIe)进行通信。FPGA中可以包含多种加速模块。我们会提供一套通用接口,便于模块开发者包装、发布已有的设计。

7.webp.jpg
机器人的异构计算平台

在软件层面,我们会构建加速模块的配置、安装和消息传递机制,便于第三方将所需的加速模块集成到应用中,并设计一些定位、控制、视觉识别和物体建模的常用模块,以及软件的集成包,供用户作为参考设计或直接选用。

有了如此智慧的大脑,机器人将变得更加耳聪,眼明,腿快,手稳,融入我们的日常生活,为人类提供更好的服务。  


高级模式
您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表
-

推荐专区

技术干货集中营

专家问答

用户帮助┃咨询与建议┃版主议事

我的提问

工程师杂谈

工程师创意

工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

ARM技术论坛

Android论坛

Linux论坛

单片机/MCU论坛

FPGA|CPLD|ASIC论坛

DSP论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

无线充电技术

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

参考设计中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

DFRobot专区

树莓派论坛

智能硬件论坛

开发快智能硬件开发平台

Intel物联网开发者专区

Waveshare

乐美客SBC专区

Arduino论坛

BeagleBone论坛

机器人论坛

创客神器NanoPi

小钢炮CANNON

比派科技banana pi专区

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

个人版区

阿东Verilog技术专版

直流马达驱动电路设计

LabVIEW英雄联盟

特权同学FPGA专区

-

厂商专区

灵动微电子 MM32

盈鹏飞嵌入式

TI论坛

TI Deyisupport社区

芯灵思嵌入式论坛

Tisan

米尔科技

庆科社区

WIZnet技术专区

Cypress技术论坛

飞凌嵌入式

Qualcomm技术论坛

英创嵌入式

机智云GoKit论坛

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

招聘┃求职发布区

电子展览展会专区