当前位置: 首页 > wzjs >正文

威海网站开发公司免费推广网站排名

威海网站开发公司,免费推广网站排名,营销型网站建设好不好,网站 高清 标清如何做工具:电脑,D435i。 一、Kalibr标定过程 看了很多博客,这几个就够了,: realsenseD435i imu双目标定 Intel Realsense D435i各类标定教程 Kalibr教程很多不再赘述,推荐用虚拟机安装纯净的18.04系统&…

工具:电脑,D435i。

一、Kalibr标定过程

看了很多博客,这几个就够了,:

realsenseD435i imu+双目标定

Intel Realsense D435i各类标定教程

Kalibr教程很多不再赘述,推荐用虚拟机安装纯净的18.04系统,可以丝滑标定,没有任何报错的烦恼。反正我们也只是要标定文件而已。

注意:1,A4纸按照比例打印Apriltag的标定纸,我选的A0版本用25%打印刚好是22mm,棋盘格可能标定失败!

2、D435i的相机模型请采用  pinhole-radtan 

二、Orbslam V3使用Kalibr标定参数

Orbslam V3的安装由于版本更迭很快,需要单独下载和更新大量的依赖,教程不好推荐,假定各位已经能跑通了。

我主要参考的这个博客,其他也搜索了很多,因为bug太多了……

Ubuntu20.04的ROS环境安装ORB-SLAM3详解_树莓派ubuntu20.04运行orbslam3与ros-CSDN博客

那么需要根据步骤1的标定结果对文件进行修改了。

可参考:

相机校准参数说明_camchain。yaml-CSDN博客

具体单孔相机模型不多解释。这里针对最复杂的双目+IMU进行标定参数对应,只说参数的关系。

Kalibr标定D435i双目+IMU的结果文件有两个(文件名字不要在意)为:imu1_camera1_calibration-camchain-imucam.yaml

cam0:T_cam_imu:- [0.9998667806894084, 0.006375288602338348, 0.015025863337462421, 0.005867223835500914]- [-0.006608125275398803, 0.9998580722259534, 0.015497357353612325, -0.003560363660871571]- [-0.014924930624422952, -0.015594585593654653, 0.9997670005286328, -0.019070029208681203]- [0.0, 0.0, 0.0, 1.0]camera_model: pinholedistortion_coeffs: [-0.0030847663085048207, -0.021891755432892658, -0.004335513153985044, -0.0038385422584184072]distortion_model: radtanintrinsics: [378.387868419645, 378.2456368515959, 321.00438891481826, 233.0759309685256]resolution: [640, 480]rostopic: /infra_lefttimeshift_cam_imu: 0.00212242145236857
cam1:T_cam_imu:- [0.9999484260543486, 0.007762230280121323, 0.006549275724011119, -0.04399664378742102]- [-0.007852876542896054, 0.9998721304325096, 0.013930366626785743, -0.0034326123548541893]- [-0.006440307557313285, -0.013981078836520477, 0.9998815189176836, -0.019274738544956243]- [0.0, 0.0, 0.0, 1.0]T_cn_cnm1:- [0.9999631085946177, 0.0012548406020533656, -0.008497459905133446, -0.05002123029249974]- [-0.0012680412059798696, 0.9999979974683489, -0.0015482670244089613, 0.00010565856048629058]- [0.00849550006037604, 0.0015589850359684046, 0.9999626973264397, -0.000249715146128108]- [0.0, 0.0, 0.0, 1.0]camera_model: pinholedistortion_coeffs: [-0.027086571102767586, 0.010513859321888032, -0.0037243680548281035, -0.004012747581847896]distortion_model: radtanintrinsics: [377.95400193748776, 378.4468964940852, 324.49266716139476, 233.5738570132219]resolution: [640, 480]rostopic: /infra_righttimeshift_cam_imu: 0.0019975113664620916

imu1_camera1_calibration-imu.yaml

imu0:T_i_b:- [1.0, 0.0, 0.0, 0.0]- [0.0, 1.0, 0.0, 0.0]- [0.0, 0.0, 1.0, 0.0]- [0.0, 0.0, 0.0, 1.0]accelerometer_noise_density: 0.013264991905988977accelerometer_random_walk: 0.00032908731500860914gyroscope_noise_density: 0.0016773713474849666gyroscope_random_walk: 2.3216393346264973e-05model: calibratedrostopic: /imutime_offset: 0.0update_rate: 200.0

