徐壯華 謝 宇 林宇豪 楊 操 鄧雨軒 秦 燕
(南通理工學院電氣與能源工程學院,江蘇 南通 226002 )
國務院發布《國家中長期科學和技術發展規劃綱要(2006—2020年)》,首次將智能服務機器人列入先進制造技術中的前沿技術[1]。但在較長時間內,由于技術和市場需求的限制,我國服務機器人發展較為緩慢。直到近年來,全球服務機器人在技術和需求領域全面爆發,市場增長速度遠遠超過了其他類型機器人。在2021年1月25日,習近平書記在世界經濟論壇“達沃斯議程”對話會上向世界承諾:中國將于2030年前實現碳達峰、2060年前實現碳中和目標[2]。
在此大背景下服務型機器人和光伏行業開始飛速發展。中國是一個旅游大國,經調研,近年來國內旅游人次屢創新高,疫情之前每年旅游人次超60億[3],但服務型機器人卻沒有專門針對旅游行業進行發展,該文所設計的光伏智能導游機器人可以很好地彌補這一空缺。
該文設計的光伏智能導游機器人改變了傳統導游的方式,解決了傳統導游行業人力成本高、人員情緒化和游客景點體驗感差的痛點。在越來越高的旅游需求刺激下,光伏導游機器人重新定義了導游工作,在領路、打招呼、講解等方面將以更有趣的方式面向游客,使用戶在進入時感受不一樣的服務。
供電模塊主要由鋰電池和CIGS薄膜太陽能電池板兩部分構成,蓄電池是導游機器人運行時的主要供電來源,CIGS薄膜太陽能作為輔助能源對電池進行充電或者直接供應負載運行,該電池板的轉換效率可達15.7%,最好可達23%,質量較輕,發電效率是正常電池板的3倍,可以很好地為負載或者蓄電池提供輔助功能。
供能采用雙電瓶輪流供電方式,即蓄電池a和蓄電池b。利用控制STM32單片機的PA0接口檢測2塊電瓶的電壓信號,先由ADCO804對采樣來的電壓模擬信號進行A/D轉換,轉換結果送至單片機PAO口,判斷當前2個蓄電池的狀態。鋰電池在充、放電的過程中,內部會不斷進行化學反應,內部電阻不穩定,有可能會導致電壓信號不穩定。因此每隔5秒進行一次電壓檢測,每次連續采樣5次進行電壓比較,蓄電池a或者b必須連續3次高于另外一蓄電池檢測的電壓值,并高于可持續穩定運行的電壓AD值,才可確定哪個蓄電池進行供電,另外一個蓄電池則由CIGS太陽能電池板進行充電。測試試驗表明,充滿電時電源AD閾值為120~130左右,當電源電壓AD值高于70時,機器人可穩定運行。
1.2.1 避障傳感器選擇
避障模塊采用的是HJ-IR2紅外避障與HC-SR04超聲波避障相結合的方式,選用2種傳感器相結合是因為超聲波傳感器不受戶外灰塵、光、薄霧等因素的影響,但是超聲波傳感器在感應熱量活物方面、測量導游機器人與物體接近度的精度方面比不上紅外傳感器,因此選擇二者相結合的方式比單獨使用效果更優。并且二者的正常工作電壓都在3.3V~5V,控制系統也可以相互兼容。超聲波探測器的探測角度在15°~20°,探測盲區值在2 cm~4 cm,探測范圍在2cm~400cm,紅外探測角度范圍在0°~35°,探測盲區在2cm~4 cm,二者探測周期都為200 ms,探測延時也都為0.01ms,在各項數據上的相似性也可以很好地兼容,并且可以通過合理的布局解決盲區的問題。
1.2.2 避障傳感器布局
傳感器的布局是由8個紅外傳感器和8個超聲波傳感器組成的。紅外線傳感器的發射器和接收器具有一定的波束角,波束角如果受到環境的影響,回波信號沒有進入可接收范圍,則會產生誤判。同樣,超聲波傳感器也存在類似問題,解決的辦法是將傳感器按一定位置布局,減少盲區范圍,傳感器布局如圖1所示。

