在开源硬件领域,易用性很好的Arduino广受欢迎,而英特尔也和Arduino联手推出基于IntelCurie核心的Genuino 101。Curie核心有什么特色?基于Curie开发有哪些优势?本文从实战开发经验为您解读。
英特尔的Edison芯片已经在中国推出1年多的时间,具有小巧的体积、强大的处理能力、联网能力以及很好的编程环境,可应用于机器人、无人机控制以及穿戴设备开发等。
Edison用了一个奔腾级别的处理器,500M的Atom处理器,带有1GB 内存和4G的硬盘,以及代有蓝牙和Wi-Fi功能,它自己有一个很好的扩展板,定位是传统物联网上工控MCU级别的一个板子。它可以进行图形、互联网各个方面的复杂的智能运算。
另外就是它的开发环境。整个Edison的软件开发平台从最简单的入门级的如果大家只了解Arduina的话也可以支持。如果您是一个软件工程师,在Linux、Java或者是C++这些不同的软件开发平台上的经验,实际上都可以在Edison平台上进行开发。
Genuino 101相对Edison来说价格更低,大概只需要不到300块钱。搭载着英特尔Curie处理器。我们看到一个Curie处理器的实际大小只有这么大,比我的西服纽扣还要小。Curie包含了什么?他包括了一个32M的MCU,当整个外面的传感器没有动作的时候,里面的32M处理器我可以让它歇着,等到外面产生了动作的时候,传感器才告诉说处理器说,你醒过来,我需要你做什么。所以它的功耗很低。这当中还有两个内置的一个是加速度传感器一个陀螺仪。六轴的运动传感器。所以使得很多和运动相关的传感器都做在其中。然后它还做了什么呢?他还把蓝牙做进去了,这样通讯功能也解决了,还有电源管理。如果说你要做一个最简单的设备,只需要做两件事情:首先把它的蓝牙接出来,第二,把它的电池往外一接就可以工作了,从硬件工作来说,它已经准备就绪,所有的其他东西都在里面了,把软件放进去就可以了。
这样的一个整个高度集成的东西,就在这个Curie芯片当中,而Genuino 101使用了这样一颗芯片,很重要的一点Genuino 101用了这样的芯片之后,仍然给我们的创客提供一个Arduina的开发环境。这样就使得开发人员使用Arduina这个简单的开发环境来开发。
比如说做一个地震的监测仪,这块板子地震了之后,通过运动传感器就可以知道相应的信息。再比如说做一个智能宠物项圈,宠物带着这个项圈跑来跑去的时候,这个信号可以知道这个动物的姿态是怎么样的,然后通过蓝牙可以通知设备来自动喂食。以前这需要比较多不同的板子才可以做成,而现在这么小的一个板子就可以做成。
Genuino 101还有一个非常重要的应用趋势就是可穿戴。英特尔基于Curie做了一些可穿戴参考设计模型,把这样一些可穿戴的设计模型放到了你的自行车上,放到了你的鞋上,放到了你的手腕上,放到了你的滑板上,放到了你的项链上,可以解决很多人今天没有解决的问题,你可以监测到很多人现在没有办法监测到的运动状态。我们去年接触到一个滑雪板的项目,他们就是想做一个这样的东西,他们最大的问题是我在滑雪场上可以做非常高难的动作,但是没有人看得见,因为我滑下去了,所以通过我这个东西放到滑雪板上可以实时记录你所有动态,然后通过你的手机重新回放出你做的所有的动作。
这个项目,DFRobot的目的是设计一款集危险报警和安全防护的智能头盔(硬件方面由DFRobot负责,软件平台由Autodesk负责)。它包括在工人违规佩戴头盔或者是没有佩戴的时候进行提醒。当工人跌落的时候,系统服务器会收到信号,并通知附近相关人员进行救治。另外是监测工作环境,如果工人长期处于这种糟糕环境的时候,它会自动报警,服务器会记录它的反馈信息。通过收集这些反馈信息,接下来会进行头盔功能的调整,比如说增加粉尘过滤器等。它也能实现一些基本安全防护功能,比如说防淋、防尘等。
这款给建筑工地建筑工人设计的智能头盔的设计方案。
成品展示,中间红线表示你现在处于一种意外报警情况。比如说工作状态未正确佩戴或者是没有佩戴,它会提醒工人佩戴好帽子。在工作状态的时候,发现运动状态异常比如说跌落这样的情况也会进行报警。长期处于PM2.5超标或者是高噪声环境也会有报警情况出现。这是属于正常工作环境时情况,你佩戴好没有任何意外情况的时候,它显示为绿光。
软件由Autodesk开发,主要是手机APP开发,收集加速度信息,并进行一些跌落算法的研究。MCU会实时收集传看器的数据的信息,并通过蓝牙发送给手机APP,手机APP会对收到的数据进行跌落算法的计算,当检测到工人跌落的时候,他们会迅速通知相关人员,并将信息发送至服务器。并且统计工人违规佩戴的频率,通过这种设备发现工人违规佩戴频率比较高,会提醒、警告。长期下来,会使工人养成正确佩戴头盔的习惯,减少违规的频率。
在头盔开发当中我们也发现了很多问题,在功耗、体积、成本,包括时间和物料成本都比较高。在功耗上,整体产品功耗过大,电池供电情况下最多可以工作两天。对于一款智能产品来说,时间还是非常短,没有达到预期的设计目标。
在体积上,我们采取的外设模块比较多,会导致产品尺寸比较大,重量超标。就会给工人造成一些不适感。传感器包括粉尘、声音传感器,我们的主控MCU也比较大。
传感器的驱动程序调试和校准上,跌落算法实现和测试花费了大量的时间和人力,软件开发的时间和周期比较大。我们之前采取的红外传感器和光敏电阻的这种解决方案受环境干扰比较严重,最后我们使用了环境编码的一些传感器,使得精度达到99%以上,解决了这个问题。可以不受感染的检测人工佩戴的状态。这是我们使用Arduina主控芯片存在的问题。
后来我们知道了Curie的解决方案,它基本上完全可以解决这些问题。
Curie具有极低功耗的特点,而且集成低功耗蓝牙,替换我们原来双芯片的方案,基本上解决了功耗过大的问题。
Curie体积比较小,而且本身集成了加速度计、陀螺仪,替换原有外设加速度传感器模块,大幅度地减少PCD面积和降低开发成本。
Curie提供了模式识别的算法,快速有效识别公认的行为和动作,大幅度减少跌落算法研发周期,大量的节省我们的研发时间。
思岚科技过去已经开发基于英特尔Edison的智能扫地机器人,现在在做的事情是将导航定位带给每一个机器人。
其实任何机器人都应该具备导航定位的能力。比如说在商场当中,你希望机器人带你去吃KFC,如果说不具备导航定位功能的话,他是做不到这个功能的。如果说你要让机器人去帮你到厨房里面帮拿一个可乐,如果说没有导航定位功能,他也不知道厨房在哪里,也不知道怎么把东西运回来。所以我们想我们能不能把我们的算法和英特尔的强劲计算性能结合起来,在配合上我们所有需要的其他的外围硬件去做成这样一个非常高度集成化的导航定位的模块。思岚科技的产品叫SLAMWare Core。
SLAMWare Core有非常优秀的建图和定位能力。采用SLAM(simultaneous localization and mapping)算法,简单来说就是同步的定位和简图。就像你人的工作原理是一样的,你在房间里进行运动的时候,从你的眼睛里面看到东西,你是可以自动的把它构建成你脑海中的一副地图的。同时你脑海中存在地图的时候,你也可以通过你看到的信息反推出来你在地图中的位置,这个就是SLAM算法当中做的事情。因为我们采用了RPLIDAR这样一个非常高精度的低成本激光雷达,可以实现非常高精度的定位性能。我们的地图可以实现5cm的精度。
这是一个典型的SLAM的场景。左上角的小图是扫地机器人激光扫描的区域,随着机器人的运动,会不断的把地图扩张出来。如果说大家玩过星际争霸这样的RPS游戏的话,就跟在里面探索战争迷雾的过程是一样的。
SLAM算法当中会有一些问题,特别是遇到环形区域的时候,很容易建图失败。左边这是我们的办公室设计图,是装修公司给我们画的,右边是我们使用SLAMWare算法的机器人,在办公室当中自动构建出来的地图。我们看到是非常精确的。当然这也从另外一个侧面说明我们装修公司是完全按照图纸来施工的,施工水平也非常不错。
如果说你仅仅知道自己在房间当中的位置,只是知道房间的样子是没有用的,因为你不知道如何到目标点当中,因此在我们的解决方案当中提供了非常智能的路径规划算法。一个是采用了D Star为算法,提供未知环境的探索能力。当我走近发现一个新的箱子,我就会和人一样自动绕开这个箱子。另外SLAMWare这样一个模块是可以融合多种不同传感器数据的。因为激光也有它看不见的东西,比如说玻璃,在碰到玻璃的情况怎么办呢?通常情况下,我们会使用超声波,但是如果说大家需要拿我们的一些数据,再和超声波数据做进一步的处理才可以使用起来的,那是非常困难的。所以我们在SLAMWare里面去集成了这样一种多种传感器数据融合的能力。所以你只要告诉我们的模块说,你这个地方有超声波传感器,他发现前面有一个障碍物,累计起来就可以智能的绕开这个障碍物了。背景这张图是英特尔那个时候帮助我们一起拍摄的广告视频的截图。这是我们的导购机器人在长泰广场里面实际运作的情况。你去到自己想去的商店,或者你想获取一些你附近商店的信息的时候,都可以借助这样的机器人去运作,这是非常方便的一个用途。
如果说我们这样一个导航定位模块使用起来非常复杂的话,大家也不会经常使用。所以我们设计了非常丰富而简单的实用的外部接口,一个是Control Bus,它提供TTL串口,115200波特率,用于和底盘通讯。第二个是High Speed Bus,他是100M的以太网接口,主要接收类似地图数据这样的信息。另外英特尔Edison他有内置的蓝牙和Wi-Fi的支持,可以实现非常方便的智能连接的功能。当你一个机器人买回家的时候,最大的问题就是我如何连上我家里的Wi-Fi网络。一般是用三种解决方案。第一种是像360摄像头那样,我拿一个手机,手机配置好之后,它通过发声音的方式,通过声纹载波的方式,把信息传递给你的机器人,这种方式很吵,第二种方式就是TI的CCE 3000当中提供的方式,他是使用Wi-Fi包的长度来进行编码。这种方式好用是好用,但是你不知道周围有哪些设备的。我们利用非常强大的BLE功能,在你不断开Wi-Fi连接的情况下,自动发现周围的设备,并连上家里的Wi-Fi网络。基于SLAMWare的架构,只需要非常简单的把线连接起来,按照我们的协议文档把这个固件写出来,就可以运作了。
其实这个使用上还是需要大家非常强的编码和硬件的能力。这也不利于大家快速验证自己的一些概念。这个是去年的时候,英特尔帮助我们拍摄的一个广告。这里面主要是介绍了一下我们公司是怎么样去做这些产品的。
这是我们在测试我们的激光雷达,这是我们非常早期的一台机器人的样品,这是我们基于英特尔Edison的扫地机器人。我只需要把这个模块安装上去就可以了。这是我们改装了一台自动平衡车,它可以实现自主的定位和导航。这是我们商场导购的一些场景。上海是一个非常高科技,非常现代化的一个城市。接下来我觉得依靠创客的努力和想法,会让这个城市变得更加智能。这个功能很有用,大家吃好夜宵之后,会有车直接把你接走。否则你喝了一瓶啤酒开车回去的话,是会被警察抓进去的。
我们之所以做SLAMWare这样的解决方案,就是希望所有机器人都具备这样的能力。但是我们知道,所有的大公司都有大公司的特点。而创客又是这个星球上最有创造力的一群人,如果说让创客也可以很好的使用我们这样的解决方案的话,一定会给大家带来更多的惊喜。大家认识这个机器人吗?对,是HCR机器人。刚刚HCR的制作者,DFRobot的夏青同学告诉我们的,这是HCR机器人。HCR机器人也安装了我们的激光雷达,我们做了什么事情呢?我们把SLAMWare解决方案带到创客市场,这个基于英特尔Edison的SLAMWare解决方案,可以让HCR机器人具备自主导航定位的能力。
其中核心是这一块板子叫SLAMWare Shield for Arduino。特有什么功能呢?第一他上面有Mini PCIE接口,可以连接到SLAMWare Core。这里看起来我们的SLAMWare Core非常大,但是实际上它非常小,就是一个Mini PCIE的尺寸。除此之外我们提供了2路电机驱动器,大家不需要额外安装桥来连接你的电机。同时我们提供2路支持正反转的光电编码器接口。如果说大家用HCR机器人的话,大家就知道,HCR机器人下面有三路碰撞传感器,我们也为它预留了基于2.54排针的接口,直接插上就可以使用。最左边的位置有一个7pin 的RPLIDAR标准接口。大家只要把它连接起来,这就是一个具有完整导航定位的机器人平台了。
我们提供丰富的开发工具,包括SLAMWare SDK,支持Windows和Linux,包括调试用的Windows为和安卓客户端程序,大家用手机连接上去就可以遥控它。除此之外,我们还提供了详尽的文档支持,其中的重头戏就是完全开源的Arduina参考固件。只要你把这套SLAMWare平台带回去插在DFRobot的板子上,把我们的固件加入进去,它就可以工作了。当然我们会提供非常丰富的Ues Manual文档。
只是有好的产品还不够。首先创客的开发环境跟大厂商不一样,一开始受到资源限制,也不能承诺一个大的销量,在厂商上得到的支持是有限的;其次做出了原型之后,涉及到量产、降低成本、优化供应链、销售等问题。目前,英特尔已经通过推出一系列开放技术平台,支持计划和赛事活动,与合作伙伴共建创客生态圈,帮助硬件创新者将奇思妙想转化为现实产品推向市场。