ROS1源码编译安装适用ubuntu22.04 ubuntu24.04(ROS-O)_笔记


编译 ROS-O #4



v4hn“一般”中开始了此对话

编辑




ROS1源码编译安装适用ubuntu22.04 ubuntu24.04(ROS-O)_Ubuntu_02



v4hn


on Jan 23, 2023


保持


有多个(部分)独立的努力来构建 ROS-O。这是我所知道的列表:

  • 针对从 Ubuntu 22.04 的源 ROS 软件包自动构建 deb 文件(稍后针对 Debian)ros-one-*
  • 在 Debian 现有的 ROS 组件软件包之上构建软件包ros-*
  • 从源代码生成所有与 ROS 相关的包(包括生成/工作区管理工具)
  • 在 anaconda 中构建 ROS 工作区以更新 python 依赖项

@jspricke @lucasw @lianghongzhuo

3




答复:3 条评论 · 11条回复



ROS1源码编译安装适用ubuntu22.04 ubuntu24.04(ROS-O)_分叉_03



卢卡斯


on Feb 19, 2023


在 Debian 现有的 ROS 组件软件包之上构建 ros-* 软件包

我主要在 https://kkgithub.com/lucasw/ros_from_src/tree/robot_state_publisher/ubuntu_2204 中切换到在 debian 包之上构建(我现在在 22.10 上)——看起来我应该看看有什么不同。我有大量的分叉,也许 ros-one-packages 可以使用它还没有的包(尽管来自分叉的许多 PR 已经上游,那些可能没有的 PR 应该进入 ros-o 以获得更好的可见性,但数量庞大令人生畏,分叉和修补并继续前进非常快)。ros-one-packages

1

ROS1源码编译安装适用ubuntu22.04 ubuntu24.04(ROS-O)_github_04


v4hnon Feb 20, 2023

保持作者



分叉和修补并继续前进非常快

然后分叉到 ros-o。鼓励;)这样做。
在多个这样的案例中,我发现其他人已经在那里独立完成了:-)

尽管许多来自分叉的 PR 已经上游,但那些可能不应该进入 ros-o 以获得更好的可见性,但数量之多令人生畏,

清理合并的 PR 分支并将私有存储库中需要的分支迁移到此组织将是一个非常好的主意。我听说你说这个数字很大。我仍然有各种未提交的补丁(可能与您类似的列表),我还没有推动这些补丁在 debian bookworm 上构建。

我个人的计划是让当前的 ros-o-builder 存储库集编译,包括 jsk_rviz_plugins,然后在 ros-debian 软件包上建立一个类似的系统,用于 debian 测试(这将涉及更多细节)。

👍1



ROS1源码编译安装适用ubuntu22.04 ubuntu24.04(ROS-O)_Ubuntu_05





编辑




卢卡斯on Mar 8, 2023


我个人的计划是编译当前的 ros-o-builder 存储库集,包括jsk_rviz_plugins

GitHub - lucasw/jsk_visualization at boost_placeholders(我忘了为其中任何一个做公关吗?)对你有用吗,还是有其他事情坏了?



ROS1源码编译安装适用ubuntu22.04 ubuntu24.04(ROS-O)_github_04







v4hnon Mar 9, 2023

保持作者


我不在那里使用你的分叉,但如果我这样做,我会测试并将它们迁移到 ros-o(除非你到那时已经这样做了)。

我忘了为其中任何一个做公关吗?

至少上游没有 PR,也没有你最近提交的内容......

为你工作还是有其他东西坏了?

jsk 堆栈的依赖项列表非常繁重,我还没有完成所有这些。
此外,在 20.04 上有一些exec_dependency或破损,需要清洁。
请随意查看报告的构建错误并指出修复程序。

👍1





编辑




ROS1源码编译安装适用ubuntu22.04 ubuntu24.04(ROS-O)_分叉_03



卢卡斯


on Mar 8, 2023



