大家好,我是小鱼。小鱼发现很多同学在学习和使用ROS的过程中都会遇到找不到某个包的问题。错误大概像下面这个样子。
遇到这种情况该怎么检查呢?
今天小鱼带大家认识一个指令rospack,这个指令可以查看当前工作空间下所有的包的列表。
如果列表中没有这个库,那就考虑有没有source环境或者安装了
如果列表中有,可以使用rospack查找到某个包所在的具体路径,看看这个包下面是否有你想要的指令。
接下来和小鱼一起尝试一下吧。
查看当前环境下所有的包的名字和位置
rospack list
(base) ➜ armsim rospack list
actionlib /opt/ros/melodic/share/actionlib
actionlib_msgs /opt/ros/melodic/share/actionlib_msgs
actionlib_tutorials /opt/ros/melodic/share/actionlib_tutorials
amcl /opt/ros/melodic/share/amcl
...........
可以看到一大堆的包,那我想过滤一下ur5关键词,怎么搞呢?
rospack list | grep ur5
小鱼尝试运行了一下,发现什么都没有输出,那说明我的工作空间下的确没有这个包。
这个时候小鱼就发现自己忘记source了,就可以先source一下环境。
source devel/setup.bash
然后再试一次
(base)➜armsim rospack list | grep ur5
ur5_moveit_config /home/monster/code/learn/armsim/src/universal_robot/ur5_moveit_config
如何查找一个包的路径呢?使用
rospack find package-name
比如
(base)➜armsim rospack find turtlesim
/opt/ros/melodic/share/turtlesim
还有更多使用方法,比如查找一个包的所有依赖。
(base) ➜ armsim rospack depends-on turtlesim
turtle_tf
turtle_tf2
turtle_actionlib
当我们手动下载编译一个包的时候,可以先使用rospack检查一下包的相关依赖再动手安装。
更多使用姿势大家可以使用rospack -h来查看。
我是小鱼,一名在职机器人算法工程师
目前在做公众号,输出
机器人算法注解、学习教程、工作经验等
欢迎大家关注