文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.172276
中文引用格式: 丁偉,王宜懷,賈榮媛. 基于K64機械臂控制系統(tǒng)的設計與實現[J].電子技術應用,2017,43(12):36-39.
英文引用格式: Ding Wei,Wang Yihuai,Jia Rongyuan. Design and implementation of the robotic arm control system based on K64[J].Application of Electronic Technique,2017,43(12):36-39.
0 引言
機器人技術是一種融合了機械、計算機技術、電子、人工智能等眾多學科于一體的先進技術[1],各國競相在機器人的研發(fā)及生產上投入大量人力物力。我國的機器人控制技術仍然和歐美一些國家存在較大差距,機械臂也屬于機器人范疇的一部分。
為了解放人類生產力,用機器取代人類做一些重復且危險的工作已成為必然。在調研了目前市面上機械臂的發(fā)展情況下,結合實際設計了一套基于K64的三自由度機械臂控制系統(tǒng)。該機械臂在平面上具有良好的順從性,在豎直方面具有良好的剛性[2],配合機械臂末端攜帶的工具能夠滿足不同操作要求。經過研究比對,采用恩智浦的K64芯片作為核心控制芯片、以MQX_Lite為操作系統(tǒng)的控制系統(tǒng)能夠充分利用嵌入式軟硬件結合的優(yōu)點,使控制系統(tǒng)的性能更加優(yōu)越,成本更低,功能更健全,改善了傳統(tǒng)機械臂存在的控制功能單一、生產成本高等一些問題[3]。
1 運動學基礎
1.1 機械臂建模
任何涉及機械手臂的設計均要以運動學為基礎。在傳統(tǒng)的三維幾何學中,使用3×1維向量的加法來進行平移計算,使用3×3矩陣的乘法進行轉動計算。一般用Trans(X1,Y1,Z1)代表平移,表示在XYZ軸上分別平移X1、Y1、Z1;用Rot(Z,θ)代表繞Z軸旋轉θ角,可以根據需要修改對應參數。
在進行機械臂運動學計算之前,首先將機械臂用數學表達式表示出來,這涉及到機械臂建模,通過D-H建模法建立模型參數[4],如表1。
由于Z軸是由單獨電機控制,不需要其他關節(jié)的配合,所以豎直方向單獨考慮。平面位置的移動則依靠兩個電機的配合,機械臂的俯視圖如圖1所示。
結合表1,可得運動學方程為:
1.2 逆運動學
逆運動學指在已知機械臂末端的執(zhí)行器位姿,求解各個關節(jié)的角度問題。
求解逆運動學方程時,面臨最優(yōu)解和唯一解問題。在圖1中,機械臂末端的目標點B(x,y),此時有兩種情況與之對應,選擇最小的旋轉角度達到該目標位置,才能解決最優(yōu)解和唯一解問題。
求操作臂的反解有兩種方法:封閉解法和數值解法。選擇封閉解可以準確求解出對應的角度變化。對于封閉解法,有兩種途徑:代數解和幾何解??紤]到機械的結構以及運動學方程,采用幾何法。
如圖1所示的平面機械臂,利用平面幾何關系求運行學反解,在世界坐標系中,已知機械臂末端的坐標點B的坐標值,利用余弦定理和反三角函數,求θ1和θ2的角度值。
2 控制系統(tǒng)總體設計及工作原理
該系統(tǒng)主要由上位機控制軟件、K64核心控制電路和機械關節(jié)等部分組成。其中,串口作為上位機和K64之間的主要通信方式,在上位機采用一般的串口調試工具;微控制器部分以恩智浦公司K64為核心,由通信模塊、電機驅動模塊、傳感器模塊、電源模塊、指示燈模塊組成。系統(tǒng)整體結構框圖如圖2所示。
系統(tǒng)將整體工作流程分模塊進行,首先由操作人員在上位機軟件輸入指令,通過串口通信模塊將TTL信號轉化成單片機識別的RS232信號,緊接著由單片機對接收到的信號進行處理,同時融入實時操作系統(tǒng)MQX_Lite,分別執(zhí)行相對應的任務,例如電機控制、指示燈變化等。同時,單片機也通過中斷方式實時檢測著傳感器,將信息反饋給用戶,做到實時監(jiān)控。
2.1 系統(tǒng)硬件設計
機械臂的主要應用目標是工業(yè)控制,而可靠性和抗干擾能力是衡量工業(yè)控制中電氣設備性能的關鍵指標,因此在設計內部電路時,采用了抗干擾技術,其中包括光耦隔離電路。系統(tǒng)采用的硬件是具有極高性能的元件,其中包括高速光耦6N138、三極管S8050等[5]。下面著重介紹電源模塊和電機控制模塊。
2.1.1 電源模塊
由于硬件系統(tǒng)中涉及到不同的外設,各個外設工作電壓又各不相同,電源模塊需要滿足統(tǒng)一供電,需要設計電源轉化模塊,滿足要求。本系統(tǒng)中采用常見的24 V直流電源供電,通過LM2596-ADJ電壓調節(jié)器的調節(jié),輸出電壓依據公式V_out=V_ref(1+R1/R2)得出,通過改變R1、R2的值調整需要的輸出電壓。經過分析,系統(tǒng)需要電壓3.3 V、5 V、12 V、24 V、36 V幾種電壓值供不同部分使用。電源模塊的電路圖如圖3所示。
2.1.2 電機控制模塊
機械臂的平穩(wěn)正常工作,離不開電機的驅動。作為常見的工業(yè)控制方式之一,電機性能的穩(wěn)定對整個系統(tǒng)具有至關重要的作用。為了排除電機工作時的反向電流干擾,設計了兼具方向和PWM脈沖控制的電路,如圖4所示。
圖4左側兩個輸入分別控制著電機的轉速和方向,由于電機運行過程中會對MCU造成反向干擾,因此需要光電隔離器,光耦的型號為6N138,三極管型號為S8050。電路實現電氣隔離,增強了系統(tǒng)的穩(wěn)定性,排除了干擾。
2.2 系統(tǒng)軟件設計
在機械臂控制系統(tǒng)中,軟件部分主要包括PC程序和主控芯片程序,PC端主要負責與操作人員進行實時交互,采用一般的串口調試工具即可。以K64作為主控芯片,該芯片的主頻達到120 MHz,具有1 MB閃存、256 KB的RAM,這些數據足以說明其強大的處理能力,充分滿足系統(tǒng)的數據處理要求。系統(tǒng)軟件業(yè)務流程圖如圖5所示。
將MQX_Lite實時操作系統(tǒng)植入到芯片內,實現了任務的調度,提高了系統(tǒng)實時性,另外,采用“多任務+中斷”編程設計思想,將復雜的工作按照功能進行任務劃分,主要分為主任務、指示燈任務、串口任務、電機任務等;另外一條主線則是中斷、實時監(jiān)控外部事件、保證系統(tǒng)的穩(wěn)定執(zhí)行。
2.2.1 多任務體系
在引導程序中,首先加載主任務task_main,在主任務中,完成了小燈模塊、串口模塊、PWM功能、輸入捕捉、電機控制的初始化,并且使能GPIO、輸入捕捉等中斷。
在主任務完成相關模塊的初始化,并且開了總中斷以后,主任務就進入了阻塞態(tài),操作系統(tǒng)就開始進行任務的調度[6]。小燈任務是一直進行,通過小燈的閃爍情況,可以判斷出整個系統(tǒng)是否在運行,確保程序沒有跑飛。
機械臂控制系統(tǒng)的核心部分是串口任務和電機任務,當機械臂工作之前,從極限位置[7]運動到工作位置的起始點。通過串口接收數據,將數據解析,提取相關指令和數據分別賦值全局變量,置事件位,電機任務等待到事件位,通過調用cal_degree()函數,計算出各個關節(jié)的角度,賦值全局變量,供其他任務中使用,確定相對應的關節(jié)需要的脈沖數,啟動電機。
2.2.2 中斷處理
將輸入捕捉引腳與PWM脈沖輸出腳連接,當捕捉到的脈沖數達到了MOTOR1_COUNT值,停止電機,并且置完成事件位,通過串口給上位機發(fā)送完成的指令,等待接收下一條命令。
3 機械臂運動實驗
為了驗證整個系統(tǒng)是否能夠滿足工作的需要,最后進行實驗。為了保證曲線連續(xù)[8],設定的路線是X軸方向每次減小5 mm,Y軸方向每次增加5 mm,設定的曲線方程為y=-x+400,由于硬件的構造,存在死限位,關節(jié)無法繼續(xù)旋轉。經過測量,在工作平面內X的取值范圍為180~400 mm。與上位機的交互信息如圖6所示。
在機械臂末端安裝一支墨水筆,在圖6中實時地將機械臂的一些信息反饋在串口調試工具中,最后輸入指令為OVER時,系統(tǒng)停止運行。實驗階段,將一張白紙固定在操作面上,當整個實驗停止運行之后,對所畫的曲線進行分析,非常接近于一條直線,能滿足設計要求。
4 結論
本文研究的機械臂控制系統(tǒng)以K64作為核心芯片,以MQX_Lite為操作系統(tǒng),從原理到軟硬件整體設計上介紹了整個系統(tǒng)的研發(fā)流程。此系統(tǒng)用一塊核心控制芯片,通過與上位機的交互,控制多路電機的協(xié)同運行,完成操作人員指定的功能。經過實驗,該控制系統(tǒng)在整體成本低廉的情況下,依然能夠平穩(wěn)運行并且滿足整體需求。該機械臂控制系統(tǒng)可以作為一個平臺,滿足不同功能的需要,改善了傳統(tǒng)的機械臂單一功能不足的缺點,降低了成本。
參考文獻
[1] 王田苗,陶永.我國工業(yè)機器人技術現狀與產業(yè)化發(fā)展戰(zhàn)略[J].機械工程學報,2014,50(9):1-13.
[2] GUO R J,ZHAO J S.Topological principle of strengthened connecting frames in the stretchable arm of an industry coating robot[J].Mechanism & Machine Theory,2017,114:38-59.
[3] 李海標,甘鎮(zhèn)釗,楊碩.基于ARM9的機械手控制系統(tǒng)的設計[J].測控技術,2015,34(8):82-85.
[4] 郭丙華,胡躍明.三連桿移動機械臂模型與運動規(guī)劃[J].控制理論與應用,2005,22(6):965-968.
[5] 司蕭俊,王宜懷,白聰.基于K60的GCPLC系統(tǒng)的設計與實現[J].電子技術應用,2017,43(2):47-50.
[6] 王宜懷.嵌入式系統(tǒng)原理與實踐:ARM Cortex-M4 Kinetis微控制器[M].北京:電子工業(yè)出版社,2012.
[7] SU K L,LI B Y,GUO J H,et al.Motion control of a robot arm[J].Applied Mechanics & Materials,2013,479-480:768-772.
[8] 王憲,王偉,張方生,等.基于嵌入式系統(tǒng)的機器人關節(jié)空間軌跡規(guī)劃[J].傳感器與微系統(tǒng),2011,30(10):19-21.
作者信息:
丁 偉,王宜懷,賈榮媛
(蘇州大學 計算機科學與技術學院,江蘇 蘇州215000)