999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于樹莓派機器人的ROS六麥模塊聲源定位系統

2022-12-28 04:49:56曹博宣寧成林何銳泓黃成龍林宇桐
關鍵詞:測量

曹博宣,寧成林,何銳泓,黃成龍,林宇桐

(南方醫科大學 生物醫學工程學院,廣州 510515)

聲音定位技術是通過聲學傳感裝置接收聲波,再利用電子裝置將聲音信號進行轉化處理,以此實現對聲源進行定位的技術。現代科技的日漸發展使聲音定位技術越來越受到重視[1]。這項技術也逐漸走進到日常生活當中,例如視覺追蹤,攝像機式的眼睛可以定位到聲源處;電視會議中通過接收發言者的語音信號,自動使攝像頭對準發言者等[2]。

本文基于聲音探測的定位原理,制作了利用聲音探測定位的實際應用裝置。

1 設計原理

聲源定位表現在兩個方面,一是確定聲源方位,二是確定聲源距離,在本應用中,先采用TDOA定位方法確定并測量聲源方位角度,再采用超聲波測距方法確定聲源距離使樹莓派機器人運動至聲源方位。

1.1 TDOA定位方法

TDOA是一種利用時間差進行定位的方法,通過測量聲音信號到達監測站的時間,可以確定聲源的距離。利用聲源到多個監測站的距離(以監測站為中心,距離為半徑作圓),就能確定聲源的位置。通過比較聲音信號到達多個監測站的時間差,就能做出以監測站為焦點、距離差為長軸的雙曲線,雙曲線的交點就是信號的位置[3],如圖1和圖2所示。

圖1 TDOA定位示意圖

圖2 雙曲線交會定位示意圖

TDOA是基于多站點的定位系統,因此要對信號進行定位必須有3個以上的監測站進行同時測量。本裝置使用六麥環形MIC陣列,每個麥克風即是一個監測站點,共有六個麥克風接收聲音信號。

1.2 TDOA定位算法

設(x,y)為聲源坐標,(xi,yi)為第i個聲音接收模塊的坐標。聲源和接收之間的距離為:

令Riy表示聲源模塊第i個接收模塊的距離差,則雙曲線定位中聲源(x,y)和接收(xi,yi)有如下關系:

求解上述非線性方程組要用到Chan算法[4],該算法是具有解析表達式解的非遞歸的雙曲線方程組解法,該算法的特點是計算量小,且不用設定初值,在視距環境下及噪聲服從高斯分布的信道環境下,定位精度高。該算法適合計算機運算。而且當聲音接收模塊為4個及以上時,該算法可利用所有TDOA測量值并取得更好的定位結果。綜上所述,Chan是一種比較適合本系統的算法[5]。

當有4個聲音接收模塊時,TDOA測量值數目多于未知量數目,因此,初始非線性方程組應首先轉換為線性方程組,然后采用加權最小二乘(WLS)算法得到一個初始解,再利用第一次得到的移動用戶終端估計位置坐標及附自U變量等已知約束條件進行第二次WLS估計,就能得到改進的估計位置[6],令Za=[ZTp,R]T,則:

誤差向量為ψ=h-Gaz0a。

第一次WLS所得:

第二次WLS所得式:

其中,zρ=[x,y]T

至此可以解出兩組坐標值,舍去值為負的那一組,剩下的即為最終坐標值。

上述TDOA算法已寫入麥克風陣列固件中,當麥克風陣列被喚醒后可以直接投入使用并識別聲源。

1.3 超聲測距

1.3.1 超聲波測距介紹

超聲波測距是一種不受物體自身色度和光線因素影響的非接觸檢測技術。與其他檢測儀器相比,它更環保,更抗熱、潮、粉末、高溫氧化等惡劣環境,具有維護少、高環保、牢靠性高、壽命長等特點[7-9]。

