天天看點

3D視覺應用研發系列筆記——機器人3D互動(一.技術難點分析)

先回顧一下需要達成的應用場景:簡單說就是利用3D視覺傳感技術實作人與機器之間的投球互動。玩家從“準備區”投出皮球,經過約半秒時間穿過飛行區,到達回球平面時,機械手對準來球将其推回。如下圖所示:

3D視覺應用研發系列筆記——機器人3D互動(一.技術難點分析)

咋一看,這個功能并不複雜,但實作起來非常有挑戰性。我們先理一下方案的大緻思路:用3D視覺傳感器(即深度相機)對球進行跟蹤定位,然後通過圖像處理盡快的預測出球抵達回球平面時的具體位置,并發送給機器人控制器,再由控制器發出運動指令,機械臂執行到指定位置回擊球。

有小夥伴可能會問了,為什麼要預測位置,我們不能在球抵達平面時,直接從圖像中計算出實際位置嗎?顯然是不行的,因為時間上來不及。圖像傳輸,圖像處理,機械運動都需要時間,這幾部分加起來大約 210毫秒,如果等球到了再判斷,黃花菜都涼了。是以隻能提前根據球進入飛行區的初始6幀的深度圖,計算出球在每一幀的位置,再根據這6個位置拟合抛物線,進而得到球抵達回球平面時的具體位置和時間。是以切記,這部分計算能快盡量快,時間就是生命線!

3D視覺應用研發系列筆記——機器人3D互動(一.技術難點分析)

初步估計,球飛行時間約400550ms,扣除6幀飛拍所需的180ms,剩餘220370ms,可用于視覺系統處理和機器人響應(需要約210ms,剛剛夠),能給到各個環節的時間是很緊張的,如果某個環節稍微入不敷出,這個功能就實作不了。是以,第一個挑戰就是如何保證明時性。

挑戰二,就是上邊提到的位置預測誤差。這個預測位置如果不夠準确的話,機器人回擊球會失敗。仔細分析的話,這個誤差的構成因素有很多。這裡主要列舉:像素精度,标定誤差,圓拟合誤差,抛物線拟合誤差,時間誤差。

像素精度,是指每一個像素代表的實際尺寸。比如,當VGA分辨率(640480)對應的區間大小為 21.5米,那麼每個像素的實際尺寸就是3.1mm。這個尺寸如果越大,從圖像中計算的位置誤差也就越大。

标定誤差,是指每一個像素映射到實際空間中的坐标時,會偏離實際值。一方面,坐标轉換矩陣不一定很準确,而且,每個相機的個體之間有差異;另一方面,現場的相機安裝有時會有輕微松動異位,那麼轉換矩陣就實效了。

拟合誤差。由于球的快速運動産生拖影(見圖),造成圓拟合後的球心位置有誤差;另外,由于點雲資料丢失,球的成像會出現孔洞,這給圓拟合算法帶來挑戰。

3D視覺應用研發系列筆記——機器人3D互動(一.技術難點分析)
3D視覺應用研發系列筆記——機器人3D互動(一.技術難點分析)

抛物線拟合誤差。在我們利用6幀的球心位置來拟合一條抛物線時,由于理論幾何模型與實際有差異,會帶來額外的定位誤差,且該誤差有可能很大。

時間誤差。即便預測到的位置非常準确,但如果抵達時間預測得不準,會導緻機械臂擊球節奏的丢失,也無法滿足功能。這個誤差的誘因可能是圖像傳輸和圖像處理的耗時不穩定,也可能是抛物線模型不準确。

挑戰三,圖像處理算法。圖像處理包括圖像去背景噪聲,圓拟合。如果背景噪聲不能去除幹淨的話,會造成把背景物體識别為球的情況。但也不能去除的太“狠”,造成球像素的受損,也會影響定位準确性。圓拟合可以采用2D平面拟合,或者3D球面拟合;前者魯棒性和定位能力差一些,後者會比較耗時。

戰四,機器人運動控制、路徑規劃。一方面要足夠塊,另一方面要根據來球的速度矢量,設計好機械臂出擊的方向和力道,使得回擊球的效果最優。

綜上所述,這四大挑戰決定了這個應用研發的難度不小,因為它不是單純的理論研究,而是要實作一個工程,就必然受到時間和空間上的強限制。但我們不畏懼困難,要相信辦法總比困難多 後續幾篇筆記會介紹些應對方法。

備注:

點選下面連結,進入奧比中光開發者社群,了解更多3D視覺技術資訊:

https://developer.orbbec.com.cn/

或掃描下方二維碼,進入奧比中光開發者社群:

3D視覺應用研發系列筆記——機器人3D互動(一.技術難點分析)

繼續閱讀