自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (2)
  • 收藏
  • 关注

原创 Fastlio系列算法中向后传播backward propagation的理解

向后传播是Fastlio系列算法的重点,用于消除点云运动畸变。直接理解起来是容易的,但是代码细节需要仔细理解一下。主要通过以下图片理解“imu_processing.hpp”中的对应代码。2、根据图片下方的加粗黑字理解绿色方框中的公式,可参考以下链接中的表述,个人认为比黑字好理解一些。imu_state.pos和imu_state.pos。1、一帧点云(最后一个点)结束时间的位姿为。,前面所有点都根据这个位姿进行推断,这也是。3、用向量的方式思考绿框第二行公式。

2024-09-24 21:17:54 337

原创 编译FAST-LIVO报错解决

1、按照官方指导下载包:FAST-LIVO和vikit包。2、报错解决:参考以下。

2024-09-14 09:39:04 757

原创 速腾聚创激光雷达复现FAST-LIO

记录复现FAST-LIO算法的过程和,代码梳理和理解。FAST-LIO的简化版、注释版。速腾激光雷达

2024-07-25 21:40:33 1725

原创 激光雷达点云格式对比与转换,速腾、Velodyne、Ouster

用于不同开源代码的传感器接入。激光雷达点云格式对比与转换,速腾、Velodyne、Ouster

2024-07-24 20:07:05 1066

原创 安装mmsegmentation默认主分支main

安装时间2024.4.21mmsegmentation新版本main分支(v1.2.2)

2024-04-21 22:16:56 268

原创 激光雷达点云投影到图像

多传感器融合一直是自动驾驶领域非常火的名词, 但是如何融合不同传感器的原始数据, 很多人对此都没有清晰的思路. 本文的目标是在KITTI数据集上实现激光雷达和相机的数据融合. 然而激光雷达得到的是3D点云, 而单目相机得到的是2D图像, 如何将3D空间中的点投影到图像平面上, 从而获得激光雷达与图像平面相交的区域, 是本文研究的重点. 其次本文会介绍相机这个大家常见的传感器, 以及讲解如何对相机进行畸变校准.

2024-02-24 16:47:03 1309

原创 记录labelImg上手过程

修改E:\labelimg-master\data\predefined_classes.txt里面的标签为自己需要的标签。进入anaconda虚拟环境后,cd到labelimg文件夹,然后输入命令。

2023-11-30 16:37:25 549

原创 Ubuntu20.04清理垃圾vscode缓存

使用VM虚拟机安装了Ubuntu系统,主目录空间越来越小,硬盘扩容之后很快又空间不足,甚至出现了开机卡黑屏的情况,这里记录一下解决过程。

2023-11-24 09:01:49 3386 1

原创 velodyne_msgs/VelodyneScan数据流消息转化为sensor_msgs/PointCloud2点云帧消息

在查看一个开源数据集时,点云信息格式为velodyne_msgs/VelodyneScan,无法在rviz中显示,需要转换为sensor_msgs/PointCloud2。主要的使用过程都在参考博客里写的很清楚,这里针对遇到的问题进行说明:1、不能使用VLP16_points.launch文件,根据激光雷达型号,从velodyne驱动包里找到相应的启动文件32e_points.launch2、但是没有显示点云,提示:Failed to transform from frame [/velodyne] t

2023-09-03 15:44:01 1023

原创 使用sh脚本启动ROS功能包

一个工程用到多个节点时,单独启动比较麻烦,使用launch文件是一种方法,但是觉得配置的不方便,按照一次性启动更加简单便捷。要先给文件权限,访问改为“读取和写入”,勾选“允许文件作为程序执行”,然后打开终端,输入

2023-08-23 09:50:55 604

原创 应用纯跟踪算法(pure pursuit)跟踪运动轨迹

以rosrun的方式启动程序时,ctrl+c可以终止程序,但是返回不到命令行状态。但是以roslaunch的方式启动时可以,可以返回到命令行,比较慢。算法封装为class PurePursuit,还需要在此基础上编写一个主函数运行算法。解决方法:手动增加信号量就好了,没有向其他博客那样加。可以封装一个roslaunch文件便于修改参数。执行语句就可以退出了,不知道怎么回事。没有这一行的话无法循环ROS。

2023-08-17 23:21:57 591

原创 运动路径规划,ROS发布期望运动轨迹

想让机器人/智能车无人驾驶,要有期望路径,最简单的是一条直线,或者是一条光滑曲线。可以人为设定几个关键点,拟合出直线或曲线作为期望路径。分别使用C++和Python在ROS下实现直线插值和三次样条插值

2023-08-16 16:51:14 1634 1

原创 ROS之rviz显示GNSS/INS运动轨迹

