3D抓取类应用中,可以通过创建空间Box,模拟料框,获取Box内对应的点云数据
1、创建空间Box
get_object_models_center (ObjectModel3D, Center)
gen_box_object_model_3d ([Center[0]+60,Center[1]+80,Center[2]+50,0,6,0,0], 250, 250, 50, ObjectModel3D1)
visualize_object_model_3d (WindowHandle, [ObjectModel3D,ObjectModel3D1], [], [], ['alpha','color_0','color_1','disp_pose'], [0.5,'gray','green','true'], ['123456'], [], [], PoseOut1)
2、计算原始点云和空间Box的距离,获取Box内的点云
distance_object_model_3d (ObjectModel3D, ObjectModel3D1, [], 0, 'signed_distances', 'true')
select_points_object_model_3d (ObjectModel3D, '&distance', -1000, 0, ObjectModel3DThresholded)
visualize_object_model_3d (WindowHandle, ObjectModel3DThresholded, [], [], [], [], [], [], [], PoseOut2)
distance_object_model_3d函数中,*'signed_distances' 该参数可用于计算三维对象模型ObjectModel3DFrom中的点到三维对象模型ObjectModel3DTo中的点、三角形或原语的带符号距离。'true'返回带符号的距离。
*到原语的距离:
*当计算到圆柱形、球形或盒形原语的有符号距离时
*原语内部的3D对象模型ObjectModel3DFrom的点获得负距离,而其他所有点都有正距离。
*当计算到平面的有符号距离时,平面以下的所有点的距离都为负,而其他所有点的距离都为正。