在这个针对 ubuntu 和 debian(测试/不稳定?)系统的存储库中维护一个合并的 repos.yaml 怎么样,它每晚构建,甚至可能用于 github 操作(如 https://kkgithub.com/jspricke/ros-deb-builder-action 或类似操作)中的每次推送。最好有一个单一的事实来源(定义为我们少数人之间达成的协议)来构建所有尚未通过 apt 获得的 ros-o 所需的所有包,PR 和提交将突出显示添加新支持的包(如 ros_numpy),或从外部分支(如我的一个)更改为“官方”ros-o 分支。

它可能像 https://kkgithub.com/lucasw/ros_from_src/blob/robot_state_publisher/ubuntu_2204/base_repos.yaml(可能减去我对 ros_comm 和 depth_image_proc 所做的一些更改,但如果有人感兴趣,可以将它们放入 ros-o)或 ros-one-packages/sources.repos at main · jspricke/ros-one-packages · GitHub

我认为必须有覆盖 yamls 来支持某些版本的 Ubuntu(对我来说,我可能会从 22.10 向前滚动到 23.04,但动作构建可以确保旧版本不会被破坏)。我对它不是很熟悉,但我认为 Ubuntu 缺少 debian-unstable 中的 debian 发布的软件包,因此需要一个包含所有这些的额外 repo yaml,甚至可能是每个 Ubuntu 版本覆盖的 repos.yaml。

现在,使用 repo 和分支名称 yaml 条目的快速和松散是可以的,但这可能会导致各种中断,因为任何触发的构建都可能引入新的中断更改,尤其是对于 ros-o 之外的不受控制的 repos,也许可能有一个稳定的变体,每个 repo 提交 shas,而不仅仅是分支。

如果构建需要数小时,则可能会有一组层,其中较低级别的包构建频率较低,但它们的构建工件可以拉入更常规的构建中。

1




6条回复




显示 1 条上一条回复



ROS1源码编译安装适用ubuntu22.04 ubuntu24.04(ROS-O)_Ubuntu_05







卢卡斯on Mar 8, 2023



有什么理由不把它移到 ros-o 中吗?








JSPRICKE公司on Mar 8, 2023

保持



Issues · v4hn/ros-o-builder · GitHub



ROS1源码编译安装适用ubuntu22.04 ubuntu24.04(ROS-O)_github_04







v4hnon Mar 9, 2023

保持作者



我仍然认为 ros-o-builder 是我的个人试错领域,但我现在已经走得很远了,并计划很快把它搬到这里。

除了构建错误和未解决的问题之外,仍然需要解决的一个重要方面是软件包的 Web 存储。github 对 git 中管理的文件大小强制执行 100MB 的硬性限制,我知道现在只有一个包违反了这个限制(eigenpy,moveit 的依赖项)。因此,如果没有技巧,我们还不能直接添加 MoveIt。著名的“社区”注册管理机构的限制也相当低,如果我们尝试使用它们,我希望我们很快就会遇到它们。
我联系了多个潜在的学术主持人,但目前还没有具体的解决方案。

👍1



ROS1源码编译安装适用ubuntu22.04 ubuntu24.04(ROS-O)_Ubuntu_05





编辑




卢卡斯on Mar 15, 2023



你看过 Cloudsmith | Universal, cloud-native software artifact management 还是 https://packagecloud.io/?听起来他们有这么多 GB 的免费开源选项,如果需要,也许有一个(简单的?)升级过程,正在阅读 rclone/rclone#2153 中关于它们的信息



ROS1源码编译安装适用ubuntu22.04 ubuntu24.04(ROS-O)_github_11







加文德霍恩on Nov 7, 2023



写:

我联系了多个潜在的学术主持人,但目前还没有具体的解决方案。

我确实问过,但遗憾的是没有兴趣举办这个。

我很高兴取得了更大的成功。







rhaschke


on Sep 11, 2023


保持



我仍然认为 ros-o-builder 是我的个人试错领域,但我现在已经走得很远了,并计划很快把它搬到这里。

感谢您的出色初始工作。在您的工作基础上,我进一步推动了基于 GHA 的 ros-builder:
GitHub - ubi-agni/ros-builder-action: Github action to build .deb packages from ROS sources

除了构建错误和未解决的问题之外,仍然需要解决的一个重要方面是软件包的 Web 存储。github 强制执行 100MB 的硬性限制,我知道有一个包违反了这个限制(eigenpy,moveit 的依赖项)。

我无法证实这一点。对我来说,只有 1.1M。我已经成功构建了一个包含 MoveIt 和 MTC 的 ROS1 发行版:
https://kkgithub.com/ubi-agni/ros-repo/tree/jammy-one。最大的.deb是(24M)。eigenpy.debmoveit-resources

我也在考虑在 github 之外托管 debian 存储库。我从我们的教职员工那里得到了一个网络服务器,需要在接下来的几天里设置它......

我有兴趣参与这个组织。作为第一步,我可以迁移到这里。
但是,我还想添加一些需要 ros-one 修复的 ROS 包。您对这一过程的政策是什么?ros-oros-builder-action

1




2条回复



ROS1源码编译安装适用ubuntu22.04 ubuntu24.04(ROS-O)_github_04





编辑




v4hnon Sep 11, 2023

保持作者



大进步!我看到您为 jammy 构建了 ros2 兼容包。

我无法证实这一点。

根据 ,特征 dbgsym 包就是这么大。我看到你没有部署这些包。
如果您提供对 debuginfod 的支持,我想这是一个选项,但对我来说根本没有调试符号有问题。

我从我们的教职员工那里得到了一个网络服务器,需要在接下来的几天里设置它......

我猜你在这方面处于有利地位。可悲的是,我没有从与我交谈过的另外两个人那里得到任何进一步的跟进。诚然,我也没有为了一个研究项目而进一步推动这一点。
非 github 部署位置将不胜感激!

我有兴趣参与 ros-o 组织。

我刚刚邀请你加入这个组织。

我还想添加一些需要 ros-one 修复的 ROS 包。您对这一过程的政策是什么?

如果您需要补丁来在更新的发行版上构建软件包,请将存储库分叉到 ros-o,理想情况下它只包含一个分支(目前它们大多被称为 ,但这并不重要)并将您的修复推送到那里。
如果可能的话,代码库应该保持向后兼容。
重要的是,还要创建一个拉取请求,要求存储库所有者合并修复程序,可能标记为 .
这是您绝对可以在任何需要的地方做的事情。obese-devel[ROS-O]

作为第一步,我的 ros-builder-action 可以迁移到这里。

我认为这应该是第二步。:)
我想这至少是 ros-o 的第四个构建设置,可能有其自身的优点/缺点。
我们绝对想要一个具有明确定义的部署策略的官方 github 构建器,即使只是为了验证当前状态。
你能也看看吗?至少在接下来的两周里,我会非常忙碌。



rhaschkeon Nov 6, 2023

保持



很抱歉还没有回复。我被其他任务分散了注意力......感谢您邀请我加入 ros-o 组织。
同时,我向 ros-o 软件包推送了几个更新。最重要的是,存储库服务器现在可用: https://ros.packages.techfak.net

我还进一步改进了我的 ros-build-action