@ROS(ROS安装方法)
本文介绍安装ROS的过程以及解决各种报错问题
相信很多刚入坑机器人的宝子们首先遇到的第一个大坑是ROS的安装,由于系统、网络等等各种原因导致不停的报错…本文章就是来解救各路宝子们的!!!
1. 安装环境
由于ROS对Ubuntu系统的支持较为优秀,因此我们决定在Ubuntu18.04环境下安装ROS Melodic Morenia发行版。关于Ubuntu18.04的系统安装和简易教程,可以参考VMware虚拟机中安装Ubuntu18.04(linux发行版)【超详细图文教程】链接: link
2. 配置 Ubuntu 软件库
安装好Ubuntu系统后,就可以配置了,Ubuntu系统与Windows系统以及Android系统一样,拥有自己的软件库。这个软件库中包含了成千上万的程序,以满足Ubuntu用户的需求,下面是具体配置步骤。
- 点击左下角,然后点击 Software&Update
- 勾选main、universe、restricted、multiverse
- Ubuntu 提供了多个镜像源供用户选择,其中包括国内镜像源。在 Download from 的下拉菜单中,我们可以选择中国科学技术大学(USTC)的镜像源作为下载源。相较于其他源,USTC 的镜像源具有更快的下载速度。
3.添加 ROS 软件源
- 首先打开一个终端(ctrl+alt+T),然后在终端中敲入如下指令后回车
sudo sh -c ‘echo “deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $(lsb_release -sc) main” > /etc/apt/sources.list.d/ros-latest.list’
得到下图所展示的结果,当首次访问终端并执行此操作时,系统会提示用户输入密码以获取相应的权限。
4.增加密钥
- 在终端中输入如下指令:
sudo apt-key adv --keyserver ‘hkp://keyserver.ubuntu.com:80’ --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
5.开始安装ros
- 更新软件包,在终端输入如下指令:
sudo apt update
- 如果出现如下错误
@vmware:~$ sudo apt update
正在读取软件包列表... 完成
E: 无法获得锁 /var/lib/apt/lists/lock。锁正由进程 5167(apt-get)持有
N: 请注意,直接移除锁文件不一定是合适的解决方案,且可能损坏您的系统。
E: 无法对目录 /var/lib/apt/lists/ 加锁
- 执行命令:
sudo rm /var/lib/apt/lists/lock
- 如果没有报错,或者报错已经解决则继续下面的步骤:
- 在之前的讨论中,我们已经强调了ROS为我们提供了众多不同的库和工具。官方为我们提供了四种不同的选项供我们选择,这里推荐直接安装桌面完整版(这种安装方式几乎包含了 ROS、rqt、rviz、机器人通用库、2D/3D模拟器、导航以及2D/3D感知包)。安装方式是在终端中输入:
sudo apt install ros-melodic-desktop-full
- 如果出现如下错误:
@vmware:~$ sudo apt install ros-melodic-desktop-full
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
E: 无法定位软件包 ros-melodic-desktop-full
解决方法:
检查你的Ubuntu版本,如果是noetic则把上面代码改为:
sudo apt install ros-noetic-desktop-full
- 一切正常后继续安装:
- 在安装过程中,系统会提示用户整个安装过程可能会占用接近2个G的存储空间,并询问用户是否继续进行安装。具体如下图所示:
- 在执行安装程序时,首先需要在命令行界面输入字母Y,接着按下回车键以启动正式的安装流程。在此过程中,请保持耐心并确保网络连接稳定,因为任何网络问题都可能导致安装过程中出现各种未知错误。一旦安装完成,系统将显示如下图所示的界面。
5.安装rosdep,在终端输入:
sudo apt install python-rosdep
6.安装完成后就可以初始化 rosdep,按顺序输入以下命令:
sudo rosdep init
- 如果提示找不到rosdep,请先安装rospack-tools
sudo apt install rospack-tools
- 如果依然报错,打开host文件,在终端输入:
sudo gedit /etc/hosts
- 在打开的host文件末尾添加:151.101.84.133 raw.githubusercontent.com
- 如果执行rosdep update时出现如下错误:
@vmware:~$ sudo rosdep init
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.
解决方法:
出现Website may be down,原因是https://raw.githubusercontent.com/是外网网址访问不稳定(可多尝试几次sudo rosdep init)
如果多次尝试还是不行可尝试下边方法:
1)执行:sudo gedit /etc/hosts
在文件末尾添加下面这段:151.101.84.133 raw.githubusercontent.com
2)然后保存退出再次sudo rosdep init如果还是不行登陆IPAdress网站https://www.ipaddress.com/输入raw.githubusercontent.com查询到真实IP地址:
将查询到的IP替换上面代码的 151.101.84.133然后再次sudo rosdep init一般就会成功了
- 不报错后,然后再次初始化rosdep:
sudo rosdep init
- 然后终端输入:
rosdep update
- 如果执行rosdep update时出现如下错误:
***@vmware:~$ rosdep update
reading in sources list data from /etc/ros/rosdep/sources.list.d
ERROR: unable to process source
...
[https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml]:
Failed to download target platform data for gbpdistro:
<urlopen error timed out>
]]]
解决办法:
参考链接:https://blog.csdn.net/weixin_44023934/article/details/121242176
7.设置环境变量
前面的报错解决或者不报错后,在终端中继续输入
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
在执行上述指令后,用户可以尝试输入"ros"并按下Tab键。在正常情况下,系统会显示出以"ros"开头的相关命令(如下图)。然而,如果环境变量的配置存在错误,那么这些命令将不会显示出来。
- 如果输入bash source ~/.bashrc后保错:
@vmware:~$ source ~/.bashrc
bash: /opt/ros/melodic/setup.bash: 没有那个文件或目录
bash: /opt/ros/melodic/setup.bash: 没有那个文件或目录
bash: /opt/ros/melodic/setup.bash: 没有那个文件或目录
bash: /opt/ros/melodic/setup.bash: 没有那个文件或目录
bash: /opt/ros/melodic/setup.bash: 没有那个文件或目录
bash: /opt/ros/melodic/setup.bash: 没有那个文件或目录
解决方法:
1)新建一个终端,输入 :
gedit .bashrc
弹出一个文件,找到最后一行,如图所示:
ros版本需要和Ubuntu版本一致才行。
Ubuntu18.04:melodic
Ubuntu16.04: kinetic
Ubuntu14.04: indigo
是把文件中的melodic改成了自己对应的版本,重复的都删了,之后保存,再打开终端就好了。
8.安装rosinstall,终端输入:
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
9.最后,完成安装并检验
至此我们已经完成 ROS 的全部安装工作,这时候我们在终端输入如下指令以检验 ROS 是否成功安装。
roscore
结果信息如下:
恭喜完成ROS的安装过程!!!