《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > 基于STM32的機器人仿真示教器設(shè)計
基于STM32的機器人仿真示教器設(shè)計
2016年微型機與應(yīng)用第23期
于振中,蔡楷倜
江南大學(xué) 物聯(lián)網(wǎng)工程學(xué)院,江蘇 無錫 214122
摘要: 為了克服傳統(tǒng)機器人示教系統(tǒng)擴展性差且較為封閉等缺點,設(shè)計了一種基于STM32的機器人仿真示教器。該示教器以STM32作為主控芯片,引入μC/OSII實時操作系統(tǒng),并采用以太網(wǎng)通信的方式,提高了系統(tǒng)的開放性。通過對利用計算機模擬得到的三維機器人進行仿真操控,驗證該示教器的手動控制和示教再現(xiàn)等基本功能。實驗結(jié)果表明,該仿真示教器可以靈活方便地練習(xí)機器人的示教操作,達到模擬操作實體機器人的效果,具有一定的實用價值。
Abstract:
Key words :

  于振中,蔡楷倜

 ?。ń洗髮W(xué) 物聯(lián)網(wǎng)工程學(xué)院,江蘇 無錫 214122)

       摘要:為了克服傳統(tǒng)機器人示教系統(tǒng)擴展性差且較為封閉等缺點,設(shè)計了一種基于STM32的機器人仿真示教器。該示教器以STM32作為主控芯片,引入μC/OSII實時操作系統(tǒng),并采用以太網(wǎng)通信的方式,提高了系統(tǒng)的開放性。通過對利用計算機模擬得到的三維機器人進行仿真操控,驗證該示教器的手動控制和示教再現(xiàn)等基本功能。實驗結(jié)果表明,該仿真示教器可以靈活方便地練習(xí)機器人的示教操作,達到模擬操作實體機器人的效果,具有一定的實用價值。

  關(guān)鍵詞:示教器;仿真;以太網(wǎng);開放性

  中圖分類號:TP242.2文獻標(biāo)識碼:ADOI: 10.19358/j.issn.16747720.2016.23.011

  引用格式:于振中,蔡楷倜. 基于STM32的機器人仿真示教器設(shè)計[J].微型機與應(yīng)用,2016,35(23):38-41.

0引言

  當(dāng)前,工業(yè)機器人已經(jīng)廣泛應(yīng)用于許多工廠的實際使用中,其中通過示教器對機器人的動作進行編程是最為普遍的做法。示教器是進行人機交互的重要工具,操作人員通過示教器對機器人的運動軌跡進行示教和編程,使機器人能夠完成要求的任務(wù),在生產(chǎn)線上進行重復(fù)的勞作[1]。機器人的實際使用效果取決于動作示教的效果,因此示教器的性能和操作人員的經(jīng)驗顯得尤為重要。

  目前國內(nèi)外的機器人示教系統(tǒng)大多由各大廠商針對自有產(chǎn)品進行設(shè)計研發(fā),開放程度低,并且如果由缺乏經(jīng)驗的人員直接操控實體機器人則容易存在安全隱患,影響示教的效果。學(xué)會操作機器人之前首先要學(xué)會使用機器人示教器,如ABB機器人公司推出虛擬示教軟件RobotStudio[2],其虛擬示教臺功能可以讓操作人員利用計算機學(xué)習(xí)ABB機器人示教器的操作,是一款出色的教學(xué)和培訓(xùn)工具。但其操作需通過鼠標(biāo)點擊計算機屏幕上的示教器圖形來完成,缺乏操作手持示教器時的真實感,并且軟件受封閉保護,難以進行后續(xù)的開發(fā),有一定的局限性。

  本設(shè)計研制了一款基于STM32的機器人仿真示教器,在降低成本的同時易于進行二次開發(fā)。在實現(xiàn)方法上采用觸摸屏與按鍵結(jié)合的輸入方式提高了示教器的人機交互性能。不僅如此,利用以太網(wǎng)通信的方式僅需一根網(wǎng)線即可實現(xiàn)與計算機相連,不僅方便快捷而且能實現(xiàn)跨平臺的通信,提高了系統(tǒng)的可擴展性。仿真示教器對計算機模擬得到的三維機器人進行操作,不僅可以用來練習(xí)機器人的示教,還可以利用該平臺驗證機器人的運動控制算法和機器人機械結(jié)構(gòu)設(shè)計的合理性,具有良好的開放性,在節(jié)約成本的同時具有一定的實用價值。

