Realsense D455/435内参标定以及手眼标定

相机的内外参

  1. 内参数 与相机自身特性有关的参数,焦距,像素大小
  2. 外参数, 相机的位置,旋转方向

为什么要内参标定

  • 理想情况下,镜头会将一个三维空间中的直线也映射成直线(即射影变换),但实际上,镜头无法这么完美,通过镜头映射之后,直线会变弯,所以需要相机的畸变参数来描述这种变形效果。
  • 理想情况下,相机对x方向和y方向的尺寸的缩小比例是一样的,但实际上,镜头如果不是完美的圆,传感器上的像素如果不是完美的紧密排列的正方形,都可能会导致这两个方向的缩小比例不一致。内参中包含两个参数可以描述这两个方向的缩放比例,不仅可以将用像素数量来衡量的长度转换成三维空间中的用其它单位(比如米)来衡量的长度,也可以表示在x和y方向的尺度变换的不一致性;
  • 理想情况下,镜头的光轴(就是通过镜头中心垂直于传感器平面的直线)应该是穿过图像的正中间的,但是,实际由于安装精度的问题,总是存在误差,这种误差需要用内参来描述;

内参矩阵:

    fx    s    x0
K =  0    fy   y0
     0    0    1

fx, fy为焦距,一般情况下,两者相等, x0,y0为主点坐标,s为坐标轴倾斜参数,理想情况下为0
外参数矩阵:包括旋转和平移矩阵

相机的位姿估计

参考链接:
像素坐标 Px 乘以深度 zc =相机内参K乘以相机坐标 Pc .
相关链接:

  1. https://zhuanlan.zhihu.com/p/144307108
  2. https://www.cnblogs.com/singlex/p/pose_estimation_1.html

内参标定和估计

相关链接:

  1. Camera Calibration using OpenCV

  2. https://visp-doc.inria.fr/doxygen/visp-daily/tutorial-calibration-intrinsic.html

  3. /home/jialiangfan/visp/build/example/calibration

  4. /home/jialiangfan/visp/build/tutorial/grabber

  5. mv /home/jialiangfan/visp/build/tutorial/grabber/chessboard-* /home/jialiangfan/visp/build/example/calibration

  6. ./calibrate-camera default-chessboard.cfg

通过ros_calibration获得较高精度的内参标定

  1. rosdep install camera_calibration
  2. 普通相机的话,安装usb-cam工具,realsense也可配置,usbcam的配置方法 为https://blog.csdn.net/qq_27865227/article/details/120975769
  3. realsense 或者安装 sudo apt-get install ros-kinetic-realsense2-camera,然后运行 roslaunch realsense2_camera rs_camera.launch align_depth:=true
  4. usb-cam配置下的校对命令:~/ rosrun camera_calibration cameracalibrator.py –size 8×6 –square 0.25 image:=/usb_cam/image_raw camera:=/usb_cam
  5. rosrun camera_calibration cameracalibrator.py –size 8×6 –square 0.028 image:=/usb_cam/image_raw

标定好的Realsense D455参数
[[400.50715871 0. 313.03444875]
[ 0. 413.68114326 234.14594096]
[ 0. 0. 1. ]]

opencv 标定Realsense D455参数

cameraMatrix : [392.716970864628, 0, 243.0185503073266;
0, 387.129884776694, 215.7363588792927;
0, 0, 1]
distCoeffs : [0.06146982267847866, -0.05119212933712309, -0.007642430456467396, -0.05887116845433386, 0.009214258584880468]

从realsense本身api获取的结果

p[319.435 241.826] f[380.528 380.19]

ros_calibration 标定结果

390.989992 0.000000 291.088402
0.000000 386.367613 236.286866
0.000000 0.000000 1.000000

distortion -0.030756 0.135162 -0.006918 -0.015546 0.000000

rectification

1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000

projection

423.408600 0.000000 285.763055 0.000000
0.000000 418.590729 232.499668 0.000000
0.000000 0.000000 1.000000 0.000000

外参数标定

python camera_calibration_show_extrinsics.py –calibration camera.xml –scale_focal 20

通过对若干个图形的姿态确立,初始坐标一般确定为棋盘左上角,反向求解出相机在初始坐标系下的姿态。

参考链接:https://blog.csdn.net/jiaoyangwm/article/details/97752238

realsense 可视化界面

命令行输入:realsense-viewer
rgb相机 帧率最高 60, 画质424*240,帧率30,画质为640×480
深度相机 帧率最高90, 画质比较低, 画质会随着帧率的升高而降低

Realsense机械臂手眼标定

  1. 技术介绍 https://blog.csdn.net/yaked/article/details/77161160
  2. https://editor.csdn.net/md/?not_checkout=1&articleId=128649152
  3. https://zhuanlan.zhihu.com/p/576861119

手眼标定流程记录:

  1. aruco_ros等功能包

  2. easy_handeye功能包 Marker id: 6,大小: 5cm

  3. 改写 easy_hand_eye中的参数

技术教程

  1. Franka+realsense: https://zhuanlan.zhihu.com/p/576861119
  2. visp package: http://wiki.ros.org/visp_hand2eye_calibration
  3. Kinova hand-eye-calibration: https://blog.csdn.net/qq_39367282/article/details/89515338

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2023年3月1日 上午9:55
下一篇 2023年3月1日 上午10:01

相关推荐