kinova和Realsense D435i的手眼标定
主要分为以下几步:
- aruco_hand_hand 包下载与使用
- launch文件改写
- 标定
一、 aruco_hand_hand 包下载与使用
1.clone aruco_hand_eye 到catkin_ws/src下。链接: link.
cd catkin_ws/src
git clone https://github.com/jhu-lcsr/aruco_hand_eye
2.返回catkin_ws目录,catkin_make
cd catkin_ws
catkin_make
可能会报错,因为没有安装aruco_ros和visp_hand2eye_calibration。解决办法:
sudo apt-get install ros-melodic-aruco-ros
sudo apt-get install ros-melodic-visp-hand2eye-calibration
然后再重新catkin_make一下就好了
3.前往 aruco marker 生成网站 打印 marker,我使用的是573,size 80 mm。打印后贴在一块板子上。
二、 launch文件改写
创建kinova_realsense.launch
<launch>
<!-- The end-effector frame_id, depend on what robot you use -->
<arg name="ee_frame" value="/j2n6s300_end_effector"/>
<!-- Bring up a realsense -->
<include file="$(find realsense2_camera)/launch/rs_rgbd.launch">
</include>
<!-- Calibrate the extrinsics for a realsense mounted to a robot base -->
<!-- User need to specify markerid and markersize -->
<include file="$(find aruco_hand_eye)/launch/aruco_hand_eye.launch">
<arg name="markerid" value="573"/>
<arg name="markersize" value="0.080"/>
<arg name="publish_tf" value="true"/>
<!-- In eye-in-base case, marker_parent_frame is the end-effector frame, camera_parent_frame is the world or base frame -->
<arg name="marker_parent_frame" value="/world"/>
<arg name="camera_parent_frame" value="/j2n6s300_end_effector"/>
<arg name="camera" value="/camera/color/"/>
<!-- Here I use the realsense's camera_color_optical_frame because aruco uses rgb image and depth frame is aligned to color frame here -->
<arg name="camera_frame" value="/camera_color_optical_frame"/>
</include>
</launch>
三、手眼标定过程
首先,启动kinova机械臂
roslaunch kinova_bringup kinova_robot.launch kinova_robotType:=j2n6s300
然后启动刚刚修改的launch文件
roslaunch aruco_hand_eye kinova_realsense.launch
如果相机视野里没有mark板的话会出现如下提示
此时用遥控器移动kinova机械臂, 直到相机视野里出现mark板,可以用rqt_image_view查看相机视野。
rqt_image_view
效果如下:
这时在刚刚启动的kinova_realsense.launch文件的终端中会出现如下提示:
根据提示按下enter键会出现:
按下enter接受这张图片作为标定样例,按下d删除这张图。按下enter:
此时,利用遥控器移动kinova到另一个姿态,保证最终相机视野里出现mark板。然后再按下enter开始进一步标定计算。
经过15~20次左右的标定,结果已经趋于稳定:(下图是10次左右的结果,仅用于示例)