張震 徐獻圣
(佛山職業(yè)技術學院 廣東佛山 528137)
如今信息化發(fā)展迅速,人工智能與機器人構成的新型載體已經(jīng)融入人們的日常生活中。教育部預測,未來人工智能(含智能制造)相關十大領域在2025年將面臨3000萬的人才缺口。而人工智能與機器人是高職人才培養(yǎng)新專業(yè)布局的重點。根據(jù)《職業(yè)教育專業(yè)目錄(2021年)》,新增智能機器人技術專業(yè),會不斷地有職業(yè)高校開設智能機器人等相關專業(yè),對于課程資源的需求就會迅速增長。因此,對于實訓室工件智能整理機器人的需求也日益增長。
1.本文采用了自定義的坐標轉換算法,可以提高實訓室工件分揀的精確度。
2.本文采用了校準軟件進行參照物對照校準,提高了實訓室工件分揀的精確度。
3.本文采用了自定義的坐標轉換算法,提高了機械臂運動速度,提高了實訓室工件分揀的速度。
1.整體實現(xiàn)算法
智能整理實訓室工件的機器人實現(xiàn)算法主要的流程如圖1所示。
圖1
2.目標預處理
(1)AR碼標識符
由于不同實訓室的工件外觀型號不一,通過視覺特征識別目標時計算量過大,會降低分揀速率。因此,本算法中,機器人的識別目標是自制的AR code(Augmented Reality code,AR碼)。識別目標一共有兩種,實訓室工件和收納箱。實訓室工件主要有由一個小型方盒(本文采用的收納盒體積為15*15*4厘米)裝納。方盒的中間位置貼上二維碼標簽。收納箱也是貼上AR碼坐標標識,貼在收納箱存放工件方盒的凹槽位置。
(2)校準
由于二維碼的制作工藝不同,會導致二維碼的大小不一,影響AR碼定位的精確度。因此,需要一個參照物用于AR碼的定位校準。本文案選用的是6×8的黑白相間的棋盤作為校準對象,每個正方形都是2.4厘米的長度。校準的參數(shù)有橫軸、縱軸、大小、彎曲四個校準標準。將棋盤的格子數(shù)量和格子長寬預設好,然后啟動校準程序,那么,程序將會以預設好大小的棋盤作為參照物用來定位AR碼。
3.分揀算法
目標預處理完成后,接下來是分揀算法。分揀算法是基于任務空間坐標系和關節(jié)空間坐標系的自定義算法。能夠自動控制機械臂運動到目標處進行抓取運動。
(1)AR碼定位
分揀的第一步是定位目標AR碼位置。本文采用任務空間坐標系進行定位,構建兩個坐標系。
第一坐標系是以攝像頭為原點的任務空間三維坐標系。用于對AR碼進行定位,能夠通過ROS系統(tǒng)的AR碼服務直接獲取坐標數(shù)據(jù)。被定位的AR碼坐標點假設為P1(x1,y1,z1)。
第二坐標系是以機械臂底座中心作為原點的任務空間三維坐標系。用于描述機械臂與分揀目標AR碼的位姿關系,并不能直接獲取坐標數(shù)據(jù)。但是,可以直接獲取攝像頭相對于第二坐標系的位置,因為攝像頭與機械臂的末端執(zhí)行器位置相對固定。被定位的AR碼坐標點假設為P2(x2,y2,z2),攝像頭的坐標點假設為P0(x0,y0,z0)。
那么獲取P2點數(shù)據(jù)需要進行坐標轉換。第一個坐標系的x軸與第二個坐標系的y軸平行,第一坐標系的y軸與第二坐標系的z軸平行,第一坐標系的z軸與第二坐標系的x軸平行。假設AR碼第一坐標系的坐標點為P1,那么要得到AR碼在第二坐標系的坐標點P2,可以引入坐標系轉換公式:
其中,Cx,Cy,Cz為誤差補償常數(shù),用于調整補償坐標定位的誤差,可以根據(jù)實際情況人為設置誤差補償常熟,提高AR碼坐標P2的精準度,從而提高機械臂抓取目標的成功率。
獲取到第二坐標系得AR碼位置點P2后,主控模塊將任務空間坐標通過任務空間坐標控制服務將P2的坐標點數(shù)據(jù)發(fā)送給機械臂,機械臂的末端執(zhí)行器就會到達的坐標點。
(2)機械臂移動
當獲得AR碼的位置點P2后,機械臂則會自動控制自身關節(jié),將末端執(zhí)行器移動到P2位置的抓取點進行抓取目標。本文采用的是4自由度的機械臂,即任務空間坐標系的三軸以及圍繞z軸旋轉的4自由度。本文采用的機械臂一共是用4個關節(jié)來描述機械臂的姿態(tài),因此會建立4個關節(jié)矢量維度的關節(jié)空間坐標系。
控制機械臂運動則是關節(jié)空間坐標,假設機械臂到達P2點的關節(jié)空間坐標為R(θ1,θ2,θ3,θ4)。即要進行坐標轉換,計算R點的4個關節(jié)的轉角。θ1是表示關節(jié)1的旋轉角,其坐標系對應的是(x1,y1),并且旋轉軸心是z1軸;θ2是表示關節(jié)2的旋轉角,其坐標系對應的而是(x2,y2),以關節(jié)2舵機旋轉軸截面構建二維平面坐標;θ3是表示關節(jié)3的旋轉角,以關節(jié)3舵機旋轉軸截面構建二維平面坐標,θ4是表示關節(jié)4的旋轉角,以關節(jié)4舵機旋轉軸截面構建二維平面坐標。L1表示連桿1的長度,L2表示連桿2的長度,L3表示連桿3的長度,L4表示連桿4的長度。
描述關節(jié)空間主要是通過D-H參數(shù),4個關節(jié)的D-H表見表1所例:
表1 關節(jié)空間D-H參數(shù)表
通過機械臂逆運動學來進行坐標轉換,首先要構建本方法的連桿變換矩陣,假設由第i-1連桿轉換為第i連桿,那么就需要連桿矩陣,連桿矩陣的計算公式如下所示。
其中,s表示sin,sθ表示sin(θ),c表示cos,cθ表示cos(θ)。
計算后,最后得到θ1的計算值為:
計算后,最后得到的θ2、θ3、θ4的公式如下:
那么,可以通過公式來計算出關節(jié)空間坐標R點,機械臂可以通過R點來設置自身4個關節(jié)的轉角,從而將末端執(zhí)行器移動到目標AR碼位置。
(3)末端執(zhí)行器抓取或放置。
末端執(zhí)行器,是一個控制夾板的行程距離來進行夾取放置目標的夾爪。夾爪實際張開的距離為變量d,夾爪的最大行程值為dmax,通過行程系數(shù)q控制乘以夾爪的最大行程值來得到實際張開距離d。實際是通過夾爪控制服務發(fā)送行程系數(shù)m來控制夾爪的值。夾爪的控制公式為。
1.硬件載體
本文所采用的硬件載體及參數(shù)見表2所例。
本文的自動化控制算法是裝載在TX2主控模塊中,使用液晶屏來編寫開發(fā)機器人自動控制代碼指令。
本文的智能機器人主要有一個4個關節(jié)的機械臂,并且有一個控制底座,一個末端執(zhí)行器作為夾爪組成。
攝像頭按照在末端執(zhí)行器上方,用于獲取目標坐標,目標坐標是以攝像頭為原點的笛卡爾坐標。
具體的結構抽象圖如圖2所示。
圖2
2.軟件載體
本文實驗所用的運行環(huán)境是Ubuntu 18.04。采用的架構是ROS melodic版本。
算法軟件開發(fā)環(huán)境是Python的2.7.14版本,Anaconda的5.3.1版本,Pycharm的11.0版本。采用Python語言開發(fā)實現(xiàn)本機器人的功能。
桌面應用采用Qt的5.15.3版本進行開發(fā)。采用Qt與Python開發(fā)了2個桌面應用。第一個是校準桌面應用,第二個是機械臂控制桌面應用(圖3)。
圖3
3.實驗結果
本實驗是采用了100個實訓室工件、10個收納箱進行實驗。通過控制變量法來提高實驗的效果。
最終的實驗結果能在10分鐘內能完成100個實訓室工件放置到收納箱中。
本文能夠在短時間內將實訓室工件放置歸位到收納箱中,能夠解決實訓室工件整理難的痛點。但是二維碼作為標識碼的局限性很大,因此需要其他的替代識別目標的方式。