自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(160)
  • 收藏
  • 关注

原创 杂记8---多线激光雷达与相机外参标定

camera_type : 1 表示针孔相机(fov < 90°) 2 表示鱼眼相机(fov > 90°) [当前版本没有适配全景相机]chessboard_size : 表示标定板的物理尺寸,注意不是棋盘格轮廓尺寸,单位 米。标定数据,只需要一个棋盘格标定板。估计处理过的图片,角点提取有影响。4、采集数据时,标定板的稳定性与环境光线情况[标定板材质和稳定性对标定结果影响较大]2、选择每帧pcd的标定板中心时,需要注意shift+鼠标左键。

2024-03-18 23:15:36 1076

原创 docker容器代理上网问题解决参考

docker代理上网

2024-02-03 12:26:32 617

原创 论文阅读2---多线激光lidar内参标定原理

多线激光lidar内参标定原理

2024-01-23 18:35:44 721 1

原创 论文阅读1---OpenCalib论文阅读之factory calibration模块

该论文的标定间比较高端,一旦四轮定位后,可确定标定板与车辆姿态。以下为本人理解,仅供参考。工厂标定,可理解为车辆与传感器,一般为lidar、camera,的标定。该标定工具不依赖opencv;产线长度一般2.5米Factory Calibration Tools:四轮定位+多位姿标定板。

2024-01-09 10:32:50 1521 1

原创 炼丹学习笔记1---openPCDet训练配置参数含义介绍

背景:最近偷闲学习openPCDet,记录一下基本训练可能用到的一些配置。以下为个人学习探索,仅供参考。含义: 指定用于训练的配置文件,其中包含了模型、优化器、学习率等相关的配置信息。作用: 通过配置文件统一管理各种超参数,方便在不同的实验中灵活调整模型和训练设置。

2024-01-03 22:15:38 702

原创 C++学习笔记1----STL容器知识简要小结

优点:std::string 是用于处理字符串的容器,提供了许多字符串操作函数,包括连接、查找、截取等。适用场景:处理文本和字符串数据时非常有用,例如文件读写、文本搜索、字符串拼接等。优点:std::vector 是动态数组,支持快速随机访问,提供高效的插入和删除操作,通常在元素数量可变但需要随机访问的情况下使用。适用场景:用于需要高性能的元素存储和随机访问的情况,例如数组替代、列表、堆栈等。优点:std::deque 是双端队列,支持高效的双端插入和删除操作,适用于需要在队列的两端进行操作的情况。

2023-10-10 17:25:42 328 4

原创 ubuntu20.04挂载拓展盘保姆级流程

背景:跑模型玩时,发现机子硬盘太小了,搞个1t固态作为挂载盘操作。

2023-10-06 23:23:31 716

原创 杂记7--opencv的ar码模块学习

介绍opencv里面marker相关的接口知识

2023-02-11 14:55:12 1171 1

原创 激光slam学习笔记3--轨迹建图经验接口介绍

轨迹拼接点云地图经验介绍

2023-02-11 14:16:51 388

原创 杂记6--一些c++踩过的坑

c++使用过程中的经验知识

2023-02-11 13:50:40 1156

原创 杂记5--一些oponcv相关的坑

介绍一些使用opencv时遇到的坑

2023-02-11 13:42:04 177

原创 激光slam学习笔记2--激光点云数据结构特点可视化查看

激光点云数据结构特征判断经验分享

2023-02-11 11:45:36 1414

原创 杂记4--森云相机UVC驱动编译过程一些问题解决记录

森云相机驱动适配踩坑记录

2023-02-11 11:15:06 601

原创 杂记3--使用python编写proto清洗工具一些报错解决1

proto清洗工具,python编写踩坑经验分享

2023-02-11 10:56:19 340

原创 ROS学习笔记52--rosbag图片从compressed格式转raw格式代码实现接口介绍

ros的图片从compressed到raw接口简介

2023-02-04 21:20:19 580

原创 ROS学习笔记51--rosbag管理工具分享:时间戳过滤、话题过滤、多包过滤

环境:ubuntu20.04 、ros-noetic、python前言:这是分享一个自己写的rosbag管理工具,个人感觉实用性很强。import rosbagdef merge(): bag1 = rosbag.Bag('/home/ylh/dataset/1.bag','r') #包源1 bag2 = rosbag.Bag('/home/ylh/dataset/2.bag','r') #包源2 # bagn = rosbag.Bag('xxx/n.bag','r') #可

2022-05-21 16:03:36 1502 1

原创 激光slam学习笔记1--RTK组合惯导、激光雷达传感器一些经验知识分享

前沿:跟组合惯导和激光雷达打交道半年了,过程中查找学习了这两方面的资料,这里来个小结。如果有理解错误的,望大佬们不吝赐教。一、RTK组合惯导个人理解有两部分组成,一个提供gps信息的rtk,另外一个实时姿态信息的imu。1、rtk1)输出gps信号,可获取极高的定位精度(当然是在没有遮挡情况下)2)rtk的双天线安装在车子上时,一定要进行杆臂值标定,否则不能使用的!!!至于标定方法和标定结果的验证,可以跟供应商的技术支持确认,一般有对应的用户手册3)驱动输出的数据内容,一定弄清楚数据格式的坐标系

2022-05-21 15:39:48 5383 2

原创 python学习笔记4--一些脚本运行报错及解决方式

环境:ubuntu20.04、pyhon1、报错:TypeError: Cannot index by location index with a non-integer key缘由及解决思路:使用python行遍历csv文件时,使用的iloc[],括号不是整数导致的。2、报错:IndexError: list index out of range缘由及解决思路:可能由于分母为0导致3、报错:import: command not found解决方式:在脚本中第一行添加:#!

2022-05-21 12:04:05 4299 4

原创 python学习笔记3--python实现kdtree根据距离检索案例分享

环境:python3 、ubuntu20.04、vscode、open3d前言:介绍使用python实现的kdtree检索例子通过kdtree根据距离找点案例:import numpy as npimport pandas as pdimport open3d as o3dfrom pandas.core import framefile_path = "/home/ylh/dataset/point_data.csv" #点云文件csv(类似excel)df = pd.read_csv

2022-05-21 11:15:26 751

原创 激光slam课程学习笔记--第11课:3D激光SLAM介绍

前言:这系列笔记是学习曾书格老师的激光slam课程所得,这里分享只是个人理解,有误之处,望大佬们赐教。这节课主要介绍一些3d slam数学知识,以及典型代表loam。1. 3d激光SLAM1.1 介绍[在地图上,2d的是三个自由度的;3d的是六个自由度的;三维包含微分流形(多次的三个自由度导致的)(个人没理解)]1.2 对比1.3 3d slam的帧间匹配--点到面距离方法[回环检测,本质也是帧间匹配][这里的目标函数表示的是点到面的距离]1.4 帧间匹配算法--基于特征的方法[由

2022-04-24 08:30:40 2315

原创 激光slam课程学习笔记--第10课:基于已知位姿的构图算法(grid-based)

前言:这系列笔记是学习曾书格老师的激光slam课程所得,这里分享只是个人理解,有误之处,望大佬们赐教。这节课主要介绍基于已知位姿的构图算法(grid-based)[slam里面最难的是位姿估计][位姿估计,前面学习过的方法,帧间匹配方法,优化方法;这两个属于图优化方法,pose-graph其表示机器人的位姿]1.地图分类1.1 地图1)地图即为环境的空间模型2)环境地图是机器人进行定位和规划的前提3)地图主要分为三类:尺度地图,拓扑地图,语义地图[定位的话,可以使用特征地图或者栅格地图;规

2022-04-23 19:18:50 2748

原创 激光slam课程学习笔记--第9课:基于图优化的激光slam方法(Grid-based)

前言:这系列笔记是学习曾书格老师的激光slam课程所得,这里分享只是个人理解,有误之处,望大佬们赐教。这节课主要介绍基于图优化的激光slam方法(Grid-based)1. Graph-based SLAM[front-end 是前端处理,具体为一个构图过程(scan-match帧间匹配+loopclosure回环检测);back-end表示后端处理][图优化,这里的图可以从c++里面的图知识进行理解]1)用一个图(graph)来表示slam问题2)图中的节点来表示机器人的位姿3)两个节点之间的

