當前位置:自動化網>浙江漢振智能技術有限公司門戶>應用案例>漢振分享 | 包圍盒在點云ROI和碰撞檢測中的應用

          漢振分享 | 包圍盒在點云ROI和碰撞檢測中的應用

          發布時間:2021-05-14 11:17   類型:基礎知識   人瀏覽

          01 概述
          包圍盒是一種求解離散點集最優包圍空間的算法,基本思想是用體積稍大且特性簡單的幾何體(稱為包圍盒)來近似地代替復雜的幾何對象。常見的包圍盒算法有AABB包圍盒、包圍球、有向包圍盒OBB以及固定方向凸包FDH。

          圖1. 3D包圍盒

          圖2.  2D包圍盒
          OBB這種方法是根據物體本身的幾何形狀來決定盒子的大小和方向,盒子無需和坐標軸垂直。這樣就可以選擇最合適、最緊湊的包容盒子。OBB盒子的生成比較復雜。一般是考慮物體所有的頂點在空間的分布,通過一定的算法找到最好的方向(OBB盒子的幾個軸)。
          包圍球是用球體包圍整個幾何體, 無論是幾何體還是相交測試都很簡單,但是它的緊密性太差。因為除了在3 個坐標軸上分布得比較均勻的幾何體外, 幾乎都會留下較大的空隙,需要花費大量的預處理時間,以構造一個好的層次結構逼近對象。當物體變形之后,包圍球不需要重新計算。因此,它是使用得比較少的一種包圍盒。當對象發生旋轉運動時,包圍球不需作任何更新,這是包圍球的較優秀特性;當幾何對象進行頻繁的旋轉運動時,采用包圍球可能得到較好結果。

          AABB就是3D一個簡單的六面體,每一邊都平行于一個坐標平面,矩形邊界框不一定都是立方體,它的長、寬、高可以彼此不同。


          02 包圍盒在3D點云分割中的應用
          1. 三維點云分割是將同屬性的點云物體分割出來,以便于單獨對該點云物體處理,以下是借助PCL點云庫尋找點云的最小包圍盒的實現原理。
          2. 最小包圍盒的計算過程大致如下:
          3. 利用PCA主元分析法獲得點云的三個主方向,獲取質心,計算協方差,獲得協方差矩陣,求取協方差矩陣的特征值和特長向量,特征向量即為主方向。
          4. 利用獲得的主方向和質心,將輸入點云轉換至原點,且主方向與坐標系方向重合,建立變換到原點的點云的包圍盒。
          5. 給輸入點云設置主方向和包圍盒,通過輸入點云到原點點云變換的逆變換實現。
          6. 輸入點云轉換至遠點后,求得變換后點云的最大最小x,y,z軸的坐標,如 (max.x,max.y,max.z),(max.x,min.y,max.z),(max.x,max.y,min.z),(min.x,max.y,max.z),(min.x,max.y,min.z),(min.x,min.y,max.z),(min.x,min.y,max.z),(min.x,min.y,min.z),即為變換后點云的包圍盒,也是原始輸入點云包圍盒頂點坐標經過變化后的坐標。將上述求得的8個包圍盒坐標逆變換回輸入點云的坐標系,即得到原始輸入點云的包圍盒頂點坐標。
          實現效果如下圖:

          圖3. 點云分割前

          圖4. 點云分割后


          03 包圍盒在碰撞檢測中的應用
          在碰撞檢測中,為減少計算消耗,在進行相交測試前,可以先進行粗略的包圍體(BV)測試。對于某些應用程序,包圍體測試足以提供碰撞檢測依據。一般情況下,包圍體計算須采用預處理而非實時計算。當包圍體所包含的對象移動時,一些包圍體需要實現空間重對齊。
          包圍體的期望特征:
          1. 低消耗的相交測試
          2. 實現緊密擬合
          3. 計算耗費較少
          4. 易于旋轉和變換
          5. 內存占用較少
          包圍體主要包含球體、軸對齊包圍盒(AABB)、有向包圍盒(OBB)、8-DOP以及凸殼,以下僅對軸對齊包圍盒(AABB)在碰撞檢測的實現原理。
          軸對齊包圍盒(AABB)是應用最廣泛的包圍體之一。其最大特點是能實現快速的相交測試,即僅執行相應的坐標值之間的比較。
           軸對齊包圍盒(AABB)有3種常規表達方式:
            1.采用各坐標軸上的最小值和最大值
          //region R = (x,y,z) | min.x <= x <= max.x, min.y <= y <= max.y, min.z <= z <= max.z
          struct AABB {
              Point min;
              Point max;
          };
              AABB間的相交測試
          bool Collision(AABB a, AABB b) {
              //Exit with no intersection if separated along an axis
              if(a.max[0] < b.min[0] || a.min[0] > b.max[0]) return false;
              if(a.max[1] < b.min[1] || a.min[1] > b.max[1]) return false;
              if(a.max[2] < b.min[2] || a.min[2] > b.max[2]) return false;
              //Overlapping on all axes means AABs are intersecting
              return true;

            2.采用一個最小頂點值和直徑范圍dx,dy,dz
          //region R = (x,y,z) | min.x <= x <= min.x + dx, min.y <= y <= min.y + dy, min.z <= z <= min.z + z
          struct AABB {
              Point min;
              float d[3];
          };
              AABB間的相交測試
          bool Collision(AABB a, AABB b) {
              float t;
              if((t = a.min[0] - b.min[0]) > b.d[0] || -t > a.d[0]) return false;
              if((t = a.min[1] - b.min[1]) > b.d[1] || -t > a.d[0]) return false;
              if((t = a.min[2] - b.min[2]) > b.d[2] || -t > a.d[0]) return false;
              return true;
          }
            3.給定AABB的中心點C,以及各軸向半徑rx,ry,rz
          //region R = (x, y, z) | |c.x - x| <= rx, |c.y - y| <= ry, |c.z - z| <= rz
          struct AABB {
              Point c;
              float r[3];
          };
              AABB間的相交測試
          bool Collision(AABB a, AABB b) {
              if(Abs(a.c[0] - b.c[0]) > (a.r[0] + b.r[0])) return false;
              if(Abs(a.c[1] - b.c[1]) > (a.r[1] + b.r[1])) return false;
              if(Abs(a.c[2] - b.c[2]) > (a.r[2] + b.r[2])) return false;
              return true;
          }
          對于需要執行大量相交測試的碰撞檢測系統,可根據狀態的相似性對測試進行排序。例如:如果相應操作基本出現在xz平面,則y坐標測試應最后執行,從而使狀態的變化降低到最小程度。
           若物體只是以平移方式運動,與“最大-最小值”方式相比,另外兩種更加方便——只需要更新6個參數中的3個(即Point中的x,y,z)。
          對于AABB的計算與更新,在此僅列出以下4種基本方法:
          1. 使用固定尺寸且較為松散的AABB包圍物體對象
          2. 基于原點確定動態且緊湊的重構方式
          3. 利用爬山法確定動態且緊湊的重構方式
          4. 基于旋轉后的AABB,確定近似且動態的重構方式

          本文地址:http://m.xznet110.com/apply/d_1o31fn8bsoli1_1.html

          拷貝地址

          版權聲明:版權歸中國自動化網所有,轉載請注明出處!

          留言反饋
          • 評價:

          • 關于:

          • 聯系人:

          • 聯系電話:

          • 聯系郵箱:

          • 需求意向:

          • 驗證碼:

            看不清楚?

          • 在線咨詢
          主站蜘蛛池模板: 美女范冰冰hdxxxx| bt天堂新版中文在线地址| 欧美成人精品福利网站| 四虎国产精品永久免费网址| 2020国产精品永久在线| 成人亚洲国产精品久久| 九九综合VA免费看| 狠狠ady精品| 国产99热在线观看| jizz国产视频| 天堂久久久久久中文字幕| 久久99精品久久久久久青青日本| 欧美大香线蕉线伊人久久| 免费中日高清无专码有限公司| 青草国产精品久久久久久| 国产精品哟哟视频| chinese真实露脸hotmilf| 日产精品久久久久久久| 亚洲va久久久噜噜噜久久狠狠| 狠狠综合久久av一区二区| 四虎成人免费网址在线| 黑人一个接一个上来糟蹋| 国产高清免费视频| yy4080私人影院6080青苹果手机| 日本在线观看免费看片| 亚洲免费人成在线视频观看| 热久久视久久精品18国产| 另类孕交videosgratis| 高清国产av一区二区三区| 国产精品女人呻吟在线观看| japanese国产在线看| 成年人黄色大片大全| 久久婷婷香蕉热狠狠综合| 欧美巨大bbbb动漫| 亚洲美女一区二区三区| 精品国产欧美一区二区| 国产三级精品三级| 黄色片在线播放| 婷婷开心深爱五月天播播| 丰满少妇作爱视频免费观看| 日韩欧美亚洲天堂|