ROS + Android

最近查了一些关于ROS和Android的信息,有些关于构建ROS+Android的机器人的想法,保留下来。

ROS是一个开源的机器人框架,但是其实并不是一个完整的操作系统,一般都会将它搭建于宿主系统之上,如Ubuntu。

Android是一个开源的手机操作系统,基于Linux。

为了构建一个可交互的智能机器人:ROS可以提供机器人行动需要的支持,如Mapping, Nav., Localization等模块,都有现成的ROS开源代码可以支持。同时Android可以完美的承担机器人的交互部分,特别是增加了云端的AI之后,通过Android的APP,可以实现机器人的交互。

问题在于,如何实现Android和ROS之间的必要沟通,比如:Android收到消息需要机器人行走到指定位置?

构想1:

ROS + Android_第1张图片
Figure 1

如图,Android与ROS电脑之间,通过某个连接相连,在Android中实现相关的ROS node,完成交互:

1. 易于实现 - 都是现成完善的系统,整合起来不费事

2. 易于合作开发 - 各模块相对独立,开发过程会轻松一些

但是:

1. 需要设备支撑两个独立的操作系统,硬件成本高,耗电高

2. 由于ROS设计中的松耦合特征,各模块的交互成本/延时会相对更高

3. 模块的重复使用,ROS与Android都会用到Camera,这两部分也很可能会同时需要使用Camera,这个时候的处理应该如何?

构想2:

ROS + Android_第2张图片
Figure 2

如上,也许可以将ROS运行于Android平板中?

1. 减少硬件部分成本

2. Android和ROS虽然同处一个环境,但是依然是相对独立,沟通的成本也许可以比Figure 1好一些

构想3:

ROS + Android_第3张图片
Figure 3

将机器人控制部分完全集成到Android系统中,从底层实现相关外设驱动,到上层去实现各类机器人控制算法,工作量会相对大一些,但是好处也是显而易见:

1. 硬件成本下降

2. 出于同一系统中,各模块的沟通相当于是进程间的通讯,Android的IPC机制可以保证很好的实时性。

这样的一个方案可行吗?


有机会我想将2先实现出来试试。

你可能感兴趣的:(ROS + Android)