2022-04-23 19:05:53 1659

原创 激光slam课程学习笔记--第8课:cartographer代码基本介绍

前言:这系列笔记是学习曾书格老师的激光slam课程所得,这里分享只是个人理解,有误之处,望大佬们赐教。这节课主要介绍cartographer源码重点关注点。1.cartographer使用的版本是16年2月份发布的版本2.主要看mapping_2d和mapping_3d里面的内容3.在mapping_2d中,重点关注源文件:global_trajectory_builder.cclocal_trajectory_builder.ccsparse_pose_graph.ccconstraint_

2022-04-23 18:50:30 572

原创 激光slam课程学习笔记--第7课:基于滤波的SLAM方法(Grid-based)

前言:这系列笔记是学习曾书格老师的激光slam课程所得,这里分享只是个人理解,有误之处,望大佬们赐教。这节课主要介绍基于滤波的slam方法,重点学习其中的滤波数学理论,而非应用在slam。[当前的实际使用的激光SLAM都不会选择滤波器类型的,因为其效果并不好.由于基于滤波方式在SLAM发展是有重要的意义的,所以也进行介绍一下.当然,滤波的知识在激光slam应用不多,但其背后的数学理论,贝叶斯估计\粒子滤波,知识在其他领域很多使用]1.贝叶斯滤波[在状态估计里面,分为两派,一个是贝叶斯派,另外一个是频率

2022-04-23 18:43:44 1409

原创 激光slam课程学习笔记--第6课:激光的前端配准算法

前言:这系列笔记是学习曾书格老师的激光slam课程所得,这里分享只是个人理解,有误之处,望大佬们赐教。这节课主要介绍激光点云的前端配准算法。1.帧间匹配算法[帧间匹配算法,不一定指的是前后帧情况,也可能是好几帧情况]1.1 ICP匹配算法已知点的求解方法求解证明:[没理解,上图左侧的底部式子为零][正定对称举矩阵:矩阵对称,并且元素都是大于0][正交矩阵,其逆矩阵和转置矩阵相等][右侧的Track拼写有误,应该写成Trace][老师说,slam更偏向于一个工程问题而不是一个理论问题

2022-04-23 18:18:57 1102

原创 激光slam课程学习笔记--第5课:传感器数据处理II:激光雷达运动畸变去除

前言:这系列笔记是学习曾书格老师的激光slam课程所得,这里分享只是个人理解,有误之处,望大佬们赐教。这节课主要介绍激光的运动畸变去除相关知识。1.概念介绍1.1激光雷达传感器介绍1.1.1 测距原理三角测距、飞行时间[比较便宜的,或者探测距离10米内的,激光雷达测距原理一般选择三角测距][远距离使用飞行时间比较合适,但是想要短距离使用且保证精度,是非常有挑战性的][个人理解,短距离如1米范围,使用飞行时间原理的雷达测距,效果非常差]1.1.2 特点1)三角测距:a、中近距离精度较高[

2022-04-23 17:52:05 3450

原创 激光slam课程学习笔记--第4课:传感器数据处理I:里程计运动模型及标定

前言:这系列笔记是学习曾书格老师的激光slam课程所得,这里分享只是个人理解,有误之处,望大佬们赐教。这节课介绍的是里程计运动模型和标定方面的知识。1、里程计模型1.1、两轮差分地盘的运动学模型1.1.1 优点结构简单[保证越障能力不错]、便宜(两个电机)、模型简单1.1.2 差分模型差分模型属于一种欠驱动模型(自由度有三个xy+角度,输入只有xy速度)运动公式推导过程:角速度推算:线速度推算:1.2 三轮全向底盘的运动学模型特点:任何方向平移、结构简单、全驱动系统[xy+

2022-04-23 17:13:02 1215

原创 激光slam课程学习笔记--第3课: 3D激光 slam

前言:这系列笔记是学习曾书格老师的激光slam课程所得,这里分享只是个人理解,有误之处,望大佬们赐教。这节课介绍的是3d 激光slam。1.3D激光SLAM的介绍1.1 3d雷达slam的输入1)IMU数据2)里程计数据3)3d激光雷达数据1.2 3d激光slam的输出1)3d点云地图2)机器人的轨迹or PoseGraph1.3 3d激光SLAM的帧间匹配方法1)Point-to-Plane ICP [点到面ICP匹配]2)NDT [常用于纯定位上,由于其计算量比较小]3)F

