北京聯(lián)合大學(xué) 鐘曉青 林 智 和青芳
基于STM32的機(jī)械手臂控制系統(tǒng)設(shè)計
北京聯(lián)合大學(xué) 鐘曉青 林 智 和青芳
機(jī)械臂在近十幾年的發(fā)展中,已經(jīng)實(shí)現(xiàn)根據(jù)軟件程序的設(shè)計操作機(jī)械臂完成相應(yīng)的特定工作。它不僅可以在人們無法作業(yè)的環(huán)境下工作,而且還能保持長時間的作業(yè)和低失誤率。本文簡要介紹基于STM32的機(jī)械手臂控制系統(tǒng)實(shí)現(xiàn)方案。
舵機(jī);STM32單片機(jī);PWM波
早在很久以前,人們就已經(jīng)開始制作機(jī)器人,以減輕人類的繁重勞動。一直以來,人們總是嘗試將生活變的更加簡單。而如今,有關(guān)于自動機(jī)器人相關(guān)的技術(shù)已然成為了各國科技水平程度的體現(xiàn)之一。
2.1 系統(tǒng)分析
本文對基于STM32的自動機(jī)械臂控制系統(tǒng)進(jìn)行了研究和設(shè)計。以六自由度機(jī)械臂為研究對象,使用STM32為主控芯片,再利用穩(wěn)壓模塊、無線模塊和電機(jī)驅(qū)動模塊設(shè)計了系統(tǒng)的硬件結(jié)構(gòu),并在軟件設(shè)計方面采用了先進(jìn)的控制理論。通過合理的算法進(jìn)行了軟件設(shè)計。
2.2 設(shè)計結(jié)構(gòu)圖
本設(shè)計采用單CPU集中控制方式,即由stm32來控制舵機(jī),執(zhí)行相應(yīng)的預(yù)定動作,自動機(jī)械臂控制系統(tǒng)的構(gòu)成如圖2.1所示。
圖2.1 機(jī)械臂控制系統(tǒng)結(jié)構(gòu)
該系統(tǒng)是通過計算機(jī)的事先的編程之后,通過數(shù)據(jù)傳輸下載到stm32當(dāng)中通過控制stm32的定時器產(chǎn)生多路的PWM波。舵機(jī)就會依據(jù)給定的PWM波完成相應(yīng)的運(yùn)動軌跡或按照預(yù)定的計劃完成任務(wù)。
2.3 機(jī)械臂的臂部設(shè)計
因?yàn)闄C(jī)械臂主要是由臂部組成,所以在進(jìn)行臂部設(shè)計時應(yīng)當(dāng)著重注意以下幾點(diǎn):(1)手臂在機(jī)械臂中起著重要的作用:它不光可以讓物體進(jìn)行移動而且還能進(jìn)行一些操作。(2)因?yàn)闄C(jī)械臂的臂部在運(yùn)動中有很大負(fù)擔(dān),為了減小手臂的負(fù)擔(dān),需要將手臂的截面形狀做的更加合理。在進(jìn)行了各種截面對彎曲度的承受力的實(shí)驗(yàn)后發(fā)現(xiàn),在相同力的情況下,工字型的截面能承受的力最大,因此我選擇使用工字型截面做手臂的截面。(3)因?yàn)闄C(jī)械臂在直線運(yùn)動中可能會發(fā)生突然的方向轉(zhuǎn)換,因此,為了防止機(jī)械臂的硬件損耗過大,需要采用一些裝置來保護(hù)機(jī)械臂。同時要采用一定形式的緩沖措施。(4)為了減少臂部在運(yùn)動時會產(chǎn)生較大的轉(zhuǎn)動慣量,需要將臂部的重量減少,以免在運(yùn)動中產(chǎn)生較大的誤差,從而影響機(jī)械臂的整體運(yùn)作,加快機(jī)械臂的運(yùn)行速度。
經(jīng)過對預(yù)期任務(wù)的特點(diǎn)和類型分析,該設(shè)計需要機(jī)械臂具有較高的靈活性和流暢性,因此在多次的比較和分析后,決定使用多關(guān)節(jié)型機(jī)械臂。它不僅可以靈活的完成預(yù)定任務(wù),而且可以有更大的運(yùn)動空間。
2.4 機(jī)械臂自由度選擇
通常將機(jī)械臂是由幾個傳動結(jié)構(gòu)組成的就稱為幾自由度。例如人類的自由度高達(dá)27個,而手臂部分的自由度一般為6自由度。所以仿照人類的特性,機(jī)械臂的自由度應(yīng)當(dāng)選為6自由度,這樣既符合了身體力學(xué)并且動力傳輸效率也很高。為了更加流暢的完成抓取物體,并將物體移動到指定的位置,需要采用6自由度。而6自由度的機(jī)械臂的控制較為繁瑣,所以工業(yè)和生活中機(jī)械臂的自由度多少于6個。
2.5 機(jī)械臂控制器類型
控制器的主要任務(wù)就是按照預(yù)先設(shè)計的程序進(jìn)行相應(yīng)的任務(wù),它是機(jī)械臂中十分重要的組件。機(jī)械臂的控制器就相當(dāng)于電腦中的處理器,只有處理器越好,電腦的運(yùn)行速度和處理速度才會越快。對于機(jī)械臂來說也一樣,只有控制器越好,才能更加精準(zhǔn)快速的進(jìn)行控制。從控制器的數(shù)量和機(jī)械臂的控制方式可分為以下幾種:單CPU集中控制、多CPU分散控制、雙CPU分級控制。本文所設(shè)計的機(jī)械臂控制系統(tǒng),利用stm32的強(qiáng)大的處理能力和多線程的管理能力,由此,采用單CPU集中控制方式即可。
機(jī)械臂的機(jī)械系統(tǒng)的基本要求應(yīng)當(dāng)有如下幾個特點(diǎn):(1)控制系統(tǒng)應(yīng)當(dāng)微小化、輕便化和分塊化,以便將控制器安裝到受控對象的硬件上,以便更好的進(jìn)行控制。因此為了更有效的減少硬件結(jié)構(gòu)的復(fù)雜度和負(fù)載,所以要盡可能的微小化和輕便化。此外,為了系統(tǒng)具有較好的獨(dú)立性,所以要盡可能的分層化。(2)控制系統(tǒng)的實(shí)時性:因?yàn)闄C(jī)械臂是一種即時的操作,所以對于機(jī)械臂的每一個動作,都要確保其是快速的反應(yīng),否則機(jī)械臂就不能順利完成相應(yīng)的動作。(3)系統(tǒng)的穩(wěn)定性和開源性。為了確保機(jī)械臂可以完成任務(wù)要求,因此穩(wěn)定性是十分重要的。此外,因?yàn)楹笃诳赡艹霈F(xiàn)更多的問題,所以要確保后期可以對控制系統(tǒng)進(jìn)行二次開發(fā)。
本文的系統(tǒng)由控制模塊、直流伺服電機(jī)模塊和電源驅(qū)動模塊組成。每個模塊的作用如下:
控制模塊:該模塊是機(jī)械臂控制系統(tǒng)的核心,由stm32、串口和穩(wěn)壓模塊組成,其主要是控制各個直流伺服舵機(jī)進(jìn)行運(yùn)動。
直流伺服電機(jī)模塊:該模塊主要是實(shí)現(xiàn)不用動作的基礎(chǔ),由控制模塊發(fā)送的PWM波進(jìn)行控制。
圖4.1 系統(tǒng)流程圖
4.1 算法設(shè)計
硬件結(jié)構(gòu)作為機(jī)械臂的身體構(gòu)架支持著整個系統(tǒng)的運(yùn)行。而軟件方面作為機(jī)械臂控制系統(tǒng)的大腦中樞,統(tǒng)籌著身體和思維進(jìn)行正確的判斷和運(yùn)作。軟件部分的優(yōu)劣影響著整個機(jī)械臂控制系統(tǒng)的運(yùn)行流暢性、穩(wěn)定性和整體功能的發(fā)揮。因此程序設(shè)計十分重要,需要滿足整體系統(tǒng)的基本需要,主要包括以下幾點(diǎn):(1)實(shí)時性:因?yàn)樵诳刂破骺刂剖直蹠r,要實(shí)現(xiàn)對手臂的實(shí)時控制,需要確保數(shù)據(jù)的實(shí)時性,并且只有整體的實(shí)時才可以保證機(jī)械臂操作系統(tǒng)在工作的時候不會出現(xiàn)死區(qū)等故障問題。(2)穩(wěn)定性:穩(wěn)定性是指系統(tǒng)在運(yùn)行過程中,為了防止故障發(fā)生,以及出現(xiàn)故障后的自我解決故障的能力。因此,為了提高系統(tǒng)的穩(wěn)定性,在進(jìn)行設(shè)計的時候必須要考慮到運(yùn)行時可能出現(xiàn)的不正?,F(xiàn)象。(3)再開發(fā)性:好的程序設(shè)計不是一次設(shè)計和調(diào)試就可以正常運(yùn)行的,而總是伴隨著一邊調(diào)試一邊更改的過程,經(jīng)過多次修改后才能達(dá)到系統(tǒng)的要求。所以在開發(fā)的過程時,就應(yīng)當(dāng)有好的結(jié)構(gòu),以便于程序的再調(diào)試,并確保程序具有結(jié)構(gòu)簡單、思路清晰的優(yōu)點(diǎn)。
對于如何使系統(tǒng)的運(yùn)行,更加的順利以及實(shí)現(xiàn)更多的功能,本文的機(jī)械臂控制系統(tǒng)的程序設(shè)計采用的是分層化結(jié)構(gòu)設(shè)計,其中含有系統(tǒng)時鐘與Systick定時器模塊,串口采集模塊,串口發(fā)送模塊,定時器模塊,計算器模塊?;镜某绦蛴谐绦虺跏蓟菏鼓K都處于可以被使用的狀態(tài),自動運(yùn)行:各模塊按照程序進(jìn)行運(yùn)作,手動操作:根據(jù)無線模塊獲取的信息進(jìn)行處理后發(fā)送至舵機(jī)。流程圖如圖4.1所示。
通過實(shí)驗(yàn)證明:本文設(shè)計的機(jī)械臂控制系統(tǒng),可以勝任中小型機(jī)器人控制器的要求,具有控制準(zhǔn)確度高、操作方便、動作靈活等方面的優(yōu)良表現(xiàn)。然而仍有一些不足需喲改進(jìn),主要有:
(1)機(jī)械臂的改造。作為系統(tǒng)的主要受控對象,需要其有著優(yōu)越的穩(wěn)定性才能達(dá)到更加精準(zhǔn)的控制。本文的機(jī)械臂的爪部有待改進(jìn),例如加入壓力傳感器可以更好的完成抓取的動作。
(2)算法的完善:對算法的冗余和處理方面進(jìn)行改進(jìn),可以有效的改善機(jī)械臂的運(yùn)作,例如調(diào)整:輸入?yún)?shù)和如何輸出更加精準(zhǔn)的PMW波。
基于上述問題,在今后的時間里,我們將會不斷的修改以加強(qiáng)機(jī)械臂的穩(wěn)定性和可靠性。參考文獻(xiàn)
[1]焦保存.基于四自由度機(jī)械臂控制系統(tǒng)的設(shè)計與研究[D].西安:西安電子科技大學(xué),2009:5.
[2]李磊.六自由度機(jī)械臂控制系統(tǒng)設(shè)計[D].哈爾濱:哈爾濱工程大學(xué),2007:66.
[3]程立艷.五自由度機(jī)械手的抓取設(shè)計[D].成都:西華大學(xué),2012:51.
[4]ST Microelectronics 數(shù)據(jù)手冊 STM32G103XCSTM32G103xD
STM32G103XE[EB/QL].http://www.st.com.
[5]ST Microelectronics STM32F101xx,STM32F102xx,STM32F103xx,ST M32F105xx和STM32F107xx,ARM內(nèi)核32位高性能微控制器參考手冊.
[6]黃智偉,王兵,朱衛(wèi)華.STM32F32位ARM微控制器應(yīng)用設(shè)計與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2012:3-4.
[7]鄭珊珊.基于ARM處理器的鉆孔機(jī)械臂控制系統(tǒng)研究[D].南昌:江西理工大學(xué),2009:5-6.
[8]庫少平,劉晶.基于STM32F10x和MDK的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計[J].武漢理工大學(xué),2011:7.
[9]曹歡.基于ARM和FPGA的多自由度機(jī)械臂控制系統(tǒng)設(shè)計[D].上海:華東理工大學(xué),2011:7.
和青芳,指導(dǎo)教師。
鳴謝:該項(xiàng)目的研究成果基于北京聯(lián)合大學(xué)“啟明星”大學(xué)生科技創(chuàng)新項(xiàng)目經(jīng)費(fèi)資助,項(xiàng)目編號:201611417SJ096。