自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ORB_SLAM3初试

源码地址:orb_salm3_github论文地址:orb_slam3_paperORB_SLAM3提供了单目,双目,rgbd,以及各自结合IMU的数据分析实现。demo运行效果展示:在不同楼层的定位结果在盖住相机后,定位未跑飞楼梯下滑过程中,定位主要依靠IMU。创新点:论文中提到了最新开源的orb_slam3提到的两点创新点:(1)全程使用紧耦合的基于特征点的最大后验估计,包括在IMU的初始化阶段。使得系统的精度比旧方法提高的2-5倍,鲁棒性在室内外环境也得到提高,同时

2020-07-24 22:26:43 16763 5

原创 pytorch安装使用

torch官网:https://pytorch.org/get-started/locally/conda添加清华源:conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsing...

2020-03-25 10:22:12 176

原创 yolo_v3安装试运行小记

github源代码:https://github.com/qqwweee/keras-yolo3Cuda下载地址:https://developer.nvidia.com/cuda-toolkit-archiveCudnn下载地址:https://developer.nvidia.com/rdp/cudnn-archiveyolo3预训练权重:https://pjreddie.com/med...

2020-03-17 20:04:41 260 1

原创 面试记录(一)

1.项目中遇到了哪些困难,你是怎么解决的?2.智能指针的类型,原理3.const #define 区别4.进程和线程的概念5.虚函数和纯虚函数虚函数:纯虚函数:定义虚函数是为了允许用基类的指针来调用子类的这个函数...

2020-03-07 09:43:35 290

原创 mysql win10安装及简单操作

MySQL Community Server5.6.47版本https://downloads.mysql.com/archives/community/下载下来为一个压缩包,解压。bin目录添加进path中,命令窗口进入bin目录mysqld -installmysqld –initializenet start mysqlmysql -u root -p (默认没有密码)s...

2020-03-01 21:33:43 179

原创 摄像头小记

参考知乎回答:https://zhuanlan.zhihu.com/p/1043588261.镜头2.VCM(音圈马达)3.IR-CUT(双滤镜)4.Image sensor(图像传感器)5.DSP音圈马达:通过电流调整整个镜头进行轻微位移,实现自动对焦(AF)变焦镜头:通过调整镜头内部的组成(位移相对AF来说较大),改变镜头的焦距Lens主要参数(1)焦距:镜头焦距的长短决定着...

2020-02-27 21:16:49 309

原创 寒假杂记录 ubuntu功能小记

文章目录双系统时间不一致:windows下:reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1更改grub引导默认启动的系统以及停留的时间/etc/default/grub...

2020-02-11 17:34:34 148

原创 vins中的坐标系变换及g2r函数

slam中经常会需要表示一个刚体的位姿。例如imu的位姿,相机的位姿。首先我们需要在一个刚体上架上一个坐标系。这个坐标系为本体坐标系。怎么架一个坐标系?imu本身就有规定其本身的x,y,z轴的方向。相机一般认为,z轴平行于镜头朝外,x轴与像平面的水平方向一致,从左到右,y轴与像平面垂直方向一致,从上到下。现在我们以这个cam坐标系作为参考,解算出了imu坐标系在cam坐标系下的位姿,为 R...

2019-11-14 21:40:10 5015 5

原创 VINS_MONO getMeasurements()同步imu数据以及相机特征点帧数据代码逻辑

