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