2

我目前正在做一个项目,我需要确定一个上面有 ArUco 标记的机器人是否需要旋转到某个方向,以便它的前面指向一个特定的对象,为此它的中心点是已知的。所以基本上,我得到的是球的中心点和标记角的 4 个点。

我包括一个我所说的图像的例子。注意标记纸板上绘制的小箭头。它显示了机器人的正面。

最后:我有一个捕捉帧的相机,程序打印出旋转矢量。出于某种原因,即使我故意将机器人留在同一位置,每一帧的值都不同。谁能解释一下这可能是什么?

非常感谢。

示例图像

编辑:我遇到了旋转向量波动排序的问题;现在我只需要弄清楚如何使用它的输出来获取机器人的方向,即相对于一个球(我有它的中心点),这显然是通过 X 轴完成的。

我正在添加另一个图像,其中 x 轴显示为红色,y 轴显示为蓝色,z 轴显示为绿色。向量的类型为 cv::Vec3d。

首先,一些代码:

std::vector<cv::Vec3d> rvecs, tvecs;
cv::aruco::estimatePoseSingleMarkers(corners, 0.05, CAMERA_MATRIX, DISTORTION_COEFFICIENTS, rvecs, tvecs);

图像显示了我的意思:

示例旋转

4

0 回答 0