日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于手眼标定的误差计算

發布時間:2023/12/31 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于手眼标定的误差计算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??之前做的眼在手上的手眼標定,流程結束后,會得到相機坐標系到機械臂末端坐標系的變換關系T_cam2end。我一般直接量取機械臂末端到相機的直線距離來校對z軸方向的距離,但只是做個估算,并未進行精確測量。
??我認為手眼標定的誤差計算流程:
??以眼在手上為例,標定結束后得到T_cam2end,再根據公式計算得到目標和機械臂基底的位姿關系,讓相機識別到某一點,然后在機械臂末端加裝一個錐形的尖端,通過計算得到的位姿輸入到機械臂中,控制機械臂移動到目標上方,用尖端去戳目標,以此來計算精度。
??但有個疑問?這么做人工去量取的話,是怎么做到很精確如0.0幾個毫米的數量級的,而且量取的只是x、y、z方向的誤差,那rx、ry、rz該怎么測量呢?
PS:如有大佬知道望告知,非常感謝

思路:

??根據標準差的概念,使用樣本標準差進行計算。

??我的做法:完成手眼標定后,得到T_cam2end,將目標圖這里以Aruco碼為例固定在一處,控制機械臂在不同的角度對目標圖進行拍照,我拍了5張,根據下面的公式得到5組目標和機械臂基底之間的位姿關系,因為目標圖固定不動,所以目標和機械臂基底之間的位姿關系為固定值,T_cam2end也是固定值,T_end2base和T_target2cam每次的值都不一樣,根據樣本標準差,計算位姿(X, Y, Z, RX, RY, RZ)的誤差值。

代碼

// 計算手眼標定的樣本標準偏差 std::vector<double> stdev_err_res; int num = stdev_err[0].size(); int len = stdev_err.size(); for (int i = 0; i < num; i++) {double mean = 0.0, sum = 0.0;for (int j = 0; j < len; j++) {sum += stdev_err[j][i];}mean = sum / len;double square_diff_sum = 0.0;for (int k = 0; k < len; k++) {square_diff_sum += std::pow(stdev_err[k][i] - mean, 2);}double variance;variance = (square_diff_sum / (len - 1));stdev_err_res.push_back(std::sqrt(variance)); }

總覺得這么計算的話,萬一樣本中有一個值偏差很大或者是錯誤的,不就增加了整體的誤差,暫時還沒想到好的方法。。。

總結

以上是生活随笔為你收集整理的关于手眼标定的误差计算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。