原型项目的结构

Structure of proto projects

我有多个 Webots 项目,它们在每个 git 存储库中进行管理。

如何将项目导入 git 个子模块,以便将不同类型的机器人放入一个项目中?

项目结构如下:

robotA repo
  \controllers
  \protos
  \worlds
robotB repo
  \controllers
  \protos
  \worlds
project repo
  \controllers
    \robotA -- copied from robotA repo/controllers
    \robotB -- copied from robotB repo/controllers
  \protos
    \robotA -- copied from robotA repo/protos
    \robotB -- copied from robotB repo/protos
  \worlds

我正在手动导入 proto 文件和控制器,但它太容易出错并且不容易跟踪更改。

我正在尝试使用 git 子模块,但我认为 git 不支持仅导入子模块的子目录。

我可以在 Webots 项目找到原型的地方设置环境变量吗? 或者对管理多个机器人有什么建议吗?

不幸的是,git子模块确实不支持仅导入子模块的子目录。

也不可能设置环境变量来告诉 Webots 在哪里可以找到 PROTO 文件。

但这里有几种可能可以解决您的问题:

  1. 您可以编写一个脚本来复制PROTO文件和控制器,这样可以避免耗时且容易出错的手动复制。
  2. 您可以直接在 WEBOTS_HOME/projects/robots 中克隆您的 robotA 和 robotB 存储库。
  3. 您可以扩展 Webots 来添加这个可选的环境变量定义,PROTO 文件的列表在这里确定:https://github.com/omichel/webots/blob/master/src/webots/vrml/WbProtoList.cpp#L34
  4. 如果您在 Linux,您可以从 WEBOTS_HOME/projects/robots/robotA 添加软 link 到定义 robotA 原型的本地 repo 文件夹。