利索能及
我要发布
收藏
专利号: 2021108249953
申请人: 常熟理工学院
专利类型:发明专利
专利状态:已下证
更新日期:2025-12-30
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于ROS的AGV叉车库位托盘识别及辅助定位方法,其特征在于,包括:对库位中托盘的检测识别步骤,使用深度学习训练好的模型预测图像中托盘支撑柱及其像素位置,利用深度相机计算出各根支撑柱中心在相机坐标系下的三维坐标;

托盘位姿计算步骤,通过对深度相机坐标系、AGV叉车货叉坐标系、AGV叉车本体坐标系之间的坐标转化关系计算,求解托盘相对于AGV叉车本体的位姿;

控制AGV叉车及货叉运动至可插取位置步骤,使得AGV叉车的货叉能够正对托盘的空洞;

所述的托盘位姿计算步骤:

S21、打开叉车货叉上的深度相机,运行YOLOv4‑CSP检测模型,检测的数据会通过ROS发送bounging_boxes的话题,bounging_boxes包含检测框信息并通过ROS发送的话题消息;该话题中包含了每个被识别到的托盘支撑柱、托盘的种类、托盘支撑柱的置信度、检测框的左上和右下点的像素坐标;

S22、在ROS下创建YoloObject和YoloObjects两个消息;YoloObject和YoloObjects是自定义的消息类型,用于存放转换后的坐标信息;YoloObject消息中包含着单个托盘支撑柱的标签信息和中心点的三维坐标,YoloObjects消息用于存放所有YoloObject消息;

S23、通过ROS订阅bounging_boxes和相机的彩色图像、深度数据、内参话题消息,将支撑柱中心点的二维像素坐标(u,v)转化为三维坐标(x,y,z),转化计算如下:z=0.001*d (4)

其中,d为该像素点的深度数据,fx,fy为相机的焦距,cx,cy为相机主点;

S24、将托盘支撑柱中心点的三维坐标(x,y,z)信息和托盘的种类信息存放在YoloObject中。

2.根据权利要求1所述的基于ROS的AGV叉车库位托盘识别及辅助定位方法,其特征在于检测识别步骤S1:S11、对库位中的托盘样本数据进行拍摄采集;

S12、使用图像标注软件LabelImg对样本数据进行标注,框选出各图中的不同种类托盘的支撑柱,标记不同种类托盘的标签保存并输出标注文件,之后划分数据集;

S13、物体检测模型的训练,搭建基于深度学习YOLOv4‑CSP目标检测网络;YOLOv4的网络结构分为四部分,包括输入、主干、颈部、头部;YOLOv4在输入端采用丰富检测数据集的方法,包括马赛克数据增强、SAT策略;YOLOv4的BackBone以CSPDarknet53网络框架作为网络提取骨干用于特征提取;颈部部分主要采用了SPP模块、FPN和PAN的方式,用SPP模块来融合不同尺度大小的特征图,增加主干特征的接收范围,利用自顶向下的FPN特征金字塔和自底向上的PAN特征金字塔来提升网络的特征提取能力;YOLOv4的头部部分训练的损失函数为LCIOU,LCIOU是在计算边界框回归时,同时考虑了预测框A和真实框B的重叠面积、中心点距离和宽高比的损失函数;LCIOU具体的计算方法如下式:式中,Distance_2为预测框和真实框中心点的欧式距离,Distance_C为预测框和真实框最小外接矩形的对角线距离;IOU(Intersection over Union,交并比)是测量在特定数据集中检测相应物体准确度的一个标准,其计算公式为:其中∪表示两者的并集,∩表示两者的交集;式(1)中的v是用于衡量宽高比一致性的参数,计算公式为:gt gt p p

式中,w 、h 分别为真实框的宽和高,w 、h分别为预测框的宽和高,arctan是反正切函数;

YOLOv4‑CSP在Neck部分的FPN、PAN的上采样和下采样阶段和SPP模块中加入了跨阶段局部网络结构CSPNet,将基础层的特征图分割成两部分,然后通过跨阶段分层结构进行合并;

S14、在GPU计算机上通过训练得到效果好的托盘支撑柱检测识别模型。

3.根据权利要求1所述的基于ROS的AGV叉车库位托盘识别及辅助定位方法,其特征在于,所述的步骤S24,种类信息存放在YoloObject中:判断每个支撑柱的x轴坐标大小,从小到大依次排列,分别为左侧的支撑柱a、中间的支撑柱b、右侧的支撑柱c;然后按顺序将每个YoloObject添加到YoloObjects中,利用ROS将YoloObjects通过自定义的pose_point话题发布出去;pose_point话题是被创建用于发送YoloObjects消息的ROS话题。

4.根据权利要求1所述的基于ROS的AGV叉车库位托盘识别及辅助定位方法,其特征在于,所述的控制AGV叉车及货叉运动至可插取位置步骤:S31、AGV叉车运动至需要插取的托盘库位处,设置货叉的控制参数,控制货叉升降至初始准备位置;根据升降位置确定货叉坐标系{H}与叉车本体坐标系{B}变换矩阵S32、通过手眼标定,确定相机坐标系{C}到货叉坐标系{H}下的变换矩阵 打开深度相机进行S2的检测步骤,通过相机检测托盘的支撑架来判断此处库位的托盘是否被取走以及判断托盘类型,如果没有检测到托盘的支撑架,则提示控制系统托盘已被取走;如果检测到托盘类型不正确,提示控制系统托盘托盘货物放错位置;如果检测到了正确托盘的支撑架,则将结果通过pose_point话题发送出去;

S33、AGV叉车订阅pose_point话题,将托盘三根支撑柱a、b、c在相机坐标系{C}下中心C C C点的三维坐标Pa、Pb、Pc转化到叉车本体坐标系{B}下:

H H H B B B

式中,Pa、Pb、Pc、Pa、Pb、Pc分别是三根支撑柱的中心点在货叉坐标系和AGV叉车本体坐标系的坐标;

S34、要求AGV叉车能够插取托盘则需要货叉正对托盘,即托盘面的中心与货叉的中心点对齐,且托盘插取面平行于叉车的门架面;托盘支撑柱a、b、c在AGV叉车本体坐标系的三B T B T B T维坐标分别为Pa=[xa,ya,za]、Pb=[xb,yb,zb] 、Pc=[xc,yc,zc] ;托盘的中心位置即为支B T撑柱b的坐标Pb=[xb,yb,zb] ,求解托盘插取面相对于叉车门架面的偏转角度θ,其中l为托盘的长度:Δz=zc‑za   (7)

式中,arcsin为反正弦函数;

S35、AGV叉车根据获得的托盘位姿信息{xb,yb,zb,θ},包含托盘插取面中心在叉车本体T坐标系下的x、y、z轴下的坐标[xb,yb,zb]以及托盘插取面相对于叉车门架面的偏转角度θ;

通过这些信息对叉车本体及货叉升降的高度位置进行调整,使得AGV叉车的货叉正对着托盘的托孔,AGV叉车向前行驶插取托盘,完成任务。

5.一种基于ROS的AGV叉车库位托盘识别及辅助定位系统,包括存储器和处理器,存储器存储有计算机程序,其特征在于:所述处理器执行所述计算机程序时实现如权利要求1‑4任一所述的方法步骤。