@@ -511,9 +511,7 @@ def __init__(
511511 self .device = device
512512
513513 # Store all indices for batch operations
514- self ._all_indices = torch .arange (
515- len (entities ), dtype = torch .int32 , device = device
516- )
514+ self ._all_indices = torch .arange (len (entities ), dtype = torch .int32 ).tolist ()
517515
518516 if device .type == "cuda" :
519517 self ._world .update (0.001 )
@@ -799,6 +797,7 @@ def set_local_pose(
799797 # we should keep `pose_` life cycle to the end of the function.
800798 pose_ = torch .cat ((quat , xyz ), dim = - 1 )
801799 indices = self .body_data .gpu_indices [local_env_ids ]
800+ torch .cuda .synchronize (self .device )
802801 self ._ps .gpu_apply_root_data (
803802 data = pose_ ,
804803 gpu_indices = indices ,
@@ -978,6 +977,7 @@ def set_qpos(
978977 indices = self .body_data .gpu_indices [local_env_ids ]
979978 qpos_set = self .body_data ._qpos [local_env_ids ]
980979 qpos_set [:, local_joint_ids ] = qpos
980+ torch .cuda .synchronize (self .device )
981981 self ._ps .gpu_apply_joint_data (
982982 data = qpos_set ,
983983 gpu_indices = indices ,
@@ -1041,6 +1041,7 @@ def set_qvel(
10411041 self .body_data .qvel
10421042 qvel_set = self .body_data ._qvel [local_env_ids ]
10431043 qvel_set [:, joint_ids ] = qvel
1044+ torch .cuda .synchronize (self .device )
10441045 self ._ps .gpu_apply_joint_data (
10451046 data = qvel_set ,
10461047 gpu_indices = indices ,
@@ -1081,6 +1082,7 @@ def set_qf(
10811082 self .body_data .qf
10821083 qf_set = self .body_data ._qf [local_env_ids ]
10831084 qf_set [:, joint_ids ] = qf
1085+ torch .cuda .synchronize (self .device )
10841086 self ._ps .gpu_apply_joint_data (
10851087 data = qf_set ,
10861088 gpu_indices = indices ,
@@ -1161,11 +1163,13 @@ def clear_dynamics(self, env_ids: Sequence[int] | None = None) -> None:
11611163 (len (local_env_ids ), self .dof ), dtype = torch .float32 , device = self .device
11621164 )
11631165 indices = self .body_data .gpu_indices [local_env_ids ]
1166+ torch .cuda .synchronize (self .device )
11641167 self ._ps .gpu_apply_joint_data (
11651168 data = zeros ,
11661169 gpu_indices = indices ,
11671170 data_type = ArticulationGPUAPIWriteType .JOINT_VELOCITY ,
11681171 )
1172+ torch .cuda .synchronize (self .device )
11691173 self ._ps .gpu_apply_joint_data (
11701174 data = zeros ,
11711175 gpu_indices = indices ,
0 commit comments