揭秘:从0到1 如何快速搭建原型机?丨机器人大家说第16期干货整理

来源:机器人创新生态 | 发布时间:2017-06-30 11:39:31

什么是机器人?问题远比看起来的要复杂。从古希腊到现在,无数学者、专家跨越时间长河探索着人与机器关系的本质。

今天,机器人已经渗透进人类世界。我们打造了一个又一个机器人,它们或独立工作,或成群协同工作;有的不及米粒大小,有的大于谷仓;它们机器形态各异:有角的、扁平的、桶状的、纺锤形的、球根状的或者瘦长的。

因此,有人说,这是一个机器人创业最好的时代,然而也有人说,这是一个机器人创业最坏的时代,但是如论怎样,对于一个企业而言,快速搭建出原型机,创造出个性化的机器人,实现自己的梦想是一件让人高兴的事。

但在这个过程中,我们往往会遇到很多阻碍,硬件平台的选择便是其中之一。本期机器人大家说,我们邀请到了在机器人、人工智能、智能硬件领域深耕十多年的硬蛋科技专家,为我们揭秘机器人与智能硬件选什么硬件平台,以及如何快速搭建原型机。

 

以下为杨慧鹏老师演讲实录↓↓↓↓

 

 

当我们谈论人工智能或机器人时,第一个联想到的会是算法、软件、机器学习等名词,但是最终在做产品的时候,不管是人工智能还是机器人,都必须落地到硬件上才能和广大用户见面。

那么,什么是机器人或者什么是人工智能设备?对于这个问题,每个人的想法都会有所不同:乐高机器人,扫地机器人,平衡车,甚至最近很火的智能音箱都能算在机器人的范畴。而今天我们所要讨论的,主要是指具有学习能力、NUI、智能服务的设备。

 

 

从这幅图大家可以看到, 智能硬件设备的发展路径:从早期连接手机APP,到连接云,再到连接AI服务,自然的人机交互机器人 。

人工智能产品跟手机、平板等产业最大的区别就是,人工智能产业的发展比较碎片化,还没有形成一个特别大的统一的的市场。就像手机,我们可以选MTK,高通等turn-keysoloution,他们基本上就能把平台性质的工作做完。在智能硬件或者机器人行业目前很难做到这样。

从目前来看,机器人/ AI设备在市场上面临的最大的挑战主要有两点:一是它还处于早期阶段,发展比较碎片化;二是市场变化速度快,相比手机平板等产业很难对其销量做出准确预测,因此作为创业公司也比较难从芯片厂商那里得到强大的支持。

事实上,在智能硬件的发展过程中,出现了一些很典型的产品,包括NEST 温控器,这是最早出来的一个人工智能设备,里边包括传感器,还可以学习人的活动范围,学习你对温度的偏好设定等,我们认为它是一个很典型的人工智能产品。最近,大家都在谈论的ECHO,它可以进行语音控制,语音聊天以及作为Amazon的服务入口等。

 

 

接下来可以看一下硬件产品开发的基本流程,或者说一个简单check point。通过这张图,希望大家能够对硬件开发有一个更加清晰的了解和更加结构化的理解。

我们经常听到的做硬件就是从画电路图,今天晚上画个电路板,明天投出去,硬件OK了。事实上,从硬件设计来说,画电路板在硬件整个开发周期里只是一部分,而且占的工作量并不大。进行产品开发,当我们kickoff的时候,我们需要有明确的需求,包括Feature List、ID、Form Factor以及我们的UX要怎么交互等,这些对我们选择硬件平台,进行产品设计都有很大的影响。

从requirement到ArchitectureDesign其实是一个不断迭代的过程和需求收敛固定的过程。在这个阶段,我们的需求、 Feature List都确定了,我们的Architecture、Chipset以及我们的KeyPart也就基本上确定了。如果一开始就一头扎进去找参考方案画图, 很肯能做出来的并不是项目真正想要的,一个小的需求改动又会给硬件设计带来巨大的影响。

