Skip to content

Commit 0012bc2

Browse files
committed
[fix] fix pose viz bug when isaacgym set_actor_scale function is calling for several times
1 parent 72408d7 commit 0012bc2

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

sim_web_visualizer/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
from .base_visualizer_client import MeshCatVisualizerBase
88

9-
__version__ = "0.4.0"
9+
__version__ = "0.5.0"
1010

1111
try:
1212
import sapien.core as sapien

sim_web_visualizer/isaac_visualizer_client.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ def __init__(self, port: Optional[int] = None, host="localhost", keep_default_vi
7272
# Cache
7373
self.asset_resource_map: Dict[int, AssetResource] = {}
7474
self.asset_geom_map = {}
75+
self.actor_asset_map = {}
7576
self.env_map = {}
7677
self.actor_rigid_body_name_map: Dict[int, List[str]] = {}
7778

@@ -206,6 +207,8 @@ def create_actor(env: gymapi.Env, asset: gymapi.Asset, pose: gymapi.Transform, n
206207
geom_path = f"{robot_tree_path}/{rigid_body_name}"
207208
self.viz[geom_path].set_object(geom)
208209

210+
self.actor_asset_map[f"{num_env}/{num_actor}"] = id(asset)
211+
209212
return actor
210213

211214
self.new_gym.add_method("create_actor", create_actor)
@@ -279,8 +282,15 @@ def set_actor_scale(arg0: gymapi.Env, actor_id: int, scale: float):
279282
if arg0 in self.env_map:
280283
env_num = self.env_map[arg0]
281284
actor_path = f"/Sim/env:{env_num}/actor:{actor_id}"
282-
scaling_transform = np.eye(4) * scale
283-
self.viz[actor_path].set_transform(scaling_transform)
285+
asset_id = self.actor_asset_map[f"{env_num}/{actor_id}"]
286+
resource = self.asset_resource_map[asset_id]
287+
288+
for path, data in resource.visual_data.items():
289+
pose = resource.pose_data[path]
290+
scaling_pose = pose.copy()
291+
scaling_pose[:3] *= scale
292+
print(scaling_pose)
293+
self.viz[f"/{actor_path}/{path}"].set_transform(scaling_pose)
284294

285295
self.new_gym.add_method("set_rigid_body_color", set_rigid_body_color)
286296
self.new_gym.add_method("set_actor_scale", set_actor_scale)

0 commit comments

Comments
 (0)