- 博客(108)
- 资源 (28)
- 收藏
- 关注
原创 [开源]超全ICP实现,g2o,ceres,G-N,SVD等
整理了一下各种ICP实现方式,包括高斯牛顿法求解,SVD求解,ceres求解,g2o求解,还包含了一些开源库的测试,如icp,ndt,sicp,ndt_cpu等方法;代码已开源。
2022-05-24 18:11:50 1011
原创 realsense435i运行vins-mono,标定部分
相机标定1.安装kalibr;参考:https://blog.csdn.net/wangbaodong070411209/article/details/112248834https://blog.csdn.net/weixin_40628128/article/details/959459452.生成棋盘格生成棋盘格:rosrun kalibr kalibr_create_target_pdf --type checkerboard --nx 8 --ny 11 --csx 0.0
2021-08-27 14:40:05 691
原创 RealSense435i,运行VINS-mono
准备工作:安装realsense SDK2.0:参考官方教程安装realsense ros warp:参考官方教程安装vins-mono:参考官方教程测试vins-mono:下载数据集:https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets打开终端,分别输入如下指令:roslaunch vins_estimator euroc.launch roslaunch vins_esti
2021-08-27 14:20:52 520 2
原创 r2live重新安装Eigen3.3.9以及Ceres1.14
// 移除旧版本Eigen3sudo rm -rf /usr/include/eigen3 /usr/lib/cmake/eigen3 /usr/share/doc/libeigen3-dev /usr/share/pkgconfig/eigen3.pc /var/lib/dpkg/info/libeigen3-dev.list /var/lib/dpkg/info/libeigen3-dev.md5sums// 安装新版本Eigen// 下载对应版本Eigen,并解压cd .
2021-07-27 14:25:12 778 2
原创 ubuntu16.04多版本gcc,g++切换
ubuntu16.04默认gcc,g++版本为5.4.0,但是实际使用时,可能需要更高版本支持,这里以gcc/g++7为例;// 更新sudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo apt-get update// 安装gcc/g++7sudo apt-get install gcc-7sudo apt-get install g++-7// 设置sudo update-alternatives --in.
2021-07-27 13:29:52 1065
原创 Lidar与imu外参标定
目录网上资料方案1方案2Lidar与IMU的相对旋转实现最近由于工作需要,花了几天时间了解激光与imu的标定方法;因为项目需要,且这里是个人认识的一个整理,所以并不会很深入很细致的进行公式或原理推导。由于个人水平有限,所以可能会存在一些认知的错误,可以留言交流学习一下。网上资料方案1首推浙大开源的Lidar_IMU_calib,标定精度很高。从粗到细的,实现高精度的lidar-imu标定,具体可以看一下论文和代码哈!我这里也测试了一下,由于一些原因,一直没有标定.
2021-05-19 14:05:32 11613 23
转载 免费论文查找网站
推荐查找顺序依次如下:好用的:https://www.semanticscholar.org/arxiv : https://arxiv.org/(免费,更新很快)谷歌学术镜像 :http://scholar.hedasudi.com/(免费)SCI-Hub :http://tool.yovisun.com/scihub/(免费,需安装插件)web of science :http://apps.webofknowledge.com(免费,需安装插件)知网 :http://www.c
2020-06-15 14:55:39 2623
原创 windows下编译gtsam
GTSAM 是一个在机器人领域和计算机视觉领域用于平滑(smoothing)和建图(mapping)的C++库。它与g2og2o不同的是,g2og2o采用稀疏矩阵的方式求解一个非线性优化问题,而GTSAM是采用因子图(factor graphs)和贝叶斯网络(Bayes networks)的方式最大化后验概率。GTSAM的安装:gtsam官网给出了 详细的安装过程,由于其依赖库比较少,安装起来比较方便。这里咱们主要介绍在windows下的安装(Ubuntu下几行代码就可以搞定,这里不再赘述)。g
2020-05-19 11:12:31 2648 27
原创 PCA算法的原理以及c++实现
PCA主成分分析,是模式识别中常见的特征降维的算法,其大体步骤可以分为以下几个部分:(1)原始特征矩阵归一化处理(假设M和样本,每个样本n个特征,则对M*N的X数据,进行零均值化,即减去这一列的均值)(2)求取归一化处理后特征矩阵的协方差矩阵(3)计算协方差矩阵的特征值及其对应的特征向量(4)将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P;(5)Y=PX即...
2020-03-12 16:53:27 2880 1
转载 LOAM中关于坐标转换与IMU融合
激光雷达slam之LOAM中的坐标转换与IMU融合需要用到的一些知识和假设:(1) 来源于 github中的讨论:由于IMU累积推算位置的误差大,程序中粗略地计算了IMU的位置漂移。_imuPositionShift = _imuCur.position - _imuStart.position - _imuStart.velocity * relSweepTime;上式成立...
2019-12-19 15:27:58 8632 16
原创 g2o、Eigen、Mat矩阵类型转换
1.Eigen矩阵赋值1) 使用row或者colEigen::Matrix3d R = Eigen::Matrix3d::Identity();R.row(0) = Eigen::Vector3d(-0.0134899,-0.997066,0.0753502);R.row(1) = Eigen::Vector3d(-0.0781018,-0.0740761,-0.99419);R...
2019-10-24 10:49:04 2559
原创 graph slam tutorial :从推导到应用3(g2o+ceres实现)
目录图的数据格式读取数据使用g2o中slam2d数据格式的优化优化结果定义顶点和边我们不生产代码,我们只是代码的搬运工。图的数据格式图优化前端处理以后产生的顶点和边的数据格式,这是写程序时特别关注的,也是众多优化包如g2o的数据格式。matlab程序及数据戳这里killian-v.dat 数据为顶点vertex2: id,pose.x,pose...
2019-10-23 11:13:46 1620
原创 graph slam tutorial : 从推导到应用1(g2o+ceres实现)
目录例子1:例子2:例子1:为了更好的理解这个过程,将用一个很好的例子作说明。如下图所示,假设一个机器人初始起点在0处,然后机器人向前移动,通过编码器测得它向前移动了1m,到达第二个地点。接着,又向后返回,编码器测得它向后移动了0.8米。但是,通过闭环检测,发现它回到了原始起点。可以看出,编码器误差导致计算的位姿和观测到有差异,那机器人这几个状态中的位姿到底是怎么样的才最好的满足...
2019-10-22 17:23:23 855
原创 g2o非线性优化
基于g2o的最小二乘方法。g2o,即General Graph Optimization,他是一个基于图理论的优化库。图优化理论介绍,可以参考半闲居士的博客有这么一个问题,给你一组二维数据,拟合其直线方程。譬如下面的方程:拟合y=Asin(Bx)+Ccos(Dx)y=Asin(Bx)+Ccos(Dx),已知N组数据(xi,yi),i=0,1,⋯N−1(xi,yi),i=0,1,⋯...
2019-10-22 15:02:25 1149
转载 g2o使用总结
本文转自:https://blog.csdn.net/hzwwpgmwy/article/details/79884070需要解决的问题:如何自定义Vertex和Edge?如何选择Edge类型?一元还是二元?如何赋值信息矩阵?如何设置鲁棒核函数的阈值?如何选择Vertex设置为固定?如何边缘化以便稀疏化求解?如何处理优化结束后outliner?如何设置根据卡方分...
2019-10-22 14:43:46 2531 1
翻译 Ceres Solver使用
非线性最小二乘Ceres可以求解以下形式的有界约束非线性最小二乘问题:minx12∑iρi(∥fi(xi1,⋯,xik)∥2)s.t.lj≤xj≤ujminx12∑iρi(‖fi(xi1,⋯,xik)‖2)s.t.lj≤xj≤uj这种形式的问题来源于科学工程的多个领域,从统计学的曲线拟合到计算机视觉中从图像中构建三维模型。表示式中ρi(∥fi(xi1,⋯
2017-08-04 11:40:32 3852
原创 VS2013+Ceres编译教程 Win7系统
由于想要做一些优化处理的工作,所以今天花了几个小时编译了一下ceres solver,这里对我的安装过程做个记录,希望对大家有些帮助。Ceres Solver是由Google开发的非线性最小二乘问题的求解工具。在Windows下使用Ceres,需要必备的库有eigen,glog,gflags三个,可选的还有suitesparse,不过由于时间关系,suitesparse我没有编译,等有空的时候,搞...
2017-07-18 19:15:31 3191
转载 boost::thread线程管理
转载地址:点击打开链接6.1. 概述线程就是,在同一程序同一时间内允许执行不同函数的离散处理队列。 这使得一个长时间去进行某种特殊运算的函数在执行时不阻碍其他的函数变得十分重要。 线程实际上允许同时执行两种函数,而这两个函数不必相互等待。一旦一个应用程序启动,它仅包含一个默认线程。 此线程执行 main() 函数。 在 main()中被调用的函数则按这个线程的上下文顺序地执行。
2017-06-01 17:57:46 1283
原创 Ubuntu卸载opencv2.*,重新安装opencv3.*版本
一、 卸载opencv2.4.9: Going to the "build" folder directory of opencv from terminal, and execute the following:1. $ sudo make uninstall2. $ cd ..3. $ sudo rm -r build4. $ sudo rm -r /usr/local/inclu
2017-02-23 15:19:06 9999 1
转载 激光数据的直线拟合
激光雷达获取的信息是和周围物体之间的距离信息,在移动机器人尤其是自主移动机器人领域具有非常广泛的应用,那我们就从移动机器人的自主导航开始聊吧。移动机器人导航是指移动机器人依靠传感器在特定环境中,按时间最优、路径最短或能耗最低等准则实现从起始位置到目标位置的无碰撞运动。传统的移动机器人导航问题包含三大要素:地图创建、定位和运动控制,通过三大要素,解决三个基本问题:我在哪里?我要去哪里?如何去
2017-02-07 14:10:13 8039 5
原创 ubuntu 下github使用(简要过程)
身为一个码农,掌握必要的代码管理工具,是必不可少的。这里简单介绍一下github的简单使用过程。一、注册github账号。请自行进入http://github.com进行注册。二、安装git及一些基本设置。1.安装git sudo apt-get install git2.设置github账号信息git config --global user.name "your name
2017-01-17 14:04:05 1130
原创 安装测试点云配准4PCS算法
今天有空,想看看点云配准4PCS算法,据说是一个高效鲁棒性很好的算法。闲话少说,还是记录一下我的安装过程吧。免得过段时间我又忘记了~~~~~~首先先说一下我的电脑配置:虚拟机安装ubuntu 14.04 LTS内存:2.1GB处理器:Intel® Core™ i5-4590 CPU @ 3.30GHz × 3 图形:Gallium 0.4 on SVGA3D; build: REL
2016-12-30 11:25:54 6163 4
转载 CMAKE学习笔记(二)
声明:本文为转载博客(感谢网友dbzhang800),转载链接在博客末尾在 Cmake学习笔记一 中通过一串小例子简单学习了cmake 的使用方式。这次应该简单看看语法和常用的命令了。简单的语法注释# 我是注释命令语法COMMAND(参数1 参数2 ...)字符串列表A;B;C # 分号分割或空格分隔的值变量(字符串或字符串列表)
2016-12-23 14:26:48 474
转载 CMAKE学习笔记(一)
声明:本文为转载博客(感谢网友dbzhang800),转载链接在博客末尾看来不学习一下cmake是不行了,一点一点来吧,找个最简单的C程序,慢慢复杂化,试试看:例子一单个源文件 main.c例子二==>分解成多个 main.c hello.h hello.c例子三==>先
2016-12-23 14:24:19 367
转载 奇异值分解(SVD)(2)
简介SVD实际上是数学专业内容,但它现在已经渗入到不同的领域中。SVD的过程不是很好理解,因为它不够直观,但它对矩阵分解的效果却非常好。比如,Netflix(一个提供在线电影租赁的公司)曾经就悬赏100万美金,如果谁能提高它的电影推荐系统评分预测准确率提高10%的话。令人惊讶的是,这个目标充满了挑战,来自世界各地的团队运用了各种不同的技术。最终的获胜队伍"BellKor's Pragmat
2016-12-20 14:17:12 645
转载 奇异值分解(SVD)(1)
声明: 本文为网上资料整理而来,仅供个人学习一、奇异值与特征值基础知识: 特征值分解和奇异值分解在机器学习领域都是属于满地可见的方法。两者有着很紧密的关系,我在接下来会谈到,特征值分解和奇异值分解的目的都是一样,就是提取出一个矩阵最重要的特征。先谈谈特征值分解吧: 1)特征值: 如果说一个向量v是方阵A的特征向量,将一定可以表示成下面的形
2016-12-20 14:10:50 566
转载 Cartographer理论及实现浅析
本文转载自泡泡机器人。本文概述了Cartographer的理论及简要的梳理了其开源实现代码的逻辑,目的在于起到抛砖引玉的作用,为选择性的研究相关理论及实现提供参考。1. Cartographer理论概述Cartographer主要理论是通过闭环检测来消除构图过程中产生的累积误差[1]。用于闭环检测的基本单元是submap。一个submap是由一定数量的laser
2016-12-08 09:25:14 14975 2
原创 2D激光SLAM算法比较+cartographer
声明:博客参考了kint_zhao的文章《2D-slam 激光slam: 开源代码的比较HectorSLAM Gmapping KartoSLAM CoreSLAM LagoSLAMHector slam:Hector slam利用高斯牛顿方法解决scan-matching问题,对传感器要求较高。缺点:需要雷达(LRS)的更新频率较高,测量噪声小。所以在制图过程中,需要robot速
2016-10-28 13:45:41 44654 14
原创 粒子滤波理论资料存档
知行合一的博客:http://blog.csdn.net/heyijia0327Particle Filter Tutorial 粒子滤波:从推导到应用(一)链接Particle Filter Tutorial 粒子滤波:从推导到应用(二)链接Particle Filter Tutorial 粒子滤波:从推导到应用(三)链接Particle Filt
2016-10-20 15:42:18 604
原创 orb-slam资料汇总
ORB 一种特征匹配替代方法:对比SIFT或SURF 链接ORB-SLAM:精确多功能单目SLAM系统 链接ORB-SLAM2源代码分析 链接Ubuntu 14.04 Linux 运行 ORB-SLAM2 链接基于关键帧
2016-10-19 10:58:44 1861
转载 g2o:一种图优化的C++框架
声明:转载自 Taylor Guo ,仅供个人学习g2o: A general framework for graph optimization原文发表于IEEE InternationalConference on Robotics and Automation (ICRA), Shanghai, China,May 2011http://www.cnblogs.com/gaox
2016-10-19 10:41:07 5774
转载 卡尔曼滤波算法实例剖析--机器人足球赛场中的定位算法
声明:本博客转载自 东方赤龙 ,谢谢博主的分享!!!(转载仅供个人学习)卡尔曼滤波(Kalman filtering)最早在阿波罗飞船的导航电脑中使用,它对阿波罗计划的轨道预测很有用。卡尔曼滤波是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。是目前应用最为广泛的滤波方法, 在通信, 导航, 制导与控制等多领域得到了较好的应用。 卡尔曼
2016-10-19 10:35:43 2941
转载 谷歌Cartographer学习(1)-快速安装测试
转载自:hitcm 感谢大神的无私分享。个人理解错误的地方还请不吝赐教,转载请标明出处:http://www.cnblogs.com/hitcm/代码放到个人github上,https://github.com/hitcm/如下,需要安装3个软件包,ceres solver、cartographer和cartographer_ros1.首先安装ceres solv
2016-10-09 14:13:49 6571 3
转载 Ubuntu 16.04 安装和使用QQ最简洁的方式
推荐参考网址:1 http://www.ubuntukylin.com/2 http://www.ubuntukylin.com/application/Wine QQ1 http://www.ubuntukylin.com/application/show.php?lang=cn&id=279百度云下载地址:1 http:/
2016-09-30 16:48:42 657
转载 机器学习常见算法个人总结(面试用)
感谢网友 Kubi Code 的总结和无私分享,表示感谢!(转载仅供个人学习,谢谢。。。)朴素贝叶斯参考[1]事件A和B同时发生的概率为在A发生的情况下发生B或者在B发生的情况下发生A[Math Processing Error]P(A∩B)=P(A)∗P(B|A)=P(B)∗P(A|B)所以有:[Math Processing Error]
2016-09-08 15:12:35 909 1
转载 四元数与欧拉角(Yaw、Pitch、Roll)的转换
在3D图形学中,最常用的旋转表示方法便是四元数和欧拉角,比起矩阵来具有节省存储空间和方便插值的优点。本文主要归纳了两种表达方式的转换,计算公式采用3D笛卡尔坐标系:定义分别为绕Z轴、Y轴、X轴的旋转角度,如果用Tait-Bryan angle表示,分别为Yaw、Pitch、Roll。一、四元数的定义通过旋转轴和绕该轴旋转的角度可以构造一个四元数:
2016-08-19 16:55:44 54999
原创 ROS中NodeHandle问题
今天想把写的坐标转换package,改写成在launch文件中传入参数。中间遇到了一个小问题,特此记录一下。ros::init(argc, argv, "sub");ros::NodeHandle n;ros::NodeHandle pn("~");double x;pn.param("/x",p_x, 0.3);ros::init(argc, argv, "sub");
2016-08-18 20:05:35 8916 6
Lidar Odometry and mapping in real time
2018-09-27
2D或者3D配准ICP算法(VS2012)
2016-07-25
ICP算法源码,调试通过
2016-04-06
Fast ICP算法源码
2016-04-06
霍夫森林目标检测
2016-04-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人