- 博客(231)
- 资源 (20)
- 收藏
- 关注
原创 无人驾驶学习笔记 - A-LOAM 算法代码解析总结
目录1、概述2、scanRegistration.cpp2.1、代码注释2.1.1、主函数2.1.2、removeClosedPointCloud(雷达周边过近点移除)2.1.3laserCloudHandler激光处理回调函数2.2、总结概括3、LaserOdometry.cpp3.1、代码注释3.2、总结概括4、laserMapping.cpp4.1、代码注释4.2、总结概括5、lidarFactor.cpp6、参考连接PS: 在看了lo.
2022-05-30 04:38:34
8275
4
原创 无人驾驶学习笔记 - LOAM 算法论文核心关键点总结
目录1、框架2、特征点提取3、点云去畸变4、帧间匹配特征关联与损失函数计算a 线特征b 面特征5、运动估计6、建图7、姿态融合8、LOAM 优劣势9、参考连接1、框架loam框架核心是两部分,高频率的里程计和低频率的建图。两种算法处理。里程计通过高频率低数量的点云,进行scan-scan匹配,估算出两帧之间的运动关系,输出结果给mapping算法;建图是1hz的频率将去畸变的点云匹配并对齐到地图上,应用的是scan-map的匹配方式。最后将两.
2022-05-30 01:58:47
3861
原创 slam 基础知识整理之- 最小二乘问题的引出与求解方法
目录1、最小二乘引出2、线性最小二乘 及 求解方法3、非线性最小二乘编辑3.1、求解思路3.2、常用四种方法3.3、四种方法总结4、参考链接在SLAM的过程中,我们可以构建机器人状态过程。通过对其概率的计算,最终将问题转化为了求最大似然估计的问题。1、最小二乘引出2、线性最小二乘 及 求解方法3、非线性最小二乘3.1、求解思路3.2、常用四种方法...
2022-05-24 18:34:00
935
原创 KD 树原理以及在三维激光点云中的应用
目录1、介绍2、原理2.1、数据结构2.2、构建KD树2.3、实例3、程序示例4、参考链接1、介绍kd-tree简称k维树,是一种空间划分的数据结构。常被用于高维空间中的搜索,比如范围搜索和最近邻搜索。kd-tree是二进制空间划分树的一种特殊情况 。在激光雷达SLAM中,一般使用的是三维点云。所以,kd-tree的维度是3。由于三维点云的数目一般都比较大,所以,使用kd-tree来进行检索,可以减少很多的时间消耗,可以确保点云的关联点寻找和配准处于实时的状态
2022-05-24 17:51:24
1921
1
原创 无人驾驶学习笔记-NDT 配准
1. NDT 的算法处理流程前端激光雷达里程计主要分为:点云下采样滤波、点云匹配、位姿估计、关键帧选取等步骤。具体流程为: 第一帧点云数据设置为地图; 提取关键帧点云,拼接成地图,保证稀疏点云数据; 除了全局地图,还需要在当前帧附近形成滑动窗局部地图,减小计算量; 匹配之前需要滤波,对点云稀疏化;可以使用PCL中的voxel_filter基本原理是把三维空间划分未等尺寸的立方体格子,在一个立方体格子内最多只留一个点,这样就起到稀疏作用。 点云匹配对位姿预测值比较敏
2022-05-19 15:34:34
3234
1
原创 视觉slam十四讲(ch6) Ubuntu18.04安装 g2o库 报错error: FixedArray ... has no member named ‘fill’
ps: 再学习14讲第二版的时候,运行g2o 报错error: ‘FixedArray {aka class ceres::internal::FixedArray<double, 6>}’ has no member named ‘fill’解决方法:1. 依赖项sudo apt-get install qt5-qmake qt5-default libqglviewer-dev-qt5 libsuitesparse-dev libcxsparse3 libcholmod3
2022-05-06 02:33:34
2112
2
原创 Ubuntu 升级cmake 版本
PS: 在编译一些包时需要更高的版本,需要升级 cmake。千万别执行下面的命令,这样会把之前用 cmake 编译好的包都给卸载掉,包括ros。sudo apt-get autoremove cmake比较简单的方法是下载 cmake 压缩包,直接建立软链接覆盖掉系统的 cmake,压缩包网址:https://cmake.org/files/以 3.23.0 版本为例:tar -xzvf cmake-3.23.0-Linux-x86_64.tar.gzsudo mv cmake-3
2022-05-05 03:24:14
1139
1
原创 Eigen内存分配器aligned_allocator
在使用Eigen的时候,如果STL容器中的元素是Eigen数据库结构,比如下面用vector容器存储Eigen::Matrix4f类型或用map存储Eigen::Vector4f数据类型时: vector<Eigen::Matrix4d>; std::map<int, Eigen::Vector4f> 这么使用编译能通过,当运行时会报段错误。对eigen中的固定大小的类使用STL容器的时候,如果直接使用会出错,所谓固定大小(fixed-size)的类是
2022-05-04 22:27:38
1076
原创 qt: error: C2001: 常量中有换行符
PS: 这两天搞工程系统移植,搞得疯掉了,代码复用还不如重写呢。如下一句带有中文的程序,mingw + linux 运行没有任何问题,window下msvc 运行就报错C2001time_str += NumToString(hour) + "时";解决方法:在中文与双引号之间添加一个空格如下time_str += NumToString(hour) + "时 ";...
2022-04-26 09:40:46
269
原创 bug解决: ffmpeg 在window下使用 PRId64 报错
在timestamp.h 中 调用 av_ts_make_string报错error: expected ‘)’ before ‘PRId64’原因:该宏定义给c用的,C++要用它,就要定义一个__STDC_FORMAT_MACROS宏显示打开它。c++使用PRID64,需要两步:1.、包含头文件:<inttypes.h>2、定义宏:#define __STDC_FORMAT_MACROS,也可以通过编译时加-D__STDC_FORMAT_MACROS,或者在包含文件之前定.
2022-04-26 03:35:34
1233
原创 _findnext 报错
ps:编译环境 qt + mingw32 编译没问题;换到qt + msvc 2017_64 就出现问题;报错信息:Stopped in thread 0 by: Exception at 0x7ffbcfe713ad, code: 0xc0000005: write access violation at: 0xffffffffd587d380, flags=0x0 (first chance).//获取目录下的所有文件名void getFiles(string path, vecto
2022-04-21 18:51:13
1655
2
原创 Hector slam算法原理解析与代码详解
目录PS:写了markdown 上传,公式都乱码,无果,截图上传吧。1. hector 原理解析1.4 多重分辨率地图2.代码框架2.1 回调函数3. 扫描匹配3.1 多分辨率匹配3.2 matchData_23.5 hession 矩阵H 求解3.6 双线性插值计算得分与梯度4. 地图更新4.1多分辨率地图4.2用激光数据和位姿更新地图4.3 应用分层scan更新地图4.4.
2022-04-19 21:46:42
9014
2
原创 Eigen 库常用基本用法 备忘
ps:eigen 看到的时候较多,自己写的时候总有一些用法想不起来具体函数名,特此总结一下以备忘。官方doc: eigen 官网最权威目录Eigen 矩阵定义Eigen 基础使用Eigen 特殊矩阵生成Eigen 矩阵分块Eigen 矩阵元素交换Eigen 矩阵转置Eigen 矩阵乘积Eigen 矩阵单个元素操作Eigen 矩阵化简Eigen 矩阵点乘Eigen 矩阵类型转换Eigen 求解线性方程组 Ax = bEigen 矩阵特征值参考链.
2022-04-08 01:56:12
1598
原创 解决ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26‘ not found
报错信息如题所示原因:这个是默认路径下的libstdc++.so.6缺少GLIBCXX_3.4.26,你有可能缺少其它版本的比如3.4.26,解决方法一样,如下所示:(1)使用指令先看下目前都有哪些版本的strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX只看到3.4.25(2)使用sudo find / -name "libstdc++.so.6*"来查看当前系统中其它的同类型文件,找到一个版本比较高.
2022-03-17 01:51:54
7877
7
原创 ImportError: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29‘ not found
解决方案下载地址:http://ftp.gnu.org/pub/gnu/glibc/下载:wgethttp://ftp.gnu.org/gnu/glibc/glibc-2.29.tar.gz (过程有些慢)解压:tar -zxvf glibc-2.29.tar.gzsudo apt-get install gawk…/configure --prefix=/usr/local/glibcmake -j8sudo make installcd /lib/x86_64-linux.
2022-03-17 01:26:51
14015
14
原创 realsense 选型大对比D455 D435i D415 T265 3D硬件对比
Intel Realsense D455 D435i D415 T265 3D实感硬件对比_xiaodeng6185的博客-优快云博客
2022-02-27 17:21:02
3214
原创 ROS包nmea_navsat_driver读取GPS、北斗定位信息笔记
硬件:ATGM332D + 串口调试工具 + GPS 天线软件: ubunutu 18.04 + ros1. 串口 读取数据sudo apt install cutecomsudo cutecom //设置 波特率9600 可以看到反馈的数据2. nmea_navsat_driver 包的使用sudo apt-get install ros-melodic-nmea-navsat-driver libgps-dev注意:nmea_navsat_driver提供四个..
2022-02-18 14:19:12
7320
4
原创 cv_bridge 与opencv 版本不匹配的解决
问题描述:ubuntu18.04安装的ros 默认的opencv版本和cv_bridge 版本为3.2.0 但是在使用其他程序包的时候有时候需要用到其他版本的opencv。再调用cv_bridge的时候会发生调用冲突;
2022-02-10 14:59:10
3192
原创 OpenCV中无法使用lsd算法的问题 Implementation has been removed due original code license conflict
ps: 在使用 opencv 3.4.15的时候发现一个lsd算法使用的问题:解决方法:OpenCV各版本的LSD算法由相同的类定义、类声明,因此直接替换以前版本的lsd.cpp,重新编译安装之后便可以使用了。以前的版本是指3.4.6之前的版本。商用请谨慎使用,具体原因。是3.4.6以后LSD 申请了专利,不再符合开源协议要求;参考链接: LineSegmentDetector(LSD)从OpenCV中消失 - 知乎 license problem in desc...
2022-02-10 14:51:32
3738
原创 软件工程中的十三种文档
软件工程中的十三种文档( http://ss.zsu.edu.cn/UploadFile/2007430184649725.doc ), 一份不错的参考, 如果大家在写文档的时候不知道如何下手, 或者这份文档能给你一点灵感.在项目开发过程中,应该按要求编写好十三种文档,文档编制要求具有针对性、精确性、清晰性、完整性、灵活性、可追溯性。◇ 可行性分析报告:说明该软件开发项目的实现在技术上、经济上和社会因素上的可行性,评述为了合理地达到开发目标可供选择的各种可能实施方案,说明并论证所选定实施方案的理.
2022-01-11 15:14:36
1750
原创 cartographer_node 编译没问题,但是运行直接挂掉的bug
[cartographer_node-3] process has died [pid 20529, exit code 127, cmd /home/pp/vm_ws/carto_ws/install_isolated/lib/cartographer_ros/cartographer_node -configuration_directory /home/pp/vm_ws/carto_ws/install_isolated/share/cartographer_ros/configuration_fi.
2021-11-20 22:11:54
3476
原创 gmapping 算法流程整理
slam_gmapping 是gmapping的 基于ros的壳,我们先从壳入手参考论文:Improved Techniques for Grid Mapping with Rao-Blackwellized Particle Filters参考博客:http://blog.youkuaiyun.com/heyijia0327/article/details/40899819 pf原理讲解https://www.cnblogs.com/yhlx125/p/5634128.html [SLAM] GMap
2021-09-18 11:33:28
7659
6
原创 激光slam理论与实践 - 第四章 前端配准(ICP)
概述:点云匹配算法是为了匹配两帧点云数据,从而得到传感器打的前后位置差。匹配算法从最初的ICP方法已经发展出了多种改进的算法,他们分别从配准点的需要,误差方程等方面进行了优化下面分别介绍:4.1 PP-ICP也叫点对点ICP,基本思想是:如上图所示,求解旋转矩阵R 和平移矩阵t 使得误差最小。对于已知两组点云的对应点,一次迭代即可求出 R t。证明:求出R 和t在实际工程中一般不知道两个点云是 如何配对的,只能通过迭代求解的方法缩小误差,理论上...
2021-08-20 00:27:33
2317
1
原创 undefined reference to `Nabo::NearestNeighbourSearch
首先安装libnabogit clone git://github.com/ethz-asl/libnabo.gitcd libnabomkdir build cd buildcmake ..make -j4sudo make install 如果是18.04 注意修改ros的版本号在CMakeList.txt中添加库文件target_link_libraries(imlsMatcher_node${catkin_LIBRARIES}${EXTERNAL_LIBS}/opt
2021-08-18 11:29:50
393
转载 GitHub 下载源码速度慢的解决办法总结
方法一: 从GitHub下载文件一直非常慢,查看下载链接发现最终被指向了Amazon的服务器,下载地址是http://github-cloud.s3.amazonaws.com/,从国内访问Amazon非常慢,所以总是下载失败,解决方法时更改host文件,使该域名指向香港的服务器:更改hosts文件:Windows更改C:\Windows\System32\drivers\etc\hosts文件,在文件中追加219.76.4.4 github-cloud.s3.amazonaws.c..
2021-08-10 10:22:18
627
原创 深蓝学院激光slam 理论与实践 第三章激光雷达去畸变 作业习题
1. 补充去除激光雷达运动畸变模块的代码;第一题代码说明:本题目为实现一个里程计去除激光雷达运动畸变的代码模块,作业里面有两个工程:champion_nav_msgs 和 LaserUndistortion。大家需要首先编译安装 champion_nav_msgs,按照champion_nav_msgs 的 readme 文件执行即可,或运行命令 sudo bash install.sh,注意如果你的ubuntu 版本不是 kinetic,要将所有 kinetic 的地方修改成你的 ros 版本
2021-08-07 23:59:44
2327
9
原创 浮点数双精度,单精度以及半精度知识总结
最近工作中遇到一个16位半精度浮点数的问题,纠结了很久,特此研究了一下,总结在此:1.单精度(32位)浮点数的结构:名称 长度 比特 位置符号位 Sign(S): 1bit (b31)指数部分Exponent(E): 8bit (b30-b23)尾数部分Mantissa(M): 23bit (b22-b0)其中的指数部分(E)采用的偏置码(biased)的形式来表示正负指数,若E<127则为负的指数,否则为非负的指数。注意:%f输出float...
2021-08-07 21:50:11
12867
2
原创 深蓝学院激光slam理论与实践 -第二章(里程计标定)作业
1. 作业描述: 本次的作业为用直接线性方法来对机器人的里程计进行校正。 本次作业使用的bag数据,路径为odom_ws/bag/odom.bag(太大了,没上传到github)。 本次的作业中,需要实现三个函数,分别为: main.cpp,第340行中的cal_delta_distance()函数,该函数的功能为给定两个里程计位姿,计算这两个位姿之间的位姿差。 Odom_Calib.cpp,第23行Add_Data()函数,该函数的功能为构建超定方程组Ax=..
2021-07-31 22:32:29
2345
40
原创 Eigen 学习总结
Eigen采用源码的方式提供给用户使用,在使用时只需要包含Eigen的头文件即可进行使用。之所以采用这种方式,是因为Eigen采用模板方式实现,由于模板函数不支持分离编译,所以只能提供源码而不是动态库的方式供用户使用。 矩阵的定义:Eigen中关于矩阵类的模板函数中,共有六个模板参数,常用的只有前三个。其前三个参数分别表示矩阵元素的类型、行数和列数。 矩阵定义时可以使用Dynamic来表示矩阵的行列数为未知。 Eigen中无论是矩阵还是数组、向量,无论是静...
2021-07-31 22:01:02
991
原创 视觉slam14讲 Ubuntu18.04下 Sophus李代数库使用 以及报错处理
视觉slam14讲书里说的是用模板类的sophus库,而代码中实际是使用的 非模板类1. 安装git clonehttps://github.com/strasdat/Sophus.gitcd Sophus/git checkout a621ffmkdir buildcd buildcmake ..make小注:sudo make install 可以安装也可以不安装,安装了,会将sophus安装到/usr/local/include 。2. 编译问题1:/Sophu..
2021-07-29 10:41:08
2891
3
原创 Ubuntu18.04 安装opencv 3.2.0 ,opencv3.4.15
1. 源码https://github.com/opencv/opencv2. 安装依赖sudo apt-get install build-essentialsudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-devsudo apt-get install python-dev python-numpy libtbb2 libtbb-dev l
2021-03-08 14:07:30
4254
原创 Qt在ubuntu无法输入中文的解决
ubuntu安装了Qt, 遇到无法输入中文的问题,但是都是在fcitx遇到,使用ibus是可以输入中文的,在这里我是使用的fcitx,搜狗输入法,原因是缺少fcitx的支持库libfcitxplatforminputcontextplugin.so,来看看解决办法。1.首先安装fcitx-frontend-qt5(这个好像都是默认安装了的)sudo apt-get install fcitx-frontend-qt52.然后查看fcitx-frontend-qt5 的安装目录dpkg -L
2021-01-11 11:11:49
2093
2
原创 git stash 应用总结
常用git stash命令:(1)git stashsave "save message" : 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。(2)git stash list:查看stash了哪些存储(3)git stash show:显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1} git stash show sta...
2020-12-30 17:17:02
205
原创 systemd 总结 介绍
systemd工具简介Systemd 入门教程:命令篇如何使用Journalctl查看并操作Systemd日志systemd.index 中文手册关注点:systemd启动的服务,通过配置文件传递环境变量
2020-12-14 18:50:30
269
原创 ubuntu 18.04 安装部署 vnc4server
1、先在 Ubuntu Server 系统上安装:$ sudo apt-get install vnc4server$ sudo apt-get install xfce42、先运行一下,生成初始的配置文件。记住这里自己设置的密码 password:$ vncserver :1You will require a password to access your desktops.Password:Verify:New 'VM-0-9-ubuntu:1 (ubuntu)' de
2020-12-13 17:04:45
4420
1
原创 ubuntu 命令 常用使用汇总
1. 查找 命令对于初次切换到 Linux 系统的朋友来说,如果想要从命令行界面执行查找文件的任务的话,那么,locate 和 find 是两个需要了解的命令。虽说这两个命令都可以满足查找文件的操作,不过却是各有所长,在选择上不妨兼而用之。locate:该命令在运行时需要后台索引的数据库作为支撑,在 Ubuntu 中这个数据库文件位于 /var/cache/locate/locatedb。一般来说,这个数据库文件每天是通过 cron 自动更新的。如果不幸没有得到更新,那么可以执行sudo upda.
2020-12-13 14:50:17
348
原创 ubuntu 18.04 命令行配置网络
1.查看网卡信息ifconfig -a看见如eth0或enp5s0或ens33或ens192等就可以,比如我的是enp3s12. 配置系统网络vi /etc/network/interfaces修改为:#无需改动auto loiface lo inet loopback #添加以下:auto enp3s0 #开机自动连接网络(enp3s0 为网卡名称,ifconfig -a看自己的) iface enp3s0 inet static #static表示使用固定.
2020-12-13 14:30:47
4804
原创 linux 设置安装ssh-server 并设置服务自启
安装ssh服务sudo apt-get install openssh-server启动ssh服务sudo /etc/init.d/ssh start设置开机自启动sudo systemctl enable ssh关闭ssh开机自动启动命令sudo systemctl disable ssh单次开启sshsudo systemctl start ssh单次关闭sshsudo systemctl stop ssh设置好后重启reboot...
2020-12-13 14:23:54
796
mingw,gcc4.8自带mysys1.0免安装.rar
2020-06-28
MinGW-V5.1.7-免安装解压直接可用.rar
2020-06-28
hkvision_demo.rar
2020-05-13
海康威视相机各种故障码对应说明分类总结.xlsx
2020-05-13
UR机器人的通讯协议相关资料.rar
2020-04-22
UR机器人通讯协议相关资料.rar
2020-04-22
30002端口数据解析表.xlsx
2020-04-22
SetupFactory9.0.3.0Trial.rar
2019-12-28
Scientific Toolworks understand 最新5.0版本(内含激活)
2018-11-26
基于QT5 qt 处理XML的三种方式 dom sax xmlstream 5个小例子
2018-03-29
Scientific Toolworks Understand for window v4.0832版本
2016-12-14
burg算法实现AR模型的功率谱估计 matlab
2016-05-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人