(1)单孔相机模型参数修改 

根据官网对参数的解释:

https://github.com/ethz-asl/kalibr/wiki/supported-models

  • Camera models
  • pinhole camera model (pinhole)1
    (intrinsics vector: [fu fv pu pv])
  • fu, fv: focal-length
  • pu, pv: principal point
  • Distortion models

  • radial-tangential (radtan)*
    (distortion_coeffs: [k1 k2 r1 r2])

显然,这里的参数对应的就是上面标定文件中相机对应的生成参数。 

而orbslam v3 的自带文档  Calibration_Tutorial.pdf 中说:

那么,即使符号不同,对应关系还是显然的,两个相机同理,我们发现默认参数其实与我们的标定结果差距不大,如果差距很大,那就是标定出了问题。

cam0:intrinsics: [378.387868419645, 378.2456368515959, 321.00438891481826, 233.0759309685256]
对应
kalibr intrinsics vector: [fu fv pu pv]
对应
Orbslamv3 intrinsics vector: [fx fy cx cy]distortion_coeffs: [-0.0030847663085048207, -0.021891755432892658, -0.004335513153985044, -0.0038385422584184072]
对应
kalibr distortion_coeffs: [k1 k2 r1 r2]
对应
Orbslamv3 intrinsics vector: [k1 k2 p1 p2]

(2)双目相机的模型参数修改

orbslam原始文件为:

Tlr: !!opencv-matrixrows: 3cols: 4dt: fdata: [1.0, 0.0, 0.0, 0.0499585,0.0, 1.0, 0.0, 0.0,0.0, 0.0, 1.0, 0.0,0.0, 0.0, 0.0, 1.0]

这个李代数SE(3)矩阵最后一列的从上往下3个元素代表了cam和imu的相对位移xyz,左侧左上开始三行三列是相对旋转,这是李代数的基本知识,简单提一下,可以想象一下大概的位置。

顾名思义,这是两个相机之间的相对关系,理想间距5cm=0.05m,l就是left = cam0;

我们kalibr标定的结果是:

T_cn_cnm1 = T_c1_c0,将cam0转换为cam1坐标,cam0是left,cam1是rightT_cn_cnm1:- [0.9999938453097464, -8.970815804688961e-05, -0.003507320212236771, -0.05008249486188303]- [8.607618757156179e-05, 0.9999994599815999, -0.001035677264616788, 0.00010440579049538496]- [0.0035074112269190645, 0.0010353689935915609, 0.9999933130164073, -0.0004170868473455056]- [0.0, 0.0, 0.0, 1.0]

对应关系很明显,也说明Kalibr涉及到的旋转顺序与Orbslam的旋转顺序相反,参考Ubuntu 18.04 ———(Intel RealSense D435i)标定后结果用于VINS-Fusion

需要将我们的标定 T_cn_cnm1,matlab求个逆矩阵填进去就行了

Tlr: !!opencv-matrixrows: 3cols: 4dt: fdata: [0.999963108594631, -0.001268041205980, 0.008495500060376, 0.050021640373463,0.001254840602053,  0.999997997468362, 0.001558985035968, -0.000042500375990,-0.008497459905134 , -0.001548267024409, 0.999962697326453, -0.000175183980065,0.0, 0.0, 0.0, 1.0]

(3)相机与IMU相对关系的模型参数修改

  orbslam的原始文件中为:

# Transformation from body-frame (imu) to left camera
Tbc: !!opencv-matrixrows: 4cols: 4dt: fdata: [1,0,0,-0.005,0,1,0,-0.005,0,0,1,0.0117,0.0, 0.0, 0.0, 1.0]

根据orbslam定义,b就是base=imu,c是left=cam0

而我的标定结果,用了两个d435i分别如下,由于IMU本身就漂移啊,个人建议这个标定就用默认的就好,一两个毫米的误差我觉得真的很难一次标出来:

第一个D435i,cam0就是orbslam中的左侧相机:
cam0:T_cam_imu:- [0.9998667806894084, 0.006375288602338348, 0.015025863337462421, 0.005867223835500914]- [-0.006608125275398803, 0.9998580722259534, 0.015497357353612325, -0.003560363660871571]- [-0.014924930624422952, -0.015594585593654653, 0.9997670005286328, -0.019070029208681203]- [0.0, 0.0, 0.0, 1.0]第二个D435i,cam0就是orbslam中的左侧相机:
cam0:T_cam_imu:- [0.9999963676343772, -0.0016489760336739641, 0.0021320403595009216, -0.00042897830044040606]- [0.0016380255086217857, 0.9999855113884378, 0.0051277563943757844, -0.0019095959039686333]- [-0.0021404650165971592, -0.0051242454319954545, 0.9999845801402479, -0.007927239727198445]- [0.0, 0.0, 0.0, 1.0]

以上参数对应关系一目了然,想要用还是需要求个逆矩阵,不赘述了。 

(4)其他相机参数:

由于标定文件中没有参考,建议默认,分辨率和fps按照实际情况改就行了。

# Camera resolution
Camera.width: 640
Camera.height: 480# Camera frames per second 
Camera.fps: 30.0# Color order of the images (0: BGR, 1: RGB. It is ignored if images are grayscale)
Camera.RGB: 1# Image scale, it changes the image size to be processed (<1.0: reduce, >1.0: increase)
Camera.imageScale: 0.5 # 0.5 #0.7071 # 1/sqrt(2)# Close/Far threshold. Baseline times.
ThDepth: 40.0
# stereo baseline times fx
Camera.bf: 19.114771561

(4)IMU参数:

orbslam中的文件为:

# IMU noise (Use those from VINS-mono)
IMU.NoiseGyro: 1e-3 # 2.44e-4 #1e-3 # rad/s^0.5
IMU.NoiseAcc: 1e-2 # 1.47e-3 #1e-2 # m/s^1.5
IMU.GyroWalk: 1e-6 # rad/s^1.5
IMU.AccWalk: 1e-4 # m/s^2.5
IMU.Frequency: 200

我标定的结果如下,imu=base,所以之间的SE(3)就是单位矩阵:

  T_i_b:- [1.0, 0.0, 0.0, 0.0]- [0.0, 1.0, 0.0, 0.0]- [0.0, 0.0, 1.0, 0.0]- [0.0, 0.0, 0.0, 1.0]accelerometer_noise_density: 0.013264991905988977accelerometer_random_walk: 0.00032908731500860914gyroscope_noise_density: 0.0016773713474849666gyroscope_random_walk: 2.3216393346264973e-05model: calibratedrostopic: /imutime_offset: 0.0update_rate: 200.0

对应关系一目了然。

其余参数是orbslam的参数了,需要根据实际情况调整,目前我还用默认的。

http://www.dtcms.com/wzjs/420985.html

相关文章:

  • 菏泽哪家网站设计公司好新开网店自己如何推广
  • 黑糖主题3.0wordpressseo优化推广流程
  • 手机端网站制作济南做网站建设的公司
  • 企业展厅设计公司哪家靠谱哈尔滨关键词优化报价
  • 如何学好网站建设暴风seo论坛
  • 来宾北京网站建设查权重的软件
  • scratch在线编程网站seo知识分享
  • 如何查看一个网站是什么程序做的公司网站如何在百度上能搜索到
  • 音乐网站如何建设360社区app
  • 做网站怎么插音频网络服务器地址怎么查
  • 深圳网站搜索引擎优化淘宝直通车推广怎么做
  • 湖南seo服务深圳网站seo优化
  • 100个免费推广网站下载如何注册网站免费注册
  • 龙华做手机网站色盲测试图片
  • 淘宝网站建设百度百科网站运营优化培训
  • 北京服务器托管seo外包公司兴田德润官方地址
  • 建行网站用户名是什么百度云搜索引擎入口盘多多
  • 惠州专业做网站公司廊坊seo推广公司
  • 怎样保存网站资料做证据上海网站建设联系方式
  • 做网站标准步骤网络营销广告策划
  • 简要叙述如何规划建设一个企业网站长沙seo搜索
  • 网站建设维护协议电商平台建设方案
  • 西安做公司网站湖北网站seo策划
  • 企业网站下周网推平台有哪些
  • 唐山网站建设服务网络推广理实一体化软件
  • 高端营销型网站制作新闻 最新消息
  • 商城网上购物北京百度快速优化排名
  • 免费制作网站net域名seo网站快排
  • 网站首页设计怎么写做营销策划的公司
  • 合肥企业做网站橘子seo查询