海康机器人线激光立体相机获取体积测量开始时间点和结束测量时间点以及包裹四个顶角位置信息的可行办法
349體積相機(jī)獲取測量時(shí)間點(diǎn)和位置信息
簡介:一種使用349體積相機(jī)獲取體積測量開始時(shí)間點(diǎn)和結(jié)束測量時(shí)間點(diǎn)以及包裹四個(gè)頂角位置信息的可行辦法。
?
- 本文檔適用的問題
?
?
?
- 部分定義
?
?
?
?
點(diǎn)云坐標(biāo)系,坐標(biāo)系遵從右手準(zhǔn)則,Y軸朝向傳送帶運(yùn)動(dòng)方向;
坐標(biāo)原點(diǎn):
采用標(biāo)準(zhǔn)箱標(biāo)定時(shí),坐標(biāo)原點(diǎn)和光平面標(biāo)定參數(shù)有關(guān)系,原點(diǎn)不固定。(獲取坐標(biāo)信息不推薦使用該種方式進(jìn)行系統(tǒng)標(biāo)定)
采用標(biāo)定板標(biāo)定時(shí),坐標(biāo)原點(diǎn)為系統(tǒng)標(biāo)定時(shí)標(biāo)定板棋盤格左上角(移動(dòng)前)。
?
?
?
- 本文檔參考環(huán)境說明
操作系統(tǒng):Windows7
網(wǎng)卡:Intel(R) Ethernet Connection (2) I219-LM
相機(jī)型號:MV-DL2040-04B-H
客戶端:3DMVS2.0.1 build20200911
體積SDK:VolumeMeasureSDK_V2.2.0.1_20200908(基于3DMVS客戶端)
?
注:確保網(wǎng)絡(luò)環(huán)境已配置、相機(jī)已經(jīng)標(biāo)定。
網(wǎng)絡(luò)環(huán)境配置請參考網(wǎng)口丟包指導(dǎo)文檔;
相機(jī)標(biāo)定請參考相關(guān)標(biāo)定指導(dǎo)資料。
- 操作步驟
- 相機(jī)參數(shù)檢查確認(rèn)
使用3DMVS連接相機(jī),確保相機(jī)已經(jīng)標(biāo)定且可以正常測量體積。
-
- 點(diǎn)云圖模式下,點(diǎn)云正常,未出現(xiàn)嚴(yán)重傾斜;
- ROI和過濾區(qū)域已經(jīng)繪制;
- 相機(jī)在點(diǎn)云模式下,“實(shí)際幀速率(fps)”可以穩(wěn)定達(dá)到“采集幀率控制”閾值,圖像輸出穩(wěn)定不丟包;
?
-
- 測量及校準(zhǔn)模塊下,測量類型使用“相機(jī)直出體積”和“積分體積”均可以正常出體積。
?
-
- 不滿足以上條件請根據(jù)情況進(jìn)行排除異常情況,或聯(lián)系相關(guān)技術(shù)人員提供技術(shù)保障。
- 獲取測量物體的四個(gè)頂點(diǎn)的坐標(biāo)
- 使用3DMVS軟件安裝路徑下的體積Demo測試,默認(rèn)路徑為C:\Program Files (x86)\3DMVS\Development\MvVolMeasureSDK\Samples
Documentations:體積SDK開發(fā)手冊文件夾,包含部分體積相機(jī)使用指導(dǎo)手冊;
Runtime:體積運(yùn)行時(shí)庫文件夾,3DMVS安裝時(shí)靜默安裝,已安裝3DMVS的PC不需要再次安裝,未安裝3DMVS的PC需要根據(jù)說明進(jìn)行安裝;
Samples:Demo存放文件夾,包含C#和VC的主動(dòng)與回調(diào)獲取體積示例;
SDK:文件夾包含DotNet庫,lib庫與頭文件;
注:更為詳細(xì)的說明請查看開發(fā)手冊,這里不再贅述
這里以C#回調(diào)方式獲取體積Demo為例,打開項(xiàng)目,在回調(diào)函數(shù)ProcessCallBackResult里添加如下代碼:
listBox1.Items.Add("有體積信息時(shí)的圖像標(biāo)記位:"+stResultInfo.nImgFlag);listBox1.Items.Add("位置信息XYZ:");for (int i = 0; i < stResultInfo.stVolumeInfo.vertex_pnts.Count(); i++){listBox1.Items.Add("位置信息[" + i + "]:(" + stResultInfo.stVolumeInfo.vertex_pnts[i].fX + ","+ stResultInfo.stVolumeInfo.vertex_pnts[i].fY + ","+ stResultInfo.stVolumeInfo.vertex_pnts[i].fZ + ")");}注:代碼僅供測試參考,請根據(jù)實(shí)際情況進(jìn)行調(diào)整
?
-
- 執(zhí)行程序進(jìn)行測試,由于該版本SDK采用運(yùn)行庫,所以不需要以往的拷貝dll,拷貝measure文件步驟;
?
-
- 查找設(shè)備、連接相機(jī),工作模式選擇1、5、9均可
-
- 點(diǎn)擊開始工作,過包裹測試結(jié)果如下:
- 獲取測量物體 體積測量的開始時(shí)間和結(jié)束時(shí)間點(diǎn)
- 由于接下來需要使用體積相機(jī)輸出的圖像信息,我們在創(chuàng)建句柄(CreateHandleBySerial)之后,繼續(xù)添加代碼:
- 繼續(xù)在回調(diào)函數(shù)ProcessCallBackResult里添加如下代碼:
- 需要用到以下方法,將“主機(jī)生成時(shí)間”nHostTimeStamp的long類型轉(zhuǎn)換為DateTime:
- 執(zhí)行程序進(jìn)行測試,查找相機(jī)、連接相機(jī),工作模式推薦選擇1、5;
特別說明:這里測量模式選擇9相機(jī)直出體積時(shí),會(huì)出現(xiàn)體積數(shù)據(jù)和圖像數(shù)據(jù)不會(huì)一起輸出的情況,也就是不滿足
“(1 == stResultInfo.nVolumeFlag) && (1 == stResultInfo.nImgFlag)的判斷”
- 如何計(jì)算測量開始時(shí)間和測量結(jié)束時(shí)間:
測量開始時(shí)間=體積信息輸出的時(shí)間-(體積信息輸出幀號-測量開始幀號)*1s300Fps(幀率閾值)
測量結(jié)束時(shí)間=體積信息輸出的時(shí)間-(體積信息輸出幀號-測量結(jié)束幀號)*1s300Fps(幀率閾值)
注:這里幀號差計(jì)算時(shí),需要考慮幀號最大值為65535,跳轉(zhuǎn)0
總結(jié)
以上是生活随笔為你收集整理的海康机器人线激光立体相机获取体积测量开始时间点和结束测量时间点以及包裹四个顶角位置信息的可行办法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WPF框架中使用CefSharp嵌入we
- 下一篇: 积分签到,连续签到积分工具