基于Ubuntu18.04的ROS Melodic环境详细配置(含各种大坑及填坑)

参考资料:
ROS官方wiki、
https://blog.csdn.net/UTOPIA_0421/article/details/102767199

下文以Ubuntu18.04安装Melodic为例

填坑:ROS与Ubuntu版本的对应关系

Ubuntu20.04(也就是最新版本)目前没有合适的ROS版本对应,所以如果需要使用ROS目前先不要下这个版本!

ROS原本只支持在Linux系统上安装部署,而近期开始推出Windows版本,但还不够完善,所以首选开发平台仍是Ubuntu,并且ROS的每个版本都有一个最佳适配的Ubuntu版本。
请在下载Ubuntu/ROS之前一定要看清对应版本。

1.调整Ubuntu镜像源

这一步是为了让接下来的下载过程使用中国的服务器,加快速度
配置Ubuntu允许 restricteduniversemultiverse 这三种安装模式。ROS官方推荐软件源设置为中国科技大学(USTC)清华大学(Tsinghua),这里将软件源切换成中科大的源,

2.添加source.list

$ sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

这一步配置将镜像添加到Ubuntu系统源列表中,建议使用国内的镜像源,这样能够保证下载速度。本例使用的是中国科技大学的源。

3.添加keys

$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

公钥是Ubuntu系统的一种安全机制,也是ROS安装中不可缺的一部分。

4.安装ROS

首先要保证系统的Debian安装包在最新状态:

sudo apt update

一定要确保所有的执行项都被命中或者获取

这里如果出现以下错误:

W: GPG 错误:http://packages.ros.org/ros/ubuntu xenial InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY F42ED6FBAB17C654
W: 仓库 “http://packages.ros.org/ros/ubuntu xenial InRelease” 没有数字签名。
N: 无法认证来自该源的数据,所以使用它会带来潜在风险。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。

参见以下解决方式:

 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654

其中最后一串码与之前的报错中签名的内容保持一致。

在ROS中,有很多不同的库和工具,官方提供了四种默认的安装方式,这里使用桌面完整版安装方式。

  • 桌面完整版(推荐):包含ROS、rqt、rviz、机器人通用库、2D/3D 模拟器、导航以及2D/3D感知等。
sudo apt install ros-melodic-desktop-full
  • 桌面版安装:包含ROS、rqt、rviz以及通用机器人函数库。
sudo apt install ros-melodic-desktop
  • 基础版安装:包含ROS核心软件包、构建工具以及通信相关的程序库,无GUI工具。
sudo apt install ros-melodic-ros-base
  • 单个软件包安装: 你也可以安装某个指定的ROS软件包(使用软件包名称替换掉下面的PACKAGE):
sudo apt install ros-melodic-PACKAGE

例如

sudo apt install ros-melodic-slam-gmapping

这里选择桌面完整版,然后在接下来的行输入Y,即可开始安装

5.配置ROS

5.1初始化 rosdep

rosdep可以方便在你需要编译某些源码的时候为其安装一些系统依赖,同时也是某些ROS核心功能组件所必需用到的工具。

sudo rosdep init
rosdep update

错误1

如果出现错误输入第一行代码时报错:找不到命令,输入以下代码

sudo apt install python-rosdep

错误2

如果出现输入第一行代码ERROR: cannot download default sources。。。一大串,对于这个问题网上有非常多解法,但感觉要么很麻烦,要么没什么用。我是输入以下代码:

sudo gedit /etc/resolv.conf

(效果有点类似于打开vim修改,可惜我没有下载vim,就用gedit解决)
在打开的文档中,在nameserver位置改为:

nameserver 8.8.8.8 
nameserver 8.8.4.4 

保存。再输入上文代码。

错误3

如果输入第二行代码时出现ERROR:unable to process source加上一大串,
请直接更换手机热点连接,并重复错误2中的步骤,再次输入这一小节最开始的两行代码即可成功配置。

5.2配置环境

每次打开一个新的终端时都需要重新配置ROS环境变量:

source ~/.bashrc

如果每次打开新的终端ROS环境变量都能够自动配置好(即添加到**~/.bashrc**文件中),那将会方便很多:

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

5.3构建库依赖

rosinstall是一个经常使用的命令行工具,它使你能够轻松地从一个命令下载许多ROS包的源码树。

sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

6.测试ROS

6.1启动ROS

roscore

如果出现下图,说明已经正常启动:
基于Ubuntu18.04的ROS Melodic环境详细配置(含各种大坑及填坑)_第1张图片

6.2运行Turtle例程

启动roscore后,重新打开一个终端窗口,输入:

rosrun turtlesim turtlesim_node

屏幕上会出现一只小海龟(每次运行显示的海龟形状是不一样的),那么该怎么样来操纵这只小海龟呢?重新打开新的一个终端,输入:

rosrun turtlesim turtle_teleop_key

将鼠标聚焦在运行turtle_teleop_key的终端窗口上,然后通过键盘上的方向键,进行操作小海龟。

至此,ROS已经能够正常启动运行。若要停止运行,依次在各个终端中按Ctrl + C即可。

7.创建ROS工作空间

在用户空间下创建一个catkin工作空间:

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src

即使这个工作空间是空的(在src目录中没有任何软件包,只有一个CMakeLists.txt链接文件),你依然可以编译它:

cd ~/catkin_ws/
catkin_make

catkin_make命令在catkin工作空间中是一个非常方便的工具。如果查看一下当前目录应该能看到build和devel这两个文件夹。在devel文件夹里面你可以看到几个setup.*sh文件。source这些文件中的任何一个都可以将当前工作空间设置在ROS工作环境的最顶层。
编译完成后必须刷新一下工作空间的环境,否则可能找不到工作空间。
这里通过source命令实现:

 cd ~/catkin_ws/
source devel/setup.bash

如果每次打开新的终端可以自动进行刷新配置,那是非常方便的,可以把 source ~/catkin_ws/devel/setup.bash 命令追加到 ~/.bashrc 文件中:

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

一个ROS工作环境搭建完成。

你可能感兴趣的:(ROS)