2022-04-23 16:47:30 886

原创 激光slam课程学习笔记--第2课:2D激光slam

前言:这系列笔记是学习曾书格老师的激光slam课程所得,这里分享只是个人理解,有误之处,望大佬们赐教。这节课介绍的是2D激光slam。1. 2d激光slam的介绍激光slam的输入:IMU数据,里程计[可以简化理解为一种描述机器人的定位姿态信息的东西]数据,激光雷达数据激光slam的输出:覆盖栅格地图,机器人的轨迹或pose graph帧间匹配方法:PI-ICP,CSM(correlation scan math)[对初值不敏感,但是只是对一定范围进行细分但不能无限细分以节省计算量,其精度受限

2022-04-23 16:34:31 2105

原创 激光slam课程学习笔记--第1课:激光slam的发展和应用

前言:这系列笔记是学习曾书格老师的激光slam课程所得,这里分享只是个人理解,有误之处,希望大佬们赐教。这节课介绍的是介绍激光slam的发展和应用。1. slam是什么1.1 slam的定义localization:在给定地图的情况下,估计机器人的位姿mapping:在给定机器人位姿的情况下,估计环境地图slam:同时估计机器人的位姿和环境地图1.2 slam解决的问题机器人在环境中的位姿导航过程中需要的环境地图2. slam的分类部分术语解析:metrical map: 尺度地图

2022-04-23 16:16:35 1549 2

原创 杂记2--ubuntu的VScode直接调试编写.cpp

背景:居家隔离了,想起以前在windows下面写好的c/c++代码,直接一个run就可以运行出结果来加以验证,在ubuntu希望获取类似体验.环境:ubuntu20.04,vscode准备:vscode,注意添加几个模块:C/C++ , C/C++ Runner , CMake步骤:1 准备一个文件夹,放.cpp文件:mkdir tmp2 编写测试用例(实际使用时,填进自己的code就行了,注意有且只有一个main)test.cpp:#include<stdio.h>

2022-03-19 12:20:32 2266

原创 杂记1--ros开发相关

环境:ubuntu20.04,ros-Noetic背景:好几月的工作笔记,一直没空小结归档。最近被家人逼着相亲成家事情(刚出校门几个月而已),有点烦躁,不如放空现实,写写blog,躲到乐土中来。下面就是工作开发中的一些唠叨记录,希望可以方便你我。如果有误,麻烦朋友们不吝赐教。1、ros的时间戳和double类型的转换 double time1=ros::Time::now().toSec(); //将时间戳转为浮点数 msg.header.stamp =ros::Time().fromSec(t

2022-02-12 20:26:21 1193

原创 ubuntu20.04安装CloudCompare方式

环境:ubuntu20.04背景:学习点云相关知识,急需一种即时可视化的工具,那么CloudCompare是一个不错的选择。其安装方式有两种,个人推荐使用snap方式。1、snap方式安装snapylh@y:~$ sudo apt-get install snapd安装cloudcompareylh@y:~$ snap install cloudcompare启动软件:ylh@y:~$ cloudcompare.CloudCompare2、flatpak方式添加软件仓库 $ s

2022-01-22 14:23:50 11046 10

原创 /var/cache/debconf/config.dat is locked by another process问题解决

环境:ubuntu 20.04背景:安装一个点云可视化工具时候出现如下报错:debconf: DbDriver "config": /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable....解决原理:把锁住的进程解锁即可.具体方式:1)找到带锁的进程:sudo fuser -v /var/cache/debconf/config.dat2)根据PID号,将

