android模拟机root android模拟机器人身体_智能手机

码个蛋(codeegg) 第 986 次推文

作者:稚晖

做...做成机器人?

比如像这样↓

android模拟机root android模拟机器人身体_android模拟机root_02

图片看不出来效果,给你看视频!


难道没有人觉得智能手机是近乎完美的机器人开发平台吗?

仔细想想,现在的Android手机具备用作机器人开发平台的几乎一切要素:

  • 高性能低功耗的嵌入式处理器
  • 丰富的传感器(陀螺仪、加速度计、光线传感器、红外传感器、麦克风...)
  • 易于扩展的接口(USB-Host、蓝牙、WiFi)
  • 方便的调试工具链(ADB、USB、高清大屏)
  • 基于Linux的Android开源系统
  • ...

更何况,Android的字面意思,就是“机器人”啊!!!图标也是机器人

好了言归正传,接下来我会介绍一下我是产生这个大胆的想法,并付诸实践的~

众所周知,智能手机其实就是一台微型电脑系统,得益于移动互联网玩了命似的快速发展,智能手机的更新迭代速度可谓是一骑绝尘。有市场的地方就有技术突破,这些年移动Soc的升级速度也是紧跟着坐上了快车,如今2019年旗舰的Soc(以高通骁龙855为例)最高主频已经达到了2.84GHz这样恐怖的数字。更何况还有CPU架构的巨大改进以及GPU、NPU、DSP等各种异构能力加成,对于嵌入式硬件来说,实在是非常合适的开发平台。

有想法之后就该制定方案了,个人对小巧精致的物品有蜜汁执念,以前也用单片机做过很多有趣的小机器人项目。

可以看到,虽然用性能羸弱的单片机,也能做一些简单的控制,但是对于像是语音、视觉、流媒体之类的复杂功能,对连MMU单元和操作系统都没有的芯片来说实在是强人所难。

现在有Android手机作为机器人的大脑,那事情就有趣起来了。如上面所分析,Android智能手机作为机器人开发平台的潜力无限,只是有一个缺点:

手机它不会动啊。

是的,作为资深极客,面对这样的问题自然是要脑洞大开,首先让我们来给它设计一个“身体”↓

android模拟机root android模拟机器人身体_开发平台_03

模型使用3D打印制作出来。然后我们需要设计机电模块,来控制Android手机机器人底座的电机,实现自由运动。这里我自己绘制了一块PCB电路板,通过USB接口或者蓝牙与手机通信↓

android模拟机root android模拟机器人身体_智能手机_04

然后Android手机我用的是一台闲置的Moto RAZR M,系统是Android 5.0,当年超窄边框非常经典的机型~

android模拟机root android模拟机器人身体_开发平台_05

组合到一起,就是这个效果↓

android模拟机root android模拟机器人身体_开发平台_06

ok,剩下的工作,就是在Android上进行APP开发,充分利用各种传感器和网络功能,以及手机的强大运算能力,来实现我要的效果。

机器人的虚拟形象使用了Cortana的模型;NLP功能主要是使用讯飞开放平台实现;CV部分基于OpenCV和JNI开发;视频中语音有两种唤醒方式,关键词唤醒和利用手机额头的距离传感器唤醒;智能家居的网关是自己设计的,基于ESP系列的WiFi芯片...

最终实现的效果如下↓

这其中技术细节太多,就不一一讲解了,感兴趣的可以参考下面的技术路线导图↓

android模拟机root android模拟机器人身体_Android_07

可以说很好地符合了题主的要求,用闲置Android做机器人,有趣,极客,且路子野。

android模拟机root android模拟机器人身体_android模拟机root_08

结束语:小氪这个项目是我在16年的时候在学校突发奇想做的一个小项目,基本上用到的很多技术也是现学现用,所以不算非常完美,还有很多可优化的空间;另一个角度上来说,也正是因为做这个项目让我涨了非常多额外的技能点,比如三维建模、Unity开发、Android Native开发等等...

android模拟机root android模拟机器人身体_android模拟机root_09

所以我认为的极客精神就是:在脑洞和折腾中不断提升自我,有趣至上~