当前位置:网站首页>Étalonnage de la caméra monoculaire et de la caméra binoculaire à l'aide de l'outil d'étalonnage kalibr
Étalonnage de la caméra monoculaire et de la caméra binoculaire à l'aide de l'outil d'étalonnage kalibr
2022-06-29 16:42:00 【Super gâteaux 66】
1.Téléchargement et compilation
1.1 Installer les dépendances,En cas d'erreur intermédiaire,La grande dépendance suivante peut être installée plusieurs fois,CorrespondantrosLa version doit également être modifiée,La mienne estmelodic
sudo apt-get install python-setuptools python-rosinstall ipython libeigen3-dev libboost-all-dev doxygen libopencv-dev
sudo apt-get install libopencv-dev ros-kinetic-vision-opencv ros-kinetic-image-transport-plugins ros-kinetic-cmake-modules python-software-properties software-properties-common libpoco-dev python-matplotlib python-scipy python-git python-pip ipython libtbb-dev libblas-dev liblapack-dev python-catkin-tools libv4l-dev
pip install python-igraph
1.2 Compiler
mkdir -p ~/kalibr_ws/src
cd ~/kalibr_ws/src
git clone --recursive https://github.com/ori-drs/kalibr
cd ~/kalibr_ws
source /opt/ros/noetic/setup.bash
catkin init
catkin config --extend /opt/ros/noetic
catkin config --merge-devel # Necessary for catkin_tools >= 0.4.
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin build -DCMAKE_BUILD_TYPE=Release -j4
Questions: Parce que j'ai installé anaconda3,anaconda3Il est livré avecpythonPeut affecterkalibr,Apparemment parce quekalibrAnalyse requiserosbagSac,Donc utilisépython2,Provoque une erreurFailed to load Python extension for LZ4 support. LZ4 compression will not be availabl
Je vais vraiment pleurer ...
Solutions:
Inkalibr_workspace/src/kalibr/aslam_offline_calibration/kalibr/python/kalibr_calibrate_cameras.py Dans le document
Changement "#!/usr/bin/env python" Oui."#!/usr/bin/env python2"
2. Préparation des données
2.1 bagEnregistrement des données
Sera enregistré BAG Enregistrer à nouveau le fichier d'étalonnage , Enlever les mauvaises images ,En même tempsbag La fréquence de 4hz
Ouvrez les deux terminaux séparément , Saisissez la commande et exécutez ,Attendez.topicContribution de
rosrun topic_tools throttle messages /cam_stereo_left/csi_cam/image_raw 4.0 /left
rosrun topic_tools throttle messages /cam_stereo_right/csi_cam/image_raw 4.0 /right
Ouvrir un nouveau terminal, Pour enregistrer des vidéos
rosbag record -O stereo_calibra.bag /left /right
Ouvrir un nouveau terminal, Pour lire l'ensemble de données original
rosbag play 0620_1280x720.bag
2.2 Fichier des paramètres du tableau d'étalonnage
Écris - en un toi - même.,checkboard_8x6_10x10cm.yaml
target_type: 'checkerboard'
targetCols: 8
targetRows: 6
rowSpacingMeters: 0.1
colSpacingMeters: 0.1
target_type: Est le type de plaque d'étalonnage , L'échiquier utilisé ici targetCols: Nombre de points d'angle dans la direction de la colonne d'étalonnage targetRows: Calibrer le nombre de points d'angle dans la direction de déplacement rowSpacingMeters: La largeur de chaque échiquier ,Unit é mcolSpacingMeters: La hauteur de chaque échiquier ,Unit é m
Joindre le fichier de configuration correspondant aux deux autres plaques d'étalonnage
“ Tableau d'étalonnage du Code QR ”
target_type: 'aprilgrid' #gridtype
tagCols: 6 #number of apriltags
tagRows: 6 #number of apriltags
tagSize: 0.088 #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[-]
“ Plaque d'étalonnage circulaire ”
target_type: 'circlegrid' #gridtype
targetCols: 6 #number of circles (cols)
targetRows: 7 #number of circles (rows)
spacingMeters: 0.02 #distance between circles [m]
asymmetricGrid: False #use asymmetric grid (opencv) [bool]
Plaque d'étalonnagepdfGénérer des commandes:
Modifier au besoin --nx,--ny,--tsize,--tspace
rosrun kalibr kalibr_create_target_pdf --type apriltag --nx 6 --ny 6 --tsize 0.02 --tspace 0.3
3. Début de l'étalonnage
Ouvrir le terminal sous le répertoire espace de travail
source YOUR_PATH/devel/setup.bash
rosrun kalibr kalibr_calibrate_cameras --bag /home/lusx/data/stereo_calibra.bag --topics /left /right --models pinhole-radtan pinhole-radtan --target src/Kalibr/config/checkboard_8x6_10x10cm.yaml
--bag: Nom des données d'étalonnage
--topics: La caméra de gauche et de droite topic
--models: Modèle de caméra oculaire gauche et droite
#pinhole-radtan: Les modèles de trous d'épingle les plus courants + Modèle de distorsion brownienne , Pour la plupart des angles inférieurs à 120Appareil photo, Où le paramètre de distorsion contient la distorsion radiale k1,k2Et la distorsion tangentiellep1,p2; Si la distorsion de la caméra n'est pas très grave , Ce modèle est assez bon pour ; Comme monDFOVPour150Appareil photo, Vous pouvez également l'utiliser avec un bon effet de distorsion ;
# pinhole-equi:Modèle de trou d'épingle+ Modèle de distorsion isométrique ,C'est - à - direKB Le type à sélectionner pour le modèle , Le modèle est également largement utilisé , La plupart des lentilles fisheye peuvent également ,Attention!8ParamètreKB Les paramètres de distorsion du modèle sont k1,k2,k3,k4, Même si c'est quatre , Mais contrairement au modèle précédent , Il n'y a ici que les paramètres de distorsion radiale , Sans distorsion tangentielle tangential distortion, La formule correspondant à la projection est également différente ;Et c'est aussiopencvMoyennecv::fisheyeModèles utilisés;
--target: Profil des paramètres du tableau d'étalonnage
Erreur signalée:
Cameras are not connected through mutual observations, please check the dataset. Maybe adjust the approx. sync. tolerance.
La raison en est que les deux caméras ne sont pas synchronisées , La fréquence d'acquisition peut être augmentée à 20hz, La tolérance synchrone peut également être augmentée en même temps --bag-from-to 5 35 --approx-sync 0.04,
Les paramètres complets sont les suivants :
rosrun kalibr kalibr_calibrate_cameras --bag /home/lusx/data/stereo_calibra.bag --bag-from-to 5 100 --topics /left /right --models pinhole-radtan pinhole-radtan --target src/Kalibr/config/checkboard_8x6_10x10cm.yaml --approx-sync 0.04
3.3 Résultats de l'étalonnage
Générer3Fichiers,Les paramètres peuvent être trouvés àstereo_calibra-camchain.yamlVoir,Les détails peuvent être trouvés àstereo_calibra-report-cam.pdfVoir
stereo_calibra-camchain.yamlContenu:
4Optimisation des paramètres
Cependant, les paramètres internes et externes étalonnés ont une portée de traction , Je me demande s'il y a un problème avec les données brutes utilisées , On n'a pas non plus trouvé de référence pour les deux caméras bf, Continue à optimiser. ..
边栏推荐
- How to distinguish between instructions and data in the "group counting" CPU
- Sophon autocv: help AI industrial production and realize visual intelligent perception
- Review of mathematical knowledge: curve integral of type I
- Tutorial | fNIRS data processing toolkit homer2 download and installation
- 一个简单但是能上分的特征标准化方法
- Telnet+ftp to control and upgrade the equipment
- 【Proteus仿真】8位数码管动态扫描显示变化数据
- 6.26CF模拟赛D:黑白条题题解
- Inheritablethreadlocal resolves message loss during message transmission between parent and child threads in the thread pool
- Profil de risque de monnaie stable: l'usdt et l'USDC sont - ils sûrs?
猜你喜欢