1示教器的硬件設(shè)計

  本文所設(shè)計的仿真示教器以STM32為主控芯片,主要包括觸摸屏、按鍵、指示燈和通信等模塊。其硬件結(jié)構(gòu)如圖1所示。

圖像 007.png

  主控制器芯片采用CortexM4內(nèi)核的STM32F407,相比于STM32F103等CortexM3內(nèi)核的芯片,其具有更明顯的性能優(yōu)勢,被廣泛應(yīng)用于工業(yè)控制領(lǐng)域。STM32F407強大的性能以及豐富的接口可以滿足示教器的使用需求,與使用嵌入式計算機等作為示教器的主控制器相比成本更低。不僅如此,開發(fā)人員可在STM32上運行操作系統(tǒng),進而方便對系統(tǒng)任務(wù)進行調(diào)度和分配。

  為了使示教器具備良好的人機交互體驗,采用“按鍵+觸摸屏”的輸入方式。觸摸屏采用的是分辨率為800×480的7英寸HMI觸摸屏。HMI觸摸屏的顯示界面制作方便快捷,STM32主控芯片僅需通過串口即可發(fā)送指令控制觸摸屏的顯示和獲取觸摸屏上控件的參數(shù)信息,大大提高開發(fā)效率的同時也簡化了硬件設(shè)計。由于示教器上的按鍵較多,若采用矩陣式鍵盤設(shè)計會占用大量的I/O口。故本設(shè)計的鍵盤電路結(jié)合了STM32F407自帶的USB OTG功能模塊以及HT82K628A標(biāo)準(zhǔn)鍵盤芯片,大大節(jié)省了主控芯片的I/O口資源,同時也保證了按鍵輸入的準(zhǔn)確性。

  示教器的通信功能至關(guān)重要,需保證傳輸?shù)乃俣群蜏?zhǔn)確性。STM32內(nèi)置以太網(wǎng)MAC層,僅需外接一個PHY芯片和TCP/IP協(xié)議棧的支持就可以實現(xiàn)以太網(wǎng)通信。此處PHY芯片采用LAN8720,傳輸速率最高可達到100 Mb/s,并支持自動翻轉(zhuǎn),無需更換網(wǎng)線即可更改交叉或者直連的連接方式。

2示教器的軟件設(shè)計

  2.1主程序設(shè)計

  由于仿真示教器的程序任務(wù)多且復(fù)雜,故在主程序的設(shè)計上引入μC/OSII實時操作系統(tǒng)對各任務(wù)進行分配和調(diào)度。μC/OSII以其完全公開的源代碼和優(yōu)越的性能,得到了廣泛的應(yīng)用[3-4]。

  示教器的主程序設(shè)計主要分成以下三個部分:

 ?。?)初始化。主要包括對系統(tǒng)時鐘、一系列外設(shè)和μC/OSII的初始化。

 ?。?)創(chuàng)建啟動任務(wù)。主要用于創(chuàng)建以太網(wǎng)通信、鍵盤讀取任務(wù)等各種系統(tǒng)任務(wù),創(chuàng)建完成之后掛起啟動任務(wù)。

 ?。?)開啟μC/OSII,開始對系統(tǒng)的各個任務(wù)進行管理。

  示教器的主程序流程如圖2所示。

