劉康生東莞創(chuàng)視自動化科技有限公司
基于機(jī)器視覺的移動機(jī)械臂控制分析
劉康生
東莞創(chuàng)視自動化科技有限公司
移動機(jī)械臂的控制,主要需要解決目標(biāo)物位置信息獲取問題?;谶@種認(rèn)識,本文對基于機(jī)器視覺的移動機(jī)械臂系統(tǒng)展開了分析,通過分析系統(tǒng)硬件和軟件設(shè)計問題對機(jī)械臂控制功能的實現(xiàn)進(jìn)行了探討,從而為關(guān)注這一話題的人們提供參考。
機(jī)器視覺;移動機(jī)械臂;控制
在實際生活中,移動機(jī)械臂具有工作范圍大和負(fù)載能力強等特點,能夠自由移動完成目標(biāo)物的夾取。而使用機(jī)器視覺技術(shù),則可以使移動機(jī)械臂在未知環(huán)境中開展工作,進(jìn)而更好的得到推廣和應(yīng)用。因此,還應(yīng)加強對基于機(jī)器視覺的移動機(jī)械臂控制技術(shù)的研究,以便更好的推動機(jī)器人控制技術(shù)的發(fā)展。
基于機(jī)器視覺的移動機(jī)械臂系統(tǒng)可以利用雙目機(jī)器視覺完成目標(biāo)物空間位置信息的采集,然后根據(jù)信息進(jìn)行機(jī)械臂模塊的指揮,從而完成目標(biāo)物的夾取。在系統(tǒng)啟動后,會先進(jìn)行無線局域網(wǎng)服務(wù)器的連接,然后通過初始化完成相關(guān)變量的設(shè)置。在服務(wù)器完成用戶發(fā)送的夾取命令接收后,其會先進(jìn)行雙目視覺模塊的開啟,以完成視頻圖像的自動采集。將采集得到的信息傳輸?shù)娇蛻舳撕?,客戶端會通過信息處理完成目標(biāo)物空間位置信息的獲取,從而對目標(biāo)物的位置范圍進(jìn)行確認(rèn)。如果目標(biāo)物在機(jī)械臂工作范圍內(nèi),則可以完成目標(biāo)物距離的計算,并進(jìn)行相應(yīng)移動指令的發(fā)送[1]。底層電機(jī)控制板在接收到移動指令后,會進(jìn)行機(jī)械臂的移動,然后重新進(jìn)行目標(biāo)物位置計算。通過反復(fù)驅(qū)動各關(guān)節(jié)運動和計算目標(biāo)物位置信息,系統(tǒng)則能完成目標(biāo)物的夾取。
根據(jù)系統(tǒng)控制過程,可以將其硬件模塊劃分為終端控制模塊、服務(wù)器模塊、機(jī)械臂控制模塊、圖像采集模塊和電機(jī)控制模塊等,圖像采集模塊可以利用雙目攝像頭完成圖像采集,終端控制則可以進(jìn)行獲取的圖像信息處理,并向機(jī)械臂控制模塊進(jìn)行控制指令的發(fā)送,而機(jī)械臂控制模塊和電機(jī)控制模塊則可以完成機(jī)械臂的控制[2]。
2.1 終端控制模塊
在開發(fā)終端控制模塊時,可以利用MFC完成模塊開發(fā),并利用TCP/IP協(xié)議實現(xiàn)底層通信,從而進(jìn)行機(jī)器視覺信息數(shù)據(jù)的接收和處理。結(jié)合這些信息,則可以完成控制指令的發(fā)送,并在模塊上進(jìn)行這些信息的顯示。
2.2 圖像采集模塊
圖像采集模塊由雙USB攝像頭構(gòu)成,能夠利用雙目機(jī)器視覺技術(shù)完成視頻流的采集,并利用無線局域網(wǎng)進(jìn)行任務(wù)的上傳,然后利用PC進(jìn)行預(yù)覽和顯示。使用的攝像頭為V6USB免驅(qū)動攝像頭,具有背光補償功能,能夠在弱光線條件下得到使用。
2.3 服務(wù)器模塊
服務(wù)器模塊由ARM(LT2440)+Linux2.6操作系統(tǒng)構(gòu)成,能夠用于進(jìn)行底層傳感器信息的采集,并完成信息的簡單處理。將信息傳遞給終端模塊后,則可以進(jìn)行控制指令的獲取,然后通過驅(qū)動控制器進(jìn)行電機(jī)和舵機(jī)的驅(qū)動控制,進(jìn)而使機(jī)械臂完成相應(yīng)動作。
2.4 電機(jī)及機(jī)械臂控制模塊
在電機(jī)和機(jī)械臂控制方面,需要利用Atmega168單片機(jī)完成各模塊控制。其中,電機(jī)控制模塊則完成電機(jī)控制指令接收后,會以一定轉(zhuǎn)速控制電機(jī)轉(zhuǎn)動,以確保系統(tǒng)按照固定速度和路徑運動。機(jī)械臂控制模塊將完成服務(wù)器發(fā)送的關(guān)節(jié)轉(zhuǎn)角控制信號的接收,并對機(jī)械臂進(jìn)行驅(qū)動,從而使各關(guān)節(jié)轉(zhuǎn)動到相應(yīng)角度。
從系統(tǒng)軟件設(shè)計上來看,需要使用嵌入式服務(wù)器程序進(jìn)行機(jī)械臂運動控制。該程序為并發(fā)式,將根據(jù)客戶端指令完成相應(yīng)線程創(chuàng)建。在實際進(jìn)行程序開發(fā)時,可以利用VMwareWorkstation虛擬機(jī),并利用該虛擬機(jī)下安裝的Ubuntu10.04進(jìn)行程序開發(fā)和編寫。利用該軟件,需要在宿主機(jī)上完成嵌入式系統(tǒng)交叉編譯工具的創(chuàng)建,然后利用該工具完成系統(tǒng)程序的編寫。使用的操作系統(tǒng)為Linux,其擁有大量的硬件驅(qū)動程序,所以在進(jìn)行各模塊程序編寫時可以完成與設(shè)備相對應(yīng)的驅(qū)動程序查找。根據(jù)設(shè)備原理、參數(shù)和使用方法,則可以通過簡單修改獲得需要的程序,然后通過將程序編譯到Linux內(nèi)核中進(jìn)行加載使用。
從系統(tǒng)工作流程上來看,在系統(tǒng)一開始工作時,主進(jìn)程會進(jìn)行初始化程序的執(zhí)行,以確保重要數(shù)據(jù)變量得到設(shè)定,如指向IP地址的指針變量和網(wǎng)絡(luò)節(jié)點端的套接字描述符等。在此基礎(chǔ)上,還要完成共享內(nèi)存的創(chuàng)建,以實現(xiàn)網(wǎng)絡(luò)節(jié)點實時采集數(shù)據(jù)的存放。根據(jù)PC客戶端指令,則可以完成不同線程的創(chuàng)建,包含機(jī)械臂運動線程和視覺采集線程等[3]。完成用戶發(fā)送的結(jié)束指令的接收后,則可以將設(shè)備文件關(guān)閉,然后將全局變量清零,最后結(jié)束程序。
通過分析可以發(fā)現(xiàn),采用機(jī)器視覺進(jìn)行目標(biāo)物信息的采集,然后通過圖像處理則可以判斷目標(biāo)物是否在機(jī)械臂工作范圍內(nèi),并進(jìn)行移動控制指令的發(fā)送。而通過反復(fù)檢測和移動,則可以完成目標(biāo)物的夾取。所以,采取該種機(jī)械臂控制方法,能夠在知曉目標(biāo)物空間位置信息的基礎(chǔ)上實現(xiàn)移動機(jī)械臂的控制,進(jìn)而滿足機(jī)械臂的工作需求。
[1]楊元慧,李國棟,吳春富等.移動機(jī)械臂手眼關(guān)系標(biāo)定及視覺伺服控制方法[J].山東大學(xué)學(xué)報(工學(xué)版),2016,05:54-63+101.
[2]趙小剛.機(jī)械臂全方位移動自動控制系統(tǒng)研究[J].自動化與儀器儀表,2016,09:62-63+66.
[3]孫世俊,平雪良,曾慶鈺等.基于視覺捕捉的網(wǎng)球自拾取機(jī)器人系統(tǒng)[J].輕工機(jī)械,2016,06:62-65.