教程
rosdepc
ros依赖的安装工具。
从功能包的package.xml中获取功能包的依赖,然后下载安装;
使用
rosdep的安装
1,安装pip
sudo apt install python3-pip
2,使用pip安装rosdep
安装官方的rosdep:
sudo pip install rosdep
报错使用:sudo pip3 install rosdep
安装国内版本的rosdepc:
sudo pip install rosdepc
rosdep首次使用初始化
sudo rosdep init && rosdep update
这将初始化 rosdep 并更新本地缓存的 rosdistro 索引。
rosdepc安装功能包依赖项
指令:
rosdepc install -i --from-paths src --rosdistro humble -y
-i:
-i, --ignore-packages-from-source, --ignore-src`:指定此选项后,`rosdep` 工具在执行以下(check,install,keys)命令时会忽略在 ROS_PACKAGE_PATH、AMENT_PREFIX_PATH,以及 `--from-paths` 选项所指定的路径中找到的 `catkin` 或 `ament` 包:
- `check` 命令:检查依赖项是否已经安装。
- `install` 命令:安装依赖项。
- `keys` 命令:列出所有可用的 ROS 软件包键(key)。
`rosdep` 是 ROS 工具集中的一个用于管理 ROS 软件包依赖项的工具,可以检查、安装、列出依赖项和相关键等。当使用 `rosdep` 安装 ROS 软件包时,它会自动下载并安装所有必需的依赖项,从而确保所需的所有软件包和库都可用,可以正确运行 ROS 节点。然而,在从源代码编译 ROS 软件包时,有时需要排除已经包含在 ROS_PACKAGE_PATH、AMENT_PREFIX_PATH 中的软件包,以避免冲突发生。
这时候就可以使用 `-i, --ignore-packages-from-source, --ignore-src` 选项,将 `catkin` 或 `ament` 包从依赖项列表中排除,从而避免冲突问题。
--from-paths
指定一个目录,rosdepc需要到这个目录里寻找所有的功能包,这些功能包将称为rosdepc检测依赖项的对象。
--rosdistro:
在使用 `rosdep` 命令安装某个软件包时,可以通过 `--rosdistro` 选项来指定使用的 ROS 版本,从而确保安装适用于该版本的依赖项。这里指定的ros版本为humble。
package.xml
我们创建一个包的时候,这个包目录下会存在这个xml文件,这个文件的作用是什么?
文件中的依赖项通常称为“rosdep 密钥”。 这些依赖项由包的创建者手动填充到文件中,并且应该是它所需的任何非内置库和包的详尽列表。
rosdep工作原理
rosdep
将检查其路径中的文件或特定包,并找到存储在其中的 ROSDEP 密钥。 然后,根据中心索引交叉引用这些键,以在各种包管理器中查找适当的 ROS 包或软件库。 最后,一旦找到软件包,它们就会被安装并准备就绪!