Sophon kg upgrade 3.1: break down barriers between data and liberate enterprise productivity

STM32按键消抖——入门状态机思维

How to configure logback? 30 minutes for you to thoroughly learn the code to stay up late and knock

连续10年霸榜第一?程序员「最常用」的编程语言是它?

A simple but scalable feature normalization method

Tool chain empowers hundreds of companies, horizon opens the "Matthew effect" of mass production of intelligent driving

Profil de risque de monnaie stable: l'usdt et l'USDC sont - ils sûrs?

What is the strength of a software testing engineer who can get a salary increase twice a year?

Privacy computing helps secure data circulation and sharing

我,大厂测试员,降薪50%去国企,后悔了...
随机推荐
Science: the interrelated causes and consequences of sleep in the brain
MySQL foundation - multi table query
What's the difference between isempty and isblank? Half of the people can't answer it?
GNN notes: message propagation model
STM32按键消抖——入门状态机思维
MySQL基础——多表查询
A simple but scalable feature normalization method
After 3 years of testing experience, do you know the state transition method for use case design?
贪婪的苹果计划提高iPhone14的价格,这将为中国手机提供机会
Key sprite fighting monsters - multi window and multi thread background skills
UWB precise positioning scheme, centimeter level high-precision technology application, intelligent pairing induction technology
Flutter technology and Practice (1)
Greedy Apple plans to raise the price of iphone14, which will provide opportunities for Chinese mobile phones
MySQL cdc jobmanager 中存了哪些比较耗内存的数据呢?
Possible reasons for not triggering onreachbutton
Is it safe to open a compass account and speculate in stocks? How individuals open accounts for stock trading
Sophon Base 3.1 推出MLOps功能,为企业AI能力运营插上翅膀
数学知识:求组合数 II—求组合数
星环科技数据安全管理平台 Defensor重磅发布
【无标题】