![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 72
slam已经入土
这个作者很懒,什么都没留下…
展开
-
c++设计模式
简介在此特别感谢李建中老师!!!以下面代码为例一、分解Shape.hclass Point{public: int x; int y;};class Line{public: Point start; Point end; Line(const Point& start, const Point& end){ this->start = start; this->end = end; }};原创 2021-10-12 12:01:17 · 274 阅读 · 0 评论 -
c++设计模式
简介以下面代码为例一、分解Shape.hclass Point{public: int x; int y;};class Line{public: Point start; Point end; Line(const Point& start, const Point& end){ this->start = start; this->end = end; }};class Rect{p原创 2021-10-11 11:47:59 · 190 阅读 · 0 评论 -
c++设计模式
简介以下面代码为例一、分解Shape.hclass Point{public: int x; int y;};class Line{public: Point start; Point end; Line(const Point& start, const Point& end){ this->start = start; this->end = end; }};class Rect{p原创 2021-10-07 11:12:36 · 278 阅读 · 3 评论 -
c++设计模式
简介以下面代码为例一、分解Shape.hclass Point{public: int x; int y;};class Line{public: Point start; Point end; Line(const Point& start, const Point& end){ this->start = start; this->end = end; }};class Rect{p原创 2021-10-05 10:40:18 · 151 阅读 · 0 评论 -
数据结构和算法
# 数据结构与算法绪论世界上没有最好的算法,只有最合适的算法逻辑结构物理结构谈谈算法算法时间复杂度就是告诉你要注重看最高阶次,然后常数和阶次的常数乘积忽略掉,注意数据要足够多。执行次数就是时间算法空间复杂度线性表抽象数据类型void unionL(List* La, List* Lb)//此伪代码是来依次将Lb中与La不同的数..原创 2021-09-29 15:33:16 · 157 阅读 · 0 评论 -
c++设计模式
简介以下面代码为例一、分解Shape.hclass Point{public: int x; int y;};class Line{public: Point start; Point end; Line(const Point& start, const Point& end){ this->start = start; this->end = end; }};class Rect{p原创 2021-09-29 11:35:44 · 167 阅读 · 0 评论 -
数据结构和算法
# 数据结构与算法绪论世界上没有最好的算法,只有最合适的算法逻辑结构物理结构谈谈算法算法时间复杂度就是告诉你要注重看最高阶次,然后常数和阶次的常数乘积忽略掉,注意数据要足够多。执行次数就是时间算法空间复杂度线性表抽象数据类型void unionL(List* La, List* Lb)//此伪代码是来依次将Lb中与La不同的数据插原创 2021-09-26 16:26:06 · 242 阅读 · 0 评论 -
数据结构和算法
# 数据结构与算法绪论世界上没有最好的算法,只有最合适的算法逻辑结构物理结构谈谈算法算法时间复杂度就是告诉你要注重看最高阶次,然后常数和阶次的常数乘积忽略掉,注意数据要足够多。执行次数就是时间算法空间复杂度线性表抽象数据类型void unionL(List* La, List* Lb)//此伪代码是来依次将Lb中与La不同的数据插原创 2021-09-24 11:33:39 · 158 阅读 · 0 评论 -
数据结构和算法
# 数据结构与算法绪论世界上没有最好的算法,只有最合适的算法逻辑结构物理结构谈谈算法算法时间复杂度就是告诉你要注重看最高阶次,然后常数和阶次的常数乘积忽略掉,注意数据要足够多。执行次数就是时间算法空间复杂度线性表抽象数据类型void unionL(List* La, List* Lb)//此伪代码是来依次将Lb中与La不同的数据插原创 2021-09-23 20:04:53 · 180 阅读 · 0 评论 -
数据结构和算法
# 数据结构与算法绪论逻辑结构物理结构谈谈算法算法时间复杂度就是告诉你要注重看最高阶次,然后常数和阶次的常数乘积忽略掉,注意数据要足够多。执行次数就是时间算法空间复杂度线性表抽象数据类型void unionL(List* La, List* Lb)//此伪代码是来依次将Lb中与La不同的数据插入到La的后面{ int La_le原创 2021-09-16 11:12:35 · 289 阅读 · 0 评论 -
数据结构和算法
# 数据结构与算法绪论逻辑结构物理结构谈谈算法算法时间复杂度就是告诉你要注重看最高阶次,然后常数和阶次的常数乘积忽略掉,注意数据要足够多。执行次数就是时间算法空间复杂度线性表抽象数据类型void unionL(List* La, List* Lb)//此伪代码是来依次将Lb中与La不同的数据插入到La的后面{ int La_le原创 2021-09-15 19:45:37 · 166 阅读 · 0 评论 -
数据结构和算法
# 数据结构与算法绪论逻辑结构物理结构谈谈算法算法时间复杂度就是告诉你要注重看最高阶次,然后常数和阶次的常数乘积忽略掉,注意数据要足够多。执行次数就是时间算法空间复杂度线性表抽象数据类型void unionL(List* La, List* Lb)//此伪代码是来依次将Lb中与La不同的数据插入到La的后面{ int La_le原创 2021-09-13 18:59:35 · 130 阅读 · 0 评论 -
数据结构和算法
# 数据结构与算法绪论逻辑结构物理结构谈谈算法算法时间复杂度就是告诉你要注重看最高阶次,然后常数和阶次的常数乘积忽略掉,注意数据要足够多。执行次数就是时间算法空间复杂度线性表抽象数据类型void unionL(List* La, List* Lb)//此伪代码是来依次将Lb中与La不同的数据插入到La的后面{ int La_le原创 2021-09-12 18:37:06 · 137 阅读 · 0 评论 -
力扣算法题更新(个人笔记)
2021-8-261. 两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。对于这个问题有两种解法一、暴力解决class Solution {public: vector<int> twoSum(vector<int>& nums, int t原创 2021-08-26 12:26:08 · 534 阅读 · 0 评论 -
数据结构和算法
数据结构与算法绪论逻辑结构物理结构谈谈算法原创 2021-08-19 16:34:54 · 161 阅读 · 0 评论 -
ubuntu 16.04运行 vins-fusion
前提安装Eigen3.3.7参考博客安装ceres1.14.0参考博客ceres别装2.0版本,装1.4开始装的2.0遇到错误error: ‘integer_sequence’ is not a member of ‘std’ struct SumImpl<std::integer_sequence<T, N, Ns…>>教程安装Ros参考博客编译新建工作空间 mkdir -p ~/catkin_vinsfusion_ws/src可以去gitee下载vinsf原创 2021-06-03 20:46:42 · 336 阅读 · 0 评论 -
openvslam学习笔记
简要回顾orbslam单目相机:没有xright和depth双目:有xright(视差) ,用xright可以的得到depth。对于双目相机,用右边相机点的坐标减去左边相机对应点的坐标就可以得到xright。(水平方向)RGBD:有depth,用depth可以得到xrightRGBD可以直接得到depth ,但RGB相机和深度相机的位置也不是一一对应的,相当于也是双目,因此也有xright...原创 2021-05-11 21:49:31 · 298 阅读 · 0 评论 -
c++笔记(持续更新)
1、不能在类声明中初始化静态成员变量比如在a.h中 , 类有一个属性static int num;在a.h中可以声明,但是不能初始化在a.cpp中可以赋值 ,比如int 类名::num=0;2、对于 类的构造函数中用到了new 堆区 ,记得要在对应的析构函数中delete掉。删除类定义的对象,可以删掉对象本身占用的内存,但无法自动释放对象成员的指针指向的内存,因此必须使用析构delete掉。str=new char[len+1];delete str[];3、函数的参原创 2021-05-07 20:20:59 · 175 阅读 · 1 评论 -
MSCKF演示实验
参考博客演示实验原创 2021-04-28 15:49:41 · 197 阅读 · 0 评论 -
c++ primer plus第九章課後習題
main.cpp#include <iostream>#include <new>#include "namesp.h"#include "golf.h"#include "string.h"using namespace std;//hw1***void hw_1(){ golf an1; setgolf(an1,"Ann Birdfree",24); showgolf(an1); golf andy[5]; int co原创 2021-04-27 22:18:08 · 73 阅读 · 0 评论 -
c++ primer plus 第八章课后习题
c++ primer plus 第八章课后习题#include <iostream>#include <string>#include <cstring>#include <cctype>using namespace std;////hw1***//太简单了////hw1***////hw2***const int NanmeMax=10;struct CandyBar{ string c_name;// doubl原创 2021-04-27 09:13:50 · 102 阅读 · 0 评论 -
ch6
c++ primer plus ch6 课后编程作业#include <iostream>#include <string>#include <vector>#include <fstream>#include <cstdlib>#include <cstring>#include <cctype>using namespace std;void hw_1(){ char ch; cout <原创 2021-04-21 20:58:56 · 105 阅读 · 0 评论 -
基于多态的企业职工系统资料
基于多态的企业职工系统资料思路代码worker.h#pragma once#include<iostream>#include<string>using namespace std;//职工类---父类class Worker{public: //显示个人信息 virtual void showInfo() = 0; //获取岗位名称 virtual string getDeptName() = 0; int m_Id; //职工编号 strin原创 2021-04-19 19:16:35 · 101 阅读 · 0 评论 -
机房预约系统
机房预约系统思路脉络这里面主要是定义一个身份类(基类),还有三个派生类(学生类,教师类,管理员类),全局文件类、机房类别忘了由上图可知各个类的要求。我们先把框架搭起来,也就是定义好各个类的函数及属性,然后先把主菜单写出来,以及退出功能写出来后面各个子菜单,利用重写即可完成(父类指针指向子类对象)先完善管理员类,因为它的权限最高,而且可以添加账号此时要定义一个预约管理类 oderFile.h 用来方便学生以及教师查看预约信息以及教师审核预约信息之后就是学生类,学生类的功能比较多,代码长一点原创 2021-04-19 18:35:07 · 220 阅读 · 0 评论 -
基于ubuntu18.04源码运行orbslam2实验过程及演示
基于ubuntu18.04源码运行orbslam2实验过程及演示orbslam源码链接首先在orbslam2文件夹中打开中断,并按顺序运行以下三段代码实验采用的数据集是tum这里给出数据集的网盘密码:joe0chmod +x build.sh./build.sh./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml /home/nnz/Dataset/tmu/rgbd_dataset原创 2021-03-21 21:28:41 · 402 阅读 · 0 评论 -
ORBSLAM2总结之Loop_Closing
下列函数代码都在Loop_Closing.cpp中参考博客一、回环检测流程代码对应函数为:void LoopClosing::Run()在这里插入代码片二、闭环帧的检测代码中对应函数为:DetectLoop()首先通过函数CheckNewKeyFrames()检测mlpLoopKeyFrameQueue里的关键帧是否为空,如果不空则进行闭环检测的处理:也就是DetectLoop()。(Loopclosing中的关键帧是LocalMapping发送过来的,LocalMapping是Tracki原创 2021-02-06 15:51:52 · 683 阅读 · 0 评论 -
VSCODE-CMAKE工程运行和调试
launch.json{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "g++ - 生成和调试活动文件", "type": "cppd原创 2021-02-04 11:02:26 · 557 阅读 · 0 评论 -
草稿-vio2
test1下图是:陀螺仪Allan方差图下图是:加速度计Allan方差图test2下图是:陀螺仪Allan方差图下图是:加速度计Allan方差图原创 2020-12-19 13:04:30 · 118 阅读 · 1 评论 -
Kinect2+Ros跑通ORBLSAM2
一、ubuntu16.04安装kinect2以及iai-kinect2可以参考这篇文章kinetic2安装以及iai-kinect2iai-kinect2二、KInetic+Ros 跑ORBSLAM2步骤:打开终端1git clone http://github.com/raulmur/ORB_SLAM2.gitcd ORB_SLAM2chmod +x build.sh ./build.sh #可自动编译好g2o与DBoW2并且把Vocabulary自动解压打开一个新的终端2转载 2020-12-17 15:35:32 · 253 阅读 · 0 评论 -
ORBSLAM2总结之-Tracking.cpp
/** * @file Tracking.cc * @author guoqing (1337841346@qq.com) * @brief 追踪线程 * @version 0.1 * @date 2019-02-21 * * @copyright Copyright (c) 2019 * *//*** This file is part of ORB-SLAM2.** Copyright (C) 2014-2016 Raúl Mur-Artal <raulmur at原创 2020-12-16 17:41:14 · 216 阅读 · 0 评论 -
ORBSLAM2总结之-LocalMapping.cpp
/** * @file LocalMapping.cc * @author guoqing (1337841346@qq.com) * @brief 局部建图线程 * @version 0.1 * @date 2019-04-29 * * @copyright Copyright (c) 2019 * *//*** This file is part of ORB-SLAM2.** Copyright (C) 2014-2016 Raúl Mur-Artal <raul原创 2020-12-16 17:38:04 · 262 阅读 · 0 评论 -
ORBSLAM2总结之-LocalMapping线程
前言本文结合其余的ORBSLAM2的资料,对ORBLSAM2源码进行注释,感谢知识星球、泡泡机器人感谢吴博!源码是知识星球小六等人的带注释版本。LocalMapping线程主要用来处理从Tracking线程传过来的关键帧。个人理解是:Tracking线程只要是完成对当前帧的追踪,以及这个帧的地图点相关信息之类的。在LocalMapping中只要就是处理这个新的关键帧。注意:处理新的关键帧是在缓冲队列中处理,处理完了后,要从缓存队列中删掉。LocalMapping主要流程如下图所示:上面的原创 2020-12-16 17:30:37 · 331 阅读 · 0 评论 -
ORBSLAM2总结之-tracking线程
前言本文结合其余的ORBSLAM2的资料,对ORBLSAM2源码进行注释,感谢知识星球、泡泡机器人感谢吴博!源码是知识星球小六等人的带注释版本。1、Tracking线程主要是用来计算各个帧的位姿在Tracking.cpp中将图片放进Tracking线程只要是下面的GrabImageStereo()和GrabImageRGBD()、GrabImageMonocular()函数。这三个函数的流程如下图所示:/** * 这里是双目的获取图片的函数、同时利用获得的灰度图构建当前帧,进行tracki原创 2020-12-12 14:23:19 · 658 阅读 · 0 评论 -
从零手写vio-作业7
一 程序修改在VINS_Course源码中对如下函数进行修改:在run_eurco.cpp中:在这里插入代码片二、对不同大小噪声的IMU数据和相机数据仿真在第二讲的源代码的param.h文件中修改噪声大小1、小噪声 double gyro_bias_sigma = 1.0e-7; ////陀螺仪bias随机游走噪声 bias的导数服从高斯分布 double acc_bias_sigma = 0.000001; ////加速度bias随机游走噪声 bias的导数服从高斯分布原创 2020-12-10 17:50:48 · 1098 阅读 · 7 评论 -
从零手写vio-作业6-三角化
2完成三角化代码源码如下://// Created by nnz on 18-11-11.//#include <iostream>#include <vector>#include <random> #include <Eigen/Core>#include <Eigen/Geometry>#include <Eigen/Eigenvalues>using namespace std;//struct P.原创 2020-12-08 16:34:46 · 265 阅读 · 0 评论 -
从零手写vio-作业5-后端优化实践-逐行手写求解器
1在MakeHseesian()函数中; // 所有的信息矩阵叠加起来 // TODO:: home work. 完成 H index 的填写. // 确定不会有错误的产生,那么可以使用noaliasd()函数来避免产生临时变量,使用noalias()函数来声明这里没有混淆直接赋值 //这里index_i、index_j是对应矩阵块的位置,i代表行。j代表列 此时对应的是对角线部分加上三角部分 H.block(index_i, index_j, dim_i, dim_j).noalias() .原创 2020-12-03 16:55:32 · 706 阅读 · 2 评论 -
从零开始手写vio-作业4-滑动窗口算法
1原创 2020-12-01 22:01:58 · 370 阅读 · 1 评论 -
ubuntu -lixbkcommon问题
https://launchpad.net/ubuntu/+source/libxkbcommon要用vpn原创 2020-12-03 17:19:20 · 450 阅读 · 0 评论 -
从零开始手写vio-ch3作业
112修改的代码如下:对于函数y=ax2+bx+c 来说 它的残差特别简单,它的雅克比页特变简单error=ax2+bx+c-y (这里面的a,b,c是待优化的变量 ,y是观测值,x是数据点)J=[x2 , x, 1]// 计算曲线模型误差 virtual void ComputeResidual() override { Vec3 abc = verticies_[0]->Parameters(); // 估计的参数 residua.原创 2020-11-27 21:20:03 · 321 阅读 · 0 评论 -
从零开始手写vio-ch2-imu数据仿真
一、利用欧拉积分和中指=值积分来计算imu数据,并绘制轨迹,与给定的轨迹方程进行比较利用欧拉积分或者中值积分计算imu数据核心代码imu.cpp源码如下://// Created by hyj on 18-1-19.//#include <random>#include "imu.h"#include "utilities.h"// euler2Rotation: body frame to interitail frameEigen::Matrix3d euler2原创 2020-11-26 11:27:49 · 878 阅读 · 0 评论