超聲波測距即將超聲波沿固定角度利用超聲波發射器進行發射,在發射初始時刻同步計數器進行時間的記錄。傳播超聲波的途中一旦遇到阻礙,迅速回傳。計時也會在接收器接收超聲波時終止。通過測試時間再換算出測試距離[10]。

本裝置使用的HC-SR04超聲波模塊,測試距離不大于4 m,測量精度可達到0.01 cm。

1.3.2 超聲波和激光測距算法

首先已知超聲波在25℃下的空氣中的傳播速度為340 m/s。

根據計時器記錄的時間t,可以計算出發射點距障礙物的距離s,即:

測距模塊就是基于這一原理實現測距的,一般稱之為時間差測距法。

圖像組件的激光測距原理與超聲波測距原理是一樣的。測距的公式表示為:

式中,C為超聲波在空氣中的傳播速度;T為測量距離傳播的時間差。

上述超聲波測距算法已寫入機器人中,。

2 硬件配置

硬件裝置主要由四大組件組成:定向組件、測距組件、圖像組件、人形機器人。定向組件包括六麥環形MIC陣列,實現角度測量和人形機器人的定向功能;測距組件包括HC-SR04超聲波模塊,實現距離測量功能;圖像組件包括N10激光雷達,實現機器人周圍環境二維圖像的繪制;人形機器人實現人臉識別功能。定向組件、測距組件和圖像組件分別與人形機器人實行電連接。通過計算機終端控制三個組件,控制過程由計算機語言驅動。系統主要部件連接示意圖如圖3所示。

圖3 系統主要部件連接示意圖

2.1 實驗組件

科大訊飛六邊形環形MIC陣列利用TDOA算法能識別前方360°的聲音信號(角度分辨率為1°),具備定向降噪收音功能,可開發語音定位控制功能。將其與機器人進行電連接,通過在終端編寫程序控制該組件,從而在終端輸出角度測量值,實現機器人對音源方位的判斷和聲源角度方位的測量。麥克風陣列實物圖如圖4所示。

圖4 麥克風板的實物圖

HC-SR04超聲波測距模塊可提供2~400 cm的非接觸式距離感測功能,測距精度可高達到3 mm[8]。實物圖如圖5所示。

圖5 超聲波模塊實物圖

輪趣科技的N10系列激光雷達能夠對周圍360°環境進行二維掃描探測。雷達內部使用無線供電和光通信,測量重頻為4.5 kHz。探測精度達到±3 cm,最大量程12 m,適用于機器人、無人機的精確定位和避障的應用場合。實物圖如圖6所示。

圖6 N10激光雷達實物圖

TonyPi智能視覺人形機器人以樹莓派4B為主控,采用Python語言和C++編程。搭載高清晰度廣角攝像頭,可后期開發人臉識別、顏色識別、視覺巡線等功能。將其與六麥環形MIC陣列、超聲波模塊和N10激光雷達電連接構成總體裝置,通過在終端編寫程序控制機器人,使機器人在收到聲音信號后能夠定向運動至聲源方位,實現對聲源的精確定位。同時需要注意機器人與控制終端應連接相同局域網才能使用該裝置。機器人實物圖如圖6所示。

圖7 機器人實物圖

2.2 裝置結構

六麥環形MIC陣列可接收信號范圍在其所在的三維空間內,但是其處于水平狀態時探測效果最好(即MIC陣列所在平面與xoy平面平行)。

超聲波模塊采用回聲測距,為保證測距精準性,其發射出的超聲波應與xoy平面平行,這樣測得距離為與聲源的水平距離。

N10激光雷達通過測量調制激光的發射與返回時間差來測量物體與雷達的相對距離,可以得到量程內周圍360度環境的二維平面信息。

最終組裝完成實物圖如圖8所示。

圖8 實物裝置圖

3 實驗準備

3.1 硬件與設備環境準備

硬件準備:

手扶機器人,使其基本站立(機器人開機前姿勢為半蹲,各關節是松弛的)。然后將機器人背面底部的樹莓派擴展板開關由“OFF”推動到“ON”。

網絡環境配置:

