后台收到很多小伙伴的关于 rosdep
安装配置失败的问题,所以这里中断下激光雷达的介绍,先介绍如何解决 rosdep
问题,下一篇继续介绍激光雷达。在安装ros系统时,遇到最多的问题可能就是 rosdep
指令出错,本篇介绍 rosdep
是什么,怎么使用,然后介绍 rosdep
出错的可能原因,以及修复方法,本篇所介绍的方法适用于ros所有版本。
一. rosdep是什么
rosdep
是ros一个命令行工具,用于安装系统依赖,具体地说,就是ros包的依赖。举例来说,你在编译velodyne源码时,可能会遇到找不到 pcap.h
错误,这是因为velodyne依赖于 pcap
库,但是这个库没有安装,此时你就可以使用 rosdep
安装 pcap
库,指令如下:
rosdep install --from-paths src -i -y
此命令会自动检测src下的所有包依赖,如果发现没有安装的依赖,直接安装。
二.rosdep安装时机
在安装ros系统时, rosdep
会自动安装,所以不需要单独安装。
三.rosdep初始化
rosdep
使用前需要先进行初始化和更新,初始化也就是执行下面指令:
sudo rosdep init
这一步就是将
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
文件下载到目录 /etc/ros/rosdep/sources.list.d/
下,这一步你有可能遇到以下错误:
这种错误一般是网络不好引起,你可以把上述上述链接复制到浏览器中,然后手动创建 20-default.list
文件,具体指令如下:
cd /etc/ros/rosdep/sources.list.d/sudo touch 20-default.listsudo gedit 20-default.list
然后将网页内容复制进去就行了。如果浏览器也打不开,那说明你的网络比较糟糕,需要先解决网络问题,可以尝试换有线网络,或者热点等,解决标准是浏览器可以打开这个链接。
四. rosdep更新
rosdep
在完成初始化之后,需要更新,执行以下指令:
rosdep update
这一步你可能遇到以下错误:
这种情况是由于已安装的 rosdep
与系统缓存版本不一致导致。可以使用以下指令检查:
rosdep --versionapt-cache policy python-rosdep
执行结果如图
可以看到两个版本并不完全一致,这样的话可能会导致update频繁失败,解决方式卸载 rosdep
,然后从缓存重新安装,这样可以保持安装的与缓存版本保持一致,操作如下:
卸载rosdep和pip:
sudo apt-get remove --purge python-rosdep python-pip
安装rosdep:
sudo apt-get updatesudo apt-get install python-rosdep
检查版本一致性:
rosdep --versionapt-cache policy python-rosdep
执行结果如图
操作系统环境不同, rosdep
版本也可能不一样,只要保持两条指令输出的版本一致即可,至此完成 rosdep
本地版本与缓存版本的一致性配置。
五. 重新初始化
rosdep
修复版本后,需要重新初始化和更新,操作之前,需要先删除老的 20-default.list
,执行以下指令:
cd /etc/ros/rosdep/sources.list.dsudo rm 20-default.listsudo rosdep init
执行结果如图
最后一条如果出错,参考执行上述第三步:“rosdep初始化”,完成 rosdep
初始化。
六. 重新更新
执行指令:
rosdep update
此时如果出现timeout错误,那是应该网络问题,可以换个网络,多执行几次,我这里没有更换网络,试了两次,就成功了,如图
七. 失败原因
rosdep
配置失败,总体两个原因,一是网络确实比较糟糕,这种情况下, 20-default.list
文件网页链接都打不带,此时只能更换网络。也由于网络本身稳定性问题,可能时好时坏,所以这种情况下,在不同的时间点,有可能安装成功。第二个原因是安装版本与缓存版本不一致,这种情况多见于已经安装pip的环境之后,再安装ros的情况,可以参考第四步检查,所以新安装的系统基本没有这个问题。稳定的网络环境是ros系统安装成功的必要条件,一般要求有线网即可,如果是无线网络,建议用热点。
八. ROS系统完成安装步骤
Kinetic版本参考:ROS 系统安装与体验。Melodic版本参考:Ubuntu18.04安装ROS Melodic”。
九. 小结
本篇介绍 rosdep
基本概念和用法,然后介绍 rosdep
安装配置失败的几种原因以及对应的解决方法。