# 学长资料
1. [https://github.com/uzh-rpg/rpg_svo_pro_open](https://github.com/uzh-rpg/rpg_svo_pro_open)
苏黎世大学开源双目惯性融合视觉里程计,带SLAM。
上次安装好像失败了,应当测试是否可以流畅合理运行
2. [https://github.com/uzh-rpg/rpg_svo_pro_gps](https://github.com/uzh-rpg/rpg_svo_pro_gps)
苏黎世大学开源双目惯性融合GPS里程计,为上一个的升级版
考虑到GPS信号的干扰,可能无法正常使用,因此先不考虑。但是优势在于GPS信号可以有效减少发散现象的产生
3. [https://github.com/HKUST-Aerial-Robotics/VINS-Fusion](https://github.com/HKUST-Aerial-Robotics/VINS-Fusion)
港科大双目惯性融合视觉里程计,备选项
4. [https://github.com/KumarRobotics/msckf_vio](https://github.com/KumarRobotics/msckf_vio)
古老的视觉里程计(2017年),毕设用的,18.04能跑通,MSCKF结构。这次先不用这个,这个也是经典的版本了,有人做过单目的
5. [https://github.com/KumarRobotics/multicam_calibration](https://github.com/KumarRobotics/multicam_calibration)
上一家同源的多相机标定程序,优势可能在于他过程更可视化,但是也没方便到哪里去
6. [https://github.com/uzh-rpg/rpg_trajectory_evaluation](https://github.com/uzh-rpg/rpg_trajectory_evaluation)
这个是评估程序,用于评估视觉里程计准确性
7. [https://github.com/rpng/R-VIO](https://github.com/rpng/R-VIO)
单目的视觉惯性里程计实现
8. [https://github.com/MIT-SPARK/Kimera-VIO-ROS](https://github.com/MIT-SPARK/Kimera-VIO-ROS)
麻省理工的一个vio,论文没看过,不知道咋样,先放着吧
9. [https://github.com/HKUST-Aerial-Robotics/GVINS](https://github.com/HKUST-Aerial-Robotics/GVINS)
港科大的vins带GPS
# My ideas & asked questions
## 1、可以考虑使用ORB-SLAM2做双目视觉里程计
[GitHub - raulmur/ORB_SLAM2: Real-Time SLAM for Monocular, Stereo and RGB-D Cameras, with Loop Detection and Relocalization Capabilities](https://github.com/raulmur/ORB_SLAM2)
## 2、SE(3)优化
[SLAM学习笔记(二) - 柒月的博客 QIY.NET](https://qiy.net/2020/06/27/SLAM2/)
SE(3)(Special Euclidean Group in 3D)是三维欧几里德变换组的一部分,用于表示三维空间中的刚体变换(平移和旋转)
## 3、ORB算法
[ORB 特征 - SLAM 之旅](https://lsxiang.github.io/Journey2SLAM/computer_vision/ORB/)
高斯金字塔:
高斯金字塔(Gaussian Pyramid)是一种图像处理技术,用于在不同分辨率的图像之间构建一系列图像。
高斯金字塔的构建过程如下:
1. **基础图像(Base Image)**:首先,从原始图像开始,这是金字塔的底层。通常,这个图像是原始图像的分辨率最高的版本。
2. **下采样(Downsampling)**:通过应用高斯滤波和降低采样率,将基础图像缩小到较低的分辨率,从而生成下一层的图像。这个操作减小了图像的尺寸,同时模糊了图像以降低高频噪声。
3. **重复步骤**:上述步骤循环进行,每次对前一层图像进行下采样和高斯滤波,生成一个新的较小分辨率的图像。这一过程可以重复多次,生成金字塔的各个级别。
4. **金字塔顶层**:金字塔的顶层通常是包含最低分辨率的图像。
高斯金字塔的主要应用包括:
1. **图像缩放**:通过访问金字塔的不同级别,可以实现图像的缩小和放大,而不至于失去太多细节。
2. **特征提取**:在不同分辨率的图像上提取特征,可以用于目标检测、匹配和跟踪。
3. **纹理分析**:在不同尺度下对图像进行分析,有助于识别和分析纹理特征。
4. **图像金字塔匹配**:用于在不同分辨率下匹配图像,从而提高鲁棒性和速度。
## 4、IMU预积分
[imu预积分理解及推导](https://zhuanlan.zhihu.com/p/563177244)
## 5、鲁棒性
指系统在扰动或不确定的情况下仍能保持它们的特征行为。
## 6、绝对尺度估计
是计算机视觉和机器学习领域中的一个重要任务,用于确定图像或视频中物体的真实尺寸或相对尺度。这种估计通常涉及到通过图像或视频中的参考对象或特征来推断物体的尺寸,从而将图像中的物体与实际世界中的尺寸联系起来。
## 7、紧耦合
## 8、vins-fusion源代码及注释:
源代码:
[GitHub - HKUST-Aerial-Robotics/VINS-Fusion: An optimization-based multi-sensor state estimator](https://github.com/HKUST-Aerial-Robotics/VINS-Fusion?tab=readme-ov-file)
注释:
[GitHub - kuankuan-yue/VINS-FUSION-leanrning: VINS-FUSION中文注释版.目前网络上对于VINS-mono的代码已经有很多讲解和注释了,但是对于VINS-FUSION(以下简称VF)的注释还是很少的,刚好本人最近也正在学习VIO的相关知识,所以对VF按照程序执行顺序进行了十分详细的注释,同时为了和大家进行交流学习,所以把相关注释代码进行开源。因水平有限,错误肯定不少,还请各位大佬们指正。](https://github.com/kuankuan-yue/VINS-FUSION-leanrning?tab=readme-ov-file)
[古月居 - ROS机器人知识分享社区](https://www.guyuehome.com/detail?id=1825475925601251329)
[VINS - Fusion GPS/VIO 融合 一、数据读取_projectiontwoframeonecamfactor::sqrt_info = focal_-CSDN博客](https://blog.csdn.net/hltt3838/article/details/109722388?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171107589116800182141624%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171107589116800182141624&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-3-109722388-null-null.nonecase&utm_term=vins-fusion&spm=1018.2226.3001.4450)
[VINS - Fusion GPS/VIO 融合 二、数据融合_vins fusion pubodometry rviz-CSDN博客](https://blog.csdn.net/hltt3838/article/details/109725845)
## 9、mavros中gps的节点名称:
消息名称:mavros/global_position/global
类型:sensor_msgs::NavSatFix
头文件:sensor_msgs/NavSatFix.h
成员变量:
```plain
uint8 COVARIANCE_TYPE_UNKNOWN=0
uint8 COVARIANCE_TYPE_APPROXIMATED=1
uint8 COVARIANCE_TYPE_DIAGONAL_KNOWN=2
uint8 COVARIANCE_TYPE_KNOWN=3
std_msgs/Header header
uint32 seq
time stamp
string frame_id
sensor_msgs/NavSatStatus status
int8 STATUS_NO_FIX=-1
int8 STATUS_FIX=0
int8 STATUS_SBAS_FIX=1
int8 STATUS_GBAS_FIX=2
uint16 SERVICE_GPS=1
uint16 SERVICE_GLONASS=2
uint16 SERVICE_COMPASS=4
uint16 SERVICE_GALILEO=8
int8 status
uint16 service
float64 latitude
float64 longitude
float64 altitude
float64[9] position_covariance
uint8 position_covariance_type
```
## 10、各节点频率:
gps:
IMU:

红外相机:

# 流程图
1、研究内容

2、基于ORB算法的特征点检测与跟踪的方法研究

3、基于滤波的双目视觉惯性里程计的实现方法研究

4、基于双目视觉惯性里程计和GPS数据融合的方法研究

#