圖像 008.png

  2.2以太網(wǎng)通信程序設(shè)計

  示教器的通信效果關(guān)系到控制命令傳輸?shù)臏?zhǔn)確性和及時性。傳統(tǒng)的串行通信技術(shù)作為一種靈活方便的通信方式一直被廣泛應(yīng)用于IT和工業(yè)通信領(lǐng)域。例如常見的RS232接口,雖然其價格便宜、編程容易,但是傳輸速率較低,最高僅為20 kb/s,而且抗干擾能力弱。以太網(wǎng)的出現(xiàn)以其速度和性能的優(yōu)勢,逐漸取代串行通信成為工業(yè)控制網(wǎng)絡(luò)建設(shè)的一種有效的解決方案。本設(shè)計中的示教器采用以太網(wǎng)通信,基于TCP/IP協(xié)議設(shè)計示教器的通信模塊。在網(wǎng)絡(luò)程序中具體采用套接字(Socket)的實現(xiàn)方法,Socket包括IP地址、端口號和TCP/IP協(xié)議,因其存在于通信區(qū)域中,程序員通過它可非常方便地訪問TCP/IP協(xié)議。Socket在Linux和Windows等操作系統(tǒng)中都可應(yīng)用,能很好地實現(xiàn)基于TCP/IP的跨平臺通信,大大地提高了示教器的開放性和擴展性。

  本設(shè)計采用LwIP作為TCP/IP協(xié)議棧,LwIP是瑞典計算機科學(xué)院的Adam Dunkels開發(fā)的小型開源TCP/IP協(xié)議棧,只需十幾KB的RAM和40 KB左右的ROM即可運行,適用于低端的嵌入式系統(tǒng)[5-7],可滿足示教系統(tǒng)網(wǎng)絡(luò)通信的使用需求。依據(jù)協(xié)議分層模型,TCP/IP可分成網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層,LwIP用來提供網(wǎng)絡(luò)層和傳輸層的功能,用戶可以在應(yīng)用層實現(xiàn)所需的功能。

  通過對LwIP的移植,結(jié)合實時操作系統(tǒng),將網(wǎng)絡(luò)通信的接收任務(wù)和發(fā)送任務(wù)合并在一個系統(tǒng)任務(wù)來運行,并賦予較高的任務(wù)優(yōu)先級,保證通信任務(wù)的及時性。任務(wù)程序流程如圖3所示。通信網(wǎng)絡(luò)架構(gòu)采用主從式架構(gòu),示教器端作為服務(wù)器,連接時服務(wù)器進入監(jiān)聽模式,等待來自客戶端的連接請求,當(dāng)遠端IP地址和端口號正確即可連接成功。當(dāng)示教器要發(fā)送信息時,將數(shù)據(jù)存入sendbuf數(shù)據(jù)緩存區(qū),并置位發(fā)送標(biāo)志位即可發(fā)送數(shù)據(jù)到計算機上。

圖像 009.png

  2.3鍵盤讀取程序設(shè)計

  當(dāng)示教器使用STM32的USB模塊時需要有USB底層驅(qū)動程序的支持,ST公司提供USB例程可供移植參考,其中的“usb_usr.c”文件提供用戶應(yīng)用層接口函數(shù),用戶可以根據(jù)讀取到的鍵值編寫相應(yīng)的執(zhí)行程序[8]。

  本設(shè)計引入了操作系統(tǒng)對任務(wù)進行管理,將USB讀取鍵值的程序作為一個任務(wù)來執(zhí)行。USB的程序流程如圖4所示,按鍵作為人機交互的關(guān)鍵部件,需保證USB連接的穩(wěn)定可靠。在USB的任務(wù)程序中不斷檢測連接狀態(tài),當(dāng)USB設(shè)備出現(xiàn)通信異常或者枚舉死機時需重新發(fā)起連接。部分按鍵需控制觸摸屏顯示,則通過串口發(fā)送指令信息。部分按鍵需發(fā)送指令至計算機端,則調(diào)用相應(yīng)的網(wǎng)絡(luò)通信任務(wù)程序。

圖像 010.png

  在實際示教過程中,機器人是采用點動的運動方式,即按下方向鍵時機器人運動,松開方向鍵時停止。針對這種情況,在程序上檢測到按下方向鍵時發(fā)送對應(yīng)軸的啟動指令,松開時發(fā)送停止指令,實現(xiàn)要求的同時也降低了軟件開發(fā)難度,節(jié)省主控制器資源。

3示教器實驗測試

  相比傳統(tǒng)的示教系統(tǒng),本設(shè)計中仿真示教器最大的特點是通過與計算機仿真平臺相連接,控制由計算機仿真得到的三維虛擬機器人模型,模擬進行機器人的操作練習(xí)。機器人的三維模型是通過SolidWorks軟件進行制作,然后經(jīng)MFC導(dǎo)入基于OpenGL建立的工作環(huán)境中,從而獲得逼真的機器人模型。修改機器人模型和相對應(yīng)的運動學(xué)控制算法即可對不同型號的機器人進行示教,使本文的仿真示教器具有良好的開放性。

  3.1以太網(wǎng)通信連接測試

  要使示教器功能正常使用需保證通信連接的穩(wěn)定可靠。本文中通信網(wǎng)絡(luò)架構(gòu)采用的是主從式架構(gòu),計算機仿真平臺作為客戶端,需主動發(fā)起連接請求。在計算機上的仿真平臺中輸入IP地址和端口號,點擊“連接”,若符合示教器的內(nèi)部參數(shù)設(shè)置則連接成功,在接收框中將顯示“連接服務(wù)器成功!”的提示,程序通過采用“EnableWindow(false)”的指令禁止對IP地址和端口號的修改,具體的示教器連接效果如圖5所示。當(dāng)按下示教器的按鍵或點擊觸摸屏,會在接收框中看到示教器發(fā)送來的指令信息。通過實驗測試,示教器與計算機仿真平臺的通信連接成功,發(fā)送數(shù)據(jù)準(zhǔn)確快速。

