- 博客(135)
- 收藏
- 关注
原创 ubuntu黑屏 只有左上角一个白色光标 ubuntu桌面循环登录 解决办法
由于我想在ubuntu上连接kinect2.0,所以安装了libfreenet,造成ubuntu桌面瘫痪,无法进入系统,现象就是启动后黑屏,只有左上角的一个白色光标,有时候删有时候不闪。。。解决办法:一:联网我是win7和ubuntu双系统,所以在win7上联网后ubuntu也能上网,便于安装软件以及更新二:更新sudo apt-get updatesudo ap...
2018-07-18 10:39:20
5480
原创 ORB-SLAM2 闭环检测 computeSim3和CorrectLoop 流程图
接上一篇博客:第四阶段:紫色线,计算当前关键帧mpCurrentKF共视的关键帧mvpCurrentConnectedKFs的纠正位姿CorrectedSim3和未纠正位姿NonCorrectedSim3,并用纠正后的位姿计算mvpCurrentConnectedKFs和mvpCurrentConnectedKFs的地图点vpMPsi的worldpose。第五阶段:蓝色线,用当前关键帧mpCurr...
2018-05-31 16:05:59
3090
原创 ORB-SLAM2 闭环检测 LoopClosing::ComputeSim3() 流程图
mpCurrentKF:当前关键帧pKF:mvpEnoughConsistentCandidates[i] detectloop给出的候选关键帧mpMatchedKF:选定的闭环关键帧vvpMapPointMatches[i]:mpCurrentKF和mvpEnoughConsistentCandidates[i] (pKF)匹配的地图点vpMapPointMatches[j]:pSolver-&...
2018-05-31 08:17:02
2075
2
原创 c++ 文件流 ifstream 读取txt文件中数或者字符串
读取数 ifstream infile; infile.open("/home/zss/Documents/ORB_SLAM2/0-612.txt"); for (int i = 0; i < 7; i++) { for (int j = 0; j < 2207; j++) { yolo_detectio...
2018-04-12 22:03:09
26022
原创 c++ 定义全局变量 不同文件中可以引用
一:extern+变量声明主函数文件:extern int a; //全局变量aint main() { ...... return 0; } 引用变量的函数文件:using namespace std;int a;//相当于变量声明,会去extern的变量找相应的变量add(){cout<<a<<endl;}二:static类成员+...
2018-04-11 14:16:44
7204
1
原创 yolo检测结果数据整理
fid = fopen('output.txt','r');bb = textscan(fid,'%s');fclose(fid);T=zeros(1163,8);%disp(bb{1,1}{10,1});%[x,y]=find(strcmp(bb{1,1}, 'FPS:0.0')); %disp(x(:,2));aa=strfind(bb{1,1},'left=');cc=st...
2018-04-05 22:11:20
1636
原创 CmakeList中常用语法学习
一:add_library该指令的主要作用就是将指定的源文件生成链接文件,然后添加到工程中去。SHARED:库会被动态链接(动态链接库),在运行时会被加载。《视觉slam十四讲》中的例子:add_library( myslam SHARED frame.cpp mappoint.cpp map.cpp camera.cpp ...
2018-03-22 21:11:47
1775
原创 结合SLAM十四讲的示例程序理解SE3, se(3), so(3),R, t等
博客中程序参考/slambook/project/0.2/src/visual_odometry.cpp一:理解各种表示下的R,t变量关系 void VisualOdometry::poseEstimationPnP() { vector<Point3f> pts_3d; vector<Point2f> pts_2d; ...
2018-03-21 21:02:46
16771
11
原创 李群,李代数知识点总结(无数学公式)
一:为什么用李群李代数 在slam问题中,R为旋转矩阵,它是正交矩阵并且行列式为1,t是平移向量。在求解最小化重投影或者光度误差的时候,必须考虑到它们满足的约束,那么这个问题就变成了有约束优化问题。但是我们不想去求有约束的问题,因为不好求。我们更喜欢的是去求无约束问题,而且无约束问题有很多现成的解法。 于是就有大神想出我们可以去另外一个空间求解,比如李代数。最后研究表明确实通过李代数可以将求...
2018-03-21 16:15:35
3801
转载 sophus库的一些使用
参考博客:http://blog.youkuaiyun.com/robinhjwy/article/details/77334189一:SO3Eigen::Matrix3d R = Eigen::AngleAxisd(M_PI/2, Eigen::Vector3d(0,0,1)).toRotationMatrix();//由轴角构造旋转向量Sophus::SO3 SO3_R(R); ...
2018-03-21 15:38:35
1844
转载 Eigen库:旋转矩阵,旋转向量和四元数的初始化和相互转换
参考博客:http://blog.youkuaiyun.com/u011092188/article/details/77430988Eigen库中各种形式的表示如下:1: 旋转矩阵(3X3):Eigen::Matrix3d——用一个矩阵来表示空间中的旋转变换关系2: 旋转向量(3X1):Eigen::AngleAxisd——用一个旋转轴和一个旋转角来表示旋转3: 四元数(4X1):Eigen::Quater...
2018-03-21 15:18:20
10187
原创 视觉SLAM—Eigen库
一:常用基本类型Eigen::Matrix3d——3*3矩阵Eigen::Matrix3d::Identity()——3*3单位矩阵Eigen::Vector3d——3*1向量Eigen::Isometry3d——4*4变换矩阵(T)二:与cv::Mat的转换Eigen转MatEigen::Matrix3d R_;cv::Mat R(3,3);R=(Mat_<double>(3,3...
2018-03-21 10:07:52
2885
原创 视觉SLAM十四讲之向量(vector)与容器(unordered_map)的使用
一:向量 vectorvector基本操作(stl_vector.h):.size().begin() .end().push_back().clear()vector<KeyPoint>基本操作(types.hpp):.pt()//关键点的坐标.angle()//关键点的方向角vector<DMatch>基本操作(types.hpp).distance()//两匹...
2018-03-17 20:14:42
767
转载 世界坐标系,相机坐标系,图像坐标系,像素坐标系转换
参考博客1参考博客2世界 ——> 相机 (外参:R,T ) [Xc,Yc,Zc]T表示相机坐标,[Xw,Yw,Zw,1]T表示归物体所在的世界坐标。R表示旋转矩阵,T表示平移矩阵。相机 ——> 图像 (内参:f)从相机坐标系到图像坐标系,属于透视投影关系,从3D转换到2D。此时投影点p的单位还是mm,并不是pixel,需要进一步转换到像素坐标系f表示焦距。[Xc,Yc,Zc]T表示相机...
2018-03-12 14:46:40
18894
9
原创 如何在本地完成CS231n课程作业
最近开始学习斯坦福大学的CS231n课程,课程地址:网易云课堂,只有中文字幕,现在学完了1-7课时,准备着手做一下第一次作业,但是第一次接触不免有些手忙脚乱,自己探索了半天,准备写一个教程给和我一样的小白菜们,一起学习一起进步哦~实验平台:Ubuntu14.04 一:安装Anaconda下载地址:点击打开链接选择python2.7版本的64-Bit (x86) Installer (533 MB)...
2018-02-28 14:49:26
18315
13
原创 视觉SLAM或视觉里程计数据集整理
SLAM或视觉里程计1. TUM RGB-D数据集自带Ground-truth轨迹与测量误差的脚本(python写的,还有一些有用的函数)。网址:点击打开链接2. KITTI数据集地址:点击打开链接著名的室外数据集,包括单目视觉 ,双目视觉, velodyne, POS 轨迹。3. Oxford数据集含有一些Fabmap相关的数据集,用来验证闭环检测的算法。室外场景。网址:点击打开链接4. ICL...
2018-02-25 16:47:32
4986
1
原创 谷歌浏览器背景颜色设置为豆沙绿保护色详细教程!
一:如下图所示,选择三个点--更多工具---扩展程序二:选择最下面的"获取更多扩展程序",打开Google应用商店三:搜索“保护眼睛”我用的是第一个,很好用,或者也可以搜索“Apple Green”可以看到更多类似的插件。点击添加至Chrome四:可以看到这个插件已经添加到下面,打开百度一下试试看,网页的背景颜色已经变成了豆沙绿色。注意的是:在域名为http://的时候
2018-01-30 10:18:39
78230
转载 深入理解机器学习中的:目标函数,损失函数和代价函数
参考知乎回答整理:https://www.zhihu.com/question/52398145主要参考:https://www.zhihu.com/question/52398145/answer/209358209基本概念:损失函数:计算的是一个样本的误差代价函数:是整个训练集上所有样本误差的平均目标函数:代价函数 + 正则化项实际应用:损失函数和代价函数是同一个东
2018-01-29 21:20:19
36645
5
转载 ubuntu14.04:g2o安装和卸载
参考地址:http://blog.youkuaiyun.com/yoouzx/article/details/53083496?locationNum=2&fps=1一:下载依赖项libqglviewer-qt4-dev 链接: https://pan.baidu.com/s/1o8Oz3vW 密码: n7fs下载之后解压,然后进入下载目录依次安装三个文件(双击)二:下载g2o: ht
2018-01-26 16:35:29
4622
1
原创 跟高翔学习RGBD-SLAM遇到的问题总结(随更)
一:undefined reference to `cv::解决办法:链接opencv,pcl库二:undefined reference to point2dTo3d解决办法:添加 libslambase.a(截图截错了, libslambase.a前面注释应该去掉)三:error: ‘KeyPoint’ is not a member of ‘c
2018-01-26 09:31:46
3901
6
原创 与opencv斗智斗勇
经过无数次安装,卸载opencv,感觉自己萌萌哒。。。1.1:opencv2.4.8安装sudo apt-get install libopencv-dev1.2:opencv2.4.8卸载sudo apt-get --purge remove libopencv-dev2.1:opencv2.4.9安装下载源码包:https://github.com/opencv/opencv注意要选择2.4....
2018-01-25 15:29:12
492
原创 深入理解卡尔曼滤波
参考博客:http://blog.youkuaiyun.com/zkl99999/article/details/46619771参考知乎链接里肖畅的回答:https://www.zhihu.com/question/23971601/answer/46480923首先,需要明确的一点是滤波的概念:filtering is weighting(滤波即加权),滤波的作用就是给不同的信号分量不同的权重
2018-01-15 21:48:40
495
原创 Ransom Note
bool canConstruct(char* ransomNote, char* magazine) { unsigned int rason[256]={0}; unsigned int mag[256]={0}; int i=0; for(i=0;i<strlen(ransomNote);i++) { rason[ransomNote[
2017-01-13 21:45:52
609
原创 Minimum Moves to Equal Array Elements
方法一:找规律直接输出int minMoves(int* nums, int numsSize) { int i,sum,tempmin; sum=tempmin= nums[0];//记住一定要拿到外面,否则循环一次付一次nums[0],sum也要拿到外面,要不然少一个nums[0] for (i = 1; i < numsSize; i++) { if (nums[i]
2017-01-13 20:08:38
261
原创 Move Zeroes
方法一:C++遇见非0往前交换,0往后窜swap时要包含以下两个:#includeusing namespace std;子函数:void moveZeroes(int* nums, int numsSize) { int last = 0, cur = 0; while (cur < numsSize) { if (nums[cur] != 0) { swap(
2017-01-11 20:47:30
246
原创 Assign Cookies
方法一:int compInc(const void *a, const void *b){ return *(int *)a - *(int *)b;}int findContentChildren(int* g, int gSize, int* s, int sSize) { int i, j, count = 0, a = 0; qsort(g, gSize, sizeof(
2017-01-11 20:07:15
249
原创 Invert Binary Tree
方法一:struct TreeNode* invertTree(struct TreeNode* root) { TreeNode* temp; if(root==NULL) return root; temp=root->left; root->left=invertTree(root->right); root->right=invertTree(t
2017-01-11 19:15:24
233
原创 Add Digits
方法一:这道题让我们求树根,所谓树根,就是将大于10的数的各个位上的数字相加,若结果还大于10的话,则继续相加,直到数字小于10为止。那么根据这个性质,我们可以写出一个解法如下:class Solution {public: int addDigits(int num) { while (num / 10 > 0) { int sum
2017-01-11 16:38:02
241
原创 Find the Difference(类似 Single Number)
#include#include#includechar findTheDifference(char* s, char* t) { int i, j,s1=0,s2=0; for (i = 0; i < strlen(s)+1; i++) { s1 += s[i]; s2 += t[i]; } return(char)(s2 - s1);}int main(){
2017-01-11 16:14:11
226
原创 二叉树深度(最大和最小)
/**最大深度 * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */int maxDepth(struct TreeNode* root) { i
2017-01-11 15:49:52
458
原创 Sum of Two Integers计算机如何实现两个数相加
int getSum(int a, int b) { int sum = a; while (b != 0) { sum = a ^ b;//calculate sum of a and b without thinking the carry b = (a & b) << 1;//calculate the
2017-01-10 20:13:27
580
原创 Single Number奇数个数 偶数个数
nt singleNumber(int a[], int n) { int num = 0; for (int i = 0; i < n; ++i) { num ^= a[i]; } return num; }解释:What if the input is {1,1,2,2,0}? 就是两个一样的异或就是0,有一个不一样的异或出来就
2017-01-10 19:51:59
505
原创 Nim Game 博弈游戏
这句话很重要:你俩一个套路Both of you are very clever and have optimal strategies for the game当n∈[1,3]时,先手必胜。当n == 4时,无论先手第一轮如何选取,下一轮都会转化为n∈[1,3]的情形,此时先手必负。当n∈[5,7]时,先手必胜,先手分别通过取走[1,3]颗石头,可将状态转化为n == 4时的
2017-01-10 16:42:33
304
原创 Find All Numbers Disappeared in an Array
//注意:数组个数与最大数一致#include#include#includeint* findDisappearedNumbers(int* nums, int numsSize, int*returnSize) { int *zss = (int *)malloc(sizeof(int)*numsSize); int *zs = (int *)malloc(sizeof(int)*n
2017-01-10 16:19:33
269
原创 Island Perimeter 求四邻域有几个1的问题
子函数:int islandPerimeter(int** grid, int gridRowSize, int gridColSize) { int i, j, k=0; for (i = 0; i < gridRowSize; i++) { //grid[i] = (int*)malloc(sizeof(int) * gridRowSize);有就错了 for (j = 0
2017-01-09 22:26:16
486
1
原创 二维数组和二级指针
二级指针:int a[SIZE][SIZE];int **p = a;这样是不行的但是可以这样:int**p = (int**)malloc(sizeof(int*)*SIZE);for (int i = 0; i < SIZE; i++) {p[i] = (int*)malloc(sizeof(int)*SIZE);}然后就可以这么用了 p[i][j]。想要指向二维数组
2017-01-09 20:54:45
333
原创 Reverse String反向输出字符串
首先:runtime error的原因 一种是内存错误吧,例如访问了未定义的某块内存空间,int arr[8];但是访问了arr[8]这个元素。或者int *n = NULL; *n = 10;这种也会报内存错吧。还有就是有endless loop吧,可能没有能使程序跳出某循环的条件存在。方法一:程序:char* reverseString(char* s) { int i,
2017-01-09 18:57:40
421
原创 FizzBuzz
实际运行时头文件:vs2013#if _MSC_VER#define snprintf _snprintf#endif#pragma warning(disable: 4996)方法一:char** fizzBuzz(int n, int* returnSize) { int i; char **ret; char *buf; ret = (char **)cal
2017-01-09 16:49:56
354
转载 char *,char**,char***
char s1[10];s1[0] s1[1]等都是chars1是char*,等同于&s1[0]char*s2[10];s2[0] s2[1]等都是char**s2[0] *s2[1]等都是char,是s2[0] s2[1]指向的字符串的第一个字符s2是char**,等同于&s2[0]char**s3[10];s3[0] s3[1]等都是char***s
2017-01-08 21:40:52
468
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人