人工智能和机器人公司Anki可能已经关闭,但从构建其消费者社交机器人中汲取的教训仍然可以使任何工程师或开发人员受益。Anki Robotics是受欢迎的消费者社交机器人Cozmo及其继任者Vector的背后,于4月底关闭并解雇了全体员工。但是,虽然该公司不再提供产品,但从智能手机SoC创建消费者机器人所获得的经验对任何嵌入式工程师或开发人员来说仍然很有价值。机器人系统工程师丹尼尔·卡斯纳(Daniel Casner)和Anki的前高级硬件工程师参加了在波士顿举行的2019年嵌入式系统大会(ESC)的演讲,讨论了该公司旗舰机器人的发展以及机器人和机器人技术可获得的内容。物联网开发人员。
定义消费者机器人是什么
卡斯纳告诉ESC观众,首先,Anki的策略是将消费者机器人视为产品本身而不是平台。“许多公司表示他们已经创造了一个消费者机器人,但他们真正在做的是发布一个平台并依靠第三方创造有价值的内容,”他说。“人们使用iPhone作为平台优秀原因的一个例子。但请记住,当它第一次意识到没有App Store时。它完全依赖于一组内置应用程序。“
加拿大设计与制造部门专注于对您而言至关重要的最新软件和产品。深入探索生成设计,电子元件,3D打印,快速原型设计和机器学习等令人兴奋的创新。学到更多!
在一天结束时,卡斯纳说,就像它听起来像流行语一样,机器人是物联网设备 – 虽然它们比其他设备具有更多移动部件和与现实世界的交互。对于任何不这么认为的人,卡斯纳认为机器人和被认为是典型的物联网设备之间有很多相似之处:两者都花费大量时间处理传感器数据;他们是网络连接的设备;它们基本上是无头的(没有像触摸屏这样的直接用户界面)并且基本上无人看管;它们的功率范围与典型的智能手机不同;他们占据了与移动相关的低销量市场。
谨防智能手机假设
虽然许多芯片供应商开始开放物联网部门,以通常用于移动产品的芯片为这些较小的市场提供服务,但卡斯纳表示,对于希望利用智能手机SoC的开发人员来说存在陷阱和挑战,尤其是机器人技术。
智能手机SoC带有打包的假设,卡斯纳指出这可能导致机器人工程师陷入困境:
首先,“他们假设将有一个显示器连接到显示器外围设备,该活动围绕用户交互,”他说。然而,像Cozmo和Vector这样的机器人没有直接的用户交互,而是依赖语音控制或来自外部控制器的命令(在Anki的情况下,它是用户的智能手机)。
Casner表示,散热是另一个问题,这个问题比预期的要大,特别是对于更高功率的Vector机器人。“移动SoC假设它们可以压在屏幕背面,屏幕会消散热量,”他说。没有屏幕,没有什么可以解释额外的热量。
移动SoC也更倾向于低占空比 – 你将设备唤醒以处理命令,它处理它,然后再回到睡眠状态。另一方面,机器人通常需要始终进行监控。
与此相关的是,Casner表示围绕连接到移动SoC的传感器的假设。例如,许多移动SoC仅支持两个摄像头(一个用于手机正面,一个用于背面)。机器人需要更多。例如,Vector使用四个摄像头。
Casner说,在智能手机SoC领域,传感器用于用户互动,拍摄更好的照片以及一些健康和健身应用。
要克服的用户和内容安全模型也存在挑战。“如果你想加密[在智能手机上]的磁盘,你可以依靠用户输入密码,”卡斯纳说。“但你无法用无头无人值守的设备做到这一点 – 每次断电时你都不会在恒温器上输入密码。”他还指出,TrustZone是DRM的一种形式,更关注于内容的安全性比其他任何东西。“如果你没有在你的机器人上观看Netflix那就没有帮助,”他说。
卡斯纳开玩笑地向观众开玩笑说,他和Anki合作“尝试了所有操作系统,所以你没必要这么做。”Anki最终选择了嵌入式(Yocto)Linux作为其机器人,但是到达那里需要进行大量的试验和错误才能找到适合其需求的合适操作系统。
他概述了物联网设备和消费者机器人的几种常用选项的优缺点:
Android的
“运行Android和Soc的智能手机专为Android而设计,”卡斯纳说。硅供应商将Android放在首位,QA测试在Android上完成。
但Android在智能手机之外并不是很成功(有人还记得Ouya游戏机吗?)。即使像平板电脑和电视等产品也无法成功或令人满意地实施Android。“[Android]从未在很大程度上流行起来……它几乎只适用于手机,”卡斯纳说。
Android也适用于基于交互性的电源模型,可能不适合大多数机器人。OS还具有相对低的可靠性并且依赖于用户来修复诸如丢失的WiFi信号之类的错误。由于操作系统的设计大致围绕手机的大约两年生命周期,因此开发人员无需解决某些在机器人应用中至关重要的问题。
Android也是关于应用程序的,它们面对Anki的“机器人作为产品”的风格。
Android事物
Android Things是Android的IoT适应。但卡斯纳表示,“当我们尝试它时,它还不够成熟。
“[Android Things]仍然是根本性的 – 即使你正在使用它来构建无头设备,它仍然会在后台一直在屏幕上呈现Android徽标。”
虽然操作系统适用于那些想要构建硬件而不是编写大量软件的公司,但Anki最终认为Android Things的开销过高且收益不足。“此外,为了使其工作,我们需要来自那些不存在的供应商的支持,”卡斯纳说。
布里洛
Brillo是为谷歌的OnHub路由器开发的操作系统(“另一种产品太早了,”卡斯纳说)。Brillo是一款Android之前尝试用Android制作物联网的尝试。但在这样做时,卡斯纳说他们用洗澡水将婴儿扔了出去。
“他们最终得到的是一个基于C / C ++的奇怪用户空间的Linux操作系统,没有人真正知道如何编程。”Brillo最终获得了巨大的学习曲线并且从未正式发布过。
Firefox OS,SilkOS和Chromium OS
其他选项如Firefox OS和SilkOS缺乏支持或正式停止(开源社区的支持不能承受)。虽然Anki团队能够使用Chromium OS作为构建其他机制的参考,但实际的Chromium OS库libchrome被证明太大而无法适应他们的设备。“除非你正在制作Chromebook,否则Chromium可能对你来说太沉重了,”卡斯纳说。
Anki最终在Embedded(Yocto)Linux中找到了它的解决方案,这是一个用于无头和无人值守设备的Linux版本。Yocto也在IoT硅片供应商群体中获得了关注。Casner表示,Anki团队发现Yocto的学习曲线比Android更容易,实际上比Android更开源,而且它是围绕可更换部件的想法而建立的。
卡斯纳乐观地认为,未来的机器人开发人员不会像Anki那样经历许多相同的痛点。“生态系统正在发生变化,”他说。“两年前我们开始沿着这条道路走下去,那段时间发生了很多变化。硅供应商越来越多地瞄准物联网和边缘计算。[物联网]没有移动量,但供应商认为它会发生,他们正在启动物联网业务部门。“
他补充说,那些相同的供应商也开始意识到Android不适合物联网,并且正在为他们的SoC添加嵌入式Linux支持。“已经开始出现一些有针对性的物联网芯片,但它不是研发的优先事项,而且没有专门用于机器人技术。”
考虑到这一点,Casner认为移动芯片仍然可能是开发商的一个更便宜的选择,因为移动量会降低价格。他建议工程师使用专用移动设备,即使在处理传感器时也是如此。
他还建议重新利用外围设备。他将GPU作为一个主要的例子。在智能手机中,GPU可用于游戏和3D纹理,但它可以用作人工智能计算应用程序的机器人。
所有人都说,卡斯纳认为应对这些挑战的最佳方法是接受它们并做好准备。无人看管的装置比无头装置更难,机器人将两者结合起来。如何在没有必须自行运行的用户界面的设备上处理错误,诊断和报告(例如z)?“嵌入式软件很难,”卡斯纳说。“如果你正在设计一个机器人或物联网设备,很可能没有人能解决你的问题……你必须在盒子外面思考。”