ROS在rviz中实时显示轨迹(nav_msgs/Path消息的使用)_nav_msgs/path.h默认代码的画圆速度很慢,改变ROS周期可以调整;gnss/ins轨迹,机器人运动轨迹

2023-08-14 09:26:44 1519

原创 上位机(Ubuntu)与下位机(Arduino)通讯控制机器人前轮转角

方案一:判断了旋转方向就向下位机发布指令,可以实现转向,但是会出现咯噔咯噔的卡顿现象,因为下位机接收到了指令频率太高了。方案二:在上个方案的基础上增加判断条件,也就是电机工作状态量,用大小为2的队列实现。实现基础:1、上位机、下位机通讯;2、ROS读取前轮转角传感器速度。

2023-07-06 20:39:41 982

原创 cam_lidar_calibration代码详解(三)点云重投影部分

assess_node节点文件src/assess_calibration.cpp用途:读取标定结果,提前一组图像/点云数据进行重投影,计算lidar——>camera变换矩阵,对点云进行投影和可视化。

2023-07-04 16:51:25 890

原创 读取拉线位移传感器(RS485协议)的ROS驱动包

软件环境:Windows 10 + VMware 16 + Ubuntu 20.04+ Noetic硬件包括:布瑞特拉线位移传感器,RS485协议,1024分辨率(10bit),UT-890A串口线。读取拉线位移传感器(RS485协议)的ROS驱动包。刚开始想的是解析RS485协议,找了好多资料都不能用,包括一个ROS的modbus包,版本太老了不能用。后来意识到解析RS485协议是多此一举的,直接对串口数据进行解析就可以!

2023-06-28 15:03:38 2941 3

原创 cam_lidar_calibration代码详解(二)优化计算过程

两套计算内容,旋转矩阵、变化矩阵。先优化求解最优旋转矩阵,再以此为初始值,优化旋转矩阵和平移向量,提高精度。设置遗传算法的适应函数、交叉、变异、评估精度、初始化基因。​先对特征点提取和优化过程进行了梳理,见博客:​​​​​​​​​​​​​​​​​​​cam_lidar_calibration代码详解(一)采样优化部分_可见一班的博客-CSDN博客这篇博客主要对优化计算的过程及代码进行整理,用到的是遗传算法。主要包含3个文件:openga.h,遗传算法的实现optimiser.h,定义旋转矩阵

2023-06-12 11:13:30 1008

原创 cam_lidar_calibration代码详解(一)采样优化部分

cam_lidar_calibration代码采样优化部分进行详细解释,注意包括 FeatureExtractor中的各个函数。激光雷达板的误差超过真值的10%,则拒绝该采样。说明该次截取的点云检测效果不佳。终端报错"Plane fitting error, LiDAR board dimensions incorrect; discarding sample - try capturing again"

2023-06-07 00:24:59 1560

原创 cam_lidar_calibration标定速腾激光雷达和单目相机外参

Ubuntu 20.04 + Noetic用camera_lidar_calibration标定激光雷达和相机。激光雷达:速腾聚创32线激光雷达 RS-LIDAR-32单目相机:acA1920-40gc(GigE接口)

2023-05-13 11:21:50 3649 33

原创 VSCODE配置ROS编译环境

用VSCode编辑ROS程序时,会出现一大串红色波浪线,让人挠头。在VSCode配置ROS环境,以提高工作效率和配置可移植性,现对配置步骤进行记录。VSCODE配置ROS编译环境

2023-05-11 23:13:26 1676

原创 ROS功能包camera_calibration标定相机内参

ROS功能包camera_calibration标定相机内参,--size 10x7: 为当前标定板的内点数量,即内部小正方形角点的交点--square 0.05:为每个小棋盘格的边长,单位是米image:=/camera_raw:标定当前订阅图像来源自名为/camera/image_raw的topiccamera:=/camera_raw:为摄像机名通过不停的移动标定板:直到X、Y、Size、Skew四个都变成绿色,点击“CALIBRATE”界面卡住,开始计算标定,完成后可点击“save”进行保存,

2023-05-11 22:13:51 1965 2

原创 win11安装双系统ubuntu20.04指导

联想笔记本电脑Y7000P 2023双系统安装,win11+ubuntu20.04安装流程及建议。解决WIFI 6E AX211在ubuntu系统下没有wifi,没有标识的问题,解决报错RCPI BI0S Error (bug): Failure creating named object,升级系统内核,解决新版本内核无法进入系统

2023-04-27 10:39:40 4561

原创 basler相机ROS硬触发程序补充camera_info话题

相机型号:acA1920-40gc(GigE接口)触发方式:GNSS的PPS硬触发运行环境:Ubuntu20.04 (64-Bit)程序依赖:pylon Release 6.3.0。先调试出来相机外部硬触发,并且可以由ROS采集图像。编写符合sensor_msgs/CameraInfo格式的camera_info话题

