首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用OpenCV SolvePnP对架空相机姿态估计的结果是离高度几厘米

用OpenCV SolvePnP对架空相机姿态估计的结果是离高度几厘米
EN

Stack Overflow用户
提问于 2017-12-12 09:00:36
回答 1查看 620关注 0票数 1

我想得到的姿态(翻译: x,y,z和旋转: Rx,Ry,Rz在世界坐标系)的架空相机。通过移动带有机器人手臂的ChArUco校准板(如https://www.youtube.com/watch?v=8q99dUPYCPs),我获得了许多目标点和图像点。正因为如此,我已经有了所有目标点的精确位置。

为了将多个点输入solvePnP,我将第一个检测模式(ChArUco板)设置为第一个对象,并将其作为对象坐标系的原点。然后,我将检测到的对象点(从第二种模式到最后一种模式)添加到第一检测对象点的坐标系中(对象帧的原点是第一个对象的原点)。

在得到相机和物体的坐标系之间的转换后,我根据这个变换计算出相机的姿态。

最初的结果看起来很好,但是当我用尺子或磁带测量相机的绝对姿势时,我注意到的外部校准结果对于z方向(相机的高度)大约是15-20毫米,尽管其他的(x,y,Rx,Ry,Rz)几乎是正确的。结果是一样的,即使我改变了物体点的范围,通过不同的移动机器人手臂,它最终总是有几厘米的距离的高度。

以前有没有人经历过类似的问题?我想知道任何我能尝试的事情。当深度方向(z)不准确时,常见的错误是什么?

EN

回答 1

Stack Overflow用户

发布于 2017-12-13 09:56:59

我不知道如何度量z,但我相信用标尺测量的不是z,而是euclidean distance,它的计算方式如下:

代码语言:javascript
运行
复制
d=std::sqrt(x*x+y*y+z*z);

让我们举个例子,如果x=2; y=2; z=2;,那么dd~3,5,所以3.5-2=1.5z和尺子之间的区别,当你说距离z方向约15-20毫米时。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47768656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档