pb.createCollisionShape failure

Official Python bindings with a focus on reinforcement learning and robotics.
Post Reply
autoalpha
Posts: 4
Joined: Wed Sep 12, 2018 10:47 pm

pb.createCollisionShape failure

Post by autoalpha »

Hi,

I am experiencing an error regarding to pb.createCollisionShape. I am using this function to load an .obj file to create a collision_shape. Here's a short version of my code:

Code: Select all

client_id = pb.connect(pb.DIRECT)
...
for _ in range(1250):
    pb.resetSimulation(cliend_id)
    ...
    for _ in range(number_of_objects):
        collision_shape_id = pb.createCollisionShape(shapeType=pb.GEOM_MESH, meshScale=np.full(3, 1.0), fileName=path_to_obj)
        visual_shape_id = pb.createVisualShape(shapeType=pb.GEOM_MESH, meshScale=np.full(3, 1.0), fileName=path_to_obj)
        bullet_body_id = pb.createMultiBody(
                            basePosition=position, baseOrientation=quat, 
                            baseCollisionShapeIndex=collision_shape_id, baseVisualShapeIndex=visual_shape_id,
                            )
    ...
    img_arr = pb.getCameraImage(
                W, H, pb_V, pb_P, 
                shadow=1, lightDirection=light_src, renderer=pb.ER_TINY_RENDERER,
                )
 
I am simultaneously running this code 80 times with different random seeds in a high-performance computer (96 cpus, 384G RAM). But all 80 processes hit an identical error at certain point of time, after generating about 40K images (out of 100K). Each process is in a different iteration, but the total number of images generated from all processes is almost same; 40K images. (I tested multiple times, and it's always the case). The error seems to indicate that it cannot find the obj file. Here's the error message:

Code: Select all

   b3Warning[examples/SharedMemory/../Importers/ImportURDFDemo/UrdfFindMeshFile.h,108]
   cannot find '<PATH_TO_OBJ_FILE>' in any directory in urdf path
,where <PATH_TO_OBJ_FILE> is an absolute path to an .obj file.
It is always the same .obj file being loaded in all iterations in all 80 processes. I checked UrdfFindMeshFile.h, but couldn't figure out why this suddenly fails in the middle of iterations. Can somebody help me on this?
Post Reply