2023-04-12 11:31:46 1061

原创 上位机系统Ubuntu 20.04与下位机arduino UNO通讯

上位机系统Ubuntu 20.04与下位机arduino UNO通讯,chbook/libraries/ros1ib/ros/node handle.h:121:45:错误:'nullpt r'在此作用域中尚未声明

2023-03-13 21:36:47 1394

原创 Ubuntu系统用shell脚本批量重命名pcd点云文件

在对激光雷达点云进行处理时,多数时候要把bag格式转换成pcd格式,文件名是每一帧点云的时间戳。那么,需要批量读取pcd点云文件时,时间戳文件名很不友好。写一个脚本进行批量重命名。

2023-02-27 16:37:41 298

原创 PCL库根据动态名称输出pcd格式文件

在处理点云的过程中,需要for循环处理点云,然后提取出其中一部分点云并保存,例如欧式聚类,把每个聚类出的点云保存成一个文件,如果用常规的保存方式,文件名一致,只能保存最后一次循环的提取结果。writer.write(ss.str(), *cloud_cluster, false);ss

2023-02-24 15:51:54 313

原创 C++三种计时方法pcl::console::TicToc

Ubuntu环境下测试了两种测量代码运行时间的函数,二者精度接近,结果相似,但是个人更倾向于第一种,更简洁。clock()和gettimeofday(),pcl::console::TicToc

2023-02-21 15:42:01 983

原创 华测导航GPCHC协议ROS驱动包,CGI610、410接收机,NavSatStatus、GPSFix和普通格式

Ubuntu 20.04 + noetic 华测CGI 610——RS232-C——GPCHC 一、消息类型1.1 sensor_msgs/NavSatFix。sensor_msgs/NavSatStatus;gps_common::GPSFix把GPCHC数据流分割成一个一个的字段,然后进行相应的定义

2023-02-18 15:11:44 4991 8

原创 自定义速腾激光雷达点云XYZIRT格式并调用PCL库进行滤波

速腾激光雷达的ROS程序包可以输出XYZIRT格式,但是PCL库的点没有这种类型,需要进行自定义,并可以进行直通滤波和体素滤波等下采样处理。PCL中有两个函数直接解决了两者的转换关系:1.pcl::fromPCLPointCloud2()2.pcl::toPCLPointCloud2()//cloud_filtered转换为cloud_pass,从pcl::PCLPointCloud2格式转换为模板点云pcl::PointCloud\1、pcl::fromPCLPointCloud2

2023-02-09 22:11:56 1894

原创 CMakeLists分文件编写C++工程