在Architecture Design这个阶段,我们的output就是 确定主芯片的平台,大的器件,例如显示设备, camera、touch等。

 

 

如上图所示,是我们在产品开发中经常使用的工具, Technology Building Block,就是把我们所用到的主要的器件,主要的solution像搭积木一样画出来,来帮助我们更全面的理解主要Technologybuilding block, technology solution, FW, SW以及他们的dependancy。

除了我们买的主芯片平台,以及外加的camera、wifi、ZigBee芯片之外,很有可能还需要自己去开发一些程序,或者从第三方去采购solution,但是这些模块之间都是有依赖的。我们在产品开发过程中,如果没有把这些关系搞清楚的话,很有可能出现这样一个情况:我们画了一个板,板子也打回来了,结果可能缺个算法,或者缺了一个解决方案,这时候我们再去找第三方,很有可能找不到现成的,或者商务合作很难谈下来。

举个例子,我现在选了一个安卓平台,要做智能家庭的网关,同时我们又需要有个ZigBee的Function来控制家里的灯、传感器等,这时候我们就面临一个问题:如果有两种ZigBee芯片,比如说有两种,一种是Transceiveronly的,比较便宜,但是所有的Protocol,协议解析都是要放到hostCPU这边来做,这个时候你就需要考虑自己是否有能力去找到这些Protocol、Profile,如果找不到,那么就需要找第三方;第二种方案,我们也可以选一种带MCU的ZigBee芯片,在它上面,就能完成所有的Protocol、Profile,选择这样的芯片,从客户角度来说集成工作量会少很多,但是成本也会更高,所以当遇到这种问题的时候,我们还是需要根据自己的资源和能力综合考虑。

每个公司他拥有的资源, competence,和芯片供应商的合作关系都是不一样的,客户根据自己的能力或者根据自己的资源来酌情的安排最适合的解决方案。

 

 

下面简单介绍一下对于主芯片选择的一些考量和限制。

首先要考虑我们这个项目,我们的Use Case主要是用来干什么,是用来做一个扫地机器人,还是要用它来做一个智能家庭的网关,能放音乐,同时又能讲故事,又能进行语音交互,同时需要考虑UX,我们使用哪些方式进行交互?除了语音、手势,需不需要触摸或者一些别的方式。

第一项我们要考虑的是芯片厂商的Strategy。比如我们要做机器人,做人工智能,就需要看这个芯片厂商他的芯片主要是面向哪些市场。实际上,特别适合做机器人和人工智能的产品的芯片,其实并不是那么容易找,大多数情况下,基于手机、平板芯片演进过来的,这个时候我们就需要知道供应商在这个方向是否愿意长期投入,如果他只是想尝试一下,不一定什么时候就退出这块市场。就像我们经常看到的新闻某某大公司退出移动端市场,退出IoT市场。

同时,我们需要了解芯片厂商主流的产品线,他靠哪个来挣钱,靠哪个产品来做他的未来,如果是一个比较小的产品线,很有可能这个产品会做不下去。

对于开发硬件产品来说,拿到芯片厂商的支持是非常重要的,有的芯片可能你觉得很合适,但是如果除了Spec连芯片厂商的人都找不着,这种其实就不需要考虑了。

第三项,我们需要考虑芯片的整体处理能力。这个处理能力其实包含很多,平时我们关心更多的可能是它是四核的,还是八核的,或者A7核,A53的核,其实除了这,还有一个特别重要的指标,就是内存,同样的一个处理器,如果它的memorysupport只能支持到16位,那它整体的性能会下降很多。同时,我们需要考虑芯片内部有没有集成一些ISP、HW Accelerator,或者内部DSP等,这些对我们完成我们一些特定场景和功能很有帮助。

还有一项就是OS Support的考虑,很多情况下,要根据实际情况去选择。例如我们做的产品打算用安卓,还是linux,或者用windows,得看公司的情况。对于每一家创业公司来说,软件工程师的能力或者擅长的基本上是一个方面,很难为了一个产品,让这些工程师从windows去换到安卓,或者从linux马上改成安卓,那么我们选芯片的时候,也需要­­­要跟这个结合起来。如果公司做的都是安卓,但是芯片厂商目前没有安卓计划,期望芯片厂商马上给你release安卓,几乎是不可能的。

对这部分进行一个总结:没有完美的芯片组选择,只有适合您的芯片组。大多数情况下,苹果、亚马逊、微软等大型芯片组和硬件架构放到初创企业就完全玩不转。

 

 

在选择芯片的时候,还需要考虑它的扩展性问题。在选择一个芯片时,刚开始我们确定了要支持的功能,但随着开发的推进,我们很有可能再增加一些功能,例如增加一个传感器等。这时,我们就需要知道这块芯片它到底有多少个外设接口,有多少个GPIO资源供使用。还需要考虑到能同时支持多少外设。有很多厂商release的时候,告诉你是支持的,但是等产品硬件设计完了,软件开始调的时候发现它只支持一个master模式,两个master放一块就工作不了。这虽然是个小bug,但也会把项目block。

一个芯片的选对了,对我们Time to market是至关重要的。Time to market不光要考虑Design的周期,还有一个就是产品集成的时间。产品集成阶段,需要有不同厂家的release,以及我们最终要上市,过认证,Ramp-up这些都需要就是从一个Overall的角度来去考虑。

接下来讲每个人都很关心的cost问题。一个项目的成本有多少,除了考虑芯片成本,还需要考虑系统成本。举个例子,比如一个六块钱的芯片和一个四块钱的芯片,四块钱的需要复杂的pcb叠层,必须做2-4-2,做一个很复杂的叠层结构等,就需要综合考虑这个钱合不合适。现有的平台已经很熟悉了,但换一个平台能够节省一块钱,我们就需要综合考虑一下NRE和forcastvolume,包括人力,所有投入的资源的成本等。

 

 

接下来讲总体硬件的尺寸考虑。事实上,芯片的大小对硬件尺寸有很重要的影响,但很多时候我们需要考虑的,不只是芯片的尺寸,包括ChipsetSize, Mini-Block Size等,我们都需要通盘考虑。除此之外,这个硬件是否只能单面做,单面做面积是多大,支不支持双面做,双面做面积是多大,以及厂家推荐的堆叠和参考设计等,都需要考虑进去。

power的话,要考虑的是我们的产品是不是电池供电的,如果是,那我们就需要了解在sleep状态,功耗是多少,工作的时候最大电流是多少。有的芯片虽然有标识,但跟我们实际上在产品中用的值是不太一样的。

下一项是Lifecycle。我们选芯片的时候需要考虑我们上市的时间,我们上市的时候,这个产品还有多少,还在不在。避免产品上市以后售卖一年或者一年半,这个芯片就没有了。

 

 

上面这张框图,如果您对AI设备硬件有兴趣,我相信您知道他们是什么。

左图是亚马逊的echo,看起来很简单。 但是,如果一家初创公司制定完全相同的架构,那么将会会面临什么样的问题?

先来看一个很著名的麦克风阵列。亚马逊的这边麦克风用了是6+1,一个作为wake up,另外六个是做microphone array,从框图里看,它是模拟麦克,然后两个麦克加一个ADC转成一路I2S,最终的I2S再输入到TIOMAP芯片里。选择OMAP芯片是因为它的接口非常丰富,同时很灵活,可以配制成各种接口,所以他把四个McBSP配成了四个I2S接口,但是对于大部分CPU来说,支持四个I2S的很少。

如果我们现在是一个创业公司,也用了TI OMAP芯片,也用了他的这个麦克风算法,架构设计,那么我们现在就面临一个问题:我们需要找到一个算法,能支持低功耗的关键词,唤醒,能够支持麦克风阵列,然后这个算法还能够在DSP里边运行。创业公司如果能够短期解决这些问题,就可以这样做,否则的话,再采用这种方式就得不偿失。

