本發(fā)明涉及一種集裝箱裝卸用移動機器人控制系統(tǒng)及方法。
背景技術(shù):
隨著勞動力成本的提高,研制用來代替人工的設(shè)備,提高集裝箱裝卸的自動化水平是必然要求。研制針對集裝箱中裝卸貨物的機器人來代替人工,可以減少勞動力成本,提高工作效率。但是這種用途的機器人大多是固定式的,不能移動,自動化程度不高。關(guān)于移動式機器人在集裝箱中的自動定位方面的研究也比較少。這些移動式機器人的寬度大多與集裝箱寬度相差不大,運動范圍比較小,手動控制機器人難于使機器人精確行駛在預定的路徑,而且費時費力。
技術(shù)實現(xiàn)要素:
針對上述問題,本發(fā)明的目的是提供一種集裝箱裝卸用移動機器人控制系統(tǒng)及方法,通過無線和激光傳感器來實現(xiàn)移動機器人自動導航和手動控制功能。
一種集裝箱裝卸用移動機器人控制系統(tǒng)包括多個機器人端、一個無線發(fā)射模塊和一個用戶端。為實現(xiàn)上述目的,本發(fā)明采取以下技術(shù)方案:
所述用戶端包括一個上位機和一個無線操作手柄,所述上位機為植入控制軟件和niopcserver軟件的pc機;控制軟件通過無線通信與無線操作手柄和多個機器人端的激光傳感器進行交互;控制軟件可以獲取激光傳感器和無線操作手柄的消息,并調(diào)用控制軟件的相應模塊處理;產(chǎn)生的控制信息傳送給niopcserver軟件;由niopcserver軟件通過無線發(fā)送給控制器;控制軟件和niopcserver軟件可以通過ip地址連接不同的激光傳感器和控制器。
所述多個機器人端中的每1個機器人端包括激光傳感器和機器人;機器人又包含控制器、驅(qū)動器、伺服電機、機械手和機器人本體;控制器負責接收來自用戶端的控制信息并做相應處理發(fā)送給驅(qū)動器,也負責反饋控制器和驅(qū)動器信息給上位機中的niopcserver軟件;激光傳感器安裝在機器人本體前側(cè)中心位置,處于機器人機械手下方。
所述無線發(fā)射模塊是采用一個無線路由器來實現(xiàn)用戶端和多個機器人端的控制器以及激光傳感器在一定距離內(nèi)的數(shù)據(jù)對傳。
所述上位機中的控制軟件與多個機器人端的控制器的通信需要niopcserver軟件作為中介,其與niopcserver軟件的數(shù)據(jù)交互通過labview的datasocket控件來實現(xiàn)。
所述上位機中的控制軟件將無線操作手柄的動作映射成鍵盤消息,并有相應的鍵盤消息相應模塊,可實現(xiàn)通過手柄控制機器人的運動。
一種集裝箱裝卸用移動機器人控制方法采用上述系統(tǒng)進行操作,具體操作步驟如下:
1)所述上位機的控制軟件通過visualstudio的c#窗體應用程序模塊開發(fā),為用戶提供了人機交互界面,其中visualstudio工具需安裝可使用labview控件的插件;控制軟件功能模塊主要包括應用層模塊、獲取激光傳感器數(shù)據(jù)模塊、數(shù)據(jù)處理模塊、運動控制模塊、機械手運動控制模塊、手柄動作映射為鍵盤消息模塊、鍵盤消息響應模塊、獲取控制器反饋的信息模塊;
2)niopcserver軟件需做相應的配置,設(shè)置要連接的機器人控制器的ip地址,分配一些內(nèi)存地址接收來自控制器的信息;成功連接控制器時,niopcserver軟件輪詢檢測是否有數(shù)據(jù)到達;
3)在控制軟件的應用層模塊可以設(shè)置機器人運行模式,模式分為自動和自動;可以設(shè)置ip地址連接要通信的激光傳感器,連接成功時則調(diào)用獲取激光傳感器數(shù)據(jù)模塊;獲取激光傳感器數(shù)據(jù)模塊開始周期性地獲取激光傳感器掃描集裝箱得到的數(shù)據(jù),每一次獲取的數(shù)據(jù)都會調(diào)用數(shù)據(jù)處理模塊進行處理,得到機器人相對于集裝箱的實時位姿,得到機器人實際路徑與預定路徑的實時偏差;另外根據(jù)激光傳感器測量得到的集裝箱尺寸以及集裝箱的實際尺寸,可以得到激光傳感器測量的誤差;根據(jù)這誤差,可對上述得到的機器人位姿和路徑偏差進行調(diào)整;
4)每一次數(shù)據(jù)處理模塊執(zhí)行完畢時會判斷機器人運行模式,當處于自動模式時,啟動運動控制模塊,將調(diào)整后的路徑偏差作為該模塊的輸入,得到相應的輸出控制值;輸出的控制值通過niopcserver軟件發(fā)送給對應的機器人控制器,實現(xiàn)機器人自動導航,安全進入集裝箱中;
5)通過控制軟件的應用層模塊可以接收無線操作手柄的動作信號,當機器人運行模式為手動時,將啟動手柄動作映射為鍵盤消息模塊以及鍵盤消息響應模塊,輸出相應的控制值給niopcserver軟件,實現(xiàn)通過無線操作手柄控制機器人的運動;
6)通過控制軟件的應用層模塊用戶可以發(fā)出指令調(diào)用機械手運動控制模塊,實現(xiàn)機器人機械手裝卸貨物的功能;
7)通過獲取控制器反饋的信息模塊可以實時監(jiān)測niopcserver軟件中分配的內(nèi)存地址中的數(shù)據(jù)變化,得到機器人的狀態(tài)信息。
在所述步驟3)中,所述數(shù)據(jù)處理模塊首先對激光傳感器掃描得到的數(shù)據(jù)進行過濾,去除不屬于集裝箱的數(shù)據(jù),之后把數(shù)據(jù)進行聚類和分段,按集裝箱的矩形特征劃分為三個數(shù)組的數(shù)據(jù),并把三個數(shù)組數(shù)據(jù)分別利用最小二乘法擬合出三條直線,得到機器人相對預定路徑的偏角δθ以及機器人前側(cè)中心點到集裝箱兩側(cè)面和前側(cè)的距離,再接著求激光傳感器測量的誤差并把結(jié)果進行調(diào)整;機器人相對預定路徑的偏距可按如下公式求得:
其中,w表示機器人寬度,m1表示右上角角點到集裝箱右側(cè)面的距離,m3表示左上角角點到集裝箱左側(cè)面的距離,m2表示右下角角點到集裝箱右側(cè)面的距離,m4表示左下角角點到集裝箱左側(cè)面的距離。
在所述步驟4)中,所述的運動控制模塊在所述步驟3)求得的數(shù)據(jù)基礎(chǔ)上判斷d2即機器人前側(cè)中心點到集裝箱前側(cè)面的距離是否接近目標距離,若是,則給停止運動命令,反之,判斷d2是否大于目標距離。若d2大于目標距離則應給出機器人前進運動命令,反之給出機器人后退運動命令。若機器人此時的狀態(tài)繼續(xù)運動時會碰撞到集裝箱,則應根據(jù)機器人的狀態(tài)對機器人微調(diào);若機器人繼續(xù)運動時不會碰撞到集裝箱,則接著判斷機器人此時是否滿足
本發(fā)明與現(xiàn)有技術(shù)相比較,具有如下顯而易見的突出實質(zhì)性特點和顯著技術(shù)進步:
1、用一個操作面板控制多個移動機器人,可降低人工成本、提高生產(chǎn)效率、增加經(jīng)濟效益,促進工業(yè)自動化的發(fā)展水平。
2、采用無線通信代替線纜,因此降低了成本,使用更加方便,且克服了線纜限制。
3、提高移動機器人的定位精度,進而提高了定位后裝卸貨物的質(zhì)量。
4、使用激光傳感器能避免碰撞到集裝箱或障礙物,使得機器人運動過程中更加安全。
附圖說明
圖1是本發(fā)明實施例的移動機器人控制系統(tǒng)的結(jié)構(gòu)框圖。
圖2是本發(fā)明實施例的移動機器人結(jié)構(gòu)示意圖。
圖3是本發(fā)明中移動機器人控制系統(tǒng)的體系結(jié)構(gòu)框圖。
圖4是本發(fā)明中移動機器人控制系統(tǒng)的工作流程框圖。
圖5是本發(fā)明中移動機器人控制系統(tǒng)的控制軟件數(shù)據(jù)處理模塊的程序框圖。
圖6是本發(fā)明實時例的移動機器人在集裝箱中的實時位置示意圖。
圖7是本發(fā)明中移動機器人控制系統(tǒng)的控制軟件運動控制模塊的程序框圖。
【標號說明】:1-激光傳感器,2-控制器,3-驅(qū)動器,4-伺服電機,5-機器人左右履帶,6-機器人機械手,7-無線路由器,8-上位機,9-無線操作手柄。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明的進行詳細的描述。
實施例一,參見圖1-圖3,本集裝箱裝卸用移動機器人控制系統(tǒng)包括多個機器人端ⅰ、一個無線發(fā)射模塊ⅱ和一個用戶端ⅲ。所述用戶端ⅲ包括一個上位機8和一個無線操作手柄9,所述上位機8為植入控制軟件和niopcserver軟件的pc機。該控制軟件通過無線通信與無線操作手柄9和多個機器人端ⅰ中的激光傳感器1進行交互??刂栖浖@取激光傳感器n和無線操作手柄9的消息,并調(diào)用控制軟件的相應模塊處理。產(chǎn)生的控制信息傳送給niopcserver軟件,由niopcserver軟件通過無線發(fā)送給機器人n中的控制器2??刂栖浖蚽iopcserver軟件通過ip地址連接不同的激光傳感器1和機器人控制器2。
所述多個機器人端ⅰ中的每1個機器人端包括激光傳感器1和機器人。機器人又包含控制器2、驅(qū)動器3、伺服電機4、機械手6和機器人本體??刂破?負責接收來自用戶端ⅲ的控制信息并做相應處理發(fā)送給驅(qū)動器3,也負責反饋控制器2和驅(qū)動器3的信息給上位機8中的niopcserver軟件。激光傳感器1安裝在機器人本體前側(cè)中心位置,處于機器人機械手6下方。
所述無線發(fā)射模塊ⅱ是采用一個無線路由器7來實現(xiàn)用戶端ⅲ和多個機器人端ⅰ的控制器2以及激光傳感器1在一定距離內(nèi)的數(shù)據(jù)對傳。
實施例二,本實施例與實施例一基本相同,特別之處如下:所述用戶端ⅲ的上位機8中的控制軟件與多個機器人端ⅰ中的控制器2的通信需要niopcserver軟件作為中介,其與niopcserver軟件的數(shù)據(jù)交互通過labview的datasocket控件來實現(xiàn)。控制軟件將無線操作手柄9的動作映射成鍵盤消息,并有相應的鍵盤消息響應模塊,可實現(xiàn)通過該手柄9控制機器人n的運動。
實施例三,如圖1所示,本實施例提供一種集裝箱裝卸用移動機器人控制系統(tǒng),包括多個機器人端ⅰ、一個無線發(fā)射模塊ⅱ和一個用戶端ⅲ。一個用戶端ⅲ包括一個上位機8和一個無線操作手柄9。一個無線發(fā)射模塊ⅱ,僅用一個無線路由器7即可實現(xiàn)用戶端ⅲ和多個機器人端ⅰ的一個控制器2以及激光傳感器1在一定距離內(nèi)的數(shù)據(jù)對傳。如圖2所示,是本實施例中的移動機器人結(jié)構(gòu)示意圖,采用履帶式底盤,后輪驅(qū)動,包含控制器2、驅(qū)動器3、伺服電機4和機械手6。多個機器人端ⅰ中的每1個機器人端包含了一個激光傳感器1和一個機器人,激光傳感器1安裝在機器人前側(cè)中心位置,處于機器人機械手6下方。
如圖3所示,是移動機器人控制系統(tǒng)的體系結(jié)構(gòu)框圖,上位機8包含了一個控制軟件和一個niopcserver軟件??刂栖浖ㄟ^無線通信與無線操作手柄9和多個機器人端ⅰ中的一個激光傳感器1進行交互??刂栖浖@取激光傳感器1和無線操作手柄9的消息,并調(diào)用控制軟件的相應模塊進行處理。產(chǎn)生的控制信息如機器人運動方向、運動速度、左右履帶速度比等傳送給niopcserver軟件。由niopcserver軟件通過wifi發(fā)送給相應的機器人控制器2??刂栖浖蚽iopcserver軟件通過設(shè)置ip地址連接不同的激光傳感器1和機器人控制器2??刂破?負責接收來自用戶端ⅲ的niopcserver軟件的控制信息并做相應處理發(fā)送給驅(qū)動器3,驅(qū)動器3再把控制信息轉(zhuǎn)化為電流來控制伺服電機運轉(zhuǎn),進而驅(qū)動機器人運動??刂破?也負責反饋本身和驅(qū)動器3狀態(tài)信息給上位機8中的niopcserver軟件。
本實施中的控制器采用西門子plc,激光傳感器采用sicklms100激光傳感器,都含有無線通信功能。無線發(fā)射模塊ⅱ采用無線路由器,可使用戶端ⅲ和多機器人端ⅰ處于同一局域網(wǎng)中,用戶端ⅲ即可根據(jù)ip地址連接不同的機器人控制器2和激光傳感器1,實現(xiàn)一對多的控制。
本實施例中,上位機8中的控制軟件與多個機器人端ⅰ的控制器2的通信需要niopcserver軟件作為中介,與niopcserver軟件的數(shù)據(jù)交互通過labview的datasocket控件來實現(xiàn)??刂栖浖部梢詫o線操作手柄9的動作映射成鍵盤消息,并有相應的鍵盤消息響應模塊,可實現(xiàn)通過手柄控制機器人的運動。
在圖1、2的硬件結(jié)構(gòu)基礎(chǔ)上,本發(fā)明提供了基于一種集裝箱裝卸用移動機器人控制系統(tǒng)的控制方法,實現(xiàn)移動機器人自動導航和手動控制功能,如圖4所示,本發(fā)明實現(xiàn)一種集裝箱裝卸用移動機器人控制方法的步驟如下:
1)上位機8的控制軟件通過visualstudio的c#窗體應用程序模塊開發(fā),為用戶提供了人機交互界面,其中visualstudio工具需安裝可使用labview控件的插件??刂栖浖δ苣K主要包括應用層模塊、獲取激光傳感器數(shù)據(jù)模塊、數(shù)據(jù)處理模塊、運動控制模塊、機械手運動控制模塊、手柄動作映射為鍵盤消息模塊、鍵盤消息響應模塊、獲取控制器反饋的信息模塊。
2)niopcserver軟件需做相應的配置,設(shè)置要連接的機器人控制器2的ip地址,分配一些內(nèi)存地址接收來自該控制器2的信息。成功連接該控制器2時,niopcserver軟件輪詢檢測是否有數(shù)據(jù)到達。
3)在控制軟件的應用層模塊可以設(shè)置機器人運行模式,模式分為自動和自動。也可以設(shè)置ip地址連接要通信的激光傳感器1,連接成功時則調(diào)用獲取激光傳感器數(shù)據(jù)模塊。獲取激光傳感器數(shù)據(jù)模塊則開始周期性地獲取激光傳感器1掃描集裝箱得到的數(shù)據(jù),每一次獲取的數(shù)據(jù)都會調(diào)用數(shù)據(jù)處理模塊進行處理,得到機器人相對于集裝箱的實時位姿,得到機器人實際路徑與預定路徑的實時偏差。另外根據(jù)激光傳感器1測量得到的集裝箱尺寸以及集裝箱的實際尺寸,可以得到激光傳感器1測量的誤差,根據(jù)這誤差,可對上述得到的機器人位姿和路徑偏差進行調(diào)整。在這過程中,數(shù)據(jù)處理模塊的處理過程如圖5所示:首先對激光傳感器1掃描得到的數(shù)據(jù)進行過濾,去除不屬于集裝箱的數(shù)據(jù),之后把數(shù)據(jù)進行聚類和分段,按集裝箱的矩形特征劃分為三個數(shù)組的數(shù)據(jù),并把三個數(shù)組數(shù)據(jù)分別利用最小二乘法擬合出三條直線,得到機器人相對預定路徑的偏角δθ以及機器人前側(cè)中心點到集裝箱兩側(cè)面和前側(cè)的距離,如圖6所示,在集裝箱左上角建立坐標系xoy,s直線表示機器人預定路徑。再接著求激光傳感器測量的誤差并把結(jié)果進行調(diào)整。機器人相對預定路徑的偏距可按如下公式求得:
其中,w表示機器人寬度,m1表示右上角角點到集裝箱右側(cè)面的距離,m3表示左上角角點到集裝箱左側(cè)面的距離,m2表示右下角角點到集裝箱右側(cè)面的距離,m4表示左下角角點到集裝箱左側(cè)面的距離。
4)每一次數(shù)據(jù)處理模塊執(zhí)行完畢時都會判斷機器人運行模式,當處于自動模式時,啟動運動控制模塊,將調(diào)整后的路徑偏差作為該模塊的輸入,得到相應的輸出控制值。輸出的控制值通過niopcserver軟件發(fā)送給對應的機器人控制器2,實現(xiàn)機器人自動導航,安全進入集裝箱中。運動控制模塊的具體處理過程如圖7所示:首先在數(shù)據(jù)處理模塊求得的數(shù)據(jù)基礎(chǔ)上判斷d2即機器人前側(cè)中心點到集裝箱前側(cè)面的距離是否接近目標距離,若是,則給停止運動命令,反之,判斷d2是否大于目標距離。若d2大于目標距離則應給出機器人前進運動命令,反之給出機器人后退運動命令。若機器人此時的狀態(tài)繼續(xù)運動時會碰撞到集裝箱,則應根據(jù)機器人的狀態(tài)對機器人微調(diào)。若機器人繼續(xù)運動時不會碰撞到集裝箱,則接著判斷機器人此時是否滿足
5)通過控制軟件的應用層模塊可以接收無線操作手柄9的動作信號,當機器人運行模式為手動時,將啟動手柄動作映射為鍵盤消息模塊以及鍵盤消息響應模塊,輸出相應的控制值給niopcserver軟件,實現(xiàn)通過無線操作手柄9控制機器人的運動。
6)通過控制軟件的應用層模塊用戶可以發(fā)出指令調(diào)用機械手運動控制模塊,實現(xiàn)機器人機械手6裝卸貨物的功能。
7)通過獲取控制器反饋的信息模塊可以實時監(jiān)測niopcserver軟件中分配的內(nèi)存地址中的數(shù)據(jù)變化,得到機器人的狀態(tài)信息。