vins博客的一部分7

initFramePoseByPnP(frame_count, Ps, Rs, tic, ric)

其中,输出在Ps,Rs中,tic为tbc ,ric为Rbc

1、将本帧所有的 已知深度的点,利用它第一次出现的帧的位姿和当时三角化出的xyz,来计算出其世界系坐标并存入pts3D,相应的当前帧的归一化平面坐标存入pts2D,步骤为:

  • points先由在相机系的位置–>IMU系
  • 由points在IMU系的位置->point在世界系 (Rs,Ps为imu系相对世界系的位姿)

P i m u = R b c ∗ P c a m + t b c P_{imu} = R_{bc} * P_{cam} + t_{bc} Pimu=RbcPcam+tbc

P b = R w b ∗ P i m u   + t w b P_b = R_{wb} * P_{imu}~ + t_{wb} Pb=RwbPimu +twb

Vector3d ptsInIMU = ric[0] * (point * estimated_depth) + tic[0];//归一化了, 乘逆深度才是真实坐标
Vector3d ptsInWorld = Rs[ ] * ptsInCam + Ps[ ];
  • 转换完放入pts3D即可,同时在当前帧的平面坐标直接放pts2D

由上一帧位姿(相对IMU系)和外参,得到上一帧的Cam位姿 :

Rwc = Rwb * Rbc

Pwc = Rwb * Pbc + twb

RCam = Rs[frameCnt - 1] * ric[0];//Rwc,camera相对word位置
PCam = Rs[frameCnt - 1] * tic[0] + Ps[frameCnt - 1];

2、由3D点坐标、本帧对应2D点坐标,便可求解本帧位姿(imu积分得到的位姿 转到世界系下的RCam、PCam作为优化初值)

solvePoseByPnP(RCam, PCam, pts2D, pts3D)//结果更新在Cam和PCam

3、最后再将本本帧的RCam和PCam转到IMU系下,放入Rs[frameCnt], Ps[frameCnt]

triangulate(frame_count, Ps, Rs, tic, ric)

利用本帧的位姿Rs Ps(相对imu系)和外参Rbc计算左右相机位姿Twc0Twc1 (即[R, t]) leftPose, rightPose

利用svd方法对双目point0, point1进行三角化,输出point3d为相对世界系的Pw ,

triangulatePoint(leftPose, rightPose, point0, point1, point3d);

变为相对左相机坐标系下的坐标 Rcw T * Pw + tcw,

最后把深度提取出来,用feature.estimated_depth = depth放到FeaturePerId的逆深度属性中

<think>好的,用户想了解VINS-SLAM的相关教程或文档。首先,我需要确定VINS-SLAM的核心资料和常用资源。根据提供的引用,VINS-Mono是基础,PL-VINS是扩展,而VINS-Fusion涉及多传感器融合。用户可能需要官方文档、代码仓库、论文解析和社区教程。 首先,检查引用中的资料。引用[1]和[2]提到了VINS-Mono和PL-VINS的论文,引用[3]涉及初始化过程。这些可以作为理论部分的参考。接下来,用户可能需要实际操作指南,比如GitHub代码库和官方文档。VINS-Mono和VINS-Fusion的GitHub页面通常有详细的安装和使用说明,应该推荐。 然后,考虑中文社区的教程,比如优快云和知乎,用户可能更习惯中文资料。引用中提到的博客和知乎文章可以满足这一需求。此外,视频教程如B站上的课程也是很好的学习资源,应该包括进去。 用户可能还需要了解相关工具,如ROS和Ubuntu环境配置,这些在官方文档中会有涉及。同时,论文的深入解析能帮助理解算法原理,尤其是视觉惯性对齐、传感器标定等关键部分。 需要确保提供的链接和资源是最新的,比如GitHub仓库是否活跃,博客文章是否有更新。另外,分点整理资源类型,如官方资源、论文解析、实践教程和社区讨论,让用户更容易查找。 最后,生成相关问题时要覆盖理论、实现、优化和应用,这样用户可以根据需要进一步探索。例如,VINS的初始化流程、多传感器融合方法,以及实际应用中的挑战等。</think>以下是关于VINS-SLAM的教程和文档资源整理,包含理论和实践内容: ### 一、核心资源与文档 1. **官方代码仓库** - **VINS-Mono** GitHub地址:https://github.com/HKUST-Aerial-Robotics/VINS-Mono 包含完整的单目视觉惯性SLAM实现,提供ROS节点和数据集测试脚本[^1] - **VINS-Fusion**(多传感器扩展) GitHub地址:https://github.com/HKUST-Aerial-Robotics/VINS-Fusion 支持多目相机、GPS等多源数据融合,文档含参数配置说明[^3] 2. **论文解析** - VINS-Mono论文中文翻译: [《VINS-Mono: 一种鲁棒且通用的单目视觉惯性状态估计器》](https://blog.youkuaiyun.com/qq_41839222/article/details/85683373) - PL-VINS论文解读(含线特征优化): [《PL-VINS: 实时点线特征融合的单目视觉惯性SLAM》](https://zhuanlan.zhihu.com/p/452666946) [^2] ### 二、关键实现流程 1. **初始化与标定** - 视觉惯性对齐(Visual-Inertial Alignment) 通过预积分技术联合优化IMU参数和视觉数据,解决尺度不确定性问题 - 传感器标定流程: ```bash # VINS-Fusion中的标定示例 roslaunch vins vins_rviz.launch rosrun vins vins_node src/config/your_camera_config.yaml ``` 2. **系统架构** $$ \begin{cases} \text{前端:FAST特征点跟踪+光流法} \\ \text{后端:基于滑动窗口的紧耦合优化} \\ \text{闭环检测:DBoW2词袋模型} \end{cases} $$ [^1] ### 三、实践教程推荐 1. **优快云系列教程** - [《VINS-Mono代码详细解析》](https://blog.youkuaiyun.com/qq_41839222/series) 涵盖初始化、边缘化等核心模块代码逐行分析 - [《Ubuntu18.04配置VINS-Fusion指南》](https://blog.youkuaiyun.com/learning_tortosie/article/details/103878456) 2. **视频课程** - B站《VINS-SLAM从理论到实践》:https://www.bilibili.com/video/BV1W44y1z7HK 包含公式推导与ROS实验演示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值