今天小鱼给大家分享一下凡是用过ROS的都会遇到的问题,但没几个人能搞清楚。那就是关于rosdep的问题。
开始之前小鱼先问大家一个问题,你有用过下面这个指令吗?
rosdep install
因为每次安装都是跟着教程走,别人说要运行rosdep就运行,如果不出问题还好,但往往因为网络问题导致运行不成功。
1.既然rosdep不成功,那可以不使用rosdep吗?
答案是可以的,有一天小鱼一个同事找小鱼,说自己rosdep怎么搞都不成功,小鱼告诉他说,你不用搞rosdep也能运行代码的,你直接用ros就行。
我想这可能是大家的一个误区,因为rosdep在安装的时候官方说要装的,所以就一直认为必须要有它才能运行。
2.rosdep是干啥的?
rosdep其实是ros dependence,是管理包的依赖的,大家还记得ros每一个功能包下面都有一个叫做package.xml
的东西吗?
其实package.xml不仅定义了一个包的名字,同时里面还写着一些依赖关系,包含depend
。
rosdep可以帮我们搜索和安装某个包缺少的依赖。
3.rosdep 怎么用?
官方推荐两条命令:
给某一个包安装所需依赖
rosdep install AMAZING_PACKAGE
给某个src下所有包安装依赖
rosdep install --from-paths src --ignore-src -r -y
这个指令将会安装你的功能包里面所依赖的但系统又没有的包。
4.rosdep 下载失败解决办法?
所以有时候rosdep还是需要的,那rosdep老是更新失败该咋办呢?
网上方法五花八门,小鱼只讲一种根本上解决的方法——开代理。有需要代理软件的可以点阅读原文(小鱼用了好几年的了,还算稳定)。
5.写在最后
还记得开头的时候问大家的问题吗?是不是很少有人用过rosdep install。很多教程里都教大家去安装它,但从来没人讲过它的作用,通过小鱼的这篇文章后,以后遇到rosdep相关的问题,是不是就很快知道前因后果了。
我是小鱼,一名在职机器人算法工程师。目前在做公众号,每天都有干货输出。欢迎大家关注小鱼的微信公众号。