色欲av一区二区三区免费看_亚洲se777中文网_亚洲国产精品激情在线观看_9久热这里只有精品免费_www久久这里只有国产中文精品

您好! [登錄] [免費注冊]
歡迎來到123儀器網(wǎng)!24年專注 · 正品保障 · 閃電發(fā)貨

DIY基于攝像頭的激光測距儀

2010-11-24

                                                         DIY基于攝像頭的激光測距儀

有很多現(xiàn)成的測距組件包括超聲波、紅外線、甚至是激光測距儀。這些設(shè)備運行的很好,但是對于飛行機器人來說,重量是一個主要考慮因素。一個可行的辦法是增加現(xiàn)有組件的功能,并安裝在機身上。例如微型空中機器人的有效載荷是100g。它能利用USB連接的攝像頭(或mini無線攝像頭)執(zhí)行視覺任務(wù),例如避障等。更好的是,如采用兩個攝像頭,能提供立體的機器視覺,這樣能增強避障性能,因為雙鏡頭提供了視覺深度。但缺點是需要增加另外一個攝像頭的重量。這篇文章就是討論如何利用一個激光筆和一個攝像頭來提供一個單鏡頭機器視覺和測距的。
這個項目很大一部分是基于下面這個教程的
工作原理
下圖顯示了如何將激光點投射到目標(biāo)物上,并在攝像頭上顯示。攝像頭和激光點的距離是可以通過計算而得出的。公式很簡單,因此這個技術(shù)在需要很快運行的機器視覺應(yīng)用上是適合的。
 
介紹一下工作原理。一束激光被投射到目標(biāo)物上,并在攝像頭上被顯示。激光束被認(rèn)為是理想的平行于攝像頭的中心光軸。激光點由攝像頭的其余部分所捕獲。一個簡單的計算就是尋找亮點。如果設(shè)激光點就是這個場景的亮點(似乎在室內(nèi)我的激光發(fā)射器確實是亮的),那么這個點的位置在圖幀中的位置是確定的。然后我們只需要計算這個點在沿著y軸的距離,就能計算出目標(biāo)物離攝像頭的距離,激光點距離中心越近,離目標(biāo)物越遠(yuǎn)。
如同公式所示,距離D是可以被計算出來的。
 
為了計算這個等式,我們需要知道激光器和攝像頭之間的距離h,這是個常數(shù),還有角度,角度可以計算。
 其中:
pfc=從焦平面到中心的像素數(shù)量
rpc=單個像素的弧度
ro=弧度補償(彌補對齊錯誤)

代入上式,我們得到:
 
這樣,從圖像中就能將焦平面到激光點像素數(shù)計算出來。那其他的常數(shù)怎么辦呢?我們需要執(zhí)行一個校準(zhǔn)來得到這些數(shù)據(jù)。
為了校準(zhǔn)這個系統(tǒng),我們需要收集一系列測量的數(shù)據(jù),每次測得的目標(biāo)物的距離和這個激光點離中心點的像素數(shù)。數(shù)據(jù)如下
校正數(shù)據(jù)
pixels from center actual D (cm)
103 29
81 45
65 58
55 71
49 90
45 109
41 127
39 159
37 189
35 218
使用下面的公式,我們能夠利用激光器和攝像頭之間的距離h和真實距離計算出真實的角度:
 
 
θactual=真實角度
Dactual=真實距離(測量得出)
現(xiàn)在我們有了公式中的每個數(shù)值,我們可以利用一個關(guān)系式來計算點離中點的像素數(shù)。我用了一個線性關(guān)系式。這個公式看起來很有用,……
從我的校正數(shù)據(jù)中,我計算出:
Offset (ro) = -0.056514344 radians
Gain (rpc) = 0.0024259348 radians/pixel
使用:
下表是列舉了根據(jù)上面ro和rpc值計算出的距離值,實際距離值和誤差:
實際和計算的測量數(shù)據(jù)
pixels from center calc D (cm) actual D (cm) % error
103 29.84 29 2.88
81 41.46 45 -7.87
65 57.55 58 -0.78
55 75.81 71 6.77
49 93.57 90 3.96
45 110.85 109 1.70
41 135.94 127 7.04
39 153.27 159 -3.60
37 175.66 189 -7.06
35 205.70 218 -5.64
所需零部件
我的測距儀沒有多少部件。我使用一塊硬紙板來固定激光發(fā)射器和攝像頭。攝像頭和激光發(fā)射器被平行的布置在一起。
 
我組裝的測距儀是這樣的
 
軟件
我通過兩個方式編寫了這個軟件,一個是vc++,一個是VB。你能發(fā)現(xiàn)VB版本的軟件會比VC++的軟件更容易一些,但是各有取舍。VC++版本能夠自由的加入其他軟件中?VB版本需要第三方軟件支持(在Visual Studio中)
Visual Basic
vb_laser_ranger.zip
這里可以下載到我的VB版本軟件。
要使用上面的程序,你必須要安裝VideoOCX ActiveX 控件