android要与ROS通讯,一种是基于rosbridge,另一种是基于rosjava库。
相关参考例子工程
rosbridge例子:
https://github.com/hibernate2011/RosClient
rosbridge(rosbridge_suite)是ros官方为开发者提供的一个用于非ros系统和ros系统进行交互通信的功能包。包括话题的订阅,消息的发布,服务的调用,参数的设置和获取,图片信息的传递等等,都是JSON格式的字符串。获取JSON字符串并将命令发送到ros,反之亦然。
rosjava例子:
https://github.com/rosjava/android_apps
https://github.com/rosjava/android_core
rosjava库,这玩意儿类似于ROS官方支持的rospy roscpp等,也是ROS分布式计算平台的一种language binding。
使用举例:
以android_apps-kinetic为例,首先下载android_apps-kinetic工程https://github.com/rosjava/android_apps
Android Studio导入工程编译运行
启动登入界面:
保证手机跟Raspberry Pi 3连接同一个网络,通过PC 获取Raspberry Pi 3的IP=XXX.XXX.XXX.XXX
修改Master URI选择roscore的URI 点击CONNECT
主界面:
- Set Pose在地图长按 相当于Rviz中的 2D Pose Estimate
- Set Goal在地图长按 相当于Rviz中的 2D Nav Goal
- 左下角Joystick可以发出cmd_vel topic控制小车移动
- Camera View与Map View可以相互切换
- miiboo.apk是由android_apps-kinetic和android_core-kinetic改造而来,基于rosjava库,在原有控制移动、小车位置设定,导航目标设定及路径显示等功能基础上集成了自动获取IP、启动保存建图和代价地图显示选择功能。
miiboo.apk运用介绍:
主界面:
进入建图模式
图层显示选择