由于第一遍安装时踩了不少坑,导致后面有些奇奇怪怪的问题没法填坑。于是选择再次重装,顺便记录一下这个过程,在后续的安装过程中确实顺利了不少。其中的一些细节要注意,要不然会折腾很长时间。
首先检查自己的ubuntu版本与将要安装的ROS版本是否匹配
Ubuntu不同的版本对应ROS不同的版本
我的版本是Ubuntu18.04
,所以选择安装ROS Melodic
。
打开软件中心,按照下图进行配置。
确保你的"restricted"
, “universe”
和 "multiverse"
前是打上勾的:
切换到最佳的服务器
这个和你当前的位置
有关系,会影响后续下载的速度
,很关键。
设置电脑以安装来自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'
配置公网密钥
,这一步是确保我们的系统认为这个路径是安全的,下载文件是没有问题的。不然下载的东西会立刻被清除掉。
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
若无法连接到密钥服务器,可以尝试替换
上面命令中的 hkp://keyserver.ubuntu.com:80 为 hkp://pgp.mit.edu:80 。
确保你的 Debian 包索引是最新的
使用sudo apt update
查看
ROS 中有很多不同的库和工具,并提供了四种默认选项,也可以单独安装 ROS 的软件包。
这里,我直接选择安装桌面完整版(推荐)。包含 ROS、rqt、rviz、机器人通用库、2D/3D 模拟器、导航以及 2D/3D 感知包。
sudo apt install ros-melodic-desktop-full
安装完成后,可以用下面的命令来查看可使用的包:
apt-cache search ros-melodic
比较困难
的一步
在使用 ROS 之前,需要初始化 rosdep。rosdep 让你能够轻松地安装被想要编译的源代码,或被某些 ROS 核心组件需要的系统依赖。
sudo rosdep init
rosdep update
这时会遇到这样的报错
:
$ 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.
$ rosdep update
reading in sources list data from /etc/ros/rosdep/sources.list.d
ERROR: error loading sources list:
(‘The read operation timed out’)
可以通过添加代理
的办法来解决
:
打开包含资源下载函数的文件:
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
添加代理:
url=“https://ghproxy.com/”+url
添加的位置如图:
修改/usr/lib/python2.7/dist-packages/rosdistro/_init_.py文件中的DEFAULT_INDEX_URL
sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/_init_.py
DEFAULT_INDEX_URL = ‘https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml’
修改其余(4个)文件中的地址,在地址 https://raw.githubusercontent.com/… 前添加https://ghproxy.com/
$ sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
//修改第36行的地址
$ sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py 72行
//修改第72行
$ sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
//修改第39行
$ sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py
//修改第68行、119行
解决 Hit 第五个地址的报错
$ sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
//在第204行添加如下代码(即在该函数块下的第一行处)
gbpdistro_url = “https://ghproxy.com/” + gbpdistro_url
//注意,原网址中代理地址的双引号是中文,直接粘贴复制会报字符识别错误
多次运行 rosdep update ,发现问题完美解决。
非常重要,很多小伙伴在日常的开发过程中,有的找不到 Package, 找不到node, 很多情况下都是没有添加source造成的。
将 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
到目前为止,你已经安装了运行核心 ROS 包所需的内容。
为了创建和管理自己的 ROS 工作区,有各种各样的工具和需求分别分布。例如:rosinstall 是一个经常使用的命令行工具,它使你能够轻松地从一个命令下载许多 ROS 包的源树。
要安装这个工具和其他构建ROS包的依赖项,请运行:
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
参考:
强烈建议按照ROS官网安装:cn/melodic/Installation/Ubuntu - ROS Wiki