龍佳樂,祝歡亮,陳健恒,茹道志,黃楚鑫,伍康敏,李鵬,張建民※,倪素茵,吳清秀
(1.五邑大學(xué)智能制造學(xué)部,廣東江門 529020;2.廣東彩立方科技有限公司,廣東江門 529030;3.深圳中科銀狐機器人有限公司,廣東深圳 518126)
在現(xiàn)代社會中,下水道遍布城市各地,構(gòu)成了復(fù)雜的下水道網(wǎng)絡(luò)。下水道在城市美化、飲食衛(wèi)生、防止疾病傳播、污水處理等方面起到重要作用。然而隨著時間的推移,下水道長期遭受污水的腐蝕以及堆積了各種各樣的垃圾、淤泥,會出現(xiàn)堵塞、破裂、產(chǎn)生有毒氣體等問題,對環(huán)境造成了極大的污染,阻礙了城市的生活排水,給人們的生活出行造成極大的困擾,所以定期對地下的排水通道進行排查、檢修、維護愈發(fā)重要[1]。但是由于大多數(shù)地下道操作空間狹小,不便于人們在地下道開展人工作業(yè),再加上環(huán)境惡劣,存在有毒氣體,長期呆在下水道作業(yè)會對人體的健康造成難以挽回的影響,研究出能夠代替人工開展地下作業(yè)的特種機器人成為了一種必然的趨勢。在地下管道內(nèi)使用的機器人具有體積小、靈活多變的行駛方式,能夠很好地在狹小的地下管道內(nèi)通行,并且可以實時勘測管道內(nèi)部的堵塞情況,完成疏通管道的工作。地下道勘測機器人能夠替代人們完成復(fù)雜繁瑣的管道勘測和疏通清理工作,適用于各種管道,具有廣闊的應(yīng)用市場。從20 世紀70 年代開始至今,發(fā)達國家對管道機器人的研究都有很大的進展。日本的東京大學(xué)的HIROSE 的團隊研究的Thes 系列的中小型管道的檢修機器人。日本的橫濱國立大學(xué)[2-3]通過大量采集數(shù)值與分析數(shù)值,然后建立機器人行駛數(shù)學(xué)模型,設(shè)計出能夠位置定位、清理污水的管道檢測機器人。為適應(yīng)未來社會的發(fā)展,復(fù)旦大學(xué)設(shè)計并成功制作了一臺地下道勘測機器人,使用了無線圖傳技術(shù)對攝像頭采集的圖像進行無線傳輸,在電腦上接收視頻圖像[4]。通過遠程控制技術(shù),實現(xiàn)機器人的遠程控制操作,驅(qū)使機器人移動與機械爪的控制夾取,并且可以通過非接觸感應(yīng)充電的形式,實現(xiàn)小車的無線充電的功能[5-6]。
圖1 所示為該地下道勘測機器人系統(tǒng)總體框架。包括電源管理電路、主控芯片電路、BTN7971B 電機驅(qū)動電路、74L244 邏輯芯片電路、機械臂控制電路、無線充電模塊、OLED 顯示模塊、電壓采集模塊等。地下道勘測機器人的底盤控制采用了以STM32RCT6為主控的單片機芯片和使BTN7971B 芯片設(shè)計電機驅(qū)動電路,電機的轉(zhuǎn)向與轉(zhuǎn)速通過單片機輸出的信號到電機驅(qū)動電路上實現(xiàn)。本文以74LS244 設(shè)計一個邏輯電路,作為主控芯片與電機驅(qū)動電路之間保護的橋梁。單片機的PWM信號經(jīng)過74LS244 邏輯電路,再轉(zhuǎn)接到驅(qū)動電路,起到隔離保護單片機的作用,避免電機啟動或堵轉(zhuǎn)時的電流過大,反沖倒灌從而燒毀單片機。機械臂的控制部分采用STM32F103C8T6 為主控的單片機芯片,機械臂的單片機通過串口通信與主控芯片連接,接收主控芯片發(fā)送的控制指令,再通過輸數(shù)PWM信號來控制機械臂的運作和攝像頭云臺的控制。在該系統(tǒng)運行的過程中,使用電壓采集模塊對電池的電量實時采集,使用一個OLED 模塊來顯示機器人運動的狀態(tài)信息和電池的電量。
圖1 系統(tǒng)總體框架
該機器人底盤的主控芯片采用意法半導(dǎo)體的32 位單片機STM32F103RCT6。STM32F103RCT6芯片是大量的微電子原件(二極管和三極管)集成電路,擁有32 位的處理器,外部的引腳共有64 個,最高運行頻率為72 MHz。還有工作性能穩(wěn)定、功耗低、內(nèi)部可使用的資源豐富等特點。該芯片程序存儲器的最大容量為256 kB,隨機存取容量存儲器(RAM)為48 kB。該芯片的功能強大,可為本機器人控制提供多個串口的使用,使其連接不同串口通信的模塊,多路PWM 輸出可以控制電機的轉(zhuǎn)速。ADC的采集通道,可以采集模擬量輸出模塊的電壓值。
機器人使用STM32F103C8T6 作為地下道勘測機器人的機械臂部分的主控制芯片,STM32F103C8T6 的最高運行頻率為72 MHz,程序存儲器的最大容量為64 kB,隨機存取存儲器(RAM)最大容量為20 kB,可以同時使用多個通用定時器,同時輸出多路的PWM信號,滿足機械臂控制功能的需求。該芯片擁有3 個串口通道,通過串口接收主控芯片的控制指令的數(shù)據(jù)信息,實現(xiàn)主控芯片對機械臂運動姿態(tài)的控制。機器人使用5 個自由度的機械臂,由5 個舵機共同構(gòu)成,通過改變舵機旋轉(zhuǎn)的角度,實現(xiàn)機械臂的運動姿態(tài)控制。機械臂和攝像頭控制云臺一共由7個舵機組成。
圖2 所示為BTN 電機驅(qū)動電路。機器人使用BTN7971B 芯片作為地下道勘測機器人的電機驅(qū)動電路的控制芯片。BTN 設(shè)計的驅(qū)動電路耐壓值可達到45 V,通過的最大電流達到80 A,由其構(gòu)成的H橋驅(qū)動電路,可以驅(qū)動較大功率的電機。BTN7971B集成的驅(qū)動IC具有自動保護的功能,在檢測到過壓、過流、過溫等致命故障時,可自動關(guān)閉或者調(diào)整內(nèi)部的開關(guān)管,強行停止或限流運行,起到保護驅(qū)動電機的作用。機器人地盤采用12 V 大扭矩的減速電機,該電機的啟動電壓電流比較大,其堵轉(zhuǎn)產(chǎn)生的電流大。BTN7971B 所設(shè)計H 橋驅(qū)動電路,可以輸出較大的電壓和電流,滿足驅(qū)動電機的參數(shù)要求。所以采用BTN7971B電機驅(qū)動芯片作為本系統(tǒng)的驅(qū)動芯片。
圖2 BTN電機驅(qū)動電路
無線充電模塊包括發(fā)射端和接收端,發(fā)射端與24 V的充電器的輸出接口連接,接收端與電源管理電路的無線充電的輸入口連接。無線充電模塊可以給電源管理電路供電和給鋰電池充電。在管道內(nèi)設(shè)置一個無線充電的接口,機器人就能夠在管道內(nèi)完成充電,便于機器人在管道內(nèi)長期工作,節(jié)省機器人在充電過程中搬運過程的時間和返程的電量消耗。
使用英偉達開發(fā)板作為機器人攝像頭采集視頻傳輸?shù)挠布糠?。在英偉達開發(fā)板上安裝Ubuntu 系統(tǒng),并在系統(tǒng)上配置了運行代碼所需要的Python 環(huán)境和各種協(xié)議所需的安裝包,采用TCP/IP 協(xié)議作為傳輸?shù)妮d體[7]。如圖3 所示。視頻傳輸?shù)倪^程首先是要確定上位機的IP 地址,在英偉達開發(fā)板的運行代碼上輸入上位機的IP 地址和設(shè)定的端口號。開始運行英偉達開發(fā)板上的程序,嘗試連接上位機的圖像接收服務(wù)器并判斷是否連接成功,并打印相關(guān)連接信息。如果連接成功,則開啟攝像頭,否則結(jié)束代碼進程。將攝像頭采集的每一幀圖片進行大小處理和壓縮處理,把壓縮的圖片數(shù)據(jù)轉(zhuǎn)換成numpy 格式的數(shù)據(jù),再轉(zhuǎn)成二進制數(shù)據(jù),獲取二進制數(shù)據(jù)的長度,將根據(jù)二進制數(shù)據(jù)長度打包轉(zhuǎn)換成TCP/IP 協(xié)議發(fā)送的字符串?dāng)?shù)據(jù)[8]。并將圖片的字符串?dāng)?shù)據(jù)到服務(wù)器上。然后就可以在上位機上看到下水道的詳細信息。
圖3 攝像頭采集視頻傳輸程序流程
地下道勘測機器人的機械臂主控芯片使用的是STM32F103C8T6 的單片機,通過串口中斷采集主控芯片發(fā)送的控制指令,采取中斷處理各種主要算法,其中包括控制機械臂運動和攝像頭云臺的運動。中斷處理可以提高程序的運行效率和確保程序運行的實時性。如圖4 所示。機械臂控制板上的芯片接收動作指令后,其根據(jù)指令選擇具體的機械臂或者攝像頭云臺的控制軸,再輸出對應(yīng)的PWM 值。通過修改PWM信號值來控制機械臂上的舵機旋轉(zhuǎn)不同的角度,從而控制機械臂的運動姿態(tài)[9]。在控制機械臂和攝像頭云臺的過程中,由于機械臂和攝像頭云臺的運動的范圍廣,很容易由于某個軸的舵機的旋轉(zhuǎn)角度過大,導(dǎo)致機械臂將機器人的控制板撞壞或者攝像頭云臺導(dǎo)致攝像頭損壞等因素,所以還需要對每一個軸的舵機進行范圍限制。
圖4 機械臂的控制代碼程序流程
4G 模塊基于4G 網(wǎng)絡(luò)、支持TD-LTE 和FDD-LTE 等LTE 網(wǎng)絡(luò)制式的通信模塊統(tǒng)稱。具有通信速度快、網(wǎng)絡(luò)頻譜寬、通信靈活等特點。4G 模塊在硬件上將射頻、基帶集成在一塊PCB 小板上,完成無線接收、發(fā)射、基帶信號處理功能。軟件上通過4GLTE 網(wǎng)絡(luò)傳輸,對下位機modbus 數(shù)據(jù)進行傳輸?shù)椒?wù)器端,支持心跳包,注冊包功能。并可支持軟件支持語音撥號、短信收發(fā)、撥號聯(lián)網(wǎng)等功能。4G 模塊通過高速聯(lián)網(wǎng),將所有終端業(yè)務(wù)數(shù)據(jù)及設(shè)備運行狀態(tài)實時傳輸?shù)綐I(yè)務(wù)中心,通過管理監(jiān)控平臺,實時監(jiān)測終端設(shè)備運行狀態(tài),因為機器人需要進行圖像回傳,數(shù)據(jù)量比較大,所以選擇高速的4G通信來進行數(shù)據(jù)傳輸,使機器人的實時通信得到保障[10]。
圖5 所示為遠程控制流程。遠程控制是地下道勘測機器人的核心部分,其原理是通過綁定PC 端的IP 地址和端口,等待與4G模塊連接,完成網(wǎng)絡(luò)通信。遠程控制負責(zé)控制整個機器人的行動,其中包括機器人的行駛、機械臂的夾取、攝像頭的角度調(diào)整等。上位機的遠程控制是通過TCP/IP 協(xié)議與4G 模塊連接,4G 模塊將獲取到的控制指令通過串口發(fā)送到主控單片機上,主控單片機根據(jù)控制指令執(zhí)行相應(yīng)的動作,從而實現(xiàn)遠程控制[11]。由于機器人的遠程控制是通過廣域網(wǎng)控制的,而電腦本身的IP 地址是在局域網(wǎng)內(nèi)的,所以要進行內(nèi)網(wǎng)映射,即把電腦的IP地址和端口號映射到外網(wǎng)上,4G模塊連接外網(wǎng)的IP 地址和端口號,實現(xiàn)與上位機的遠程部分網(wǎng)絡(luò)通信。遠程控制由3 部分組成,分別為小車控制、機械臂控制、攝像頭控制,均通過發(fā)送不同的控制指令來實現(xiàn)不同功能的控制。發(fā)送控制指令的方式有兩種,一種是通過鼠標點擊GUI 界面的按鈕,發(fā)送控制指令;另外一種是通過按下鍵盤的按鍵,發(fā)送控制指令。
圖5 遠程控制流程
圖6 所示為本系統(tǒng)配套的電腦端上位機,它是基于QT采用Python開發(fā)的,通過點擊按鈕實現(xiàn)控制機器人、攝像頭獲取圖像、機械臂控制等功能[12]。上位機的程序使用雙線程的形式,使用兩次TCP協(xié)議分別對遠程視頻監(jiān)控部分和遠程控制部分進行網(wǎng)絡(luò)通信,兩個線程獨立運行互不干擾。
圖6 上位機界面
機器人的遠程控制是通過廣域網(wǎng)控制的,而PC 端的IP 地址是在局域網(wǎng)內(nèi),上位機與4G 模塊通信需要將PC 端內(nèi)網(wǎng)的IP 和端口變成外網(wǎng)的IP 和端口,才可以實現(xiàn)廣域網(wǎng)的遠程控制。
通過使用路由俠端口映射軟件,可以把PC端內(nèi)網(wǎng)的IP地址與端口映射到外網(wǎng)上,端口映射界面如圖7所示。
圖7 路由俠端口映射界面
調(diào)試時先打開上位機軟件界面,在界面內(nèi)輸入PC端本地的地址和固定的端口號,點擊啟動圖像傳輸?shù)陌粹o,啟動圖像傳輸服務(wù)器。在英偉達開發(fā)板上,修改程序里面上位機的IP地址和端口號。然后運行圖像傳輸?shù)某绦颍却c上位機圖像接收服務(wù)器連接。如果通信連接成功,則發(fā)送圖像到服務(wù)器端。通過上位機界面的視頻顯示窗口可以判斷是否連接成功,如果有圖像顯示則代表已經(jīng)與服務(wù)器連接,客戶端和服務(wù)器都正常工作,如圖8所示。如果沒有則要檢查服務(wù)器與客戶端的IP 地址和端口號是否相同且是否連接在同一個局域網(wǎng)內(nèi)。圖9所示為地下道勘測機器人實物。
圖8 上位機遠程視頻傳輸
圖9 地下道勘測機器人實物
本文設(shè)計實現(xiàn)了基于STM32 的地下道勘測機器人智能控制系統(tǒng)。通過攝像頭采集圖像信息,上傳到電腦本地,實現(xiàn)遠程的視頻監(jiān)控,根據(jù)接收的圖像數(shù)據(jù),確定機器人下一步要執(zhí)行的動作和需要行駛的方向,通過上位機發(fā)送對應(yīng)動作控制指令到單片機上,單片機接收上位機發(fā)送數(shù)據(jù)并處理數(shù)據(jù)。然后根據(jù)指示命令實現(xiàn)遠程控制機器人的行動與機械臂的夾取。同時利用QT5 平臺開發(fā)上位機,上位機與機器人的控制系統(tǒng)通過TCP/IP 協(xié)議通信,使用該協(xié)議通信能夠通過網(wǎng)絡(luò)傳輸數(shù)據(jù),增大機器人遠程控制的范圍,最終實現(xiàn)下水道的高效清理。