直連模式;操作為開啟機器人,使操作終端連接機器人產生的“HW”開頭的無線局域網,該局域網沒有密碼限制,操作終端可以直接連接,操作終端連接的局域網見圖9中紅色方框。

圖9 機器人產生的無線局域網

局域網模式;首先,建立記事本文件如圖10所示。

圖10 實現局域網模式連接需建立的記事本文件

其中hotspot name為個人局域網名稱,password為局域網密碼。

關閉該文件,將文件后綴從.txt改為.conf,將此文件復制到機器人儲存文件的目錄中,修改后文件與文件目錄如圖11所示。

圖11 修改后的記事本文件與文件目錄

另外開啟一個局域網,使操作終端與機器人同時連接于該局域網下,連接成功后可顯示操作終端與機器人的IP地址,如圖12所示。

圖12 局域網連接成功后設備參數

本文中操作采取局域網模式,因能連接外網,工作調試時更為方便。

3.2 功能文件準備

表1 功能文件準備及文件路徑

3.3 應用程序設計

為了定位聲源,應用程序通過init.launch文件開啟機器人節點,通過終端輸入喚醒詞激活麥克風陣列使其調用voice_control.cpp文件,實現語音喚醒麥克風陣列的功能。并由CMakeLists.txt文件實現C++并行執行python文件的功能,其中python文件包括Chaoshengbo.py(實現超聲波模塊測距)、action.py(實現機器人動作組)、FaceDetect.py(實現人臉識別)。同時并行開啟雷達節點,執行lsn10.launch(開啟雷達實現圖像繪制),在終端打開RVIZ輸出雷達點云圖。聲源定位應用流程圖如圖13所示。

圖13 聲源定位應用程序流程圖

3.4 機器人聲源定位功能的步驟

開啟電腦,打開vncviewer軟件,輸入機器人的IP地址以連接樹莓派機器人并進入虛擬機。

打開虛擬機終端,在其中輸入roslaunch xf_mic_asr_offline mic_init.launch指令開啟麥克風陣列初始化節點。

初始化節點后,超聲波測距模塊和麥克風陣列模塊自動開啟,如圖14所示。

圖14 測量模塊啟動成功

輸入麥克風語音陣列喚醒詞來激活麥克風陣列;喚醒詞是麥克風陣列錄入的可修改的語音關鍵詞,用于喚醒激活系統。本文中操作設置喚醒詞為“羅伯特轉過來”。激活麥克風陣列后,檢驗麥克風陣列對聲源定位的準確性以及機器人對聲源進行轉向的靈敏度,以機器人自身面對方向為0°基準給出聲源的角度方位。機器人轉至聲源所在的方位后自動執行chaoshengbo.py,測量聲源與機器人的距離;待機器人行至聲源時,運行FaceDetect.py文件,實現人臉識別功能,并能與聲源做出相應的交互,如鞠躬、揮手等動作;麥克風喚醒激活與測量數據返回,如圖15所示。

圖15 測量數據和人機互動結果

3.5 繪制圖像功能

打開一個虛擬機終端,在其中輸入roslaunch lsn10 lsn10.launch指令開啟雷達節點。

另外打開一個虛擬機終端,在其中輸入rviz指令,如圖16所示。

圖16 使用rviz指令繪制二維圖像

輸入rviz指令后,雷達星云圖自動打開。為了在雷達星云圖上更好地體現現實場景,測試過程中設計了2個實際場景,機器人實物圖與雷達星云圖對照如圖17、圖18以及圖19、圖20所示。

圖17 機器人實物場景1

圖18 雷達星云圖1

圖19 機器人實物場景2

圖20 雷達星云圖2

4 數據測量與分析

4.1 測量說明

數據測量過程中,將實驗者視作聲源,實驗者說出喚醒詞“羅伯特,轉過來”啟動裝置,機器人接收到聲音信號后進行語音回復“讓我看看你在哪”。隨后進行角度測量與距離測量,在終端輸出測量結果;輸出結果后,機器人定向運動至聲源所在方位(即實驗者所在方位),并與聲源做出交互動作。測量演示圖如圖21所示。

圖21 測量演示圖

4.2 角度測量

首先,按照前文硬件準備的操作來開啟機器人,實驗者說出喚醒詞“羅伯特轉過來”來開啟麥克風。

開機成功后,固定機器人,使其面對方向作為基準 0°。

設備調試完畢后,實驗者站在一定的角度方位說出喚醒詞,此角度為角度實際值θ。機器人收到指令后向聲源方位轉向,以機器人最終朝向為角度測量值β。機器人轉向動作結束后啟動人臉識別模式,以自身朝向方位為0°基準,頭部攝像頭分別向左右兩邊轉動15°以搜索聲源,檢測到聲源后做出動作與聲源進行交互。

角度測量在三維空間中的重現如圖22所示。

圖22 角度測量在三維空間中的重現圖

角度測量數據如表2所示。

表2 測量角度數據

圖22中y軸數據為角度測量值,x軸數據為角度實際值。紅色直線為函數y=x,藍色散點為測量數據。

圖23 角度測量值和角度實際值的擬合

4.3 距離測量

首先開啟機器人,實驗者在終端輸入指令來開啟超聲波模塊。開機成功后固定機器人,以固定后位置作為基準零點。

設備調試完畢后,以機器人與實驗者間距作為距離實際值d,實驗者逐漸遠離機器人。實驗者在移動過程中距離實際值d也隨之改變,測量結果實時在終端顯示,用水平尺測量實驗者和機器人距離作為實際值d,終端輸出數據為測量值L。

距離測量在三維空間中演示如圖24所示。

圖24 三維空間中的距離測量演示圖

距離測量數據如表3所示。

表3 測量距離數據

圖25中y軸數據為距離測量值,x軸數據為距離實際值。紅色直線為函數y=x,藍色散點為測量數據。

圖25 距離測量值和距離實際值的擬合

4.4 誤差分析

(1)角度測量誤差:

最大誤差≈42.86%,最小誤差≈0%。

這里誤差過大有兩個原因:

①數據測量過程中偏差定義為“實際值-測量值”,誤差定義為“偏差/實際值”。經過多次測量得出統計性結論,偏差在0°~7°左右。由誤差定義可知,當實際值越小,即使只有1°的偏差,也會造成較大誤差。

②由于機器人的單次轉動具有一定分辨率限制,機器人對角度的分辨率最小值為10°(即機器人單次轉動最小角度為10°)。由于六麥環形陣列的麥克風平面布局限制,在其指向30°以內角度測量的誤差較大。并且會因為終端調整機器人參數或不同地面摩擦因數改變而產生一定的誤差,而機器人對于大角度的轉動不是一次完成的,每次轉動如若有1°~2°的誤差,累計轉動多次后誤差會導致誤差積累,但與10°內角度測量相比較已有顯著的誤差改善。

為了探究清楚測量誤差與實際角度之間的關系,給出了測量誤差與測量角度之間的散點圖(如圖26所示),并在實際角度30°內進一步做出數據測量,角度進一步測量數據如表4所示。

圖26 測量誤差和角度實際值的散點圖

表4 實際角度30°以內的測量數據

經過多次測量得出統計數據,30°以內的測量值誤差較大,參考意義不大,因此將測量數據中30°以內的數據拋除后得到相對誤差如下:最大誤差≈4.35%,最小誤差≈0%。

雖然相對誤差仍然較大,但由于機器人在完成轉向動作后,以轉向后自身朝向方位為0°基準,頭部攝像頭分別向左右兩邊轉動15°搜索聲源。所以仍然可以實現聲源的精確定位,實際應用中影響收效甚微。

(2)距離測量誤差:最大誤差≈3.5%,最小誤差≈0%。

該裝置距離檢測誤差較小,但由于裝置發射超聲波為直線傳播,所以檢測聲源需與裝置處于同一平面內,這是該裝置的一點局限性。

