phobos icon indicating copy to clipboard operation
phobos copied to clipboard

Problems working with models and Git

Open kavonszadkowski opened this issue 8 years ago • 3 comments

There is no guideline and no clear strategy on how to use Git or similar SCM tools with Phobos and the models created with it. One of the fundamental problems is that since .blend files are binaries, merges between branches of a model are impossible. Thus changes on the model in blender should only be made in the master branch, while it should be possible to export different configurations of a model to other branches. A typical example would be a simplified collision model or a model with a reduced set of joints for specific simulation settings.

Phobos should provide a way to manage these branches, or at least warn the user that a different branch than the master branch is checked out while working on the model.

kavonszadkowski avatar Aug 30 '17 14:08 kavonszadkowski

We already started implementing git utils for Phobos. When exporting meshes etc. we should change the branch depending on a user defined setting. We can not use the model version for this, as we can have multiple scenes with different models in a single file.

Should we distinguish branches using different scenes in Blender?

Amudtogal avatar Jul 04 '18 15:07 Amudtogal

My current workflow w.r.t to this topic ( as of now ):

  • Checkout merge request
  • Export robot
  • Use python to merge the files for data like inertials, joint limits, motor parameter etc.
  • Add frames / links manual, if the number is small

An automatic approach could be done with URDF / SDF re-import, but SMURF is too generic :).

AlCap23 avatar Jan 28 '19 10:01 AlCap23

We plan to get rid of the blend file to store model information. Meshes can saved to a submodule/git-lfs/both to keep checkout of binaries quick and the repos small.

hwiedPro avatar Jun 16 '22 08:06 hwiedPro

Solved with a9aeadf This script helps configuring git for simulation/control/models by making use of git-lfs. git-lfs and .gitignore are configured automatically by this script.

hwiedPro avatar Mar 07 '23 10:03 hwiedPro