When updating the environment obstacles using assets from Isaac Sim, there are warnings indicating that the number of mesh faces does not match the expected face vertex counts.
Warning Log
2024-10-24 02:48:53 [65,584ms] [Warning] [curobo] Mesh faces 1322.6666666666667 are not matching faceVertexCounts 1024
2024-10-24 02:48:53 [65,586ms] [Warning] [curobo] Mesh faces 2311.3333333333335 are not matching faceVertexCounts 1734
2024-10-24 02:48:53 [65,588ms] [Warning] [curobo] Mesh faces 1830.0 are not matching faceVertexCounts 1374
2024-10-24 02:48:53 [65,589ms] [Warning] [curobo] Mesh faces 293.3333333333333 are not matching faceVertexCounts 220
2024-10-24 02:48:53 [65,783ms] [Warning] [curobo] Mesh faces 201514.66666666666 are not matching faceVertexCounts 151136
2024-10-24 02:48:53 [65,799ms] [Warning] [curobo] Mesh faces 1702.6666666666667 are not matching faceVertexCounts 1276
2024-10-24 02:48:53 [65,801ms] [Warning] [curobo] Mesh faces 1702.6666666666667 are not matching faceVertexCounts 1276
2024-10-24 02:48:53 [65,802ms] [Warning] [curobo] Creating new Mesh cache: 52
Method Used
The issue arises when using the following method to update the obstacle world from Isaac Sim:
def update_obstacle_from_isaac_sim(
self, world, robot_prim_path: str, ignore_prim_paths: List[str] = None
) -> WorldConfig:
"""Update obstacle world from Isaac Sim.
Args:
world (World): The world object from Isaac Sim.
robot_prim_path (str): The root prim path of the robot.
ignore_prim_paths (List[str]): The prim paths of the obstacles to ignore.
Returns:
WorldConfig: The updated obstacle world.
"""
# Init curobo usd helper
if self.curobo_usd_helper is None:
self.curobo_usd_helper = UsdHelper()
if self.curobo_usd_helper.stage is None:
self.curobo_usd_helper.load_stage(world.stage)
all_items = world.stage.Traverse()
for item in all_items:
for key_to_ignore in ignore_prim_paths:
if key_to_ignore in str(item.GetPath()):
self.logger.log_debug(f"Ignoring: {str(item.GetPath())}")
# Get obstacles (mesh, cube,...) from Isaac Sim
obstacles = self.curobo_usd_helper.get_obstacles_from_stage(
reference_prim_path=robot_prim_path,
ignore_substring=ignore_prim_paths,
).get_collision_check_world()
# Update curobo obstacle world
self.logger.log_debug("Updating obstacles from Isaac Sim...")
if self.ik_solver is not None:
self.ik_solver.update_world(obstacles)
if self.motion_gen is not None:
self.motion_gen.update_world(obstacles)
self.logger.log_debug(f"Updated {len(obstacles.objects)} obstacles.")
self.logger.log_debug(f"mesh: {len(obstacles.mesh)}")
return obstacles
Description
When updating the environment obstacles using assets from Isaac Sim, there are warnings indicating that the number of mesh faces does not match the expected face vertex counts.
Warning Log
Method Used
The issue arises when using the following method to update the obstacle world from Isaac Sim: