- 博客(74)
- 资源 (8)
- 收藏
- 关注
原创 window-linux纯净系统安装方法
1. 安装工具准备U盘:4GB以上window10纯净系统:https://msdn.itellyou.cn/Ubuntu16.04LTS系统:https://cn.ubuntu.com/downloadUltraISO系统写入工具:https://cn.ultraiso.net/2.U盘工具制作1.插入U盘到电脑2.管理员运行UltraISO.exe软件3.左上角 文件->打开 添加需要写入的Window/Ubuntu的ISO系统文件4.左上角 启动->写入硬盘映像 (
2021-06-27 10:42:50
339
转载 两个.c文件访问同一个全局变量的用法
(1)不用头文件在file_a.c中定义一个全局变量:int flag ;在file_b.c中:extern int flag;即可。(2)利用头文件在file_a.c中定义一个全局变量:int flag;在common.h中定义:extern int flag;然后在file_b.c中包含common.h文件即可。注:file_a.c中不可包含头文件common.h。...
2019-09-18 16:37:02
2827
转载 值得学习的C++项目开源(转)
值得学习的C语言开源项目1. WebbenchWebbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.cz/~cz21...
2019-02-15 13:44:57
3678
原创 (linux)vs code调试编译c++项目
总结一下vs code调试项目时,json文件和task的配置信息。主要包括2种方式。第一种不涉及多文件和makefile。第二种使用到makefile编译调试大型项目。平台:Ubuntu 16.04 && vs code 1.30.2 && gcc 5.4.0 && g++ 5.4.0ps: gcc 和 g++ 在ubuntu中默认安...
2019-01-24 22:24:55
778
4
原创 Ubuntu 软件源的选择(主要是树莓派3ARM v7架构的源)
1.背景:在使用软件源时,试了几个国内较出名的软件源,有几个使用速度较快,使用较好随笔记录下来。 2.推荐一下,教育网(就是高校)推荐中科大的源,重要的是,这个源可以支持ARM v7的树莓派。目前在国内就找到这一个,如果有其他的请推荐一下,谢谢了。企业的就使用阿里云的源。 3.中科大源:...
2018-05-12 23:26:24
2864
2
原创 一起做RGB-SLAM中遇到的问题与解决
跟着高博博士学习《一起做RGB-SLAM》,其中遇到问题就写一下。1.一起做RGB-SLAM(2)中遇到的问题 a. 问题描述:编译成功,但执行报以下错误。point cloud size = 0terminate called after throwing an instance of 'pcl::IOExcepti...
2018-05-02 20:29:13
1528
原创 图之最短路径
目前求最短路径的算法很多,下面2种是基本不再使用,但却是经典的路径算法。其他路径算法有启发式算法A*,D*,还有树形的RRT, RRT*等。1. Dijkstra算法 a. 基本思想:求带权有向图中某个源点到其他各顶点的最短路径,Dijkstra算法十分适用。有向图有N={V, arcs[i][j...
2018-05-01 18:22:20
568
原创 图之最小生成树
对于一个带权连通无向图G=(V, E),生成树不同,每颗树的权(树中所有边上权值之和)也可能不同。若T为G所有生成树中权值最小的那颗生成树,则T称为G的最小生成树。下面的2种算法就是基于贪心算法的策略提出的,算法很早提出,但经典。即使早就由代码实现过,但仍然有人在此基础上改进提出其他好的方法。1. Prim算法 &nbs...
2018-05-01 12:23:11
273
原创 图的遍历
1. 广度优先搜索(BFS) a. 基本思想:类似二叉树的层序遍历,从起始结点v访问,接着依次访问v未被访问的邻接顶点w1,w2,w3,……,wi。再从w1,w2,….., wi等开始访问,与上述相同模式。还可以应用于Dijkstra单源最短路径算法和Prim最小生成算法。 b. 代码boo...
2018-04-30 21:30:55
299
原创 树之哈夫曼(Huffman)树
1. 概念 实际生活中,树中结点常常表示某种意义的数值,称为该结点的权值。从根结点到任意结点的路径长度(经过的边数)与该结点上权值的乘积称为该结点的带权路径长度。树中所有叶结点的带权路径长度之和称为该树的带权路径长度,记为 WPL = Wi*Li(i=1,2……,n) 带权路径长度(WPL)最小的...
2018-04-30 15:52:33
293
原创 树之二叉排序树
1. 概念 简称BST,也称二叉查找树。其具备下列特性: 1). 若左子树非空,则左子树上所有关键字值均小于根结点的关键字值 2). 若右子树非空,则右子树上所有关键字值均大于根结点的
2018-04-30 14:47:30
259
原创 树之线索二叉树
1. 慨念 传统的链式存储仅体现一种父子关系,不能直接得到结点在遍历中的前趋或后继。到这种二叉链表表示的二叉树中存在大量的空指针,而线索二叉树就是将这些空域利用起来。存放其直接前趋或者后继的指针。 ltag lchild data rchild r...
2018-04-30 10:28:57
246
原创 vs code 配置.json文件引入makefile文件实现多文件编译
背景: 之前使用VS code写c++时,没使用到多文件,所以对launch.jason和task.jason配置没过多配置,但不支持多文件间的编译,调试。 注:主要针对较大的一些工程,涉及多个文件的编译,使用到Makefile。如果一个头文件和cpp文件可以看其他教程 平台:Ubuntu 16.04 LTS && VS Code 1.221. launc...
2018-04-29 21:47:08
12503
3
原创 树与二叉树
1. 树的简介a. 树的定义 一种非线性结构,树是N(N>=0)个结点的有限集合,N=0则称为空树。 1). 有且仅有一个特定的称为根的结点 2). 当N>1时,其余结点
2018-04-29 11:18:25
270
原创 排序之其他(归并排序,基数排序)
1. 归并排序a. 基本思想 ”归并”的含义是将两个或两个以上的有序表归并组合成一个新的有序表。例如: 待排序表含有n个记录,则可以看成是n个有序的子表,每个子表长度为1,然后两两归并,得到[n/2]个长度为2或1(遗留的1); 再两两归并。。。如此重复直到合并成一个长度为n的有序表为止。2-路归并排序。当然还有3路,4路。。。...
2018-04-28 19:33:51
345
原创 排序之选择排序(简单选择排序,堆排序)
1. 简单选择排序a. 基本思想 其实思路很简单,就是第i趟排序中从L[i…….n]中,选出关键字最小的元素与L[i]交换。每趟确定一个元素的最终位置。 L[1…..i-1] L[i] L[i+1……n]b. 代码void SelectSort(ElemType A[], int n){ ...
2018-04-28 16:55:03
342
原创 排序之交换排序(冒泡排序,快速排序)
1. 冒泡排序a. 基本思想 假设待排序比表长为n, 从后向前(或从前往后)两两比较相邻元素的值,若未逆序则交换,直到序列比较完,则称一趟冒泡。最小值如同气泡逐渐向上“漂浮”,直至“水面”。下一趟最小元素已到第一序列,不用比较。待排序列减少一个元素,每趟冒泡都将序列中的最小元素放到序列的最终位置b. 代码void...
2018-04-28 14:33:22
211
原创 排序之插入排序(直接插入排序,折半插入排序,希尔排序)
1. 直接插入排序 一种最直观,最简单的排序方式。假设在排序过程中,待排序表L[1…….n]在某次排序过程中的某一时刻状态如下: 有序序列L[1…..i-1] L(i) 无序序列L[i+1…….n] a.操作步骤如下:  ...
2018-04-28 11:13:33
368
原创 查找之字符串匹配
简单的模式匹配算法  a. 基本思想:从主串S指定的字符开始和模式串T的第一个字符比较,若相等,则继续逐个比较后续字符串,直到T中的每个字符依次和S中的一个连续的字符序列相等,则匹配成功。若比较途中某对字符不想等,则从主串S的下一个字符开始比较。如果S串比较完,仍没匹配成功,则称匹配不成功。   b. 代码 int Index(SString S, SStr...
2018-04-27 19:01:53
2905
原创 查找之HASH查找
前面的查找是一系列关键字比较,查找速度相对较慢。HASH查找的优势来了 a. 哈系函数: 一个把查找表中的关键字映射成该关键字对应的地址的函数,adde = HASH(key)。 这里的地址可以是下标,索引,或内存地址。 b. 散列表:由根据关键字而直接进行访问的数据结构。散列表建立了关键字和存储地址之间的一种直接映射关系。Hash函数的构造方法 a.直接定址法:H(key) = a*...
2018-04-27 12:18:46
430
原创 查找之分块查找
分块查找又称索引顺序查找,吸取顺序查找和折半查找的优点 基本思想:将查找表分为若干个子块。块内的元素可以无序,但块件是有序的,即第一个块中的最大关键字小于第二块中的所有关键字,依次类推。再建一个索引表,索引表中的元素含有各块的最大关键字和各块中第一个元素的地址,索引表按关键字有序排列。示意图 查找分2步 a. 首先在索引表中进行折半查找,确定元素在那个块间(折半查找可以查看前面所写),...
2018-04-26 22:26:24
267
原创 查找之折半查找
折半查找又称二分查找,适用有序的顺序表。(附:笔试考察查找,这个是经典查找法) 基本思路:首先给定值key与表中中间位置元素的关键字,若相等则查找成功,返回位置。若不等,则所需查找的元素只能在中间元素外的前半部分或后半部分中。缩小范围,递归查找。 2.折半查找的代码int Binary_Search(Seqlist L, ElemType key){ //假设从小到...
2018-04-26 21:22:19
309
原创 查找之顺序查找
顺序查找分为一般的无序线性表的顺序查找,按关键字有序的顺序表的顺序查找。1.一般线性表的顺序查找 a.基本思想:从线性表的一端开始,逐个检查关键字是否满足给定条件。若查找到某个元素的关键字满足给定条件,则查找成功。否则查找到另一端,还没查到到给定条件的元素,则返回查找失败的信息。 b. 代码: typedef struct{ ...
2018-04-26 20:45:09
325
原创 Ubuntu 16.04 蓝牙接收文件
手机发送给电脑失败,但电脑发送给手机可行。 因为Ubuntu默认是不接收蓝牙文件的,故需要设置一番。 1. 中文 英文查找Personal file方法与上述一样...
2018-04-26 19:15:16
3802
6
原创 ROS下百度语音识别
看到一个好玩的东西,百度的语音识别,大家可以自己DIY一些小东西了。 参考:http://www.rosclub.cn/post-1032.html 1. 前面的下载,安装都没问题,故跳过不用理会。 2. 测试 下载之后:CMakeList.txt和packge.xml中需要修改,不然依赖无法满足。什么依赖可去了解一下ROS的文件系统。 里面所有的baidu_speec...
2018-04-24 13:03:50
1062
原创 问题解决之ROS探索学习(五)
本文主要是跟随古月居的学习,遇到的问题后的解决方法 (平台:Ubuntu16.04 + kinetic) 1.版本不同,所以功能包的建立是不同的。 cd catkin_ws/src catkin_create_pkg smartcar_description mkdir urdf mkdir launch 之后创建urdf文件,launch...
2018-04-23 10:45:45
466
原创 ROS工具的使用
RVIZ ros中的三维可视化工具,在调试中使用极多。 a. 简介:主要目的是以三维方式显示ROS消息,将数据进行可视化表达。例如,无需编程就能表达激光测距仪(LRF)传感器中的传感器到障碍物的距离,RealSense, Kinetic或Xtion等三维距离传感器的点云数据(PCD),从相机获取的图像值等。 &...
2018-04-22 22:07:43
902
原创 ROS常用命令
一. ROS Shell命令 *roscd - 移动到指定的ROS功能包目录 rosls - 显示ROS功能包的文件与目录 rosed - 编辑ROS功能包的文件 &nbs
2018-04-22 17:23:26
1468
原创 卡尔曼滤波与扩展卡尔曼滤波
背景介绍 卡尔曼滤波(Kalman filtering)一种线性系统状态方程,对输入输出的观测数据进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。故求解最优估计的算法就称之为卡尔曼滤波算法。目前在机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等应用较广。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测...
2018-04-22 10:51:43
3476
原创 ROS之Turtlebot 构图,导航仿真
1.安装TurtleBot相关的功能包 sudo apt-get install ros-kinetic-turtlebot-*这个作为rospackge中提供的功能包,全部安装测试。里面包含Turtlebot真机与仿真的功能。 2.启动gazebo仿真模型,并加载Turtlebot机器人 export TURTLEBOT_GAZEBO_WORLD_FILE="...
2018-04-19 09:26:45
4284
4
原创 视觉slam14讲之建图
建图(Mapping)是slam的两大目标之一。上述讨论的都是定位,讨论了特征值点的定位,直接法的定位,以及后端优化。在经典的slam模型中,所谓的地图,即所有路标点的集合。一旦确定了路标点的位置,可以说明完成了建图。只是如此,那么视觉里程计,Bundle Adjustment算完成了任务,还额外的进行了优化。 但建图的需求不同,SLAM作为一种底层技术,往往是用来为上...
2018-04-14 10:36:09
4276
原创 视觉slam14讲之回环检测
前端提供特征点的提取和轨迹,地图的初值,而后端负责对所有这些数据进行优化。如果如同VO那样仅考虑相邻时间上的关邻,那么之前的误差将不可避免地累积到下一时刻,这样整个SLAM会出现累积误差,长期的结果将不可靠。 如上图,a表示真实轨迹,b中前端只给出相邻帧间的估计,优化后Pose Graph出现漂移 ,c添加...
2018-04-13 20:51:09
4658
原创 视觉slam14讲之后端优化
前端视觉里程计能给出一个短时间内的轨迹和地图,但不可避免的误差累积,这个地图在长时间内是不准确的。要想构建一个尺度,规模更大的优化问题,以考虑长时间内的最优轨迹和地图,这时后端优化就出现了。1.滤波器模型 a. 马尔可夫性,当前状态只和上一个时刻有关。 P(Xk| Xk-1,X0, U1:k,Z1:k-1) ...
2018-04-12 21:45:18
6055
原创 视觉slam14讲之VO框架的搭建
视觉里程计VO的搭建基本都会有以下几个问题:怎么管理地图点,如何处理误匹配,如何选择关键帧。。。由简到繁进行。 1. 视觉里程计分单目,双目,RGB-D三大类。单目视觉相对复杂,RGB-D最简单,没有初始化,也没有尺度问题。2. 编写小规模的库时,往往建立一些文件夹,把源代码,头文件,文档,测试数据,配置文件,日志等分类存放。当一个库内容很多时,往往还会把代码分解...
2018-04-12 10:55:29
1888
原创 视觉slam14讲之视觉里程计
作为视觉slam中4大步骤的最前端,视觉里程计(VO)是视觉前端,它根据相邻图像的信息估计出粗略的相机运动,给后端提供较好的初始值。而其主要实现方法,分为特征点法,直接法。其中特征点法目前是主流,它运动稳定,对光照,动态物体不敏感,是目前比较成熟的解决方案。1. 特征点 图像本是一个由亮度和色彩组成的矩阵,从矩阵层面考...
2018-04-11 13:32:05
1567
原创 视觉slam14讲之相机模型
1. 单目相机模型 a. 首先, 世界坐标系下有一个固定的点P,世界坐标为Pw。 b. 由于相机在运动,它的运动由R,t或变换矩阵T描述。P的相机坐标为P’ = R*Pw + t。 c. 这时的P’仍有X, Y, Z三个量,把他们投影到归一化平面Z=1上,得到P的归一化相机坐标:Pc = [X...
2018-04-09 21:54:08
411
原创 视觉slam14讲之欧式变换与Eigen库
1.欧式变换 在视觉slam中,相机是运动定位,构图的。而它是一个刚体运动,它保证了同一个向量在各个坐标系下的长度和夹角都不会发生变化,这种变化称为欧式变换。例如: 手机抛向天空,在摔碎之前,只可能有空间位置和姿态的不同,而它自己的长度,各个面的角度等性质不会有任何变化。这样一个欧式变换由一个旋转和一个平移两部分组成。 直接给出欧式空间的坐标变换关系: ...
2018-04-08 16:19:29
1530
原创 Ubuntu下vs code 安装插件出现XHR fail
平台:Ubuntu16.04 安装插件时,发生XHR fail错误,知道自己以前配置过代理,所以比较明确,但使用命令行修改有问题。不过Ubuntu友好,我就在界面里关掉就好了。 左边点击设置 -> 网络 -> 网络代理 -> 方法改为无即可。...
2018-04-08 13:39:07
6978
4
原创 视觉slam14讲之相机与框架
一. 视觉相机 视觉slam使用的相机,以一定速率拍摄周围的环境,形成一个连续的视频流,用以采集数据。使用到的相机分为:单目相机(Monocular),双目相机(Stereo)和深度相机(RGB-D)三大类。前2个较容易,而RGB-D原理较复杂,除了能够采集到彩色图片,还能读出每个像素与相机之间的距离。这个在视觉slam才使用极多。 &...
2018-04-07 21:04:49
592
算法代码解析
2018-02-13
王道算法题
2018-02-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人