- 博客(132)
- 资源 (22)
- 收藏
- 关注
原创 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 924 1
原创 Endnote软件添加期刊引用格式
下载格式文件后,双击用endnote打开,然后在左上角“File”–> “Save As”,输入你想要保存的任意格式名字,然后“Save”。随后,关闭格式文件。接着,左上角,“Edit”–>“Output Styles”–>“Open Style Manager”,找到你刚才保存的格式名字,勾选。最后,在左上角,"Output Styles"中即可看到刚才添加的引用格式,选择。在下述网址中,找到你想要添加的期刊,下载引用格式文件(后缀为.ens格式)
2023-11-23 21:38:18 1182
原创 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 1560
原创 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 936
原创 解决 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 191
原创 USB串口操作(C,C++)
我们在日常使用过程中经常需要对USB串口进行一些读写操作,这里记录一下C,C++两种语言的操作过程.注意:作者使用的环境为Ubuntu,在windows系统中使用需要对应把ttyUSB转换为COM口.
2023-07-03 12:05:26 2178
原创 FAST-LIO2论文阅读
之前写的一个关于FAST-LIO论文阅读的总结,可以参考FAST-LIO2是港大MaRS实验室在FAST-LIO框架的基础上进行了修改而成,集成了他们课题组的几个工作,形成了一个非常优秀且极具代表性的框架。系统的整体框架如下,与FAST-LIO相同仍然使用了一个紧耦合迭代扩展卡尔曼滤波(红色框内)。不同的地方主要在于1)直接使用输入的激光雷达原始点进行配准,去除了特征提取模块;2)增加一个ikd-tree的数据结构,能够快速的查询、增删,提高效率。
2023-06-04 15:40:53 1550
原创 Hesai激光雷达使用PTP时间同步
PTP是一个网络同步时钟的协议,全称是Precise Time Protocol,也称为IEEE 1588,其有IEEE1588v1和IEEE1588v2两个版本(其中v1版本是为工业自动化测量和控制系统开发的,适用于工业局域网应用。v2版本是在v1版本的基础上,专门针对通信网改进的,我们使用的是IEEE1588v2版本)。当硬件支持时,PTP 精度能达到亚微秒,在外界第三方PTP Master接入时连接方式如图 2中所示。
2023-06-03 15:22:09 2896
原创 FAST-LIO论文阅读
FAST-LIO是港大MaRS实验室在2021年提出的一个紧耦合迭代扩展卡尔曼滤波高计算效率、高鲁棒性的雷达里程计。影响深远,后续又陆续提出了FAST-LIO2以及Faster-LIO等框架。下面,我们简单了解一些论文中的各个模块及其处理流程。
2023-05-28 15:48:40 3487 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 925
原创 Ouster激光雷达使用PTP时间同步
IEEE1588(the Precision Time Protocol 简称为 PTP )全称是“网络测量和控制系统的精密时钟同步协议标准”,可以使用ubuntu中的网卡作为时间的master也可以外接一个精准的时钟,来实现传感器的时间同步。本篇博客主要介绍单独使用一个NUC连接Ouster OS1-128激光雷达来实现PTP时间同步。
2023-05-12 21:29:08 1475
原创 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 2840 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 2172 1
原创 PCL释放点云内存
最近在处理一块样地的多站地基点云数据时,遇到了一个问题:每一站的点云数据量过大,超过1亿点,全部读进内存中会导致内存溢出,程序崩掉。因此,在读取了第一站点云之后要及时释放PCL中的点云变量,接着再读第二站数据,依次处理。但是,都没有实际解决问题。
2023-05-05 16:40:06 2303 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 2233 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 572
原创 (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 548
原创 利用ArcGIS软件赋予tif影像空间参考坐标系
利用ArcGIS软件中的Georeferencing工具,选择三个及以上的关联点,即可求解空间中的任意平移、旋转变换。
2023-04-23 10:08:29 7593
原创 点云配准方法原理(NDT、ICP)
配准是点云处理中的一个基础问题,众多学者此问题进行了广泛而深入的研究,也出现了一系列优秀成熟的算法,在三维建模、自动驾驶等领域发挥着重要的作用。本文主要介绍粗配准NDT (Normal Distribution Transform) 与 精配准ICP (Iterative Closest Point)两种经典算法。
2023-02-19 17:48:11 2743
原创 箱状图理解
箱形图(英文:Box plot),又称为盒须图、盒式图、盒状图或箱线图,是一种用作显示一组数据分散情况资料的统计图。其于1977年由美国著名统计学家约翰·图基(John Tukey)发明。它能显示出一组数据的最大值、最小值、中位数、及上下四分位数。
2023-02-15 15:49:01 7618
原创 Ubuntu中自定义terminal输出文字颜色
我们在Ubuntu中经常使用terminal进行各种操作,输入各种命令。此外,我们在编程时自己输出一些信息也会在terminal中进行显示。但是,其默认的输出都是白色的文字,非常的不起眼,下面我们通过定义一些简单的变量来定义输出信息的颜色/加粗等格式,使重要信息能够得到强调。大家感兴趣的可以试一下。
2023-02-13 09:33:53 723
原创 自定义Ouster(OS1-128)点云类型
我们在使用ROS接收Ouster点云数据的对应topic,处理其点云数据时,如果仅使用PCL库中定义的PointXYZ或者PointXYZI等类型,会导致丢失一些非常有用的信息。如每个点的线号(ring),在当前帧中的对应时间等。中的xyz,intensity,t,reflectivity,ring,ambient,range等一系列属性信息了。因此有必要根据驱动自定义对应的点类型,方便我们使用更全的点云信息。PCL中自定义点云类型。之后,我们就可以使用。
2023-02-05 15:29:54 538
原创 Ubuntu 18.04使用CMake编译可执行文件、动态链接库
之后,我们在build文件中可以找到一个新生成的Test文件。文件,这就是我们需要的动态链接库,能够分享给其他人进行使用。保存之后,在build文件中打开一个终端,输入下述命令。同样的,在build文件中打开一个终端,输入下述命令。在开始之前,我们先准备一个项目所需要的基本结构。中新建一个test.cpp文件,并加入以下内容。至此,我们完成了编译生成可执行文件的操作过程。我们可以看到新生成了一个。
2023-01-02 22:07:26 1980 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 2344 6
原创 LIO-SAM代码逐行解读(4)-IMU预积分
我们在前述的博客中介绍了LIO-SAM的一些准备工作、点云预处理、特征点提取等内容。之后,整理为cloud_info消息类型进行发布,包括其中的面片点、角点两种类型的特征点。接着,本篇博客中将重点介绍IMU预积分的相关处理,与前部分的内容相对独立一些。其发布的IMU里程计数据主要用于后续匹配的初值、点云去除运动畸变(实际未使用)等方面。
2022-12-30 23:46:46 1447
原创 LIO-SAM代码逐行解读(3)-特征点提取
我们在前述的博客中介绍了LIO-SAM的一些准备工作、点云预处理等内容。之后,整理为cloud_info消息类型进行发布,以供后续特征点提取进行使用。接下来,我们进行后续的工作,根据点的平滑度来进行特征点提取,包括面片点与角点。这一部分还是比较简单明了的,总体来说就是先计算平滑度,接着根据平滑度的值排序,选取其中的面片点与角点。
2022-12-30 22:28:21 1373
原创 LIO-SAM代码逐行解读(2)-点云预处理
我们在上一篇博客中介绍了LIO-SAM的一些准备工作,包括用于读取各种参数的ParamServer类,以及自定义的ROS消息类型cloud_info。本篇博客中,我们主要讨论接收点云后投影到一个平面上,为后续的特征提取做准备的相关内容,称之为“点云预处理”部分。
2022-12-30 15:11:01 1064
原创 LIO-SAM代码逐行解读(1)-准备工作
针对Shan Tixiao开源的经典LIO框架LIO-SAM源代码进行逐行解读,总结。记录在这里希望能够给大家提供一些参考。这里是第一部分,主要是开始的一些准备工作,包括 utility.h文件,cloud_info.msg文件等。
2022-12-30 14:16:19 941
原创 模型驱动PDR、数据驱动PDR实验效果对比
相比于模型驱动PDR,数据驱动PDR的鲁棒性更强,尤其能够较好的处理转弯,掉头等航向角迅速变化的动作。逐步增加训练epoch能提高模型在复杂运动中的适应能力增加训练数据量,在平端、摆臂等行走状态下,从指标上来看没有明显的精度提高,从视觉效果上来看更加贴近真实情况;增加训练数据量,在T形多种动作切换状态下获取的轨迹长度更加贴近真值。
2022-12-28 11:21:08 975 1
原创 NVIDIA Jetson Xavier NX部署VINS-fusion-GPU
组内大佬师兄今天抽出时间总结了一篇博客,主要内容是:把在阿木P450无人机上,对自带的NVIDIA Jetson Xavier NX边缘计算机部署VINS-fusion-GPU教程,并进行实验。
2022-11-15 22:23:27 1095
原创 G2O (General Graph Optimization)入门及简单使用
g2o全称是General Graph Optimization,也就是图优化,我们在做SLAM后端或者更加常见的任何优化问题(曲线拟合)都可以使用G2O进行处理。
2022-10-30 11:10:42 7348
原创 RoNIN: Robust Neural Inertial Navigation预训练模型测试
接着上篇的文章继续往下讲:RoNIN: Robust Neural Inertial Navigation in the Wild: Benchmark, Evaluations, and New Methods是深度学习应用于PDR的典型,下面我们就基于这篇文章进行测试,查看深度学习PDR的效果。
2022-10-23 20:01:24 847 1
原创 KD-Tree的构建及检索
我们在点云处理中经常使用构建KD-Tree数据结构,接着用于高效查询近邻点。经常直接调用PCL函数过于简单,在这里我们对KD-Tree的构建及检索原理进行讨论。最后,介绍一下在PCL中KD-Tree的基本使用方法。
2022-10-17 22:25:43 1724
原创 LIO-SAM回环检测模块代码解析
前端里程计是一个不断递推相邻帧位姿的过程,其必定存在累计漂移。为了解决这一问题,回环检测并进行后端优化是一个重要的环节。下面以典型激光SLAM框架LIO-SAM为例进行解析,学习其进行回环检测的策略。
2022-10-17 11:59:24 1665
原创 用了梯子,github 配置了公钥依旧提示git@github.com‘s password: Permission denied, please try again. 的解决办法
在 配置了公钥之后我们应该是可以通过SSH方式直接上传或下载github上的仓库的,但是在实际使用过程中由于用了梯子,导致不能使用ssh的方式登录github,还是提示要输入密码git@github.com‘s password: ,没有达到我们想要的效果。如果你能在端口 443 上通过 SSH 连接到 git@ssh.github.com,则可覆盖你的 SSH 设置来强制与 GitHub.com 的任何连接均通过该服务器和端口运行。最后再去使用git命令通过SSH方式链接就完全没问题了。
2022-10-12 21:34:20 3800
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关注的人