深蓝学院VIO课程学习笔记 VIO概述

VIO概述

1. VIO整体概述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述松耦合:各部分自己算自己的,最后单独把数据来算
紧耦合:同时考虑这两个问题(效果更好)
在这里插入图片描述IMU+GPS精度可以达到cm级,但是受环境影响比较大

融合方案
在这里插入图片描述采用卡尔曼滤波,当一边数据来源不准确时,整体受影响

在这里插入图片描述在这里插入图片描述

2. 预备数学知识

2.1 三维刚体运动

在这里插入图片描述在这里插入图片描述

2.2 四元数

在这里插入图片描述
在这里插入图片描述在这里插入图片描述对时间求导

在这里插入图片描述

2.3 李代数

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这个课程就没有怎么用 S E ( 3 ) SE(3) SE(3), 直接用 S O ( 3 ) + t SO(3)+t SO(3)+t

3. 作业

在这里插入图片描述

test.cpp

#include <iostream>
#include <ctime>

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

#include <sophus/so3.h>
#include <sophus/se3.h>

using namespace std;

int main()
{
	Eigen::Vector3d w(0.01,0.02,0.03);
	
	Eigen::Matrix3d R_I = Eigen::Matrix3d::Identity();
	Sophus::SO3 SO3_R_I(R_I);
	Eigen::Quaterniond q_I = Eigen::Quaterniond(R_I);
	
	// 输出更新之前的R和q
	cout << endl << "before update, R is: " << endl << SO3_R_I.matrix() << endl;
	cout << endl << "before update, q is: " << q_I.coeffs().transpose()<< endl;
	
	//update
	cout << "update ..." << endl;
	
	Sophus::SO3 SO3_updated = SO3_R_I * Sophus::SO3::exp(w); //对R 进行右乘更新
	cout << endl << "updated, R is: " << endl << SO3_updated.matrix() << endl;
	
	Eigen::Quaterniond q_w(1.0,0.005,0.01,0.015);
	q_w.normalize();
	
	q_I = q_I * q_w;
	cout << endl << "updated, q is: " << q_I.coeffs().transpose()<< endl;
	
	cout << "updated, from q to R is: " <<endl << q_I.toRotationMatrix()<< endl;
	
	return 0;
}

CMakeLists.txt

cmake_minimum_required(VERSION 2.8)

project(test)
include_directories( "/usr/include/eigen3" )

# 为使用 sophus ,需要使用 find_package 命令找到它
find_package( Sophus REQUIRED )
include_directories( ${Sophus_INCLUDE_DIRS} )

add_executable( test test.cpp )
target_link_libraries( test ${Sophus_LIBRARIES} )
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玛卡巴卡_qin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值