【ROS】rosdep系统依赖问题

文章目录

  • 一. rosdep是什么
  • 二.rosdep安装时机
  • 三.rosdep初始化
  • 四. rosdep更新
  • 五. 重新初始化
  • 六. 重新更新
  • 七. 失败原因
  • 八. 使用rosdepc

一. rosdep是什么

rosdep是ros一个命令行工具,用于安装系统依赖,具体地说,就是ros包的依赖。举例来说,你在编译velodyne源码时,可能会遇到找不到pcap.h错误,这是因为velodyne依赖于pcap库,但是这个库没有安装,此时你就可以使用rosdep安装pcap库,指令如下:

转到catkin工作区的顶级目录,其中包含您要使用的ROS包的源代码。然后运行:

rosdep install --from-paths src -i -y
# 或者
rosdep install --from-paths src --ignore-src -r -y

此命令会自动检测src下的所有包依赖,如果发现没有安装的依赖,直接安装。

二.rosdep安装时机

在安装ros系统时,rosdep会自动安装,所以不需要单独安装。

三.rosdep初始化

rosdep使用前需要先进行初始化和更新,初始化也就是执行下面指令:

sudo rosdep init

这一步就是将raw.githubusercontent.com…这个文件下载到/etc/ros/rosdep/sources.list.d/这个目录下,这一步你有可能遇到以下错误:
【ROS】rosdep系统依赖问题_第1张图片
这种一般是网络不好,你可以把上述上述链接复制到浏览器中,然后手动创建20-default.list文件,具体指令如下:

cd /etc/ros/rosdep/sources.list.d/
sudo touch 20-default.list
sudo gedit 20-default.list

然后将网页内容复制进去就行了。如果浏览器也打不开,那说明你的网络比较糟糕,需要先解决网络问题,可以尝试换有线网络,或者热点等,解决标准是浏览器可以打开这个链接。

四. rosdep更新

rosdep在完成初始化之后,需要更新,执行以下指令:

rosdep update

这一步你可能遇到以下错误:
【ROS】rosdep系统依赖问题_第2张图片
这种情况是由于已安装的rosdep与系统缓存版本不一致导致。可以使用以下指令检查:

rosdep --version
apt-cache policy python-rosdep

执行结果如图:
【ROS】rosdep系统依赖问题_第3张图片
可以看到两个版本并不完全一致,这样的话可能会导致update频繁失败,解决方式卸载rosdep,然后从缓存重新安装,这样可以保持安装的与缓存版本保持一直,操作如下。

卸载rosdep和pip:

sudo apt-get remove --purge python-rosdep python-pip

安装rosdep:

sudo apt-get update
sudo apt-get install python-rosdep

检查版本一致性:

rosdep --version
apt-cache policy python-rosdep

执行结果如图:
【ROS】rosdep系统依赖问题_第4张图片
操作系统环境不同,rosdep版本也可能不一样,只要保持两条指令输出的版本一致即可,至此完成rosdep本地版本与缓存版本的一致性配置。

五. 重新初始化

rosdep版本修复后,就可以重新初始化和更新了,具体先需要先删除老的list文件,执行以下指令:

cd /etc/ros/rosdep/sources.list.d
sudo rm 20-default.list
sudo rosdep init

执行结果如图
【ROS】rosdep系统依赖问题_第5张图片
最后一条如果出错,参考执行上述第三步:“rosdep初始化”,完成rosdep初始化。

六. 重新更新

执行指令:

rosdep update

此时如果出现timeout错误,那是网络错误,可以换个网络,多执行几次,我这里没有更换网络,试了两次,就成功了,如图
【ROS】rosdep系统依赖问题_第6张图片

七. 失败原因

rosdep配置失败,总体两个原因,一是网络确实比较糟糕,这种情况下,list文件网页都打不带,此时只能更换网络。也由于网络本身稳定性问题,可能时好时坏,所以这种情况下,在不同的时间点,有可能安装成功。第二个原因就是安装版本与缓存版本不一致,这种情况多见于已经安装pip的环境之后,再安装ros的情况,可以参考第四步检查,所以新安装的系统基本没有这个问题。稳定的网络环境是ros系统安装成功的必要条件,一般要求有线网即可,如果是无线网络,建议用热点。

八. 使用rosdepc

安装

sudo pip install rosdepc


#如果显示没有pip可以试试pip3。
sudo pip3 install rosdepc

#如果pip3还没有
sudo apt-get install python3-pip 
sudo pip install rosdepc

使用

sudo rosdepc init
rosdepc update

你可能感兴趣的:(ros)