瑚琦 雷航 夏志遷

摘要:設計一種基于WiFi遠程控制的智能監控機器人系統,包括硬件系統、軟件系統以及控制算法。機械結構利用SolidWorks建模,通過3D打印成型;硬件電路采用模塊化設計思想,以STM32F407VGT6微控制器為控制核心,外圍分布各功能模塊;軟件系統由下位機的μC/OS II嵌入式實時操作系統協同處理多任務,通過TCP/IP協議與上位機的手機端APP控制平臺,以及PC機控制平臺進行數據傳輸與交互。機器人控制遵循ZMP算法,通過對上位機指令的預執行及姿態解算使機器人穩定運動。應用實踐表明,機器人組裝方便、結構穩固,實現機器人與終端設備的視頻、指令同時傳輸,在其行走、跟蹤以及循跡過程中能保持穩定。系統設計方法可靠、切合實際,控制平臺穩定、易用性強。
關鍵詞:智能機器人;WiFi;視頻傳輸;圖像識別;ZMP;路徑規劃
DOIDOI:10.11907/rjdk.173299
中圖分類號:TP301
文獻標識碼:A 文章編號:1672-7800(2018)008-0061-04
英文摘要Abstract:An intelligent monitoring robot system based on WiFi remote control is proposed including hardware system,the software system and its control algorithm.The mechanical structure is modeled via SolidWorks and printed by the 3D printer.The circuit system takes the advantages of modularization design idea and uses microcontroller STM32F407VGT6 as the control core.Peripheral circuits are distributed around the control core.The software platform design contains the μC/OS II embedded real-time multitasking operating system,mobile phone client APP control platform and computer control platform.The embedded system transmits and interacts with the upper computer through the TCP/IP.The robot control follows the ZMP algorithm which requires the upper computer to perform pre-execution and attitude algorithm,so that the robot can maintain stability during the movements.Based on mass of practice,it is demonstrated that the robot is easy to assemble,and the video and instruction can be transmitted simultaneously between the robot and terminal equipment.In the meantime,the robot can be stable during walking and tracking,and the controlling platform is stable and can be easily used.
英文關鍵詞Key Words:intelligent robot;WiFi;video transmission; image recognition; ZMP; path planning
0 引言
近年來,隨著智能機器人研究的不斷深入,人形智能機器人在娛樂、服務、救援等領域有著潛在應用價值[1-2]。當前智能機器人進入“3.0時代”,智能機器人通過各種感應傳感器的相互配合,能夠將獲取的信息進行分析、融合,從而增強對工作環境的適應能力,以及自主學習能力與自治能力。目前機器人的智能技術水平尚處于初級階段,研究的主要核心問題有兩點:①增強智能機器人的自主能動性,即增強智能機器人的獨立性,且人機界面友好,目標是其日后能夠按照操作人員給予的指令準確、自主完成工作任務;②提高智能機器人對環境變化的適應能力[3]。程序預先設定的人形機器人只能以固定方式行走,行進中若發生錯誤則會使機器人的行走出現誤差,特別在環境發生變化的情況下十分明顯。通過WiFi視頻傳輸的方式獲取機器人周圍環境,配合圖像識別技術以及傳感器的應用,可讓機器人穩定實現智能跟蹤、環境監測、路線循跡等功能,通過無線遠程指令傳輸亦可對機器人進行遙控操作,對其行為進行協同管理。
1 總體設計方案
智能監控機器人總體設計方案如圖1所示。用戶可以使用手機端APP或PC端上位機通過無線局域網連接到機器人搭載的WiFi模塊,實現手機端或PC端與機器人的數據交互。機器人將圖像采集系統的圖像信息通過WiFi模塊傳輸到手機端或PC端,實現圖像信息的實時顯示。
2 硬件設計
2.1 機器人結構設計
智能機器人由頸關節、肩關節、肘關節、胯關節、膝關節和踝關節等16個關節構成,交由16個數字舵機進行控制,所使用的數字舵機可以基于中心位置±90°旋轉[4]。利用SolidWorks建立機器人零件3D模型并生成STL(STereo Lithography)文件,再通過Cura將模型切片[5],如圖2所示。
然后利用3D打印機打印出模型零件,打印完成后,零件與數字舵機嵌在一起得到各個關節,通過卡扣結構即可將各個關節、肢體拼接在一起。機器人在SolidWorks環境下的完整組裝效果如圖3所示。
2.2 硬件電路設計
智能機器人硬件電路采用7.4V鋰電池供電,一路接到舵機電源總線,另一路通過AMS1117穩壓芯片將電壓穩定到3.3V,為主控芯片和其它芯片供電。系統選擇STM32F407VGT6作為主控芯片,STM32F407VET6是意法半導體推出的增強型32位微處理器,其時鐘頻率達到168MHz,上面集成了1M的Flash存儲器,192 + 4 Kbytes SRAM,多達83個I/O端口,并包含IIC、USART、SDIO接口,可以滿足平臺需要并有充足的接口外接傳感器。WiFi芯片選用Marvell公司的88W8801,通過主控芯片的SDIO接口驅動,與上位機或手機APP建立連接后,可以進行數據傳輸,包括視頻傳輸和控制指令集傳輸。攝像頭采用OV(OmniVision)公司生產的1/4寸CMOS UXGA(1632*1232)圖像傳感器OV2640,OV2640自帶的JPEG輸出功能可大大減少圖像數據量,使其在網絡攝像頭、無線視頻傳輸等方面具有很大的優勢。通過主控芯片的DCMI(數字圖像接口)將圖像數據通過DMA(Direct Memory Access)直接送入WiFi收發的數據緩沖區,然后通過TCP/IP協議發送到上位機或APP[6]。
由于單片機I/O口與功率的限制,會影響機器人的自由度個數和功能擴展,甚至可能進一步影響機器人的動作連貫性。為此,設計了一種控制系統將主控模塊與舵機控制器分離,實現舵機控制系統的模塊化,舵機控制芯片選用NXP(恩智浦半導體)公司的PCA9685芯片,該芯片使用IIC總線接口,一片PCA9685芯片可以產生16路周期占空比可控的PWM波,精度為12位寄存器,控制旋轉角180°的舵機分辨率高達0.439°,芯片有6個地址腳可以控制I2C地址,主控芯片只需提供一個I2C接口即可擴展更多路的PWM舵機控制信號。硬件平臺系統框架如圖4所示。
3 軟件設計
3.1 下位機軟件設計
下位機軟件采用μC/OS-II(Micro Control Operation System Two)操作系統,μC/OS-II是一個可基于ROM運行、可裁剪、搶占式的實時多任務內核,具有高度可移植性,特別適用于微處理器與控制器。使用μC/OS-II創建任務后,任務會自動調度,自動調度時間為1ms[7]。下位機軟件流程如圖5所示。
系統啟動之后,首先初始化主控芯片STM32F 407VGT6的中斷向量表和系統時鐘,然后初始化OS部件及內存管理,創建主任務main_thread,開始線程調度。各線程完成的任務分別為:
(1)主任務:初始化一些底層驅動的雜項,包括IO口配置、systick配置、微妙級定時器初始化,然后初始化片上和片外外設,包括DCMI、DMA、PCA9685、88W8801 WiFi模塊初始化,并初始化lwip底層與WiFi相關部分,讀取flash中的數字舵機機械偏置參數。
(2)monitor線程:打印系統信息。
(3)open_camera線程:用于圖片采集與發送。
(4)tcp_server線程:接收客戶端連接。
(5)mqtt(Message Queuing Telemetry Transport)線程:用于mqtt連接和數據收發。
(6)tcp_ data transceiver線程:用于tcpip數據收發。
3.2 上位機軟件設計
手機端APP主要接收TCP/IP上傳的圖像信息以及發出控制指令,可以通過手機APP完成的設置和操作有:控制機器人行走及特定動作、接收圖像信息、控制云臺獲取更廣角信息及拍照。軟件操作界面如圖6所示。
PC上位機除手機APP功能外,主要增加了圖像處理功能,實現了對指定符號標記物體的識別。PC上位機操作界面如圖7所示。通過上位機連接到智能機器人后,可以選擇機器人的控制模式。控制模式狀態下,可以通過按鈕自主控制機器人運動;追蹤模式下,機器人可以追蹤目標并保持相對距離;循跡模式下,機器人可以通過識別符號按預定軌跡運動[8]。
上位機的功能實現主要由兩個線程完成:第一個線程需要完成的任務是由Winsocket接口接收WiFi模塊傳輸的數據流,整理圖像信息后,利用EmguCV的圖像處理算法鎖定符號的中心點坐標,根據坐標相對圖像中心的位置和云臺轉動角度,即可判定需要追蹤的物體方位[9-11];第二個線程需要完成的任務是根據圖像處理得到的信息以及機器人紅外傳感器、加速度傳感器傳回的信息進行路徑規劃,并將生成的指令發送給機器人[12]。
4 機器人穩定控制ZMP算法
穩定行走是雙足機器人行走的首要條件,在ZMP(Zero Moment Point,零力矩點)概念出現之前,對雙足機器人的行走穩定性判斷主要是根據重心投影點,即機器人的重心鉛垂線與地面交點。重心投影點能夠在一定條件下作為雙足機器人行走穩定性的判斷依據,尤其是在機器人靜態行走,且步行速度非常慢的條件下。隨著雙足機器人的行走速度越來越快,重心投影點對機器人穩定行走的判斷已越來越困難,鑒于該情況,南斯拉夫仿人機器人研究學者M Vukobratovic[13]于1969年提出一種新的雙足機器人行走穩定性的判據,即零力矩點判據。ZMP的提出有效解決了雙足機器人步行穩定性的判斷問題,大大加快了各種步行機器人和仿人機器人的研究進程。目前,國外非常成功的仿人機器人絕大多數都是根據機器人的ZMP軌跡進行步態規劃或行走反饋控制,比如本田公司的ASIMO(Advanced Step inInnovative Mobility)和索尼的 QRIO(Quest for Curiosity)都使用ZMP軌跡對機器人的行走姿態進行控制和反饋調整。
零力矩點是指地面上滿足地面反力的合力矩對x、y軸分量為零的點,用T(Tx,Ty,Tz)表示由地面反作用力繞某一點產生的合力矩,則零力矩點即滿足Tx=0,Ty =0的點[14]。與ZMP密切相關的一個概念是支撐多邊形[15](Support Polygon),即考慮能夠包含機器人足底與地面間所有接觸點的最小多邊形區域。在數學中,支撐多邊形也即這些接觸點集合的最小凸集。定義了ZMP和支撐多邊形,可給出ZMP穩定性判據:機器人行走過程中,其ZMP軌跡始終位于支撐多邊形中,則機器人行走穩定。在機器人行走過程中,單腳支撐期和雙腳支撐期交替出現,機器人支撐腳形成的凸多邊形穩定區域也隨之變化,如圖8所示。
其中,mi為機器人桿件i的質量,xi、yi、zi為機器人桿件質心位置在參考坐標系對應坐標軸上的分量,y··、x··、z··為機器人桿件i質心加速度在參考坐標系對應坐標軸上的分量,g為重力加速度。ZMP算法根據機器人下一步動作指令,先在上位機進行控制指令預執行,然后進行姿態解算,判定機器人預執行之后的ZMP點位置,再對ZMP點是否處于穩定區域進行判斷,根據判斷結果對指令作出調整或直接執行,從而對行走速度和姿態作出限制。算法判定流程如圖9所示。
在控制算法測試過程中,機器人能夠穩定完成行走及其它特定動作。機器人行走以及倒立過程中的4個關鍵步態如圖10所示。
5 結語
本文設計了一種基于WiFi遠程控制的智能監控機器人,機器人機械結構采用3D打印,可靠性高;嵌入式硬件系統以STM32F407為核心,采用Marvell公司的8801NS2 WiFi 解決方案,配備OV2640攝像頭模組、PCA9685多路舵機控制器、紅外傳感器與加速度傳感器;軟件采用μC/OSII實時操作系統,配合PC機上位機和手機APP與機器人進行數據傳輸與交互,結合ZMP控制算法使機器人在運動過程中處于動態平衡狀態。系統通過視頻信息的穩定無線傳輸,以及圖像處理提取有效信息,從而實現機器人的穩定追蹤、自動循跡與環境監測功能。
實驗證明,該系統穩定性、可靠性較高。下一步將在本文研究基礎上研究手機端APP圖像處理方案,以對系統進行完善,利用更優的圖像算法與機器人穩態算法實現任意物體取定及快速跟蹤。
參考文獻:
[1] ALY A,GRIFFITHS S,STRAMANDINOLI F.Editorial:towards intelligent social robots current advances in cognitive robotics[J].Cognitive Systems Research,2016,43:153-156.
[2] KOENEMANN J,BURGET F,BENNEWITZ M.Real-time imitation of human whole-body motions by humanoids[C].IEEE International Conference on Robotics and Automation,2014:2806-2812.
[3] 孫靜,張帆,王國慶,等.物聯網時代人工智能機器人的發展趨勢探討[J].科技經濟導刊,2017(31):6-7.
[4] 許曉飛,鄒建勇.人形機器人結構與動作的設計[J].電子技術,2015(2):27.
[5] 朱斌海.Pro/E-Cura 3D打印全流程技術研究[J].科技展望,2014(17):149.
[6] 翟偉良,李哲.基于WiFi無線傳輸遠程視頻監控的研究[J].電子科技,2016,29(9):68-71.
[7] LEI W,WANG Y,CHEN S,et al.The application of ucos-ii in embedded intelligent vision surveillance system[J].Microcomputer Information,2008,24(11):6-8.
[8] LANG H,WANG Y,CLARENCE W D S.Vision based object identification and tracking for mobile robot visual servo control[C].IEEE International Conference on Control and Automation.IEEE,2010:92-96.
[9] 孔德川,鄭麗媛.基于嵌入式系統的礦井無線視頻監控系統研究[J].礦山機械,2014(7):141-144.
[10] 任超,馮勇建.EmguCV圖像處理庫WP中的應用[J].計算機應用與軟件,2013,30(5):233-235.
[11] 郭永鋒,曹竟如,郭清宇.基于EmguCV的改進背景減除法運動目標檢測方法研究[J].中原工學院學報,2017,28(4):86-89.
[12] 劉燁.C#編程及應用程序開發教程[M].北京:清華大學出版社,2003.
[13] MIOMIR V,BRANISLAY B.Zero-moment point-thirty five years of its life[J].International Journal of Humanoid Robotics,2004 (1):157-173.
[14] YANG T,ZHANG W,HUANG Q,et al.A smooth and efficient gait planning for humanoids based on human ZMP[J].機器人,2017,39(5):751-758.
[15] 蔡自興.機器人學基礎[M].北京:機械工業出版社,2009.
[16] 付根平,楊宜民,陳建平,等.基于ZMP誤差校正的仿人機器人步行控制[J].機器人,2013,35(1):39-44.
(責任編輯:黃 健)