本發(fā)明涉及機器人自動識別領域,尤其是一種排列識別歸位方法。
背景技術(shù):
在倉儲管理中,不同貨物分區(qū)分類是基本功能,多種貨物的搬運及位置調(diào)換是不可避免的問題。現(xiàn)在大多數(shù)貨物管理還依靠人工登記然后給出解決方案再進行搬運的落后管理方式,效率低下,浪費了大量的人力物力。尤其是在貨倉滿空間的狀況下,貨物調(diào)運更是令人頭疼的問題,處理不好極其容易發(fā)生混亂。因此,建立計算機自動識別并自動給出調(diào)運方案的智能化的自動管理系統(tǒng)是解決問題的最好選擇。
技術(shù)實現(xiàn)要素:
本發(fā)明目的在于為搬運物資自動化控制系統(tǒng)提供一種能夠有效處理滿倉狀態(tài)貨物調(diào)運的基于氣動直角型復合運動平臺的歸位方法。
為實現(xiàn)上述目的,采用了以下技術(shù)方案:本發(fā)明主要包括貨物、氣動機械手,所述貨物安放位置共分為上區(qū)域、左區(qū)域、中區(qū)域、右區(qū)域、下區(qū)域5個區(qū)域,每個區(qū)域各有9個貨物位置,5個區(qū)域呈“十”字型魔方排列;每個區(qū)域中的9個貨物位置呈九宮格格式并按從左到右、從上到下的順序依次進行數(shù)字編號,所有貨物位置的數(shù)字編號順序按照上區(qū)域、左區(qū)域、中區(qū)域、右區(qū)域、下區(qū)域的區(qū)域順序依次進行編號,所有貨物位置共有45個編號;在“十”字型魔方排列的上、下、左、右區(qū)域外側(cè)分別各安裝3個輔助推動氣缸,且對12個輔助推動氣缸進行編號,輔助推動氣缸推動貨物運動;
設定魔方上區(qū)域的貨物代表顏色為紅色、魔方左區(qū)域的貨物代表顏色為黑色、魔方中區(qū)域的貨物代表顏色為藍色、魔方右區(qū)域的貨物代表顏色為綠色、魔方下區(qū)域的貨物代表顏色為黃色;
所述歸位方法只對中間區(qū)域的魔方進行判定,該判定按從左至右、從上至下的順序進行,為該判定過程加入一個標志,設為“能動標志”,能動標志初始為0,且每次開始中間區(qū)域魔方的判定時都重置為0;如果被判定的魔方是紅色,則判斷該魔方所處列的上方區(qū)域(紅色歸位區(qū)域)的3個位置是否都是紅色,若是,則直接進行下一個魔方的判定;若否,則將該魔方向紅色靠攏,并使能動標志加1;如被判定的魔方是黃色,理同紅色;如果被判定的魔方是黑色,則判斷該魔方所處行的左邊區(qū)域(黑色歸位區(qū)域)的3個位置是否都是黑色,若是,則直接進行下一個魔方的判定;若否,則該魔方向黑色靠攏,并使能動標志加1;如果被判定的魔方是綠色,理同黑色;
所述方法的具體步驟如下:
步驟1,魔方中的貨物呈十字型隨機分布;
步驟2,利用攝像頭采集魔方位置分布信息,將處理后的圖像劃分為若干個區(qū)域,使每個魔方都有各自對應的區(qū)域,對魔方所處區(qū)域中各像素的顏色進行判定并儲存;系統(tǒng)的魔方共5種顏色,4種顏色的魔方都歸位后,剩下的那種顏色的魔方必然歸位,只需考慮4種顏色的歸位情況,以周圍4個方向的顏色為基準,只對中間的魔方進行判定,若為紅色,則移往紅色魔方區(qū)域;若為黑色,則移往黑色魔方區(qū)域;若為綠色,則移往綠色魔方區(qū)域;若為黃色,則移往黃色魔方區(qū)域;
步驟3,令當魔方歸位標志位等于0時,結(jié)束程序;程序運行開始令魔方歸位標志位置1,能動標志位置0;按從左至右從上到下的順序?qū)χ袇^(qū)域19-27號位置依次進行顏色掃描判別,假如掃描到第一個非藍魔方顏色為紅色,則令此魔方向上區(qū)域(紅色區(qū)域)靠攏;向紅色區(qū)域靠攏的具體方法是將被抓取的魔方上方第一個魔方的顏色給到被抓取的魔方,將被抓取的魔方上方第二個魔方的顏色給到被抓取的魔方上方的第一個魔方,以此類推,最后將被抓取的魔方的顏色給到位于頂端的魔方,其靠攏實施是靠四周行和列對應的12個輔助推動氣缸的伸出推動來實現(xiàn)的;若掃描的魔方為黑色,則令此魔方向左區(qū)域(黑色區(qū)域)靠攏,若掃描的魔方為綠色,則令此魔方向右區(qū)域(綠色區(qū)域)靠攏,若掃描的魔方為黃色,則令此魔方向下區(qū)域(黃色區(qū)域)靠攏,靠攏方法的實施方式與向紅色區(qū)域靠攏方法相同;
步驟4,當中區(qū)域所有的魔方都掃描判定并向?qū)恢每繑n之后,對十字型全部的45個魔方按1~45號位置依次重新進行掃描來判別魔方是否已經(jīng)全部歸位,若全部歸位,魔方歸位標志位置0,結(jié)束程序;若未全部歸位,魔方歸位標志位依然置1,記錄首個位置不對的魔方位置序號,該位置序號為十字型45個位置對應編號,為方便描述,記為m;判斷能動標志位是否為0,若不為0,結(jié)束程序,若為0,則獲取與m號魔方顏色相同的首個未歸位魔方的位置序號記為n;當m號魔方是紅色或黃色時,獲取m號魔方的列號和n號魔方的行號,若行號大于6,則將此魔方向黃色區(qū)域靠攏;若不大于6,則繼續(xù)判別,若m號的列大于n號的列,則相應魔方向黑色區(qū)域靠攏;若m號的列不大于n號的列,則相應魔方向綠色區(qū)域靠攏;若m號魔方不是紅色或黃色,獲取n號魔方的列號和m號魔方的行號,判別列是否大于6,若大于6,則令相應魔方向綠色區(qū)域靠攏,若不大于6,則繼續(xù)判別;若m號魔方的行號大于n號魔方的行號,則令相應魔方向紅色區(qū)域靠攏,若不大于,則令相應魔方向黃色區(qū)域靠攏;
步驟5,當45個魔方貨物位置全部依次掃描一遍后,重新掃描,若魔方未全部歸位,重復步驟4;若魔方全部歸位,魔方歸位標志位置0,結(jié)束程序。
進一步的,創(chuàng)建一個數(shù)組SZ[45],依次對應1-45號位置,該數(shù)組用于存儲相應魔方位置的顏色,通過改變各個位置的顏色來體現(xiàn)魔方的移動過程,獲取魔方的初始位置序列即對數(shù)組SZ[45]賦初值;從Matlab中獲取處理后的圖像的RGB三色數(shù)據(jù)的矩陣,然后根據(jù)RGB三原色數(shù)據(jù)識別出該圖上各魔方對應位置的顏色,并將其值賦予數(shù)組SZ[45]中對應的元素,從而獲得魔方的初始狀態(tài);再將數(shù)組SZ[45]中各元素的值更新到界面對應的各魔方位置上,以顯示魔方的初始狀態(tài)。
進一步的,將抓取中間的某個魔方放入上方區(qū)域(紅色歸位區(qū)域)頂端那行的行為稱之為向紅色靠攏;同理,移往左邊區(qū)域(黑色歸位區(qū)域)稱之為向黑色靠攏;移往右邊區(qū)域(綠色歸位區(qū)域)稱之為向綠色靠攏;移往下方區(qū)域(黃色歸位區(qū)域)稱之為向黃色靠攏;
所述的向紅色靠攏的方法:將被抓取的魔方上方第一個魔方的顏色給到被抓取的魔方,將被抓取的魔方上方第二個魔方的顏色給到被抓取的魔方上方的第一個魔方,以此類推,最后將被抓取的魔方的顏色給到位于頂端的魔方;向其他各色靠攏的方法與向紅色靠攏的方法基本一致,只是逐次給色的方向不同。
進一步的,在判斷所有魔方是否都已歸位的過程中,如果魔方?jīng)]有全部歸位,就記錄首個沒有歸位的魔方位置對應的顏色儲存數(shù)組元素的下標,為方便說明暫且將該下標記為a,將該魔方記為A;再確認A所處的區(qū)域,然后找到該區(qū)域外的首個顏色與該區(qū)域歸位顏色相同的魔方(查找順序與判斷魔方全部歸位的順序相同),記錄其對應的顏色儲存數(shù)組元素的下標,同樣為方便說明暫記該下標為b,記該魔方為B;根據(jù)下標a、b的值確定魔方A、B所處的行列,找到兩者行列交叉處的魔方;如果魔方A是紅色或黃色,那么判斷魔方A、B所處的列哪個大,若A的列大,則將兩者行列交叉處的魔方向左邊區(qū)域(黑色歸位區(qū)域)靠攏;若B的列大,則將兩者行列交叉處的魔方向右邊區(qū)域(綠色歸位區(qū)域)靠攏;如果魔方A是黑色、綠色或藍色,那么判斷魔方A、B所處的行哪個大,若A的行大,則將兩者行列交叉處的魔方向上方區(qū)域(紅色歸位區(qū)域)靠攏;若B的列大,則將兩者行列交叉處的魔方向下方區(qū)域(黃色歸位區(qū)域)靠攏;
進一步的,所述魔方A和B同時出現(xiàn)在中間3行或中間3列時,需要另外考慮;魔方A、B同時出現(xiàn)在中間3列的情況只會在魔方A是紅色或黃色時出現(xiàn),出現(xiàn)該情況時魔方B所處的行必定大于6,此時將與魔方B處于相同列的同時也是中間區(qū)域底端那行的魔方向黃色靠攏;魔方A、B同時出現(xiàn)在中間3行的情況只會在魔方A是黑色、綠色或藍色時出現(xiàn),出現(xiàn)該情況時魔方B所處的列必定大于6,此時將與魔方B處于相同行的同時也是中間區(qū)域最右邊那列的魔方向綠色靠攏。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點:
1、完全用計算機進行識別自動給出排列方案,不需要人工干預,大大提高了搬運效率,節(jié)省人力物力。
2、在貨物搬運領域,尤其是滿倉貨物調(diào)度方面有獨特優(yōu)勢,有較大應用價值。
3、采用“中位為先”的算法結(jié)構(gòu),在魔方的排列組合方面更有效率,減小計算量。
附圖說明
圖1為本發(fā)明方法的魔方歸位流程圖。
圖2為本發(fā)明方法的魔方和輔助推動氣缸編號圖。
圖3為本發(fā)明方法的魔方歸位方法主程序流程圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明做進一步說明:
圖1是本發(fā)明方法的魔方歸位流程圖。程序開始運行,首先檢查模塊是否全部歸位,若是,程序結(jié)束;若否,執(zhí)行第一層循環(huán):只對中區(qū)域的魔方進行判定,若為紅色,則移往紅色魔方區(qū)域;若為黑色,則移往黑色魔方區(qū)域;若為綠色,則移往綠色魔方區(qū)域;若為黃色,則移往黃色魔方區(qū)域;當中區(qū)域所有的魔方都掃描判定并向?qū)恢每繑n之后,繼續(xù)執(zhí)行第二層循環(huán):對全部的魔方依次重新進行掃描來判別魔方是否已經(jīng)全部歸位,若全部歸位,結(jié)束程序;若未全部歸位,則將目標模塊移動到中區(qū)域,然后返回到第一層循環(huán),具體方法如上述步驟4所示;當45個魔方位置全部依次掃描一遍后,重新掃描,若魔方未全部歸位,重復上述循環(huán);若魔方全部歸位,結(jié)束程序。
本發(fā)明主要包括貨物、氣動機械手,如圖2所示,所述貨物安放位置共分為上區(qū)域、左區(qū)域、中區(qū)域、右區(qū)域、下區(qū)域5個區(qū)域,每個區(qū)域各有9個貨物位置,5個區(qū)域呈“十”字型魔方排列;每個區(qū)域中的9個貨物位置呈九宮格格式并按從左到右、從上到下的順序依次進行數(shù)字編號,所有貨物位置的數(shù)字編號順序按照上區(qū)域、左區(qū)域、中區(qū)域、右區(qū)域、下區(qū)域的區(qū)域順序依次進行編號,所有貨物位置共有45個編號;在“十”字型魔方排列的上、下、左、右區(qū)域外側(cè)分別各安裝3個輔助推動氣缸,且對12個輔助推動氣缸進行編號,輔助推動氣缸推動貨物運動;其中,上區(qū)域的編號為“1~9”,左區(qū)域的編號為“10~18”、中區(qū)域的編號為“19~27”、右區(qū)域的編號為“28~36”、下區(qū)域的編號為“37~45”。上區(qū)域外側(cè)的輔助推動氣缸編號為“46、47、48”,左區(qū)域外側(cè)的輔助推動氣缸編號為“49、50、51”,右區(qū)域外側(cè)的輔助推動氣缸編號為“52、53、54”,下區(qū)域外側(cè)的輔助推動氣缸編號為“55、56、57”。
本發(fā)明為方便說明采用此顏色標注,但并不局限于此;設定魔方上區(qū)域的貨物代表顏色為紅色、魔方左區(qū)域的貨物代表顏色為黑色、魔方中區(qū)域的貨物代表顏色為藍色、魔方右區(qū)域的貨物代表顏色為綠色、魔方下區(qū)域的貨物代表顏色為黃色;
所述歸位方法只對中間區(qū)域的魔方進行判定,該判定按從左至右、從上至下的順序進行,為該判定過程加入一個標志,設為“能動標志”,能動標志初始為0,且每次開始中間區(qū)域魔方的判定時都重置為0;如果被判定的魔方是紅色,則判斷該魔方所處列的上方區(qū)域(紅色歸位區(qū)域)的3個位置是否都是紅色,若是,則直接進行下一個魔方的判定;若否,則將該魔方向紅色靠攏,并使能動標志加1;如被判定的魔方是黃色,理同紅色;如果被判定的魔方是黑色,則判斷該魔方所處行的左邊區(qū)域(黑色歸位區(qū)域)的3個位置是否都是黑色,若是,則直接進行下一個魔方的判定;若否,則該魔方向黑色靠攏,并使能動標志加1;如果被判定的魔方是綠色,理同黑色;
結(jié)合圖3,所述方法的具體步驟如下:
步驟1,魔方中的貨物呈十字型隨機分布;
步驟2,利用攝像頭采集魔方位置分布信息,將處理后的圖像劃分為若干個區(qū)域,使每個魔方都有各自對應的區(qū)域,對魔方所處區(qū)域中各像素的顏色進行判定并儲存;系統(tǒng)的魔方共5種顏色,4種顏色的魔方都歸位后,剩下的那種顏色的魔方必然歸位,只需考慮4種顏色的歸位情況,以周圍4個方向的顏色為基準,只對中間的魔方進行判定,若為紅色,則移往紅色魔方區(qū)域;若為黑色,則移往黑色魔方區(qū)域;若為綠色,則移往綠色魔方區(qū)域;若為黃色,則移往黃色魔方區(qū)域;
步驟3,令當魔方歸位標志位等于0時,結(jié)束程序;程序運行開始令魔方歸位標志位置1,能動標志位置0;按從左至右從上到下的順序?qū)χ袇^(qū)域19-27號位置依次進行顏色掃描判別,假如掃描到第一個非藍魔方顏色為紅色,則令此魔方向上區(qū)域(紅色區(qū)域)靠攏;向紅色區(qū)域靠攏的具體方法是將被抓取的魔方上方第一個魔方的顏色給到被抓取的魔方,將被抓取的魔方上方第二個魔方的顏色給到被抓取的魔方上方的第一個魔方,以此類推,最后將被抓取的魔方的顏色給到位于頂端的魔方,其靠攏實施是靠四周行和列對應的12個輔助推動氣缸的伸出推動來實現(xiàn)的;若掃描的魔方為黑色,則令此魔方向左區(qū)域(黑色區(qū)域)靠攏,若掃描的魔方為綠色,則令此魔方向右區(qū)域(綠色區(qū)域)靠攏,若掃描的魔方為黃色,則令此魔方向下區(qū)域(黃色區(qū)域)靠攏,靠攏方法的實施方式與向紅色區(qū)域靠攏方法相同;
步驟4,當中區(qū)域所有的魔方都掃描判定并向?qū)恢每繑n之后,對十字型全部的45個魔方按1~45號位置依次重新進行掃描來判別魔方是否已經(jīng)全部歸位,若全部歸位,魔方歸位標志位置0,結(jié)束程序;若未全部歸位,魔方歸位標志位依然置1,記錄首個位置不對的魔方位置序號,該位置序號為十字型45個位置對應編號,為方便描述,記為m;判斷能動標志位是否為0,若不為0,結(jié)束程序,若為0,則獲取與m號魔方顏色相同的首個未歸位魔方的位置序號記為n;當m號魔方是紅色或黃色時,獲取m號魔方的列號和n號魔方的行號,若行號大于6,則將此魔方向黃色區(qū)域靠攏;若不大于6,則繼續(xù)判別,若m號的列大于n號的列,則相應魔方向黑色區(qū)域靠攏;若m號的列不大于n號的列,則相應魔方向綠色區(qū)域靠攏;若m號魔方不是紅色或黃色,獲取n號魔方的列號和m號魔方的行號,判別列是否大于6,若大于6,則令相應魔方向綠色區(qū)域靠攏,若不大于6,則繼續(xù)判別;若m號魔方的行號大于n號魔方的行號,則令相應魔方向紅色區(qū)域靠攏,若不大于,則令相應魔方向黃色區(qū)域靠攏;
步驟5,當45個魔方貨物位置全部依次掃描一遍后,重新掃描,若魔方未全部歸位,重復步驟4;若魔方全部歸位,魔方歸位標志位置0,結(jié)束程序。
創(chuàng)建一個數(shù)組SZ[45],依次對應1-45號位置,該數(shù)組用于存儲相應魔方位置的顏色,通過改變各個位置的顏色來體現(xiàn)魔方的移動過程,獲取魔方的初始位置序列即對數(shù)組SZ[45]賦初值;從Matlab中獲取處理后的圖像的RGB三色數(shù)據(jù)的矩陣,然后根據(jù)RGB三原色數(shù)據(jù)識別出該圖上各魔方對應位置的顏色,并將其值賦予數(shù)組SZ[45]中對應的元素,從而獲得魔方的初始狀態(tài);再將數(shù)組SZ[45]中各元素的值更新到界面對應的各魔方位置上,以顯示魔方的初始狀態(tài)。
將抓取中間的某個魔方放入上方區(qū)域(紅色歸位區(qū)域)頂端那行的行為稱之為向紅色靠攏;同理,移往左邊區(qū)域(黑色歸位區(qū)域)稱之為向黑色靠攏;移往右邊區(qū)域(綠色歸位區(qū)域)稱之為向綠色靠攏;移往下方區(qū)域(黃色歸位區(qū)域)稱之為向黃色靠攏;
所述的向紅色靠攏的方法:將被抓取的魔方上方第一個魔方的顏色給到被抓取的魔方,將被抓取的魔方上方第二個魔方的顏色給到被抓取的魔方上方的第一個魔方,以此類推,最后將被抓取的魔方的顏色給到位于頂端的魔方;向其他各色靠攏的方法與向紅色靠攏的方法基本一致,只是逐次給色的方向不同。
在完成一次中間區(qū)域魔方的判定后,判斷是否所有魔方都已歸位(判斷順序依從魔方編號,判斷順序為編號由小到大),若是,則魔方歸位完成;若否,則繼續(xù)對中間區(qū)域的魔方進行判定;按此循環(huán),會出現(xiàn)中間區(qū)域的魔方已經(jīng)無法移動,而魔方還未完成歸位的情況,在這種情況下,就用到了之前定下的能動標志;出現(xiàn)上述情況是,能動標志為0,此時需要打破死局,方法如下:
在判斷所有魔方是否都已歸位的過程中,如果魔方?jīng)]有全部歸位,就記錄首個沒有歸位的魔方位置對應的顏色儲存數(shù)組元素的下標,為方便說明暫且將該下標記為a,將該魔方記為A;再確認A所處的區(qū)域,然后找到該區(qū)域外的首個顏色與該區(qū)域歸位顏色相同的魔方(查找順序與判斷魔方全部歸位的順序相同),記錄其對應的顏色儲存數(shù)組元素的下標,同樣為方便說明暫記該下標為b,記該魔方為B;根據(jù)下標a、b的值確定魔方A、B所處的行列,找到兩者行列交叉處的魔方;如果魔方A是紅色或黃色,那么判斷魔方A、B所處的列哪個大,若A的列大,則將兩者行列交叉處的魔方向左邊區(qū)域(黑色歸位區(qū)域)靠攏;若B的列大,則將兩者行列交叉處的魔方向右邊區(qū)域(綠色歸位區(qū)域)靠攏;如果魔方A是黑色、綠色或藍色,那么判斷魔方A、B所處的行哪個大,若A的行大,則將兩者行列交叉處的魔方向上方區(qū)域(紅色歸位區(qū)域)靠攏;若B的列大,則將兩者行列交叉處的魔方向下方區(qū)域(黃色歸位區(qū)域)靠攏;
上述的魔方A和B同時出現(xiàn)在中間3行或中間3列時,需要另外考慮;魔方A、B同時出現(xiàn)在中間3列的情況只會在魔方A是紅色或黃色時出現(xiàn),出現(xiàn)該情況時魔方B所處的行必定大于6,此時將與魔方B處于相同列的同時也是中間區(qū)域底端那行的魔方向黃色靠攏;魔方A、B同時出現(xiàn)在中間3行的情況只會在魔方A是黑色、綠色或藍色時出現(xiàn),出現(xiàn)該情況時魔方B所處的列必定大于6,此時將與魔方B處于相同行的同時也是中間區(qū)域最右邊那列的魔方向綠色靠攏;
基于LabWindows CVI歸位方法設計:
step 1:打亂初始魔方位置;
step 2:掃描中心區(qū)域編號為18-26的可移動魔方,并進行相應魔方的移動;
step 3:如果中心區(qū)域無可移動魔方,掃描其他位置找到可移動魔方,并將其移動到指定中心位置,返回執(zhí)行step 2;如果魔方全部歸位,則結(jié)束程序;
以上所述的實施例僅僅是對本發(fā)明的優(yōu)選實施方式進行描述,并非對本發(fā)明的范圍進行限定,在不脫離本發(fā)明設計精神的前提下,本領域普通技術(shù)人員對本發(fā)明的技術(shù)方案做出的各種變形和改進,均應落入本發(fā)明權(quán)利要求書確定的保護范圍內(nèi)。