蔡永禎,許四祥,楊宇,方建中
(安徽工業(yè)大學(xué) 機(jī)械工程學(xué)院,安徽 馬鞍山 243000)
現(xiàn)代大型連鑄機(jī)一般使用數(shù)控火焰切割方法將鋼坯切割成固定的尺寸,切割過程中,熱熔鋼液向下流動導(dǎo)致板坯底部形成一條呈冰柱狀的毛刺,影響板坯的表面質(zhì)量和輸送輥道的使用壽命?,F(xiàn)有去除毛刺方法主要有錘刀式去除法和刮刀式去除法,都具有去除效率低,噪聲大,刀具壽命低的缺點,無法滿足實際生產(chǎn)需要[1]。許四祥等[2]提出了一種等離子去板坯毛刺的新方法,在去除板坯毛刺效率上有很大提升。郝奇等[3]依據(jù)此方法采用ROS對機(jī)器人去除板坯毛刺進(jìn)行框架建設(shè),但局限于板坯處于理想情況能取得較好效果。實際上,板坯在經(jīng)過輸送輥道輸送時往往出現(xiàn)一定程度跑偏現(xiàn)象,該去除方案無法滿足工業(yè)現(xiàn)場要求,基于此,提出一種機(jī)器人結(jié)合深度相機(jī)自主運動規(guī)劃去除跑偏板坯毛刺的方法,以期望取得良好效果。
對于在運輸中發(fā)生跑偏的板坯,機(jī)器人采用傳統(tǒng)示教方法無法完成去除板坯毛刺的工作,故考慮采用深度相機(jī)對板坯進(jìn)行三維點云重建,利用點云點篩選方法對板坯角點進(jìn)行定位,從而指導(dǎo)機(jī)器人完成去除毛刺工作。
點云三維重建是使用PCL點云庫把二維像素變換為三維空間點云。使用深度相機(jī)對實物進(jìn)行掃描,灰度值代表著像素點到深度相機(jī)所在垂直平面的距離值,可通過結(jié)構(gòu)光直接測得。深度圖像的像素坐標(biāo)(u,v)和世界坐標(biāo)(X,Y,Z)的映射關(guān)系如圖1所示,可由此計算點云點空間坐標(biāo)。
圖1 像素坐標(biāo)系和世界坐標(biāo)系映射圖
由坐標(biāo)映射關(guān)系可知:
(1)
點云點的三維坐標(biāo)為:
(2)
式中:Cx和Cy為主點像素坐標(biāo),fx和fy為像素表示的焦距長。
為了獲取所需角點,對點云進(jìn)行篩選。利用點云識別順序可以對點云點進(jìn)行坐標(biāo)篩選,點云的掃描識別是自左而右,自上而下的進(jìn)行掃描工作的。其每下一點相較于前一點的坐標(biāo)都有著明確的大小關(guān)系,可以利用此特性,進(jìn)行板坯角點的點云點篩選。
在確定了點云三維重建原理,以及點云排布順序原理兩種原理后,設(shè)計角點定位算法流程如圖2所示:
圖2 角點定位算法流程示意圖
(1)使用深度相機(jī)對板坯進(jìn)行深度掃描,并完成點云三維重建;
(2)利用點云排布順序原理根據(jù)點云點坐標(biāo)的篩選識別板坯的一個角點;
(3)更改點云掃描區(qū)域,找到位于板坯兩角點連線上的一中間點;
(4)利用之前已知條件,進(jìn)而得出第二角點。
如圖3所示,深度相機(jī)三維重建的是板坯上表面的點云,因此對于跑偏板坯,只需要找到其在世界坐標(biāo)系下Y坐標(biāo)最大值,對于正常狀態(tài)下的板坯,其邊線P上的任一點都是其Y軸最大值點,這些點中X坐標(biāo)最大值一定是其右角點。所以,當(dāng)板坯正常狀態(tài)或者左跑偏狀態(tài),定位算法可以定位其右角點。當(dāng)板坯右跑偏時,定位算法定位左角點。
圖3 跑偏板坯第一角點定位示意圖
具體篩選方法的部分python代碼如下:
k=points_arr
#設(shè)定初始點云識別數(shù)組。
a=k[0][0],b=k[0][1],c=k[0][2]
#設(shè)定初始點。
for i in range(len(k)):
#設(shè)定關(guān)于k[i]的循環(huán)。
m=k[i][0],n=k[i][1],q=k[i][2]
#設(shè)定m,n,q為第i點的x,y,z值。
if k[i][0]
#設(shè)定點云識別閾值d.
if(m>=a or n>=b):
p=k[i]
#當(dāng)下一點x或y值大于前一點,繼續(xù)循環(huán)。
以左偏狀態(tài)板坯為例,如圖4(a)所示,通過改變第一角點定位方法中的閾值d,可以得到在指定區(qū)域N中一個滿足篩選條件的點B.顯然,所得出的點是位于邊線上的中間點。
如圖4(b)所示,根據(jù)第一角點A與中間點B,得出一個邊線向量AB,最終以通過角點A,中間點B,以及板坯寬,即可得出第二角點C.
圖4 左偏板坯定位示意圖
為了驗證所設(shè)計定位算法,采用一個仿真方案來證明算法的可行性。
設(shè)計仿真采用ROS機(jī)械臂控制系統(tǒng),ROS機(jī)械臂控制系統(tǒng)一般以MoveIt架構(gòu)為核心,其中主要包含了MoveGroup類,傳感器與位置控制器相關(guān)接口,python、c、c++算法的MoveIt_commander接口以及RVIZ可視化接口,參數(shù)服務(wù)器接口等。其中傳感器與位置控制器相關(guān)接口主要獲得關(guān)節(jié)信號,并發(fā)送給MoveGroup類進(jìn)行正運動學(xué),逆運動學(xué)求解及規(guī)劃軌跡[4-6]。其設(shè)計流程如圖5所示,具體流程如下:
圖5 仿真流程示意圖
(1)構(gòu)建板坯去毛刺的三維模型并導(dǎo)入urdf,在ROS中插入深度相機(jī)組件,并配置深度相機(jī)位置精度等參數(shù),將urdf文件轉(zhuǎn)化為xacro模型文件。
(2)進(jìn)行MoveIt-Gazebo仿真,完成跑偏板坯去毛刺的系統(tǒng)架構(gòu)。
(3)利用確定的點云定位原理定位兩角點。
(4)機(jī)器人接收角點信號,對兩角點進(jìn)行笛卡爾運動。
在Solidworks中繪制模型如圖6所示,并將模型轉(zhuǎn)換成urdf文件,urdf文件是一種適用于機(jī)器人仿真的特殊模型文件[7-8]。
圖6 機(jī)器人工作站示意圖
使用深度相機(jī)進(jìn)行仿真點云三維重建,深度相機(jī)包含感知深度的IR紅外發(fā)射和接收器,另外還有一個RGB傳感器用于感知RGB圖像[9-10]。根據(jù)RVIZ可視化界面內(nèi)的板坯點云的生成效果,調(diào)整深度相機(jī)至合適位姿,完成整體仿真的配置工作。聯(lián)合仿真界面如圖7所示。
圖7 聯(lián)合控制相應(yīng)配置
通過角點識別算法,獲得兩角點位置信息。利用mark標(biāo)記顯示獲取的角點,對位置信息進(jìn)行檢驗??梢暬缑骘@示如圖8所示。如圖可知,兩個角點在仿真界面中成功識別。
圖8 角點定位顯示圖
為了驗證算法對不同姿態(tài)板坯定位的穩(wěn)定性,分別驗證正常,左偏,右偏情況下得出的角點坐標(biāo)以及角點顯示如圖9所示:
圖9 角點定位驗證圖
經(jīng)過程序的反復(fù)試驗,角點定位算法可以在仿真界面下成功定位三種狀態(tài)下的板坯角點。
根據(jù)定位的兩個板坯角點,對機(jī)器人切割路徑進(jìn)行軌跡規(guī)劃。
機(jī)械臂需要根據(jù)所識別的兩個角點規(guī)劃去除工作,調(diào)用Move Group規(guī)劃組,讓機(jī)械臂到達(dá)工作初始位置,在終端接收點云話題以及定位程序發(fā)布的角點話題,機(jī)器人成功識別角點的位置信息。對識別角點的位置保留一定余量并調(diào)整rpy參數(shù)保證割炬切割到下邊線且不碰撞到板坯。執(zhí)行程序,機(jī)械臂自主運行到下端第一角點。當(dāng)機(jī)械臂在不加任何約束從第一角點運動到第二角點情況下,機(jī)械臂將隨機(jī)運動到第二角點,與實際所需的切割直線的目的不相符,需要對機(jī)械臂運動規(guī)劃進(jìn)行約束。
使用笛卡爾運動規(guī)劃算法進(jìn)行規(guī)劃約束,規(guī)定板坯下端邊線路徑的自主直線插補(bǔ),笛卡爾軌跡規(guī)劃原理是為末端執(zhí)行器設(shè)定目標(biāo)的位姿,通過將一段軌跡拆分成若干個短路線,達(dá)到直線運動的目的[11-12]。機(jī)械臂成功規(guī)劃一條運動軌跡。
當(dāng)機(jī)械臂運移動到第一角點,結(jié)合笛卡爾運動規(guī)劃算法,在無碰撞板坯前提下,將兩角點之間距離拆分成若干小段直線距離,成功完成板坯毛刺的去除,切割軌跡示意圖如圖10所示,由圖可知,機(jī)械臂成功切割跑偏板坯下端,切割過程自主化,切割線性程度高,且與切割軌跡與識別出的上邊線平行,可以證明實驗方法基本實現(xiàn)跑偏板坯去毛刺的工作目的。
圖10 機(jī)械臂去跑偏板坯毛刺示意圖
利用rqt_plot工具,添加終端關(guān)節(jié)狀態(tài)話題,生成的rqt分析圖像如下圖11所示,圖像顯示出機(jī)器人各關(guān)節(jié)角度變化平緩,運動穩(wěn)定。
圖11 rqt分析圖
針對現(xiàn)今板坯去毛刺方法無法適應(yīng)跑偏狀態(tài)下板坯毛刺去除工作,設(shè)計一種結(jié)合深度相機(jī)的板坯角點定位方法。通過深度相機(jī)掃描板坯,進(jìn)行跑偏板坯點云三維重建,利用點云排布原理篩選得出跑偏板坯第一角點,改變篩選閾值得出中間點,利用向量計算得出第二角點,成功識別跑偏板坯的兩個角點。
通過笛卡爾運動規(guī)劃算法實現(xiàn)機(jī)械臂自主運動規(guī)劃及執(zhí)行。通過上述所有流程,完成了在ROS平臺下針對跑偏板坯去毛刺的自主規(guī)劃執(zhí)行仿真。為機(jī)器人去板坯毛刺提供新的思路。