parallel update for get_obstacles_from_stage().get_collision_check_world() #107
-
So far, for a multi-envs simulation, I think one of the largest slow down is non-parallel(sequential) update of get_collision_check_world(). something I tried but didn't work is
Parallel implementation attempt:
the implementation fails because at line I wonder if theres any parallel implementation for update WorldConfig_list, if theres not, could you plan in future release? I'd also love to help writing such code if help is needed(though I need some advice)! |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
The slowdown is because of cuRobo's current use of USD stage parsing to read simulation state. This can be slow when querying for many environments. For every environment, we access the robot in the USD stage and query poses of objects w.r.t. robot. We want to move to USDRT (https://docs.omniverse.nvidia.com/kit/docs/usdrt/latest/docs/usd_fabric_usdrt.html) which can be significantly faster for parsing simulation state. However, we haven't yet investigated it thoroughly. Ideally, we would create a class similar to USDHelper in https://github.com/NVlabs/curobo/blob/main/src/curobo/util/usd_helper.py that can parse a USD stage much faster than the current implementation. |
Beta Was this translation helpful? Give feedback.
The slowdown is because of cuRobo's current use of USD stage parsing to read simulation state. This can be slow when querying for many environments. For every environment, we access the robot in the USD stage and query poses of objects w.r.t. robot.
We want to move to USDRT (https://docs.omniverse.nvidia.com/kit/docs/usdrt/latest/docs/usd_fabric_usdrt.html) which can be significantly faster for parsing simulation state. However, we haven't yet investigated it thoroughly.
Ideally, we would create a class similar to USDHelper in https://github.com/NVlabs/curobo/blob/main/src/curobo/util/usd_helper.py that can parse a USD stage much faster than the current implementation.