- 博客(51)
- 资源 (13)
- 收藏
- 关注
原创 Git基础教程(四)
工作做到一半需要临时切换到别的任务1. 先commit当前的进度简单的做法先保存当前的修改然后切换到有问题的分级,先完成别的功能,然后切换回原来做到一半的develop分支,执行reset命令,衔接之前的工作。git reset HEAD^2. 使用Stash命令遇到这种情况的时候,可以像上面那样先commit,然后再Reset回来,另外一种做法是,使用Stash功能。首先查看分支状态,当前状态表明,对两个文件做了修改,这个时候可以使用git stash命令,把这些修改.
2021-02-01 13:26:42
320
原创 Git基础教程(三)
Git分支在git中使用分支非常简单,只需要使用Git branch命令即可:$ git branch test #新建test分支此时使用git branch查看一下分支:此时的确多了一个分支,但当前分支仍旧在master上,如果觉得自己起的分支名不够那么有规范,还可以修改分支名,使用git branch -m test develop,也就是说把test分支名改为develop,如果不需要develop这个分支,可以使用命令git branch -d develop删除。如果想要切
2021-01-26 17:11:54
261
原创 Git基础教程(二)
使用Git删除文件1. 直接删除可以使用rm命令删除文件,如:$ rm welcome.html然后查看一下状态:然后发现welcome.html的状态为deleted,如果你真的想在git管理仓库中删除这个文件,那么到目前为止,你的工作还没完成,你需要把这个改动加到暂存区,告诉git你删除的文件,就是你想要的操作。$ git add welcome.html然后查看状态:它现在的状态是deleted,并且这个操作已经被加入暂存区,接下来就可以进行commit操作
2021-01-23 21:49:53
249
原创 Git基础教程(一)
前言其实不管你是不是程序员,你的日常工作中都离不开对计算机的使用,你可能每天都需要进行文档的编辑、新建、改动等等,最典型的例子就是写毕业论文的时候,我记得自己写毕业论文的时候写了十几个版本,不停的备份。使用序号为1,2,3这样的数字对不同的版本进行标记。但假如你会使用Git,那对你所操作的文档版本的管理将会变得十分便捷。无论是在Windows下还是Linux/macOS下,git的操作指令都是一样的,一般而言,对git的操作都是在终端上进行的,因此需要掌握一点点终端的命令。终端下的常用命令 W
2021-01-22 11:36:03
235
原创 使用python对文件下的文件批量重命名
一直以来进行相机标定的时候需要对采集的图像进行重命名,一直像个智障一样一个一个对图像进行操作,效率极低。突然就明白了那句话,“人生苦短,我用python”import ospath = "E:\\image"filelist = os.listdir(path) #该文件夹下所有的文件(包括文件夹)count=0for file in filelist: print(file)for file in filelist: #遍历所有文件 Olddir=os.path.join(
2020-07-07 19:40:40
963
原创 视觉SLAM之鱼眼相机模型
最近研究了视觉SLAM中不同的鱼眼相机模型,其中包括:Scaramuzza的鱼眼相机模型代表性的SLAM工作为MultiCo-SLAM,是一个以ORB-SLAM为基础的扩展的多鱼眼相机视觉SLAM系统(Video,Paper)Scaramuzza相机模型标定工具:Tools:,其操作流程均可在相应网页中找到。投影公式:mei相机模型数学模型如下所示。也是VINS-mono所用的相机模型。具体可参考网页相机模型的参考论文...
2020-07-02 17:55:07
4965
14
原创 MultiCol-SLAM鱼眼相机的相机模型
%YAML:1.0# Camera Parameters. Adjust them!# Camera calibration parameters camera backCamera.Iw: 754Camera.Ih: 480# hyperparametersCamera.nrpol: 5Camera.nrinvpol: 12# forward polynomial f(\rho)Camera.a0: -209.200757992065Camera.a1: 0.0 Camera.
2020-06-01 09:43:52
1861
3
原创 旋转矩阵与欧拉角的相互转换及代码
这篇博客将会分享旋转矩阵和欧拉角的相互转换。三维旋转矩阵有三个自由度,旋转能够使用多种方法表示,比如一个3x3的矩阵,比如四元数,甚至可以将旋转表示为三个数字,即绕三个轴x,y,z的旋转角度。在原始的欧拉角公式中,旋转是通过围绕Z轴,Y轴,X轴分别旋转得到的。它分别对应于偏航,俯仰和横滚。当定义一个旋转时,可能还会引起歧义,比如对于一个给定的点(x,y,z),可以把这个点视为行向量(x,y,z...
2020-05-07 10:13:25
12644
原创 迭代近邻算法Iterative Closest Point, ICP
参考的文章链接:https://zhuanlan.zhihu.com/p/35893884https://blog.youkuaiyun.com/u014709760/article/details/99241393
2020-03-18 15:41:21
292
转载 C++动态类型与静态类型
静态类型编译时的类型,运行前就确定了,是变量声明时的类型或表达式生成的类型动态类型运行时才确定的类型,是变量或表达式表示的内存中的对象的类型Quote* p = new b_Quote; // Quote 是基类,b_Quote 是子类指针 p 的静态类型是 Quote,在编译时已经确定了,但它的动态类型是 b_Quote,运行时才知道举例Bulk_quote bulk;Quo...
2020-03-17 15:11:58
4203
2
原创 C++类的静态成员变量
#include<iostream>using namespace std;class Rect {public: Rect() { count++; } ~Rect() { count--; } static int getCount() { // 静态成员函数 return count; }private: int width; int le...
2020-03-13 17:24:41
814
原创 三次样条插值-轨迹规划
已知路径点生成无人车运动轨迹的方法–三次样条插值三次样条的基本理论和求解方式不做具体赘述,可参考博客需要注意的几个问题:端点条件由i的取值范围可知,共有n-1个公式, 但却有n+1个未知量m 。要想求解该方程组,还需另外两个式子。所以需要对两端点x0和xn的微分加些限制。 选择不是唯一的,3种比较常用的限制如下。1 自由边界2 固定边界3 非节点边界...
2020-01-10 18:14:19
2762
原创 GPS信号的可视化
问题描述:为什么我采集的GPS信号画出来之后跟实际的轨迹都不一样呢?问题详情1:当我采集的gps信号使用matlab可视化出来之后,发现跟百度地图或者腾讯地图上汽车行驶的轨迹不一样,差异甚至很大。分析:由于经纬度信息的坐标是固定在地心处的,可视化的时候是从上往下看的,因此你实际画出来的时候其实是实际轨迹的镜像,相当于你把画出来的图打印之后,从纸张的背面往上看就是你实际要的轨迹了。问题详...
2019-10-29 12:12:19
810
原创 一个血与泪的教训
一个血与泪的教训!!!!!!!我把应该输入的sudo rm -rf ./*,错误输成sudo rm -rf /*就他娘的少了个点!!!!!!!!!!!!!!!!我home下所有的东西都没了,恢复失败!!!!!!!!!!!...
2019-10-12 11:11:57
262
1
原创 python & c++ 批量命名文件夹内的图像
目的:对于做SLAM也好,还是做深度学习也好,涉及到大量的数据,系统对数据处理的时候,需要对比较规范的数据格式进行处理,往往我们提取的图像数据命名并不是那么规范,因此需要对采集的图像信息规范命名。以python2为例:本来我提取的数据为按照时间戳作为图像名保存的图像序列,现在想把它改成按照 000000.png 000001.png …这样的形式进行处理,这样就可以进行类似kitti的形式跑...
2019-09-04 11:29:56
266
原创 ROS☞通过两种方法提取.bag中的图像数据
使用两种方法对rosbag文件中的图像信息进行提取,一种基于Ros,一种基于python,各有优缺点。
2019-08-28 13:47:04
7216
2
原创 IMU-Allan方差分析
使用Allan方差来确定MEMS陀螺仪的噪声参数,陀螺仪测量模型为:使用长时间静止的陀螺仪数据对陀螺仪噪声参数进行分析,上式中,三个噪声参数N(角度随机游走),K(速率随机游走)和B(偏差不稳定性)。背景Allan方差最初由David W. Allan开发,用于测量精密仪器的频率稳定性。 它还可用于识别固定陀螺仪测量中存在的各种噪声源。对于一份陀螺仪样本数据,其采样时间为τ0\tau_{0...
2019-07-26 11:49:30
19824
10
原创 什么是归一化的平面坐标
在SLAM前端中经常涉及的一个概念就是像素点的归一化平面坐标,我一直不是很理解这个概念的意义。通过查阅一些资料写下我自己的理解,希望能加深对这个概念的理解。...
2019-07-22 11:34:55
20824
2
原创 VIO-为什么要进行在线时间标定
VIO为什么要进行在线时间对齐?时间偏差的主要来源是什么?1 为什么要进行在线时间对齐?在IMU预积分的时候,IMU给单目相机提供尺度,两帧之间IMU进行积分,得到帧间的真实运动。假设IMU频率为200Hz,camera频率为20Hz,那么理想的预积分应该如下图所示,时间严格对齐,可真实状况下,受多种因素的影响,IMU的数据和camera的数据之间存在偏差。真实状态下,可能是这个样子的:原...
2019-07-11 14:22:41
1650
原创 you are not allowed to push code to protected branches on this project
如上述所示,gitlab上传代码的时候遇到上述错误。查阅了很多资料,看了很多博客,最后问了Git大神之后才知道解决方案首先:明确你的身份,你是developer的身份还是以Owner的身份,以developer的身份是没有办法push代码到受保护的分支的(这个说法有误,跟这个原因相关,但不是绝对相关)。贴出一个网址,说明一下,developer身份和owner身份,操作权限的区别:https:...
2019-07-10 16:39:35
1737
原创 使用ORB_SLAM2的方式进行特征检测和提取
比较opencv默认的方式和ORB-SLAM2中对opencv进行重写的方式,两个方法对图像特征提取结果的对比。为方便比较,写在同一个文件中。主函数如下:#include <iostream>#include <opencv2/opencv.hpp>#include "ORBextractor.h"#include <vector>using na...
2019-07-03 13:50:00
2595
8
原创 ROS 启动自带摄像头或者USB摄像头
问题来源:当使用自己的摄像头运行开源SLAM框架的时候,需要启动摄像头节点,使用ROS驱动自己的摄像机获取图像信息。启动过程:1、编译运行摄像头启动节点 $ cd ~/catkin_ws/src ## 摄像头启动节点和slam的包都可以在这个文件夹下 $ git clone https://github.com/bosch-ros-pkg/usb_cam.git $ c...
2019-04-28 15:07:29
6101
5
原创 单目相机内参标定的问题
疑问:一直有一个问题,就是单目相机标定的时候大都是移动标定板,固定相机不动,也没有说出个所以然来,但是为什么没有教程说固定标定板不动,移动相机呢?解答:希望大佬看到后不吝赐教。...
2019-04-28 14:58:47
1646
4
原创 Ubuntu16.04+ROS Kinetic环境下svo编译运行
准备工作:安装Sophus(这个库是维护的比较好的一个李群和李代数的库)注: 其实你在运行其他版本的slam系统的时候大概率已经安装过,不过这里面执行一下,无伤大雅,也不会搞乱你的系统。#catkin_ws 是自己创建的ROS工作空间,在之前的博客里面也有创建ROS工作空间教程cd catkin_ws/src/SVO #后面源代码拷贝到这个目录下,所以将svo需要的库也放在这里面...
2019-04-28 12:04:46
1247
1
原创 通过对极几何求解相机运动
关于对极几何部分(无论看哪个都发现公式比较难懂…数学基因不足的忧伤),参考:对极几何-两视图对极约束 基础矩阵这是我认为讲的比较清楚的对极几何原理。看到以上的原理得出的重要结论:1、对极约束的重要结果就是从匹配的点中得出基础矩阵F2、从基础矩阵F中分解得到相机的选择矩阵R和平移向量t...
2019-04-18 17:21:59
609
原创 单目视觉里程计的尺度问题的疑问?
单目视觉里程计尺度问题??求解答https://github.com/avisingh599/mono-vo这个基于直接法的单目视觉里程计,应该比较适合大家入门。但我在做这个的相关学习的时候,作者说可以跑自己的数据集,于是我也做了自己的数据集,有相机内参,同时也做了畸变校正,但是自己并没有groun truth啊,就没有办法做尺度的恢复。退而求其次,不考虑对应真实场景的尺度,我怎么才能把整个数...
2019-04-16 14:03:18
4070
8
原创 将视频抽取成图片,并对图片进行批量命名opencv代码
#include <iostream>//#include "cv.h"#include "opencv2/opencv.hpp"#include <string>#include <iomanip>using namespace std;using namespace cv;// 描述:将视频帧转成图片输出void main(){ //...
2019-04-10 14:17:43
434
原创 ubuntu16.04 运行dso问题梳理
这个博客是唯一一个能够让我编译成功的博客,其他的博客,相同的问题,解决方案各不相同,非常繁杂;前面的操作过程:cd ~/ros_ws/src/ git clone https://github.com/JakobEngel/dso_ros cd .. export DSO_PATH=~/dso rosmake遇到的最多的问题就是:/usr/bin/ld: CMakeFiles/d...
2019-04-08 18:13:12
928
8
原创 特征匹配中OpenCV Dmatch类的用法解析以及非常详细的ORB特征提取与匹配解析
首先说明一点,在SLAM中进行特征提取和匹配时,需要注意使用的OpenCV版本,在使用OpenCV2.x版本时,可以创建特征对象如下所示(省略了参数表):ORB orb;SURF surf;SIFT sift;orb.detect();sift.detect();surf.detect();但是OpenCV3.X中就不允许这么做了,这是因为,opencv3.0直接使用 ORB o...
2019-04-03 15:40:49
12493
4
原创 VS2015断点调试方法
备注:部分图片(打马赛克的)转自百度,侵删!果真被和谐了,大家还是看这个网页吧:https://jingyan.baidu.com/album/e75057f21abdd6ebc91a8922.html?picindex=8到底多少人把一个windows下最好的IDE当做编辑器来用啊!!!我就是其中一个。。。。。。。。。。。。。。想哭。1、在想要添加断点的地方右侧点击,点击成功后会...
2019-03-27 16:29:36
23741
原创 ROS kinetic + Ubuntu16.04编译LSD-SLAM
网上搜了那么多的方法,到最后全都是坑,各种坑,根本就没有一个能讲明白的,只告诉你运行哪个哪个命令,根本不告诉你运行这些命令背后的原理是什么,会导致什么后果,唉,搜了那么多资料,到最后把ROS弄崩溃了,在这里记录一下整个过程,从零开始。解释一下命令的意义。先写到这里,下午再更。-----------------------------------------------分割线-------...
2019-03-26 12:05:18
419
原创 主机连接wifi,如何设置虚拟机上网方式
主机是windows系统(win7,win10),如果使用wifi上网,虚拟机如何设置??首先打开主机网络(如下所示):1、点击无线网络连接2、点击属性:3、点击共享,一定要确认两个允许的对号有没有勾上,一定√上才能从虚拟机上网4、点击虚拟机网络5、点击网络设置:选择你刚设置的网络即可上网。...
2019-01-28 16:07:01
16416
1
原创 python之matplotlib中plt.show()不显示
查看自己后端显示工具:notebook运行:%pylab看显示是什么?我的:于是:%matplotlib qt5,代码如下:import mathimport randomimport numpy as npimport matplotlibimport matplotlib.pyplot as plt%matplotlib qt5# set up m...
2018-12-12 11:37:13
3009
原创 Ubuntu 更换源不成功 sudo apt-get update 失败问题总结
安装NVIDIApx2ros总是失败,NVIDIADRIVE px2是arm64架构,跟平常的笔记本,台式机不一样,不过也有一定的借鉴意义。问题都是类似的。比如这次我遇到如下问题:Failed to fetch https://mirros.tuna.tsinghua.edu.cn/ubuntu/dists/xenial-backports/main/binary-arm64/...
2018-11-07 11:55:22
12492
16
转载 Linux下gcc/g++、make和cmake的区别
文本程序到可执行文件生成无论在什么平台大致分为以下几个部分: 1.用编辑器编写源代码,如.c文件。 2.用编译器编译代码生成目标文件,如.o。 3.用链接器连接目标代码生成可执行文件,如.exe。 Linux平台下,.o文件一般是通过编译的但还未链接的目标文件,.out文件一般都是经过相应的链接产生的可执行文件(linux下)。当然这是一般情况下人们这么设置,而真正的,在l...
2018-10-26 09:37:56
190
原创 jupyter notebook matplotlib绘制动态图并显示在notebook中
有些时候matplotlib 的绘图没法显示在notebook中,或者显示不了。这与backend有关。首先启动你的notebook,输入%pylab查看你的matplotlib后端,我的输出为:Qt5Agg这是后端的渲染方式,使用的是qt5渲染。激活方式为在绘图之前插入代码段:%matplotlib qt5这样就能显示出图,但是是显示在notebook之外的,如...
2018-09-26 14:46:31
14936
MultiCol-SLAM相机标定涉及的两个重要论文。
2020-06-23
urban2016.pdf
2020-06-10
1.board------对应A*算法的路径,其实就是个矩阵,并没有什么重要的。
2019-10-17
NVIDIA drive px2(硬件手册)
2019-04-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人