wenbowen123 / catgrasp

[ICRA 2022] CaTGrasp: Learning Category-Level Task-Relevant Grasping in Clutter from Simulation
Apache License 2.0
298 stars 82 forks source link

程序运行方面的问题 #8

Closed PoistRXE closed 2 years ago

PoistRXE commented 2 years ago

wen博,你好。 我想请教一个关于程序运行相关的问题: 当我第一次运行python generate_grasp.py --class_name nut --debug 1时,程序不报错能够正常的运行,但是当我第二次运行的时候时候,出现下面的错误。不知道您知不知道这种情况该怎么处理?

(catgrasp) root@yqw:/home/catgrasp# python generate_grasp.py --class_name nut --debug 1
pybullet build time: Dec  1 2021 18:33:04
Gripper hand_depth: 0.018883
Gripper init_bite: 0.005
Gripper max_width: 0.048
Gripper hand_height: 0.020832
Gripper finger_width: 0.00586
Gripper hand_outer_diameter: 0.061398
Sdf3D self.dims_=[168 168 168], self.resolution_=0.000994335, self.origin_=[-0.0835218 -0.083531   0.0678743], center_sdf=-0.0309976, boundary_sdf=0.0808156
sdf_dir /home/catgrasp/dexnet/grasping/../../urdf/robotiq_hande/gripper_enclosed_air_tight.sdf
Sdf3D self.dims_=[168 168 168], self.resolution_=0.000994683, self.origin_=[-0.083551  -0.0835602  0.0678726], center_sdf=-0.0309976, boundary_sdf=0.080857
obj_dirs:
 /home/catgrasp/data/object_models/nut_LBNR12-screw.obj
/home/catgrasp/data/object_models/nut_carr_95505A631.obj
/home/catgrasp/data/object_models/nut_carr_95496A380_MIL_SPEC.obj
/home/catgrasp/data/object_models/nut_carr_95010A240_GRADE.obj
/home/catgrasp/data/object_models/nut_carr_92362A160_TYPE_18-8.obj
/home/catgrasp/data/object_models/nut_carr_91034A423_LOW-STRENGTH.obj
/home/catgrasp/data/object_models/nut_carr_90580A717_EXTRA-WD.obj
/home/catgrasp/data/object_models/nut_carr_90566A271_LOW-STRENGTH.obj
/home/catgrasp/data/object_models/nut_carr_90565A061_GRADE.obj
/home/catgrasp/data/object_models/nut_carr_90387A512_GLASS-FILLED.obj
/home/catgrasp/data/object_models/nut_carr_90215A433_NICKEL-PLATED.obj
/home/catgrasp/data/object_models/nut_carr_6407T760_HIGH-PRESSURE-VACUUM.obj
obj_dir /home/catgrasp/data/object_models/nut_LBNR12-screw.obj
estimated resolution=0.0018148186202093218
#sphere_pts=30
#sample_ids=157
begin center_ob_between_gripper...
Filtering #grasp_poses=113668
Traceback (most recent call last):
  File "generate_grasp.py", line 152, in <module>
    generate_grasp_one_object_complete_space(obj_dir)
  File "generate_grasp.py", line 97, in generate_grasp_one_object_complete_space
    grasps = ags.sample_grasps(background_pts=np.ones((1,3))*99999,points_for_sample=points_for_sample,normals_for_sample=normals_for_sample,num_grasps=np.inf,max_num_samples=np.inf,n_sphere_dir=30,approach_step=0.005,ee_in_grasp=np.eye(4),cam_in_world=np.eye(4),upper=np.ones((7))*999,lower=-np.ones((7))*999,open_gripper_collision_pts=np.ones((1,3))*999999,center_ob_between_gripper=True,filter_ik=False,filter_approach_dir_face_camera=False,adjust_collision_pose=False)
  File "/home/catgrasp/dexnet/grasping/grasp_sampler.py", line 216, in sample_grasps
    grasp_poses = my_cpp.filterGraspPose(grasp_poses,list(symmetry_tfs),nocs_pose,canonical_to_nocs,cam_in_world,ee_in_grasp,gripper_in_grasp,filter_approach_dir_face_camera,filter_ik,adjust_collision_pose,upper,lower,self.gripper.trimesh.vertices,self.gripper.trimesh.faces,self.gripper.trimesh_enclosed.vertices,self.gripper.trimesh_enclosed.faces,open_gripper_collision_pts,background_pts,resolution,verbose)
AttributeError: module 'my_cpp' has no attribute 'filterGraspPose'

在运行python run_grasp_simulation.py也出现了类似的问题,第一运行的时候也能正常运行,但是第二次运行就会出现错误。

Traceback (most recent call last):
  File "/opt/project/run_grasp_simulation.py", line 30, in <module>
    from predicter import *
  File "/opt/project/predicter.py", line 21, in <module>
    import PointGroup.data.dataset_seg as dataset_seg
  File "/opt/project/PointGroup/data/dataset_seg.py", line 19, in <module>
    from lib.pointgroup_ops.functions import pointgroup_ops
  File "/opt/project/PointGroup/data/../lib/pointgroup_ops/functions/pointgroup_ops.py", line 8, in <module>
    import PG_OP
ModuleNotFoundError: No module named 'PG_OP'
wenbowen123 commented 2 years ago

Hi, when you run the second time, did you start a new docker container or run inside the same as the first time?

PoistRXE commented 2 years ago

第二次运行的时候,是创建了一个新的docker容器去运行的

wenbowen123 commented 2 years ago

If you start a new docker container, then you have to re-run the build.sh. Or you can re-enter the same docker every time to avoid this.

PoistRXE commented 2 years ago

非常感谢wen博的指点,我已经解决问题了

xumingkun9806 commented 2 years ago

麻烦问一下怎么解决了,不能每次进都要再编译一次吧? 谢谢啦@PoistRXE

wenbowen123 commented 2 years ago

@xumingkun9806 please check the updated readme. Feel free to open a new issue for other questions.

PoistRXE commented 2 years ago

@xumingkun9806 需要学习一下docker 容器操作相关的基础命令,一看就会明白的

查看所有的容器 docker container ls -a 查看正在运行的容器 docker container ls 删除容器(可以把之前创建的容器删除掉) docker container rm catgrasp 重启容器 docker container restart catgrasp 启动容器 docker start catgrasp 进入容器 docker exec -it catgrasp /bin/bash 退出容器 exitor ctrl + d 关闭容器 docker stop catgrasp

xumingkun9806 commented 2 years ago

ok,thank you!