郁大鵬
摘要:為了適應時代的發(fā)展,培養(yǎng)當代機器人產(chǎn)業(yè)所需的優(yōu)秀人才,全國大學生機器人大賽RoboMaster應運而生。本文以RoboMaster競賽為背景,介紹了CAN總線技術(shù)在電機控制中的應用,并將CAN總線與無刷直流電機組合成性能良好的模塊用于機器人的底層驅(qū)動,建立了邁克納姆輪的運動分解模型,討論了嵌入式的PID算法控制。
關鍵詞:RoboMaster;CAN總線;無刷直流電機;PID控制;機器人運動控制
中圖分類號:G434 文獻標識碼:A 論文編號:1674-2117(2017)24-0060-05
作為共青團中央主辦的全國大學生機器人大賽中的賽事之一,全國大學生機器人大賽RoboMaster以機器人對抗射擊為主體,強調(diào)機器人的對抗性和技術(shù)性,鼓勵機器人自動化和智能技術(shù)的發(fā)展。同時,RoboMaster通過平衡比賽的技術(shù)難度和觀賞性,在全社會普及機器人知識和工程技術(shù)之美。
RoboMaster比賽強調(diào)工程技術(shù)和團隊合作能力,對青年工程師及科學家的創(chuàng)新意識、技術(shù)水平、溝通交流能力的培養(yǎng)起到了很好的作用。在賽場上,選手可以在團隊中展現(xiàn)技術(shù)實力與創(chuàng)新才華,通過合作獲得優(yōu)異成績;觀眾能夠通過機器人的對抗體驗刺激的競技樂趣,感受人與科技的無縫銜接。
本文結(jié)合機器人的底盤驅(qū)動控制和兩軸云臺發(fā)射機構(gòu),主要介紹CAN總線在無刷直流電機控制中的應用以及PID算法控制。
● CAN總線簡介
CAN(Controller Area Network)是ISO國際標準化的串行通信協(xié)議。[1]在當前的汽車產(chǎn)業(yè)中,出于對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統(tǒng)被開發(fā)出來。[2]由于這些系統(tǒng)之間通信所用的數(shù)據(jù)類型及對可靠性的要求不盡相同,由多條總線構(gòu)成的情況很多,線束的數(shù)量也隨之增加。為滿足減少線束的數(shù)量、通過多個LAN進行大量數(shù)據(jù)的高速通信的需要,1986年德國電氣商博世公司開發(fā)出面向汽車的CAN通信協(xié)議。此后,CAN通過ISO11898及ISO11519進行了標準化,在歐洲已是汽車網(wǎng)絡的標準協(xié)議。[3]
CAN總線通信是通過數(shù)據(jù)幀、遙控幀、錯誤幀、過載幀和幀間隔五種類型的幀進行。數(shù)據(jù)幀是用于發(fā)送單元向接收單元傳送數(shù)據(jù)的幀;遙控幀是用于接收單元向具有相同ID的發(fā)送單元請求數(shù)據(jù)的幀;錯誤幀是用于當檢測出錯誤時向其他單元通知錯誤的幀;過載幀是用于接收單元通知其尚未做好接收準備的幀;幀間隔是用于將數(shù)據(jù)幀及遙控幀與前面的幀分離開來的幀。在本文中使用STM32F4單片機進行CAN通信,主要使用的是數(shù)據(jù)幀,一般由7個段構(gòu)成,即幀起始、仲裁段、控制段、數(shù)據(jù)段、CRC段、ACK段和幀結(jié)束。
STM32F4自帶的是bxCAN,即基本擴展CAN。[4]它支持CAN協(xié)議2.0A和2.0B,能以最小的CPU負荷來高效處理大量收到的報文,支持報文發(fā)送的優(yōu)先級要求。對于安全需求高的應用,bxCAN提供所有支持時間觸發(fā)通信模式所需的硬件功能。STM32F4的CAN發(fā)送流程包括程序選擇一個空置的郵箱,設置標識符、數(shù)據(jù)長度和發(fā)送數(shù)據(jù),設置CAN_TIxR的TXRQ位為1,請求發(fā)送,郵箱掛號,預定發(fā)送,發(fā)送和郵箱空置。
CAN接收到的有效報文,被存儲在3級郵箱深度的FIFO中。FIFO完全由硬件來管理,從而節(jié)省CPU的處理負荷,簡化軟件并保證數(shù)據(jù)的一致性。應用程序只能通過讀取FIFO輸出郵箱,來讀取FIFO中最先收到的報文。這里的有效報文是指那些被接收的且通過了標識符過濾的報文。
CAN接收流程包括FIFO空、收到有效報文、掛號1、收到有效報文、掛號2、收到有效報文、掛號3、收到有效報文和溢出。FIFO接收到的報文數(shù),可以通過查詢CAN_RFxR的FMP寄存器來得到,在FMP不為0時,可以從FIFO讀出收到的報文。
● CAN總線電機控制
1.無刷直流電機簡介
無刷直流電機被廣泛地用于日常生活用具、汽車工業(yè)、航空消費電子、醫(yī)學電子、工業(yè)自動化等裝置。無刷直流電機不使用機械結(jié)構(gòu)的換向電刷而直接使用電子換向器。無刷直流電機屬于同步電機的一種,它的定子產(chǎn)生的磁場和轉(zhuǎn)子產(chǎn)生的磁場具有相同的頻率,所以無刷直流電機不會有普通感應電機的頻差現(xiàn)象。[5]本文主要介紹應用最為廣泛的三相無刷直流電機。
無刷直流電機的定子繞組可以分為梯形和正弦兩種。繞組形式的不同將影響電機的反電動勢波形,進而影響電機的性能。轉(zhuǎn)子的結(jié)構(gòu)主要有表面粘貼式磁極、嵌入式磁極和環(huán)形磁極。無刷直流電機常用的位置傳感器有電磁式、光電式等。相對傳統(tǒng)的有刷電機、感應電機,無刷直流電機擁有更高的轉(zhuǎn)速扭矩比、良好的動態(tài)特性、高效率、長壽命、低噪聲、寬轉(zhuǎn)速范圍、制造容易等優(yōu)良特性。
2.無刷直流電機與CAN電調(diào)
本文以大疆的C620電調(diào)為例進行說明,它采用32位定制電機驅(qū)動芯片,使用磁場定向控制技術(shù),實現(xiàn)對電機轉(zhuǎn)矩的精確控制,與M3508無刷直流電機搭配,可以組成強大的動力套件。它支持CAN總線指令控制,最高支持20A的持續(xù)電流,支持對CAN總線上的電調(diào)快速設置ID,支持通過CAN總線獲取電機溫度、轉(zhuǎn)子位置和轉(zhuǎn)子轉(zhuǎn)速等信息,切換電機時無需進行位置傳感器參數(shù)校準。
如圖1所示,①為7-pin電機數(shù)據(jù)端口,連接M3508直流無刷減速電機進行數(shù)據(jù)交互。②為三相動力線接頭,與M3508直流無刷減速電機的三相輸入接頭相連。③為CAN終端電阻選擇開關。④為SET按鍵,可對電調(diào)進行配置。⑤為電源線。⑥為指示燈。⑦為CAN信號端口。⑧為PWM信號端口。
用7-pin數(shù)據(jù)線分別插入電調(diào)和電機的7-pin數(shù)據(jù)端口、連接電調(diào)和電機。將電機的三相輸入接頭與電調(diào)三相動力線接頭相連接,CAN信號線一頭接入CAN信號端口,另一頭接入目標接口。電調(diào)電源線連接至電源為電調(diào)供電,連接如圖2所示。endprint
● CAN總線在機器人底盤運動控制中的應用
機器人整個控制系統(tǒng)框圖如下頁圖3所示。
機器人運動要有滿足控制要求的車輪運動,實現(xiàn)單個電機的PID閉環(huán)控制,消除電機之間的差異,提高電機的性能。[6-7]以PID閉環(huán)控制的電機為基礎的全向運動理論能使機器人更好地適應復雜的場地環(huán)境。機器人的控制需要操作手下達指令,而任何控制信息都要通過通信系統(tǒng)傳遞給機器人的各個部件,然后各個部件做出響應動作,相互結(jié)合,加上傳感器以及控制算法才能最終實現(xiàn)機器人的靈活運動。
機器人以PID閉環(huán)控制理論為基礎實現(xiàn)單輪轉(zhuǎn)動后,開始進行全向運動分解。麥克納姆輪[8-9]由輪轂和安裝在輪轂外緣上與輪轂軸線呈一定角度的無動力輥子組成,無動力輥子不僅能繞輪轂軸公轉(zhuǎn),還能在地面摩擦力作用下繞各自的支撐芯軸自轉(zhuǎn),公轉(zhuǎn)與自轉(zhuǎn)的合運動速度與輪轂軸有一定夾角,使其可以全方位運動。
機器人要實現(xiàn)全向運動,對車輪分布有一定的要求。按照輥子軸線的分布將麥克納姆輪分為左旋和右旋兩種方式,機器人車體實際安裝中,需要兩對旋向不同的車輪,且要求機器人底盤斜向方向上的車輪旋向一致,右前輪和左后輪采用左旋方式,左前輪和右后輪采用右旋方式。[10-12]四個麥克納姆輪組成的機器人底座的受力分析如圖4所示,每個全向輪都由一臺直流無刷電機驅(qū)動,通過四個萬向輪轉(zhuǎn)速適當組合即可以實現(xiàn)機器人在平面上三個自由度的全方位移動。[13-14]圖中輪子上的斜線代表輥子軸線的方向,F(xiàn)a為輪子滾動時小輥子受到軸向的摩擦力, Fr為輥子做從動滾動時受到的滾動摩擦力,為各輪轉(zhuǎn)動的角速度。通過運動學分析將機器人底盤的運動分解,可實現(xiàn)機器人進行任意角度的全向運動。[15]
通過CAN總線可以把機器人上所有CAN電機連起來,這比傳統(tǒng)的PWM控制更簡便。如圖5所示,在機器人平臺CAN總線上搭載多臺電機時,串接即可。CAN總線既能發(fā)信號,又能讀取電機轉(zhuǎn)子位置等狀態(tài)信息,在單片機中以數(shù)組的方式進行發(fā)送和接受。
以CH1、CH2、CH3、CH4標記四個電機、電調(diào)位置,本文機器人底盤麥克納姆輪的分布如下頁圖6所示。定義面向M3508電機軸時,電機軸逆時針旋轉(zhuǎn)方向為正轉(zhuǎn)。當CH1、CH3正轉(zhuǎn),CH2、CH4反轉(zhuǎn)時,機器人向前移動;當CH1、CH3反轉(zhuǎn),CH2、CH4正轉(zhuǎn)時,機器人向后移動;當CH1、CH3、CH2、CH4都正轉(zhuǎn)時,機器人左旋轉(zhuǎn);當CH1、CH3、CH2、CH4都反轉(zhuǎn)時,機器人右旋轉(zhuǎn);當CH1、CH2正轉(zhuǎn),CH3、CH4反轉(zhuǎn)時,機器人向左平移;當CH1、CH2反轉(zhuǎn),CH3、CH4正轉(zhuǎn)時,機器人向右平移。
● CAN總線在兩軸云臺控制中的應用
云臺控制板通過CAN通信協(xié)議和RM6025驅(qū)動板進行通信,控制信息以一個CAN消息幀的形式傳輸。其中,由云臺控制板到RM6025驅(qū)動板的CAN幀內(nèi)容為三軸驅(qū)動電流大小。由RM6025驅(qū)動板到云臺控制板的CAN幀內(nèi)容包括三軸實時驅(qū)動電流大小,以及三軸當前絕對角度值,本文會用到其中兩軸的相關數(shù)據(jù)。兩軸云臺的具體控制算法為位置式雙閉環(huán)PID控制算法。[16]
1.位置式PID控制算法
PID調(diào)節(jié)器是一種線性調(diào)節(jié)器,控制偏差定義為e(n)=r(n)-(n),并對該控制偏差作比例、積分、微分等運算,并將其各步運算結(jié)果作為控制量輸出,用于控制受控對象(如圖7)。本文系統(tǒng)采用數(shù)字式PID控制算法,其輸出變量的離散表達式為:
其中,kp、ki、kd分別稱為比例常數(shù)、積分常數(shù)、微分常數(shù)。實際利用位置式PID控制受控系統(tǒng)時,常采用經(jīng)驗值法或試湊法來分別調(diào)整kp、ki、kd的大小,調(diào)整或改善系統(tǒng)控制性能。
PID運算結(jié)果u(n)直接控制執(zhí)行機構(gòu),在本系統(tǒng)中,該值對應驅(qū)動兩軸云臺無刷電機的電流值大小,其缺點在于當前采樣時刻的輸出與過去的各個狀態(tài)有關,計算時要對各個時刻的e(n)進行累加,運算量大,且由于控制器的輸出u(n)對應的是直接驅(qū)動無刷電機的電流大小,因而若計算出現(xiàn)異常,u(n)的大幅度變化會引起云臺運動的極其不穩(wěn)定。其優(yōu)點在于適用性廣,易于實現(xiàn)且對于位置式控制方式的系統(tǒng),系統(tǒng)適用性總體較強,控制效果較好。
2.增量式PID控制算法
相對于位置式PID,增量式PID控制器的輸出只是控制量的增量△u(n),對于位置式PID算法的轉(zhuǎn)化計算式為u(n)=u(n-1)+△u(n)。其輸出變量離散表達式如下:
其中,kp、ki、kd分別稱為比例常數(shù)、積分常數(shù)、微分常數(shù),e(n)=r(n)-y(n)為目標與輸出量之差,稱為控制偏差。
增量式PID算法的優(yōu)點在于,首先,不需要累加,輸出△u(n)的值僅與最近三次的采樣值有關,容易通過加權(quán)處理獲得較好的控制效果。其次,控制器每次只輸出控制增量,即對應執(zhí)行機構(gòu)的位置的變化量,所以當機器出現(xiàn)偶然性故障時,其影響范圍相對于位置式PID較小,不會嚴重影響系統(tǒng)的整體性能。最后,增量式PID控制可以做到手動至自動切換,沖擊效應小,當控制器從手動向自動切換時,可以做到無擾動切換。
3.棒棒控制算法
設定閾值,在誤差較大時采用大輸出控制電機,將誤差在最短時間內(nèi)減小到所要求的范圍,這就是棒棒控制的思想,棒棒控制又稱時間最優(yōu)控制。棒棒控制的優(yōu)點在于,其在隨動系統(tǒng)調(diào)轉(zhuǎn)控制過程中能很好地滿足系統(tǒng)快速性的要求,達到階躍過程最小化,并且結(jié)合其他控制方法提高系統(tǒng)自適應能力和控制精度,有很好的推廣價值。其缺點在于,閾值選取不當,可能會出現(xiàn)超調(diào)或嚴重回擺的現(xiàn)象,常常需要與其他控制算法配合使用。
此外,基于遺傳算法的模糊PID算法[17]計算量過大,會給系統(tǒng)帶來較大的延時,不能滿足系統(tǒng)對實時性的要求,故不可用。兩軸云臺系統(tǒng)的工作環(huán)境并不會有太大的波動,根據(jù)比賽場景預測,單次轉(zhuǎn)動角度值應在30度以下,所以可以采用分段模式下的模糊PID算法。由于控制變量誤差范圍較小,分段可以滿足系統(tǒng)適應性要求,若采用加權(quán)平均求取實時性PID參數(shù),就會加大系統(tǒng)的計算任務,過分提高系統(tǒng)參數(shù)的靈敏度,這反而容易降低系統(tǒng)的抗干擾性能。最后,微分先行、閾值控制方式可以有效抑制系統(tǒng)的超調(diào),且調(diào)高系統(tǒng)的穩(wěn)定性。本文選擇通過分段,微分先行、閾值控制等方式改進的PID算法作為系統(tǒng)最終的控制算法。endprint
● 結(jié)語
CAN總線技術(shù)與直流無刷電機的組合非常適用于高性能的機器人平臺,其體積小巧,設置簡單,帶有智能保護且動力強勁。它可內(nèi)置多種傳感器,可自動感應溫度、斷線等異常狀況并及時報警,快速定位故障,使用更安全。在機器人平臺上,CAN總線可以搭載多臺電機,擴展性強,將是未來模塊化機器人發(fā)展的重要技術(shù)之一。希望CAN總線、無刷直流電機模塊等技術(shù)能運用到更多的機器人競賽和實踐項目中,培養(yǎng)更多的機器人技術(shù)人才。
參考文獻:
[1]輝亞男,冷文浩,劉培林.CAN總線應用層通信協(xié)議的設計與實現(xiàn)[J].計算機工程與設計,2008(3):669-671.
[2]楊建軍.CAN總線技術(shù)在汽車中的應用[J].上海汽車,2007(6):32-34.
[3]王小飛,向國權(quán).車載CAN總線技術(shù)研究綜述[J].汽車零部件,2009(8):64-65.
[4]陳國偉,丁學明.基于CAN總線的無刷直流電機控制系統(tǒng)設計[J].電子科技,2017,30(3):153-156.
[5]史鵬飛,劉景林,謝映宏.基于CAN總線的測試用無刷直流電機控制器設計[J].測控技術(shù),2012,31(2):68-71.
[6]劉慧博,王靜,吳彥合.無刷直流電機模糊自適應PID控制研究與仿真[J].控制工程,2014,21(4):583-587.
[7]石維亮,王興松,賈茜.基于Mecanum輪的全向移動機器人的研制[J].機械工程師,2007(9):18-21.
[8]王一治,常德功.Mecanum四輪全方位系統(tǒng)的運動性能分析及結(jié)構(gòu)形式優(yōu)選[J].機械工程學報,2009,45(5):307-310.
[9]海丹.全向移動平臺的設計與控制[D].長沙:國防科學技術(shù)大學,2005.
[10]盧浩文,謝佳洽,李澤寰,等.基于三維軟件的麥克納姆輪移動平臺懸架系統(tǒng)研究[J].數(shù)字技術(shù)與應用,2016(11).
[11]陳博翁,范傳康,賀驥.基于麥克納姆輪的全方位移動平臺關鍵技術(shù)研究[J].東方電氣評論,2013,27(4):7-11.
[12]Diegel O,Potgieter J,Badve A,et al.Tlale,Improved Mecanum Wheel Design for Omni-directional Robots[C].2012:117-121.
[13]Mohd Salih J E,Rizon M,Yaacob S,et al.Designing omni-directional mobile robot with mecanum wheel.[J].American Journal of Applied Sciences,2006,3(5).
[14]Peng T,Qian J,Zi B,et al.Mechanical Design and Control System of an Omni-directional Mobile Robot for Material Conveying [J]. Procedia Cirp,2016(56):412-415.
[15]胡桐.四輪獨立驅(qū)動和轉(zhuǎn)向移動機器人的設計與控制[D].合肥:合肥工業(yè)大學,2015.
[16]方煒,張輝,劉曉東.無刷直流電機雙閉環(huán)控制系統(tǒng)的設計[J].電源學報,2014(2):35-42.
[17]曹建秋,徐凱.遺傳算法優(yōu)化的模糊+變論域自適應模糊PID復合控制策略[J].信息與控制,2011,40(1):44-49+60.endprint