原型项目的结构

时间:2019-02-19 19:03:03

标签: webots

我有多个在每个git存储库中管理的Webots项目。

如何将项目导入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

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

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

我可以在Webots项目中找到原型的环境变量吗? 或有关管理多个机器人的任何建议?

1 个答案:

答案 0 :(得分:3)

不幸的是,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到定义了robotA原型的本地存储库文件夹中添加软链接。