Problems working with models and Git
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.
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?
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 :).
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.
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.