写在前面

通过前面一系列的铺垫,相信大家对整个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节点

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

PC端与robot端ROS网络通信的设置,其实很简单。就是要在PC端和机器人端都要指明master和hostname这两个东西,我们都知道ROS基于的是一个分布式的通信机制,支持多机通信,并且只能有一个master设备作为对其他分部式设备的统一管理。

由于大部分节点算法都是运行在机器人上,PC端只是用于远程调试,为了系统的效率与稳定性,我把机器人端作为master。如图24。

(图24)PC端与robot端ROS网络通信

首先,配置机器人端的ROS网络参数,打开机器人用户目录下的~/.bashrc配置文件,在最后添加两个环境变量,如图25。

(图25)配置机器人端的ROS网络参数

不难发现在机器人上mater和host的IP是一样的,因为机器人被指定为了整个ROS网络的master设备。修改好后,需要重启系统使设置参数生效。

然后,配置PC端的ROS网络参数。这里需要提醒一下,需要让PC端与机器人出于同一局域网下,如果PC端使用的是虚拟机运行ubuntu建议用物理桥接的方式给虚拟机连网。打开PC端用户目录下的~/.bashrc配置文件,在最后添加两个环境变量,如图26。

(图26)配置PC端的ROS网络参数

不难发现PC端上master填的是机器人IP地址,host为PC本地IP。修改好后,需要重启系统使设置参数生效。

设置好PC端与robot端ROS网络通信,在正是进行ROS多机通信时,需要首先在机器人上启动节点管理里master,启动命令是roscore,然后就可以在相应的机器上启动需要的节点了。

参考文献 

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

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