本篇介绍ubuntu18.04安装ROS melodic的方法,以及安装时可能遇到的问题与对应解决办法。
ROS安装有两种方法,一种是软件源安装,另一种是源码编译安装,ROS官网上有关于源码编译安装的说明和资源链接,同时也备注了“不推荐”。官网地址:cn/melodic/Installation/Ubuntu - ROS Wiki
我们通常使用的方法是软件源安装的方法,官网仍然有详细具体的步骤说明,只不过有些步骤可能需要我们“科学”上网。
具体安装办法:
1. 配置Ubuntu软件仓库
配置Ubuntu软件仓库(repositories)以允许使用“restricted”“universe”和“multiverse”存储库。
2. 设置sources.list
设置电脑以安装来自packages.ros.org的软件。
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
若下载速度缓慢,推荐就近选择一个镜像源替换上面的命令。例如,Tsinghua University为:
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
如果依旧遇到连接问题,请尝试为Ubuntu apt换源(非ROS网站)。
3. 设置密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
若无法连接到密钥服务器,可以尝试替换上面命令中的 hkp://keyserver.ubuntu.com:80 为 hkp://pgp.mit.edu:80 。
也可以使用curl命令替换apt-key命令,这在使用代理服务器的情况下比较有用:
curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -
4. 安装
首先,确保你的 Debian 包索引是最新的:
sudo apt update
在 ROS 中有很多不同的库和工具。官网提供了四种默认选项供你选择。你也可以选择单独安装 ROS 的软件包。这里推荐大家安装桌面完整版。
如果下面的步骤出现问题,可以用这个源来替代上面提到的源:ros-shadow-fixed(英文页面)
1)桌面完整版(推荐): : 包含 ROS、rqt、rviz、机器人通用库、2D/3D 模拟器、导航以及 2D/3D 感知包。
sudo apt install ros-melodic-desktop-full
2)桌面版: 包含 ROS,rqt,rviz 和机器人通用库
sudo apt install ros-melodic-desktop
3)ROS-基础包: 包含 ROS 包,构建和通信库。没有图形界面工具
sudo apt install ros-melodic-ros-base
4)单独的包: 你也可以安装某个指定的ROS软件包(使用软件包名称替换掉下面的PACKAGE):
sudo apt install ros-melodic-PACKAGE
比如:sudo apt install ros-melodic-slam-gmapping
要查找可用软件包,请运行:
apt search ros-melodic
5. 初始化rosdep
在你使用 ROS 之前,需要初始化 rosdep。rosdep 让你能够轻松地安装被想要编译的源代码,或被某些 ROS 核心组件需要的系统依赖。通过以下指令:
sudo rosdep init rosdep update
6. 设置环境变量
将 ROS 环境变量自动添加到新 bash 会话会很方便:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc
如果你不只安装了一个 ROS 发行版, ~/.bashrc 只能使用你需要的 ROS 版本的 setup.bash 。
如果你只想设置当前 bash 会话的 ROS 环境变量,只需要输入:
source /opt/ros/melodic/setup.bash
如果你使用 zsh,那么你需要将上述命令改为:
echo "source /opt/ros/melodic/setup.zsh" >> ~/.zshrc source ~/.zshrc
7. 构建依赖项
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
————————————————————分割线——————————————————
可能遇到的问题:
1. 如果出现类似如下错误:
W: GPG 错误:http://mirrors.ustc.edu.cn/ros/ubuntu melodic InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY F42ED6FBAB17C654
E: 仓库 “http://mirrors.ustc.edu.cn/ros/ubuntu bionic InRelease” 没有数字签名。
N: 无法安全地用该源进行更新,所以默认禁用该源。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。
解决办法:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
2.如果出现如下类似问题:
E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?
解决办法:
sudo rm -r -f /var/lib/dpkg/lock-frontend
sudo rm -r -f /var/lib/dpkg/lock
再执行sudo apt-get install ros-melodic-desktop-full一般就能成功安装。
3.如果出现错误:
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.
解决办法:
cd /etc
sudo gedit hosts
在打开的文件末尾添加:151.101.84.133 raw.githubusercontent.com。保存退出再重新操作即可。
4.如果出现错误:
ERROR: default sources list file already exists:
/etc/ros/rosdep/sources.list.d/20-default.list
Please delete if you wish to re-initialize
解决办法:20-default.list文件重复,删掉一个就好了。
sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
再重新运行sudo rosdep init可以解决。
5.如果rosdep update时出现以下错误:
ERROR: error loading sources list: ('The read operation timed out',)
解决办法:网络问题,通常反复执行rosdep update指令或科学上网,就可以执行成功
————————————————————————
安装成功后我们可以通过小海龟的例子验证一下看ROS是否成功安装。
1.首先在第一个terminal启动ROS,
roscore
2.在第二个terminal中运行以下指令,成功的话你会看到一只静止的小海龟。
rosrun turtlesim turtlesim_node
3.打开第三个terminal,输入以下指令启动小海龟的键盘控制节点:
rosrun turtlesim turtle_teleop_key
成功的话,此时我们就可以通过键盘来控制小海龟的移动了。此时键盘上的“↑↓←→”分别对应着“前进、后退、左转、右转”的功能,操作后会看到小海龟的行动轨迹,同时第二个terminal中会显示小海龟的坐标位置变化。
到这里,我们的ROS就安装成功了,大家可以试一下,希望对大家有所帮助。