陳再師++劉任任
摘要:在機器人技術(shù)快速發(fā)展與持續(xù)完善的大環(huán)境下,工業(yè)機械手臂被廣泛運用于工業(yè)領(lǐng)域中,其發(fā)展與應用意義重大。該論文采用TQ210開發(fā)板作為系統(tǒng)的主控模塊,通過移植OpenCV視覺庫到主控板,實現(xiàn)智能機械手臂的構(gòu)建。在滿足一定環(huán)境的要求下,它可以完全智能地抓取限定工作臺面的物體。同時,它也可通過實時抓幀,測量周圍物體的坐標位置,調(diào)整自身參數(shù),實現(xiàn)其適應、交互的智能特性。
關(guān)鍵詞:智能機械手臂;OpenCV視覺庫;嵌入式系統(tǒng);機器人控制
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2015)25-0118-02
1 引言
隨著工業(yè)4.0概念的推廣,在機器人技術(shù)快速發(fā)展與持續(xù)完善的大環(huán)境下,機械手臂現(xiàn)已廣泛地運用于各工業(yè)領(lǐng)域中,其發(fā)展與應用有著十分重要的意義。在國內(nèi),機器手臂的研究起始于上世紀七十年代,相比于西方發(fā)達國家,我國對機械手臂的研究起步較晚,技術(shù)也相對落后。由于機械手臂可以實現(xiàn)更快、更精確地抓舉物品、安裝零件,可以更高強度的連續(xù)工作,所以現(xiàn)在人們開始把更多的精力用在了機械手臂的研究和制造上,期望它能給人類帶來更多經(jīng)濟價值[1-4]。
現(xiàn)在所使用的機械手臂,大部分都是采用示教控制,即都是事先編好程序,使機械手臂按照一定的邏輯順序從一個位置運動到另一個位置,這種控制方法對于流水線工作是簡單有效的。但是當運動環(huán)境發(fā)生變化的時候,機械手臂還是會按照原來的編程好的路徑運動,往往不能達到期望的位置,這就缺少了運動自主性。所以機械手臂的運動原理和核心控制系統(tǒng)就成為了機械手臂能夠自由運動,抓放的基礎(chǔ),而控制核心的基石便是機械手臂的驅(qū)動技術(shù)的設(shè)計和研究。只有將機械手臂的運動系統(tǒng)的驅(qū)動與機械手臂運動系統(tǒng)算法很好的融合,才可以隨時識別新的工作環(huán)境,動態(tài)調(diào)整手臂的運動路徑,使得手臂能夠準確定位目標物體。但目前機械手臂的研究還不是特別成熟和完善,很多成果只是單方面的或是基于仿真條件下的,所以本論文以實際對象為背景,對機械手臂運動的研究具有一定的理論和現(xiàn)實意義。
2 總體設(shè)計
系統(tǒng)主要是用6個mg995伺服舵機+16路舵機控制板實現(xiàn)機器人手臂的硬件動作部分;用TQ210+16路舵機控制板為核心實現(xiàn)機械手臂的控制部分;TQ210 +USB攝像頭實現(xiàn)信息采集處理部分[5-6]。
系統(tǒng)的硬件平臺主要由五部分組成:主控制板(TQ210)、USB攝像頭、運動控制單元,如圖1所示。其中,主控制板是TQ210開發(fā)板,它包含基S5PV210微處理器等硬件。運動控制單元為16路伺服舵機控制板和機械手臂,通過串口與主控制板相連實現(xiàn)機器人的動作控制。
3 詳細設(shè)計
3.1機械手臂動作系統(tǒng)的硬件連接
由于本機器手臂的動作組是下載在舵機控制板中,因此主控制板可以根據(jù)所需的不同場景,發(fā)動不同的動作指令調(diào)取不同的動作組,使機器人能夠做出相應的動作。具體方法如下:
(1)將舵機控制板的USB插針用跳線連接,通過miniUSB將控制板與PC相連。
(2)安裝驅(qū)動,通過Windows環(huán)境下載動作組,雙擊安裝。
(3)安裝上位機軟件環(huán)境,上位機軟件需要有Microsoft.Net Framewoks2.0的支持。
(4)使用上位機軟件下載動作。
下面以初始化動作組為例:控制以下六個多級到預設(shè)位置#0 P800 #1 P1500 #2 P1800 #3 P1800 #4 P1800 #5 P1800。選擇動作組0,單擊下載按鈕,此預設(shè)動作組即被下載到舵機控制板256地址被自動編號為0動作組,下一個地址便是從498開始下載了。
舵機控制板與TQ210的串口TX1相連,+極連接VDD5V,-極連接GND,使用串口1為TQ210與舵機板的通信提供硬件基礎(chǔ),使用串口2為TQ210與Arduino通信提供基礎(chǔ),串口0作為pc的打印終端使用,具體如圖2所示。
3.2 主控制板的RS232通信方法
主控制板與舵機控制板以及Arduino拓展版的通信方法均是通過RS232方法實現(xiàn)信息傳輸。S5PV210可以方便地利用UART控制器(TQ210實驗板的UART控制器為SP3232EEN)實現(xiàn)串口通訊功能。如圖3所示。
S5PV210屬于常規(guī)的電平轉(zhuǎn)換芯片,其作用在于:實現(xiàn)53C2440端的TTL電平和RS232串口協(xié)議標準規(guī)定的電平兩者之間的靈活切換。嵌入式Linux內(nèi)核在主控制板內(nèi)運作的情況下,在重編譯移植的工作中將所支持的串口驅(qū)動加入配置選項里面。其連接串口的方式可分成三種類型,其主控板里面的三線串口引腳中的RXD、TXD連接的分別是Arduino平臺中的引腳TXD、RXD,一般情況上,其他針角連接GND針腳,或干脆懸空。該系統(tǒng)內(nèi)串口0與/dev/ttys0相對應,串口1與/dev/ttys1相對應,串口2實現(xiàn)了系統(tǒng)指令和傳感信息兩者的傳輸,與之相應的設(shè)備文件是/dev /ttyS2。TQ210的實驗板有三個串口接口,其中只有串口0與SP3232相連,本系統(tǒng)就是用此串口0作為開發(fā)板與宿主機的串口終端鏈接,進行控制;采用串口1與舵機控制板相連,組成是機械手臂動作模塊,用以實現(xiàn)主機控制手臂動作。
3.3 控制指令的編碼設(shè)計
機器人運動控制和內(nèi)部傳感器信息采集單元通過串口實現(xiàn)與上位機兩者之間的通訊。其控制指令集:#
具體釋義如下:
舵機控制板可以直接提取以上控制指令加以執(zhí)行。如:"#5 P1600 S750 ",表示移動舵機號5到脈寬 1600us 速率為每秒移動脈寬750微秒;"#5 P1600 #10 P750 T2500 ",表示移動舵機號5 到脈寬1600us移動舵機號10到脈寬750us使用時間為2500ms。
3.4 OpenCV圖像處理
OpenCV[7,8]調(diào)試開發(fā)是在Windows下通過vs2008完成的,項目集成在Linux下進行,具體如下:
(1)Windows下安裝OpenCV主要使用cmake工具將源碼配置好,再使用vs2008打開工程編譯生成動態(tài)鏈接庫。
C:\ OpenCV-2.1.0\VS-2008\include\OpenCV
C:\ OpenCV-2.1.0\VS-2008\lib
C:\ OpenCV-2.1.0\VS-2008\bin,三個目錄分別存放了OpenCV開發(fā)依賴的頭文件,動態(tài)連接及可執(zhí)行文件。然后在配置vs2008就可以使用OpenCV開發(fā)了。
(2)Linux的安裝主要修改makefile,給ubuntu安裝OpenCV需要的依賴庫,
[sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev]和[libjpeg62-dev libtiff4-dev libswscale-dev libjasper-dev]。使用cmake生成makefile,然后編譯安裝就能生成OpenCV的庫文件。
OpenCV圖像處理過程具體如下:
(1)抓取一幀圖片并灰度處理。
(2)通過極值處理提取輪廓。
(3)判斷物體輪廓分布在哪片區(qū)域再返回轉(zhuǎn)向坐標指令。
3.5 機械手臂根據(jù)物體位置確定動作組
根據(jù)攝像頭和機械手臂建立的坐標系,確定機械手臂的運動控制庫。根據(jù)OpenCV返回的物體位置,直接匹配運動控制庫,實現(xiàn)根據(jù)物體在坐標系中的位置規(guī)劃機械手臂運動抓取物體的目的。
首先將串口指令封裝,void HandMove(int num,int degree,int time)函數(shù)用來控制伺服電機并適當延時,隨后根據(jù)物體位置調(diào)用運動控制庫,匹配動作組啟動機械手臂抓取物體。
物體以機械手臂基座的位置為圓心呈一定角度和距離,角度和距離根據(jù)OpenCV像素坐標計算得出,物體坐標封裝在結(jié)構(gòu)體struct Location變量goal中,直接通過函數(shù)計算得出。
distance = sqrt(goal.X*goal.X + goal.Y*goal.Y);
angle =180.0/3.14159*atan2(goal.X,goal.Y);
再通過HandMove(1,1500-angle*8,800);調(diào)整底座舵機直接轉(zhuǎn)向物體,匹配動作組抓取物體。
好的機械手臂應具備學習能力,我設(shè)計的這款機械手臂也不例外。當機械手臂完成抓取物體之前的任務后,會提醒用戶是否啟動學習模式,這時候用戶選擇學習即可通過圖形界面在線調(diào)整機械手臂,系統(tǒng)將自動記錄更新后的運動數(shù)據(jù),系統(tǒng)下次將自動調(diào)用新的動作庫數(shù)據(jù)。
4 結(jié)論
本作品通過運用嵌入式開發(fā)中的某些技術(shù),實現(xiàn)了機械手臂的智能化,具體總結(jié)如下:
(1)以TQ210開發(fā)板作為整個工作系統(tǒng)的控制主板,對各種數(shù)據(jù)信號進行了相關(guān)處理。
(2)以O(shè)penCV作為視覺庫,實現(xiàn)了機械手臂對物體實施抓取動作的路徑設(shè)計。
(3)在一定環(huán)境下,機械手臂可不接受外界控制完全自主執(zhí)行抓取動作。
(4)能通過實時抓幀、測量周圍的物體的坐標位置,調(diào)整自身參數(shù),以實現(xiàn)其適應、交互的智能特性。
由于在時間和實驗條件上的限制,在實驗數(shù)據(jù)的采集、理論方法和實際控制等方面都存在一些不足之處,總結(jié)如下:
(1)機械手臂抓取目標物體的路徑,不僅僅只能通過OpenCV進行圖像處理得到,還可以通過建模,運用智能優(yōu)化算法得到,如:蟻群算法、粒子群算法,禁忌搜索算法等。
(2)機械手臂自由度比較有限,抓取范圍和抓取物體都受到一定的限制,還不能360度地旋轉(zhuǎn)。
(3)運動控制庫建立比較欠缺,待完善。
參考文獻:
[1] 高微,楊中平,趙榮飛,等.機械手臂結(jié)構(gòu)優(yōu)化設(shè)計[J].機械設(shè)計與制造,2006(1):13-15.
[2] 劉偉,齊曉慧.基于視覺的機械手臂自主抓物的實現(xiàn)[J].兵工自動化,2008(12):79-80.
[3] Bicchi A, Tonietti G. Fast and "soft-arm" tactics [robot arm design]. IEEE Robotics & Amp Amp Automation Magazine, 2004, 11(2):22-33.
[4] Khan S G, Grafi M A. Humanoid Robot Arm Adaptive Control: Experimental Implementation. Journal of Applied Sciences, 2014, 14(19):2267-2275.
[5] 徐中林.基于Arduino平臺頻率、占空比測試儀器的制作[J].滄州師范學院學報,2015(1):38-41.
[6] 劉澤良,胡日新.物聯(lián)網(wǎng)技術(shù)下基于Arduino的智能公交系統(tǒng)模型設(shè)計[J].實驗技術(shù)與管理,2014(11):140-143.
[7] Bradski G. The OpenCV Library. Doctor Dobbs Journal, 2000, 25(11):384-386.
[8] 劉瑞禎.OpenCV教程[M].北京:北京航空航天大學出版社,2007.