[FEATURE] Heterogeneous Simulation
Description
This PR enables the rigid solver to simulate different objects in different environments. In other words, an entity can have different morphs in different environments.
Currently, it only supports primitive and mesh morphs, and only the Pyrender rasterizer supports this feature. We plan to support variable articulation and additional rendering backends in the future.
Try
python examples/rigid/heterogeneous_simulation.py -v
https://github.com/user-attachments/assets/f862d51e-b3f7-4f5b-8b2f-9e900542c8be
Related Issue
Resolves Genesis-Embodied-AI/Genesis#1449 Resolves Genesis-Embodied-AI/Genesis/issues/333
Motivation and Context
How Has This Been / Can This Be Tested?
Screenshots (if appropriate):
Checklist:
- [x] I read the CONTRIBUTING document.
- [x] I followed the
Submitting Code Changessection of CONTRIBUTING document. - [x] I tagged the title correctly (including BUG FIX/FEATURE/MISC/BREAKING)
- [x] I updated the documentation accordingly or no change is needed.
- [x] I tested my changes and added instructions on how to test it for reviewers.
- [ ] I have added tests to cover my changes.
- [ ] All new and existing tests passed.
@YilingQiao Few questions regarding this new feature:
- Is the value obtained by
grasping_object.get_mass()form the first element in batch? grasping_object.get_AABB()seems to return the same value regardless of the actual geom in batch. Is this expected?
@Kashu7100 get_AABB() and ge_mass() are fixed.
@YilingQiao will this be merged sometime sooner?
It will be merged after @SonSang differentiation PRs
Ok thanks!!
Hello everyone. Can I ask what is the status of this PR and if it is going to be merged?
@stergiosba We will merge this PR after #1808 (which has some code structure change will impact the implementation of this feature) is merged. Hopefully in ~2 weeks.
hello, since #1808 has been merged, I was just wondering if we can expect an eta on this PR? thanks!
This look super exciting and useful! Just wondering how things are progressing.