-
Notifications
You must be signed in to change notification settings - Fork 404
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Recompute NavMesh with STATIC RigidObjects #538
Conversation
…esh joining to include STATIC RigidObjects in navmesh recomputation. Started python test.
Codecov Report
@@ Coverage Diff @@
## master #538 +/- ##
==========================================
- Coverage 68.10% 63.80% -4.30%
==========================================
Files 72 162 +90
Lines 3474 7880 +4406
Branches 84 84
==========================================
+ Hits 2366 5028 +2662
- Misses 1108 2852 +1744
Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me.
Hope the other reviewers can also take a look.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One minor thing. Somehow I expected much more code to achieve this, positively surprised.
Once #542 is merged, the joining could get simplified quite a bit.
Co-Authored-By: Vladimír Vondruš <mosra@centrum.cz>
Looks like we will want to derive our I'll merge this for now as is and we can circle back with refactor PRs. |
I think it's flexible enough to fully replace current functionality. In case you're going to tackle this, feel free to ping me on Slack for design / usage questions :) |
* Added initialization template storage for RigidObject. * Added recomputeNavmesh with STATIC objects. * Added object template getters to Simulator.
…d sampling (facebookresearch#538) - Collapse PPO and DD-PPO trainers - Faster RNN code -- it is definitely faster and can make a noticeable impact during early training (~20% faster in some cases), but good luck reading it :-) - Rename NUM_PROCESSES to NUM_ENVIRONMENTS. The fact that the simulators are in different processes is an implementation detail. A backwards compatibility check has been added tho. - Support specifying training length both in terms of number of updates and number of frames - Specify the number of checkpoints as the number of checkpoints instead of a checkpoint interval - Introduce a TensorDict class for more cleanly interacting with dictionaries of tensors (potentially recursive). This also makes RolloutStorage about 100x cleaner. - Store RGB observations as their proper dtype in the rollout storage (this can save a lot of memory) - Some refactoring of PPOTrainer.train to be less of a script wrapped in a function - Double buffered sampling. This can improve performance when simulation time is equal or larger than policy inference time
Motivation and Context
Recast NavMesh is an efficient method for enforcing agent navigation constraints for static environments. However, it must be recomputed when the environment changes to remain valid. This feature enables the
Simulator::recomputeNavMesh
function to optionally includeMotionType::STATIC RigidObjects
as scene geometry.To support this change:
RigidObject
now stores its initialization template which can be queried fromPhysicsManager
. This allows object parameters (such as render mesh asset key) to be queried after a template may have been changed.RigidObject::visualSceneNode_
can be queried.Simulator
functions to get object template references.How Has This Been Tested
New C++ unit test.
Example with viewer.cpp modification:
![recompute_navmesh_sro](https://user-images.githubusercontent.com/1445143/77215038-41076680-6acf-11ea-8c54-2a610216476f.gif)
Types of changes
Checklist