于振中,蔡楷倜
(江南大學 物聯網工程學院,江蘇 無錫 214122)
?
基于STM32的機器人仿真示教器設計
于振中,蔡楷倜
(江南大學 物聯網工程學院,江蘇 無錫 214122)
為了克服傳統機器人示教系統擴展性差且較為封閉等缺點,設計了一種基于STM32的機器人仿真示教器。該示教器以STM32作為主控芯片,引入μC/OSII實時操作系統,并采用以太網通信的方式,提高了系統的開放性。通過對利用計算機模擬得到的三維機器人進行仿真操控,驗證該示教器的手動控制和示教再現等基本功能。實驗結果表明,該仿真示教器可以靈活方便地練習機器人的示教操作,達到模擬操作實體機器人的效果,具有一定的實用價值。
示教器;仿真;以太網;開放性
當前,工業機器人已經廣泛應用于許多工廠的實際使用中,其中通過示教器對機器人的動作進行編程是最為普遍的做法。示教器是進行人機交互的重要工具,操作人員通過示教器對機器人的運動軌跡進行示教和編程,使機器人能夠完成要求的任務,在生產線上進行重復的勞作[1]。機器人的實際使用效果取決于動作示教的效果,因此示教器的性能和操作人員的經驗顯得尤為重要。
目前國內外的機器人示教系統大多由各大廠商針對自有產品進行設計研發,開放程度低,并且如果由缺乏經驗的人員直接操控實體機器人則容易存在安全隱患,影響示教的效果。學會操作機器人之前首先要學會使用機器人示教器,如ABB機器人公司推出虛擬示教軟件RobotStudio[2],其虛擬示教臺功能可以讓操作人員利用計算機學習ABB機器人示教器的操作,是一款出色的教學和培訓工具。但其操作需通過鼠標點擊計算機屏幕上的示教器圖形來完成,缺乏操作手持示教器時的真實感,并且軟件受封閉保護,難以進行后續的開發,有一定的局限性。
本設計研制了一款基于STM32的機器人仿真示教器,在降低成本的同時易于進行二次開發。在實現方法上采用觸摸屏與按鍵結合的輸入方式提高了示教器的人機交互性能。不僅如此,利用以太網通信的方式僅需一根網線即可實現與計算機相連,不僅方便快捷而且能實現跨平臺的通信,提高了系統的可擴展性。仿真示教器對計算機模擬得到的三維機器人進行操作,不僅可以用來練習機器人的示教,還可以利用該平臺驗證機器人的運動控制算法和機器人機械結構設計的合理性,具有良好的開放性,在節約成本的同時具有一定的實用價值。

圖1 示教器硬件結構
本文所設計的仿真示教器以STM32為主控芯片,主要包括觸摸屏、按鍵、指示燈和通信等模塊。其硬件結構如圖1所示。
主控制器芯片采用Cortex-M4內核的STM32F407,相比于STM32F103等Cortex-M3內核的芯片,其具有更明顯的性能優勢,被廣泛應用于工業控制領域。STM32F407強大的性能以及豐富的接口可以滿足示教器的使用需求,與使用嵌入式計算機等作為示教器的主控制器相比成本更低。不僅如此,開發人員可在STM32上運行操作系統,進而方便對系統任務進行調度和分配。
為了使示教器具備良好的人機交互體驗,采用“按鍵+觸摸屏”的輸入方式。觸摸屏采用的是分辨率為800×480的7英寸HMI觸摸屏。HMI觸摸屏的顯示界面制作方便快捷,STM32主控芯片僅需通過串口即可發送指令控制觸摸屏的顯示和獲取觸摸屏上控件的參數信息,大大提高開發效率的同時也簡化了硬件設計。由于示教器上的按鍵較多,若采用矩陣式鍵盤設計會占用大量的I/O口。故本設計的鍵盤電路結合了STM32F407自帶的USB OTG功能模塊以及HT82K628A標準鍵盤芯片,大大節省了主控芯片的I/O口資源,同時也保證了按鍵輸入的準確性。
示教器的通信功能至關重要,需保證傳輸的速度和準確性。STM32內置以太網MAC層,僅需外接一個PHY芯片和TCP/IP協議棧的支持就可以實現以太網通信。此處PHY芯片采用LAN8720,傳輸速率最高可達到100 Mb/s,并支持自動翻轉,無需更換網線即可更改交叉或者直連的連接方式。
2.1 主程序設計
由于仿真示教器的程序任務多且復雜,故在主程序的設計上引入μC/OSII實時操作系統對各任務進行分配和調度。μC/OSII以其完全公開的源代碼和優越的性能,得到了廣泛的應用[3-4]。
示教器的主程序設計主要分成以下三個部分:
(1)初始化。主要包括對系統時鐘、一系列外設和μC/OSII的初始化。
(2)創建啟動任務。主要用于創建以太網通信、鍵盤讀取任務等各種系統任務,創建完成之后掛起啟動任務。
(3)開啟μC/OSII,開始對系統的各個任務進行管理。
示教器的主程序流程如圖2所示。