getMeasurements代码逻辑imubuf空 或特征点buf空,返回结果当最新的imu帧(imu_buf.back()) 没有新过 图像帧(feature_buf.front()+ td )的时间戳的时候, 返回结果。当最旧的imu帧(imu_buf.front()) 没有旧过 图像帧(feature_buf.front()+ td )的时间戳的时候, 去掉最旧的图像帧。(这种情况只...

2019-11-12 22:26:42 1241 3

原创 github使用小记录

下载git: https://git-scm.com/downloadsgit config --global user.name “Huang Haihui” //设置用户名git config --global user.email “[email protected]” //设置邮箱使用:ssh-keygen -t rsa -C “[email protected]”打开....

2019-10-28 11:36:15 188

原创 C++基本知识点(三)

文章目录extern和extern "C"顶层const和底层constextern和extern “C”extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言(而不是C++)的方式进行编译。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不...

2019-06-14 14:21:16 214

原创 vins 边缘化优化项

优化过程的四个步骤:1 imu直接积分预测新进来的帧的位置2.三角化整个特征点3.ceres优化4.if (last_marginalization_info) { // construct new marginlization_factor MarginalizationFactor *marginalization_factor = new M...

2019-06-10 15:10:02 1721

原创 vins kidnap安装使用

安装依赖项sudo apt-get install libjpeg-dev libtiff5-devgit clone https://github.com/mpkuse/VINS-Fusiongit clone https://github.com/mpkuse/cerebrogit clone https://github.com/mpkuse/solve_keyframe_pose...

2019-05-15 13:25:05 1155 1

原创 Docker使用记录

查看当前 docker 应用的情况sudo docker ps -ldocker ps -adocker rm 容器ID/容器名称 //可以根据容器ID或者容器名称删除容器开启一个名称为unruffled_mcnulty的容器内部sudo docker start unruffled_mcnulty关闭一个名称为unruffled_mcnulty的容器内部sudo docker...

2019-05-13 11:23:21 1297

原创 ArUco_ros使用

https://blog.csdn.net/KYJL888/article/details/72843940在实际应用中,在环境中部署Markers,可以辅助机器人进行定位,弥补单一传感器的缺陷,纠正误差。https://github.com/pal-robotics/aruco_ros.git1.ArUco_ros使用:打开Marker检测:roslaunch aruco_ros si...

2019-04-03 12:56:20 4063 11

原创 Kalibr使用

目的:使用Kalibr来标定出imu与相机的外参矩阵0.准备工作标定板:Aprilgrid(推荐),checkerboard, circlegrid需要提供的参数:1.imu的配置文件填写imu的动态特性:需要 noise density以及 bias random walk#Accelerometersaccelerometer_noise_density: 1.86e-03 ...

2019-04-02 11:02:22 2894 1

原创 leecode[三]

文章目录153. 寻找旋转排序数组中的最小值153. 寻找旋转排序数组中的最小值思路一:比较暴力的求解,找到翻转的点(由升序变为降序),有找到这个点,则就是下一个点就是。没有找到这个点,就是第一个点。class Solution {public: int findMin(vector<int>& nums) { int size = nums...

2019-04-02 10:40:31 413

原创 欧拉角、旋转矩阵、四元数

旋转矩阵1.初始值:Eigen::Matrix3d rotation_matrix;rotation_matrix<<x_00,x_01,x_02,x_10,x_11,x_12,x_20,x_21,x_22;2.旋转向量转欧拉角(Z-Y-X,即RPY)Eigen::Vector3d eulerAngle=rotation_matrix.eulerAngles(2,1,0);...

2019-03-23 12:59:25 1107 1

原创 vins-回环检测单独剥离运行

由于前端如果单纯依靠视觉+imu作为里程计,效果经常不稳定。因此最近做项目的过程中,将前端转化为以里程计(码盘编码器)来进行,相对比较鲁棒。由于这个局部传感器有累计误差,因此长期运行不可靠,因此将vins-mono中回环部分脱离出来。进行独立运行。这里假定机器人运行的环境是在一个固定,变化相对较小的环境,因此图像数据库不进行更新。即list&amp;amp;lt;keyframe*&amp;amp;gt; keyframel...

2019-03-13 16:37:02 2351 2

原创 C++基本知识点(二)

文章目录1.迭代器实效的情况2.红黑树1.迭代器实效的情况迭代器失效分三种情况考虑,也是分三种数据结构考虑,分别为数组型,链表型,树型数据结构。数组型数据结构:该数据结构的元素是分配在连续的内存中,insert和erase操作,都会使得删除点和插入点之后的元素挪位置,所以,插入点和删除掉之后的迭代器全部失效,也就是说insert(*iter)(或erase(*iter)),然后在iter...

2019-03-01 09:37:10 183

原创 ubuntu上安装NVIDIA驱动和cuda9.0,及NVIDIA-Docker

参考:https://blog.csdn.net/xunan003/article/details/81665835查看显卡型号,第二句命令是第一句命令输出的第一列信息lspci | grep -i vgalspci -v -s 01:00.0 ubuntu 16.04默认安装了第三方开源的驱动程序nouveau,安装nvidia显卡驱动首先需要禁用nouveau,不然会碰到冲突...

2019-02-28 09:07:15 1640

原创 vins-fusion代码解读[六] vio中processThread线程

a

2019-02-27 17:15:33 1890 4

原创 vins-fusion代码解读[五] imu在vins里的理解

SLAM新手,欢迎讨论。这是以往自己写的关于vins_fusion的博客:1.初探:https://blog.csdn.net/huanghaihui_123/article/details/865188802.vio主体: https://blog.csdn.net/huanghaihui_123/article/details/866105623.vioGPS融合框架: https:/...

2019-02-25 19:45:07 5099 3

原创 vins-fusion代码解读[四] 图像回环检测loop_fusion主体

SLAM新手,欢迎讨论。这是以往自己写的关于vins_fusion的博客:1.初探:https://blog.csdn.net/huanghaihui_123/article/details/865188802.vio主体: https://blog.csdn.net/huanghaihui_123/article/details/866105623.vioGPS融合框架: https:/...

2019-02-18 18:53:09 5710 6

原创 vins-fusion代码解读[三] vio非线性优化optimization()函数

SLAM新手,欢迎讨论。这是以往自己写的关于vins_fusion的博客:1.初探:https://blog.csdn.net/huanghaihui_123/article/details/865188802.vio主体: https://blog.csdn.net/huanghaihui_123/article/details/866105623.vioGPS融合框架: https:/...

2019-02-15 16:28:29 3108

原创 leecode[二]

文章目录769. 最多能完成排序的块769. 最多能完成排序的块数组arr是[0, 1, …, arr.length - 1]的一种排列,我们将这个数组分割成几个“块”,并将这些块分别进行排序。之后再连接起来,使得连接的结果和按升序排序后的原数组相同。我们最多能将数组分成多少块?方法一:思路:遍历数组从0到size-1,当遍历到的左边的数组的最大数等于当前的序号时候,就可以拆分成一块独立...

2019-02-15 10:25:08 182 2

原创 vins-fusion代码解读[二] 惯性视觉里程结果与GPS松耦合

感谢“slam萌新”,本篇博客部分参考:https://blog.csdn.net/weixin_41843971/article/details/86748719双目结果与GPS松耦合:github开源的是KITTI的数据集的测试代码。跟着程序走一遍。KITTIGPSTest.cpp主程序入口:vins_estimator包下面的KITTIGPSTest.cpp,主要作用:(1)开...

2019-02-14 14:34:43 6836 19

原创 vins-fusion代码解读[一] vio主体

港科大vins-fusion代码解读[一]vins-fusion与vins-mono代码结构有很大相似性。这次先看看vins_estimator节点内的内容。1.程序入口:(1)vins_estimator:: rosNodeTest.cppmain()函数中:a.读取配置文件参数 readParameter()b.订阅了四个话题,分别是imu消息,两个相机图像,和feature_tr...

2019-01-23 15:57:19 9503 5

原创 Ceres Solver学习

residualblock:残差块=lossfunction(costfunction),当lossfunction定义为 f(x)=x时候,residualblock=costfunction,形式就容易变成最小二乘问题costfunction:代价函数lossfunction:损失函数,目的是为了减少outlier对非线性优化结果造成的影响。parameterblock:参数块,例如相机...

2019-01-23 11:14:11 324

原创 港科大vins-fusion初探

vins-fusion港科大在2019年1月12号发布了Vins-fusion,从2017年发布的Vins-mono:单目+IMU,这次晋级了vins-fusion,demo中主要给出了四个版本:(1)单目+imu(2)纯双目(3)双目+imu(4)双目+imu+GPS地址为:https://github.com/HKUST-Aerial-Robotics/VINS-Fusion双...

2019-01-17 10:06:28 26935 18

原创 leecode[一]

938/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */...

2018-12-29 09:43:41 175

原创 VINS代码结构

文章目录1.总体框架1.总体框架ar_demo:AR上层应用benchmark_publisher:发布数据集中参考值camera_mode:各类相机模型config:硬件、系统配置文件support_filesfeature_trackers :图像接收和特征点提取与跟踪pose_graphvins_estimator在ros运行中,只运行三个节点:feature_tr...

2018-12-17 10:23:03 737

原创 视频拼接(一)

文章目录视频拼接(一)视频拼接(一)之前做过一段时间的视频拼接。视频拼接与图像拼接的不同之处在于需要更快的处理速度。人肉眼可以感觉到视频的卡顿在10fps左右,低于8fps的视频人基本可以感觉到卡顿。因此至少需要在100ms以内完成所有的运算。多摄像头拼接的理想情况是多个摄像头的光心在同一个空间点内。这样无论有多少个摄像头,通过求解出不同相机之间的旋转矩阵,来变换坐标系,将像素平面投影到球形...

2018-12-04 22:33:08 3165

原创 视频传输(一)

文章目录视频传输(一)1.直接传输原始数据图像2.通过FFMPEG库来进行传输视频传输(一)记录之前做过一段时间的视频传输。USB摄像头传输的数据一般有两种格式,原始图像(像素表示为YUV等)和通过MJPEG压缩后的数据(像素表示为YCrCb),opencv读取的是USB摄像头图像一般读取的是MJPEG压缩后的数据,opencv底层是通过调用ffmpeg库进行解码,解析成Mat矩阵格式来进行...

2018-12-04 22:09:21 2067

原创 ROS学习(一)

记录一些ROS学习细节IDE环境RoboWare Studio去官网 http://www.roboware.me 下载安装包后正常安装即可。默认绿色斧头右侧是Remote Deploy, 需要修改为Debug模式CTRL + 重音号 折叠命令窗口CTRL + SHIFT + 重音号 开启新的命令窗口...

2018-11-26 17:46:55 670

原创 LINUX学习(一)

UBUNTU(1)你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。1.截图ubuntu自带的截图工具为 screenshot自定义区域截图的快捷键需要自己设置,设置步骤如下:system settings----&amp;amp;amp;amp;amp;amp;amp;amp;gt;keyboard-----&amp;amp;amp;amp;amp

2018-11-26 11:12:18 186

原创 SLAM学习(一)

VINS学习1.代码框架。。。。2.细节(1)故障检测(failure detection)存在于VINS_ESTIMATOR的estimator.cpp中有failureDetection()根据shaojie shen的讲座,他提到故障检测的有这么一些场景:(1)当前帧的特征点太少(2)非线性求解器中的解有大跳动(3)相机IMU的外参矩阵或IMU偏移(bias)求解出大跳动...

2018-11-25 17:31:25 582

原创 C++算法(一)

第一篇1.从n个数中等概率的输出m个数//从0,1,2....,n-1中随机等概率的输出m个不重复的数,每个数被输出的概率都为m/nvoid knuth(int n, int m){ srand((unsigned int)time(0)); for (int i = 0; i &amp;amp;amp;amp;amp;amp;amp;lt; n; i++) { if (rand()%(n-i)&amp;amp;amp;amp;amp;amp;amp;lt;m)

2018-11-25 16:42:06 600

原创 C++基本知识点(一)

C++知识点(1)指针初始化int * p1 = new int(10)int * p2 = new int[10]int * p3 = new int[10]()P1是初始化一个整型变量,值为10。p2,p3是一个指向数组的指针,没有初始化。对于内置类型而言,new仅仅是分配内存,除非后面显示加(),相当于调用它的构造函数,对于自定义类型而言,只要一调用new,那么编译器不仅仅给...

2018-11-25 15:43:02 227

空空如也

空空如也

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

TA关注的人

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