馬前帥 ,王二敏
(1.天津職業技術師范大學工程實訓中心,天津 300222;2.天津大學電氣自動化與信息工程學院,天津 300072)
機器人產業化是“中國制造2025”中重要的一部分。機器人的快速發展促進了工業生產自動化的發展,提高了生產效率,其應用從工業逐漸向服務、醫療、水下探測等領域發展,功能也逐步向模塊化、智能化、微型化發展。目前,中國的機器人市場規模較大,發展前景十分可觀[1]。機器人控制系統主要實現對機器人的位置、速度或扭矩等的控制和管理,使其按照既定的軌跡或其他已知的運動參數進行準確、平穩和快速的運動[2]。隨著物流行業的快速發展,碼垛機器人應用場合越來越多,而且對碼垛機器人的要求也在不斷提高。目前,國外碼垛機器人在碼垛市場的份額已經超過90%,但國內對碼垛機器人的設計研究與國外相比仍有一定的差距。因此,設計穩定、性價比高、通用性強的碼垛機器人控制系統對國內物流業至關重要。本文對碼垛機器人控制系統的硬件電路和軟件控制進行設計。
四軸碼垛機器人系統由機械結構和電氣控制系統組成,其總體設計如圖1所示。

圖1 四軸碼垛機器人系統總體設計框圖
碼垛機器人控制系統選擇越疆的DOBOT-M1機器人作為被控對象,該機器人為四自由度串聯開鏈式機械臂,包括底盤旋轉軸、大臂旋轉軸、小臂旋轉軸和腕部旋轉軸,4個關節均為轉動關節,可用于完成雕刻、焊接、搬運、碼垛等工作,是一種典型的操作型機器人[3],其機械結構如圖2所示。

圖2 四軸碼垛機器人機械結構
碼垛機器人電氣控制系統主要包括主控模塊、電源及管理模塊、運動控制模塊和人機交互模塊。主控模塊采用微處理器STM32F103ZET6,負責四軸碼垛機器人通信、任務規劃、軌跡規劃、插補控制;電源及管理模塊包括開關電源和電壓監測模塊,為其他模塊提供可靠穩定的電源;運動控制模塊采用ATMEGA2560固化Marlin固件,為四軸碼垛機器人提供運動規劃、運動學逆解的解決方案,該模塊包含運動控制器和步進電機驅動模塊,運動控制器負責運動學逆解和多軸協調聯動控制,步進電機驅動模塊用來控制機器人4個旋轉軸電機;人機交互模塊用于四軸碼垛機器人控制任務選擇、命令控制和參數信息顯示。四軸碼垛機器人控制系統結構如圖3所示。

圖3 四軸碼垛機器人控制系統結構
主控模塊實現了機器人的任務規劃,將特定的任務分解成終端運動軌跡序列[4]。任務規劃包括任務命令的解析、機器人運動軌跡的生成、軌跡運動學參考計算并生成G代碼。機器人工作的軌跡控制方式根據插補方式的不同可分為關節空間和終端直線運動控制。關節空間運動控制要求在規定的時間內各關節同時運動,并同時停止運動,達到目標位置。這種控制方式對空間要求較高。終端直線運動控制機器人終端按照規定的速度、加速度,直線運動到下一個目標位置。實際中終端直線運動控制方式比較常用,在示教過程需要一條可行的運動軌跡。
主控芯片采用ST公司的STM32F103RCT6,主頻72 MHz,內部256 K Flash和48 K RAM。程序采用FreeRTOS作為實時操作系統,FreeRTOS操作系統占62 K Flash和16 K RAM[5-6]。所選主控芯片有足夠的空間和運算能力處理機器人底層控制、算法、擴展功能。主控芯片資源分配列表如表1所示。
電源及管理模塊包括2路LDO線性穩壓電源、1路開關型穩壓電源和1路電源電壓檢測電路。2路LDO線性穩壓電源分別為控制電路和A/D轉換器供電,2路電源的地與0 Ω電阻相連。2路LDO線性穩壓電源采用TI公司的TPS79301。TPS79301為超低噪聲200 mA的線性穩壓模塊,通過修改電阻將輸出電壓均設為3.3V;1路開關型穩壓電源采用TI公司的LM2576T-12,負責為步進電機驅動、人機交互和夾手驅動供電;1路電源電壓檢測電路,用于檢測系統的電源電壓,采用精密電阻分壓,通過檢測分壓電阻兩端電壓計算電壓檢測電路。電源及管理模塊電路如圖4所示。

表1 主控芯片資源分配表

圖4 電源及管理模塊電路
運動控制模塊主要包括運動控制器、步進電機和步進電機驅動器。運動控制器根據主控發送的軌跡進行運動學逆解,將終端軌跡分解到各個軸的角度控制。通過對步進電機的角度、速度和扭矩的控制,使四軸碼垛機器人按照設定的參數軌跡進行準確、平穩和快速的運動。
運動控制器在整個系統中處于核心地位,主要完成運動規劃任務,針對終端軌跡運動要求,利用運動學逆解,獲得各關節的運動要求。運動規劃的主要任務是G代碼解析、運動軌跡離散化、運動學逆解以及多軸聯動控制等,運動規劃功能如圖5所示。

圖5 運動規劃功能
運動控制器采用ATMEGA2560固化Marlin固件作為運動控制模塊。Marlin融合了Sprinter和Grbl固件的優點,是基于Arduino的開源混合版,能使用G代碼指令協議進行通信。主控模塊發送G代碼指令給運動控制器,運動控制器中的Marlin固件負責解釋應用程序發來的G代碼指令,然后控制步進電機執行命令。
選用步進電機驅動機器人關節運動,步進電機結構簡單,控制方式簡便,能夠對機器人關節角度進行精確控制。由于機器人每個關節的負載都不相同,所以需對每個關節的步進電機的功率、轉矩進行計算。
設定負載為1 kg,最大運行速度ν=0.2 m/s,機器人最大加速度a=0.5 m/s2,摩擦系數μ=0.2,轉動半徑為γ,機械傳動效率η=0.8,則電機運動功率為:

電機轉矩為:

對小臂轉動軸關節進行計算:m=1+2=3 kg,γ=0.2 m,電機運動功率為1.88 W,電機轉矩為1.2 N·m;
對大臂轉動軸關節進行計算:m=2+3=5 kg,γ=0.4 m,電機運動功率為3.12 W,電機轉矩為4 N·m;
對地盤旋轉軸進行計算:m=2+5=7 kg,γ=0.4 m,電機運動功率為4.38 W,電機轉矩為5.6 N·m。
為實現對步進電機穩定精確的轉速和轉矩控制,使電機高精度、低噪聲、低振動運行,同時考慮到控制系統的功耗及驅動電流等因素,驅動控制器選擇TI公司的LV8727作為驅動芯片[7]。LV8727為PWM電流控制型微步雙極步進電機驅動芯片,雙全橋MOSFET驅動,并且包括細分、半流控制等功能模塊,可以精確地控制步進電機[8],它的微步控制分辨率可達8種,分別為 1/2、1/8、1/16、1/32、1/64、1/128、1/10 和 1/20,可簡單通過步進輸入來控制電機,根據不同的驅動負載及運行精度等要求選取最佳的工作模式,電路設計如圖6所示。

圖6 電機驅動電路
人機交互模塊采用圖形界面設計,能夠實現輸入控制命令、編寫控制程序、顯示機器人自身參數和工作狀態、各個關節單獨運動控制、機器人終端運動控制、機器人任務模式選擇等功能。人機交互模塊采用觸摸屏DMT80600T080_02W。主控模塊通過MAX232接口與觸摸進行通信,實現監控和數據傳輸。在電路設計上,只需設計串口通訊及抗干擾電路。
機器人控制系統程序流程如圖7所示。

圖7 控制系統程序流程
首先進行系統初始化,然后系統等待操作命令,當接收到控制命令,主控器進行任務規劃并生成G代碼,運動控制器解析G代碼并進行運動規劃,最后機器人終端根據要求的軌跡運行。
本文基于FreeRTOS操作系統設計四軸碼垛機器人控制系統軟件,實現機器人的任務規劃、傳感器和機器人位姿信息的交互、處理以及人機交互信息處理[9]。該操作系統的任務列表如表2所示。

表2 FreeRTOS操作系統任務列表
為測試機器人控制器的動態運行精度,以四軸碼垛機器人為測試平臺,對機器人的終端運行軌跡進行測試。測試條件為機器人末端執行器負載1 kg,運動速度為 0.02 m/s~0.2 m/s,運動加速度 0.1 m/s2,通過 100 次重復試驗,獲取終端偏移情況,重復誤差測試結果如表3所示。

表3 機器人重復誤差測試數據表
對測試數據進行分析,得出:實際工況下機器人重復定位精度為±0.5 mm,這一結果滿足了四軸碼垛機器人的控制要求,能夠應用于一般的工業場合,控制板實物如圖8所示。

圖8 控制板實物
該機器人的關節采用步進電機和行星減速器,其部件是影響系統重復精度的主要因素,特別是在高速情況下誤差較大,通過更換伺服電機和VR減速器可進一步提高系統重復精度。
本文設計的四軸碼垛機器人控制系統以微控制器STM32F103ZET6為核心,實現機器人的任務規劃、軌跡規劃和插補控制,內嵌實時操作系統能夠有效確保機器人在作業過程中的實時性和穩定性;利用ATMEGA2560固化Marlin固件實現機器人的運動規劃、運動學逆解、多軸聯動控制,利用固件的資源,降低了開發的難度和成本;通過人機交互進行機器人控制和參數顯示,感知機器人自身狀態、周邊環境信息,為使用者提供良好的操作選擇;機器人外設通信接口,具有與外部設備通信的功能。經測試,該控制器能夠從操作、感知、交互、智能、通信等方面實現對四軸碼垛機器人的控制,達到編程和手動控制機器人預期的運動要求,并且控制精度也達到一般碼垛作業應用場合的要求。