学习笔记
slam让我头疼
这个作者很懒,什么都没留下…
展开
-
string类的自定义实现
涉及到的内容包括:构造、拷贝构造、赋值、析构、输入输出的重载函数、友元函数 、strlen、 strcpy、 explict关键字。字符串的最后以'\0'结尾,即便是空字符串也需要动态申请一个char的动态空间,存放'\0';strlen统计字符串长度,不计算'\0';strcpy 复制内容,会复制最后一位的'\0';拷贝构造、赋值函数的传入形参是const类型;赋值函数为了能连续赋值,返回值类型是引用型;输入输出的操作符重载同样为了能连续赋值,返回值是引用型;cin、cout.原创 2022-04-05 14:01:01 · 365 阅读 · 0 评论 -
基于引用计数的shared_ptr的简单实现
//简易版的智能指针 多线程中智能指针的读取对象是不安全的#include <iostream>#include<bits/stdc++.h>using namespace std;template<typename T>//智能指针就是包装了指向T类型的指针class Ptr{public: Ptr(T*p= nullptr):mptr(p){// mcount=new size_t(1);//无论是什么内容都把这个初始值设为1.保证原创 2022-04-05 13:49:13 · 712 阅读 · 0 评论 -
deepsort+yolo5调研
https://blog.csdn.net/weixin_41552975/article/details/114398669https://github.com/cong/yolov5_deepsort_tensorrthttps://docs.nvidia.com/deeplearning/tensorrt/archives/index.html原创 2021-07-09 10:32:41 · 255 阅读 · 0 评论 -
ROS相关操作
目录ros::spin ros::once ros::spin ros::once https://www.cnblogs.com/liu-fa/p/5925381.html如果你的程序写了相关的消息订阅函数,那么程序在执行过程中,除了主程序以外,ROS还会自动在后台按照你规定的格式,接受订阅的消息,但是所接到的消息并不是立刻就被处理,而是必须要等到ros::spin()或ros::spinOnce()执行的时候才被调用,这就是消息回到函数的原理。ros::spin()函数一般不会出现原创 2021-07-05 11:31:28 · 48 阅读 · 0 评论 -
动态slam
https://zhuanlan.zhihu.com/p/349056348原创 2021-07-02 16:50:03 · 339 阅读 · 0 评论 -
2021-07-01C++
目录 ceres中仿函数的使用 ceres中仿函数的使用https://www.cnblogs.com/gary-guo/p/9767777.html//构建代价函数结构体,abc为待优化参数,residual为残差struct CURVE_FITTING_COST{ CURVE_FITTING_COST(double x, double y): _x(x), _y(y){} template<typename T&g..原创 2021-07-01 19:24:23 · 103 阅读 · 0 评论 -
视觉前端的基本处理及代码
文章目录opencv中封装的关于slam位姿解算过程中用到的函数cv::findFundamentalMatcv::recoverPose三角化操作中涉及的AX=0pnp求解特别要注意opencv求解出来的位姿矩阵、特征点都是谁相对于谁的关于sfm的一些处理技巧在视惯初始化的时候,判断imu是否有足够的激励,通过计算平均加速度、标准差来进行AX=0 构成超定方程,可以通过SVD进行求解;也可以是AX=B–>A’AX=A’B 进行ldlt进行求解。判断是不是纯旋转约束:初始化的第一帧的标准在原创 2021-06-28 15:01:45 · 479 阅读 · 0 评论 -
vio 不同数据对齐的相关处理---以vins-mono为例
1、首先订阅IMU、图像信息 ros::Subscriber sub_imu = n.subscribe(IMU_TOPIC, 2000, imu_callback, ros::TransportHints().tcpNoDelay()); ros::Subscriber sub_image = n.subscribe("/feature_tracker/feature", 2000, feature_callback);2、在imu_callback、feature_callbac原创 2021-06-22 16:30:11 · 484 阅读 · 0 评论 -
IMU预积分
为什么要预积分?首先是因为IMU和图像频率不一致的问题,相邻两个图像帧之间的IMU信息需要积分从而与视觉信息对齐。其次,当直接对上一时刻bk进行积分时得到的是bk+1时刻下,IMU坐标原点在世界坐标系上的坐标、速度和旋转角度。当Rw<-t,也就是qw<-t,是需要被优化的量,而这个优化的量,是在IMU积分符号内部的,在后续的优化过程中,这个值是在不断的变化,所以需要一遍遍的重新IMU积分才能获得真正精确的PVQ值。为了减少IMU积分次数,就希望这个被优化的量不要出现在积分符号里,所以就采用I原创 2021-06-18 16:55:55 · 3393 阅读 · 0 评论 -
ZUPT的相关初步理解
参考至https://zhuanlan.zhihu.com/p/115529319零速修正(Zero Velocity Update, ZUPT)即,当载体处于静止状态时,载体此时的速度为零,利用载体中的惯性系统的解算速度作为系统速度误差的观测量,对其他误差量进行修正,改善静止状态下的组合导航结果,不需要增加外部传感器,因而是一种有效且廉价易实现的技术。零速修正一般方法利用卡尔曼滤波进行。当检测到载体处于静止状态时,利用SINS子系统解算的速度作为系统速度误差的观测量,进行卡尔曼滤波估计,利用更新后的原创 2021-06-16 16:58:41 · 7731 阅读 · 0 评论 -
MSCKF中的状态更新(主要)和单目的相关基础知识
单目在纯旋转和静止的情况下没有办法进行三角化。要有平移量才可以顺利进行三角化原创 2021-06-15 21:25:48 · 682 阅读 · 0 评论 -
IMU+GPS信息融合
IMU+GPS进行EKF的数据融合0.环境配置用来读取GPS数据的相关环境配置GPS信息在ROS接口下的相关说明1.程序运行0.环境配置用来读取GPS数据的相关环境配置安装nmea_navsat_driver下载链接:https://github.com/ros-drivers/nmea_navsat_driver安装nmea_msgs附下载链接:https://github.com/ros-drivers/nmea_msgs编译驱动的时候出现如下问题:from .tf2 import原创 2021-06-03 20:00:47 · 2608 阅读 · 1 评论 -
vins-mono坐标系处理和初始化
http://www.cxyzjd.com/article/huanghaihui_123/103075107求与a向量正交的向量:先指定一b向量,用b向量减去b向量在a向量的投影、方向与a向量相同的向量,即为与a向量垂直的B向量MatrixXd TangentBasis(Vector3d &g0){ Vector3d b, c; Vector3d a = g0.normalized(); Vector3d tmp(0, 0, 1); if(a == tmp)原创 2021-06-02 16:14:28 · 945 阅读 · 0 评论 -
Eigen相关使用
Eigen相关使用crossnormalize已知一个向量,求其他两个向量构成直角坐标系cross叉积 Eigen::Vector3d y_axis = z2.cross(x);报错如下:main.cpp:(.text+0x301):对‘Eigen::MatrixBase<Eigen::Matrix<double, 3, 1, 0, 3, 1> >::cross_product_return_type<Eigen::Matrix<double, 3, 1, 0原创 2021-06-01 15:09:13 · 1027 阅读 · 1 评论 -
四元数基本知识和相关旋转的推导
四元数求导四元数与3D点乘积的求导设Pc=q*Pw,其中Pc是相机坐标系下的点,Pw是世界坐标系下的点。由上面的公式可知,运动四元数的增量可以由δθ表示,因此求Pc对四元数增量δθ的倒数就可以表示对四元数的倒数。...原创 2021-05-31 21:17:36 · 1371 阅读 · 1 评论 -
ESKF的相关理解
ESKF相关总结四元数重力加速度关于local坐标系的定义精华理解插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入https://www.guyuehome.com/8353http://epsilonjohn.club/2020/03/21/IMU%E7%9B%B8%E5%85%B3/原创 2021-05-31 20:35:53 · 7245 阅读 · 1 评论 -
kalibr标定软件安装
sudo apt-get install python-setuptools python-rosinstall ipython libeigen3-dev libboost-all-dev doxygen libopencv-dev ros-melodic-vision-opencv ros-melodic-image-transport-plugins ros-melodic-cmake-modules software-properties-common libpoco-dev python-matp原创 2021-05-20 14:38:10 · 472 阅读 · 0 评论