- 博客(44)
- 资源 (5)
- 收藏
- 关注
原创 简洁架构之道_读书笔记
1.结构化编程Bohm和jocopini证明了可以使用顺序结构、分支结构、循环结构构造出任何程序goto是有害的顺序结构、分支结构和循环结构均可以证明其正确性,并且用这三种结构可以构造出任何程序。那么这就意味着可以将模块可以按功能进行降解拆分为一系列函数,而这些函数可以用结构化编程范式来写。只要这些函数是正确的,那么整个程序就是正确的。Dijstra:测试只能展示bug的存在,不能证明bug不存在结构化编程方式最有价值的地方在于它赋予了我们创造可以证伪程序单元的能力。
2023-05-29 23:11:44 525
原创 程序员的自我修养_读书笔记
1. 程序构建1.1 预编译1.2 编译1.3 汇编1.4 链接2. 目标文件2.1 目标文件格式2.2 目标文件内容2.3 链接的接口——符号3. 静态链接3.1 空间与地址分配3.2 符号解析与重定位3.3 COMMON 块3.4 C++相关问题3.5 静态库链接1. 可执行文件的装载与进程2. 动态链接2.1 为什么要动态链接3. 地址无关代码3.1 装载时重定位3.2 地址无关代码 PIC3.3 延迟绑定(PLT)3.4 动态链接相关结构。
2023-05-29 23:01:16 837
原创 U盘插在电脑上可以检测到,但是在文件管理器中不显示U盘
U盘插在电脑上可以检测到,但是在文件管理器中不显示U盘。此种情况多半是U盘驱动出了问题。右击“我的电脑”->管理->通用串行总线控制器->找到U盘对应项,右击选择“卸载设备”重新插拔U盘即可...
2020-01-07 20:09:37 7105 1
原创 PCL1.9的PCLConfig.cmake文件找不到eigen等外部依赖
PCL1.9的PCLConfig.cmake文件找不到eigen等外部依赖由于需要用到PCL中on_nurbs模块做拟合,但是ros自带的pcl中没有该模块。所以源码安装了PCL 1.9,但是在使用过程中遇到了如下问题。1. 安装过程1.安装如下依赖项sudo apt-get updatesudo apt-get install git build-essential linux-li...
2019-11-28 21:28:25 4964 5
原创 线性代数知识点总结
线性代数知识点总结本文秉承着“将书读薄”的思想将《线性代数》和《程序员的数学——线性代数》中的知识点进行凝练总结,以便以后时常复习。——————————————————————————————...
2019-11-26 10:36:39 3682
原创 Effective C++ 50条款
Effective C++ 50条款条款 1:尽量用 const 和 inline 而不用#define——尽量用编译器而不用预处理#define max(a,b) ((a) > (b) ? (a) : (b))条款 2:尽量用而不用<stdio.h>条款 3:尽量用 new 和 delete 而不用 malloc 和 freemalloc 和 free(及其变...
2019-10-14 14:43:38 409
原创 Git命令指南
Git命令指南1. 安装Git2.创建版本库及添加文件3. git add的常用形式1. 安装Git执行以下命令进行安装sudo apt-get install git安装完成之后执行以下命令进行配置git config --global user.name "Yourname"git config --global user.email "email@example.com"2...
2019-09-05 09:53:43 190
原创 ICP算法
激光SLAM中的前端配准算法1.ICP算法(迭代最近点算法)1.ICP算法的求解2.数学证明1.ICP算法(迭代最近点算法)ICP(迭代最近点算法)是一种古老而又经典的点云匹配算法,其思路也很清晰。点云配准就是求解两堆点云之间的变换关系——也就是旋转关系 RRR 和平移关系 ttt。ICP算法的思路就是:找到两组点云集合中距离最近的点对,根据估计的变换关系(RRR 和 ttt)来计算距离最近...
2019-08-12 00:56:20 14675 2
原创 ARCGIS中某字段递增赋值
ARCGIS中某字段递增赋值在地段计算器中使用一下代码:rec=0def autoIncrement(): global rec pStart = 1 pInterval = 1 if (rec == 0): rec = pStart else: rec = rec + pInterval return rec然后在字段里输入autoIncrement(...
2019-08-05 11:16:26 9706 1
原创 最小二乘问题总结
最小二乘问题总结1.题外话2.最小二乘基础概念3.最小二乘问题的求解方法1.题外话最近在学习深蓝学院的VIO课程,最小二乘问题的求解作为基础知识,在VIO的优化过程中非常重要。因此在这里对课程内容和查阅的资料做个总结,以便能够加深对最小二乘问题的理解。2.最小二乘基础概念最小二乘法(又称最小平方法)是一种数学优化技术。它的主要思想就是求解未知参数,使得理论值与观测值之差(即误差,或者说残差...
2019-07-28 23:21:37 11073 1
原创 关于位姿变换的一点体会
关于位姿变换的一点感触1.题外话2.刚体的位姿变换2.1 位姿变换的定义2.2 旋转矩阵的具体形式2.2.1 二维情况2.2.2 三维情况3.旋转方向1.题外话对于刚体的位姿变换问题,以前总觉得很简单,不就是个旋转平移嘛。可是几天手动做了的坐标变换却做了很久才做好。究其原因,还是有些问题没弄清楚。所以,今天在此写篇博客,彻底把这个过程捋一捋。2.刚体的位姿变换2.1 位姿变换的定义确实,...
2019-07-09 01:24:17 3626 1
转载 C++:Lambda函数学习
C++:Lambda函数学习或许,Lambda 表达式算得上是 C++ 11 新增特性中最激动人心的一个。这个全新的特性听起来很深奥,但却是很多其他语言早已提供(比如 C#)或者即将提供(比如 Java)的。简而言之,Lambda 表达式就是用于创建匿名函数的。GCC 4.5.x 和 Microsoft Visual Studio 早已提供了对 lambda 表达式的支持。在 GCC 4.7 中...
2019-07-08 16:07:50 242 1
原创 刷题:递归问题与动态规划
#include<iostream>#include<vector>using namespace std;/*************************************** * 斐波那契问题的三种解法****************************************///方法1:递归调用函数,时间复...
2019-07-02 00:36:41 225
原创 刷题:位运算
有关位运算的几个经典题目#include<iostream>using namespace std;// 不使用中间变量交换两个整数的值void swap(int &a, int &b){ a = a ^ b; b = a ^ b; a = a ^ b;}// 整数的二进制表达中有多少个1int number_of_one(int n)...
2019-06-30 23:55:39 214
原创 Ubuntu16.04 配置记录(持续更新)
Ubuntu16.04 配置记录1.安装中文输入法https://www.cnblogs.com/darklights/p/7722861.html2.修改终端命令行路径长度https://blog.csdn.net/alex_equal/article/details/500818193.安装Clionhttps://blog.csdn.net/u010925447/articl...
2019-06-27 17:24:07 249
原创 g2o入门——g2o的基本使用方法
g2o全称general graph optimization,是一个用来优化非线性误差函数的c++框架。https://blog.csdn.net/lingyunxianhe/article/details/79963131https://blog.csdn.net/hzwwpgmwy/article/details/79884070https://blog.csdn.net/heyiji...
2019-06-22 20:54:12 3392
原创 ORB_SLAM2代码阅读(5)——Bundle Adjustment
https://blog.csdn.net/lingyunxianhe/article/details/79963131
2019-06-12 20:29:52 2389
原创 ORB_SLAM2代码阅读(4)——LoopClosing线程
ORB_SLAM2代码阅读(4)——LoopClosing线程1.说明2.简介3.检测回环1.说明在前几篇博客介绍完tracking和localmaping线程后,本文接着介绍闭环检测(LoopClosing)线程中的内容。该部分内容中有很多细节部分还没有弄清楚,暂时先将整体思路捋顺,更多细节内容以后再补充。2.简介LoopClosing线程整体思路比较简介清晰,主要分为三大部分:检测回环...
2019-06-04 21:40:23 3216 1
转载 图像变换——等距变换,相似变换,仿射变换,投影变换
https://blog.csdn.net/hailiannanhai/article/details/80742517https://blog.csdn.net/aiwoshan0908/article/details/80047529https://blog.csdn.net/Chaolei3/article/details/79531140
2019-05-24 23:54:48 1135
原创 ORB_SLAM2配置过程
ORB_SLAM2配置过程本文记录了ORB_SLAM在Ubuntu16.04中的配置过程,并且包含ROS 环境下ROB_SLAM的配置。1、背景ORB-SLAM是由Raul Mur-Artal,J. M. M. Montiel和Juan D. Tardos于2015年发表在IEEE Transactions on Robotics。ORB-SLAM是一个基于特征点的实时单目SLAM系统,在大...
2019-05-24 10:00:35 36710 13
原创 刷题:二叉树的非递归遍历方式
二叉树的非递归的遍历方式上篇博客记录了二叉树的递归遍历方式以及根据二叉树的遍历结果还原二叉树的内容。本篇博客记录二叉树的非递归的遍历方式。1. 非递归先序遍历void PreTraverseNoRecursion(BiTree T){ stack<TreeNode*> temp_stack; TreeNode* temp_node; temp_stack.push(T)...
2019-05-17 00:25:31 594
原创 《一起学习rgbdSLAM》中g2o部分报错的问题
《一起学习rgbdSLAM》中g2o部分报错的问题在高博的《一起学习rgbdSLAM》第六讲中使用到了g2o工具。但是由于版本问题,按照高博的写法来编写代码在编译过程中会报错。所以需要对该部分代码稍作修改。我使用的系统是ubuntu16.04。教程中的源代码 // 选择优化方法 typedef g2o::BlockSolver_6_3 SlamBlockSolver; ...
2019-05-09 23:08:27 2875 2
原创 ORB_SLAM2代码阅读(2)——tracking线程
ORB_SLAM2代码阅读——(2)tracking线程1、Tracking1、Tracking
2019-05-09 20:33:36 5082 6
原创 cartographer 配置过程
cartographer 配置过程1. 安装系统配置:ubuntu16.04 ROS KineticIntel® Core™ i7-9700K CPU @ 3.60GHz × 864位操作系统配置过程:执行以下命令# 安装 wstool and rosdep.sudo apt-get updatesudo apt-get install -y python-wstool ...
2019-05-02 19:40:25 1275 2
原创 图像特征点—SIFT特征点
图像特征点—SIFT特征点关于SIFT特征点,以下三篇博客说的非常详细,再次不再赘述。https://mp.weixin.qq.com/s/XVB88f119gRqpwTTRvTyrAhttps://mp.weixin.qq.com/s/Vx-8xsXd6aXoJupr0BEMowhttps://mp.weixin.qq.com/s/8WAgDmc1R_9rGRjM9eanDgOpenC...
2019-05-02 19:39:50 889
原创 图像特征点—ORB特征点
图像特征点—ORB特征点参考文章:https://mp.weixin.qq.com/s/u5gSCwQ3XahF0fe19biAyQORB特征包括特征点和描述子。特征点用于筛选比较“特殊”的点,而描述子用来描述某个点周围的特征。接下来将分别介绍这两部分。1.特征点检测图像的特征点可以简单的理解为图像中比较显著显著的点,如轮廓点,较暗区域中的亮点,较亮区域中的暗点等。ORB特征点采用FA...
2019-05-02 19:39:42 13378 7
原创 ORB_SLAM2 定位模式
ORB_SLAM2 定位模式上一篇博客记载了ORB_SLAM2地图保存与加载的过程,本篇博客接着上一篇博客的内容记录在已拥有地图的情况下,ORB_SLAM2定位模式的如何运行。前提为了实现纯定位,需要对上一篇博客的内容进行一点小小的修改。我们需要在Map.h文件中重新定义Load()函数。即:void Load(const string &amp;filename,SystemSettin...
2019-05-02 19:39:32 6721 20
原创 3D-2D:PnP算法原理
PnP算法原理1.问题背景—— 什么是PnP问题 ?2.PnP问题的求解方法2.1 P3P2.1.1 算法的实际理解2.1.2 算法的数学推导2.1.3 算法的缺陷2.2 直接线性变换(DLT)根据高博士的《视觉SLAM十四讲》内容和相关博客的内容,对PnP问题有了一点点新的理解。再次记录一下。参考博客:http://www.cnblogs.com/singlex/p/pose_estima...
2019-05-02 19:39:09 53421 18
原创 3D-3D:ICP
3D-3D:ICP1. ICP算法2.SVD方法1. ICP算法2D-2D问题是通过已知的2D图像坐标点对来求解图像间的变换关系(即 RRR 和 ttt)。3D-2D问题是通过已知的3D空间点坐标和对应的2D像素坐标来求解图像的位姿。 所以很显然,3D-3D问题是根据已知的3D空间点对来求解图像图像间的变换关系。假设我们有一组配对好的 3D 点现在想要找到一个欧式变换RRR,ttt,使得...
2019-05-02 19:39:02 1767
原创 2D-2D:对极约束
2D-2D:对极约束1. 对极约束1.1 物理意义1.2 数学推导2 尺度不确定性3 三角测量3.1 什么是三角测量?3.2 三角测量的数学表达上一篇博客记录了3D-2D:PnP算法,本篇博客记录一下2D-2D:对极约束算法,并简单谈一下自己理解。1. 对极约束首先我们要先搞清楚对极约束是用来干什么用的,然后在来搞清楚它的原理。那么,对极约束是用来干什么用的呢?答:在已知 2D 的像素坐...
2019-05-02 19:38:54 11519 1
原创 (亲测可行)ubuntu16.04+Opencv3.4.3+opencv_contrib3.4.3安装编译全过程
ubuntu16.04+Opencv3.4.3+Opencv_contrib3.4.3安装编译全过程1、资源下载opencv3.4.3+opencv_contrib3.4.3下载链接:https://download.csdn.net/download/u014709760/10964308编译过程可能需要手动下载的文件地址:https://download.csdn.net/downl...
2019-05-02 19:37:36 7655 4
原创 Ceres入门——Ceres的基本使用方法
Ceres入门——Ceres的基本使用方法1.使用流程2.实例分析2.1 构建代价函数(cost function)Ceres solver 是谷歌开发的一款用于非线性优化的库,在谷歌的开源激光雷达slam项目cartographer中被大量使用。Ceres官网上的文档非常详细地介绍了其具体使用方法,相比于另外一个在slam中被广泛使用的图优化库G2O,ceres的文档可谓相当丰富详细。本篇博客...
2019-05-02 19:37:22 13981 3
原创 Cartographer 数据集国内地址
Cartographer 数据集国内地址2D 数据链接:https://pan.baidu.com/s/1P0JB7FpcMMR1By_7LYbleQ提取码:rlgr
2019-05-02 19:36:55 2071
原创 ORB_SLAM2代码阅读(1)——系统入口
ORB_SLAM2代码阅读——(1)系统简介1、说明2、简介3、stereo_kitti.cc4、SLAM系统文件(System.cc)4.1 构造函数System()4.2 TrackStereo()合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注...
2019-04-23 09:12:14 5008
KITTI数据集图像序列转换成rosbag文件
2019-02-26
Opencv3.4.3+opencv_contrib
2019-02-19
opencv3.4.3编译过程中的需要手动下载的文件
2019-02-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人