另外,它的处理器是一个A8单核加了一个DSP,整个处理能力相对于市面上来说都不算强;它的内存是四G的EMC加上256的DDR,实际上对这种配置来说,我们只能运行linux,运行安卓是不行的,所以对于一个创业公司,如果我们选这种架构,我们就看我们有没有能力在linux的环境下把这些搞定。

还有可以设想下微软拿到ECHO的hardware会怎么来设计会很有趣,能否把Windows porting 上OMAP + 256MB DDR,估计一定会把4路I2S输入OMAP的方案改成USB输入以便充分利用现有的audio pipeline asset.估计怎么都走不下去。

右边是Raspberry Pi 3,这是世界上最受欢迎的open硬件,特别是maker或创业者制作原型。

树莓派集成了CPU的最小系统,包括wifi,各种接口,camera,HDMI,TFT,还有我们需要的以太网,所以对于一个开发者,如果没有一个的硬件team,直接买一个树莓派,就直接可以进行软件开发。

 

 

如上图所示,是美国一个博士用树莓派做的一个Babycam。他是在Deep Learning方面的博士,强项就是做算法,因此他用树莓派集成了一个USBCamera,然后自己把DeepLearning优化完,再用小孩的大量的照片来训练,最后就能够实现小孩睡觉情况的检测,例如是否睡着,脸朝下,还是脸朝上,这样一个简单而又实用的具有DeepLearning功能的产品就做出来了,而且是一个人就可以完成的。

另外一个例子,是XNOR.AI。它是一家专门对移动端的Deep Learning进行优化,做解决方案的AI创业公司。基于树莓派,这家公司做了一些物体的实时监测。具体来说,就是采用树莓派加camera给每个物体打上标签,从而用来进行安防的监控,或者说特定场景的监控,比如监测老人有没有摔倒,或者监测我的车,防止有人破坏等,所有自己关注的事件。

怎样才能做出比树莓派还要方便的平台,能够给创业者,给做人工智能产品的公司提供更多服务,让大家能够更方便打造出人工智能产品。

 

 

上图所示,是我们目前在做的一个解决方案——开普勒的Open AI System。它包括两部分:一部分是硬件,另一部分是CloudSoftware。

从硬件方面来讲,我们是从树莓派演进过来,但我们希望有更强大的处理能力,所以我们用了全志的一个R40,包括四核的Quad A7和Mali GPU,wifi支持ABGA、AC双模式。

音频方面,我们还集成了麦克风阵列,smart audio power amplifier,以及speaker box,并且针对speakerbox的参数都已经tuning好,客户直接拿过去就可以使用。除了硬件方面,软件方面我们也集成了安卓的OS,安卓的驱动, Key Words Detection功能等。

对于Key Words Detection功能,我们有两种实现方式,一种是基于硬件的,可以做到低功耗的关键词唤醒,支持电池供电,也可以睡眠,当然这个是有成本的。另一种,做软件的关键词唤醒,对用户来说,使用这个系统,可以自定义一些关键词,同时还不需要付出很高的成本。

目前,我们还在做的一个事情,如果我们能够支持Local物体检测,能够支持本地的语音指令,从端上来说就是一个很适合做人工智能的一个硬件,创业公司直接用这个硬件就不需要从头开始集成硬件,选芯片,写驱动,直接就能够开始做希望做的产品,可以节省很多时间。

对于开普勒云来说, 会把Kepler board,第三方的人工智能的基础服务【比如微软、科大讯飞、百度的某些AI的基础服务】和第三方设备对接好。我们做这个目的就是希望帮助用户减少硬件开发的工作量以及集成第三方service的繁琐耗时耗人的工作,让用户能够解放出来专注在自己的特色方面。

 

 

 

 

以下是本次分享部分精彩问答:

Q1:随着越来越多的创业团队瞄准智能硬件领域,关于定价的问题是争论最多的,定价过低,利润太薄,定价过高,市场空间变小,竞争性不强。杨老师,您怎么看待这个问题?

杨慧鹏:我觉得还是要找准差异化,找到特定场景的一个点,把产品做的更好。

 

END