自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 收藏
  • 关注

原创 杀死僵尸进程

杀死僵尸进程

2022-08-05 13:02:04 210 1

原创 latex用法总结

ss

2022-04-09 12:05:01 600

原创 SCannet下载

Thank you for your interest in ScanNet. Please use the following script to download the ScanNet data: http://kaldir.vc.in.tum.de/scannet/download-scannet.py.Note that by default this script will download the newest (v2) release of the ScanNet data (s

2022-02-09 14:50:48 247

原创 ORB_SLAM2带回环的稠密建图(包括自己数据集的采集)

稠密建图按照下面的网站进行安装https://github.com/xiaobainixi/ORB-SLAM2_RGBD_DENSE_MAP遇到的问题Eigen版本Eigen库的版本要求为3.1.0。可以在usr/include中安装两个版本的EIgen,使用那个用哪个。具体步骤参考https://blog.csdn.net/weixin_43828675/article/details/118660322?spm=1001.2014.3001.5501读取字典时,报错:段错误(核心已

2021-07-12 16:13:52 2783 5

原创 ubuntu设置不同的eigen版本

下载Eigen并进行编译下载eigen库,创建build文件夹进行编译设置安装路径这里会设置make install的路径随后进行make install移动到usr/include路径下找到第二步中安装的位置,移动到usr/include路径下这样,需要用那个版本的eigen,使用mv进行修改进行。比如我要使用eigen310,只需使用sudo mv ./eigen3 ./eigen334sudo mv ./eigen310 ./eigen3...

2021-07-11 21:42:24 865 3

原创 RealSenseD435与ORB-SLAM2实现稠密建图

一、RealSenseD435介绍RealSenseD435是一款结构光相机,使用左右目相机和红外光实现测距。有效测距范围为0.2~10m二、ORBSLAM2_with_pointcloud_map的安装git clone https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map.gitclone代码,无法下载的话,可以直接去https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_m

2021-05-31 17:58:01 2823 5

原创 SLAM数据集百度网盘下载(KITTI/EuRoC/TUM/shapenet)

KITTI链接: https://pan.baidu.com/s/1UIoP1TgGLLWWpKYVrre9WA 密码: dbsbEuRoC链接: https://pan.baidu.com/s/1zvxyN1KlIk28_LvC36WU5Q 密码: f1rvshapenet链接: https://pan.baidu.com/s/1pdRk3FOxRe5YRBVGP0ACJw 密码: 4knlTUM链接: https://pan.baidu.com/s/1GFy8MZmH4TZGakzG

2021-05-20 00:34:49 5761 5

原创 ROS中cv_bridge如何用python3进行编译

