馬前帥 ,王二敏
(1.天津職業(yè)技術(shù)師范大學(xué)工程實(shí)訓(xùn)中心,天津 300222;2.天津大學(xué)電氣自動(dòng)化與信息工程學(xué)院,天津 300072)
機(jī)器人產(chǎn)業(yè)化是“中國(guó)制造2025”中重要的一部分。機(jī)器人的快速發(fā)展促進(jìn)了工業(yè)生產(chǎn)自動(dòng)化的發(fā)展,提高了生產(chǎn)效率,其應(yīng)用從工業(yè)逐漸向服務(wù)、醫(yī)療、水下探測(cè)等領(lǐng)域發(fā)展,功能也逐步向模塊化、智能化、微型化發(fā)展。目前,中國(guó)的機(jī)器人市場(chǎng)規(guī)模較大,發(fā)展前景十分可觀[1]。機(jī)器人控制系統(tǒng)主要實(shí)現(xiàn)對(duì)機(jī)器人的位置、速度或扭矩等的控制和管理,使其按照既定的軌跡或其他已知的運(yùn)動(dòng)參數(shù)進(jìn)行準(zhǔn)確、平穩(wěn)和快速的運(yùn)動(dòng)[2]。隨著物流行業(yè)的快速發(fā)展,碼垛機(jī)器人應(yīng)用場(chǎng)合越來(lái)越多,而且對(duì)碼垛機(jī)器人的要求也在不斷提高。目前,國(guó)外碼垛機(jī)器人在碼垛市場(chǎng)的份額已經(jīng)超過(guò)90%,但國(guó)內(nèi)對(duì)碼垛機(jī)器人的設(shè)計(jì)研究與國(guó)外相比仍有一定的差距。因此,設(shè)計(jì)穩(wěn)定、性價(jià)比高、通用性強(qiáng)的碼垛機(jī)器人控制系統(tǒng)對(duì)國(guó)內(nèi)物流業(yè)至關(guān)重要。本文對(duì)碼垛機(jī)器人控制系統(tǒng)的硬件電路和軟件控制進(jìn)行設(shè)計(jì)。
四軸碼垛機(jī)器人系統(tǒng)由機(jī)械結(jié)構(gòu)和電氣控制系統(tǒng)組成,其總體設(shè)計(jì)如圖1所示。
圖1 四軸碼垛機(jī)器人系統(tǒng)總體設(shè)計(jì)框圖
碼垛機(jī)器人控制系統(tǒng)選擇越疆的DOBOT-M1機(jī)器人作為被控對(duì)象,該機(jī)器人為四自由度串聯(lián)開鏈?zhǔn)綑C(jī)械臂,包括底盤旋轉(zhuǎn)軸、大臂旋轉(zhuǎn)軸、小臂旋轉(zhuǎn)軸和腕部旋轉(zhuǎn)軸,4個(gè)關(guān)節(jié)均為轉(zhuǎn)動(dòng)關(guān)節(jié),可用于完成雕刻、焊接、搬運(yùn)、碼垛等工作,是一種典型的操作型機(jī)器人[3],其機(jī)械結(jié)構(gòu)如圖2所示。
圖2 四軸碼垛機(jī)器人機(jī)械結(jié)構(gòu)
碼垛機(jī)器人電氣控制系統(tǒng)主要包括主控模塊、電源及管理模塊、運(yùn)動(dòng)控制模塊和人機(jī)交互模塊。主控模塊采用微處理器STM32F103ZET6,負(fù)責(zé)四軸碼垛機(jī)器人通信、任務(wù)規(guī)劃、軌跡規(guī)劃、插補(bǔ)控制;電源及管理模塊包括開關(guān)電源和電壓監(jiān)測(cè)模塊,為其他模塊提供可靠穩(wěn)定的電源;運(yùn)動(dòng)控制模塊采用ATMEGA2560固化Marlin固件,為四軸碼垛機(jī)器人提供運(yùn)動(dòng)規(guī)劃、運(yùn)動(dòng)學(xué)逆解的解決方案,該模塊包含運(yùn)動(dòng)控制器和步進(jìn)電機(jī)驅(qū)動(dòng)模塊,運(yùn)動(dòng)控制器負(fù)責(zé)運(yùn)動(dòng)學(xué)逆解和多軸協(xié)調(diào)聯(lián)動(dòng)控制,步進(jìn)電機(jī)驅(qū)動(dòng)模塊用來(lái)控制機(jī)器人4個(gè)旋轉(zhuǎn)軸電機(jī);人機(jī)交互模塊用于四軸碼垛機(jī)器人控制任務(wù)選擇、命令控制和參數(shù)信息顯示。四軸碼垛機(jī)器人控制系統(tǒng)結(jié)構(gòu)如圖3所示。
圖3 四軸碼垛機(jī)器人控制系統(tǒng)結(jié)構(gòu)
主控模塊實(shí)現(xiàn)了機(jī)器人的任務(wù)規(guī)劃,將特定的任務(wù)分解成終端運(yùn)動(dòng)軌跡序列[4]。任務(wù)規(guī)劃包括任務(wù)命令的解析、機(jī)器人運(yùn)動(dòng)軌跡的生成、軌跡運(yùn)動(dòng)學(xué)參考計(jì)算并生成G代碼。機(jī)器人工作的軌跡控制方式根據(jù)插補(bǔ)方式的不同可分為關(guān)節(jié)空間和終端直線運(yùn)動(dòng)控制。關(guān)節(jié)空間運(yùn)動(dòng)控制要求在規(guī)定的時(shí)間內(nèi)各關(guān)節(jié)同時(shí)運(yùn)動(dòng),并同時(shí)停止運(yùn)動(dòng),達(dá)到目標(biāo)位置。這種控制方式對(duì)空間要求較高。終端直線運(yùn)動(dòng)控制機(jī)器人終端按照規(guī)定的速度、加速度,直線運(yùn)動(dòng)到下一個(gè)目標(biāo)位置。實(shí)際中終端直線運(yùn)動(dòng)控制方式比較常用,在示教過(guò)程需要一條可行的運(yùn)動(dòng)軌跡。
主控芯片采用ST公司的STM32F103RCT6,主頻72 MHz,內(nèi)部256 K Flash和48 K RAM。程序采用FreeRTOS作為實(shí)時(shí)操作系統(tǒng),F(xiàn)reeRTOS操作系統(tǒng)占62 K Flash和16 K RAM[5-6]。所選主控芯片有足夠的空間和運(yùn)算能力處理機(jī)器人底層控制、算法、擴(kuò)展功能。主控芯片資源分配列表如表1所示。
電源及管理模塊包括2路LDO線性穩(wěn)壓電源、1路開關(guān)型穩(wěn)壓電源和1路電源電壓檢測(cè)電路。2路LDO線性穩(wěn)壓電源分別為控制電路和A/D轉(zhuǎn)換器供電,2路電源的地與0 Ω電阻相連。2路LDO線性穩(wěn)壓電源采用TI公司的TPS79301。TPS79301為超低噪聲200 mA的線性穩(wěn)壓模塊,通過(guò)修改電阻將輸出電壓均設(shè)為3.3V;1路開關(guān)型穩(wěn)壓電源采用TI公司的LM2576T-12,負(fù)責(zé)為步進(jìn)電機(jī)驅(qū)動(dòng)、人機(jī)交互和夾手驅(qū)動(dòng)供電;1路電源電壓檢測(cè)電路,用于檢測(cè)系統(tǒng)的電源電壓,采用精密電阻分壓,通過(guò)檢測(cè)分壓電阻兩端電壓計(jì)算電壓檢測(cè)電路。電源及管理模塊電路如圖4所示。
表1 主控芯片資源分配表
圖4 電源及管理模塊電路
運(yùn)動(dòng)控制模塊主要包括運(yùn)動(dòng)控制器、步進(jìn)電機(jī)和步進(jìn)電機(jī)驅(qū)動(dòng)器。運(yùn)動(dòng)控制器根據(jù)主控發(fā)送的軌跡進(jìn)行運(yùn)動(dòng)學(xué)逆解,將終端軌跡分解到各個(gè)軸的角度控制。通過(guò)對(duì)步進(jìn)電機(jī)的角度、速度和扭矩的控制,使四軸碼垛機(jī)器人按照設(shè)定的參數(shù)軌跡進(jìn)行準(zhǔn)確、平穩(wěn)和快速的運(yùn)動(dòng)。
運(yùn)動(dòng)控制器在整個(gè)系統(tǒng)中處于核心地位,主要完成運(yùn)動(dòng)規(guī)劃任務(wù),針對(duì)終端軌跡運(yùn)動(dòng)要求,利用運(yùn)動(dòng)學(xué)逆解,獲得各關(guān)節(jié)的運(yùn)動(dòng)要求。運(yùn)動(dòng)規(guī)劃的主要任務(wù)是G代碼解析、運(yùn)動(dòng)軌跡離散化、運(yùn)動(dòng)學(xué)逆解以及多軸聯(lián)動(dòng)控制等,運(yùn)動(dòng)規(guī)劃功能如圖5所示。
圖5 運(yùn)動(dòng)規(guī)劃功能
運(yùn)動(dòng)控制器采用ATMEGA2560固化Marlin固件作為運(yùn)動(dòng)控制模塊。Marlin融合了Sprinter和Grbl固件的優(yōu)點(diǎn),是基于Arduino的開源混合版,能使用G代碼指令協(xié)議進(jìn)行通信。主控模塊發(fā)送G代碼指令給運(yùn)動(dòng)控制器,運(yùn)動(dòng)控制器中的Marlin固件負(fù)責(zé)解釋應(yīng)用程序發(fā)來(lái)的G代碼指令,然后控制步進(jìn)電機(jī)執(zhí)行命令。
選用步進(jìn)電機(jī)驅(qū)動(dòng)機(jī)器人關(guān)節(jié)運(yùn)動(dòng),步進(jìn)電機(jī)結(jié)構(gòu)簡(jiǎn)單,控制方式簡(jiǎn)便,能夠?qū)C(jī)器人關(guān)節(jié)角度進(jìn)行精確控制。由于機(jī)器人每個(gè)關(guān)節(jié)的負(fù)載都不相同,所以需對(duì)每個(gè)關(guān)節(jié)的步進(jìn)電機(jī)的功率、轉(zhuǎn)矩進(jìn)行計(jì)算。
設(shè)定負(fù)載為1 kg,最大運(yùn)行速度ν=0.2 m/s,機(jī)器人最大加速度a=0.5 m/s2,摩擦系數(shù)μ=0.2,轉(zhuǎn)動(dòng)半徑為γ,機(jī)械傳動(dòng)效率η=0.8,則電機(jī)運(yùn)動(dòng)功率為:
電機(jī)轉(zhuǎn)矩為:
對(duì)小臂轉(zhuǎn)動(dòng)軸關(guān)節(jié)進(jìn)行計(jì)算:m=1+2=3 kg,γ=0.2 m,電機(jī)運(yùn)動(dòng)功率為1.88 W,電機(jī)轉(zhuǎn)矩為1.2 N·m;
對(duì)大臂轉(zhuǎn)動(dòng)軸關(guān)節(jié)進(jìn)行計(jì)算:m=2+3=5 kg,γ=0.4 m,電機(jī)運(yùn)動(dòng)功率為3.12 W,電機(jī)轉(zhuǎn)矩為4 N·m;
對(duì)地盤旋轉(zhuǎn)軸進(jìn)行計(jì)算:m=2+5=7 kg,γ=0.4 m,電機(jī)運(yùn)動(dòng)功率為4.38 W,電機(jī)轉(zhuǎn)矩為5.6 N·m。
為實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)穩(wěn)定精確的轉(zhuǎn)速和轉(zhuǎn)矩控制,使電機(jī)高精度、低噪聲、低振動(dòng)運(yùn)行,同時(shí)考慮到控制系統(tǒng)的功耗及驅(qū)動(dòng)電流等因素,驅(qū)動(dòng)控制器選擇TI公司的LV8727作為驅(qū)動(dòng)芯片[7]。LV8727為PWM電流控制型微步雙極步進(jìn)電機(jī)驅(qū)動(dòng)芯片,雙全橋MOSFET驅(qū)動(dòng),并且包括細(xì)分、半流控制等功能模塊,可以精確地控制步進(jìn)電機(jī)[8],它的微步控制分辨率可達(dá)8種,分別為 1/2、1/8、1/16、1/32、1/64、1/128、1/10 和 1/20,可簡(jiǎn)單通過(guò)步進(jìn)輸入來(lái)控制電機(jī),根據(jù)不同的驅(qū)動(dòng)負(fù)載及運(yùn)行精度等要求選取最佳的工作模式,電路設(shè)計(jì)如圖6所示。
圖6 電機(jī)驅(qū)動(dòng)電路
人機(jī)交互模塊采用圖形界面設(shè)計(jì),能夠?qū)崿F(xiàn)輸入控制命令、編寫控制程序、顯示機(jī)器人自身參數(shù)和工作狀態(tài)、各個(gè)關(guān)節(jié)單獨(dú)運(yùn)動(dòng)控制、機(jī)器人終端運(yùn)動(dòng)控制、機(jī)器人任務(wù)模式選擇等功能。人機(jī)交互模塊采用觸摸屏DMT80600T080_02W。主控模塊通過(guò)MAX232接口與觸摸進(jìn)行通信,實(shí)現(xiàn)監(jiān)控和數(shù)據(jù)傳輸。在電路設(shè)計(jì)上,只需設(shè)計(jì)串口通訊及抗干擾電路。
機(jī)器人控制系統(tǒng)程序流程如圖7所示。
圖7 控制系統(tǒng)程序流程
首先進(jìn)行系統(tǒng)初始化,然后系統(tǒng)等待操作命令,當(dāng)接收到控制命令,主控器進(jìn)行任務(wù)規(guī)劃并生成G代碼,運(yùn)動(dòng)控制器解析G代碼并進(jìn)行運(yùn)動(dòng)規(guī)劃,最后機(jī)器人終端根據(jù)要求的軌跡運(yùn)行。
本文基于FreeRTOS操作系統(tǒng)設(shè)計(jì)四軸碼垛機(jī)器人控制系統(tǒng)軟件,實(shí)現(xiàn)機(jī)器人的任務(wù)規(guī)劃、傳感器和機(jī)器人位姿信息的交互、處理以及人機(jī)交互信息處理[9]。該操作系統(tǒng)的任務(wù)列表如表2所示。
表2 FreeRTOS操作系統(tǒng)任務(wù)列表
為測(cè)試機(jī)器人控制器的動(dòng)態(tài)運(yùn)行精度,以四軸碼垛機(jī)器人為測(cè)試平臺(tái),對(duì)機(jī)器人的終端運(yùn)行軌跡進(jìn)行測(cè)試。測(cè)試條件為機(jī)器人末端執(zhí)行器負(fù)載1 kg,運(yùn)動(dòng)速度為 0.02 m/s~0.2 m/s,運(yùn)動(dòng)加速度 0.1 m/s2,通過(guò) 100 次重復(fù)試驗(yàn),獲取終端偏移情況,重復(fù)誤差測(cè)試結(jié)果如表3所示。
表3 機(jī)器人重復(fù)誤差測(cè)試數(shù)據(jù)表
對(duì)測(cè)試數(shù)據(jù)進(jìn)行分析,得出:實(shí)際工況下機(jī)器人重復(fù)定位精度為±0.5 mm,這一結(jié)果滿足了四軸碼垛機(jī)器人的控制要求,能夠應(yīng)用于一般的工業(yè)場(chǎng)合,控制板實(shí)物如圖8所示。
圖8 控制板實(shí)物
該機(jī)器人的關(guān)節(jié)采用步進(jìn)電機(jī)和行星減速器,其部件是影響系統(tǒng)重復(fù)精度的主要因素,特別是在高速情況下誤差較大,通過(guò)更換伺服電機(jī)和VR減速器可進(jìn)一步提高系統(tǒng)重復(fù)精度。
本文設(shè)計(jì)的四軸碼垛機(jī)器人控制系統(tǒng)以微控制器STM32F103ZET6為核心,實(shí)現(xiàn)機(jī)器人的任務(wù)規(guī)劃、軌跡規(guī)劃和插補(bǔ)控制,內(nèi)嵌實(shí)時(shí)操作系統(tǒng)能夠有效確保機(jī)器人在作業(yè)過(guò)程中的實(shí)時(shí)性和穩(wěn)定性;利用ATMEGA2560固化Marlin固件實(shí)現(xiàn)機(jī)器人的運(yùn)動(dòng)規(guī)劃、運(yùn)動(dòng)學(xué)逆解、多軸聯(lián)動(dòng)控制,利用固件的資源,降低了開發(fā)的難度和成本;通過(guò)人機(jī)交互進(jìn)行機(jī)器人控制和參數(shù)顯示,感知機(jī)器人自身狀態(tài)、周邊環(huán)境信息,為使用者提供良好的操作選擇;機(jī)器人外設(shè)通信接口,具有與外部設(shè)備通信的功能。經(jīng)測(cè)試,該控制器能夠從操作、感知、交互、智能、通信等方面實(shí)現(xiàn)對(duì)四軸碼垛機(jī)器人的控制,達(dá)到編程和手動(dòng)控制機(jī)器人預(yù)期的運(yùn)動(dòng)要求,并且控制精度也達(dá)到一般碼垛作業(yè)應(yīng)用場(chǎng)合的要求。
天津職業(yè)技術(shù)師范大學(xué)學(xué)報(bào)2018年2期