結(jié)合模塊導(dǎo)航方案,使用深度攝像頭時(shí),應(yīng)該將深度攝像頭安裝在上位機(jī)上。用戶自行編寫(xiě)攝像頭的驅(qū)動(dòng)程序,在獲取其深度數(shù)據(jù)后,再通過(guò)我們SDK中提供的publishDepthCamFrame接口將傳輸給模塊,至此Slamware Core才能將深度數(shù)據(jù)用于避障。
配置
同添加其它傳感器類似,在安裝深度攝像頭后,需通過(guò)RoboStudio中的Slamware配置工具將深度攝像頭的具體安裝位姿等相關(guān)信息進(jìn)行配置,然后將配置好的文件導(dǎo)出,重新放到底盤(pán)MCU中進(jìn)行Make,再將生成的新的hex文件燒錄至底盤(pán)。
開(kāi)啟濾波:高度濾波開(kāi)關(guān),只處理相應(yīng)高度范圍內(nèi)的障礙物測(cè)距信息,主要應(yīng)用于濾除地面噪聲和高于機(jī)器人高度的障礙物信息。
開(kāi)啟形態(tài)學(xué)濾波:利用形態(tài)學(xué)運(yùn)算主要采用態(tài)學(xué)開(kāi)、閉運(yùn)算進(jìn)行濾波操作,用來(lái)過(guò)濾孤立噪點(diǎn)。(可能會(huì)影響性能,客戶自行取舍是否勾選)
倒裝:攝像頭是否倒置,一般不勾選。
最小濾波高度:以地面為基準(zhǔn),高度小于該值的障礙物測(cè)距信息將被忽略,單位為m。
最大濾波高度:以地面為基準(zhǔn),高度大于該值的障礙物測(cè)距信息將被忽略,單位為m。
相關(guān)文檔:
KBSW180147 機(jī)器人底盤(pán)傳感器位置坐標(biāo)及底盤(pán)配置工具的使用
KBSW180158 Breakout kit 燒寫(xiě)固件
注意:配置深度攝像頭前,請(qǐng)先確保使用的固件版本至少需要2.6.7及以上,否則配置的濾波相關(guān)信息無(wú)法被讀出。
接口調(diào)用
sensorId:使用Slamware配置工具配置時(shí),設(shè)置的Id.
DepthCameraFrame:需要傳入一個(gè)DepthCameraFrame類型的結(jié)構(gòu)體變量,代表的是一幀數(shù)據(jù)。
DepthCameraFrame的成員:
深度攝像頭有自己的屬性參數(shù),如分辨率,深度視角(FOV)等。定義DepthCameraFrame類型的結(jié)構(gòu)體變量時(shí),可以把深度攝像頭的屬性參數(shù)賦值給成員。另外,請(qǐng)注意如下幾點(diǎn):
注意各個(gè)成員的單位,距離為米,角度為弧度。
maxValidDistance建議在2米,否則可能存在噪點(diǎn)。
cols和rows,建議為320x240,不要大于這個(gè)值。如果一定要設(shè)置為更小的分辨率,需先確認(rèn)所用的攝像頭是否支持。
minFovPitch和maxFovPitch涉及到深度攝像頭的VFOV(垂直視角)。假設(shè)VFOV=a(rad),則minFovPitch=-a/2,maxFovPitch=a/2。
minFovYaw和maxFovYaw涉及到深度攝像頭的HFOV(水平視角)。假設(shè)HFOV=b(rad),則minFovPitch=-b/2,maxFovPitch=b/2。
data就是具體的一幀里面每個(gè)像素的值,需要把完整的一幀的深度數(shù)據(jù)全傳進(jìn)去。
代碼描述
上述代碼僅傳輸了一幀數(shù)據(jù)。實(shí)際在調(diào)用接口傳遞數(shù)據(jù)時(shí),需要注意以下幾點(diǎn):
1.深度攝像頭的數(shù)據(jù)是要持續(xù)發(fā)送的。為了防止數(shù)據(jù)傳輸堵塞,調(diào)用publishDepthCamFrame的頻率不要超過(guò)一秒鐘10次。
2.得到深度數(shù)據(jù)后,模式是實(shí)時(shí)處理的,為了防止有延遲,請(qǐng)選擇性能好的上位機(jī),獲取一幀深度數(shù)據(jù)到調(diào)用publishDepthCamFrame接口總的時(shí)長(zhǎng)應(yīng)該在100ms以下。
3.對(duì)于深度攝像頭的規(guī)格型號(hào),并無(wú)特殊要求,只需要在調(diào)用接口時(shí)傳送符合要求的數(shù)據(jù)即可。注意,需要的深度信息單位是米,如果您的攝像頭的單位與此不同,需要轉(zhuǎn)換。
4.對(duì)于不同品牌型號(hào)的深度攝像頭,驅(qū)動(dòng)攝像頭的SDK不同,若對(duì)此需要幫助,建議您咨詢攝像頭品牌的支持工程師以獲得專業(yè)的支持。
檢驗(yàn)效果
當(dāng)成功傳輸了正確符合要求的深度數(shù)據(jù)后,如果深度攝像頭測(cè)距范圍內(nèi)有障礙物,可以通過(guò)RoboStudio或者Web portal看到深度信息。
depthcam是一個(gè)非常簡(jiǎn)單的示例文件,DepthCameraFrame中用到的data是人為構(gòu)造填充的一個(gè)vector,用戶可以自行下載,在VS2010中打開(kāi),查看檢測(cè)到深度數(shù)據(jù)的效果。
1.通過(guò)RoboStudio查看
在此之前,需先獲取下載Slamware Sensor Map插件(參考RoboStudio用戶手冊(cè))。點(diǎn)擊工作區(qū)的顯示設(shè)置圖標(biāo),在彈出的圖層面板中選中傳感器視野(深度攝像頭)。
2.通過(guò)Web Portal查看
訪問(wèn)Web portal,開(kāi)啟Slamware Core診斷模式,具體步驟請(qǐng)參考KBSW180153 SLAMWARE Web Portal Function Overview
關(guān)鍵字:思岚科技