踩坑
手眼標(biāo)定的算法網(wǎng)上是比較多的,但是很多都不好用。github上高贊的easy_handeye,試了一下,但是mycobot600沒有提供moveit的配置,而我ROS基礎(chǔ)不是很好,不太會(huì)修改示例代碼。折騰了一段時(shí)間最終看到這個(gè)魚香ROS,最終得到了不錯(cuò)的結(jié)果
1.配置
配置過程就不用說了,參考魚香ROS
用深度相機(jī)的話需要安裝深度相機(jī)的庫github
需要控制機(jī)械臂還需要安裝ROS庫,參考博客
識(shí)別二維碼需要安裝aruco_ros
特別說明一些,魚香ROS配置的時(shí)候,安裝的opencv應(yīng)該是pip3去安裝的。配置過程可能有許多問題,百度解決即可
2.在線標(biāo)定
用在線標(biāo)定的方式比較簡單,不用自己去配置姿態(tài)信息。
2.1啟動(dòng)相機(jī)
該launch文件已經(jīng)把啟動(dòng)realsense的代碼寫入了,直接運(yùn)行就好。
roslaunch handeye-calib aruco_start_realsense_sdk.launch
自己可以修改相機(jī)的參數(shù),比如分辨率,幀率
其中分辨率不是隨便改的,可以啟動(dòng)realsense-viewer查看相機(jī)支持的分辨率有哪些
realsense-viewer
2.2啟動(dòng)機(jī)械臂及通信
# 啟動(dòng)rviz
roslaunch mycobot_600 mycobot_600_slider.launch
# 啟動(dòng)通訊
rosrun mycobot_600 slider_600.py
Rviz中的坐標(biāo),可以看出,基底坐標(biāo)是base,末端坐標(biāo)是link6
2.3啟動(dòng)手眼標(biāo)定程序
修改src/handeye-calib/launch/online/online_hand_on_eye_calib.launch中的參數(shù)后,運(yùn)行:
roslaunch handeye-calib online_hand_on_eye_calib.launch
3.標(biāo)定精度
相機(jī)與link5之間的坐標(biāo)變化才是不變的
眼在手上的時(shí)候,板子與基座之間的變化是固定的,因此可以看他們的標(biāo)準(zhǔn)差來判斷是否精確。std預(yù)計(jì)需要0.005以下才行
aruco碼隔的近效果好,因此盡量使相機(jī)與二維碼近一點(diǎn),可以使用較小的二維碼
多個(gè)角度拍攝
總結(jié):多角度,小距離。(上下左右,左上,右上,左下,右下。)每個(gè)位置拍攝兩組或者三組(末端盡量不動(dòng),其他關(guān)節(jié)進(jìn)行組合)。效果還行,如下:
其他:
打開rviz可以清楚的看到有幾個(gè)坐標(biāo)及名稱還有tf樹之間坐標(biāo)的關(guān)系(大象機(jī)器人是base..link6)
以下代碼可以查看坐標(biāo)之間的變化矩陣:rosrun tf tf_echo base link5
XYZ---紅、綠、藍(lán)色(rviz中)
numpy.linalg.LinAlgError: Eigenvalues did not converge(這個(gè)報(bào)錯(cuò)是因?yàn)樽约号臄z的拍攝的照片以及數(shù)據(jù)存在很大問題)
眼在手上可以看base->marker的標(biāo)準(zhǔn)差(std),越穩(wěn)定越好
審核編輯:符乾江
-
機(jī)器人
+關(guān)注
關(guān)注
210文章
27838瀏覽量
204582 -
python
+關(guān)注
關(guān)注
53文章
4753瀏覽量
84076 -
機(jī)械臂
+關(guān)注
關(guān)注
12文章
502瀏覽量
24296 -
ROS
+關(guān)注
關(guān)注
1文章
276瀏覽量
16882
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論