圖像 011.png

  3.2示教器功能測試

  當(dāng)示教器與計算機仿真平臺的以太網(wǎng)通信成功之后,即可對其主要的手動控制和示教再現(xiàn)兩個功能進行測試。通過示教器上的功能鍵將機器人當(dāng)前的控制模式切換成手動控制,并將運動坐標(biāo)切換為關(guān)節(jié)坐標(biāo)。若按下鍵盤上的方向控制鍵即可觀察到機器人上對應(yīng)軸的單獨轉(zhuǎn)動,松開則停止。如果切換運動坐標(biāo)為直角坐標(biāo),按下方向控制鍵即可觀察到機器人的末端會沿著空間直角坐標(biāo)系做直線運動。

  示教再現(xiàn)是機器人示教器的一個重要功能,測試效果如圖6所示。操作過程可分為以下3個步驟:

 ?。?)確定示教點位姿。通過示教器手動移動機器人到達指定的位置并按下鍵盤上的“示教”,示教點記錄框中按順序記錄著每個點的位姿信息。

 ?。?)編輯動作指令。點擊觸摸屏進入程序編輯界面,逐條編輯動作程序指令,通過鍵盤切換選擇“MOVJ”的關(guān)節(jié)插補運動或者“MOVL”的直線插補運動,然后選擇該條指令運動到達的目標(biāo)點序號,最后設(shè)置該條指令運行時的速度。在觸摸屏上和仿真平臺的“示教代碼框”中可以看到所編輯的程序指令。

 ?。?)運行。當(dāng)所有指令編輯完成后點擊鍵盤上的“確定”然后點擊“運行”,即可觀察到機器人根據(jù)示教的動作進行往復(fù)的運動。

  實驗證明,該示教器可以通過簡單的操作達到示教機器人的效果,貼近實際使用的操作方式,并且機器人三維模型顯示逼真,運動流暢,可以達到教學(xué)和培訓(xùn)的目的。

圖像 012.png

4結(jié)論

  本設(shè)計采用基于STM32的主控制器和以太網(wǎng)通信方案,并引入虛擬仿真技術(shù),設(shè)計了一款機器人仿真示教器??朔藗鹘y(tǒng)機器人示教系統(tǒng)的擴展性差、靈活性差等缺點。實驗結(jié)果表明,該示教器能靈活地對計算機仿真平臺中的三維虛擬機器人進行控制并完成示教的任務(wù),并且人機交互效果良好、控制反應(yīng)迅速,達到了模擬操作實體機器人的效果。

  參考文獻

 ?。?] 辛鑫. 機器人手持智能終端系統(tǒng)的研發(fā)[D].天津:天津大學(xué),2012.

 ?。?] CONNOLLY C. Technology and applications of ABB RobotStudio[J]. Industrial Robot, 2013, 36(6): 540-545.

 ?。?] 陳果, 馮靜. ucos系統(tǒng)及其消息隊列詳解[J]. 電子元器件應(yīng)用, 2011, 13(3): 38-43

 ?。?] 王長清, 余丙濤, 潘德強. 基于STM32的逐陽帆控制系統(tǒng)設(shè)計[J]. 電子技術(shù)應(yīng)用, 2015, 41(12): 25-27.

  [5] 朱升林. 嵌入式網(wǎng)絡(luò)那些事:LwIP協(xié)議深度剖析與實戰(zhàn)演練[M]. 北京:中國水利水電出版社, 2012.

 ?。?] 趙鳳申, 李愛芹, 吳文祥. 工業(yè)機器人嵌入式示教盒設(shè)計[J]. 電焊機, 2011, 41(12): 9-12.

 ?。?] 沈躍, 王家鼎. 基于ARM技術(shù)的CAN總線和以太網(wǎng)間的互聯(lián)設(shè)計[J]. 電子技術(shù)應(yīng)用, 2006, 32(5): 56-59.

 ?。?] 余修武, 劉嵐. USB接口技術(shù)在嵌入式系統(tǒng)中的應(yīng)用研究[J]. 電子技術(shù)應(yīng)用, 2008, 34(10): 151-154.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。