李孟涛 吴 翔
上海振华重工(集团)股份有限公司
自动化集装箱起重机一直是港口领域研究的热点,为了让起重机在室外的环境中能够全天侯自动化作业,需要让起重机具有识别集装箱的能力。3D激光目标检测系统在起重机领域应用较广泛[1-4],通过三维激光数据扫描出集装箱、集卡、AGV的轮廓特征,进行特征位置提取,并把位置信息传递给起重机控制系统PLC;控制系统利用目标检测系统给出的位置信息进行准确安全的作业。
根据图像拓扑法提出了一种基于图像连通域的集装箱激光点云处理算法,能够有效提取激光特征数据,利用提取的数据进行集装箱位置信息的计算及检测集装箱高度、集装箱尺寸、集装箱双箱间隙,为自动化作业提供准确的信息。
3D激光器通过扫描起重机下方的集装箱收集数据,结合小车位置,建立基于起重机的3D坐标系。起重机大车轨道为X轴,小车运行方向为Y轴,起升方向为Z轴。在图1的三维坐标系内,采样B点的三维坐标值为:
图1 3D坐标模型图
二值图像就是图像的亮度值只有两个状态:黑(0)和白(255),其模式简单及对像素在空间上的关系有着极强的表现力。在实际应用中,很多图像的分析最终都转换为二值图像分析,有利于对图像的算法处理。
图像的连通域[5-8]操作就是找出相连的像素点,原理为:
从上到下沿第1行开始搜索,在第1行,第1个黑色点上面和左边都没有黑色点,则将其标记成1,见图2(a)。
在第2行,第1个点,因为左边没有像素点,给它分配一个新的记号2。第2行,第2个点,其上边、左边都有黑色像素点,将其中一个记号分配给它,此处分配记号1给该点,并做一个标记,1和2是等价的。同理,第2行第3个点,分配标记号1,见图2(b)。
第4行,第1个黑色点,分配记号3,第2个点分配记号3。第5行,第1个点分配记号4,第2个点分配记号3,同时,记录3和4是等价的。第6行,第1个点,分配记号4,见图2(c)。
通过第1遍标记,可得知1和2是等价的,3和4是等价的,然后将2全部用1代替,3和4用2代替。标记完成后结果见图2(d)。
图2 图像的连通域算法原理
(1) 三维数据获取。三维激光扫描系统安装在起重机小车架上,用于扫描小车架下方集装箱的轮廓信息,由于激光器安装于吊具的一侧,只能获取集装箱一侧的三维数据。双20 ft装箱三维数据见图3。
图3 三维数激光数据
(2)三维数据到图像数据的转换。根据箱子高度信息,把激光器数据转化为二值图像数据(见图4)。
图4 激光数据的二值化图像
(3)图像预处理。根据箱面数据过滤掉较小的数据块,获取的箱面二值化图像(见图5)。
图5 预处理后的二值化图像
(4)图像的连通域像素标记操作。对二值化图像进行连通域操作,将箱面数据进行关联,处理后的图像左边箱子的标签值为1,右边箱子的标签值为2,可分别获取图像中各边缘点起始坐标[9-10]。
(5)提取集装箱边缘数据。通过图像标记信息和三维激光数据间的对应关系,提取图像中每个边缘像素点对应的三维激光数据点。
(6)拟合箱子边缘数据。通过最小二乘法拟合,拟合箱子边缘直线。
(7)计算箱子角点位置数据。通过两条直线相交,可以计算箱子角点的空间坐标。
实验采用SICK-LMS511-20100型号激光器,马达选用72000线的绝对值编码器,基于VS2010集成开发环境下用C++语言编程,实现该算法。采集数据时,放置箱子长度方向与大车方向平行,根据计算结果对箱子的大车方向、小车方向及斜率进行补偿,补偿后的结果作为检测的零位点(见表1)。使用过程中检测箱子的位置信息和零位进行对比,可以计算出吊具抓箱时需要吊具平移的距离和扭转的角度。
箱子向左移动200 mm后,对箱子进行10次扫描,计算结果见表2。
表2 左移200 mm扫描数据
箱子向右移动200 mm后,对箱子进行10次扫描,计算结果见表3。
表3 右移200 mm扫描数据
从以上实验结果分析,大车方向向左和向右移动200 mm后,检测出来的大车方向移动距离为(Left_X+Right_X)/2,根据均值计算出移动距离为-208 mm和196 mm,与理论值的误差分别为-8 mm和-4 mm,扫描数据的跳变范围在±30 mm内;小车方向的移动距离为(Left_Y+Right_Y)/2,根据均值计算出来的移动距离为-1 mm和-3 mm,与理论值0的误差为-1 mm和-3 mm,小车方向检测的数据跳变范围在±30 mm内;计算所得的斜率均值为-0.018°和0.05°,数据跳变范围在±0.2°内。码头自动抓箱需要传感器提供的位置精度是大车方向数据范围在±30 mm,斜率在±0.2°范围内。该算法满足自动化作业的要求。
基于图像连通域的集装箱激光点云数据处理算法,通过标签的方式在一定的区域范围内区分出箱子的标签ID,根据计算出的箱子ID的像素块边缘数据,能够较好地实现对箱子边缘数据的提取。该算法精度满足自动化抓箱作业的要求。