最近遇到了个问题,cv_bridge实现了opencv和ros中图像数据类型的转换,但ros-melodic默认python版本是python2。在配置yolact环境的时候,要求是python3。这就导致在ros自带的cv_bridge是python2版本,想使用python3的话需要自己去编译cv_bridge。否则会报错:ImportError: dynamic module does not define module export function (PyInit_cv_bridge_boo

2021-05-17 16:03:15 1859 4

原创 ROS话题通信中创建自定义数据类型的两种方式

一、在同一个功能包下创建.msg文件1、在功能包目录下创建msg文件夹2、在文件夹中创建.msg文件3、在该功能包的package.xml文件中加入: <build_depend>message_generation</build_depend> <exec_depend>message_runtime</exec_depend>4、在该功能包的CMakeLIst文件中修改find_package(catkin REQUIR

2021-05-13 17:23:31 420 1

原创 yolact_ros出坑记录

教程:https://github.com/Eruvae/yolact_ros下载通信中的话题msg创建虚拟环境conda create -n yolact python=3.7.10conda activate yolact配置yolact环境https://github.com/dbolya/yolact运行效果如下所示:在虚拟环境中安装需要的包conda install rospkgconda install empy创建一个工作空间工作空间的目录下不能有中文名称

2021-05-12 23:56:49 614 3

原创 ubuntu中常用指令

创建虚拟环境conda create -n 虚拟环境名称 python=3.7.10查看虚拟环境列表conda info --envs激活虚拟环境conda activate 虚拟环境名退出虚拟环境conda deactivate 虚拟环境名称安装功能包conda install 功能包名称卸载功能包conda remove 功能包名称改变虚拟环境中的python版本conda install python=3.7.10查看gpu使用状况watch

2021-05-12 23:29:33 106

原创 shell与 .sh文件与 .bash文件

一、shell和bashshell是LInux系统下的解释器,类似于windows下的cmd。shell对用户输入到窗口中的命令行进行解释,输入到内核。bash同样是Linux系统下的解释器,是bash的改进版。二、.sh文件与.bash文件.sh文件和.bash文件都是脚本文件,.sh文件对应shell解释器,.bash对应bash解释器。大多数情况下,两者可以视为相同。所谓的脚本时间,指的是执行该文件时,文件中的命令行会被一同执行。2.1 创建一个.sh文件并执行创建sh文件touch

2021-05-12 23:13:06 4486

原创 ROS知识点总结

1、ROS功能包的目录下不能有中文2、WorkSpace --- 自定义的工作空间 |--- build:编译空间,用于存放CMake和catkin的缓存信息、配置信息和其他中间文件。 |--- devel:开发空间,用于存放编译后生成的目标文件,包括头文件、动态&静态链接库、可执行文件等。 |--- src: 源码 |-- package:功能包(ROS基本单元)包含多个节点、库与配置文件,包名所有字母小写,只能由字母、数字与下划线组成.

2021-05-12 22:42:41 677 3

原创 C++/C文件读取

ofstream:写操作ifstream: 读操作fstream : 读写操作打开方式解释ios::in为读文件而打开文件ios::out为写文件而打开文件ios::ate初始位置:文件尾ios::app追加方式写文件ios::trunc如果文件存在先删除,再创建ios::binary二进制方式1、写文件包含头文件#include <fstream>创建流对象ofstream ofs;打开文件o.

2021-04-26 23:02:21 185

原创 C++类class

定义构造函数:在定义一个类对象时会自动调用,可用于实现一些功能,比如new一个内存。构造函数,没有返回值也不写void函数名称与类名相同构造函数可以有参数,因此可以发生重载程序在调用对象时候会自动调用构造,无须手动调用,而且只会调用一次 析构函数:在类对象销毁时执行,可用于实现一些功能,比如delete一个内存。析构函数,没有返回值也不写void函数名称与类名相同,在名称前加上符号 ~析构函数不可以有参数,因此不可以发生重载程序在对象销毁前会自动调用析构,无须手动调用,而且只会

2021-04-22 09:55:13 4885

原创 C++计时函数

推荐使用chrono计时函数#include<iostream>#include<vector>#include<algorithm>#include<chrono>using namespace std;class mycom{public: bool operator()(pair<int,int> p1,pair<int,int> p2) { return p1.first < p2.first;

2021-04-18 16:26:54 124

原创 ubuntu下使用conda出现solving environment失败

更换anaconda的源(注意是anaconda的源,不是ubuntu的源)sudo gedit ./.condarc在出现的空文档中写入channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free - https://mirrors.tuna.tsinghua.edu.cn/anaconda/p.

2021-04-15 15:58:54 1400

原创 ubuntu下载安装MaskRCNN-benchmark

在window下,配个环境,一堆错误,一周多都没解决。换到ubuntu下,不到一天就配好了= =强烈建议直接去ubuntu下配置,千万别在window环境下配置。一、下载anaconda,创建虚拟环境下载anaconda的步骤读者可以去百度,很简单。随后创建虚拟环境conda create -n pytorch python=3.6.0&emps;二、下载CUDA与CUDNN首先要更新驱动,随后进行安装。安装步骤可参考博主之前的博客。https://blog.csdn.net/

2021-04-15 15:50:31 616 9

原创 Ubuntu18.04安装cudnn

下载Cudnncudnn下载版本要与cudn版本相对应。笔者cudn为10.0,则cudnn选7.65。下载地址:https://developer.nvidia.com/rdp/cudnn-archive下载for Linux这个。编译解压后运行以下命令:sudo cp cuda/include/cudnn.h /usr/local/cuda-10.0/includesudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.0/lib64sudo

2021-04-14 22:00:03 379 2

原创 ubuntu18.04安装CUDA10.0

1、更新驱动对于CUDA10.0,要求驱动版本大于410.48,因此首先要更新驱动ubuntu-drivers devices(查看所有驱动)sudo ubuntu-drivers autoinstall(自动安装最适合的驱动)查看驱动版本nvidia-smi2、下载CUDA10.0https://developer.nvidia.com/cuda-toolkit-archive选择10.0版本后,进行如下选择下载这个2.0G的。3、安装将下载的包复制到主目录下运

2021-04-14 21:09:56 1130 2

原创 ProxyError: Conda cannot proceed due to an error in your proxy configuration

右键网络---->属性---->左下角的Internet选项---->链接---->局域网设置将所以的对号去掉

2021-04-12 22:52:23 426 2

原创 Mask_RCNN安装与踩过的坑

一、Mask_RCNN下载https://www.bilibili.com/video/BV1M7411x7is?t=629&p=5按照上述教程的话,安装的是ballon例子的Mask_RCNN。这个理解的话,修改Mask_RCNN也就很简单了。二、库版本配置进入cmd创建虚拟环境tf,python版本为3.6conda create -n tf python==3.6pip安装库,库版本如下所示(吐槽一下:这个库的版本是真的难搞)absl-py

2021-04-11 23:10:42 555

转载 Window10安装pycocotools

之前在linux系统下安装pycocotools时非常简单,只需:pip install pycocotools如果在windows下通过以上指令安装会报错,网上查询后都说需要安装C++编译器或者VS环境,等等,其实没必要那么麻烦,直接通过一下指令安装即可:pip install pycocotools-windows...

2021-04-11 16:59:33 94

原创 C++函数重载

函数中的参数默认值在C++中,函数的形参列表中的形参是可以有默认值的。语法:返回值类型 函数名 (参数= 默认值){}#include <iostream>using namespace std;// 函数的参数有默认值,放在右边,且那么从这个位置往后,从左向右,必须都要有默认值// 即b有默认值,那么c也必须有默认值void test1(int a, int b = 10,int c = 20){ cout << a + b + c << endl;

2021-04-05 10:38:33 50

转载 协方差原理

转载自:https://blog.csdn.net/qq_31073871/article/details/81057030   先从方差开始,我们有一组样本x1、x2、x3····xn,这组样本的均值为EX,每一个样本都与EX之间存在误差,那么这组样本的方差被定义为:所有误差的和的均值,也即[Σ(xi-EX)^2]/(n-1),方差的作用就是用来“衡量样本偏离均值的程度”。下面开始看协方差:  仔细观察上述定义式,可知:如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值时另外一个

2021-04-03 22:09:56 1203

原创 卡尔曼滤波

一、概述所谓的滤波即滤除噪声。图中红色线是传感器传入的数据,由于存在噪声,使得波动很大。在滤除噪声后,数据如紫色线条所示。1.1适用的系统卡尔曼滤波适用于线性高斯系统。所谓的线性,指的是系统满足叠加性和其次性。所谓的高斯,指的是系统噪声为高斯噪声。卡尔曼滤波可以视为一种加权,即选出预测值、测量值的权重(卡尔曼增益)。1.2状态空间表达由状态方程、观测方程组成1.2.1状态方程其中:xk:系统k时刻的状态uk-1:系统k-1时刻输入的控制量wk-1:系统k-1时刻的状态噪声,白噪

2021-04-03 21:02:51 2148 2

原创 C++二维数组名与数组指针的思考

二维数组名和数组指针可以当做一个东西用,但两者之间的含义是不同的。二维数组名是一个指向数组中所有元素的指针,而数组指针是一个行指针。体现在sizeof()上的不同。#include <iostream>using namespace std;int main(){ // a是一个二维数组名,指向一个二维数组 int a[2][3] = {{1,2,3},{4,5,6}}; // a所占的内存为24,即6*4 cout<<sizeof(a)&l

2021-04-03 10:43:25 207 4

原创 C++ new

C++中利用new操作符在堆区开辟数据堆区开辟的数据,由程序员手动开辟,手动释放,释放利用操作符 delete 语法:new 数据类型利用new创建的数据,会返回该数据对应的类型的指针开辟单个内存语法:new 数据类型(初始值)#include <iostream>using namespace std;int* get_num(){ int* a = new int(10); return a;}int main(){ int* res = g

2021-04-02 11:40:36 345

原创 C++结构体

结构体定义和使用语法:struct 结构体名 { 结构体成员列表 };通过结构体创建变量的方式有三种:struct 结构体名 变量名struct 结构体名 变量名 = { 成员1值 , 成员2值…}定义结构体时顺便创建变量#include <iostream>#include <string>using namespace std;struct student{ string name; int age;}stu3;// 方式3:定义了一个

2021-04-01 12:23:36 63

原创 np.dot()运算准则

一维数组有3个元素的话,用(3,)表示二维数组3*3用(3,3)表示(3,3) * (3,)结果为(3,),即包含3个元素的一维向量https://blog.csdn.net/CSDN_SUSAN/article/details/100158301

2021-03-31 16:53:27 198

原创 C++数组名做函数形参/指针

数组名做函数形参数组未开辟空间时#include <iostream>using namespace std;void test(int* a){ *a = 0; *(a+1) = 1; *(a+2) = 2; cout<<a[0]<<a[1]<<a[2]<<endl; return;}int main(int argc,char* argv[]){ int* a; test(

2021-03-31 12:51:31 186

原创 C++数组

一维数组一维数组定义方式#include <iostream>using namespace std;int main(int argc,char* argv[]){ // 1 int a1[10] = {1,2,3,4,5,6,7,8,9,10}; // 2 int a2[] = {1,2,3,4,5,6,7,8,9,10}; return 0;}数组名的使用1、 获取数组的长度#include <iostream>

2021-03-30 12:41:31 72

原创 ROS配置ORB_SLAM2

准备工作ORB_SLAM2/ROS的安装,具体安装流程博主之前写过,读者可以自行阅读。 添加环境变量cd ~gedit .bashrcexport ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM2/Examples/ROS其中PATH为ORB_SLAM2的安装路径 编译ROS文件cd ORB_SLAM2的目录下chmod +x build_ros.sh./build_ros.sh 安装摄像头驱动功能包编译usb_ca

2021-03-29 22:17:41 2507 3

原创 C++标识符命名规则/int的取值范围/for的组成/break、continue

标识符命名规则1、标识符不能是关键字2、标识符只能由下划线、字母、数字组成3、数字不能作为标识符的开头4、标识符中区分大小写 int取值范围int由4个字节组成,共32位,其取值范围为:正数:00000000 00000000 00000000 00000000 ~ 01111111 11111111 11111111 11111111,即0 ~ 2^31-1负数:10000000 00000000 00000000 00000000 ~ 10000000 00000000 0000000

2021-03-29 11:16:30 840

原创 ORB_SLAM2概述

追踪线程灰度化处理。构建当前帧(提取每幅图像的特征点,并分配到网格中,这会极大的方便某一领域内的特征点的查找与匹配)。单目相机初始化操作:通过特征点匹配,使用RANSAC+DLC计算H矩阵,并根据对称转移误差计算H的评分。使用RANSAC+八点法计算E 矩阵,并根据极线约束估计F评分。选择H/E后通过SVD分解获得最优的R/t。随后进行三角化测距,全局BA优化,优化初始地图的相机位姿和路标点坐标。估计相机位姿并进行优化(位姿图优化)。追踪相机位姿的方法(主要的不同在于获得当前帧位姿的方式)包括:.

2021-03-23 22:33:36 1850 1

原创 C++继承

继承的主要作用:减少代码的数量class A : public B;其中A称为子类/派生类,B称为父类/基类派生类中的成员,包含两大部分:一类是从基类继承过来的,一类是自己增加的成员。继承方式类中变量的分类继承方式分为:公有继承、保护继承、私有继承类中的变量分为:public\protected\private#include <iostream>using namespace std;class Base1{public: int m_A = 1;

2021-03-18 15:38:35 68

原创 C++ 计算二叉树的深度

二叉树的深度可通过BFS,DFS计算获得。#include <iostream>#include <queue>using namespace std;class TreeNode{public: TreeNode* left; TreeNode* right; int val; TreeNode(int value):val(value),left(NULL),right(NULL){}};// BFS实现二叉树的深度计算int

2021-03-18 12:05:13 2041

原创 C++查找算法(更新中)

C++的查找分为静态查找与动态查找。静态查找:只是在查找表中判断是否有这一个元素,取出这个元素的属性。动态查找:在查找过程中,会对查找表做出修改。 比如插入、删除。静态查找静态查找包括:顺序查找、二分查找、分块查找等。顺序查找查找表可以是有序或无序。...

2021-03-17 15:37:01 202

原创 C++二叉搜索树

二叉搜索树(Binary Search Tree,又称BST)。任意一个节点的左子树的值一定小于根节点的值,右子树的值一定大于根节点的值。二叉搜索树的中序变量递增!以Leetcode第98题为例:给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: tr

2021-03-16 15:44:09 150

原创 C++智能指针

诶嘿嘿

2021-03-15 16:55:34 76

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除