本文主要包括两部分内容:1. 基于单个Marker的位姿估计;2. 基于标定板的位姿估计。
Marker pose estimate
Created 2020.07.14 by Cong Yu; Last modified: 2020.07.14-v1.0.0 -> 2022.08.30-v1.1.0
Contact: windmillyucong@163.com
Copyleft! 2022 Cong Yu. Some rights reserved.
References
- opencv module ArUco Marker Detection 一份重要的参考资料
- opencv tutorials ArUco marker detection (aruco module)
- code OpenCV例程 detect_board_charuco
1. 使用单个ArUco Marker的姿态估计
单个ChArUco Marker的姿态估计
// todo(congyu)
2. 使用ChArUco标定板的姿态估计
Pose estimation using a ChArUco board.
过程
- code OpenCV例程 detect_board_charuco
主要函数: estimatePoseCharucoBoard()
1
2
3
4
5
6
7
8
9
bool cv::aruco::estimatePoseCharucoBoard ( InputArray charucoCorners,
InputArray charucoIds,
const Ptr< CharucoBoard > & board,
InputArray cameraMatrix,
InputArray distCoeffs,
InputOutputArray rvec,
InputOutputArray tvec,
bool useExtrinsicGuess = false
)
1
cv.aruco.estimatePoseCharucoBoard( charucoCorners, charucoIds, board, cameraMatrix, distCoeffs, rvec, tvec[, useExtrinsicGuess] ) -> retval, rvec, tvec
参数说明
- charucoCorners 检测出的charuco的角点
- charucoIds 检测出的角点的id
- board 标定板的边框
- cameraMatrix 相机内参矩阵
- $A = \begin{bmatrix} f_x & 0 & c_x \ 0 & f_y & c_y \ 0 & 0 & 1 \end{bmatrix}$
- distCoeffs 畸变参数
- rvec [output] Output vector (e.g. cv::Mat) corresponding to the rotation vector of the board (see cv::Rodrigues). 罗德里格斯。由旋转向量表达的姿态
- tvec 位置
- useExtrinsicGuess 定义是否使用r,t的初始猜测
注意:得到的位姿是标定板在相机坐标系下的位姿,即相机坐标系为原点。
Contact
Feel free to contact me windmillyucong@163.com anytime for anything.