楊林超 張新鋒 李超 王巖
摘 要:針對工廠室內(nèi)復(fù)雜情況下的清掃需求,設(shè)計了機(jī)器人控制系統(tǒng)硬件架構(gòu),采用激光雷達(dá)及雙目攝像頭定位與融合控制算法相結(jié)合規(guī)劃機(jī)器人行走路徑,提出了以STM32F407單片機(jī)為控制核心、多傳感器融合的掃地機(jī)器人控制系統(tǒng),能夠?qū)崿F(xiàn)機(jī)器人按照劃路徑進(jìn)行作業(yè),并對障礙物進(jìn)行自主檢測及自主避障,研究了掃地機(jī)器人工廠室內(nèi)環(huán)境下的自主行走等問題。在自主作業(yè)的基礎(chǔ)上,增加了軟件抗干擾控制技術(shù),解決機(jī)器人無法進(jìn)行判斷的情況,提高了系統(tǒng)運(yùn)作的穩(wěn)定性以及安全性,實現(xiàn)復(fù)雜環(huán)境的巡回作業(yè)。
關(guān)鍵詞:單片機(jī);自主定位;激光雷達(dá)
中圖分類號:TP391.41?????? 文獻(xiàn)標(biāo)識碼:A文章編號:1001-5922(2022)01-0106-05
Hardware architecture design and control system of sweeping robot based on STM32 microcontroller
YANG Linchao1,ZHANG Xinfeng1,LI Chao2,WANG Yan2
(1.Nanyang Cigarette Factory,Nanyang 473007,Henan China;
2.Henan Central Line Electronic Technology Co.,Ltd.,Zhengzhou 450003,China)
Abstract: AbstractIn this paper,according to the needs of cleaning under complex situation in the factory,the hardware architecture of robot control system was designed.The walking path of the robot was planned by the combination of radar and binocular camera positioning with fusion control algorithm,this paper put forward a new control system based on the control core of STM32F407 and multi sensor fusion sweeping robot.The robot was able to follow the path for its work and automatically detect and avoid obstacles.It also studied autonomous walking in indoor environment of factory for floor sweeping robot etc.On the basis of autonomous operation,software anti-interference control technology was added to solve the problem that the robot couldn′t judge.It improved the stability and security of the system and realized the tour work under complex environment.
Key words: single-chip microcomputer;automatic positioning;laser radar
現(xiàn)代科技的飛速發(fā)展,使人工智能與人類生活、生產(chǎn)結(jié)合程度越來越緊密。工業(yè)機(jī)器人的出現(xiàn)便是其最具代表性的結(jié)果之一?,F(xiàn)代工業(yè)機(jī)器人是一種基于機(jī)器視覺、傳感器和先進(jìn)算法的現(xiàn)代工具,能夠極大地降低工業(yè)生產(chǎn)、百姓生活中的人力成本。掃地機(jī)器人是一種家用機(jī)器人的典型代表,能夠在居家環(huán)境下自動對房屋內(nèi)部地面等進(jìn)行清掃,具有高度的靈活性。
掃地機(jī)器人的主要功能設(shè)計在于機(jī)器人自主尋路、自動規(guī)避障礙等,是一種非常典型的自動化、智能化機(jī)器人。現(xiàn)代掃地機(jī)器人通常由硬件本體、軟件控制系統(tǒng)、智能傳感系統(tǒng)以及伺服驅(qū)動系統(tǒng)組成,其中,軟件控制系統(tǒng)是掃地機(jī)器人開展工作的核心。本文以掃地機(jī)器人為例,設(shè)計了一種基于STM32F4系列單片機(jī)的掃地機(jī)器人系統(tǒng),對機(jī)器人的控制系統(tǒng)硬件架構(gòu)設(shè)計進(jìn)行研究,旨在優(yōu)化該類型機(jī)器人結(jié)構(gòu),為掃地機(jī)器人產(chǎn)業(yè)發(fā)展提供借鑒。
1 總體設(shè)計方案
本文選擇了32位低功耗的STM32F407單片機(jī)作為本次設(shè)計掃地機(jī)器人伺服控制系統(tǒng)軟件主控CPU。該單片機(jī)以ARM Corex-M7為內(nèi)核,具有工作主頻高、可超頻、運(yùn)行速度快以及指令集簡單等優(yōu)勢。該單片機(jī)在進(jìn)行大量浮點運(yùn)算時能夠獲得遠(yuǎn)高于一般非FPU 芯片的計算效率。同時,該單片機(jī)的操作指令較為簡單,并不需要像其他類型單片機(jī)一樣必須遵循IEEE 745 標(biāo)準(zhǔn)進(jìn)行嚴(yán)格的浮點運(yùn)算指令編碼制定,而是僅需幾條簡單的操作指令便可完成運(yùn)算,在融入DSP(Digital Signal Processing,簡稱DSP)指令集的基礎(chǔ)上大幅提升了單片機(jī)的運(yùn)行效率。
STM32F407系列單片機(jī)可以對掃地機(jī)器人伺服控制系統(tǒng)每個模塊進(jìn)行單獨的控制。例如,STM32F407系列單片機(jī)可以對系統(tǒng)時鐘電路和復(fù)位電路進(jìn)行單獨控制,不受系統(tǒng)整體約束;其單片機(jī)可以對電源模塊進(jìn)行單獨控制,決定是否進(jìn)行系統(tǒng)供電,是否選擇關(guān)閉某些模塊工作等。此外,STM32F407系列單片機(jī)還可以通過控制電機(jī)驅(qū)動模塊內(nèi)部電路的通斷進(jìn)而控制掃地機(jī)器人4個車輪中的某一個輪或某幾個輪的前進(jìn)、后退等功能,用以完成掃地機(jī)器人的前進(jìn)、后退、轉(zhuǎn)彎等功能。STM32微控制器掃地機(jī)器人控制系統(tǒng)如圖1所示。
1.1 信號檢測模塊
由圖1所示,信號檢測模塊由激光雷達(dá)模塊、超聲波模塊、水位檢測模塊、轉(zhuǎn)向編碼模塊、雙目攝像頭模塊、陀螺儀模塊、觸摸屏模塊等,分別用于掃地區(qū)域地圖搭建、避障、水量檢測、轉(zhuǎn)向角度檢測等,以完成機(jī)器人所需信息檢測綜合控制,然后按照規(guī)定的區(qū)域自動完成掃地功能。
激光雷達(dá)模塊的主要作用,是對掃地機(jī)器人每一幀掃描過程中的圖像反映出的機(jī)器人姿態(tài)進(jìn)行捕捉。當(dāng)掃地機(jī)器人前端傳感器獲取所處地區(qū)的地圖概況以及機(jī)器人的姿態(tài)信息以后,后端會根據(jù)前端所給出的激光雷達(dá)數(shù)據(jù)進(jìn)行不斷的修正處理地圖信息等,以便在不斷的修正完善中獲取全域地圖。
超聲波模塊采用IO口TRIG觸發(fā)測距,通過測距結(jié)果給STM32模塊提供至少10 μs的高電平信號。之后,超聲波模塊會向STM32模塊自動發(fā)送8個60 kHz的方波,系統(tǒng)則通過自動檢測模塊自動對返回信號進(jìn)行處理;若有信號返回,則繼續(xù)通過超聲波模塊中的IO輸出一個至少10 us高電平。其中,TRIG觸發(fā)測距=(高電平時間×聲速)/2,聲速為340 m/s。本模塊使用方法簡單,通過該方法不斷重復(fù)地進(jìn)行周期測距,即可以達(dá)到掃地機(jī)器人移動測量的值。
雙目攝像頭模塊采用Digilent公司出品的VmodCAM攝像頭模塊。該模塊上搭載有兩個Micron公司的MT9D112 CMOS圖像傳感器(本系統(tǒng)中用到1個)。該傳感器最高支持1 600×900分辨率,采用IIC的配置協(xié)議,并且內(nèi)置PLL鎖相環(huán),能夠產(chǎn)生嚴(yán)格精準(zhǔn)相位的控制時鐘,達(dá)到高速高精度的目的。
陀螺儀模塊,陀螺儀是一種能夠?qū)\(yùn)動物體的運(yùn)動方式、運(yùn)動距離等進(jìn)行精準(zhǔn)定位和控制的現(xiàn)代精密儀器。陀螺儀在手機(jī)、航空、現(xiàn)代工業(yè)中的應(yīng)用程度極為廣泛,是一種常見的慣性導(dǎo)航儀器。本文中的陀螺儀模塊主要采用MPU6050模塊制備而成,具有結(jié)構(gòu)緊湊、靈敏度高等優(yōu)點。系統(tǒng)工作室,陀螺儀模塊中的MPU6050模塊會自動搜集掃地機(jī)器人工作狀態(tài)的原始運(yùn)動數(shù)據(jù)并對運(yùn)動數(shù)據(jù)進(jìn)行角度化轉(zhuǎn)化,得到掃地機(jī)器人的立體運(yùn)動坐標(biāo)。
本文所使用的陀螺儀采用MPU6050模塊,當(dāng)?shù)玫組PU6050的原始數(shù)據(jù)時,接下來進(jìn)行數(shù)據(jù)處理,利用數(shù)學(xué)方法把它們轉(zhuǎn)換成角度。常用的方法有:一階互補(bǔ)濾波、清華角度濾波、卡爾曼濾波、四元數(shù)解算得到角度和直接利用MPU6050自帶的數(shù)字運(yùn)動處理器(DMP)直接得到角度。故可以直接利用MPU6050自帶的數(shù)字運(yùn)動處理器獲取數(shù)據(jù)。
工業(yè)觸摸屏模塊,工業(yè)觸摸屏是一種有別于一般手機(jī)、平板電腦的觸摸屏,其屏幕顯示率較低但是能夠在各種復(fù)雜環(huán)境下進(jìn)行工作。本文所使用的工業(yè)觸摸屏采用HMI接口,通過觸摸屏完成人機(jī)交互,顯示各種數(shù)據(jù),并向機(jī)器人發(fā)出命令,完成功能設(shè)置、數(shù)據(jù)上報、通信管理等,在控制系統(tǒng)中,具有關(guān)鍵的作用。
編碼器是一種實現(xiàn)快速調(diào)速的裝置。它通過光電轉(zhuǎn)換,可將輸出軸的角位移、角速度等機(jī)械量轉(zhuǎn)換成相應(yīng)的電脈沖以數(shù)字量輸出,用來測量轉(zhuǎn)速并配合PWM技術(shù)可以實現(xiàn)快速調(diào)速,是工業(yè)中常用的電機(jī)定位設(shè)備,可以精確的測試電機(jī)的角位移和旋轉(zhuǎn)位置。
開關(guān)量輸入模塊采用光耦LTV-357T,如圖2所示。其性價比較好,起到了很好的隔離、抗干擾作用。
工業(yè)觸摸屏、陀螺儀、激光雷達(dá)、超聲波均采用485通信方式,通信模塊如圖3所示。該通信模塊速度高、距離遠(yuǎn)、工作穩(wěn)定,很好的解決了多路高速通信工作。
網(wǎng)絡(luò)通信模塊如圖4所示。有線網(wǎng)絡(luò)通信模塊為高速通信模塊,可以連接攝像頭、激光雷達(dá)等高速模塊。
1.2 輸出控制模塊
輸出模塊主要完成各種電機(jī)控制,掃地、避障閃燈及按照設(shè)定的區(qū)域進(jìn)行規(guī)劃掃地,回到原點等功能。
通過里程計實時檢測行走路徑,建立極坐標(biāo),通過陀螺儀實時檢測機(jī)器人的前進(jìn)方向、旋轉(zhuǎn)角度、行駛速度等;融合激光雷達(dá)、雙目攝像頭確定機(jī)器人在所建地圖的坐標(biāo),由超聲波傳感器實現(xiàn)避障功能,防止與小體積物體或臨時移動物體相撞。并由觸摸屏進(jìn)行各種功能設(shè)置,且實時顯示機(jī)器人在所在地圖中的位置,通過顏色顯示地圖作業(yè)區(qū)域哪些已經(jīng)清掃,哪些區(qū)域沒有清掃和完成情況等。
開關(guān)量輸出完成各種執(zhí)行機(jī)構(gòu)及電機(jī)脈沖輸出,是系統(tǒng)的關(guān)鍵部件。開關(guān)量輸出模塊如圖5所示。
圖6為SRAM擴(kuò)展模塊,因為主控芯片內(nèi)部SRAM為192 kB,容量較小,需要外擴(kuò)2片SRAM存儲器,達(dá)到4 MB,用于臨時地圖的數(shù)據(jù)存儲。
圖7為外擴(kuò)FLASH ROM模塊,其容量為8 MB,因為主控芯片內(nèi)部FLASH為1 MB,不能保存大量的非易失數(shù)據(jù);外擴(kuò)8 MB存儲器用于存儲地圖數(shù)據(jù),斷電后數(shù)據(jù)不丟失。
1.3 通信模塊
通信模塊由WIFI 模塊完成與上位機(jī)及手機(jī)的通信,通過485轉(zhuǎn)WIFI模塊實現(xiàn)非接觸設(shè)置、通知、控制等功能。
通信模塊可以在近距離內(nèi)實現(xiàn)實時通信功能,上位機(jī)通過WIFI通信控制機(jī)器人的各種運(yùn)動行為,并實時獲取機(jī)器人的各種實時數(shù)據(jù),在近距離通信表現(xiàn)出穩(wěn)定、可靠、快速,能及時完成通信任務(wù),保證機(jī)器人正常作業(yè)。
2 軟件設(shè)計
掃地機(jī)器人的軟件設(shè)計包括主程序、電機(jī)驅(qū)動程序、傳感器檢測系統(tǒng)程序、通信模塊程序、觸摸屏交互模塊程序和工作狀態(tài)模塊程序。本文對程序采用模塊化的設(shè)計,以確保各個模塊都正常工作,然后在進(jìn)行整個系統(tǒng)的測試。
2.1 輸入傳感器軟件設(shè)計
掃地機(jī)器人通過各種傳感器檢測外部各種工作狀態(tài),主要有環(huán)境檢測、障礙物檢測、水位檢測、地圖定位及轉(zhuǎn)向檢測等。
機(jī)器人通過檢測輸入信號,確定機(jī)器人的前進(jìn)工作路線選擇,使機(jī)器人能按照正確的方式及路徑進(jìn)行工作。
2.2 輸出執(zhí)行機(jī)構(gòu)
輸出執(zhí)行機(jī)構(gòu)包括各種控制電機(jī)、閃燈、掃地盤上升下降機(jī)構(gòu)。
輸出執(zhí)行機(jī)構(gòu)完成機(jī)器人的前進(jìn)、倒退、轉(zhuǎn)彎、避障等功能。
圖8為本設(shè)計系統(tǒng)的掃地機(jī)器人的工作流程主序圖。
先將機(jī)器人上電,之后程序進(jìn)行系統(tǒng)的初始化、串口的初始化配置以及加速度傳感器的初始化,再進(jìn)入while主循環(huán)中;使用超聲波傳感器掃描附近的物體距離遠(yuǎn)近,并判斷能否需要避障操作。之后程序進(jìn)行系統(tǒng)的初始化,將各種執(zhí)行機(jī)構(gòu)進(jìn)行初始化位置設(shè)置,同時讀取當(dāng)前地圖狀態(tài)并保持靜止,不斷的循環(huán)判斷是否有觸摸屏連接或者是否有模式切換按鍵被按下;如有觸摸屏連接,則進(jìn)入觸摸屏控制模式,通過串口接收觸摸屏控制指令,判斷不同指令,然后根據(jù)指令實現(xiàn)不同作業(yè),完成前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)等動作;如有WIFI連接并接收上位機(jī)指令,同時機(jī)器人慢速行駛,通過激光雷達(dá)來檢測機(jī)器人的前、后、左、右等與物體的間距等;如果測得的前方障礙物距離在50 cm之內(nèi)為后退,在50~150 cm內(nèi)為跟隨或轉(zhuǎn)向避障,調(diào)整機(jī)器人行進(jìn)至合適的位置,然后使用雙目攝像頭判斷周圍環(huán)境,直到完成整體作業(yè),返回原點。之后,再檢測水位來決定是否加水,并排放污水;檢測電池狀態(tài),決定是否需要充電。
軟件設(shè)計控制系統(tǒng)的軟件編程環(huán)境為 MDK5.25,軟件算法主要采用ROS(Robot Operating Syetem,簡稱ROS)算法。它是一個較為復(fù)雜的系統(tǒng)算法,再結(jié)合SLAM(Simultaneous Localization and Mapping,簡稱SLAM)算法完成機(jī)器人的地圖建立及路徑識別、位置定位、原點定位及返回。
3 結(jié)語
實驗結(jié)果表明,本文采用算法ROS及SLAM在定位平均相對誤差較小時,有不理想的定位精度,同時具有較快的響應(yīng)速度。由于算法能夠自適應(yīng)地圖構(gòu)建,合理規(guī)劃掃地路徑、及時環(huán)境檢測及避障,取得了較好效果。但是,還有不足之處,需進(jìn)一步提高定位精度。
【參考文獻(xiàn)】
[1]翟延忠,翟寶蓉,馬強(qiáng),等.基于STM32的人機(jī)交互終端的設(shè)計[J].儀表技術(shù)與傳感器,2020(2):105-109.
王宜瑜,宋樹祥,王斌,等.嵌入式系統(tǒng)的多路步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計[J].計算機(jī)測量與控制,2019,27(9):76-79,84.
朱智勇.截癱下肢康復(fù)外骨骼的研究及其實現(xiàn)[D].南京:東南大學(xué),2017:1-2.
彭剛,袁兵.基于雙ARM Cortex架構(gòu)的移動機(jī)器人控制器設(shè)計[J].華中科技大學(xué)學(xué)報,2013,41(1):1-5.
王媛媛,劉海龍,蔡逸鋒.基于單片機(jī)的吸附式倉儲搬運(yùn)機(jī)器人研發(fā) [J].機(jī)電信息,2020(5):85-88.
胡洪鈞.基于PLC和觸摸屏的SCARA機(jī)器人控制系統(tǒng) 設(shè)計[J].制造業(yè)自動化,2019(5):98-101.
熊四昌,周赟濤.基于嵌入式的移動圖像監(jiān)控系統(tǒng)設(shè)計[J].計算機(jī)測量與控制,2018,26(4):82-84.