于振中,,蔡楷倜
?。ń洗髮W(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)的開(kāi)放性。通過(guò)對(duì)利用計(jì)算機(jī)模擬得到的三維機(jī)器人進(jìn)行仿真操控,,驗(yàn)證該示教器的手動(dòng)控制和示教再現(xiàn)等基本功能,。實(shí)驗(yàn)結(jié)果表明,該仿真示教器可以靈活方便地練習(xí)機(jī)器人的示教操作,,達(dá)到模擬操作實(shí)體機(jī)器人的效果,,具有一定的實(shí)用價(jià)值,。
關(guān)鍵詞:示教器;仿真,;以太網(wǎng),;開(kāi)放性
中圖分類號(hào):TP242.2文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.16747720.2016.23.011
引用格式:于振中,蔡楷倜. 基于STM32的機(jī)器人仿真示教器設(shè)計(jì)[J].微型機(jī)與應(yīng)用,,2016,35(23):38-41.
0引言
當(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ā),,開(kāi)放程度低,并且如果由缺乏經(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ù)的開(kāi)發(fā),,有一定的局限性。
本設(shè)計(jì)研制了一款基于STM32的機(jī)器人仿真示教器,,在降低成本的同時(shí)易于進(jìn)行二次開(kāi)發(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ì)的合理性,,具有良好的開(kāi)放性,,在節(jié)約成本的同時(shí)具有一定的實(shí)用價(jià)值,。
1示教器的硬件設(shè)計(jì)
本文所設(shè)計(jì)的仿真示教器以STM32為主控芯片,主要包括觸摸屏,、按鍵,、指示燈和通信等模塊。其硬件結(jié)構(gòu)如圖1所示,。
主控制器芯片采用CortexM4內(nèi)核的STM32F407,,相比于STM32F103等CortexM3內(nèi)核的芯片,其具有更明顯的性能優(yōu)勢(shì),,被廣泛應(yīng)用于工業(yè)控制領(lǐng)域,。STM32F407強(qiáng)大的性能以及豐富的接口可以滿足示教器的使用需求,與使用嵌入式計(jì)算機(jī)等作為示教器的主控制器相比成本更低,。不僅如此,,開(kāi)發(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ù)信息,大大提高開(kāi)發(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示教器的軟件設(shè)計(jì)
2.1主程序設(shè)計(jì)
由于仿真示教器的程序任務(wù)多且復(fù)雜,故在主程序的設(shè)計(jì)上引入μC/OSII實(shí)時(shí)操作系統(tǒng)對(duì)各任務(wù)進(jìn)行分配和調(diào)度,。μC/OSII以其完全公開(kāi)的源代碼和優(yōu)越的性能,,得到了廣泛的應(yīng)用[3-4]。
示教器的主程序設(shè)計(jì)主要分成以下三個(gè)部分:
?。?)初始化,。主要包括對(duì)系統(tǒng)時(shí)鐘,、一系列外設(shè)和μC/OSII的初始化。
?。?)創(chuàng)建啟動(dòng)任務(wù),。主要用于創(chuàng)建以太網(wǎng)通信、鍵盤讀取任務(wù)等各種系統(tǒng)任務(wù),,創(chuàng)建完成之后掛起啟動(dòng)任務(wù),。
(3)開(kāi)啟μC/OSII,,開(kāi)始對(duì)系統(tǒng)的各個(gè)任務(wù)進(jìn)行管理,。
示教器的主程序流程如圖2所示。
2.2以太網(wǎng)通信程序設(shè)計(jì)
示教器的通信效果關(guān)系到控制命令傳輸?shù)臏?zhǔn)確性和及時(shí)性,。傳統(tǒng)的串行通信技術(shù)作為一種靈活方便的通信方式一直被廣泛應(yīng)用于IT和工業(yè)通信領(lǐng)域,。例如常見(jiàn)的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)通信,,大大地提高了示教器的開(kāi)放性和擴(kuò)展性,。
本設(shè)計(jì)采用LwIP作為TCP/IP協(xié)議棧,,LwIP是瑞典計(jì)算機(jī)科學(xué)院的Adam Dunkels開(kāi)發(fā)的小型開(kāi)源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)聽(tīng)模式,,等待來(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ī)上,。
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ù)程序,。
在實(shí)際示教過(guò)程中,機(jī)器人是采用點(diǎn)動(dòng)的運(yùn)動(dòng)方式,,即按下方向鍵時(shí)機(jī)器人運(yùn)動(dòng),,松開(kāi)方向鍵時(shí)停止。針對(duì)這種情況,,在程序上檢測(cè)到按下方向鍵時(shí)發(fā)送對(duì)應(yīng)軸的啟動(dòng)指令,,松開(kāi)時(shí)發(fā)送停止指令,,實(shí)現(xiàn)要求的同時(shí)也降低了軟件開(kāi)發(fā)難度,節(jié)省主控制器資源,。
3示教器實(shí)驗(yàn)測(cè)試
相比傳統(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)行示教,使本文的仿真示教器具有良好的開(kāi)放性,。
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)確快速,。
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),,松開(kāi)則停止,。如果切換運(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è)步驟:
?。?)確定示教點(diǎn)位姿,。通過(guò)示教器手動(dòng)移動(dòng)機(jī)器人到達(dá)指定的位置并按下鍵盤上的“示教”,示教點(diǎn)記錄框中按順序記錄著每個(gè)點(diǎn)的位姿信息,。
?。?)編輯動(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)的“示教代碼框”中可以看到所編輯的程序指令。
?。?)運(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)的目的,。
4結(jié)論
本設(shè)計(jì)采用基于STM32的主控制器和以太網(wǎng)通信方案,,并引入虛擬仿真技術(shù),設(shè)計(jì)了一款機(jī)器人仿真示教器,??朔藗鹘y(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ī)器人的效果。
參考文獻(xiàn)
?。?] 辛鑫. 機(jī)器人手持智能終端系統(tǒng)的研發(fā)[D].天津:天津大學(xué),,2012.
[2] CONNOLLY C. Technology and applications of ABB RobotStudio[J]. Industrial Robot, 2013, 36(6): 540-545.
?。?] 陳果, 馮靜. ucos系統(tǒng)及其消息隊(duì)列詳解[J]. 電子元器件應(yīng)用, 2011, 13(3): 38-43
?。?] 王長(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] 趙鳳申, 李愛(ài)芹, 吳文祥. 工業(yè)機(jī)器人嵌入式示教盒設(shè)計(jì)[J]. 電焊機(jī), 2011, 41(12): 9-12.
?。?] 沈躍, 王家鼎. 基于ARM技術(shù)的CAN總線和以太網(wǎng)間的互聯(lián)設(shè)計(jì)[J]. 電子技術(shù)應(yīng)用, 2006, 32(5): 56-59.
?。?] 余修武, 劉嵐. USB接口技術(shù)在嵌入式系統(tǒng)中的應(yīng)用研究[J]. 電子技術(shù)應(yīng)用, 2008, 34(10): 151-154.