在VS Code中新建文件,写入上述代码,并ctrl+s保存。选择系统里的编译器编译时报错:undefined reference to `swap(int, int)'在VS Code中新建文件,写入上述代码,并ctrl+s保存。添加到tasks.json中,使其链接到子函数源文件。记得保存一下再编译!可以点击小三角编译,也可以在终端输入指令编译。要用双引号包含子函数的头文件,第二行。要用双引号包含子函数的头文件,第一行。包含通用 iostream,第一行。

2023-02-02 22:12:07 779

原创 地心地固坐标系WGS84经纬度与笛卡尔直角坐标系相互转换的推导、理解与代码实现(C++和matlab)

日本在1918年之前,使用的是“日本东京1892年大地坐标系(JTD1892)”,又称“旧东京坐标系”,坐标原点在东京麻布旧东京天文台(旧海军观象台)子午仪中心点,采用1841年贝塞尔椭球,a=6377397.155米,1/f=299.1528。由于东京坐标系与WGS84坐标系的差异产生的问题日益突出。其二,在20世纪70年代末期,利用天文大地测量资料通过统一整体平差,建立了“1980年国家大地坐标系”,使用UGG75椭球,大地原点位于陕西省西安市北泾阳县永乐镇,又称“1980年西安大地坐标系”;

2022-12-13 20:35:30 18949 18

原创 车载GNSS/INS/LiDAR坐标系定义与理解

坐标轴定义:注意:坐标轴定义:注意:坐标轴定义:注意:坐标轴定义:原点在车体质心,XYZ轴的定义标准不同,与导航坐标系的东北天配套使用的话,使用右前上坐标系比较方便。X轴指向车体右方,Y轴指向车体前方,Z轴垂直XOY平面向上,构成右手笛卡尔坐标系。注意:ISO定义的车体坐标系在车辆动力学分析中较为常见;SAE定义的车体坐标系与航空航天领域常用的机体坐标系相一致;基于IMU定义的车体坐标系,则在IMU的相关应用中较为常见。我们选这个。坐标轴定义:坐标轴定义:设备本身的坐标系定义为右前上右手笛卡尔坐标系,

2022-12-03 22:51:41 4426

转载 标定激光雷达-IMU

LiDAR是自动驾驶领域的重要传感器,LiDAR与IMU的外参是LiDAR局部坐标系与世界坐标系之间转换的桥梁,是数据使用的关键参数。LiDAR--IMU外参标定有以下几种方法。

2022-11-22 16:38:39 4202

原创 LiDAR点云转换到大地坐标系——简单粗标定

速腾聚创激光雷达:RS-LIDAR-32华测导航接收机:CGI-610。一、LiDAR和IMU位姿标定为了获取更多的车前信息,将激光雷达向下倾斜一定角度安装。这样就会导致点云的Z坐标不对,前方离平台越远的点的Z轴坐标越大,甚至是个正值,这很不利于进行直通滤波等点云预处理。1.1安装角度标定在设计雷达安装结构的时候,设计了两个定位销,而且雷达是360°水平视角,暂不考虑点云yaw的安装误差,仅对pitch和roll进行标定。一种简单的半自动标定方法:

2022-11-22 16:02:18 6948 2

原创 Cloudompare使用记录

使用cloudcompare旋转查看点云的时候,中间的圈看着很不爽,Meshlab和CloudCompare截图时去除“旋转圈”有时为了截图,Meshlab和CloudCompare软件自带的用于浏览的圈就很多余,如:Meshlab:cloudcompare:这种”圈“:很影响截图,因此,我们可以把它们去除。:Never visible即可。Meshlab和CloudCompare截图时去除“旋转圈”_fb_help的博客-CSDN博客_cloudcompare meshlab。

2022-11-22 10:52:59 1359

原创 根据两向量求旋转矩阵(C++)

ctrl+shift+P——>C/C++:Edit Configuration中增加库的文件路径,库文件通常在/usr/include/中,或者对应上自己库的位置就可以。#include 需要Eigen库的依赖,如果只添加了PCL库,这一条头文件还会有波浪线,可以自己试一下看看。4的,变换矩阵最后一列是平移向量。求两向量的旋转矩阵由Eigen完成,省去很多敲公式的时间。

2022-11-14 16:15:25 2334

原创 matlab——度分秒与度的转换

在描述大地坐标系下的位置时,经纬度会用到度数(°)和度分秒(°、′、″)两种表示方法。

2022-11-11 21:22:06 3816

原创 速腾聚创RS-LiDAR激光雷达点云格式转换

对自己用速腾激光雷达采集的点云数据转换成pcd文件,转换过程中终端显示如图所示,显示了点个数,文件名,以及包含的xyz,intensity,ring,timestamp。pcd是二进制文件,vscode会有如下提示,点击“仍然打开”,可以看到和书上介绍的一样的pcd文件格式了,DATA binary下一行开始是具体数据,显示为乱码。 cloudcompare查看可以根据intensity、ring、time的渲染去查看点云,比较好,数据格式

2022-11-08 15:01:01 3388 3

原创 PCL学习记录——RANSAC

pcl::console是命名空间,包括Classes、Enums和Functions。编译通过,踩坑结束!

2022-11-04 22:49:17 1237

原创 PCL学习记录——点云滤波

问题出现于示例代码的voxel_grid和extract_indices中。从GitHub下载的部分代码不能编译通过,对pcl点云格式pcl::PCLPointCloud2::Ptr进行学习和理解。源代码是sensor_msgs::PointCloud2,显然是运行于ROS里的。另外,涉及到点云数据格式的转换。这个示例的运行方式不一样,如果只在终端输入./remove_outliers ,会提示:please specify command line arg '-r' or '-c'正确输入指令为:

2022-11-02 21:34:56 378

基于ROS的seria接收节点,上位机读取解析RS485协议的拉线位移传感器数据

基于ROS的seria接收节点,上位机读取解析RS485协议的拉线位移传感器数据,完整代码,cmakelists,c++

2023-06-28

matlab生成棋盘格程序,可根据自己需求进行修改,默认为10*7*50mm

matlab生成棋盘格程序,可根据自己需求进行修改,默认为10*7*50mm

2023-05-09

棋盘格标定板A2,10*7*50mm,外规格580*420mm

棋盘格标定板A2,10*7*50mm,外规格580*420mm

2023-05-09

A4棋盘格文件,张正友标定法标定棋盘格

用于相机内参标定的棋盘格文件,张正友棋盘格。 A4大小,pdf格式,可直接打印使用 --size 8x6 --square 0.024m

2022-06-16

ceres-solver包

ceres-solver包

2022-03-17

空空如也

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

TA关注的人

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