- 博客(141)
- 资源 (22)
- 收藏
- 关注
原创 git管理忽略指定路径/临时文件
在使用Git管理项目时,通常不需要将根目录下的所有文件夹上传到GitHub,例如编译生成的build文件夹、VSCode生成的.vscode文件夹以及个人数据文件夹data等。为了避免这些文件被Git跟踪并提示未提交的更改,可以在项目根目录下创建一个.gitignore文件,并在其中指定需要忽略的路径或文件。
2025-05-15 22:55:06
427
原创 ouster点云数据中 range, intensity, reflectivity, ambient等属性的含义
intensity:Signal Photons [16 bit unsigned int] - signal intensity photons in the signal return measurement.测量的是光子信号返回的强度,与物体表面的反射特性以及到激光器之间的距离有关。range:测量激光器到目标物体之间的距离,单位用毫米表示.可通过下述方式计算,转换到XYZ坐标的形式.。同时,参考用户手册在1-100范围是线性对应1%-100%朗伯体表面,而之后则是log2映射.。
2025-05-07 00:40:43
129
原创 修改PointLIO项目
float yaw;在laserMapping.cpp文件中添加发布关键帧信息函数publish_key_frame_info:i < size;i++)jjj++;在Estimator.h头文件中添加转换点坐标系函数,专门针对Ouster类型进行处理:随后在对应的Estimator.cpp头文件中添加函数定义return;if (!else。
2025-04-20 23:41:51
1035
原创 C++代码优化
前段时间写了一些代码,但是在运算过程中发现有些代码可以进行改进以提高运行效率,尤其是与PCL相关的部分,可以进行大幅度提高.特意在此进行记录,分享给大家,也供自己查看。
2025-04-18 23:59:16
301
原创 fatal error: boost/iterator/function_output_iterator.hpp: No such file or directory
但是在/usr/local/boost_1_75/include路径下明明能够找到function_output_iterator.hpp文件.加入include_directories(${BOOST_INCLUDEDIR})之后,就解决了问题。之后编译.提示错误,CGAL文件找不到boost库中的对应头文件。boost库与CGAL库配合使用过程中出现问题,解决过程记录.
2025-03-29 22:30:52
162
原创 CGAL库错误/usr/include/CGAL/Point_set_3.h:77:38: error: expected nested-name-specifier before ‘Kernel_t
因为Point_set_3文件中用到了kernel,若在其之前没有添加kernel对应的头文件,就没有了对kernel的定义.最后发现是kernel头文件需要放在Point_set_3之前,修改为下述内容就可以了.怀疑是没有安装好CGAL库,也怀疑没有正确调用库.在main文件中引用。
2025-03-22 00:26:41
111
原创 VScode中C++代码有波浪线提示错误,但编译正常
今天在写个小demo的时候遇到了一个奇葩的问题。我的代码可是,在VScode编辑中,加入#include <pcl_conversions/pcl_conversions.h>这句话,就会出现namespace “ros” has no member “init” namespace “ros” has no member "NodeHandle"之类的错误提示,当然,这些提示并不影响我编译代码,只是在编辑器中显示有错误。
2025-02-26 23:42:21
505
原创 FAST_LIO_SAM调试错误记录(double free or corruption,以及回环出现process has died code -11错误)
最近,在测试FAST_LIO_SAM(https://github.com/kahowang/FAST_LIO_SAM)框架过程中遇到了一些环境配置问题,记录一下解决过程,供大家参考。
2024-12-08 00:26:19
665
原创 ROS多消息同步(如LiDAR点云与IMU数据)
Message Filters: message_filters还提供了一些过滤器,例如message_filters::Subscriber(订阅一个主题的消息)、message_filters::Cache(缓存一段时间内的消息)和message_filters::TimeSequencer(确保消息按时间顺序处理)。Time Synchronizer: message_filters::TimeSynchronizer允许你同步两个或多个主题的消息,这些消息的时间戳必须完全相同。
2024-02-29 10:33:43
1687
1
原创 Endnote软件添加期刊引用格式
下载格式文件后,双击用endnote打开,然后在左上角“File”–> “Save As”,输入你想要保存的任意格式名字,然后“Save”。随后,关闭格式文件。接着,左上角,“Edit”–>“Output Styles”–>“Open Style Manager”,找到你刚才保存的格式名字,勾选。最后,在左上角,"Output Styles"中即可看到刚才添加的引用格式,选择。在下述网址中,找到你想要添加的期刊,下载引用格式文件(后缀为.ens格式)
2023-11-23 21:38:18
2240
1
原创 Google Earth中的KML文件转换为CSV文件存放经纬度
弹出的窗口中只有“kmz”与“kml”两种格式,这两种格式均是google earth内置的格式(KMZ文件是KML的压缩文件),并不容易使用。因此,我们希望有csv表格或txt文档,提取其中的经纬度信息,方便查看与使用。最近进行一个小工作是在google earth中选择一系列点坐标,然后保存为csv文件或txt文件。1)使用Python中的库(如xml.etree.ElementTree)来解析KML文件并提取经纬度信息。2)使用Python中的CSV库(如csv)将经纬度信息写入CSV文件。
2023-08-16 16:16:33
2301
原创 Python版本Open3D基本使用
最近想完成一个点云进行三维旋转展示的效果,从网上找到可以通过Open3D进行实现。因此想参考上述过程实现一下,在操作的过程中遇到了一系列的问题,在此记录。1)博主安装了Pycharm作为编译器,使用学生身份认证,获取了教育版的licence。2)配合anaconda(Anaconda3-2023.07-1-Windows-x86_64.exe)进行使用,下载过程中有一步选择python版本,直接选择了最新的3.11.4,这为后续的安装open3d库带来了隐患。
2023-08-13 00:39:58
1167
原创 解决 undefined reference to XXXX的类似问题
最近在使用一个第三方库时出现错误:MatchersImpl.cpp:82: undefined reference to `Nabo::NearestNeighbourSearch查找了之后发现,头文件在:“/usr/local/include/nabo"路径下,编好的动态链接库在”/usr/local/lib"路径下。这样再次编译就可以了。
2023-07-22 16:52:30
254
原创 USB串口操作(C,C++)
我们在日常使用过程中经常需要对USB串口进行一些读写操作,这里记录一下C,C++两种语言的操作过程.注意:作者使用的环境为Ubuntu,在windows系统中使用需要对应把ttyUSB转换为COM口.
2023-07-03 12:05:26
2701
原创 FAST-LIO2论文阅读
之前写的一个关于FAST-LIO论文阅读的总结,可以参考FAST-LIO2是港大MaRS实验室在FAST-LIO框架的基础上进行了修改而成,集成了他们课题组的几个工作,形成了一个非常优秀且极具代表性的框架。系统的整体框架如下,与FAST-LIO相同仍然使用了一个紧耦合迭代扩展卡尔曼滤波(红色框内)。不同的地方主要在于1)直接使用输入的激光雷达原始点进行配准,去除了特征提取模块;2)增加一个ikd-tree的数据结构,能够快速的查询、增删,提高效率。
2023-06-04 15:40:53
1939
1
原创 Hesai激光雷达使用PTP时间同步
PTP是一个网络同步时钟的协议,全称是Precise Time Protocol,也称为IEEE 1588,其有IEEE1588v1和IEEE1588v2两个版本(其中v1版本是为工业自动化测量和控制系统开发的,适用于工业局域网应用。v2版本是在v1版本的基础上,专门针对通信网改进的,我们使用的是IEEE1588v2版本)。当硬件支持时,PTP 精度能达到亚微秒,在外界第三方PTP Master接入时连接方式如图 2中所示。
2023-06-03 15:22:09
4718
原创 FAST-LIO论文阅读
FAST-LIO是港大MaRS实验室在2021年提出的一个紧耦合迭代扩展卡尔曼滤波高计算效率、高鲁棒性的雷达里程计。影响深远,后续又陆续提出了FAST-LIO2以及Faster-LIO等框架。下面,我们简单了解一些论文中的各个模块及其处理流程。
2023-05-28 15:48:40
5619
2
原创 多激光雷达手眼标定
如上图中所示,存在一个世界坐标系G,点PPP在世界坐标系中的坐标为PGP_GPG。在t1t_1t1时刻,激光雷达A与激光雷达B分别观测到点PPPPA1P_{A1}PA1PB1P_{B1}PB1。在t2t_2t2时刻,激光雷达A与激光雷达B分别观测到点PPPPA2P_{A2}PA2PB2P_{B2}PB2。在t1t_1t1时刻,激光雷达A与激光雷达B分别到全局坐标系GGG。
2023-05-20 11:08:35
1231
原创 Ouster激光雷达使用PTP时间同步
IEEE1588(the Precision Time Protocol 简称为 PTP )全称是“网络测量和控制系统的精密时钟同步协议标准”,可以使用ubuntu中的网卡作为时间的master也可以外接一个精准的时钟,来实现传感器的时间同步。本篇博客主要介绍单独使用一个NUC连接Ouster OS1-128激光雷达来实现PTP时间同步。
2023-05-12 21:29:08
2045
3
原创 ROS bag包提取数据
日常使用中有时需要提取bag包中的某个topic数据为新的bag包,或者裁剪其中的一段时间数据。这些功能均可以通过命令实现。可以看到,其中包含ouster的激光雷达数据(/os_cloud_node_1/points),内部IMU数据(/os_cloud_node_1/imu)以及外部IMU数据(/imu/data),总时长为202s。
2023-05-10 11:37:33
3450
1
原创 LIO-SAM-自采数据运行踩坑
Ouster-128激光雷达数据Ouster内部IMU(六轴100Hz)/ Xsens MTi 3(九轴100Hz)/ Xsens MTi-G-700(九轴400Hz)手持平台,正常行走速度,相对于无人车来说晃动较大室内、室外均进行了测试LIO-SAM预积分部分还是比较敏感的,针对无人车平台,行驶速度较慢,平台稳定,晃动幅度小,IMU频率可以设置的较低一些。
2023-05-09 23:42:04
2961
1
原创 PCL释放点云内存
最近在处理一块样地的多站地基点云数据时,遇到了一个问题:每一站的点云数据量过大,超过1亿点,全部读进内存中会导致内存溢出,程序崩掉。因此,在读取了第一站点云之后要及时释放PCL中的点云变量,接着再读第二站数据,依次处理。但是,都没有实际解决问题。
2023-05-05 16:40:06
2900
3
原创 解决VSCode 中第三方库代码无提示的问题
首先,按下快捷键Ctrl + Shift + P,输入edit configuration,选择C/Cpp: Edit Configurations…,此时会在工程的配置目录.vscode下生成一个配置文件:c_cpp_properties.json。在Ubuntu 18.04 + VSCode的工作环境中写代码还不算太熟悉。最近在新建一个工程,并引用了外部的第三方库进行使用时不能出现提示代码,写起来很费劲。后来找到原因是没有编写对应的c_cpp_properties.json文件。
2023-05-04 11:51:40
2624
1
原创 Ubuntu 启动出现error:/vmlinz-generic has invalid signature
本来Win 10 + Ubuntu 18.04工作环境好好的,但是一次野外作业电量耗光了,直接关机。回到实验室,插上电源再次开机出现error:/vmlinz-generic has invalid signature的提示。点击确认之后反复开关机就是进不去系统。最后发现是因为BIOS恢复成了默认的设置,所以我们需要再修改一下BIOS的安全模式。4、选择disable(禁用安全模式)3、找到secure boot。
2023-04-27 21:49:31
735
原创 (Ubuntu 20.04)fatal error: websocketpp/config/asio_no_tls.hpp: No such file or directory
【代码】(Ubuntu 20.04)fatal error: websocketpp/config/asio_no_tls.hpp: No such file or directory。
2023-04-27 14:32:23
834
原创 利用ArcGIS软件赋予tif影像空间参考坐标系
利用ArcGIS软件中的Georeferencing工具,选择三个及以上的关联点,即可求解空间中的任意平移、旋转变换。
2023-04-23 10:08:29
10659
原创 点云配准方法原理(NDT、ICP)
配准是点云处理中的一个基础问题,众多学者此问题进行了广泛而深入的研究,也出现了一系列优秀成熟的算法,在三维建模、自动驾驶等领域发挥着重要的作用。本文主要介绍粗配准NDT (Normal Distribution Transform) 与 精配准ICP (Iterative Closest Point)两种经典算法。
2023-02-19 17:48:11
3891
原创 箱状图理解
箱形图(英文:Box plot),又称为盒须图、盒式图、盒状图或箱线图,是一种用作显示一组数据分散情况资料的统计图。其于1977年由美国著名统计学家约翰·图基(John Tukey)发明。它能显示出一组数据的最大值、最小值、中位数、及上下四分位数。
2023-02-15 15:49:01
10024
原创 Ubuntu中自定义terminal输出文字颜色
我们在Ubuntu中经常使用terminal进行各种操作,输入各种命令。此外,我们在编程时自己输出一些信息也会在terminal中进行显示。但是,其默认的输出都是白色的文字,非常的不起眼,下面我们通过定义一些简单的变量来定义输出信息的颜色/加粗等格式,使重要信息能够得到强调。大家感兴趣的可以试一下。
2023-02-13 09:33:53
853
原创 自定义Ouster(OS1-128)点云类型
我们在使用ROS接收Ouster点云数据的对应topic,处理其点云数据时,如果仅使用PCL库中定义的PointXYZ或者PointXYZI等类型,会导致丢失一些非常有用的信息。如每个点的线号(ring),在当前帧中的对应时间等。中的xyz,intensity,t,reflectivity,ring,ambient,range等一系列属性信息了。因此有必要根据驱动自定义对应的点类型,方便我们使用更全的点云信息。PCL中自定义点云类型。之后,我们就可以使用。
2023-02-05 15:29:54
708
原创 Ubuntu 18.04使用CMake编译可执行文件、动态链接库
之后,我们在build文件中可以找到一个新生成的Test文件。文件,这就是我们需要的动态链接库,能够分享给其他人进行使用。保存之后,在build文件中打开一个终端,输入下述命令。同样的,在build文件中打开一个终端,输入下述命令。在开始之前,我们先准备一个项目所需要的基本结构。中新建一个test.cpp文件,并加入以下内容。至此,我们完成了编译生成可执行文件的操作过程。我们可以看到新生成了一个。
2023-01-02 22:07:26
2110
3
原创 LIO-SAM代码逐行解读(5)-点云匹配及后端优化模块
我们在前述的博客中介绍了LIO-SAM的一些准备工作、点云预处理、特征点提取、IMU预积分等内容。之后,我们来到了最核心也是最重要的一部分工作,把(3)中提取的特征点进行匹配,获取激光里程计,并添加回环检测因子、GPS因子等进行后端优化。详细参考:LIO-SAM代码逐行解读(1)-准备工作LIO-SAM代码逐行解读(2)-点云预处理LIO-SAM代码逐行解读(3)-特征点提取LIO-SAM代码逐行解读(4)-IMU预积分LIO-SAM回环检测模块代码解析自定义数据结构,存储激光雷达位姿6D p
2022-12-31 11:27:38
2916
6
原创 LIO-SAM代码逐行解读(4)-IMU预积分
我们在前述的博客中介绍了LIO-SAM的一些准备工作、点云预处理、特征点提取等内容。之后,整理为cloud_info消息类型进行发布,包括其中的面片点、角点两种类型的特征点。接着,本篇博客中将重点介绍IMU预积分的相关处理,与前部分的内容相对独立一些。其发布的IMU里程计数据主要用于后续匹配的初值、点云去除运动畸变(实际未使用)等方面。
2022-12-30 23:46:46
1799
原创 LIO-SAM代码逐行解读(3)-特征点提取
我们在前述的博客中介绍了LIO-SAM的一些准备工作、点云预处理等内容。之后,整理为cloud_info消息类型进行发布,以供后续特征点提取进行使用。接下来,我们进行后续的工作,根据点的平滑度来进行特征点提取,包括面片点与角点。这一部分还是比较简单明了的,总体来说就是先计算平滑度,接着根据平滑度的值排序,选取其中的面片点与角点。
2022-12-30 22:28:21
1683
原创 LIO-SAM代码逐行解读(2)-点云预处理
我们在上一篇博客中介绍了LIO-SAM的一些准备工作,包括用于读取各种参数的ParamServer类,以及自定义的ROS消息类型cloud_info。本篇博客中,我们主要讨论接收点云后投影到一个平面上,为后续的特征提取做准备的相关内容,称之为“点云预处理”部分。
2022-12-30 15:11:01
1327
PDR (Pedestrian Dead Reckoning)行人航位推算实现代码(matlab)
2022-11-25
二维坐标转换MATLAB源代码
2021-07-17
rosdistro-master.zip
2021-06-14
matlab_custom_function.zip
2020-07-11
“布料模拟”滤波算法(张吴明教授文章)
2020-07-08
Progressive Morphological Filter
2020-06-29
DEM-generation.zip
2020-06-21
Python安装的GDAL包,包括4个版本
2020-02-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人