圖2 主程序設計流程
2.2 以太網通信程序設計
示教器的通信效果關系到控制命令傳輸的準確性和及時性。傳統的串行通信技術作為一種靈活方便的通信方式一直被廣泛應用于IT和工業通信領域。例如常見的RS232接口,雖然其價格便宜、編程容易,但是傳輸速率較低,最高僅為20 kb/s,而且抗干擾能力弱。以太網的出現以其速度和性能的優勢,逐漸取代串行通信成為工業控制網絡建設的一種有效的解決方案。本設計中的示教器采用以太網通信,基于TCP/IP協議設計示教器的通信模塊。在網絡程序中具體采用套接字(Socket)的實現方法,Socket包括IP地址、端口號和TCP/IP協議,因其存在于通信區域中,程序員通過它可非常方便地訪問TCP/IP協議。Socket在Linux和Windows等操作系統中都可應用,能很好地實現基于TCP/IP的跨平臺通信,大大地提高了示教器的開放性和擴展性。
本設計采用LwIP作為TCP/IP協議棧,LwIP是瑞典計算機科學院的Adam Dunkels開發的小型開源TCP/IP協議棧,只需十幾KB的RAM和40 KB左右的ROM即可運行,適用于低端的嵌入式系統[5-7],可滿足示教系統網絡通信的使用需求。依據協議分層模型,TCP/IP可分成網絡接口層、網絡層、傳輸層、應用層,LwIP用來提供網絡層和傳輸層的功能,用戶可以在應用層實現所需的功能。
通過對LwIP的移植,結合實時操作系統,將網絡通信的接收任務和發送任務合并在一個系統任務來運行,并賦予較高的任務優先級,保證通信任務的及時性。任務程序流程如圖3所示。通信網絡架構采用主從式架構,示教器端作為服務器,連接時服務器進入監聽模式,等待來自客戶端的連接請求,當遠端IP地址和端口號正確即可連接成功。當示教器要發送信息時,將數據存入sendbuf數據緩存區,并置位發送標志位即可發送數據到計算機上。

圖3 示教器網絡通信任務流程
2.3 鍵盤讀取程序設計
當示教器使用STM32的USB模塊時需要有USB底層驅動程序的支持,ST公司提供USB例程可供移植參考,其中的“usb_usr.c”文件提供用戶應用層接口函數,用戶可以根據讀取到的鍵值編寫相應的執行程序[8]。
本設計引入了操作系統對任務進行管理,將USB讀取鍵值的程序作為一個任務來執行。USB的程序流程如圖4所示,按鍵作為人機交互的關鍵部件,需保證USB連接的穩定可靠。在USB的任務程序中不斷檢測連接狀態,當USB設備出現通信異常或者枚舉死機時需重新發起連接。部分按鍵需控制觸摸屏顯示,則通過串口發送指令信息。部分按鍵需發送指令至計算機端,則調用相應的網絡通信任務程序。

