孫海峰
摘要:隨著嵌入式設(shè)備的不斷發(fā)展以及物聯(lián)網(wǎng)IOT技術(shù)和理論的進(jìn)展,許多曾經(jīng)的復(fù)雜設(shè)備正在快速降低開發(fā)和應(yīng)用門檻。機(jī)械臂作為與日常生產(chǎn)生活有關(guān)的重要設(shè)備,對其控制系統(tǒng)的研究,有助于更好地理解嵌入式設(shè)備的實(shí)踐使用。我們可以通過現(xiàn)有的流行ARM平臺(tái),搭建符合本科階段學(xué)習(xí)研究的小型機(jī)械臂系統(tǒng)。
關(guān)鍵詞:機(jī)械臂;網(wǎng)絡(luò)控制;樹莓派;路徑規(guī)劃;ARM
1概述
物聯(lián)網(wǎng)控制技術(shù)正在理論與實(shí)際應(yīng)用中飛速發(fā)展。在工業(yè)控制、科學(xué)研究、航空航天、軍事、遠(yuǎn)程醫(yī)療、機(jī)器人遙控等領(lǐng)域,越來越多的控制系統(tǒng)開始改變結(jié)構(gòu),通過網(wǎng)絡(luò)遠(yuǎn)程化的構(gòu)建其控制架構(gòu),來實(shí)現(xiàn)傳感器,控制器和執(zhí)行器之間的遠(yuǎn)程數(shù)據(jù)傳輸。目前最引人矚目的是遠(yuǎn)程控制機(jī)器人在互聯(lián)網(wǎng)上的應(yīng)用。
2結(jié)構(gòu)設(shè)計(jì)
本文以四自由度的機(jī)械臂為被控對象,以本地網(wǎng)絡(luò)的PC為上位機(jī),通過局域網(wǎng)無線技術(shù)與SSH協(xié)議連接下位機(jī)。實(shí)現(xiàn)主控被控聯(lián)動(dòng)的四自由度網(wǎng)絡(luò)化遠(yuǎn)程控制程序,來完成在局域網(wǎng)范圍內(nèi)的遠(yuǎn)程控制機(jī)械臂完成移動(dòng)和取物。本文中對機(jī)械臂的控件運(yùn)動(dòng)進(jìn)行了路徑規(guī)劃,對工作需求進(jìn)行了論證和選型,分析了系統(tǒng)流程并構(gòu)建了整體的框架結(jié)構(gòu)。本文對機(jī)械臂測試分為單步測試和整體測試。也對整體系統(tǒng)的拓展規(guī)劃進(jìn)行了分析,為進(jìn)一步研究確立了方向。
機(jī)械臂是一門多學(xué)科融合的技術(shù)領(lǐng)域。相關(guān)知識(shí)理論涉及嵌入式、軟件、電子、網(wǎng)絡(luò)、算法等多個(gè)方向的知識(shí)。學(xué)習(xí)和研究這一課題,是對本專業(yè)綜合知識(shí)學(xué)習(xí)的一個(gè)整合與應(yīng)用。
機(jī)械臂現(xiàn)在已經(jīng)深入到生活的方方面面,從空間站搬運(yùn)貨物,深潛器抓取深海樣品,再到工業(yè)上的焊接切割組裝機(jī)械臂,再到排爆機(jī)器人,醫(yī)療機(jī)器人,人工義體等。機(jī)械臂在軍事,醫(yī)療工業(yè),教育,生活領(lǐng)域都有貢獻(xiàn)。多自由度機(jī)械臂控制復(fù)雜,價(jià)格昂貴,學(xué)習(xí)成本較高。機(jī)械臂的優(yōu)勢在于重復(fù)定位精度高,模塊化,靈活。
3機(jī)械臂自由度設(shè)計(jì)
ARM是一種高性能、廉價(jià)、耗能低的RISC處理器架構(gòu)?;贏RM技術(shù)的微處理器應(yīng)用約占據(jù)了32位嵌入式微處理器市場,且新型號(hào)性能和資源愈發(fā)強(qiáng)大,可以作為大部分智能設(shè)備以及IOT應(yīng)用的控制核心。本系統(tǒng)涉及的通信協(xié)議較多,同時(shí)需要較大的硬件資源,因此ARM符合本系統(tǒng)的多種需求。特點(diǎn)如下:體積小,功耗低,性能高。支持ARM和THUMB兩種指令集。較多寄存器能夠滿足臨時(shí)數(shù)據(jù)和結(jié)構(gòu)存儲(chǔ)。方便尋址和較高的尋址速度。支持多任務(wù)操作系統(tǒng)。擁有圖片處理單元,能夠運(yùn)行圖形化操作界面。
本系統(tǒng)使用IRB460機(jī)器人為結(jié)構(gòu)藍(lán)本的小型四自由度機(jī)械臂,結(jié)構(gòu)合理配合MG996R舵機(jī)足矣驅(qū)動(dòng)本平臺(tái)。主控芯片為RaspberryPi2B+。舵機(jī)控制使用PCA9685,與主控以12C方式連接無線連接使用802.11n,以linux下的SSH工具與主控下移植的SSL協(xié)議腳本進(jìn)行通訊,由于wifi普及程度較高且兼容設(shè)備多,可以快速將本系統(tǒng)的控制移植到手機(jī),平板以及專用遙控器上。主要研究方向在軟件編寫開發(fā),編程語言采用c、python。分別負(fù)責(zé)執(zhí)行機(jī)構(gòu)的驅(qū)動(dòng)和網(wǎng)絡(luò)連接控制。解決的主要問題是將機(jī)械臂的模塊化控制的組件,并且對路徑規(guī)劃以及控制參數(shù)配置進(jìn)行梳理。
搭建多自由度機(jī)械臂平臺(tái),末端平臺(tái)可以搭載多種傳感器和執(zhí)行機(jī)構(gòu),控制核心以ARM板做下位機(jī),并且獲得傳感器反饋數(shù)據(jù),提供上位機(jī)無線控制。
本系統(tǒng)的控制對象為仿ABB碼垛機(jī)器人結(jié)構(gòu)的小型版本主要結(jié)構(gòu)為PC塑料切割件,固定為金屬內(nèi)六角螺釘,裝有3個(gè)大扭矩MG996R金屬數(shù)字舵機(jī),運(yùn)動(dòng)范圍為0-180°,末端平臺(tái)安裝小扭矩SG90塑料數(shù)字舵機(jī),采用杜邦線外接到控制板。由于數(shù)字舵機(jī)的高重復(fù)定位精度,本系統(tǒng)并未采用限位開關(guān)來判斷絕對位置。機(jī)械臂小臂長度為152mm,大臂長度為140mm。機(jī)械臂擁有包括平臺(tái)內(nèi)的四個(gè)自由度,可以完成正前方向大部分空間內(nèi)的位移。以上部件構(gòu)成了該機(jī)械臂的基礎(chǔ)運(yùn)動(dòng)部件。
該機(jī)械臂擁有四個(gè)自由度。四自由度中前三自由度,采用MG996R舵機(jī)作為驅(qū)動(dòng)單元,該驅(qū)動(dòng)單元扭矩為,通電狀態(tài)下由于大扭矩比齒輪組,能夠鎖定機(jī)械臂不因自身重量發(fā)生下墜。平臺(tái)自由度驅(qū)動(dòng)單元為SG90,扭矩為,能夠滿足平臺(tái)末端執(zhí)行機(jī)構(gòu)和傳感器的轉(zhuǎn)動(dòng)力量。用小臂結(jié)構(gòu)為一個(gè)平行四邊形,可以保證末端平臺(tái)始終處于水平狀態(tài)。
工作單元驅(qū)動(dòng),采用MG996R驅(qū)動(dòng)器,可以讓ARM核心從實(shí)時(shí)性任務(wù)中解放出來,使得專用核心來處理重復(fù)的簡單操作,在非實(shí)時(shí)操作系統(tǒng)中節(jié)約了CPU時(shí)間,保證了實(shí)時(shí)性。同時(shí)PWM方式驅(qū)動(dòng)舵機(jī),保證了可重復(fù)定位性和準(zhǔn)確性。
驅(qū)動(dòng)單元均由5v直流電壓驅(qū)動(dòng),鑒于ARM核心不應(yīng)與大功率單元直接向量,考慮了成本、10資源限制、PWM驅(qū)動(dòng)擴(kuò)展、代碼可擴(kuò)展性以及執(zhí)行機(jī)構(gòu)可擴(kuò)展性,本系統(tǒng)放棄使用簡易的繼電器光耦隔離,采用PCA9685驅(qū)動(dòng)模塊。該模塊具有10擴(kuò)展,電源穩(wěn)壓,PWM控制。
本系統(tǒng)采用一個(gè)輸入220V,輸出5V-10A的電源。驅(qū)動(dòng)單元,驅(qū)動(dòng)控制單元和核心ARM控制板的工作電壓均為5v,ARM控制板也具備3.3V電壓,同時(shí)ARM控制板支持12C,SPI,串口等總線接口,即本系統(tǒng)可以兼容大部分3.3V-5V的電子元器件和模塊。
4系統(tǒng)框架設(shè)計(jì)
上位機(jī)控制下位機(jī)進(jìn)行工作。進(jìn)而控制驅(qū)動(dòng)板和其他工作單元。數(shù)據(jù)的接收由傳感器直接發(fā)回下位機(jī)。所有數(shù)據(jù)和運(yùn)行狀態(tài)以及控制都通過wifi方式與上位機(jī)交互。
以SSH方式建立遠(yuǎn)程連接??刂埔哉{(diào)用位于下位機(jī)用戶空間的可執(zhí)行文件方式,執(zhí)行某一操作或啟動(dòng)自動(dòng)工作程序,或調(diào)整對應(yīng)參數(shù)。
將交互內(nèi)容轉(zhuǎn)化為舵機(jī)和其他執(zhí)行單元的轉(zhuǎn)動(dòng)角度等信息,調(diào)整整個(gè)執(zhí)行順序和工作位置。
以底座腰部為圓形,在初始正方向中軸線上左右各旋轉(zhuǎn)90°,以上圖的近似橢圓的不規(guī)則為底面的扇形環(huán)裝區(qū)域內(nèi)移動(dòng),最大前伸長度約300mm,最高離地高度約250mm。
運(yùn)動(dòng)控制時(shí),以腰部舵機(jī)為一個(gè)獨(dú)立區(qū)域,大小臂舵機(jī)合并為一個(gè)控制區(qū)域,平臺(tái)的小舵機(jī)不影響運(yùn)動(dòng),由平臺(tái)機(jī)構(gòu)的控制代碼單獨(dú)調(diào)用。
當(dāng)需要執(zhí)行的運(yùn)動(dòng)軌跡還包含水平旋轉(zhuǎn)時(shí),將腰部舵機(jī)的運(yùn)動(dòng)控制和之前兩者的運(yùn)動(dòng)同時(shí)綁定,根據(jù)任務(wù)需求做出最優(yōu)解規(guī)劃。
當(dāng)有傳感器進(jìn)行任務(wù)判定時(shí),優(yōu)化路徑采取其他優(yōu)化算法,以最少運(yùn)動(dòng)量為前提,設(shè)計(jì)出單位時(shí)間內(nèi)運(yùn)動(dòng)頻次最優(yōu)的路徑。
下位機(jī)使用樹莓派B+作為核心控制板,使用了其中的一個(gè)USB口,一組12C接口,以及部分10。
此舵機(jī)驅(qū)動(dòng)板使用PCA9685芯片,是16通道12bit,PWM舵機(jī)驅(qū)動(dòng),用2個(gè)引腳通過12C就可以驅(qū)動(dòng)16個(gè)舵機(jī)。通過級(jí)聯(lián)的方式最多級(jí)聯(lián)62個(gè)驅(qū)動(dòng)板,增強(qiáng)了可擴(kuò)展性,此外還解決了驅(qū)動(dòng)電路和控制電路隔離的問題。此本設(shè)計(jì)中,占用4路輸出對機(jī)械臂的舵機(jī)進(jìn)行驅(qū)動(dòng)。
樹莓派支持?jǐn)z像頭模塊??梢詫z像頭模塊掛載到末端平臺(tái)位置,拍攝圖像后經(jīng)處理獲得所需的數(shù)據(jù)。
本系統(tǒng)中考慮到成本和技術(shù)復(fù)雜度,采用接近開關(guān)作為末端感知設(shè)備。接近開關(guān)是一種無需與運(yùn)動(dòng)部件進(jìn)行機(jī)械直接接觸而可以操作的位置開關(guān),當(dāng)物體接近開關(guān)的感應(yīng)面到動(dòng)作距離時(shí),不需要機(jī)械接觸及施加任何壓力即可使開關(guān)動(dòng)作。
當(dāng)末端平臺(tái)運(yùn)動(dòng)到目標(biāo)物上方時(shí),觸發(fā)傳感器,機(jī)械臂垂直下移并啟動(dòng)執(zhí)行器,執(zhí)行相應(yīng)操作。
執(zhí)行器使用吸盤+真空泵的形式。吸盤固定在末端平臺(tái),軟管留出一定機(jī)械臂活動(dòng)余量后連接到后端的真空泵上。通過PCA9685的開關(guān)控制,接通真空泵,通過軟管和吸盤將目標(biāo)物吸起。轉(zhuǎn)移到固定目標(biāo)后,關(guān)閉真空泵,放下目標(biāo)物體。
在需要的時(shí)候,可以將執(zhí)行器更換為機(jī)械爪,激光器或其他對應(yīng)的器件。