英特尔OpenBot的第一印象

英特尔已经发布了一个名为OpenBot的开源机器人,该机器人可以使用任何运行深度学习代码的Android手机进行自动驾驶,包括在大厅,赛道上或跟随人员进行导航。关键是开放源代码的Intel Android应用程序,它可以完成所有艰苦的工作。汽车的其余部分只是基本的Arduino和标准电机+机箱。

老实说,我还没有意识到要让Android手机与Arduino对话如此简单-事实证明,您所需要的只是一根OTG(USB Type C到USB Micro或Mini)电缆,让他们可以串行通话。彼此。(是我用于具有USB Micro连接器的Arduino的接口。)可悲的是,这在iOS上是不可能的,因为Apple限制对手机/平板电脑的硬件访问,除非您拥有仅经批准才能使用的特殊许可证/密钥。硬件。

定制的英特尔机箱设计非常整洁,但确实需要大量3D打印(价值几天)。我真的不明白为什么他们不仅仅使用您可以在亚马逊上购买的标准套件,而是让用户进行3D打印或以其他方式制造或购买手机支架,因为其他所有东西都已经摆在货架上了。考虑到底盘部件的标准程度,使用标准套件会更便宜,更容易。

我最终使用了已经拥有的底盘,即DFRobot Cherokey汽车。这有点过头了,因为它内置了我不需要的各种无线通信选项,包括蓝牙和Xbee套接字,但这只是证明您可以使用几乎所有“差分驱动器”(转向是通过方便地在左右两侧运行电动机)。基本上,任何使用Arduino的汽车都可以稍作调整。

我还享有其他一些自由。我有一些带有内置正交编码器的电动机,而我更喜欢英特尔推荐的廉价光学编码器,因此我不得不为它们修改一些代码,这意味着要更改一些引脚映射。(您可以在此处查看我的修改后的代码。)。但除此之外,它几乎达到了英特尔的预期,并在背面配备了声纳传感器和可爱的转向灯。

那么它是怎样工作的?好吧,简单的东西很棒。它确实会立即使人关注,因此,如果您的机器人运行正常,这是一个很好的测试。但是重点是要自己做一些培训。为此,英特尔让您使用蓝牙游戏控制器(例如PS4控制器)手动驾驶,以收集数据以在笔记本电脑/ PC上进行训练。这就是我所做的,尽管Intel并未告诉您如何将控制器与Android手机配对(更新)答案):按下控制器PS和“共享”按钮,直到指示灯开始快速闪烁蓝光,然后您应该能够以在您的Android蓝牙设置“配对新设备”列表中查看它。更多详细信息,请点击此处

但是对于真正的AI东西,即学习和训练新行为,它仍然很笨拙。像DonkeyCar一样,它使用“行为克隆”,也就是说该过程是使用PS4控制器手动驱动它,沿着路线行驶,记录手机上的所有数据(相机和控制器输入),然后传输大的zip文件。将该数据传输到您的PC,您可以在使用TensorFlow在该数据上训练网络的Conda环境中运行Jupyter笔记本。然后,您必须使用此新模型替换Android应用程序源代码中的文件之一,然后围绕该新模型重新编译Android应用程序。之后,它应该能够按照您的方式自主地沿着相同的路线行驶。

这样做有两个问题:首先,我无法使Jupyter笔记本正常处理数据,并且遇到了很多主机问题,其中一些是我的错,有些是代码中的错误。好消息是,英特尔团队对Github上的问题报告反应非常快,我相信我们会把这些问题整理清楚,理想情况下会导致代码改进,从而避免以后的用户遇到这些麻烦。但是总的来说,数据收集和培训过程仍然太笨拙并且容易出错,这反映了该项目的早期beta性质。

其次,我每次训练新环境时都不得不重新编译Android应用程序,这很疯狂。我们不需要使用DonkeyCar来做到这一点,我们也不必使用OpenBot来做到这一点。与DonkeyCar一样,OpenBot应用程序应该能够选择和加载任何预训练的模型。它已经允许您从三个开箱即用的选项中(人关注和自动驾驶)进行选择,因此显然可以进行设置。因此,我感到困惑的是,为什么我不能只将新模型复制到手机上的目录并从应用程序中选择它,而不是重新编译整个应用程序。

也许我想念一些东西,但是在我让Jupyter笔记本工作之前,它必须要抓紧时间……

发表评论

电子邮件地址不会被公开。 必填项已用*标注