-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
生成场景碰撞标签 #42
Comments
你好,是的,生成碰撞标签是很耗时的一项工作,我们在服务器上跑了很久。你使用的话应该直接用我们release的collision标签即可。 |
感谢您的答复! |
我们当时为了加速开了CPU多线程处理 |
嗯,我尝试使用多进程处理,现在速度基本能满足需求。 |
这是因为采用的场景点云不同,我们直接利用物体点云模型和6D pose重建了场景,而不是把不同视角的点云合在一起,6D pose的标注会影响最后的结果;相机拍到的桌子只是一个面,实际上应该是有厚度的,我们在做碰撞标注的时候也把桌面的等效模型加了进去;在重建场景时没有把机械臂的模型放进去,因而此部分碰撞无法得到。 |
非常感谢您的解答!原来场景级的碰撞标注是这么做的,我再试试这样做的结果。 |
@chenxi-wang ,您好,按照您给的方法测试了一下,比之前结果好了不少。但有个疑问是您的碰撞检测是用iou的方式吗?还是直接看有没有任何点云发生碰撞(如collision_detect())? |
@chenxi-wang ,另外,还想请教一下生成grasp_label时确定抓取宽度的问题。 |
用的是后者的规则 |
大致思路是一样的,有的物体表面变化较大,存在多个值,我们从小到大采样,取最小宽度。 |
|
拿杯子举例,如果你从正上方杯壁上一个点来看,可以直接夹住杯壁抓取,也可以加大宽度到把整个杯子握住,如果物体表面起伏变化快,很容易出现多值的情况 |
请问如果要添加新的物体的话,要如何生成scenes中的annotations,label,meta,cam0_wrt_table.npy,camera_poses.npy等文件呢,是用nerf之类的方法重建生成吗? |
首先感谢你们的杰出工作!
我尝试用数据集里的grasp_label及场景0000来生成场景的collision_label。原本我的想法是直接将整个场景所有物体的点级抓取构建为一个graspGroup,然后调用ModelFreeCollisionDetector函数得到colllision_mask,即为collision_labels。但是当我只将一个物体(id为0)的所有抓取构建为graspGroup,然后调用ModelFreeCollisionDetector函数时,遇到了内存不够的情况:
collision_detector.py", line 75, in detect targets = self.scene_points[np.newaxis,:,:] - T[:,np.newaxis,:] numpy.core._exceptions.MemoryError: Unable to allocate 19.5 TiB for an array with shape (49809600, 17901, 3) and data type float64
然后我将grasp_label里collision为True的抓取排除,都还剩下4332493个抓取,检测时还是会报超内存。这时我只能将这个graspGroup切片,每次50000左右,然后分别检测碰撞,这样会很慢,检测完一个物体都需要7,8个小时。
你们在生成场景的collision_label时,会碰到这样的问题吗?你们是怎么处理的呢?
另外,你们在生成场景的collision_label时ModelFreeCollisionDetector函数里场景点云的voxel_size设为多少呢?approach_dist,collision_thresh, empty_thresh,finger_width,finger_length等这些参数设为多少呢?
The text was updated successfully, but these errors were encountered: