发布时间:2023-03-31 文章分类:电脑基础 投稿人:樱花 字号: 默认 | | 超大 打印

相机的内外参

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

为什么要内参标定

内参矩阵:

    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. https://learnopencv.com/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 8x6 --square 0.25 image:=/usb_cam/image_raw camera:=/usb_cam
  5. rosrun camera_calibration cameracalibrator.py --size 8x6 --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,画质为640x480
深度相机 帧率最高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