#ros #bloom #robots #package #catkin

app catkin-bloom

使用 bloom 构建整个 catkin 工作空间

2 个版本

0.0.2 2022年6月21日
0.0.1 2022年6月21日

#2124 in 开发工具

MIT 许可证

22KB
452

catkin-bloom

将整个 catkin 工作空间导出为原生包

catkin-bloom 是一个工具程序,旨在帮助本地构建 ROS 包,而无需部署复杂的 ROS 构建农场。

catkin-bloom 主要旨在支持在 ROS docker 镜像下运行,因此目前支持 Debian 打包。此外,这是一个非常早期的版本,仅支持 Ubuntu bionic 上的 ROS melodic。正在开发更多灵活性。

通过 Docker 运行

您可以使用以下命令构建 Docker 镜像

docker build -t catkin-bloom .

然后,使用适当的挂载运行镜像

docker run -v "${PWD}/src":/workspace -v "${PWD}/repo":/repo -it --rm catkin-bloom --repo-path /repo -j8 /workspace

os-nameos-versionros-distro 参数将根据 Docker 镜像环境自动设置。

如果没有提供参数,则 repo-path 默认为 /repojobs 默认为 8,工作空间路径默认为 /workspace

本地运行

首先,安装 Rust 工具链,并通过它安装 catkin-bloom

cargo install --path .

或者,当这个包在 crates.io 上时

cargo install catkin-bloom

然后,安装所需依赖项

apt install dh-make python-bloom fakeroot

然后,在工作空间源上运行程序

catkin-bloom -r /tmp/bloom src

生成的 debs 将位于 /tmp/bloom 目录下。将自动将仓库添加到 /etc/apt/sources.list.d/etc/ros/rosdep/sources.list.d

此外,此程序将安装所有这些包,为了清理,请运行以下命令

apt remove $(cd /tmp/bloom; for p in *.deb; do echo $p | cut -f1 -d"_"; done)

说明

catkin-bloom 的工作方式是遍历整个工作空间,解析依赖关系,并按方式对包进行排序,以便在依赖项之前构建所有依赖关系。假设不存在循环(因为它们是非法的)。然后,将包按层级排序,其中同一层级的所有包完全独立(并且可能只依赖于较低层级)。请参见下面的图

    T 1    |    T 2    |    T 3    |    T 4
-----------+-----------+-----------+-----------

   +---+       +---+                   +---+
   | A |------>| D |---------------+-->| H |
   +---+       +---+               |   +---+
     |                             |
     +-----+-----------------------+
           |                       |
   +---+   |   +---+       +---+   |
   | B |---+-->| E |------>| F |   |
   +---+       +---+       +---+   |
     |           |                 |
     +-----------+-----+           |
                       |           |
   +---+               |   +---+   |
   | C |---------------+-->| G |---+
   +---+                   +---+

包 A、B、C 可以并发构建,从而加快过程。同样,D、E 和 F、G 分别。

依赖关系

~9–20MB
~278K SLoC