写在前面

通过前面一系列的铺垫,相信大家对整个miiboo机器人的DIY有了一个清晰整体的认识。接下来就正式进入机器人大脑(嵌入式主板:树莓派3)的开发。本章将从树莓派3的开发环境搭建入手,为后续ros开发、slam导航及语音交互算法做准备。本章内容:

1.安装系统ubuntu_mate_16.04

2.安装ros-kinetic

3.装机后一些实用软件安装和系统设置

4.PC端与robot端ROS网络通信

5.Android手机端与robot端ROS网络通信

6.树莓派USB与tty串口号绑定

7.开机自启动ROS节点

5.Android手机端与robot端ROS网络通信

刚刚介绍了PC端与robot端ROS网络通信,在有些情况下,使用Android手机端来调试监控机器人会更方便。于是,参考ROS官网给的开发demo,我用ros-java库也做了一个能跟robot端进行ROS网络通信的APP,我给这个APP取名叫Android_for_miiboo_robot.apk。如果大家对这个APP感兴趣,可以持续关注我,我会把这个APP共享给大家。这里就来介绍一下Android手机端与robot端ROS网络通信的配置。

首先,是配置机器人端的ROS网络参数,和前面一样,需要在机器人端~/.bashrc中指定master与host,由于前面配置PC端与robot端ROS网络通信时已经配好了,所以就无需重复配置了。为了便于在局域网下的Android手机通过网络能迅速找到机器人,需要在机器人上开启专门广播自己IP的节点,这样Android手机就能自动搜索并完成Android手机端与robot端ROS网络通信的连接。机器人IP广播节点我已经写好了,只需要通过命令启动:

roslaunch broadcast_ip broadcast_udp.launch

然后,是配置Android手机端的ROS网络参数,其实将Android手机连接到同一个wifi后,打开miiboo机器人的APP,APP会自动扫描到master(也就是机器人)的IP地址,只需要点击CONNECT就可完成连接。连接完成后,Android手机端与robot端ROS网络通信就打通了,接下来APP就可以用ROS网络通信来操控机器人了。如图27。

(图27)配置Android手机端的ROS网络参数

这里顺便介绍一下,miiboo机器人APP的功能,功能清单如下。

功能1:手动遥控miiboo机器人移动

功能2:建图/导航模式切换

功能3:显示地图

功能4:点击地图点指定导航

功能5:视频监控

参考文献 

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

Github源码:https://github.com/xiihoo/Books_Robot_SLAM_Navigation