运行环境:
上位机:Android7.1.2 瑞芯微RK3399系列主板
下位机:Ubuntu 16.04 LTS , i5-6500T CPU 2.50GHz X4 ,内存8G,硬盘128G
目前Android想和Ros通信,有三种方案:
一、使用RosJava
RosJava相当于在Android上实现了一个Ros系统,比较大,连接上下位机Ros后,可以作为系统的一部分进行分布式通信;RosJava优点是所有涉及ROS常用消息类型的UI控件,如方向控制按键,地图、摄像头数据渲染等控件都定义好了。缺点是实在太大了,而且官方编译版本过旧,接入难度较大。
二、接入RosBridge
RosBridge相当于是在下位机Ros系统安装了一个通信节点,把Ros系统所有Topic的消息,转换成JSON格式。其他设备可以通过连接RosBridge提供的TCP、UDP或WebSocket服务,使用JSON协议,间接和Ros系统通信。理论上只要能建立网络连接,支持TCP、UDP、WebSocket其他中任何一种网络连接,就能通过RosBridge和Ros系统通信,不仅限于Android。RosBridge能实现和所有Ros系统Topic通信,但是控制设备时和主控程序会存在冲突,可能出现多个设备和主控程序同时控制设备的情况