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

  于振中,蔡楷倜

  (江南大學(xué) 物聯(lián)網(wǎng)工程學(xué)院,江蘇 無錫 214122)

       摘要:為了克服傳統(tǒng)機(jī)器人示教系統(tǒng)擴(kuò)展性差且較為封閉等缺點(diǎn),設(shè)計(jì)了一種基于STM32的機(jī)器人仿真示教器。該示教器以STM32作為主控芯片,引入μC/OSII實(shí)時(shí)操作系統(tǒng),并采用以太網(wǎng)通信的方式,提高了系統(tǒng)的開放性。通過對(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);開放性

  中圖分類號(hào):TP242.2文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.16747720.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í)際使用中,其中通過示教器對(duì)機(jī)器人的動(dòng)作進(jìn)行編程是最為普遍的做法。示教器是進(jìn)行人機(jī)交互的重要工具,操作人員通過示教器對(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)工具。但其操作需通過鼠標(biāo)點(diǎn)擊計(jì)算機(jī)屏幕上的示教器圖形來完成,缺乏操作手持示教器時(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)行操作,不僅可以用來練習(xí)機(jī)器人的示教,還可以利用該平臺(tái)驗(yàn)證機(jī)器人的運(yùn)動(dòng)控制算法和機(jī)器人機(jī)械結(jié)構(gòu)設(shè)計(jì)的合理性,具有良好的開放性,在節(jié)約成本的同時(shí)具有一定的實(shí)用價(jià)值。

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

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

圖像 007.png

  主控制器芯片采用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主控芯片僅需通過串口即可發(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ǎ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以其完全公開的源代碼和優(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ù)。

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

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

圖像 008.png

  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ū)域中,程序員通過它可非常方便地訪問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用來提供網(wǎng)絡(luò)層和傳輸層的功能,用戶可以在應(yīng)用層實(shí)現(xiàn)所需的功能。

  通過對(duì)LwIP的移植,結(jié)合實(shí)時(shí)操作系統(tǒng),將網(wǎng)絡(luò)通信的接收任務(wù)和發(fā)送任務(wù)合并在一個(gè)系統(tǒng)任務(wù)來運(yùn)行,并賦予較高的任務(wù)優(yōu)先級(jí),保證通信任務(wù)的及時(shí)性。任務(wù)程序流程如圖3所示。通信網(wǎng)絡(luò)架構(gòu)采用主從式架構(gòu),示教器端作為服務(wù)器,連接時(shí)服務(wù)器進(jìn)入監(jiān)聽模式,等待來自客戶端的連接請(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ī)上。

圖像 009.png

  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ù)來執(zhí)行。USB的程序流程如圖4所示,按鍵作為人機(jī)交互的關(guān)鍵部件,需保證USB連接的穩(wěn)定可靠。在USB的任務(wù)程序中不斷檢測(cè)連接狀態(tài),當(dāng)USB設(shè)備出現(xiàn)通信異?;蛘呙杜e死機(jī)時(shí)需重新發(fā)起連接。部分按鍵需控制觸摸屏顯示,則通過串口發(fā)送指令信息。部分按鍵需發(fā)送指令至計(jì)算機(jī)端,則調(diào)用相應(yīng)的網(wǎng)絡(luò)通信任務(wù)程序。

圖像 010.png

  在實(shí)際示教過程中,機(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é)省主控制器資源。

3示教器實(shí)驗(yàn)測(cè)試

  相比傳統(tǒng)的示教系統(tǒng),本設(shè)計(jì)中仿真示教器最大的特點(diǎn)是通過與計(jì)算機(jī)仿真平臺(tái)相連接,控制由計(jì)算機(jī)仿真得到的三維虛擬機(jī)器人模型,模擬進(jìn)行機(jī)器人的操作練習(xí)。機(jī)器人的三維模型是通過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ù)器成功!”的提示,程序通過采用“EnableWindow(false)”的指令禁止對(duì)IP地址和端口號(hào)的修改,具體的示教器連接效果如圖5所示。當(dāng)按下示教器的按鍵或點(diǎn)擊觸摸屏,會(huì)在接收框中看到示教器發(fā)送來的指令信息。通過實(shí)驗(yàn)測(cè)試,示教器與計(jì)算機(jī)仿真平臺(tái)的通信連接成功,發(fā)送數(shù)據(jù)準(zhǔn)確快速。

圖像 011.png

  3.2示教器功能測(cè)試

  當(dāng)示教器與計(jì)算機(jī)仿真平臺(tái)的以太網(wǎng)通信成功之后,即可對(duì)其主要的手動(dòng)控制和示教再現(xiàn)兩個(gè)功能進(jìn)行測(cè)試。通過示教器上的功能鍵將機(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所示。操作過程可分為以下3個(gè)步驟:

  (1)確定示教點(diǎn)位姿。通過示教器手動(dòng)移動(dòng)機(jī)器人到達(dá)指定的位置并按下鍵盤上的“示教”,示教點(diǎn)記錄框中按順序記錄著每個(gè)點(diǎn)的位姿信息。

 ?。?)編輯動(dòng)作指令。點(diǎn)擊觸摸屏進(jìn)入程序編輯界面,逐條編輯動(dòng)作程序指令,通過鍵盤切換選擇“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)證明,該示教器可以通過簡(jiǎn)單的操作達(dá)到示教機(jī)器人的效果,貼近實(shí)際使用的操作方式,并且機(jī)器人三維模型顯示逼真,運(yùn)動(dòng)流暢,可以達(dá)到教學(xué)和培訓(xùn)的目的。

圖像 012.png

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.

 ?。?] 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

 ?。?] 王長(zhǎng)清, 余丙濤, 潘德強(qiáng). 基于STM32的逐陽帆控制系統(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.

 ?。?] 趙鳳申, 李愛芹, 吳文祥. 工業(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.


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