機(jī)器人運(yùn)動控制,可編程vs固定功能控制器哪種才是最合適
機(jī)器人的運(yùn)動控制方法看似非常簡單:有驅(qū)動器的支持末端執(zhí)行器快速準(zhǔn)確的到達(dá)指定的位置,當(dāng)然也會涉及一些調(diào)整,和所有工程決策一樣,取決于給定應(yīng)用的最優(yōu)結(jié)果相關(guān)的優(yōu)先級設(shè)置。機(jī)器人運(yùn)動控制系統(tǒng)選型從基礎(chǔ)專用功能IC到高集成非常靈活的MCU,集成豐富的輔助和支持功能。
現(xiàn)在復(fù)雜的機(jī)器人手臂的控制,無論它們的大小與功率,都需要多軸同步管理才能實(shí)現(xiàn)動作控制?,F(xiàn)代電子器件——電動機(jī)、電源切換器件(MOSFET、IGBT)、設(shè)備驅(qū)動、控制系統(tǒng)(現(xiàn)在主要是數(shù)字化、之前是模擬控制)、反饋傳感器——使得精確的動作控制相比幾年前顯得更加簡單(如圖1所示)。然而與此同時對于系統(tǒng)性能需要也明顯增加了,所以現(xiàn)在整個項目的搭建也是相當(dāng)?shù)睦щy。
圖1:機(jī)器人基礎(chǔ)的動作控制系統(tǒng),包括算法執(zhí)行功能、電動機(jī)驅(qū)動、電源設(shè)備、反饋環(huán)節(jié);機(jī)械傳動、電動機(jī)和傳感器(在大多數(shù)情況下);關(guān)鍵節(jié)點(diǎn)設(shè)置電壓和電流測量和控制。
無論怎樣有一個實(shí)際情況是不可避免的:機(jī)器人是一個大型的機(jī)械系統(tǒng),因此這部分實(shí)際系統(tǒng)必須是控制回路的重要組成部分。這就涉及到齒輪反彈、機(jī)械誤差、震動、電動機(jī)性能、旋轉(zhuǎn)慣性、動量、機(jī)械結(jié)構(gòu)的彎曲程度、載荷變化等等。因此選擇哪種類型的電動機(jī)非常的重要——對于中/低功率應(yīng)用場景,通常我們會在無刷直流電動機(jī)和步進(jìn)電動機(jī)之間選擇。
另一個重要的決定則是傳感器反饋。大多數(shù)機(jī)器人應(yīng)用系統(tǒng)采用某種類型的反饋傳感器來準(zhǔn)確測量末端執(zhí)行器的行程、加速度和加速度(重申一下:速度是行程對時間的導(dǎo)數(shù),加速度是速度對時間的導(dǎo)數(shù))。反饋傳感器可以采用霍爾效應(yīng)傳感器、自動同步器或者光編碼器。由于上文提到的機(jī)械問題,盡管我們很容易的將編碼器安裝到電動機(jī)上,對于應(yīng)用準(zhǔn)確性的要求它可能也不能夠提供末端執(zhí)行器精確的數(shù)據(jù)。因此傳感器需要安裝在距離負(fù)載端更近的位置。
一些運(yùn)動控制應(yīng)用沒有傳感器,這會降低成本和機(jī)械復(fù)雜度。不采用傳感器反饋,無傳感器的面向應(yīng)用控制(FOC,也稱為矢量控制)利用的是電動機(jī)每相繞組電壓和電流的精確同步的數(shù)據(jù);然后FOC采用復(fù)雜的框架參考進(jìn)行實(shí)時轉(zhuǎn)換和矩陣計算來確定電動機(jī)的轉(zhuǎn)動位置。省去傳感器降低了硬件成本,但是需要更強(qiáng)的計算能力和更加復(fù)雜的編程設(shè)計。很多機(jī)器人設(shè)計還是傾向于使用傳感器,因為相對于直接的傳感器讀數(shù),F(xiàn)OC不能夠提供相同水平的自信度、可行度和可靠性。
理解基礎(chǔ)的機(jī)器人系統(tǒng)配置雖然公眾傾向于將“機(jī)器人”這個名詞與移動的、生活輔助或助手聯(lián)系起來,在工業(yè)領(lǐng)域大部分機(jī)器人系統(tǒng)都是靜止的,采用各種各樣的機(jī)械臂,通過之前的配置完成各種任務(wù)。最常見的設(shè)計如下:
• 笛卡爾機(jī)器人,設(shè)置三個線性的運(yùn)動軸,分別分布在X、Y、Z平面上(如圖2所示)。這個設(shè)計主要用于挑選和放置機(jī)器、無縫應(yīng)用和基礎(chǔ)的組裝。
圖2:笛卡爾機(jī)器人是最容易理解和控制的,分別等價為X、Y、Z平面的控制
• 柱型機(jī)器人,所有運(yùn)動都限制的一個圓形的區(qū)域內(nèi)。它結(jié)合了Y平面的線性運(yùn)動、Z平面的線性運(yùn)動和圍繞Z軸的旋轉(zhuǎn)運(yùn)動(如圖3所示)。這類機(jī)器人用于裝配、工具處理和點(diǎn)焊操作。
圖3:柱型機(jī)器人有兩個線性運(yùn)動軸和一個旋轉(zhuǎn)軸
• 球形或極性機(jī)器人結(jié)合了兩個旋轉(zhuǎn)節(jié)點(diǎn)和一個線性節(jié)點(diǎn),機(jī)械臂通過反肘關(guān)節(jié)與基座連接(如圖4所示)。運(yùn)動的定義則是通過一個極坐標(biāo)系統(tǒng),同樣限制在一個球形區(qū)域內(nèi)。主要應(yīng)用在焊接、鑄造和工具處理等場景中。
圖4:球形或極性機(jī)器人結(jié)合了兩個旋轉(zhuǎn)軸和一個線性軸,它需要根據(jù)參考系進(jìn)行大量的計算密集型轉(zhuǎn)換操作
這里提到的方法具有三個方向的自由度,使用了線性和旋轉(zhuǎn)的結(jié)合,然而一些應(yīng)用場景僅需要一個或者兩個方向的自動度。更高級的機(jī)械臂或者鉸接式機(jī)器人集成了額外的線性和旋轉(zhuǎn)運(yùn)動,具有像人一樣的靈活性(如圖5所示),一些更高級的機(jī)械臂能夠提供六、八甚至更多方向的自由度。
圖5:鉸接式機(jī)器人手臂集成了多個旋轉(zhuǎn)和線性運(yùn)動模式,具有多個自由度,但是也需要在制動器和手臂之間進(jìn)行仔細(xì)的協(xié)調(diào)。
其他一些設(shè)計適用不同的線性和旋轉(zhuǎn)運(yùn)動的組合用于特定的應(yīng)用場景,比如平行四邊形的實(shí)現(xiàn)方案,用于精確和快速地在短距離內(nèi)實(shí)現(xiàn)移動,例如拾取和放置小型組件。隨著自由度的提升,對每個方向自由度快速、流暢、準(zhǔn)確和同步控制的要求也呈指數(shù)級增長。
就軌跡配置文件而言機(jī)器人的運(yùn)動控制方法看似非常簡單:有驅(qū)動器的支持末端執(zhí)行器快速準(zhǔn)確的到達(dá)指定的位置,當(dāng)然也會涉及一些調(diào)整,和所有工程決策一樣,取決于給定應(yīng)用的最優(yōu)結(jié)果相關(guān)的優(yōu)先級設(shè)置。
舉個例子,如果結(jié)果偏離過大或者有可能出現(xiàn)碰撞,我們設(shè)置加速和減速過快來快速達(dá)到更高的運(yùn)動速度,這樣操作能夠接收嗎?對于速度精確度控制值得嗎,要達(dá)到什么程度?加速度、速度和行程的選擇與從位置A到位置B期望的轉(zhuǎn)換有什么關(guān)聯(lián)?在某些特殊應(yīng)用中定義“最優(yōu)”的優(yōu)先級和參數(shù)的標(biāo)準(zhǔn)是什么?
機(jī)器人運(yùn)動控制和其它運(yùn)動控制方面的專家已經(jīng)制定了標(biāo)準(zhǔn)的軌跡配置規(guī)范,對于給定應(yīng)用能夠提供各種方法來實(shí)現(xiàn)期望的平衡方案。所有選型都涉及到根據(jù)現(xiàn)在的情形和反饋信號進(jìn)行實(shí)時的計算,但是某些應(yīng)用可能會需要更重要、更高分辨率計算的需求。這些配置類型包括:
• 簡單的梯形配置,電動機(jī)以固定的加速度從零加速到期望的速度,并進(jìn)行保持,然后以固定的加速度減速到零,到達(dá)指定的位置(圖6)。雖然較大的加速度能夠加速整個過程,但是整個過程可能不夠平緩,出現(xiàn)突然的變化,我們成為驟?;蛘唧E起,這樣反而會造成不準(zhǔn)確和超量。
圖6:最簡單的運(yùn)動軌跡配置方式就是梯形模式,分別設(shè)置常量加速度、常量速度、常量減速度,從起始點(diǎn)和目標(biāo)點(diǎn)之間的運(yùn)動控制是均勻的
• S曲線型,這種方式比梯形模式更常見,加速度從零不斷上升,達(dá)到指定速度后不斷下降(圖7)。到達(dá)指定位置后,減速度逐漸上升然后在目標(biāo)點(diǎn)附近減為零。實(shí)際上S型曲線可以劃分為七個不同的階段,與梯形模式的三個階段相對比。
圖7:相比梯形模式S曲線型控制更加的復(fù)雜,但是在轉(zhuǎn)換的實(shí)際路徑過程中不會出現(xiàn)突然的抖動(加速的突然變化)
•波浪型運(yùn)動控制,用戶設(shè)置一系列所要達(dá)到的位置點(diǎn),運(yùn)動控制器會平滑的通過所有這些點(diǎn)(圖8)。這種模式在靈活性和控制上都具有最大的優(yōu)越性,對于高級的運(yùn)行控制場景非常有必要。實(shí)現(xiàn)平滑的曲線控制和計算過程都非常的復(fù)雜,盡管需要非常大的計算量,但是由于舍入或截斷誤差需要在保證分辨率的情況下實(shí)現(xiàn)。
圖8:波浪型運(yùn)動控制允許用戶在起始點(diǎn)和目標(biāo)點(diǎn)之間定義一系列的位置標(biāo)記點(diǎn),控制器需要控制末端執(zhí)行器平滑的通過這些點(diǎn)
當(dāng)然還有其他的運(yùn)動控制配置模型,這與專用應(yīng)用場景或者行業(yè)有關(guān),無論哪種控制模式,首先要先明確需求然后是如何實(shí)現(xiàn)。眾所周知高效的PID閉環(huán)控制算法是驅(qū)動電動機(jī)和末端執(zhí)行器最常用的方法,具有足夠高的準(zhǔn)確度和精密度(參考1)。
單個軸的高效控制是非常好實(shí)現(xiàn)的,但是機(jī)器人的控制則變得非常的復(fù)雜,因為他需要擴(kuò)展兩個、三個甚至更多的電動機(jī)以及不同的自由度,當(dāng)其中一個獨(dú)立組件的狀態(tài)變化時,我們需要及時的同步和協(xié)調(diào)其他的組件,實(shí)現(xiàn)我們所期望的功能和性能要求。
標(biāo)準(zhǔn)vs自定義運(yùn)動控制應(yīng)用對于標(biāo)準(zhǔn)的運(yùn)動控制應(yīng)用,采用專用固定功能的嵌入式IC能夠大大簡化系統(tǒng)設(shè)計,并且讓產(chǎn)品快速面市。相反,對于非標(biāo)準(zhǔn)的應(yīng)用,運(yùn)動控制模型需要我們自定義,如果各個運(yùn)動軸之間的關(guān)聯(lián)比較復(fù)雜,必須適配異?;颡?dú)特的事件,那么設(shè)計團(tuán)隊就需要采用全可編程的處理器。而且還需要處理器集成數(shù)字信號處理(DSP)功能來滿足計算密集型任務(wù)需求或者采用可編程邏輯器件(FPGA)。當(dāng)我們考慮可編程器件時,除了IC器件本身的硬件功能外,供應(yīng)商、第三方工具、可用的軟件模塊都是我們做出選擇是需要考慮的重要因素。
需要注意的是控制器與電動機(jī)驅(qū)動器是不同的,一般采用MOSFET/IGBT驅(qū)動/器件來控制電動機(jī)的功率,主要是兩個原因。首先這些功率器件需要能夠驅(qū)動電動機(jī),獨(dú)立于控制器。其次基于MOSFET的高密度互補(bǔ)處理技術(shù)用于數(shù)字控制器與功率器件的處理過程完全不同。對于小型的電動機(jī),我們可以將控制器、驅(qū)動器和電源器件集成在一起。盡管存在著根本上的差異,“控制器”通常指具備電源功能的模塊,因此一般會在關(guān)鍵詞搜索時造成困擾。
一些運(yùn)動控制IC的實(shí)例展示了這些器件的使用范圍,基本的單功能器件如Toshiba TB6560AFTG是一款PWM斬波型步進(jìn)電動機(jī)控制器和驅(qū)動IC,可用于雙極步進(jìn)電動機(jī)的正弦信號輸入,實(shí)現(xiàn)微調(diào)(圖9)。采用QFN(方形扁平無引腳)封裝,物理尺寸7x7mm,采用一個時鐘信號就可以提供高性能的正向和反向雙極型步進(jìn)電機(jī)的驅(qū)動,并且能夠給電動機(jī)繞組輸送2.5A的電流。
圖9:Toshiba TB6560AFTG是一款步進(jìn)電動機(jī)控制器,具有微調(diào)功能,集成2.5A MOSFET功率模塊,能夠直接驅(qū)動電動機(jī)繞組。
即使在微調(diào)模式下,步進(jìn)電動機(jī)的一個問題就是在啟動和停止時它的輸出存在振動,盡管在很多應(yīng)用中這不算是個問題,但是如果我們處理像玻璃器皿這樣的精致物品時就是一個大問題,還有可能導(dǎo)致整個系統(tǒng)的振動。因此,TB6560AFTG允許用戶調(diào)整驅(qū)動電流的上升/下降,并且建立完善的電流上升/下降的轉(zhuǎn)換,從而將振動減小到最低(圖10)。
圖10:在具體應(yīng)用中,Toshiba TB6560AFTG需要很少的外部組件,并且接收系統(tǒng)處理器的高級指令,最后轉(zhuǎn)換為詳細(xì)的步進(jìn)控制信號
機(jī)器人運(yùn)動控制系統(tǒng)的最頂端是一些高級的單元,例如TI C2000微控制器系列。C2000包括多個系列的器件,分別集成不同的功能,如基礎(chǔ)的處理功能、數(shù)字計算能力、輸入/輸出接口的數(shù)量和類型以及管家功能如定時器、看門狗和脈沖寬度調(diào)制發(fā)生器。
舉個例子,C2000分組下的TMS320 Delfino系列處理器(圖11)提供原生浮點(diǎn)支持,消除了定點(diǎn)開發(fā)的挑戰(zhàn),當(dāng)然它也支持帶有IQMath虛擬浮點(diǎn)引擎的原生器件之間的定點(diǎn)和浮點(diǎn)代碼的移植。這就系統(tǒng)中就不需要設(shè)計第二個集成單核或者雙核的處理器了,同樣能夠提供高效的數(shù)字信號處理的算數(shù)任務(wù)以及微控制器的系統(tǒng)控制任務(wù)。它們同樣也集成了三角數(shù)學(xué)單元(TMU)加速器,這樣就加速了很多控制回路中常見三角算法的執(zhí)行速度,比如轉(zhuǎn)矩閉環(huán)算法。
圖11:TI C2000系列器件包括多個子系列,每個子系列有包含多個不同規(guī)格的器件;Delfino分組就包括一個強(qiáng)大的處理器和嵌入式協(xié)處理器,內(nèi)部集成了很多基于硬件的功能,很大程度上降低了編程難度,加速了執(zhí)行速度。
支持這些處理器的是開發(fā)工具和套件,比如 LAUNCHXL-F28377S C2000 Delfino LaunchPad就是基于TMS320C28x 32位CPU處理器(圖12)。這款套件還集成了F28377S微控制器單元(MCU),能提供400MIPS的系統(tǒng)性能,介于200MHz C28x中央處理單元和200MHz實(shí)時控制協(xié)處理器之間。這款微控制器還包含1MB板載FLASH以及豐富的外圍設(shè)備比如16位/12位模數(shù)轉(zhuǎn)換器、比較器、12位數(shù)模轉(zhuǎn)換器、正弦濾波器、高分辨率脈寬調(diào)制器、增強(qiáng)的捕獲模塊、增強(qiáng)的積分編碼模塊、CAN總線網(wǎng)絡(luò)模塊等等。
圖12:一些工具如TI公司推出的LaunchPad對于開發(fā)、集成和評估基于C2000 Dlifino系列處理器應(yīng)用的硬件和軟件功能至關(guān)重要
除了MCU,LaunchPad內(nèi)置了獨(dú)立的XDS100v2 JTAG仿真器,支持通過USB實(shí)現(xiàn)實(shí)時的系統(tǒng)內(nèi)編程和調(diào)試。LaunchPad還設(shè)計了兩個40-pin的接口,支持兩個BoosterPacks的同時操作;包含一個免費(fèi)無限制的CCS集成開發(fā)環(huán)境(IDE);免費(fèi)下載controlSUITE軟件包。
總結(jié)機(jī)器人運(yùn)動控制系統(tǒng)選型從基礎(chǔ)專用功能IC到高集成非常靈活的MCU,集成豐富的輔助和支持功能。盡管嵌入式器件看似功能有限,但是它們也支持多有不同的運(yùn)動控制模型設(shè)計,設(shè)置嚴(yán)格的參數(shù),這類器件供貨重組、成本低而且易于使用。對于一些高級的設(shè)計可能需要極其復(fù)雜的要求或者需要額外的互聯(lián)、控制燈需求,有平臺和開發(fā)套件的支持如代碼包的驗證、調(diào)試和程序開發(fā)工具以及工程驗證等,MCU能夠提供高效的解決方案。