Replies: 1 comment 1 reply
-
Hi @btx0424 , Thank you for bringing up this discussion! We considered both options (when we were rewriting the core pieces) and decided to go with (2) since it simplified the asset spawning and data indexing. While I understand the motivation of (1), the main question is how much performance gain we will get with that. Making everything "batched" within the environment may require resolving a lot of indexing, which I feel could be counter-productive. What has your experience been? |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi team, you have been doing absolutely wonderful work in developing this framework. This post is to raise some questions and thoughts regarding spawning and managing multiple articulations in an environment (with the
devel
branch).Expected practice to spawn an articulation multiple times for each environment
Although it is possible to just use different
Articulation
instances, merging homogeneous ones could improve the performance. Since it is currently impossible to do this by specifying prim paths like"/World/envs/env_*/Robot-[1,2]"
, I wonder what the expected best practice is now and in the future.For example:
Option 1: allow users to pass a sequence of prim paths
pros: straightforward, concise in code
cons: more complicated logic for view creation
Option 2: create articulations separately and create a view afterward
pros: does not need further modification
cons: need a flag to avoid repeated view creation
Managing multiple articulations
Currently, the articulations are indexed only by
env_ids
, which effectively assumes there is only one instance of this articulation in each environment. This poses some inconvenience for implementing tasks with multiple homogeneous agents. A possible way to expand this behavior is to introduce shapes to the views. For example, an articulation view corresponds to"/World/envs/env_*/Robot-[1,2]"
has a shape of[num_envs, 2]
. Then the APIs look like:where the indices are resolved internally.
This of course involves a lot of modifications. I am humbly posting this both as a user and a prospective contributor. WHYT?
Beta Was this translation helpful? Give feedback.
All reactions