Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

标定平移误差大,每次calibrate_offline会有不同 #19

Open
QING-ML opened this issue Oct 30, 2020 · 9 comments
Open

标定平移误差大,每次calibrate_offline会有不同 #19

QING-ML opened this issue Oct 30, 2020 · 9 comments

Comments

@QING-ML
Copy link

QING-ML commented Oct 30, 2020

  1. 我在使用SR300和2D laser进行标定时,标定结果z轴高度方向误差大约30-40cm,且同一次的数据为什么每次执行calibr_offline的结果会不同

2.标定时使用kalibr_tag是否所有码块都需要在视野内,且旋转幅度是否不能过大

3.能否提供,代码现在默认的laser和camera的外参坐标系

@HeYijia
Copy link
Collaborator

HeYijia commented Nov 5, 2020

  1. 不应该每次执行结果都不一致哈。2. 不需要全部,只需要几个就行,apritag 最好别离相机太远,1-2m。3. 坐标系是 SLAM 中通用的坐标系。相机 z 轴是从相机光心指向图像平面,x 轴是图像平面中心水平从左向右的向量,y 轴是图像平面中心竖直从上往下的向量。 激光水平放在地面,正前方是坐标系的 x 轴,垂直地面向上是 z 轴,y 轴是水平从右往左。

@peterWon
Copy link

peterWon commented Dec 1, 2020

@HeYijia 贺博,您好!我也是平移误差较大,不知道啥原因。我用的鱼眼相机,模型选的是MEI,用Kalibr标的内参,模型用的MEI+radtan。运行二维码检测的时候,轴基本上是准的,自动检测直线看起来也没有问题。标定出的旋转量看着倒是差不多的,平移量出入有点大。

@hushunda
Copy link

hushunda commented Jan 5, 2021

@HeYijia 贺博,您好!我也是平移误差较大,不知道啥原因。我用的鱼眼相机,模型选的是MEI,用Kalibr标的内参,模型用的MEI+radtan。运行二维码检测的时候,轴基本上是准的,自动检测直线看起来也没有问题。标定出的旋转量看着倒是差不多的,平移量出入有点大。
https://github.com/hushunda/CameraLaserCalibrate opencv的MEI模型有他自己的问题

@SquirminatorHotHead
Copy link

SquirminatorHotHead commented Jun 8, 2022

  1. 我在使用SR300和2D laser进行标定时,标定结果z轴高度方向误差大约30-40cm,且同一次的数据为什么每次执行calibr_offline的结果会不同

2.标定时使用kalibr_tag是否所有码块都需要在视野内,且旋转幅度是否不能过大

3.能否提供,代码现在默认的laser和camera的外参坐标系

这个情况很奇怪,我用Qilong Zhang的算法做了测试,最后的结果也是重投影的激光点在实际的激光点上面一些, 其他轴好像就没有什么问题。我的猜测是可能这个是由于算法本身的缺陷导致的,猜测的解决办法是尽可能得多变换calibration target的位姿。(请指正)
Update: #16

另外我看贺博士的项目中, 应该是去掉了相机的IR-Filter使得激光扫描线在图像里面可视化了(或者用了本身不带这个的相机), 用来做为是否对齐的参照数据,这一点好像没有提及(也可能是我疏漏没看到)。

这一块的话有相关论文可以查看,如果对于如何选取相机以及如何在不破坏相机的情况下移除IR-Filter有疑惑,可以DM我,我有一些经验。——————这条留给正好看到此处,并且遇到困惑的小伙伴,没必要重复造轮子

@woshicver
Copy link

@HeYijia 贺博,您好!我也是平移误差较大,不知道啥原因。我用的鱼眼相机,模型选的是MEI,用Kalibr标的内参,模型用的MEI+radtan。运行二维码检测的时候,轴基本上是准的,自动检测直线看起来也没有问题。标定出的旋转量看着倒是差不多的,平移量出入有点大。
https://github.com/hushunda/CameraLaserCalibrate opencv的MEI模型有

  1. 我在使用SR300和2D laser进行标定时,标定结果z轴高度方向误差大约30-40cm,且同一次的数据为什么每次执行calibr_offline的结果会不同

2.标定时使用kalibr_tag是否所有码块都需要在视野内,且旋转幅度是否不能过大

3.能否提供,代码现在默认的laser和camera的外参坐标系

你好,我想问一下你这个标定不准确的问题解决了么,我也是标出来结果误差很大,根据标定板位姿的图像应该比较准确,问题应该在激光点数据有问题,但是感觉也没啥异常。

@woshicver
Copy link

请问,标定误差的问题有解决么,我也是标出来的误差很大

@SquirminatorHotHead
Copy link

请问,标定误差的问题有解决么,我也是标出来的误差很大

你好,这个问题也困扰我很久,最终算是解决了。 要提高calibration的精度,要从至少3个方面去入手:

  1. 相机内参的校正默认比较准确的情况下,你每一帧的image的质量需要提高,这样对于标定平面的估计会更准确。
  2. 激光雷达的数据,这一方面是有提高的空间的。你关注一下这一边你是否预处理了这些数据, 如果用原始数据,不做任何处理,可能会导致标定误差较大。
  3. pose set 的选取,这一点贺博已经援引Zhou Lipu的论文阐述了平行平面几乎等效这个问题 (实际选取位姿的时候,我个人经验是还是挺容易出现很多非常接近平行的平面的)。 位姿的选取可以参照贺博的小视频。 针对标定板,你只需要在 Pitch 跟 Yaw两个方向上转动。 这里要注意,标定板的法向量跟相机的夹角不宜过大,不然可能会导致标定平面的估计出现更多错误。

希望这些经验对你有用。

@zhaqh-github
Copy link

@SquirminatorHotHead 您好,感谢您的解答,请问能不能详细解释一下应该怎么预处理激光雷达数据。我在另外两点上已经尝试了,得到的结果有改善但还不是很精确。

@SquirminatorHotHead
Copy link

@SquirminatorHotHead 您好,感谢您的解答,请问能不能详细解释一下应该怎么预处理激光雷达数据。我在另外两点上已经尝试了,得到的结果有改善但还不是很精确。

预处理怎样的数据?可以发出来看一下么?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants