CN113537096A - 基于ros的agv叉车库位托盘识别及辅助定位方法及*** - Google Patents
基于ros的agv叉车库位托盘识别及辅助定位方法及*** Download PDFInfo
- Publication number
- CN113537096A CN113537096A CN202110824995.3A CN202110824995A CN113537096A CN 113537096 A CN113537096 A CN 113537096A CN 202110824995 A CN202110824995 A CN 202110824995A CN 113537096 A CN113537096 A CN 113537096A
- Authority
- CN
- China
- Prior art keywords
- tray
- fork
- agv
- coordinate system
- pallet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B66—HOISTING; LIFTING; HAULING
- B66F—HOISTING, LIFTING, HAULING OR PUSHING, NOT OTHERWISE PROVIDED FOR, e.g. DEVICES WHICH APPLY A LIFTING OR PUSHING FORCE DIRECTLY TO THE SURFACE OF A LOAD
- B66F9/00—Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes
- B66F9/06—Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes movable, with their loads, on wheels or the like, e.g. fork-lift trucks
- B66F9/075—Constructional features or details
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B66—HOISTING; LIFTING; HAULING
- B66F—HOISTING, LIFTING, HAULING OR PUSHING, NOT OTHERWISE PROVIDED FOR, e.g. DEVICES WHICH APPLY A LIFTING OR PUSHING FORCE DIRECTLY TO THE SURFACE OF A LOAD
- B66F9/00—Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes
- B66F9/06—Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes movable, with their loads, on wheels or the like, e.g. fork-lift trucks
- B66F9/075—Constructional features or details
- B66F9/0755—Position control; Position detectors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/62—Analysis of geometric attributes of area, perimeter, diameter or volume
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/66—Analysis of geometric attributes of image moments or centre of gravity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20016—Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Structural Engineering (AREA)
- Transportation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Civil Engineering (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Geometry (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Geology (AREA)
- Mechanical Engineering (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Warehouses Or Storage Devices (AREA)
Abstract
本发明公开了一种基于ROS的AGV叉车库位托盘识别及辅助定位方法及***,包括对库位中托盘的检测识别步骤,使用深度学习训练好的模型预测图像中托盘支撑柱及其像素位置,利用深度相机计算出各根支撑柱中心在相机坐标系下的三维坐标;托盘位姿计算步骤,通过对深度相机坐标系、AGV叉车货叉坐标系、AGV叉车本体坐标系之间的坐标转化关系计算,求解托盘相对于AGV叉车本体的位姿;控制AGV叉车及货叉运动至可插取位置步骤,使得AGV叉车的货叉能够正对托盘的空洞。本发明检测速度更快,能够实时对库位中的托盘进行精确检测与定位,提升了工作效率,更好的辅助叉车插取托盘。
Description
技术领域
本发明涉及一种基于ROS的AGV叉车库位托盘识别及其插取辅助定位方法及***。
背景技术
随着人工智能技术的飞速发展,机器人的智能化也是必然趋势。同时随着机器人技术的成熟,机器人的应用范围也在不断的拓展,有适用于工业生产制造的工业机器人、服务人们日常生活的家庭服务机器人、辅助医生和病人的医疗机器人、用于国防部队的军事机器人等。
AGV(Automated Guided Vehicle)叉车是工业机器人的一种,具有移动、自动导航、多传感器控制、网络交互、装卸托运等功能。AGV叉车作为一种人工智能化工业装卸车,完成的任务主要有对托盘的货物进行装卸和用作短途交通运输的装卸车等。随着仓库周转率和订单量增加,为保证工作效率,越来越多的用户将传统人工叉车换成无人的AGV叉车,无人的AGV叉车有着更为广阔的应用前景。利用独有的视觉和人工智能技术,未来机器人为工厂和仓库的物流无人化升级提供柔性解决方案。计算机视觉的深层应用赋予了无人叉车更高的定位与感知精度,结合运动控制、深度学习等技术,AGV叉车更加聪明,可快速筛选并执行最优的任务完成策略。
在AGV叉车进行货物装卸搬运工作的工厂中,因库位中的托盘及其货物也会存在被人工插走的可能,所以AGV叉车在取货时,需要在进工位前使用视觉相机去实时检测识别对应的目标库位点有无托盘,进而告知***该库位点货物已被搬运走,同时AGV叉车本身也不用继续去该库位点取货。另一方面,有时货物也会出现放错位置的情况,如将货物错放在其他种类货物的库位中。这时如果用不同类型的托盘放置不同种类的货物,利用视觉相机对不同托盘进行识别,就可以区分开不同货物,进而判断所插取的货物是否正确。传统机器视觉感知方法主要通过人工设计的特征,利用特征点进行匹配等来识别目标对象。这种算法在实际的应用中,由于目标物体的形态复杂、环境的光线变化常常表现的不尽人意。目前基于深度神经网络的检测技术已经成为主流方法,并且在开放目标检测数据集上的检测效果和性能都很出色。
在库位摆放托盘时,有时未能严格按照规定的要求摆放,托盘摆放不整齐,这就导致托盘的位置与原定设置的摆放位置存在倾斜偏差。如果AGV叉车继续按原定的规划路径和程序取执行插取任务,会出现货叉插不准的情况出现。此时利用搭载的传感器设备,在原定规划的路径基础上来辅助AGV叉车对托盘进行定位,可以使得叉车能够更加精准地对托盘进行插取装卸作业。
ROS:ROS(Robot Operating System,机器人操作***)提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、函数库、可视化工具、消息传递和软件包管理等诸多功能。ROS执行若干种类型的通讯,包括基于服务的同步RPC(Remote Procedure Call,远程过程调用)通讯、基于Topic(话题)的异步数据流通讯,还有参数服务器上的数据存储。
YOLOv4:YOLO(You Only Look Once,你只要看一次)是一种深度学习的目标检测方法,该方法的特点是实现快速检测的同时还达到较高的准确率,YOLO采用单个神经网络直接预测物品边界和类别概率,实现端到端的物品检测。YOLOv4为YOLO系列***目标检测方法,继承了YOLO系列的思想和理念,可以使用传统的GPU(Graphics Processing Unit,图像处理单元)进行训练和测试,并能够获得实时、高精度的检测结果。
发明内容
1、本发明的目的
发明的目的是辅助AGV叉车在进入库位插取托盘前检测托盘是否还在原位置,以及检测托盘种类是否正确,避免重复无用操作。同时由于托盘放置不严格导致的错位,插取辅助定位***可以协助AGV叉车准确的对托盘进行定位,从而更好地完成AGV叉车插取拖运作业。
2、本发明所采用的技术方案
本发明公开了一种基于ROS的AGV叉车库位托盘识别及辅助定位方法,包括:
对库位中托盘的检测识别步骤,使用深度学习训练好的模型预测图像中托盘支撑柱及其像素位置,利用深度相机计算出各根支撑柱中心在相机坐标系下的三维坐标;
托盘位姿计算步骤,通过对深度相机坐标系、AGV叉车货叉坐标系、AGV叉车本体坐标系之间的坐标转化关系计算,求解托盘相对于AGV叉车本体的位姿;
控制AGV叉车及货叉运动至可插取位置步骤,使得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是用于衡量宽高比一致性的参数,计算公式为:
式中,wgt、hgt分别为真实框的宽和高,wp、hp分别为预测框的宽和高,arctan是反正切函数;
YOLOv4-CSP在Neck部分的FPN、PAN的上采样和下采样阶段和SPP模块中加入了跨阶段局部网络结构CSPNet,将基础层的特征图分割成两部分,然后通过跨阶段分层结构进行合并;
S14、在GPU计算机上通过训练得到效果好的托盘支撑柱检测识别模型。
更进一步,托盘位姿计算步骤S2:
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中。
更进一步,所述的步骤S24,种类信息存放在YoloObject中:
判断每个支撑柱的x轴坐标大小,从小到大依次排列,分别为左侧的支撑柱a、中间的支撑柱b、右侧的支撑柱c;然后按顺序将每个YoloObject添加到YoloObjects中,利用ROS将YoloObjects通过自定义的pose_point话题发布出去;pose_point话题是被创建用于发送YoloObjects消息的ROS话题。
更进一步,S3、AGV叉车接收到检测信息,控制AGV叉车及货叉运动至可插取位置;具体步骤如下:
S32、通过手眼标定,确定相机坐标系{C}到货叉坐标系{H}下的变换矩阵打开深度相机进行S2的检测步骤,通过相机检测托盘的支撑架来判断此处库位的托盘是否被取走以及判断托盘类型,如果没有检测到托盘的支撑架,则提示控制***托盘已被取走;如果检测到托盘类型不正确,提示控制***托盘托盘货物放错位置;如果检测到了正确托盘的支撑架,则将结果通过pose_point话题发送出去;
S33、AGV叉车订阅pose_point话题,将托盘三根支撑柱a、b、c在相机坐标系{C}下中心点的三维坐标CPa、CPb、CPc转化到叉车本体坐标系{B}下:
式中,HPa、HPb、HPc、BPa、BPb、BPc分别是三根支撑柱的中心点在货叉坐标系和AGV叉车本体坐标系的坐标;
S34、要求AGV叉车能够插取托盘则需要货叉正对托盘,即托盘面的中心与货叉的中心点对齐,且托盘插取面平行于叉车的门架面;托盘支撑柱a、b、c在AGV叉车本体坐标系的三维坐标分别为BPa=[xa,ya,za]T、BPb=[xb,yb,zb]T、BPc=[xc,yc,zc]T;托盘的中心位置即为支撑柱b的坐标BPb=[xb,yb,zb]T,求解托盘插取面相对于叉车门架面的偏转角度θ,其中l为托盘的长度:
Δz=zc-za (7)
式中,arcsin为反正弦函数;
S35、AGV叉车根据获得的托盘位姿信息{xb,yb,zb,θ},包含托盘插取面中心在叉车本体坐标系下的x、y、z轴下的坐标[xb,yb,zb]T以及托盘插取面相对于叉车门架面的偏转角度θ;通过这些信息对叉车本体及货叉升降的高度位置进行调整,使得AGV叉车的货叉正对着托盘的托孔,AGV叉车向前行驶插取托盘,完场任务。
本发明提出了一种基于ROS的AGV叉车库位托盘识别及辅助定位***,包括存储器和处理器,存储器存储有计算机程序,所述处理器执行所述计算机程序时实现所述的方法步骤。
3、本发明所采用的有益效果
1)本发明利用深度学习的检测模型能够很好的对托盘进行识别。传统的方法是利用点云信息对托盘进行轮廓提取,通过轮廓的边缘之间宽度来识别是否为托盘的孔洞和支撑柱,从而判断是否为托盘。本发明提出的深度学习的检测方法相较于传统的方法,识别效果更佳,准确性更高,鲁棒性更好。
2)本发明利用改进的YOLOv4深度学习网络结构YOLOv4-CSP对托盘样本进行训练,训练好的网络模型检测速度更快,使得AGV叉车能够实时对库位中的托盘进行检测,提升了工作效率。
3)本发明中的AGV叉车插取时的辅助定位***与传统的AGV预设好坐标轨迹相比,当托盘由于摆放不严格等原因导致与原定位置不一致时,利用深度相机和深度学习的检测模型对托盘进行定位,能够更好的辅助叉车插取托盘。
4)本发明均在ROS框架下运行,模块之间的结果通过ROS***以话题的形式发布订阅进行通讯传输,***运行更加实时通畅。
附图说明
图1为深度学习检测识别模型的训练流程图。
图2为AGV叉车库位托盘识别及其插取辅助定位***的流程图。
图3为AGV叉车需要识别搬运的托盘类型,a、b、c分别表示托盘的支撑柱。
图4为托盘相对AGV叉车位姿的俯视图。
图5为检测识别模块和AGV叉车控制模块在ROS下的话题发布和订阅的可视化图。
图6为AGV叉车结构示意简图。
具体实施方式
下面结合本发明实例中的附图,对本发明实例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域技术人员在没有做创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
下面将结合附图对本发明实例作进一步地详细描述。
实施例1
一种基于ROS的AGV叉车库位托盘识别及其插取辅助定位***,其包含对库位中托盘的检测识别和对托盘位姿计算两部分。库位托盘的检测部分包含了深度相机和搭载GPU的计算机,计算机通过使用深度学习训练好的模型预测图像中托盘支撑柱及其像素位置,利用深度相机计算出各根支撑柱中心在相机坐标系下的三维坐标。托盘位姿计算部分通过对深度相机坐标系、AGV叉车货叉坐标系、AGV叉车本体坐标系之间的坐标转化关系计算,求解托盘相对于AGV叉车本体的位姿,从而控制AGV叉车运动使得AGV叉车的货叉能够正对托盘的空洞。通过基于ROS的AGV叉车库位托盘识别及其插取辅助定位***可以使得AGV叉车能够更有效的对库位中的托盘进行插取拖运工作,提高生产效率。
本发明主要实现步骤包含如下:
S1、基于改进的YOLOv4目标检测网络YOLOv4-CSP来训练托盘的检测识别模型,具体步骤为:
S11、对库位中的托盘样本数据进行拍摄采集。
S12、使用图像标注软件LabelImg对样本数据进行标注,框选出各图中的不同种类托盘的支撑柱,标记不同种类托盘的标签。保存并输出标注文件,之后划分数据集,训练集和测试集的比例为9:1。
S13、物体检测模型的训练,搭建基于深度学习YOLOv4-CSP目标检测网络。YOLOv4的网络结构可以分为四部分,Input(输入)、BackBone(主干)、Neck(颈部)、Head(头部)。YOLOv4在Input输入端有马赛克数据增强、SAT(Self-adversarial-training,自对抗训练)等策略,丰富了检测数据集。YOLOv4的BackBone以CSPDarknet53网络框架作为网络提取骨干用于特征提取。Neck部分主要采用了SPP(Spatial Pyramid Pooling,空间金字塔池化)模块、FPN(Feature Pyramid Networks,特征图金字塔网络)和PAN(Path AggregationNetwork,路径聚合网络)的方式,用SPP模块来融合不同尺度大小的特征图能有效的增加主干特征的接收范围,利用自顶向下的FPN特征金字塔和自底向上的PAN特征金字塔来提升网络的特征提取能力。YOLOv4的Head部分训练的损失函数为LCIOU,LCIOU是在计算边界框回归时,同时考虑了预测框A和真实框B的重叠面积、中心点距离和宽高比的损失函数。LCIOU具体的计算方法如下式:
式中,Distance_2为预测框和真实框中心点的欧式距离,Distance_C为预测框和真实框最小外接矩形的对角线距离。IOU(Intersection over Union,交并比)是一种测量在特定数据集中检测相应物体准确度的一个标准,其计算公式为:
其中∩表示两者的并集,∩表示两者的交集。式(1)中的v是用于衡量宽高比一致性的参数,计算公式为:
式中,wgt、hgt分别为真实框的宽和高,wp、hp分别为预测框的宽和高,arctan是反正切函数。
与YOLOv4相比,YOLOv4-CSP在Neck部分的FPN、PAN的上采样和下采样阶段和SPP模块中加入了跨阶段局部网络结构CSPNet(Cross Stage Partial Network)。CSPNet将基础层的特征图分割成两部分,然后通过跨阶段分层(cross-stage hierarchy)结构进行合并。CSPNet网络结构可以增强CNN(Convolutional Neural Network,卷积神经网络)的学习能力,轻量化模型的同时保持模型的精度,降低整个模型的计算瓶颈,同时降低算法的内存成本。CSPNet的主要目的是使这个架构能够实现更丰富的梯度组合,同时减少计算量。YOLOv4-CSPNet网络模型相较于YOLOv4在普通GPU处理器上有更佳均衡的速度和精度。
S14、在GPU计算机上通过训练得到效果好的托盘支撑柱检测识别模型。
S2、利用训练好的模型检测托盘,通过深度相机计算托盘三根支撑柱中心的三维坐标,通过ROS将检测的数据消息发送给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中。判断每个支撑柱的x轴坐标大小,从小到大依次排列,分别为左侧的支撑柱a、中间的支撑柱b、右侧的支撑柱c。然后按顺序将每个YoloObject添加到YoloObjects中,利用ROS将YoloObjects通过自定义的pose_point话题发布出去。pose_point话题是被创建用于发送YoloObjects消息的ROS话题。
S3、AGV叉车接收到检测信息,控制AGV叉车及货叉运动至可插取位置。具体步骤如下:
S32、通过手眼标定,确定相机坐标系{C}到货叉坐标系{H}下的变换矩阵打开深度相机进行S2的检测步骤,通过相机检测托盘的支撑架来判断此处库位的托盘是否被取走以及判断托盘类型,如果没有检测到托盘的支撑架,则提示控制***托盘已被取走;如果检测到托盘类型不正确,提示控制***托盘托盘货物放错位置;如果检测到了正确托盘的支撑架,则将结果通过pose_point话题发送出去。
S33、AGV叉车订阅pose_point话题,将托盘三根支撑柱a、b、c在相机坐标系{C}下中心点的三维坐标CPa、CPb、CPc转化到叉车本体坐标系{B}下:
式中,HPa、HPb、HPc、BPa、BPb、BPc分别是三根支撑柱的中心点在货叉坐标系和AGV叉车本体坐标系的坐标。
S34、要求AGV叉车能够插取托盘则需要货叉正对托盘,即托盘面的中心与货叉的中心点对齐,且托盘插取面平行于叉车的门架面。托盘支撑柱a、b、c在AGV叉车本体坐标系的三维坐标分别为BPa=[xa,ya,za]T、BPb=[xb,yb,zb]T、BPc=[xc,yc,zc]T。托盘的中心位置即为支撑柱b的坐标BPb=[xb,yb,zb]T,求解托盘插取面相对于叉车门架面的偏转角度θ,其中l为托盘的长度:
Δz=zc-za (7)
式中,arcsin为反正弦函数。
S35、AGV叉车根据获得的托盘位姿信息{xb,yb,zb,θ},这些信息包含托盘插取面中心在叉车本体坐标系下的x、y、z轴下的坐标[xb,yb,zb]T以及托盘插取面相对于叉车门架面的偏转角度θ。通过这些信息对叉车本体及货叉升降的高度位置进行调整,使得AGV叉车的货叉正对着托盘的托孔,AGV叉车向前行驶插取托盘,完场任务。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (6)
1.一种基于ROS的AGV叉车库位托盘识别及辅助定位方法,其特征在于,包括:
对库位中托盘的检测识别步骤,使用深度学习训练好的模型预测图像中托盘支撑柱及其像素位置,利用深度相机计算出各根支撑柱中心在相机坐标系下的三维坐标;
托盘位姿计算步骤,通过对深度相机坐标系、AGV叉车货叉坐标系、AGV叉车本体坐标系之间的坐标转化关系计算,求解托盘相对于AGV叉车本体的位姿;
控制AGV叉车及货叉运动至可插取位置步骤,使得AGV叉车的货叉能够正对托盘的空洞。
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是用于衡量宽高比一致性的参数,计算公式为:
式中,wgt、hgt分别为真实框的宽和高,wp、hp分别为预测框的宽和高,arctan是反正切函数;
YOLOv4-CSP在Neck部分的FPN、PAN的上采样和下采样阶段和SPP模块中加入了跨阶段局部网络结构CSPNet,将基础层的特征图分割成两部分,然后通过跨阶段分层结构进行合并;
S14、在GPU计算机上通过训练得到效果好的托盘支撑柱检测识别模型。
3.根据权利要求2所述的基于ROS的AGV叉车库位托盘识别及辅助定位方法,其特征在于,所述的托盘位姿计算步骤S2:
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中。
4.根据权利要求2所述的基于ROS的AGV叉车库位托盘识别及辅助定位方法,其特征在于,所述的步骤S24,种类信息存放在YoloObject中:
判断每个支撑柱的x轴坐标大小,从小到大依次排列,分别为左侧的支撑柱a、中间的支撑柱b、右侧的支撑柱c;然后按顺序将每个YoloObject添加到YoloObjects中,利用ROS将YoloObjects通过自定义的pose_point话题发布出去;pose_point话题是被创建用于发送YoloObjects消息的ROS话题。
5.根据权利要求3所述的基于ROS的AGV叉车库位托盘识别及辅助定位方法,其特征在于,所述的S3、AGV叉车接收到检测信息,控制AGV叉车及货叉运动至可插取位置;具体步骤如下:
S32、通过手眼标定,确定相机坐标系{C}到货叉坐标系{H}下的变换矩阵打开深度相机进行S2的检测步骤,通过相机检测托盘的支撑架来判断此处库位的托盘是否被取走以及判断托盘类型,如果没有检测到托盘的支撑架,则提示控制***托盘已被取走;如果检测到托盘类型不正确,提示控制***托盘托盘货物放错位置;如果检测到了正确托盘的支撑架,则将结果通过pose_point话题发送出去;
S33、AGV叉车订阅pose_point话题,将托盘三根支撑柱a、b、c在相机坐标系{C}下中心点的三维坐标CPa、CPb、CPc转化到叉车本体坐标系{B}下:
式中,HPa、HPb、HPc、BPa、BPb、BPc分别是三根支撑柱的中心点在货叉坐标系和AGV叉车本体坐标系的坐标;
S34、要求AGV叉车能够插取托盘则需要货叉正对托盘,即托盘面的中心与货叉的中心点对齐,且托盘插取面平行于叉车的门架面;托盘支撑柱a、b、c在AGV叉车本体坐标系的三维坐标分别为BPa=[xa,ya,za]T、BPb=[xb,yb,zb]T、BPc=[xc,yc,zc]T;托盘的中心位置即为支撑柱b的坐标BPb=[xb,yb,zb]T,求解托盘插取面相对于叉车门架面的偏转角度θ,其中l为托盘的长度:
Δz=zc-za (7)
式中,arcsin为反正弦函数;
S35、AGV叉车根据获得的托盘位姿信息{xb,yb,zb,θ},包含托盘插取面中心在叉车本体坐标系下的x、y、z轴下的坐标[xb,yb,zb]T以及托盘插取面相对于叉车门架面的偏转角度θ;通过这些信息对叉车本体及货叉升降的高度位置进行调整,使得AGV叉车的货叉正对着托盘的托孔,AGV叉车向前行驶插取托盘,完场任务。
6.一种基于ROS的AGV叉车库位托盘识别及辅助定位***,包括存储器和处理器,存储器存储有计算机程序,其特征在于:所述处理器执行所述计算机程序时实现如权利要求1-5任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110824995.3A CN113537096B (zh) | 2021-07-21 | 2021-07-21 | 基于ros的agv叉车库位托盘识别及辅助定位方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110824995.3A CN113537096B (zh) | 2021-07-21 | 2021-07-21 | 基于ros的agv叉车库位托盘识别及辅助定位方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113537096A true CN113537096A (zh) | 2021-10-22 |
CN113537096B CN113537096B (zh) | 2023-08-15 |
Family
ID=78100716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110824995.3A Active CN113537096B (zh) | 2021-07-21 | 2021-07-21 | 基于ros的agv叉车库位托盘识别及辅助定位方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113537096B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114170521A (zh) * | 2022-02-11 | 2022-03-11 | 杭州蓝芯科技有限公司 | 一种叉车托盘对接识别定位方法 |
CN114195045A (zh) * | 2021-11-29 | 2022-03-18 | 宁波如意股份有限公司 | 一种无人叉车的自动叉取方法 |
CN114435434A (zh) * | 2021-12-28 | 2022-05-06 | 广州润易包装制品有限公司 | 一种可以辅助叉车装载的转运台车 |
CN115676698A (zh) * | 2022-10-14 | 2023-02-03 | 哈尔滨科锐同创机模制造有限公司 | 基于移动终端设备的托盘定位方法、***、装置和介质 |
CN115965855A (zh) * | 2023-02-14 | 2023-04-14 | 成都睿芯行科技有限公司 | 一种提高托盘识别精度的方法及装置 |
CN116443527A (zh) * | 2023-06-13 | 2023-07-18 | 上海木蚁机器人科技有限公司 | 基于激光雷达的托盘叉取方法、装置、设备和介质 |
CN117068891A (zh) * | 2023-10-17 | 2023-11-17 | 中亿丰数字科技集团有限公司 | 一种工地agv搬运机器人联动升降机垂直运输方法及*** |
CN117555308A (zh) * | 2024-01-12 | 2024-02-13 | 泉州装备制造研究所 | 一种基于无人叉车的托盘回收方法、***及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109829947A (zh) * | 2019-02-25 | 2019-05-31 | 北京旷视科技有限公司 | 位姿确定方法、托盘装载方法、装置、介质及电子设备 |
JP2020040790A (ja) * | 2018-09-11 | 2020-03-19 | 三菱ロジスネクスト株式会社 | 情報処理装置および情報処理方法 |
CN111080693A (zh) * | 2019-11-22 | 2020-04-28 | 天津大学 | 一种基于YOLOv3的机器人自主分类抓取方法 |
JP2021024718A (ja) * | 2019-08-07 | 2021-02-22 | 株式会社豊田自動織機 | 位置姿勢推定装置 |
-
2021
- 2021-07-21 CN CN202110824995.3A patent/CN113537096B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020040790A (ja) * | 2018-09-11 | 2020-03-19 | 三菱ロジスネクスト株式会社 | 情報処理装置および情報処理方法 |
CN109829947A (zh) * | 2019-02-25 | 2019-05-31 | 北京旷视科技有限公司 | 位姿确定方法、托盘装载方法、装置、介质及电子设备 |
JP2021024718A (ja) * | 2019-08-07 | 2021-02-22 | 株式会社豊田自動織機 | 位置姿勢推定装置 |
CN111080693A (zh) * | 2019-11-22 | 2020-04-28 | 天津大学 | 一种基于YOLOv3的机器人自主分类抓取方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114195045B (zh) * | 2021-11-29 | 2023-11-07 | 宁波如意股份有限公司 | 一种无人叉车的自动叉取方法 |
CN114195045A (zh) * | 2021-11-29 | 2022-03-18 | 宁波如意股份有限公司 | 一种无人叉车的自动叉取方法 |
CN114435434A (zh) * | 2021-12-28 | 2022-05-06 | 广州润易包装制品有限公司 | 一种可以辅助叉车装载的转运台车 |
CN114170521A (zh) * | 2022-02-11 | 2022-03-11 | 杭州蓝芯科技有限公司 | 一种叉车托盘对接识别定位方法 |
CN115676698A (zh) * | 2022-10-14 | 2023-02-03 | 哈尔滨科锐同创机模制造有限公司 | 基于移动终端设备的托盘定位方法、***、装置和介质 |
CN115965855A (zh) * | 2023-02-14 | 2023-04-14 | 成都睿芯行科技有限公司 | 一种提高托盘识别精度的方法及装置 |
CN115965855B (zh) * | 2023-02-14 | 2023-06-13 | 成都睿芯行科技有限公司 | 一种提高托盘识别精度的方法及装置 |
CN116443527A (zh) * | 2023-06-13 | 2023-07-18 | 上海木蚁机器人科技有限公司 | 基于激光雷达的托盘叉取方法、装置、设备和介质 |
CN116443527B (zh) * | 2023-06-13 | 2023-09-08 | 上海木蚁机器人科技有限公司 | 基于激光雷达的托盘叉取方法、装置、设备和介质 |
CN117068891A (zh) * | 2023-10-17 | 2023-11-17 | 中亿丰数字科技集团有限公司 | 一种工地agv搬运机器人联动升降机垂直运输方法及*** |
CN117068891B (zh) * | 2023-10-17 | 2024-01-26 | 中亿丰数字科技集团有限公司 | 一种工地agv搬运机器人联动升降机垂直运输方法及*** |
CN117555308A (zh) * | 2024-01-12 | 2024-02-13 | 泉州装备制造研究所 | 一种基于无人叉车的托盘回收方法、***及存储介质 |
CN117555308B (zh) * | 2024-01-12 | 2024-04-26 | 泉州装备制造研究所 | 一种基于无人叉车的托盘回收方法、***及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113537096B (zh) | 2023-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113537096A (zh) | 基于ros的agv叉车库位托盘识别及辅助定位方法及*** | |
EP3950539A1 (en) | Intelligent warehousing system, processing terminal, warehousing robot, and intelligent warehousing method | |
US11383380B2 (en) | Object pickup strategies for a robotic device | |
US11772267B2 (en) | Robotic system control method and controller | |
Schwarz et al. | Fast object learning and dual-arm coordination for cluttered stowing, picking, and packing | |
CN111275063B (zh) | 一种基于3d视觉的机器人智能抓取控制方法及*** | |
KR20210020945A (ko) | 창고 환경에서의 차량 추적 | |
US10762468B2 (en) | Adaptive process for guiding human-performed inventory tasks | |
CN107218927B (zh) | 一种基于tof相机的货物托盘检测***和方法 | |
CN109250380A (zh) | 仓储存取***及方法 | |
Walter et al. | A situationally aware voice‐commandable robotic forklift working alongside people in unstructured outdoor environments | |
US11741566B2 (en) | Multicamera image processing | |
DE102020114577A1 (de) | Steuerung und steuerverfahren für robotersystem | |
CN111077889A (zh) | 面向车间托盘搬运的多移动机器人编队协作定位方法 | |
WO2021039850A1 (ja) | 情報処理装置、設定装置、画像認識システム、ロボットシステム、設定方法、学習装置、及び学習済みモデルの生成方法 | |
CN113050636A (zh) | 一种叉车自主拾取托盘的控制方法、***及装置 | |
Medjram et al. | Markerless vision-based one cardboard box grasping using dual arm robot | |
CN110514210A (zh) | 一种具有多传感器的agv及其高精度定位方法 | |
WO2023092519A1 (zh) | 抓取控制方法、装置、电子设备和存储介质 | |
CN115631401A (zh) | 一种视觉感知的机器人自主抓取技能学习***及方法 | |
Roa-Garzón et al. | Vision-based solutions for robotic manipulation and navigation applied to object picking and distribution | |
KR102452315B1 (ko) | 딥러닝과 마커를 이용한 비전인식을 통한 로봇 제어장치 및 그 방법 | |
TWI788253B (zh) | 適應性移動操作設備及方法 | |
Fu et al. | Costmap construction and pseudo-lidar conversion method of mobile robot based on monocular camera | |
JP7241374B2 (ja) | ロボットによるオブジェクト配置のシステム及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |