于振中,蔡楷倜
(江南大學(xué) 物聯(lián)網(wǎng)工程學(xué)院,江蘇 無(wú)錫 214122)
?
基于STM32的機(jī)器人仿真示教器設(shè)計(jì)
于振中,蔡楷倜
(江南大學(xué) 物聯(lián)網(wǎng)工程學(xué)院,江蘇 無(wú)錫 214122)
為了克服傳統(tǒng)機(jī)器人示教系統(tǒng)擴(kuò)展性差且較為封閉等缺點(diǎn),設(shè)計(jì)了一種基于STM32的機(jī)器人仿真示教器。該示教器以STM32作為主控芯片,引入μC/OSII實(shí)時(shí)操作系統(tǒng),并采用以太網(wǎng)通信的方式,提高了系統(tǒng)的開放性。通過(guò)對(duì)利用計(jì)算機(jī)模擬得到的三維機(jī)器人進(jìn)行仿真操控,驗(yàn)證該示教器的手動(dòng)控制和示教再現(xiàn)等基本功能。實(shí)驗(yàn)結(jié)果表明,該仿真示教器可以靈活方便地練習(xí)機(jī)器人的示教操作,達(dá)到模擬操作實(shí)體機(jī)器人的效果,具有一定的實(shí)用價(jià)值。
示教器;仿真;以太網(wǎng);開放性
當(dāng)前,工業(yè)機(jī)器人已經(jīng)廣泛應(yīng)用于許多工廠的實(shí)際使用中,其中通過(guò)示教器對(duì)機(jī)器人的動(dòng)作進(jìn)行編程是最為普遍的做法。示教器是進(jìn)行人機(jī)交互的重要工具,操作人員通過(guò)示教器對(duì)機(jī)器人的運(yùn)動(dòng)軌跡進(jìn)行示教和編程,使機(jī)器人能夠完成要求的任務(wù),在生產(chǎn)線上進(jìn)行重復(fù)的勞作[1]。機(jī)器人的實(shí)際使用效果取決于動(dòng)作示教的效果,因此示教器的性能和操作人員的經(jīng)驗(yàn)顯得尤為重要。
目前國(guó)內(nèi)外的機(jī)器人示教系統(tǒng)大多由各大廠商針對(duì)自有產(chǎn)品進(jìn)行設(shè)計(jì)研發(fā),開放程度低,并且如果由缺乏經(jīng)驗(yàn)的人員直接操控實(shí)體機(jī)器人則容易存在安全隱患,影響示教的效果。學(xué)會(huì)操作機(jī)器人之前首先要學(xué)會(huì)使用機(jī)器人示教器,如ABB機(jī)器人公司推出虛擬示教軟件RobotStudio[2],其虛擬示教臺(tái)功能可以讓操作人員利用計(jì)算機(jī)學(xué)習(xí)ABB機(jī)器人示教器的操作,是一款出色的教學(xué)和培訓(xùn)工具。但其操作需通過(guò)鼠標(biāo)點(diǎn)擊計(jì)算機(jī)屏幕上的示教器圖形來(lái)完成,缺乏操作手持示教器時(shí)的真實(shí)感,并且軟件受封閉保護(hù),難以進(jìn)行后續(xù)的開發(fā),有一定的局限性。
本設(shè)計(jì)研制了一款基于STM32的機(jī)器人仿真示教器,在降低成本的同時(shí)易于進(jìn)行二次開發(fā)。在實(shí)現(xiàn)方法上采用觸摸屏與按鍵結(jié)合的輸入方式提高了示教器的人機(jī)交互性能。不僅如此,利用以太網(wǎng)通信的方式僅需一根網(wǎng)線即可實(shí)現(xiàn)與計(jì)算機(jī)相連,不僅方便快捷而且能實(shí)現(xiàn)跨平臺(tái)的通信,提高了系統(tǒng)的可擴(kuò)展性。仿真示教器對(duì)計(jì)算機(jī)模擬得到的三維機(jī)器人進(jìn)行操作,不僅可以用來(lái)練習(xí)機(jī)器人的示教,還可以利用該平臺(tái)驗(yàn)證機(jī)器人的運(yùn)動(dòng)控制算法和機(jī)器人機(jī)械結(jié)構(gòu)設(shè)計(jì)的合理性,具有良好的開放性,在節(jié)約成本的同時(shí)具有一定的實(shí)用價(jià)值。
圖1 示教器硬件結(jié)構(gòu)
本文所設(shè)計(jì)的仿真示教器以STM32為主控芯片,主要包括觸摸屏、按鍵、指示燈和通信等模塊。其硬件結(jié)構(gòu)如圖1所示。
主控制器芯片采用Cortex-M4內(nèi)核的STM32F407,相比于STM32F103等Cortex-M3內(nèi)核的芯片,其具有更明顯的性能優(yōu)勢(shì),被廣泛應(yīng)用于工業(yè)控制領(lǐng)域。STM32F407強(qiáng)大的性能以及豐富的接口可以滿足示教器的使用需求,與使用嵌入式計(jì)算機(jī)等作為示教器的主控制器相比成本更低。不僅如此,開發(fā)人員可在STM32上運(yùn)行操作系統(tǒng),進(jìn)而方便對(duì)系統(tǒng)任務(wù)進(jìn)行調(diào)度和分配。
為了使示教器具備良好的人機(jī)交互體驗(yàn),采用“按鍵+觸摸屏”的輸入方式。觸摸屏采用的是分辨率為800×480的7英寸HMI觸摸屏。HMI觸摸屏的顯示界面制作方便快捷,STM32主控芯片僅需通過(guò)串口即可發(fā)送指令控制觸摸屏的顯示和獲取觸摸屏上控件的參數(shù)信息,大大提高開發(fā)效率的同時(shí)也簡(jiǎn)化了硬件設(shè)計(jì)。由于示教器上的按鍵較多,若采用矩陣式鍵盤設(shè)計(jì)會(huì)占用大量的I/O口。故本設(shè)計(jì)的鍵盤電路結(jié)合了STM32F407自帶的USB OTG功能模塊以及HT82K628A標(biāo)準(zhǔn)鍵盤芯片,大大節(jié)省了主控芯片的I/O口資源,同時(shí)也保證了按鍵輸入的準(zhǔn)確性。
示教器的通信功能至關(guān)重要,需保證傳輸?shù)乃俣群蜏?zhǔn)確性。STM32內(nèi)置以太網(wǎng)MAC層,僅需外接一個(gè)PHY芯片和TCP/IP協(xié)議棧的支持就可以實(shí)現(xiàn)以太網(wǎng)通信。此處PHY芯片采用LAN8720,傳輸速率最高可達(dá)到100 Mb/s,并支持自動(dòng)翻轉(zhuǎn),無(wú)需更換網(wǎng)線即可更改交叉或者直連的連接方式。
2.1 主程序設(shè)計(jì)
由于仿真示教器的程序任務(wù)多且復(fù)雜,故在主程序的設(shè)計(jì)上引入μC/OSII實(shí)時(shí)操作系統(tǒng)對(duì)各任務(wù)進(jìn)行分配和調(diào)度。μC/OSII以其完全公開的源代碼和優(yōu)越的性能,得到了廣泛的應(yīng)用[3-4]。
示教器的主程序設(shè)計(jì)主要分成以下三個(gè)部分:
(1)初始化。主要包括對(duì)系統(tǒng)時(shí)鐘、一系列外設(shè)和μC/OSII的初始化。
(2)創(chuàng)建啟動(dòng)任務(wù)。主要用于創(chuàng)建以太網(wǎng)通信、鍵盤讀取任務(wù)等各種系統(tǒng)任務(wù),創(chuàng)建完成之后掛起啟動(dòng)任務(wù)。
(3)開啟μC/OSII,開始對(duì)系統(tǒng)的各個(gè)任務(wù)進(jìn)行管理。
示教器的主程序流程如圖2所示。
圖2 主程序設(shè)計(jì)流程
2.2 以太網(wǎng)通信程序設(shè)計(jì)
示教器的通信效果關(guān)系到控制命令傳輸?shù)臏?zhǔn)確性和及時(shí)性。傳統(tǒng)的串行通信技術(shù)作為一種靈活方便的通信方式一直被廣泛應(yīng)用于IT和工業(yè)通信領(lǐng)域。例如常見的RS232接口,雖然其價(jià)格便宜、編程容易,但是傳輸速率較低,最高僅為20 kb/s,而且抗干擾能力弱。以太網(wǎng)的出現(xiàn)以其速度和性能的優(yōu)勢(shì),逐漸取代串行通信成為工業(yè)控制網(wǎng)絡(luò)建設(shè)的一種有效的解決方案。本設(shè)計(jì)中的示教器采用以太網(wǎng)通信,基于TCP/IP協(xié)議設(shè)計(jì)示教器的通信模塊。在網(wǎng)絡(luò)程序中具體采用套接字(Socket)的實(shí)現(xiàn)方法,Socket包括IP地址、端口號(hào)和TCP/IP協(xié)議,因其存在于通信區(qū)域中,程序員通過(guò)它可非常方便地訪問(wèn)TCP/IP協(xié)議。Socket在Linux和Windows等操作系統(tǒng)中都可應(yīng)用,能很好地實(shí)現(xiàn)基于TCP/IP的跨平臺(tái)通信,大大地提高了示教器的開放性和擴(kuò)展性。
本設(shè)計(jì)采用LwIP作為TCP/IP協(xié)議棧,LwIP是瑞典計(jì)算機(jī)科學(xué)院的Adam Dunkels開發(fā)的小型開源TCP/IP協(xié)議棧,只需十幾KB的RAM和40 KB左右的ROM即可運(yùn)行,適用于低端的嵌入式系統(tǒng)[5-7],可滿足示教系統(tǒng)網(wǎng)絡(luò)通信的使用需求。依據(jù)協(xié)議分層模型,TCP/IP可分成網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層,LwIP用來(lái)提供網(wǎng)絡(luò)層和傳輸層的功能,用戶可以在應(yīng)用層實(shí)現(xiàn)所需的功能。
通過(guò)對(duì)LwIP的移植,結(jié)合實(shí)時(shí)操作系統(tǒng),將網(wǎng)絡(luò)通信的接收任務(wù)和發(fā)送任務(wù)合并在一個(gè)系統(tǒng)任務(wù)來(lái)運(yùn)行,并賦予較高的任務(wù)優(yōu)先級(jí),保證通信任務(wù)的及時(shí)性。任務(wù)程序流程如圖3所示。通信網(wǎng)絡(luò)架構(gòu)采用主從式架構(gòu),示教器端作為服務(wù)器,連接時(shí)服務(wù)器進(jìn)入監(jiān)聽模式,等待來(lái)自客戶端的連接請(qǐng)求,當(dāng)遠(yuǎn)端IP地址和端口號(hào)正確即可連接成功。當(dāng)示教器要發(fā)送信息時(shí),將數(shù)據(jù)存入sendbuf數(shù)據(jù)緩存區(qū),并置位發(fā)送標(biāo)志位即可發(fā)送數(shù)據(jù)到計(jì)算機(jī)上。
圖3 示教器網(wǎng)絡(luò)通信任務(wù)流程
2.3 鍵盤讀取程序設(shè)計(jì)
當(dāng)示教器使用STM32的USB模塊時(shí)需要有USB底層驅(qū)動(dòng)程序的支持,ST公司提供USB例程可供移植參考,其中的“usb_usr.c”文件提供用戶應(yīng)用層接口函數(shù),用戶可以根據(jù)讀取到的鍵值編寫相應(yīng)的執(zhí)行程序[8]。
本設(shè)計(jì)引入了操作系統(tǒng)對(duì)任務(wù)進(jìn)行管理,將USB讀取鍵值的程序作為一個(gè)任務(wù)來(lái)執(zhí)行。USB的程序流程如圖4所示,按鍵作為人機(jī)交互的關(guān)鍵部件,需保證USB連接的穩(wěn)定可靠。在USB的任務(wù)程序中不斷檢測(cè)連接狀態(tài),當(dāng)USB設(shè)備出現(xiàn)通信異常或者枚舉死機(jī)時(shí)需重新發(fā)起連接。部分按鍵需控制觸摸屏顯示,則通過(guò)串口發(fā)送指令信息。部分按鍵需發(fā)送指令至計(jì)算機(jī)端,則調(diào)用相應(yīng)的網(wǎng)絡(luò)通信任務(wù)程序。
圖4 USB任務(wù)程序流程
在實(shí)際示教過(guò)程中,機(jī)器人是采用點(diǎn)動(dòng)的運(yùn)動(dòng)方式,即按下方向鍵時(shí)機(jī)器人運(yùn)動(dòng),松開方向鍵時(shí)停止。針對(duì)這種情況,在程序上檢測(cè)到按下方向鍵時(shí)發(fā)送對(duì)應(yīng)軸的啟動(dòng)指令,松開時(shí)發(fā)送停止指令,實(shí)現(xiàn)要求的同時(shí)也降低了軟件開發(fā)難度,節(jié)省主控制器資源。
相比傳統(tǒng)的示教系統(tǒng),本設(shè)計(jì)中仿真示教器最大的特點(diǎn)是通過(guò)與計(jì)算機(jī)仿真平臺(tái)相連接,控制由計(jì)算機(jī)仿真得到的三維虛擬機(jī)器人模型,模擬進(jìn)行機(jī)器人的操作練習(xí)。機(jī)器人的三維模型是通過(guò)SolidWorks軟件進(jìn)行制作,然后經(jīng)MFC導(dǎo)入基于OpenGL建立的工作環(huán)境中,從而獲得逼真的機(jī)器人模型。修改機(jī)器人模型和相對(duì)應(yīng)的運(yùn)動(dòng)學(xué)控制算法即可對(duì)不同型號(hào)的機(jī)器人進(jìn)行示教,使本文的仿真示教器具有良好的開放性。
3.1 以太網(wǎng)通信連接測(cè)試
要使示教器功能正常使用需保證通信連接的穩(wěn)定可靠。本文中通信網(wǎng)絡(luò)架構(gòu)采用的是主從式架構(gòu),計(jì)算機(jī)仿真平臺(tái)作為客戶端,需主動(dòng)發(fā)起連接請(qǐng)求。在計(jì)算機(jī)上的仿真平臺(tái)中輸入IP地址和端口號(hào),點(diǎn)擊“連接”,若符合示教器的內(nèi)部參數(shù)設(shè)置則連接成功,在接收框中將顯示“連接服務(wù)器成功!”的提示,程序通過(guò)采用“EnableWindow(false)”的指令禁止對(duì)IP地址和端口號(hào)的修改,具體的示教器連接效果如圖5所示。當(dāng)按下示教器的按鍵或點(diǎn)擊觸摸屏,會(huì)在接收框中看到示教器發(fā)送來(lái)的指令信息。通過(guò)實(shí)驗(yàn)測(cè)試,示教器與計(jì)算機(jī)仿真平臺(tái)的通信連接成功,發(fā)送數(shù)據(jù)準(zhǔn)確快速。
圖5 示教器連接效果
3.2 示教器功能測(cè)試
當(dāng)示教器與計(jì)算機(jī)仿真平臺(tái)的以太網(wǎng)通信成功之后,即可對(duì)其主要的手動(dòng)控制和示教再現(xiàn)兩個(gè)功能進(jìn)行測(cè)試。通過(guò)示教器上的功能鍵將機(jī)器人當(dāng)前的控制模式切換成手動(dòng)控制,并將運(yùn)動(dòng)坐標(biāo)切換為關(guān)節(jié)坐標(biāo)。若按下鍵盤上的方向控制鍵即可觀察到機(jī)器人上對(duì)應(yīng)軸的單獨(dú)轉(zhuǎn)動(dòng),松開則停止。如果切換運(yùn)動(dòng)坐標(biāo)為直角坐標(biāo),按下方向控制鍵即可觀察到機(jī)器人的末端會(huì)沿著空間直角坐標(biāo)系做直線運(yùn)動(dòng)。
示教再現(xiàn)是機(jī)器人示教器的一個(gè)重要功能,測(cè)試效果如圖6所示。操作過(guò)程可分為以下3個(gè)步驟:
(1)確定示教點(diǎn)位姿。通過(guò)示教器手動(dòng)移動(dòng)機(jī)器人到達(dá)指定的位置并按下鍵盤上的“示教”,示教點(diǎn)記錄框中按順序記錄著每個(gè)點(diǎn)的位姿信息。
(2)編輯動(dòng)作指令。點(diǎn)擊觸摸屏進(jìn)入程序編輯界面,逐條編輯動(dòng)作程序指令,通過(guò)鍵盤切換選擇“MOVJ”的關(guān)節(jié)插補(bǔ)運(yùn)動(dòng)或者“MOVL”的直線插補(bǔ)運(yùn)動(dòng),然后選擇該條指令運(yùn)動(dòng)到達(dá)的目標(biāo)點(diǎn)序號(hào),最后設(shè)置該條指令運(yùn)行時(shí)的速度。在觸摸屏上和仿真平臺(tái)的“示教代碼框”中可以看到所編輯的程序指令。
(3)運(yùn)行。當(dāng)所有指令編輯完成后點(diǎn)擊鍵盤上的“確定”然后點(diǎn)擊“運(yùn)行”,即可觀察到機(jī)器人根據(jù)示教的動(dòng)作進(jìn)行往復(fù)的運(yùn)動(dòng)。
實(shí)驗(yàn)證明,該示教器可以通過(guò)簡(jiǎn)單的操作達(dá)到示教機(jī)器人的效果,貼近實(shí)際使用的操作方式,并且機(jī)器人三維模型顯示逼真,運(yùn)動(dòng)流暢,可以達(dá)到教學(xué)和培訓(xùn)的目的。
圖6 示教器測(cè)試效果
本設(shè)計(jì)采用基于STM32的主控制器和以太網(wǎng)通信方案,并引入虛擬仿真技術(shù),設(shè)計(jì)了一款機(jī)器人仿真示教器。克服了傳統(tǒng)機(jī)器人示教系統(tǒng)的擴(kuò)展性差、靈活性差等缺點(diǎn)。實(shí)驗(yàn)結(jié)果表明,該示教器能靈活地對(duì)計(jì)算機(jī)仿真平臺(tái)
中的三維虛擬機(jī)器人進(jìn)行控制并完成示教的任務(wù),并且人機(jī)交互效果良好、控制反應(yīng)迅速,達(dá)到了模擬操作實(shí)體機(jī)器人的效果。
[1] 辛鑫. 機(jī)器人手持智能終端系統(tǒng)的研發(fā)[D].天津:天津大學(xué), 2012.
[2] CONNOLLY C. Technology and applications of ABB RobotStudio[J]. Industrial Robot, 2013, 36(6): 540-545.
[3] 陳果, 馮靜. ucos系統(tǒng)及其消息隊(duì)列詳解[J]. 電子元器件應(yīng)用, 2011, 13(3): 38-43
[4] 王長(zhǎng)清, 余丙濤, 潘德強(qiáng). 基于STM32的逐陽(yáng)帆控制系統(tǒng)設(shè)計(jì)[J]. 電子技術(shù)應(yīng)用, 2015, 41(12): 25-27.
[5] 朱升林. 嵌入式網(wǎng)絡(luò)那些事:LwIP協(xié)議深度剖析與實(shí)戰(zhàn)演練[M]. 北京:中國(guó)水利水電出版社, 2012.
[6] 趙鳳申, 李愛芹, 吳文祥. 工業(yè)機(jī)器人嵌入式示教盒設(shè)計(jì)[J]. 電焊機(jī), 2011, 41(12): 9-12.
[7] 沈躍, 王家鼎. 基于ARM技術(shù)的CAN總線和以太網(wǎng)間的互聯(lián)設(shè)計(jì)[J]. 電子技術(shù)應(yīng)用, 2006, 32(5): 56-59.
[8] 余修武, 劉嵐. USB接口技術(shù)在嵌入式系統(tǒng)中的應(yīng)用研究[J]. 電子技術(shù)應(yīng)用, 2008, 34(10): 151-154.
Design of robot simulated teaching box based on STM32
Yu Zhenzhong, Cai Kaiti
(School of Internet of Things, Jiangnan University, Wuxi 214122, China)
In order to overcome the defects of the traditional teaching box such as poor scalability and being closed, a new teaching box based on STM32 is designed. The teaching box uses STM32 as the main control chip, adopting the μC/OSII real-time operating system and the Ethernet, which improves the openness of the system. Through controlling the three-dimensional robot simulated by computer, demonstrates the basic functions of manual control and playback of the teaching box. The experimental results show that the teaching box can simulate the effect of operation of the real robot, because it can practice controlling the robot flexibly and conveniently, which prove its practical value.
teaching box; simulation; Ethernet; openness
TP242.2
A
10.19358/j.issn.1674- 7720.2016.23.011
于振中,蔡楷倜. 基于STM32的機(jī)器人仿真示教器設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2016,35(23):38-41.
2016-08-15)
于振中(1980-),男,博士,副教授,主要研究方向:機(jī)電一體化技術(shù)。
蔡楷倜(1992-),通信作者,男,碩士研究生,主要研究方向:機(jī)電一體化技術(shù)。E-mail:tcckt@126.com。