VIO第一讲习题

1、文献阅读(我阅读的是“A Review of Visual-Inertial Simultaneous Localizationand Mapping from Filtering-Based andOptimization-Based Perspectives“这篇VIO综述文章)

1、

整体上视觉和IMU定位方案存在一定互补性质,(1)IMU适合计算时间短,快速的运动;(2)视觉适合计算时间长,慢速的运动;同时,可利用视觉定位信息来估计IMU的零偏,减少IMU由零偏导致的发散和累积误差;反之,IMU可以为视觉提供快速运动是的定位,IMU可以提供尺度信息,避免单目无法测尺度。

2、

常见融合方案:VI-ORB,MSCKF,VINS-mono,OKVIS,ROVIO,S-MSCKF

应用:AR,VR,无人驾驶,移动机器人,微型飞行器自主导航,水下无人潜航器auv

3、

(1)VIO与深度学习结合:论文题目:Selective Sensor Fusion for Neural Visual-Inertial Odometry,本文提出了一种新颖的端对端选择性传感器融合框架,用于单目VIO,融合单目图像和IMU,以此来估计轨迹,同时提高对实际问题的鲁棒性,如数据丢失和损坏或传感器同步不良。结果证明了特别是在存在损坏的数据的情况下,融合策略比直接融合具有更好的性能。

(2)Active SLAM:On the Importance of Uncertainty Representation inActive SLAM

(3)多传感器融合和硬件集成:硬件集成:A Embedding SLAM algorithms: Has it come ofage?

多传感器融合:Vehicle Localization Based on Visual Lane Marking and Topological Map Matching

(4)复杂动态环境中的应用:Collaborative Visual SLAM in Dynamic Environments.

(5)利用深度学习实现深度估计:CNN-SVO

2、

1、比较程序:

#include<iostream>
#include<vector>

#include<Eigen/Core>
#include<Eigen/Dense>
#include<Eigen/Geometry>

using namespace std;
using namespace Eigen;

int main(int argc, char **argv)
{

    Vector3d rot_axis=Eigen::Vector3d::Random();
    rot_axis.normalize();
    Eigen::AngleAxisd  rot_angle_axis(M_PI/4,rot_axis);
    Eigen::Matrix3d  rotation_matrix=rot_angle_axis.toRotationMatrix();
    cout<<"初始旋转矩阵 "<< endl << rotation_matrix << endl;
    Quaterniond q = Quaterniond(rot_angle_axis);
    
    Vector3d w(0.01, 0.02, 0.03); //旋转向量
    double theta = w.norm(); //旋转向量对应的旋转角
    AngleAxisd w_rot_vector(theta,w.normalized()); //w.normalized()为旋转轴,w_rot_vector为角轴
    Matrix3d w_rot_matrix = w_rot_vector.toRotationMatrix(); //w_rot_matrix为旋转矩阵
    rotation_matrix = rotation_matrix * w_rot_matrix;
    cout << "旋转矩阵" << endl << rotation_matrix << endl;
    
    Quaterniond q_w = Quaterniond(1, 0.5*w(0), 0.5*w(1), 0.5*w(2));
    q = q * q_w;
    q.normalized();
    cout <<"四元数" << endl << q.toRotationMatrix() << endl;
    return 0;
}

CMakeLists.txt

cmake_minimum_required(VERSION 2.8)

project(compare)

include_directories("/usr/include/eigen3")

add_executable(compare compare.cpp)

target_link_libraries(compare ${Eigen3_INCLUDE_DIRS})

结果

 

3、

1、

2、

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值