圖4 USB任務程序流程
在實際示教過程中,機器人是采用點動的運動方式,即按下方向鍵時機器人運動,松開方向鍵時停止。針對這種情況,在程序上檢測到按下方向鍵時發送對應軸的啟動指令,松開時發送停止指令,實現要求的同時也降低了軟件開發難度,節省主控制器資源。
相比傳統的示教系統,本設計中仿真示教器最大的特點是通過與計算機仿真平臺相連接,控制由計算機仿真得到的三維虛擬機器人模型,模擬進行機器人的操作練習。機器人的三維模型是通過SolidWorks軟件進行制作,然后經MFC導入基于OpenGL建立的工作環境中,從而獲得逼真的機器人模型。修改機器人模型和相對應的運動學控制算法即可對不同型號的機器人進行示教,使本文的仿真示教器具有良好的開放性。
3.1 以太網通信連接測試
要使示教器功能正常使用需保證通信連接的穩定可靠。本文中通信網絡架構采用的是主從式架構,計算機仿真平臺作為客戶端,需主動發起連接請求。在計算機上的仿真平臺中輸入IP地址和端口號,點擊“連接”,若符合示教器的內部參數設置則連接成功,在接收框中將顯示“連接服務器成功!”的提示,程序通過采用“EnableWindow(false)”的指令禁止對IP地址和端口號的修改,具體的示教器連接效果如圖5所示。當按下示教器的按鍵或點擊觸摸屏,會在接收框中看到示教器發送來的指令信息。通過實驗測試,示教器與計算機仿真平臺的通信連接成功,發送數據準確快速。

圖5 示教器連接效果
3.2 示教器功能測試
當示教器與計算機仿真平臺的以太網通信成功之后,即可對其主要的手動控制和示教再現兩個功能進行測試。通過示教器上的功能鍵將機器人當前的控制模式切換成手動控制,并將運動坐標切換為關節坐標。若按下鍵盤上的方向控制鍵即可觀察到機器人上對應軸的單獨轉動,松開則停止。如果切換運動坐標為直角坐標,按下方向控制鍵即可觀察到機器人的末端會沿著空間直角坐標系做直線運動。
示教再現是機器人示教器的一個重要功能,測試效果如圖6所示。操作過程可分為以下3個步驟:
(1)確定示教點位姿。通過示教器手動移動機器人到達指定的位置并按下鍵盤上的“示教”,示教點記錄框中按順序記錄著每個點的位姿信息。
(2)編輯動作指令。點擊觸摸屏進入程序編輯界面,逐條編輯動作程序指令,通過鍵盤切換選擇“MOVJ”的關節插補運動或者“MOVL”的直線插補運動,然后選擇該條指令運動到達的目標點序號,最后設置該條指令運行時的速度。在觸摸屏上和仿真平臺的“示教代碼框”中可以看到所編輯的程序指令。
(3)運行。當所有指令編輯完成后點擊鍵盤上的“確定”然后點擊“運行”,即可觀察到機器人根據示教的動作進行往復的運動。
實驗證明,該示教器可以通過簡單的操作達到示教機器人的效果,貼近實際使用的操作方式,并且機器人三維模型顯示逼真,運動流暢,可以達到教學和培訓的目的。

圖6 示教器測試效果
本設計采用基于STM32的主控制器和以太網通信方案,并引入虛擬仿真技術,設計了一款機器人仿真示教器。克服了傳統機器人示教系統的擴展性差、靈活性差等缺點。實驗結果表明,該示教器能靈活地對計算機仿真平臺
中的三維虛擬機器人進行控制并完成示教的任務,并且人機交互效果良好、控制反應迅速,達到了模擬操作實體機器人的效果。
[1] 辛鑫. 機器人手持智能終端系統的研發[D].天津:天津大學, 2012.
[2] CONNOLLY C. Technology and applications of ABB RobotStudio[J]. Industrial Robot, 2013, 36(6): 540-545.
[3] 陳果, 馮靜. ucos系統及其消息隊列詳解[J]. 電子元器件應用, 2011, 13(3): 38-43
[4] 王長清, 余丙濤, 潘德強. 基于STM32的逐陽帆控制系統設計[J]. 電子技術應用, 2015, 41(12): 25-27.
[5] 朱升林. 嵌入式網絡那些事:LwIP協議深度剖析與實戰演練[M]. 北京:中國水利水電出版社, 2012.
[6] 趙鳳申, 李愛芹, 吳文祥. 工業機器人嵌入式示教盒設計[J]. 電焊機, 2011, 41(12): 9-12.
[7] 沈躍, 王家鼎. 基于ARM技術的CAN總線和以太網間的互聯設計[J]. 電子技術應用, 2006, 32(5): 56-59.
[8] 余修武, 劉嵐. USB接口技術在嵌入式系統中的應用研究[J]. 電子技術應用, 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].微型機與應用,2016,35(23):38-41.
2016-08-15)
于振中(1980-),男,博士,副教授,主要研究方向:機電一體化技術。
蔡楷倜(1992-),通信作者,男,碩士研究生,主要研究方向:機電一體化技術。E-mail:tcckt@126.com。