机器人SLAM导航:核心技术与实战
上QQ阅读APP看书,第一时间看更新

1.2 ROS开发环境的搭建

为了后面能进行ROS的实战讲解,我们要先搭建好ROS的开发环境,接下来就按照ROS安装、文件组织方式、网络通信配置、使用集成开发工具的顺序讲解如何搭建环境。

1.2.1 ROS的安装

使用ROS进行机器人的开发,一般需要机器人工作台两个部分。机器人通常选择性价比高和功耗低的ARM嵌入式板作为主机;工作台大多选择X86台式机或笔记本电脑作为主机。虽然ROS支持多种操作系统,但对其原生的操作系统Ubuntu Linux支持得最好。所以为了避免麻烦,推荐大家在Ubuntu上安装ROS。ARM嵌入式板的厂家一般都会提供相应的定制化Ubuntu系统,主要体现在硬件外设驱动和一些加快系统运行速度的优化,软件开发人员可以不必考虑这些问题,直接把它当作普通的Ubuntu使用就行了。在X86主机上直接安装官方发布的Ubuntu系统,你可以直接将Ubuntu安装到物理机,也可以将Ubuntu安装到虚拟机。不管是采用何种硬件,在硬件上以何种方式安装Ubuntu或定制化Ubuntu,一旦我们拥有了一个可用的Ubuntu系统,就可以在这个Ubuntu系统上安装当下最流行的ROS发行版了。安装ROS的软硬件配置总结,如图1-2所示。

0

图1-2 安装ROS的软硬件配置总结

安装ROS前,要先装好Ubuntu,本书推荐安装Ubuntu18.04和ROS melodic,在机器人上的ARM主机安装Ubuntu18.04的内容请参见第5章的讲解。安装好Ubuntu18.04后,就可以开始ROS melodic的安装了。由于篇幅限制,有关ROS安装的具体步骤就不展开了,请直接参考官方在wiki上的教程[1]

1.2.2 ROS文件的组织方式

安装完ROS之后,我们有必要对ROS的文件组织方式进行了解。ROS的文件被放在系统空间和工作空间两个地方。

系统空间就是存放ROS系统安装包的目录,在/opt/ros/目录中存放着roscore、rviz、rqt等ROS的核心程序和工具,文件是二进制形式,用户不可修改。要使用系统空间中的程序和工具,需要先激活系统空间。请使用下面两行命令。

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

工作空间是用户开发自己程序的文件夹(也称目录),由用户自行创建。工作空间中存放各种用户自己开发的功能包程序,文件是源代码形式,用户可自由修改。用户可根据需要创建多个工作空间。下面在~/目录新建一个名为catkin_ws的工作空间,具体命令如下。

#新建文件夹
mkdir -p ~/catkin_ws/src
#初始化src目录
cd ~/catkin_ws/src
catkin_init_workspace
#对工作空间进行首次编译
cd ~/catkin_ws
catkin_make

要使用工作空间中的程序和工具,同样需要先激活该空间。请使用下面两行命令。

echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

ROS的开源社区有非常多的功能包,涵盖传感器驱动、算法、工具等。可以直接用apt命令将二进制格式的功能包安装到系统空间,也可以将功能包的源码下载到我们的工作空间,然后手动编译。如果我们要对一些功能包进行修改或升级,可以将该功能包的源码下载到工作空间后修改并编译,工作空间的功能包能直接覆盖系统空间同名的功能包。我们也可以直接用apt命令卸载系统空间的功能包,然后将该功能包的源码下载到工作空间后修改、编译。

1.2.3 ROS网络通信配置

前面提到ROS分布式通信的特性,即在构成ROS网络通信的各台主机中,必须指明一台主机作为主节点负责管理整个ROS网络通信,同时要声明参与通信的各个客户主机。所有主机均由其IP地址描述,这样就需要设置每台主机中的环境变量MASTER和HOST。本章只有1台主机参与ROS网络通信,可以不必设置环境变量,或者将环境变量都取localhost默认值。打开~/.bashrc文件,在文件末尾添加如下环境变量。

export ROS_MASTER_URI=http://localhost:11311
export ROS_HOSTNAME=localhost

1.2.4 集成开发工具

工欲善其事,必先利其器。选择一款合适的集成开发工具,能大大提高开发效率。在ROS开发中常用的集成开发工具包括vim、VSCode、Sublime text、Atom、RoboWare Studio等。

在Linux开发中,vim是非常好用的纯文本编辑器,所以推荐大家安装。vim的安装很简单,直接用apt命令安装即可。VSCode是比较推荐的集成开发工具,跟Windows系统中的Visual Studio一样,功能非常强大,对现在主流编程语言都有很好的支持。直接打开Ubuntu的软件中心,搜索Visual Studio Code找到对应图标点击安装就行了。


[1]参见http://wiki.ros.org/melodic/Installation/Ubuntu