本博客來源于CSDN機器魚,未同意任何人轉載。
更多內容,歡迎點擊本專欄,查看更多內容。
0 引言
項目采用六軸機械臂搭配末端真空吸盤,從無序包裹中抓取想要的包裹。AI算法需要提供各包裹的抓取點的3D坐標與3D姿態。由于快遞包裹含有多個面,且大多為傾斜狀態,為了順利抓取,我們的算法需要如下幾個步驟:
①從彩色圖的包裹堆里面識別、分割出每個單獨的包裹,得到2D掩碼Mask1;
②從對齊的深度圖中提取每個包裹Mask1對應的深度掩碼Mask2;
③根據相機參數,計算Mask2對應的三維點云DisMask;
④將DisMask中的異常點云值剔除后做平面分割,只要含點云數量最多的那個平面;
⑤求平面的質心作為抓取點,求平面的法向量與x、y、z軸的角度為末端抓取姿態。
最終得到6個值返回給下位機做機械臂的控制。
本次是在windows上進行開發,我用到的軟件與SDK有:cmak-3.28.1,vs2019,opencv-4.6.1,open3d-0.18.0,orbbecsdk1.10.18、cuda-11.6、cudnn-8.5.0、tensorrt-8.4.1.5。
模型用的ultralytics最新版訓練的yolo11s-seg,訓練好之后轉好的onnx模型與訓練數據可以在【這里】下載,訓練方法網上到處都有,不是此博客的重點。
1 奧比中光相機測試
1.1 SDK相機初體驗
以前做這種對精度要求不那么高項目用的都是intel的realsense系列,但價格越來越貴了,加上奧博中光天天網上吹牛批,所以某魚買了一款二手的GeminiPro相機,是奧比中光與輪趣科技一同研發的。
首先配置奧比中光相機的驅動與SDK,必須要裝驅動才能使用,下載地址:地址1。因為我采用的win11,所以下載的win_x64這個版本。
解壓后的目錄為D:/Project/OrbbecSDK/(這是我放置的目錄),也可以換其他路徑存放。有個driver的文件夾,里面的exe無腦安裝即可。
安裝完成后,打開CMAKE_GUI與VS2019,CMAKE我采用的版本是3.28.1。首先打開CMakeLists.txt將OpenCV_DIR的路徑改成自己的實際路徑,關于opencv的安裝編譯網上有很多,這里就不贅述了。
https://github.com/orbbec/OrbbecSDK/releases然后打開cmakegui按照下列步驟配置并生成vs的工程文件,生成好之后打開,最后ALL_BUILD。
?
ALL_BUILD右鍵生成之后會在bin目錄下生成很多exe文件,插上相機、運行color_viewer有畫面就代表已經可以正確使用SDK了,下面我們對其進行改寫,得到我們想要的程序。
1.2 將SDK的Example改成所需要程序
在我的案例中,對于SDK需要有以下幾個功能:
①設定參數與初始化相機;②獲取彩色圖與深度圖;③對彩色圖與深度圖進行對齊;④傳入檢測得到的box與mask計算3d點云;⑤點云處理得到三維抓取點與三維姿態。
?4.6再更新