d435i camera和imu内外参标定 报错汇总

内外参标定参考贴:【1】realsenseD435i imu+双目标定_d435i双目标定-CSDN博客

【2】https://blog.csdn.net/Hanghang_/article/details/103546033

FAQ

Q1:编译code_utils出现如下报错

A1:

sudo apt-get install libdw-dev

Q2:编译code_utils出现如下报错

A2:  将sumpixel_test.cpp中# include "backward.hpp"改为:#include “code_utils/backward.hpp”

Q3:在编译时提示找不到opencv相关标志:
‘CV_LOAD_IMAGE_GRAYSCALE’ was not declared in this scope
CV_LOAD_IMAGE_UNCHANGED’ was not declared in this scope
‘CV_MINMAX’ was not declared in this scope

‘CV_LOAD_IMAGE_GRAYSCALE’ was not declared in this scope
CV_LOAD_IMAGE_UNCHANGED’ was not declared in this scope
‘CV_MINMAX’ was not declared in this scope

A3:原因是作者代码使用的opencv版本是3.x,而自己默认的opencv版本是4.4.0,在新版本中相关的定义已经发生了变化,解决办法有两个:
方法一:
碰巧自己电脑也装了opencv3.2,该一下代码默认使用的opencv版本就好了,一步到位
在CMakeLists.txt文件中,将find_package(OpenCV REQUIRED)改为find_package(OpenCV 3.2 REQUIRED),3.2即自己的电脑上opencv3.x的具体版本。

方法二:
将对应3.x版本的旧标志替换为4.x版本的新标志即可,参考如下:

   CV_LOAD_IMAGE_UNCHANGED -> cv::IMREAD_UNCHANGED
   CV_LOAD_IMAGE_GRAYSCALE -> cv::IMREAD_GRAYSCALE
   CV_LOAD_IMAGE_COLOR     -> cv::IMREAD_COLOR
   CV_LOAD_IMAGE_ANYDEPTH  -> cv::IMREAD_ANYDEPTH

   CV_MINMAX = NORM_MINMAX

参考贴:【3】https://blog.csdn.net/guanjing_dream/article/details/124960771

【4】http://t.csdnimg.cn/Kkd8s

Q4:imu_utils编译出现报错

A4:在报错文件中包含以下头文件

#include<fstream> 

Q5:kalibr安装编译报错

fatal error: libv4l2.h: No such file or directory compilation terminated.

A5:

sudo apt install libv4l-dev

Q6:kalibr中的功能包编译中缺少suitesparse库

A6:

apt-cache search suitesparse # 找一下apt源有没有
sudo apt-get install libsuitesparse-dev

Q7:kalibr的标定板github上把原来常用的几种标定板清除了,需要自定义标定板尺寸

A7: 参考贴【5】基于Ubuntu 20.04 安装 Kalibr 踩坑记录_kalibr_create_target_pdf:未找到命令_Diedider的博客-CSDN博客

 rosrun kalibr kalibr_create_target_pdf --type apriltag --nx 6 --ny 6 --tsize 0.055 --tspace 0.3

五个参数对应标定板类型、x向tag个数、y向tag个数、tag大小(m)(大方块)、tag的间隔大小(m)(小方块)

这里结合yaml文件有三个参数需要解释tagsize、space(=spacing)、tagspacing.

官方给出的解释和命令行的命名前后不对照,看着比较乱。

图片是官方的解释

图中tagsize和space是标定板的实际尺寸,tagspacing是计算得到的。

而命令行中的--tsize、--tsapce分别对应的是图中的tagsize、tagspacing。

因此在用命令行获取标定板时最后一个参数需要自己计算获得,不能直接填小方块space的尺寸。

官方yaml文件

target_type: 'aprilgrid' #gridtype
tagCols: 6               #number of apriltags
tagRows: 6               #number of apriltags
tagSize: 0.055           #size of apriltag, edge to edge [m]
tagSpacing: 0.3          #ratio of space between tags to tagSize
                         
#example: tagSize=2m, spacing=0.5m --> tagSpacing=0.25[-]

---------

通过命令行获得标定文件后使用自定义缩放40%打印,A4纸刚好能打印出来 。

原尺寸:6X6 tags 6乘6个格子 一个大格子size=5.5cm 一个小格子spacing=1.65cm

40%的缩放:6X6 tags 一个大格子size=2.2cm 一个小格子spacing=0.66cm

使用该命令可能会发生如下报错

No module named 'pyx'

解决:

sudo apt-get install python3-pyx

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值