圖1 傳感器分布網絡
圖1中實線部分為機器人不規則的底盤驅動外形圖,點畫線表示的則是超聲波傳感器的布局,即按照圓周分布,且發射器和接收器交錯放置,其中R1~R8代表的是8個發射器,T1~T8是8個接收器。紅外傳感器即在車體的上層和超聲波傳感器的發射端相對應,每一個發射器對應一個方向,即:從R1~R8分別對應前、左前、左、左后、后、右后、右和右前。同理,每個紅外傳感器也對應一個方向。
1.2.3 避障系統設計
超聲波和紅外傳感器的VCC、GND引腳分別接入控制控板的Vdd、GND,它們各自的Trig、Echo和OUT引腳分別接入STM32單片機的PA1和PA2等16個端口。因為2個感應器的發射波形即返回路徑的差異使紅外感應器近距離檢測的準確度高于超聲波傳感器,于是就需要在離障礙物3m~4m時使用STM32的中斷技術,以確定超聲波傳感器所檢測的數據為避障優先級別,在離障礙物的1.5 m~3 m時判斷超聲波傳感器探測的數據位為避障優先級別,在離障礙物1.5 m~3 m時,以紅外傳感器的避障數據為優先處理級別。
避障開始時,即R1~R8發射40 kHz的超聲波脈沖,在探測的3 m范圍內沒有障礙物時,輸出為高電平即為1,小車按照原定道路一直前行。當在1.5 m~3 m檢測到障礙物時,超聲波發射的40 kHz被接收器接收回來,即T1~T8,經過集成芯片比較放大后,進行輸出低電平即為0。這時將分布在光伏智能導游機器人前、左前、左、左后、后、右后、右和右前8個方位傳輸回STM32的電壓數據進行電壓比較,比較出最優轉動方向,驅動其余模塊進行配合工作。當檢測距離在1.5 m以內,光伏導游機器人進行后退或者停止等待,避障流程圖如圖2所示。

圖2 避障流程圖
路線規劃模型主要采用了即時定位和地圖建模技術(Simultaneous Localization And Mapping,SLAM),通俗一點來說就是機器人可以在陌生的自然環境中從任何地點出發工作,在工作中通過對周圍環境的測量判斷自身方位、姿態和運動軌跡,并同時構造出室內地圖。它主要由傳感器數據、前端里程計、后端優化以及地圖構建4個子模塊構成。
當機器人開始工作時,先由位于機器人底盤的2D激光傳感器LMS400發射端發射激光探測周圍環境,將采集到的數據通過ROS上位機傳輸回STM32單片機。
通過運動方程(由k-1時刻的位姿得到k時刻的位姿,如公式(1)所示)和觀測方程(機器人在位姿點xk看到某個路標點yi,產生一個觀測數據Zk,j,如公式(2)所示)精確地計算出Xk和Zk,j的值。
式中:vk為輸入;wk為運動傳感器的噪聲。
式中:vk,j為觀聲。
前端里程計主要是為了計算機器人在相鄰時間的運動動作,用方位和姿勢表征,而每時刻方位和姿態姿組合即為其具體的運行路徑,所以用前端里程計就完成了對運動過程Xk圖的具象化。后端優化是SLAM的核心,其子模塊在前端根據機器人實時的位移、狀態及回環檢測的數據具體設計路徑和地圖,于是后端優化就采用了Gmapping方法。而Gmapping方法是一種采用了2D激光雷達的RBPF(Rao-Blackwellized Particle Filters)方法進行二維柵極圖建模的SLAM方法。Gmapping可以實時構建室、內外環境地圖,在小場景中計算量少,且地圖精度較高,對激光雷達掃描頻率要求較低。但Gmapping算法無法和傳統的回環檢測兼容,所以在構建二維柵格地圖存在一定的漂移距離,經模擬數據顯示漂移距離在2 m左右。考慮景點人員嘈雜,難免與機器人發生碰撞,所以在可接受范圍之內。
完成并輸出二維柵格地圖時,就要開始進行對景區具體的規劃,考慮景區道路情況復雜,采取了全域路徑規劃與局部路徑規劃相結合的方式。在全域規劃中使用RRT算法,它是一個基于隨意采集的路徑搜索算法。通過狀態空間的隨機采樣點,不斷在空白區域進行搜多,進而尋找到可行路徑。由于是隨機采樣,因此不一定是最短路線,但還有局部路線規劃進行輔助,即通過激光傳感器實時數據和DWA算法不斷構建動態窗口,以構建出最優游覽路線,并不斷與全局規劃的路線進行對比,更新全局規劃路線中沒有的信息。這樣不斷反復更新直至局部地圖信息全部更新到全局路線規劃中,此時柵格地圖才算全部構建完成。
該設計的交互模塊主要由語音交互模塊以及觸控屏組成。語音交互模塊中集合了語音識別、自然語言處理、語音合成、語音播報和語音喚醒功能,主要由控制模塊、SYN7318語音芯片模塊和收放模塊3個子模塊組成。
語音模塊開始工作時,可以通過喚醒詞喚醒模塊進行工作。但由于語音芯片SYN7318的限制,因此不能實現自定義語音喚醒,只能從芯片中特定的6個喚醒詞中選取一個作為本機器人采用的喚醒詞,即“百靈”。當喚醒詞的語音信息經由收放模塊中的麥克風收集后,再通過UART接口將語音信息傳遞給上位機,也就是控制模塊。控制模塊開始對SYN7318語音芯片模塊進行控制室命令的輸出,也就是開始識別語音信息的信號輸出。SYN7318語音芯片模塊完成內部的語音識別(內部語音識別功能之一是支持1000條語音詞條的識別,可以很輕松地理解語義,提供豐富的交互內容)后,由SYN7318語音芯片模塊中自帶的MP3進行播報,再通過UART接口將需要交互的語音信息發聵給控制模塊。控制模塊通過收放模塊中的喇叭播報語音信息(語音交互工作流程如圖3所示)。當在語音交互模塊識別不準確時,可以通過機器人正前方的觸控屏進行交互,觸控屏交互界面如圖4所示。

