This PR refactors the AO creation process so that configuration-based modifications to an AO do not end up applying or being attached in any way with the URDF-built Model, but rather are applied/attached to the resultant BulletArticulatedObject.
This is required because multiple BulletArticulatedObjects can have their own attributes/settings/user_defined configurations despite having been built by the same URDF/Model. With this PR, the Model will remain a static reflection of the data specified in the source URDF, while the BulletArticulatedObject built from this model will manage its own customizations of the original model as specified in the ArticulatedObjectAttributes.
Motivation and Context
This PR refactors the AO creation process so that configuration-based modifications to an AO do not end up applying or being attached in any way with the URDF-built Model, but rather are applied/attached to the resultant BulletArticulatedObject.
This is required because multiple BulletArticulatedObjects can have their own attributes/settings/user_defined configurations despite having been built by the same URDF/Model. With this PR, the Model will remain a static reflection of the data specified in the source URDF, while the BulletArticulatedObject built from this model will manage its own customizations of the original model as specified in the ArticulatedObjectAttributes.
This PR also addresses the bug referenced in this Lab issue.
Note : This PR as it stands still retains geometric and mass scaling in the Model.
How Has This Been Tested
Currently C++ tests pass
Types of changes
Checklist