- 博客(58)
- 资源 (2)
- 收藏
- 关注
原创 time.h的简单使用
仅作为自己的笔记,悼念机试沉重的时刻#include <iostream>#include <time.h>using namespace std;int main(){ struct tm *ptr; time_t lt; lt = time(0);//获取当前时间戳 默认起始日期均为1900 月份0-11 //lt = (time_t)28800;//自定义秒数 cout << lt << endl; ptr = localti
2020-08-08 18:03:07
625
原创 如何实现VMware虚拟机上的ubuntu与windows主机共享文件夹
windows主机部分 在硬盘上任意位置新建文件夹,此处命名为Share,实际上随意。接下来右键属性,操作如下系列图所示:在硬盘上任意位置新建文件夹,此处命名为Share,实际上随意。成功修改后,显示如下界面:VMware部分ubuntu在关机状态下,点击“编辑虚拟机设置”接下来,开启ubuntu系统,在终端输入:··vmware-hgfsclient··将会显示如下画面,但是此时你可能找不到 /mnt/hgfs 这个路径,如果找不到该路径,则需要在虚拟
2020-07-03 21:29:40
6566
1
原创 一步步带你看懂orbslam2源码--单目初始化(五)
回顾: 前面我们已经讲解了orbslam2中的理论环节,包括了RANSAC随机采样一致性算法,阈值的选择缘由,对极约束的原理,单应矩阵和基础矩阵的计算,如何从单应矩阵或基础矩阵中分解出R,t,单目初始化单应矩阵或基础矩阵选择策略等.本章节我们将主要进行单目初始化的理论环节,话不多说,接下来就直接进入正题.理论环节 先贴上Track()函数的整体框架代码,首先第一次执行时,mSta...
2019-11-14 23:09:11
2205
4
原创 一步步带你看懂orbslam2源码--单应矩阵/基础矩阵,求解R,t(四)
回顾: 上一节我们主要讲解了对极约束的原理以及F矩阵的求解,单应矩阵的原理以及单应矩阵的求解,RANSAC随机采样一致性算法,阈值选择原理,score计算方式,模型选择策略,并且对创建Frame剩余的部分源码进行补充说明.本章节主要将讲解如何从单应矩阵和基础矩阵中分解出相机位姿和三维空间点坐标,这一部分东北大学的吴博在"ORB-SLAM代码详细解读"PPT中已经进行了详细推导,笔者这次的...
2019-11-14 23:03:23
5045
9
原创 一步步带你看懂orbslam2源码--单目初始化(三)
回顾: 好久没更新啦,耽搁了这么久,实在是最近事情有点多,一直抽不出时间来写,趁着空闲之际,赶紧更新一波.上一节我们主要讲解了关于ORB特征点的原理以及源码中的实现,想必读完上节,大家应该对什么是ORB,怎么提取Oriented FAST关键点,怎么计算despritor以及如何进行四叉树存储,筛选高质量特征点,保证特征点提取的均匀性. 接下来,有了图片的特征点信息之后,我们将正式进...
2019-11-14 23:01:47
4192
6
原创 SLAM中CMakeLists常见库的相关配置
(1)Eigeninclude_directories( "/usr/include/eigen3" )(2)PCLfind_package(PCL REQUIRED)include_directories(${PCL_INCLUDE_DIRS})LINK_DIRECTORIES(${PCL_LIBRARY_DIRS} )add_definitions(${PCL_DEFINITIO...
2019-11-02 16:52:35
749
原创 一步步带你看懂orbslam2源码--orb特征点提取(二)
回顾: 上一节我们主要讲解了SLAM的基本分类,具体场景应用点以及目前现有的部分开源方案.最后讲解了ORB-SLAM2的总体框架和主要贡献. 由于整个系统都是基于ORB特征点进行运行的,因此本章节将主要讲解ORB特征点的原理以及根据orb-slam2源码讲解实现细节.理论环节ORB特征点的原理 特征点,顾名思义就是图片中具备明显特征的点.在许多学者长期的研究下,著名的特征点...
2019-09-30 08:59:27
9922
13
原创 一步步带你看懂orbslam2源码--总体框架(一)
引言 谈谈SLAM技术,其实更准确地说来应该是SLAM框架.距今为止,SLAM其实已经发展了近30多年的历史,其理论框架已经大体成熟与定型,基本上都是分为前端视觉里程计,后端基于滤波或者非线性优化,回环检测以及建图等.该技术属于底层技术,主要是服务于上层应用的需求,目前的应用点有移动机器人,自动驾驶,无人机,AR,VR等. SLAM从构建地图的种类进行划分,有稀疏地图,半稠密地图...
2019-09-30 08:57:35
10129
1
原创 vector向量中resize和reserve的区别
测试代码如下,并在下文将给出6条测试结论:#include <vector>#include <iostream>using namespace std;int main(int argc, char* argv[]){ vector<int> vect; vect.push_back(1); vect.push_b...
2019-09-13 16:55:48
433
转载 int类型究竟占几个字节(转)
我最近也在看深入理解计算机系统这本书,上面提到了在32位机器和64机器中int类型都占用4个字节。后来,别人查了The C Programming language这本书,里面有一句话是这样的:Each compiler is free to choose appropriate sizes for its own hardware, subject only to the restrictio...
2019-09-13 11:33:53
6096
转载 pangolin库的简单使用
原文: https://www.jianshu.com/p/3baff8a66927pangolin是OpenGL的轻量级封装代码解释均在注释之中#include <pangolin/pangolin.h>int main( int /*argc*/, char** /*argv*/ ){ pangolin::CreateWindowAndBind("Main",...
2019-09-08 19:54:25
1460
原创 视觉SLAM十四讲 CH12 feature_training.cpp运行出错
解决"视觉SLAM十四讲"中ch12中feature_training.cpp程序运行错误,无法找到libopencv_core3.so.3.3文件
2019-09-02 12:28:30
720
原创 生活中如何善用简单脚本,提高工作效率,分享一个实现自动分类的vbs脚本Demo
首先,介绍下vbs脚本的基本语法,然后介绍一个用vbs脚本实现----根据excel表格进行文件分类,并且重命名的功能。全程贴附代码,并对重要的函数的思路进行讲解,附有完整代码。
2019-08-31 14:12:13
874
原创 总线设备驱动模型的极简框架
分离:把硬件相关的东西抽出来;把相对稳定的软件部分抽出来。分层:input.c 向上提供统一给 APP 操作的统一接口。每一层专注于自已的事件。一边的“device”结构体和另一边的“较稳定的 drivice 代码”的联系:“device_add()”除了将“devcie”结构放到 bus 的“dev 链表”之外,还会从另一边的“drv”链表中取表元即某个“driver”结构,用总线里的...
2019-08-23 23:59:55
356
原创 [总结]turbot3与PC机实现远程控制
一 环境配置turbot3上:1 安装vinosudo apt install vino ssh2 配置vino-preferences3 弹出的界面勾上选项Allow other users to view your desktopAllow other users to control your desktop4 弹出的界面取消打勾You must confirm e...
2019-08-07 12:53:10
320
原创 随手笔记(5):卡尔曼滤波器原理和位姿求导笔记
整理卡尔曼滤波器原理如下:(手稿)参考博文:https://blog.csdn.net/heyijia0327/article/details/17487467参考书本:视觉SLAM十四讲位姿求导笔记如下:参考博文:https://blog.csdn.net/heyijia0327/article/details/51773578...
2019-08-04 10:43:09
530
原创 输入子系统驱动
输入子系统程序编写:APP: open, read, write. ----> 对应提供驱动程序的读写等函数。驱动: drv_open, drv_read, drv_write硬件代码步骤:1,确定主设备号:可以自已确定,也可让内核分配。2,要构造驱动中的“open,read,write 等”是将它们放在一个“file_operations”结构体中.File_opera...
2019-08-02 11:50:19
200
原创 ubuntu下使用associate.py运行数据集的过程
将associate.py文件拷贝到数据集目录下,并且打开终端输入:$ python associate.py rgb.txt depth.txt>associate.txt可能出现问题1:解决方法:在桌面打开终端输入:$ sudo apt install python2-pip$ pip install numpy接着回到数据集目录下,打开终端再次运行$ python...
2019-07-14 11:39:24
931
原创 ubuntu16.04下的boost库和viz模块安装问题
一、下载boost库下载链接: https://www.boost.org/users/history/version_1_70_0.html选择版本(unix boost_1_70_0.tar.gz):二、安装boost库(1)进行解压,我是利用解压工具直接右键提取到此处的,或者利用命令行输入也是可以的:$ tar -xf Boost_1_65_1.tar.bz2(2)进入到解...
2019-07-12 13:15:59
2286
原创 在ubuntu16.04下利用cmake+VC code,断点调试
一、更新cmake版本(貌似在vs code插件中安装后,右下角会跳出是否升级为3.13.2)查询cmake版本$ cmake --version如果不是最新版3.9.1则更新如下:(1)下载压缩包:$ wget https://cmake.org/files/v3.9/cmake-3.9.1-Linux-x86_64.tar.gz(2)解压压缩包:$ tar zxvf cmak...
2019-07-10 22:33:09
1153
原创 ubuntu软件安装到一半异常中断后,如何再次安装
问题:ubuntu安装软件时有时候会直接卡死,无奈之下只可以强制关闭再次安装时发现 "snapd conflict"其实是后台还在运行,无法再次安装,就算重新开机也没用解决方法:第一步:snap changes然后观察那个是处于 “doing” 状态第二步:sudo snap abort X注意:此外的X为上面观察到 status 处于doing 的ID第三步:重新安装你所需要的...
2019-06-25 21:05:32
7894
转载 【转】C++静态成员变量和静态成员函数详解
原链接:http://c.biancheng.net/view/165.html类的静态成员有两种:静态成员变量和静态成员函数。静态成员变量就是在定义时前面加了 static 关键字的成员变量;静态成员函数就是在声明时前面加了 static 关键字的成员函数。下面的 CRectangle 类就有两个静态成员变量和一个静态成员函数。class CRectangle{private: ...
2019-06-17 19:23:20
410
翻译 2010-2016视觉SLAM算法综述
今天给大家分享一篇文章,关于“视觉SLAM算法从2010-2016年的调查”https://github.com/raulmur/ORB_SLAM2摘要: SLAM是同步定位与建图的简称,是一项用于估计传感器运动和以及在未知环境下重构结构的技术。特别地,使用相机的SLAM被称为视觉SLAM,因为它仅仅依赖于视觉信息。vSLAM是一项用于多...
2019-06-01 00:19:03
8557
转载 【转】C++开源库
C++ 资源大全关于 C++ 框架、库和资源的一些汇总列表,内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。标准库C++标准库,包括了STL容器,算法和函数等。C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。Standard Template Library:标准模板库C P...
2019-05-25 21:39:20
528
原创 C++计时的两种方式
#include< ctime >using namespace std;clock_t time_start=clock();//...clock_t time_end=clock();cout<<"time use:"<<1000*(time_end-time_start)/(double)CLOCKS_PER_SEC<<"ms"<...
2019-05-22 10:02:24
12219
原创 控制科学与工程:随手笔记(6)--Sophus库使用
变量功能Sophus::SO3SO3李群;初始化方法:①SO3 SO3_R®直接从选择矩阵构造②SO3 SO3_v(0,0,M_PI/2)从选择向量构造③SO3 SO3_q(q)从四元数构造Sophus::SE3SE3李群;初始化方法:①SE3 SE3_Rt(R,t)直接从R、t构造②SE3 SE3_qt(q,t)从四元数和t构造函数功能lo...
2019-05-19 17:07:28
481
转载 【转】C++类中的static数据成员,static成员函数
C++类中谈到static,我们可以在类中定义static成员,static成员函数!C++primer里面讲过:static成员它不像普通的数据成员,static数据成员独立于该类的任意对象而存在,每个static数据成员是与类关联的对象,并不与该类的对象相关联!这句话可能比较拗口,其实可以这么理解:每个stat...
2019-05-19 16:38:55
1075
原创 控制科学与工程:随手笔记(5)--Eigen、vscode配置
Eigen库中的变量类型及函数变量功能Eigen::Matrix3d旋转矩阵3X3,元素为double类型(此处也可以为:f,i,c)(可以直接输出)Eigen::Matrix<float,2,3>定义2X3矩阵,元素为float类型Eigen::Vector3d定义三维列向量,等价于Eigen::Matrix<double,3,1>...
2019-05-19 13:35:38
3274
原创 leetCode--回文数
题目:我的答案(c++):class Solution {public: bool isPalindrome(int x) { vector<int> num; int a = x; if (x < 0) return false; while (a!=0) { num.push_back(a%10); a /= 10; } in...
2019-05-07 17:09:34
130
转载 【转】Cmake基本语法
本文基于CMake 2.8版本编写。CMake 是一个跨平台的,开源的构建系统(BuildSystem)。CMake 可以通过CMakeLists.txt 文件来产生特定平台的标准的构建文件,例如:为 Unix 平台生成makefiles文件(使用GCC编译),为 Windows MSVC 生成 projects/workspaces(使用VS IDE编译)或Makefile文件(使用nmake...
2019-04-27 11:20:37
551
原创 leetCode--字符串转换整数 (atoi)
题目:答案(c++):直接用库class Solution {public: int myAtoi(string str) { int flag = 0; for (char a : str) { if (a == ' ') flag++; } if (flag == str.size()) return 0; stringstream ss; i...
2019-04-25 10:33:01
142
转载 【转】Eigen库大全
好东西,先保存下来https://www.cnblogs.com/goingupeveryday/p/5699053.html
2019-04-24 21:25:51
167
原创 leetCode--整数反转
题目:官方答案(C++):class Solution {public: int reverse(int x) { int rev = 0; while (x != 0) { int pop = x % 10; x /= 10; if (rev > INT_MAX/10 |...
2019-04-23 23:05:07
167
原创 win7+ubuntu18.04双系统安装
一、制作U盘启动盘参考文章链接:https://blog.csdn.net/flyyufenfei/article/details/79187656注意:制作U盘的软件用“rufus”(使用其他的软件可能会出现ubuntu版本限制问题)二、安装双系统参考文章链接:https://www.cnblogs.com/asdf89/p/9599661.html注意:最好先在安装系统的时候就分好盘...
2019-04-22 20:34:13
2216
原创 leetCode---Z 字形变换、for、string、vector笔记
题目:我的解法(c++)class Solution {public: string convert(string s, int numRows) { int length = s.length(); string result = ""; if (length < 1) return ""; if (numRows >= length || numRows...
2019-04-21 17:23:02
534
原创 leetCode--最长回文子串
题目:官方答案(C++):class Solution {private: int expandAroundCenter(string s, int left, int right) { while (left >= 0 && right < s.size() && s[left] == s[right]) { left--;...
2019-04-19 17:04:20
122
转载 【转】C++string中有关字符串内容修改和替换的函数浅析
1.assign()//string (1)basic_string& assign (const basic_string& str);//substring (2)basic_string& assign (const basic_string& str, size_type subpos, size_type sublen);//c-string (...
2019-04-19 14:56:17
466
转载 【转】C++ explicit关键字详解
首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).那么显示声明的构造函数和隐式声明的有什么区别呢? 我们来看下面的例子:class CxString // 没有使用explicit关键字的类声明, 即...
2019-04-18 17:25:33
114
原创 leetCode---寻找两个有序数组的中位数
题目:没考虑时间复杂度时的做法:class Solution {public: double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { int m = 0, n = 0; float result; int length = nums1.size()...
2019-04-17 18:31:53
143
转载 【转】C/C++ 函数指针使用总结
一 函数指针介绍函数指针指向某种特定类型,函数的类型由其参数及返回类型共同决定,与函数名无关。举例如下: int add(int nLeft,int nRight);//函数定义 该函数类型为int(int,int),要想声明一个指向该类函数的指针,只需用指针替换函数名即可:int (*pf)(int,int);//未初始化 则pf可指向int(int,int)类型的函数。pf前...
2019-04-15 15:19:28
155
FindCSparse.cmake
2019-07-29
FindG2O.cmake
2019-07-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人