2022-01-22 13:36:19 1474

原创 python学习笔记2--shell脚本传参数到python脚本中

环境:ubuntu20.04 python3 vscode背景:想一键串联多个分析数据脚本,但是面临一个路径传入问题。奈何找了很多shell传参数教程都没有奏效。1、材料准备1.pyimport sysprint("脚本1 start") print(sys.argv[1])print(sys.argv[2])print("脚本1 end")1.sh#!/bin/shset "test" "1"python3 1.py $1 $2给1.sh权限:chmod +x 1.sh

2021-12-02 19:58:11 933 1

原创 python学习笔记1--json文件处理

背景:大批量处理json文件,认真考虑,还是选择python来搞比较方便。环境:ubuntu20.04 python3 jupyter1、json文件读取2、json文件回写3、jsong文件换行保存4、json的

2021-11-21 13:09:34 771

原创 数据结构与算法碎片积累(十)

前言:继续肝数据结构与算法课程笔记blog1、排序算法1)排序:假设含有n个记录的序列为{r1,r2,…,rn},其相应的关键字分别为{k1,k2,…,kn},需确定1,2,…,n的一种排序p1,p2,…,pn,使其相应的关键字满足,kp1<=kp2<=…<=kpn非递减(或非递增)关系,即使序列成为一个按关键字有序的序列{rp1,rp2,…,rpn},这样的操作就被称为排序。2)排序的稳定性假设ki=kj(1<=i<=n,1<=j<=n,i!=j),且在

2021-10-10 23:14:57 177

原创 数据结构与算法碎片积累(九)

前言:继续愉快数据结构与算法blog。1、散列表(哈希表)查找1)要在a[]中查找key关键字的记录:----顺序表查找:挨个儿比较来找----有序表查找:二分法查找----散列表查找:记录的存储位置=f(关键字),从而开始找补充小知识,散列表是根据关键码值(Key value)而直接进行访问的数据结构。(源自百度解析)2)散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应的一个存储位置f(key)。这里将这种对应关系f称为散列函数,又称为哈希(has

2021-10-10 22:16:46 112

原创 数据结构与算法碎片积累(八)

前言:继续愉快周末下午肝blog,搞完去跑步。1、平衡二叉树平衡二叉树,要么其是一棵空树,要么其的左、右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过11)平衡二叉排序树:标准案例。这个满足平衡二叉排序树性质,所以是一棵平衡二叉树。2)非平衡二叉树例子:这里不是平衡二叉排序树,因为10大于3,应该在右侧却在左侧;1小于9,应该在左侧却在右侧,不满足二叉排序树性质。这不属于平衡二叉树,因为不满足左右的深度差不大于1(对于9点,其右子树深度为0,左子树深度为2,深度差为2,

2021-10-10 17:11:01 143

原创 数据结构与算法碎片积累(七)

前言:这系列时间间隔了半年,是时候更完这余下近30节课程笔记啦。不然,得在硬盘里面发霉了。1.查找算法1)按照查找方式来分,可分为,静态查找和动态查找静态查找,要求数据集合稳定,不需要添加、删除元素的一种查找操作动态查找,要求数据集合,在查找过程中,需要同时添加或删除元素的一种查找操作2)对于动态查找来说,可以使用线性表结构组织数据,这样可以使用顺序查找算法,如果再对关键字进行排序,则可以使用折半查找算法或裴波拉契查找算法等来提高查找的效率3)对于动态查找来说,则可以考虑二叉树排序树的查找技术,

2021-10-10 12:41:00 246

空空如也

空空如也

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

TA关注的人

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