内外参标定参考贴:【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
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