圖3 語音交互工作流程

圖4 觸控屏交互界面
電機驅動模塊采用2個RZ7899芯片作為驅動,每個芯片可承受3 A的驅動電流和3 V~25 V的驅動電壓,與主控制模塊STM32F101 R8T6單片機引腳相連,控制OUTA和OUTB輸出狀態。2路輸出均可通過不同電平組合獨立控制一個直流電機前進、后退、制動,見表1。

表1 電機正反轉控制參數設計
電機驅動模塊采用雙電機,智能導游機器人能夠實時監測其運行狀態,尤其是實時行進速度。由于該設計所采用的MC9SXS128系統板自帶一路脈沖捕捉電路,因此可以測出其中一個電機的速度,另一個電機的速度采用ITR8307芯片來測量。
調速模塊使用了由達林頓管構成的H型橋式電路的直流電機。用單片機控制達林頓管,使其工作在占空比可調控制的開關狀況下準確地調整電器轉速。這個回路由于作用在管子的飽和截止狀況下,因此效率特別高。而H型橋的電路由于能夠準確完成轉速和方位的調整,因此開關速率特別高,且安全性較好。
導游機器人通過后臺的大數據分析對游客們在各個景點的游玩時間與路程進行精準的速度調控,讓游客的游覽體驗感更舒適,并且游客還可以根據自己的需求在各個景點選擇游玩速度。
自檢模塊主要用于檢測各模塊的電流、電壓和溫度是否正常。出現異常情況時,導游機器人可以自動切斷電源,并把相關的異常情況發送到控制管理中心,以便管理人員能夠及時了解異常信息并做出處理。
自檢模塊的工作流程如下:開機之后,通過主函數調用系統自檢函數system_check( )進行自檢。程序啟動時會有大概500 μs的延時,這是為了防止系統在啟動時參數不穩定造成的讀數錯誤。在這之后程序會依序啟動各個模塊所在的A/D轉換器讀取信號,如果模塊故障或拔出,A/D轉換器的輸入電壓將為5 V,轉換結果將是255,并將此數據作為判斷傳感器是否正常的標準。
該文所設計的產品具有以下創新點:1)電源方面,采用光伏發電裝置,解決了因傳統火力發電帶來的環境污染和能源短缺問題,達到了節能減排、綠色環保的效果。同時采用自主設計的雙電池控制系統,續航能力強勁,是正常服務型機器人的1.5倍左右。2)在交互模式方面,采用雙交互模式,當語音交互不準確時,可以采用高分辨的顯示觸控屏,并在屏幕上顯示人流監控,游客可以根據自己的需求自由選擇導游機器人的行進速度,游客體驗感增強。讓游客更好地選擇游覽路線,還可以與游客進行簡單日常交流。3)采用了全局路線規劃與局部路線規劃相結合的方式,局部路線規劃實時用激光傳感器構建并傳輸數據與全局相對比,以達到精準的路線數據展示。
該文設計的是一款應用于旅游景點的光伏智能導游機器人,主要由供電模塊、避障模塊、路線規劃模塊、交互模塊、電機驅動模塊以及自檢模塊6個部分構成。選用STM32F101 R8T6作為主控制芯片,可以快速處理其他各模塊功能,例如語音指令、路線規劃和電機調速等。在向目的地前進的過程中,避障模塊可以做到快速識別并反應,以達到避障的目的。不僅如此,自檢模塊還可以在導游機器人出現故障或者完成一個導游任務之后進行自檢,將存在的問題及時反饋給控制管理中心。這不僅可以節省人力成本,在疫情期間還可以減少人與人之間直接接觸的風險,促進后疫情時代的旅游業發展。