【问题标题】:Yocto SDK ROS1 melodic meta-ros buildYocto SDK ROS1旋律元ROS构建
【发布时间】:2021-02-17 12:01:03
【问题描述】:

我们开始将 ROS 层集成到公司的 Yocto 构建系统中。由于我们的流程是为我们的应用程序开发人员提供一个 SDK,该 SDK 可以交叉编译适合我们支持的目标板的应用程序,因此我们面临着将 catkin 工具链集成到 Yocto SDK 的问题。我们在 meta-ros 分支 dunfell 中使用 ROS1 旋律版本。将 popultate_sdk 用于我们的目标,它根本没有集成 catkin 工具链。我们用扩展名 BBCLASSEXTEND=“native nativesdk” 附加 catkin 配方,它将工具链构建到 SDK 中,但是我们面临的问题是,如果我们按照 SDK 的环境脚本中的描述获取 catkin 工具链的路径,则无法正常工作。约克托手册。但无论如何,我不确定这是否是将 catkin 工具链集成到 SDK 的正确方法。 所以基本上: 是否有将 catkin 工具链集成到 Yocto SDK 的文档/手册?有什么解决办法吗?有人试过并得到了积极的结果吗?

【问题讨论】:

  • 我也遇到了同样的问题,你找到解决办法了吗?

标签: sdk yocto ros


【解决方案1】:

您尝试使用 catkin_tools 构建哪个配方?

添加时

BBCLASSEXTEND = "native nativesdk"

这会导致构建两个不同的配方,任何其他配方都可以依赖它们。

包含 BBCLASSEXTEND 意味着 catkin-%.bb 配方随后会创建 nativesdk-catkin 和 catkin-native 目标。这些目标在其他配方中使用:

DEPENDS = "catkin-native"

就像所有依赖的食谱一样,它们将显示在 ${RECIPE_SYSROOT_NATIVE} 或 ${RECIPE_SYSROOT} 中

【讨论】:

  • 我自己用的是柳絮配方。我刚刚在我的自定义层中为 meta-ros 中的主配方创建了一个 bbappend 文件,该文件位于 meta-ros/meta-ros1-melodic/generated-recipes/catkin/,因为我正在使用 ROS1 melodic 作为我们当前的项目。 Yocto SDK 已在 sysroots/ 文件夹中安装了 ROS1 旋律中间件。我可以看到。但我无法使用 SDK 构建 ROS 应用程序,因为它不完整。我只能在目标硬件本身中构建它。这不是在 Yocto PRoject 中执行此操作的规范方法,因为目标平台不打算用作构建系统
  • 对不起,我忘了回复一下。是否有任何更新,还是仍然卡住?
  • 不,我们在目标硬件本身中获取 ROS 工具链以本地构建 ROS 应用程序。我们还没有弄清楚如何将 Yocto SDK 与 ROS 中间件正确使用,因为环境中缺少一些 PATH 变量。我们得到了一些错误。谷歌搜索答案,大多数响应是在目标硬件上本地构建它,但我认为这不是要走的路,因为我们不想将 SDK 分发给应用程序人员而不向他们提供硬件,因为硬件在这里是有限的资源.
  • 是的,这不是 yocto 的做法。一些存储库不能很好地支持交叉编译,硬编码的路径和环境变量就是一个很大的标志。您可以分享您从中提取的确切存储库吗?
  • github.com/ros/meta-ros -> 提交 5f8eaceece856f892602753d79e9f19920c4d077
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-05
  • 2021-01-12
  • 1970-01-01
  • 2023-01-12
  • 2021-05-09
  • 1970-01-01
相关资源
最近更新 更多