欢迎光临散文网 会员登陆 & 注册

【自己动手做一台SLAM导航机器人】附录A:用于ROS机器人交互的Android手机APP开发

2023-04-03 01:54 作者:小虎哥哥爱学习  | 我要投稿

本专栏目录

  • 前言

  • 第一章:Linux基础

  • 第二章:ROS入门

  • 第三章:感知与大脑

  • 第四章:差分底盘设计

  • 第五章:树莓派3开发环境搭建

  • 第六章:SLAM建图与自主避障导航

  • 第七章:语音交互与自然语言处理

  • 附录A:用于ROS机器人交互的Android手机APP开发

  • 附录B:用于ROS机器人管理调度的后台服务器搭建

  • 附录C:如何选择ROS机器人平台进行SLAM导航入门

视频教程

https://www.bilibili.com/video/BV1jS4y1a7Lz

Android要与ROS通讯,一种是基于rosbridge,另一种是基于rosjava库。

  • Rosbridge

  • rosjava

下面这本书是本篇文章的参考文献,大家有需要可以入手一本:

1.相关参考例子工程

(1)rosbridge

rosbridge例子:

https://github.com/hibernate2011/RosClient

 

rosbridge(rosbridge_suite)是ros官方为开发者提供的一个用于非ros系统和ros系统进行交互通信的功能包。包括话题的订阅,消息的发布,服务的调用,参数的设置和获取,图片信息的传递等等,都是JSON格式的字符串。获取JSON字符串并将命令发送到ros,反之亦然。

(2)rosjava

rosjava例子:

https://github.com/rosjava/android_apps

https://github.com/rosjava/android_core

rosjava库,这玩意儿类似于ROS官方支持的rospy roscpp等,也是ROS分布式计算平台的一种language binding。

2.rosjava使用举例

以android_apps-kinetic为例,首先下载android_apps-kinetic工程(https://github.com/rosjava/android_apps)。

(图1)android_apps-kinetic工程

(1)Android Studio导入工程编译运行

(图2)Android Studio导入工程编译运行

(2)启动登入界面

保证手机跟Raspberry Pi 3连接同一个网络,通过PC 获取Raspberry Pi 3的IP=XXX.XXX.XXX.XXX。修改Master URI选择roscore的URI 点击CONNECT。

(图3)启动登入界面

(3)主界面

(图4)主界面
  • 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、启动保存建图和代价地图显示选择功能。

3.miiboo.apk运用介绍

主界面:

(图5)miiboo.apk主界面

进入建图模式:

(图6)miiboo.apk进入建图模式

图层显示选择:

(图7)miiboo.apk图层显示选择
(图8)miiboo.apk图层显示选择效果

后记

为了防止后续大家找不到本篇文章,我同步制作了一份文章的pdf和本专栏涉及的例程代码放在github和gitee方便大家下载,如果下面给出的github下载链接打不开,可以尝试gitee下载链接:

  • github下载链接:https://github.com/xiihoo/DIY_A_SLAM_Navigation_Robot

  • gitee下载链接:https://gitee.com/xiihoo-robot/DIY_A_SLAM_Navigation_Robot

技术交流

QQ技术交流群:117698356

参考文献

[1] 张虎,机器人SLAM导航核心技术与实战[M]. 机械工业出版社,2022.


【自己动手做一台SLAM导航机器人】附录A:用于ROS机器人交互的Android手机APP开发的评论 (共 条)

分享到微博请遵守国家法律