roslaunch easy_handeye kinect2.launch
roslaunch aruco_gridboard detection_verp.launch
rosrun tf_precision tf_listener
得到的信息里有:marker_to_camera pos:(0.411248,0.531724,-0.0522373)
后面的三个数字便是我们得到的maker在机器人坐标系下的pose.
上面三个其实可以放在一个package里,建议再复制创建一个aruco_gridboard的package。
tf_precision package 是我最开始写的进行误差测量的package。
在位置一 记录 marker 和 gripper的相对与 机器人底座的位姿, 在位置二记录maker 和 gripper的 相对于机器人底座的位姿, 计算在底座坐标系下,maker两个位置的 R和T, gripper的R和T,比较这两个R 和两个T ,就能比较相机注册的精确度,当时考虑的是刚体的位姿变化应该是相同的(marker和gripper的相对位置关系是不变的),但如果以gripper为中心转动,其实marker和gripper的变化是不一样的,误差校验程序写出来误差一直很大。
这里面包括,计算位置转换的代码,发布话题的代码,计算旋转的误差都是可以重用的,值得看看。
)
注意:OFFSET在做精度测试的时候注意设置的大一些,防止针撞歪。
rosrun pose_goto pick_and_place_pick
这样就可以直观看精度大小了
2、将标定板(board_1)顶点坐标转换为机器人基座坐标系下坐标,移动机器人手臂末端针到达该定点
3、获取此时机械臂末端标定板(board_2)的坐标
4、将这个手臂端标定板(board_2)坐标P_test,与机器人手臂末端针准确指向标定板(board_1)定点时,手臂端标定板(board_2)坐标P_groudtruth,做比较,得出XYZ轴上的偏移,算出误差。
|
X
|
Y
|
Z
|
|
|
P_groudtruth
|
0.198296
|
0.758359
|
-0.273707
|
|
P_test_1
|
0.192049
|
0.758319
|
-0.272161
|
|
P_test_2
|
0.194142
|
0.758159
|
-0.269117
|
|
P_test_3
|
0.193949
|
0.757703
|
-0.270348
|