类料箱拆垛(高精度)
类料箱是指形似料箱的物体,例如料箱、圆桶、轮胎等等。类料箱拆垛是将托盘上的该类物体拆放到指定位置。与普通类料箱拆垛场景相比,类料箱拆垛(高精度)场景需要装备高精度相机(如结构光相机),且支持混拆。
场景要求
类料箱物体平铺,且紧密摆放
物体为同种已知型号的类料箱物体
该场景需要使用3D相机得到的彩色图进行2D模板匹配,同时使用3D相机得到的点云和物体CAD模型进行点云匹配。
流图配置
类料箱拆垛(高精度)场景的视觉标准流图如下。
创建工作空间,使用 类料箱拆垛 模板创建流图,具体方法请参见 模块结构。
配置 相机 模块,获取彩色图、深度图及点云。详细设置请参考 连接相机。
配置 加载标定信息 模块,加载env文件中的标定信息。详细设置请参考 标定。
配置 变换点云坐标系 和 去除料筐外点云 模块,将点云从相机坐标系转换到料筐坐标系,并去除料筐以外的点云。在进行点云切割时,需要测量料筐的实际尺寸,并输入Max,如下图所示。
配置 计算最高层高度 模块,根据层厚对点云进行分层,使用步骤4得出的点云计算出最高层点云的高度。如有需要,可通过 输出结果 模块查看计算结果。
配置 生成高度图 模块,使用步骤5得到的点云,生成可视化高度彩色图和高度图点云。
将步骤6得到的点云输入 拟合平面 模块,通过拟合计算得到平面向量。
将步骤6得到的彩色图输入 2D形状匹配 和 生成图像掩模 模块,得到新的彩色图像和2D primitive计算结果。
将步骤8得到的彩色图和2D primitive计算结果,以及步骤7得到的平面向量,输入到 投影2D位姿到平面 模块,计算得到3D primitive和彩色图像。若有需要,可使用 可视化图像 模块查看处理后的彩色图。
将步骤9得到的3D primitive计算结果输入 加载点云 模块,生成点云。
将步骤6得到的点云输入 根据2D检测结果提取点云 模块,再结合步骤8生成的2D primitive图像掩模,将输入点云提取成和物体一一对应的点云数组。
将步骤11得到的点云(作为场景点云)、步骤9得到的3D primitive计算结果、步骤10得到的点云(作为模型点云)输入 3D ICP匹配 ,模块会将模型点云对齐到场景点云,并计算得到3D primitive和可视化点云。该点云由 发布点云 模块发布。
将步骤12得到的3D primitive计算结果,通过 变换物体位姿3D 模块,从料筐坐标系转换到世界坐标系,并通过 输出结果 模块查看最终结果。