托盘识别相机用户手册

1. 应用介绍

在自动化工业、仓储智能、物流等行业中,托盘是常见的运输和存储单元,需要被有效地识别,以便AGV无人叉车正确又取。我司3D ToF相机对托盘进行采样,通过集成的深度学习算法,可精准识别托盘种类、数量、材质、尺寸等,同步输出托盘偏转角度、偏移距离等位姿、序号结果,保障AGV无人叉车准确叉取和存放货物。 ToF相机内置6TOPS算力,集成托盘识别算法,实现前端智能,极大的提升了客户的系统成本和部署效率。

2. 产品介绍

产品型号:LWP-D322-I/TP

产品接线:请参考DM系列3D相机用户手册

识别能力:标准欧标川字、田字的木制、塑料托盘;非标的4孔3孔托盘等

方案优势:

高精度识别:支持对多种颜色(蓝、黄、黑等)、材质(塑料、木质、金属等)以及形状(川字、田字等)托盘的精准识别。

多场景兼容:支持单托盘装卸车场景、多托盘堆叠场景等,广泛适用于横梁货架仓库、地堆仓库、高位货架、产线配送等作业环节。

高防护等级:相机具备IP67防水防尘等级,有效抵御粉尘和液体的侵蚀,适用于各种恶劣的工业环境。

抗环境光干扰:相机支持半室外使用,支持环境光过滤,托盘识别稳定且准确。

3D图像优化:相机内置HDR、降噪滤波算法、坏点、畸变矫正算法,有效提升识别效果和准确性。

多种SDK兼容:支持Windows/Linux等多种操作系统环境下的SDK适配,方便用户在不同平台上进行集成和应用。

3. 安装建议

3.1 安装位置、高度、工作距离建议

相机安装在叉臂中间一定高度处(建议高度为30cm-50cm),相机应尽量保持在叉车中间位置,并尽量保持和地面垂直。托盘离相机的距离建议控制在1.2-2.5m之间,视野范围内避免货叉遮挡及近处高反物体的干扰。托盘与相机之间的夹角建议控制在±30°以内。

3.2 识别结果坐标及角度说明

识别结果包含:X(mm),Y(mm),Z(mm),θ(°),最高为5帧。

相机空间坐标系(右手原则),X轴代表水平方向,向右为正;Y轴代表垂直方向,向下为正;Z轴代表深度方向,对应物体的实际空间距离。

识别位姿角度:

IMU值: IMU一共输出6轴信息,分别为XYZACC(加速度)和XYZGYRO(角加速度)。可以在上位机上查看,或者通过SDK获取。

IMU的输出帧率为120Hz,其中加速度单位为:g*10^-3,g为一个重力加速度;角速度单位为:mdps,毫度每秒。

4. 托盘识别参数说明

4.1 部署步骤

部署一个托盘识别项目,一般需要如下步骤:

1)参数验证:使用上位机配置托盘识别参数,将稳定识别的参数下发至下位机

2)参数切换:如需要在线切换识别参数,请使用SDK进行参数配置操作

3)获取结果:采用SDK中的识别结果获取接口,获取托盘姿态结果

4.2 上位机参数配置说明

以下为新增一个托盘时,上位机参数配置教程:

1)连接相机

操作方式请参考DM系列3D相机用户手册 ToF相机的默认IP地址为192.168.1.200,需要将电脑的IP地址改为同网段192.168.1.XXX

2)设置相机成像参数

目的是在识别前,将相机的IR图和深度图调整至一个合适的状态。

3)测量新增托盘的如下参数

pL—托盘长度

pT—托盘上表面厚度

pS—托盘脚宽度

pH—托盘高度 Type—托盘类型(1-田丨2-川)

4)算法参数配置

点击“应用算法”按钮,打开算法配置界面。

  • 托盘识别开关:开启/关闭托盘识别算法
  • 集合名:默认plugin1,包含一个托盘的参数信息,用户可以自己修改此名字
  • threadCount:线程数
  • model:识别模型
  • confidence:识别置信度
  • isNormal:内部使用,用户禁止修改
  • 托盘种类:川/田
  • pL、pS、pH、pT:托盘尺寸参数
  • 截断高度:识别框选取的点云在相对高度70mm以下的部分不用作算法判断。(注:该参数是为了提高不同场景算法选取点云的自由度,因托盘高度不同或相机相对角度倾斜。而使地面点云乱入等原因,不合适的取值会导致噪点进入算法从而影响识别。一般按默认值70来,若有识别不稳定或失败的情况,可以选取略低于pH-pT的值进行尝试)
  • 重合度:设置模板匹配重合度阈值为0.8,算法重合度计算结果在0.8以下的不作为结果输出,认为与识别模板相差过大。值越大意味判定越严格。默认值为0.8。
  • 相似度:设置模板匹配相似度阈值为0.65,算法匹配度计算结果在0.65以下的不作为结果输出,认为与识别模板相差过大。值越大意味判定越严格。默认值为0.65。

5. SDK返回值说明

函数:LWReturnCode LWSetPalletIdentifyType(LWDeviceHandle handle, const char* type)

作用:设置集合名(需要识别的托盘类型名),底层算法会相应参数初始化

SDK返回码对应算法状态
LWReturnCode:0 成功切换集合名并初始化成功
LWReturnCode:5 参数设置超范围在下位机未找到json文件 在json文件中未找到指定的集合名(当前需要识别的托盘类型名) 未在下位机本地找到json文件中指定的集合名中的rknn文件 Json文件格式不符合规范 Json文件设定值超范围

变量:LWFrameData.pVariant.PalletModule.errorCode

作用:用于判断当前帧所含托盘算法识别结果的状态

SDK返回码对应算法状态
ErrorCode = 1成功(指输出结果符合算法逻辑,也包含识别结果判定为无结果)
ErrorCode = -4算法正在运行中,请稍后再试
ErrorCode = -5超时
ErrorCode = -6未完成初始化,原因排查请参考LWSetPalletIdentifyType函数LWReturnCode:5 参数设置超范围 对应对应算法状态
ErrorCode = -8当前结果在算法识别过程中,因参数设置指令下发引起参数被修改,当前识别结果不输出
ErrorCode = -9模型未识别到托盘

变量:LWFrameData.pVariant.PalletModule.identifyEnable

作用:用于判断当前帧是否处于下位机托盘算法开启或关闭状态的数据

SDK返回码对应算法状态
true当前帧是处于下位机托盘算法开启时的数据,可以获取算法结果
false当前帧是处于下位机托盘算法关闭时的数据,不可获取算法结果

本页内容