5 結論

本裝置以樹莓派機器人為搭建平臺,結合六麥環形陣列、超聲波模塊和N10激光雷達分別實現方位判斷、距離測量、繪制圖像功能,測量數據誤差較小。

(1)六麥環形MIC陣列一般應該豎直放置,但豎直放置方法只能識別機器人面朝方向180°的聲音方位,無法識別身后聲音。而本裝置中將陣列水平放置,使裝置能夠精準判斷以自身為圓心、半徑4 m、360°以內的聲音方位,使得應用性增強。

(2)對樹莓派機器人進行深度開發,使其在判斷聲音方位后再進行人臉識別,進一步聲源定位,并在定位后做出動作和對話,增強了人機互動效果。

(3)將雷達與機器人相結合,能夠返回以自身為圓心、半徑12 m、360°以內的二維空間圖像,可開發地震救援、資源勘探等功能。在實際應用上具有更多可能性。

猜你喜歡
測量
測量重量,測量長度……
把握四個“三” 測量變簡單
滑動摩擦力的測量和計算
滑動摩擦力的測量與計算
測量的樂趣
二十四節氣簡易測量
日出日落的觀察與測量
滑動摩擦力的測量與計算
測量
測量水的多少……
主站蜘蛛池模板: 四虎国产精品永久一区| 久久国产热| 欧美日韩国产一级| 91探花在线观看国产最新| 国产白丝av| 色综合久久无码网| 欧美综合中文字幕久久| 欧美伊人色综合久久天天| 亚洲男人在线天堂| 欧洲成人在线观看| 好紧好深好大乳无码中文字幕| 久久久无码人妻精品无码| 色噜噜久久| 四虎国产永久在线观看| 乱人伦视频中文字幕在线| 情侣午夜国产在线一区无码| 亚洲伊人天堂| 无码AV日韩一二三区| 乱人伦视频中文字幕在线| 一本综合久久| 欧美午夜在线视频| 欧美日本在线一区二区三区| 成人免费网站久久久| 国产精品开放后亚洲| 国产区网址| 无码一区中文字幕| 国产成人亚洲精品无码电影| 亚洲精品天堂在线观看| 国产精品亚洲一区二区三区z| 亚洲天堂网站在线| 综合社区亚洲熟妇p| 黄色a一级视频| 久久综合AV免费观看| 国产va免费精品| 91精品啪在线观看国产60岁 | 成人av专区精品无码国产| 久久天天躁狠狠躁夜夜躁| 欧美日韩激情在线| 国产成人禁片在线观看| 国产极品美女在线播放| 91九色最新地址| a级免费视频| 日韩精品专区免费无码aⅴ | 国产情侣一区二区三区| 91久久国产成人免费观看| aⅴ免费在线观看| 亚洲欧洲日产国码无码av喷潮| 国产精品视频3p| 亚洲第一色网站| 老色鬼欧美精品| 在线视频一区二区三区不卡| 亚洲精品自产拍在线观看APP| 福利视频一区| 国产爽爽视频| 国产一线在线| 在线免费a视频| 欧美激情网址| 操操操综合网| 国产精品亚洲а∨天堂免下载| 狠狠综合久久| 亚洲久悠悠色悠在线播放| 一级片免费网站| 亚洲午夜福利在线| 久久99久久无码毛片一区二区 | 综合色区亚洲熟妇在线| 美女免费黄网站| 国产v欧美v日韩v综合精品| 亚洲国产成人麻豆精品| 国产人成网线在线播放va| 亚洲国产中文欧美在线人成大黄瓜| 思思热精品在线8| 欧美黄网在线| 免费国产不卡午夜福在线观看| 草草影院国产第一页| 国产黄网站在线观看| 国产欧美精品专区一区二区| 亚洲欧洲日产国码无码av喷潮| 毛片视频网| 国模私拍一区二区| 国产亚洲精品资源在线26u| 伊人色婷婷| 呦女亚洲一区精品|