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