本發(fā)明屬于掃描,具體地,涉及基于多臺無人行車的火車車廂、鋼座架聯(lián)合掃描方法。更具體是基于多臺無人行車的火車車廂、鋼座架聯(lián)合掃描方法及系統(tǒng)。
背景技術(shù):
1、在火車發(fā)運(yùn)物流中,需要將火車作為載具,把鋼卷發(fā)運(yùn)出廠。若將鋼卷直接放置在車廂內(nèi),在火車運(yùn)輸過程中鋼卷會(huì)滾動(dòng)造成鋼卷損傷。因此在放置鋼卷前,需要在火車車廂內(nèi)先放置鋼座架,鋼座架的結(jié)構(gòu),如圖8所示。
2、鋼座架有凸出的駝峰,駝峰與駝峰之間放置鋼卷,可以有效防止鋼卷滾動(dòng)。故而火車裝載鋼卷前需要先吊運(yùn)鋼座架到火車車廂內(nèi)。
3、無人行車作業(yè)中,行車是通過執(zhí)行wms系統(tǒng)發(fā)送的指令來完成一個(gè)個(gè)動(dòng)作的。鋼座架從一個(gè)位置起吊到另一個(gè)位置卸下。指令里包含了起吊位置和卸下位置的xy坐標(biāo),以精確定位鋼座架的取放位置。行車抓取鋼座架是通過抓取鋼座架中心的四個(gè)駝峰頂點(diǎn),如圖6所示,故而需要掃描鋼座架以獲得鋼座架的中心點(diǎn)。行車卸鋼座架到車廂時(shí)需要掃描火車車廂以獲得卸到車廂內(nèi)的準(zhǔn)確坐標(biāo)。
4、傳統(tǒng)方式,鋼座架為了裝卸方便,一般擺放在庫區(qū)兩邊位置,如圖7所示。在吊運(yùn)鋼座架前,系統(tǒng)發(fā)送移動(dòng)指令給無人行車,使無人行車在整個(gè)庫區(qū)鋼座架范圍內(nèi)進(jìn)行掃描,獲得準(zhǔn)確的鋼座架抓取坐標(biāo);并且,發(fā)送移動(dòng)指令給行車,掃描整列火車,如圖7所示,確定每節(jié)火車車廂的坐標(biāo),計(jì)算出鋼座架吊入每節(jié)車廂的卸下坐標(biāo)。這導(dǎo)致鋼座架進(jìn)行吊運(yùn)前,需要先將庫區(qū)內(nèi)鋼座架掃描一遍,再將整列火車掃描一遍,或者掃描范圍要覆蓋鋼座架擺放區(qū)域和火車停放區(qū)域。此方案導(dǎo)致系統(tǒng)重復(fù)作業(yè),效率低下;并且,如果只采用1臺無人行車進(jìn)行火車車廂的掃描,掃描所需的時(shí)間久,效率低;若如果采用多臺無人行車進(jìn)行掃描,就需要進(jìn)行拼接。此外,為保證鋼座架信息的準(zhǔn)確性,一般需要對鋼座架進(jìn)行人工盤庫的方式。人工盤庫經(jīng)常發(fā)生錯(cuò)誤,提高經(jīng)濟(jì)成本。
技術(shù)實(shí)現(xiàn)思路
1、針對現(xiàn)有技術(shù)中的缺陷,本發(fā)明的目的是提供一種基于多臺無人行車的火車車廂、鋼座架聯(lián)合掃描方法。
2、根據(jù)本發(fā)明提供的一種基于多臺無人行車的火車車廂、鋼座架聯(lián)合掃描方法,包括:
3、步驟s1:獲取并確認(rèn)火車車廂的節(jié)數(shù);
4、步驟s2:基于火車車廂的節(jié)數(shù),為無人行車劃定掃描范圍,生成掃描指令;通過掃描指令,令無人行車向掃描的終點(diǎn)移動(dòng),觸發(fā)激光掃描系統(tǒng)掃描火車車廂和鋼座架,得到激光數(shù)據(jù);
5、步驟s3:通過激光掃描系統(tǒng)處理激光數(shù)據(jù),得到鋼座架掃描結(jié)果和火車掃描結(jié)果;
6、步驟s4:基于鋼座架掃描結(jié)果,判斷激光數(shù)據(jù)是否包含完整的鋼座架的數(shù)據(jù);結(jié)果為是,則更新倉庫內(nèi)的鋼座架的數(shù)據(jù);結(jié)果為否,則封鎖鋼座架的垛位;
7、基于火車掃描結(jié)果,根據(jù)經(jīng)步驟s2劃分的無人行車掃描范圍以及無人行車的掃描方向,判斷火車車廂是否掃描完整;結(jié)果為是,則對激光數(shù)據(jù)里的火車車廂數(shù)據(jù)進(jìn)行更新,得出所有的火車車廂數(shù)據(jù);結(jié)果為否,則將激光數(shù)據(jù)進(jìn)行拼接,獲得完整的火車車廂數(shù)據(jù),重新判斷火車車廂是否掃描完整。
8、優(yōu)選地,所述無人行車的大車運(yùn)動(dòng)方向作為x方向、無人行車的小車運(yùn)動(dòng)方向作為y方向、無人行車的夾鉗方向作為z方向;
9、所述鋼座架掃描結(jié)果為鋼座架掃描結(jié)果電文;所述火車掃描結(jié)果為火車掃描結(jié)果電文;
10、在所述步驟s1中,通過wms系統(tǒng)的畫面,確認(rèn)火車車廂的節(jié)數(shù);
11、在所述步驟s2中:
12、步驟s2.1:基于火車車廂的節(jié)數(shù),劃定掃描范圍,并且在檢測到無人行車到達(dá)掃描起點(diǎn)時(shí),給無人行車發(fā)送移動(dòng)到掃描終點(diǎn)的掃描指令;
13、步驟s2.2:接收掃描指令,啟動(dòng)無人行車掃描經(jīng)步驟s2.1劃定的掃描范圍,發(fā)送火車鋼座架聯(lián)合掃描電文給激光掃描系統(tǒng),觸發(fā)激光掃描系統(tǒng)掃描火車車廂和鋼座架,得到激光數(shù)據(jù);
14、在所述步驟s3中:
15、步驟s3.1:通過激光掃描系統(tǒng),對激光數(shù)據(jù)進(jìn)行分割與整合,得到單條數(shù)據(jù);
16、步驟s3.2:通過激光掃描系統(tǒng)的點(diǎn)云處理庫,即pcl,判斷激光掃描儀是否掃描了完整的鋼座架;結(jié)果為是,則計(jì)算每摞鋼座架的空間信息;結(jié)果為否,則繼續(xù)進(jìn)行掃描;
17、所述空間信息,包括:鋼座架的堆放位置、鋼座架的層數(shù)與鋼座架的層高;
18、步驟s3.3:通過激光掃描系統(tǒng)的算法模塊與點(diǎn)云數(shù)據(jù)庫,對激光數(shù)據(jù)的單條數(shù)據(jù)進(jìn)行計(jì)算,生成鋼座架掃描結(jié)果電文與火車掃描結(jié)果電文;
19、步驟s3.4:發(fā)送鋼座架掃描結(jié)果電文給wms系統(tǒng);發(fā)送火車掃描結(jié)果電文給wms系統(tǒng);
20、所述算法模塊,用于計(jì)算激光數(shù)據(jù),生成掃描結(jié)果電文。
21、優(yōu)選地,在所述步驟s2.1中:
22、步驟s2.1.1:基于作為火車車廂的節(jié)數(shù)的火車掃描范圍,為多個(gè)無人行車劃分掃描范圍;所述無人行車的數(shù)量,為2臺以上;
23、步驟s2.1.2:通過wms系統(tǒng),劃定經(jīng)步驟s2.1.1得到的無人行車的x方向范圍;
24、步驟s2.1.3:根據(jù)經(jīng)步驟s2.1.1劃定的掃描范圍與wms系統(tǒng)內(nèi)存儲(chǔ)的鋼座架的已有信息,結(jié)合鋼座架放置位置的中心點(diǎn)和放置的鋼座架類型,計(jì)算出每垛鋼座架的x方向范圍和y方向范圍;
25、步驟s2.1.4:根據(jù)掃描范圍,所述無人行車的x方向范圍與每垛鋼座架的信息,生成掃描指令并發(fā)送給無人行車;
26、在所述步驟s3.2中:
27、步驟s3.2.1:整合激光數(shù)據(jù)中的點(diǎn)云數(shù)據(jù),判斷激光掃描儀是否掃描了完整的鋼座架;結(jié)果為是,則執(zhí)行步驟s3.2.2;結(jié)果為否,則繼續(xù)進(jìn)行掃描;
28、步驟s3.2.2:通過點(diǎn)云處理庫,對掃描到的鋼座架的支點(diǎn)點(diǎn)云進(jìn)行裁切,裁剪出鋼座架點(diǎn)云;
29、步驟s3.2.3:使用對應(yīng)的鋼座架模板匹配裁剪出的鋼座架點(diǎn)云,計(jì)算出鋼座架的位姿與抓取點(diǎn)。
30、步驟s3.2.4:基于鋼座架的位姿與抓取點(diǎn),通過平面擬合算法,對裁剪出的鋼座架點(diǎn)云進(jìn)行平面擬合與聚類,從而得到每一層鋼座架的點(diǎn)云數(shù)據(jù),并且根據(jù)每一層鋼座架的點(diǎn)云數(shù)據(jù),計(jì)算出作為空間信息的鋼座架的層數(shù)以及鋼座架每層的層高;
31、在所述步驟s3.3中:
32、步驟s3.3.1:對目標(biāo)區(qū)域內(nèi)的火車車廂進(jìn)行識別,計(jì)算對應(yīng)火車車廂的邊框位置,得到邊緣數(shù)據(jù),并判斷激光數(shù)據(jù)是否存在異常;結(jié)果為是,則拋出異常的激光數(shù)據(jù);結(jié)果為否,則執(zhí)行步驟s3.3.2;
33、步驟s3.3.2:采用聚類算法識別符合火車車廂特征的激光數(shù)據(jù),并通過凹部特征識別計(jì)算每節(jié)火車車廂的頭尾的節(jié)點(diǎn)數(shù)據(jù),計(jì)算火車車廂車皮的邊緣數(shù)據(jù),結(jié)合所述節(jié)點(diǎn)數(shù)據(jù)和所述邊緣數(shù)據(jù)為車皮信息;
34、所述凹部特征識別,即通過判斷激光線的形狀是否滿足凹部要求,識別火車車廂;所述凹部要求,取決于火車的截面形狀;
35、步驟s3.3.3:根據(jù)車皮信息,拼接不完整火車車廂,得出總火車節(jié)數(shù);對激光數(shù)據(jù)的單條數(shù)據(jù)進(jìn)行計(jì)算,生成并且發(fā)出鋼座架掃描結(jié)果電文與火車掃描結(jié)果電文。
36、優(yōu)選地,在所述步驟s4中:
37、步驟s4.1:基于鋼座架掃描結(jié)果電文,判斷激光數(shù)據(jù)是否包含完整的鋼座架的數(shù)據(jù);結(jié)果為是,則更新倉庫內(nèi)的鋼座架的數(shù)據(jù);結(jié)果為否,則封鎖鋼座架的垛位;
38、基于火車掃描結(jié)果電文中的火車相對索引編號和無人行車掃描范圍內(nèi)的實(shí)際火車車廂編號,依次對應(yīng)實(shí)際的火車車廂號,從而分辨出火車各個(gè)部分的激光數(shù)據(jù);所述部分的劃分,依據(jù)無人行車的數(shù)量確定;
39、步驟s4.2:基于火車頭部的激光數(shù)據(jù)或火車尾部的激光數(shù)據(jù),判斷激光掃描儀是否掃描完整的火車車廂;結(jié)果為是,則執(zhí)行步驟s4.3;結(jié)果為否,則更新掃描得到的火車車廂邊框部分的點(diǎn)數(shù)據(jù);
40、步驟s4.3:判斷激光數(shù)據(jù)中的火車車廂尺寸是否符合該火車車廂型號對應(yīng)的理論尺寸;結(jié)果為是,則更新實(shí)際火車車廂邊框的點(diǎn)數(shù)據(jù),得出所有的火車車廂數(shù)據(jù);結(jié)果為否,則摒棄火車車廂邊框的點(diǎn)數(shù)據(jù);
41、步驟s4.4:基于火車中部的激光數(shù)據(jù),判斷激光掃描儀是否掃描完整的火車車廂;結(jié)果為是,則更新實(shí)際火車車廂邊框的點(diǎn)數(shù)據(jù);結(jié)果為否,則將掃描得到的火車車廂邊框部分的點(diǎn)數(shù)據(jù)與步驟s4.2中的掃描得到的火車車廂邊框部分的點(diǎn)數(shù)據(jù)進(jìn)行拼接,組成完整的火車車廂邊框的點(diǎn)數(shù)據(jù),重新執(zhí)行步驟s4.2。
42、優(yōu)選地,在所述步驟s4.1中:
43、通過wms系統(tǒng),接收鋼座架掃描結(jié)果電文的鋼座架垛位信息,得出鋼座架垛位的四個(gè)頂點(diǎn)的坐標(biāo)信息;基于坐標(biāo)信息,判斷激光數(shù)據(jù)是否包含完整的鋼座架的數(shù)據(jù);結(jié)果為是,則進(jìn)一步更新倉庫內(nèi)的鋼座架的數(shù)據(jù);結(jié)果為否,則封鎖鋼座架的垛位;
44、在所述步驟s2中,鋼座架沿火車旁擺放,令激光掃描儀同時(shí)掃描火車車廂和鋼座架。
45、根據(jù)本發(fā)明提供的一種基于多臺無人行車的火車車廂、鋼座架聯(lián)合掃描系統(tǒng),包括:
46、模塊m1:獲取并確認(rèn)火車車廂的節(jié)數(shù);
47、模塊m2:基于火車車廂的節(jié)數(shù),為無人行車劃定掃描范圍,生成掃描指令;通過掃描指令,令無人行車向掃描的終點(diǎn)移動(dòng),觸發(fā)激光掃描系統(tǒng)掃描火車車廂和鋼座架,得到激光數(shù)據(jù);
48、模塊m3:通過激光掃描系統(tǒng)處理激光數(shù)據(jù),得到鋼座架掃描結(jié)果和火車掃描結(jié)果;
49、模塊m4:基于鋼座架掃描結(jié)果,判斷激光數(shù)據(jù)是否包含完整的鋼座架的數(shù)據(jù);結(jié)果為是,則更新倉庫內(nèi)的鋼座架的數(shù)據(jù);結(jié)果為否,則封鎖鋼座架的垛位;
50、基于火車掃描結(jié)果,根據(jù)經(jīng)模塊m2劃分的無人行車掃描范圍以及無人行車的掃描方向,判斷火車車廂是否掃描完整;結(jié)果為是,則對激光數(shù)據(jù)里的火車車廂數(shù)據(jù)進(jìn)行更新,得出所有的火車車廂數(shù)據(jù);結(jié)果為否,則將激光數(shù)據(jù)進(jìn)行拼接,獲得完整的火車車廂數(shù)據(jù),重新判斷火車車廂是否掃描完整。
51、優(yōu)選地,所述無人行車的大車運(yùn)動(dòng)方向作為x方向、無人行車的小車運(yùn)動(dòng)方向作為y方向、無人行車的夾鉗方向作為z方向;
52、所述鋼座架掃描結(jié)果為鋼座架掃描結(jié)果電文;所述火車掃描結(jié)果為火車掃描結(jié)果電文;
53、在所述模塊m1中,通過wms系統(tǒng)的畫面,確認(rèn)火車車廂的節(jié)數(shù);
54、在所述模塊m2中:
55、模塊m2.1:基于火車車廂的節(jié)數(shù),劃定掃描范圍,并且在檢測到無人行車到達(dá)掃描起點(diǎn)時(shí),給無人行車發(fā)送移動(dòng)到掃描終點(diǎn)的掃描指令;
56、模塊m2.2:接收掃描指令,啟動(dòng)無人行車掃描經(jīng)模塊m2.1劃定的掃描范圍,發(fā)送火車鋼座架聯(lián)合掃描電文給激光掃描系統(tǒng),觸發(fā)激光掃描系統(tǒng)掃描火車車廂和鋼座架,得到激光數(shù)據(jù);
57、在所述模塊m3中:
58、模塊m3.1:通過激光掃描系統(tǒng),對激光數(shù)據(jù)進(jìn)行分割與整合,得到單條數(shù)據(jù);
59、模塊m3.2:通過激光掃描系統(tǒng)的點(diǎn)云處理庫,即pcl,判斷激光掃描儀是否掃描了完整的鋼座架;結(jié)果為是,則計(jì)算每摞鋼座架的空間信息;結(jié)果為否,則繼續(xù)進(jìn)行掃描;
60、所述空間信息,包括:鋼座架的堆放位置、鋼座架的層數(shù)與鋼座架的層高;
61、模塊m3.3:通過激光掃描系統(tǒng)的算法模塊與點(diǎn)云數(shù)據(jù)庫,對激光數(shù)據(jù)的單條數(shù)據(jù)進(jìn)行計(jì)算,生成鋼座架掃描結(jié)果電文與火車掃描結(jié)果電文;
62、模塊m3.4:發(fā)送鋼座架掃描結(jié)果電文給wms系統(tǒng);發(fā)送火車掃描結(jié)果電文給wms系統(tǒng);
63、所述算法模塊,用于計(jì)算激光數(shù)據(jù),生成掃描結(jié)果電文。
64、優(yōu)選地,在所述模塊m2.1中:
65、模塊m2.1.1:基于作為火車車廂的節(jié)數(shù)的火車掃描范圍,為多個(gè)無人行車劃分掃描范圍;所述無人行車的數(shù)量,為2臺以上;
66、模塊m2.1.2:通過wms系統(tǒng),劃定經(jīng)模塊m2.1.1得到的無人行車的x方向范圍;
67、模塊m2.1.3:根據(jù)經(jīng)模塊m2.1.1劃定的掃描范圍與wms系統(tǒng)內(nèi)存儲(chǔ)的鋼座架的已有信息,結(jié)合鋼座架放置位置的中心點(diǎn)和放置的鋼座架類型,計(jì)算出每垛鋼座架的x方向范圍和y方向范圍;
68、模塊m2.1.4:根據(jù)掃描范圍,所述無人行車的x方向范圍與每垛鋼座架的信息,生成掃描指令并發(fā)送給無人行車;
69、在所述模塊m3.2中:
70、模塊m3.2.1:整合激光數(shù)據(jù)中的點(diǎn)云數(shù)據(jù),判斷激光掃描儀是否掃描了完整的鋼座架;結(jié)果為是,則執(zhí)行模塊m3.2.2;結(jié)果為否,則繼續(xù)進(jìn)行掃描;
71、模塊m3.2.2:通過點(diǎn)云處理庫,對掃描到的鋼座架的支點(diǎn)點(diǎn)云進(jìn)行裁切,裁剪出鋼座架點(diǎn)云;
72、模塊m3.2.3:使用對應(yīng)的鋼座架模板匹配裁剪出的鋼座架點(diǎn)云,計(jì)算出鋼座架的位姿與抓取點(diǎn)。
73、模塊m3.2.4:基于鋼座架的位姿與抓取點(diǎn),通過平面擬合算法,對裁剪出的鋼座架點(diǎn)云進(jìn)行平面擬合與聚類,從而得到每一層鋼座架的點(diǎn)云數(shù)據(jù),并且根據(jù)每一層鋼座架的點(diǎn)云數(shù)據(jù),計(jì)算出作為空間信息的鋼座架的層數(shù)以及鋼座架每層的層高;
74、在所述模塊m3.3中:
75、模塊m3.3.1:對目標(biāo)區(qū)域內(nèi)的火車車廂進(jìn)行識別,計(jì)算對應(yīng)火車車廂的邊框位置,得到邊緣數(shù)據(jù),并判斷激光數(shù)據(jù)是否存在異常;結(jié)果為是,則拋出異常的激光數(shù)據(jù);結(jié)果為否,則執(zhí)行模塊m3.3.2;
76、模塊m3.3.2:采用聚類算法識別符合火車車廂特征的激光數(shù)據(jù),并通過凹部特征識別計(jì)算每節(jié)火車車廂的頭尾的節(jié)點(diǎn)數(shù)據(jù),計(jì)算火車車廂車皮的邊緣數(shù)據(jù),結(jié)合所述節(jié)點(diǎn)數(shù)據(jù)和所述邊緣數(shù)據(jù)為車皮信息;
77、所述凹部特征識別,即通過判斷激光線的形狀是否滿足凹部要求,識別火車車廂;所述凹部要求,取決于火車的截面形狀;
78、模塊m3.3.3:根據(jù)車皮信息,拼接不完整火車車廂,得出總火車節(jié)數(shù);對激光數(shù)據(jù)的單條數(shù)據(jù)進(jìn)行計(jì)算,生成并且發(fā)出鋼座架掃描結(jié)果電文與火車掃描結(jié)果電文。
79、優(yōu)選地,在所述模塊m4中:
80、模塊m4.1:基于鋼座架掃描結(jié)果電文,判斷激光數(shù)據(jù)是否包含完整的鋼座架的數(shù)據(jù);結(jié)果為是,則更新倉庫內(nèi)的鋼座架的數(shù)據(jù);結(jié)果為否,則封鎖鋼座架的垛位;
81、基于火車掃描結(jié)果電文中的火車相對索引編號和無人行車掃描范圍內(nèi)的實(shí)際火車車廂編號,依次對應(yīng)實(shí)際的火車車廂號,從而分辨出火車各個(gè)部分的激光數(shù)據(jù);所述部分的劃分,依據(jù)無人行車的數(shù)量確定;
82、模塊m4.2:基于火車頭部的激光數(shù)據(jù)或火車尾部的激光數(shù)據(jù),判斷激光掃描儀是否掃描完整的火車車廂;結(jié)果為是,則執(zhí)行模塊m4.3;結(jié)果為否,則更新掃描得到的火車車廂邊框部分的點(diǎn)數(shù)據(jù);
83、模塊m4.3:判斷激光數(shù)據(jù)中的火車車廂尺寸是否符合該火車車廂型號對應(yīng)的理論尺寸;結(jié)果為是,則更新實(shí)際火車車廂邊框的點(diǎn)數(shù)據(jù),得出所有的火車車廂數(shù)據(jù);結(jié)果為否,則摒棄火車車廂邊框的點(diǎn)數(shù)據(jù);
84、模塊m4.4:基于火車中部的激光數(shù)據(jù),判斷激光掃描儀是否掃描完整的火車車廂;結(jié)果為是,則更新實(shí)際火車車廂邊框的點(diǎn)數(shù)據(jù);結(jié)果為否,則將掃描得到的火車車廂邊框部分的點(diǎn)數(shù)據(jù)與模塊m4.2中的掃描得到的火車車廂邊框部分的點(diǎn)數(shù)據(jù)進(jìn)行拼接,組成完整的火車車廂邊框的點(diǎn)數(shù)據(jù),重新執(zhí)行模塊m4.2。
85、優(yōu)選地,在所述模塊m4.1中:
86、通過wms系統(tǒng),接收鋼座架掃描結(jié)果電文的鋼座架垛位信息,得出鋼座架垛位的四個(gè)頂點(diǎn)的坐標(biāo)信息;基于坐標(biāo)信息,判斷激光數(shù)據(jù)是否包含完整的鋼座架的數(shù)據(jù);結(jié)果為是,則進(jìn)一步更新倉庫內(nèi)的鋼座架的數(shù)據(jù);結(jié)果為否,則封鎖鋼座架的垛位;
87、在所述模塊m2中,鋼座架沿火車旁擺放,令激光掃描儀同時(shí)掃描火車車廂和鋼座架。
88、與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的有益效果:
89、1、本發(fā)明調(diào)整鋼座架的布置,通過將庫區(qū)內(nèi)的鋼座架換到火車道旁擺放,實(shí)現(xiàn)了系統(tǒng)在掃描火車的同時(shí)將火車旁的鋼座架區(qū)域一同掃描。
90、2、本發(fā)明通過多臺無人行車同時(shí)掃描,也就是說,通過多臺無人行車聯(lián)合掃描的方式將掃描數(shù)據(jù)進(jìn)行拼接,提高了作業(yè)準(zhǔn)備的效率。
91、3、本發(fā)明通過鋼座架的掃描,提供各垛鋼座架的層數(shù)、層高、中心點(diǎn)等關(guān)鍵信息,也就是說,能夠獲得每一摞鋼座架的層數(shù)、層高與中心點(diǎn)等信息,與人工盤庫的信息進(jìn)行核對,提高了鋼座架信息的準(zhǔn)確性。