- 博客(40)
- 资源 (1)
- 收藏
- 关注
原创 Shell的使用
5)/etc/environment:此文件定义了系统的环境变量,在默认情况下,只有PATH变量,即PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games".当执行touch命令后,文件的创建时间或修改时间会更新为当前系统的时间,若文件不存在,则执行后会自动添加一个空文件。例如,输入ls -a -l命令,那是多么费劲的一件事情,Bash允许用户合并选项,即命令ls -a -l和命令ls -al是等同的。
2023-07-11 22:14:50
1020
原创 PCL::点云曲面重建
前者得到的重建曲面完全通过原始数据点,而后者则是用分片线性曲面或其他形式的曲面来逼近原始数据点,从而使得产生的重建曲面是原始点集的一个逼近。而根据重建曲面的表现形式不同又可以将它分为以下五种:参数曲面重建、隐式曲面重建、细分曲面重建和分片线性曲面重建 移动立方体算法的基本思想是找出所有与等值面相交的体素,再分别找出每个体素与等值面相交的交面,这些交面连载一起就是所求的等值面。2)对初始化后的B样条曲面进行拟合和迭代优化;
2023-06-19 11:08:49
765
原创 PCL::点云配准
为了得到被测物体的完整数据模型,需要确定一个合适的坐标变换,将从各个视角得到的点集合并到一个统一的坐标系下,形成一个完整的数据点云,然后就可以方便地进行。正态分布 变换算法是一个配准算法,它应用于三维点的统计模型,使用标准最优化技术来确定两个点云之间的最优的匹配,因为其在配准过程中不利用对应点的特征计算和匹配,所以时间比其他方法快。3)结合特征描述子在两个数据集中的坐标的位置,以两者之间特征和位置的相似度为基础,来估计它们的对应关系,初步估计对应点对。5)利用剩余的正确对应关系来估算刚性变换,完成配准。
2023-06-19 10:37:26
1500
1
原创 slam:前端光流
特征点信息:像素坐标(特征点提取算法)、去畸变后归一化坐标(特征点去畸变算法)、特征点id(光流追踪算法)、特征点速度。相机坐标系下的三维点转到像素坐标系下的u,v。实现opencv里面有。在去畸变后在后端约束才是准确的。没有开辟空间空间复杂度就为0。光流比描述子匹配快很多。
2023-06-10 22:21:15
81
原创 slam::优化
其中j(xk)是F(x)关于x的一阶导数,也称为梯度,其形式为雅可比(jacobin)矩阵,H(xk)是二阶导数,其形式为海塞(Hessian)矩阵,他们都在xk处取值,具体计算可以参考微积分。也就是说,在使用高斯牛顿法的时候,可能会出现JJT为奇异矩阵的情况,此时增量的稳定性变差,导致无法收敛。直观上看,由于噪声的存在,我们把估计的轨迹与地图带入SLAM的运动,观测方程中,他们并不会完美成立,因此需要对状态估计值进行微调,使得误差下降,而如何使这个误差下降到最小,就是一个非线性优化过程考虑的问题。
2023-06-09 15:23:06
337
原创 slam::ros
分布式进程:它以可执行进程的最小单位(节点,Node)的形式进行编程,每个进程独立运行,并有机地收发数据(通过rosmaster来管理所有的node)消息:节点之间通过消息message来发送和接收数据,消息的类型可以自己定义,也可以使用ros定义号的消息类型。话题(topic):最常见的消息通信方式,发布者负责法,订阅者负责收,通过主节点将订阅者节点直接连接到发布者节点。配套的开发套件:非常方便的可视化rviz,rosbag的录包播包功能。节点:一个功能包至少有一个节点,一个节点可以理解为一个进程。
2023-06-02 15:08:32
68
原创 pcl::3D点云特征描述与提取
接下来进行迭代计算,每一次迭代,主特征向量即X轴按照顺序绕其他两个轴(YZ轴)旋转,实现当中具体是外循环绕Y轴0到90度,内循环绕Z轴0到360度,每次添加一定的角度(用step_变量控制),最终的X轴正方向遍历了整个Z轴负方向的半球离散方向,我们将这个旋转主向量X轴作为当前轴。在原始表示形式下,点的定义是用笛卡尔坐标系x,y,z相对于一个给定的原点来简单表示的三维映射系统的概念,假设坐标系的原点不随着时间而改变,这里有两个点p1,p2,分别在时间t1和t2捕获,有相同的坐标。
2023-06-01 16:38:40
1163
原创 slam::滤波
假设测量数据为z_k,测量噪声为delta_k,那么机器人的测量可以用一个观测方程来表达,它表达在k时刻所在的位置观测到路标点产生测量数据。由于状态不是直接得到的,而且方程还受到噪声的影响,因此状态其实是符合某种概率分布的随机变量,而状态估计实际上估计当前的状态分布。1.控制数据是机器人记录自身运动的传感器获取的数据,比如IMU中的陀螺仪可以测量角速度、加速度计可以测量运动的加速度。我们假设x_k位机器人的状态,在SLAM的整个过程中,我们能获取到两种数据:控制数据和测量数据。
2023-05-31 16:04:45
137
原创 PCL::关键点
Harris算子是常见的特征检测算子,既可以提取角点也可以提取边缘点。与2D Harris角点检测原理不同,3D Harris角点检测利用的是点云法向量的信息。关键点也称为兴趣点,它是2D图像、3D点云或曲面模型上,可以通过定义检测标准来获取的具有稳定性、区别性的点集。关键点探测的重要一步是减少特征提取时的搜索空间,把重点放在重要的结构上。
2023-05-26 15:30:01
65
原创 nano镜像连接不了wifi的解决方案
打开sudo gedit /etc/NetworkManager/NetworkManager.conf。xrandr --fb 1024x768 linux远程修改分辨率吧。
2023-05-21 20:57:30
471
原创 VINS-Momo报错笔记
find ./ -name "CMakeLists.txt" | xargs sed -i “s/OpenCV REQUIRED/OpenCV 3.4.5 REQUIRED/g ”发现所有的CMakeLists.txt 通过管道把其中的OpenCV REQUIRED 换成OpenCV 3.4.5 REQUIRED。之后可以使用git status进行修改的查看,git diff可以看到代码中已经被强行指定上3.4.5的版本。原因分析:可能是电脑cpu比较差劲,所以多线程干不动。
2023-05-19 19:38:59
314
原创 PCL::点云滤波
双边滤波算法:通过取临近采样点的加权平均来修正当前采样点的位置,从而达到滤波效果。同时也会有选择地剔除部分与当前采样点“差异”太大的相邻采样点,从而达到保持原特征的目的。滤波目的:处理后的数据量减少,但是其所含有的形状特征与空间结构信息与原始点云差不多。(3)大量数据需要进行下采样(Downsample)(2)因为遮挡等问题造成离群点需要去除。(2)通过常用的滤波算法修改点的部分属性。(1)按具体给定的规则限制过滤去除点。(1)点云数据密度不规则需要平滑。(3)对数据进行下采样。(4)噪声数据需要去除。
2023-05-19 14:39:32
267
原创 PCL可视化
可视化(Visualization)是利用计算机图形学和图像处理技术、将数据转换为图形或者图像在屏幕上显示出来,并进行交互处理的理论、方法和技术。它涉及计算机图形学、图像处理、计算机视觉、计算机复制设计等多个领域、成为研究数据表示、数据处理、决策分析等一系列问题的综合技术。查看复杂的点云经常会让用户没有方向感,为了让用户保持正确的坐标判断,需要显示坐标系统方向,可以通过使用X,Y,Z圆柱体代表坐标轴的显示方式来解决,圆柱体的大小通过scale参数控制。
2023-05-18 21:51:45
339
原创 kd tree和八叉树
用设置分辨率进行初始化,该八叉树用它的叶节点存放点索引向量,该分辨率参数描述最低一级八叉树的最小体素的尺寸,因此八叉树的深度是分辨率和点云空间维度的函数。体素近邻搜索把查询点所在的体素中其他点的索引作为查询结果返回,结果以点索引的向量的形式保存,因此搜索点和搜索结果之间的距离取决于八叉树的分辨率参数。点云由庞大的数据集组成,这些数据集通过颜色、距离、法线等附加信息来描述空间的三维点。八叉树是一种用于管理稀疏3D数据的树状数据结构,每个内部节点都正好有八个子节点。
2023-05-16 17:18:26
170
原创 pcl输入输出管理
RTAB-Map利用Tango提供的点云数据和位姿数据,同时结合图像特征实现SLAM,并对重建的地图数据进行实时可视化。OpenNI提供了一组基于传感器设备实现的API和另外一组由中间件组件实现的API,打破了传感器和中间件之间的依赖关系。在摄像头的平移和旋转两种运动中,平移运动能够更有效地对特征点进行重建,因为远的特征点在图像坐标中移动慢,而近的移动快。X3D是符合ISO标准的基于XML的文件格式,用于表示3D计算机图形数据。特征描述子的n维直方图-----对于3D识别和计算机视觉应用十分重要。
2023-05-10 21:03:07
120
原创 pcl基础c++笔记
PointXYZI是一个简单的XYZ坐标加intensity的point类型,理想情况下,这四个变量将新建单独一个结构体,并且满足存储对齐,然而,由于point的大部分操作会把data[4]元素设置成0或1(用于变换),不能让intensity与xyz在同一个结构体中,如果这样的话其内容将会被覆盖。点云是复杂的n维结构,它应该能表示不同类型的信息,然而用户应该知道并理解需要传送什么样的信息,从而使代码更易于调试、优化等。Normal结构体表示给定点所在样本曲面上的法线方向,以及对应曲率的测量值。
2023-05-09 18:46:08
167
原创 [3/13/2023, 9:25:58 PM] 无法使用 compilerPath“F:\codeConfiguration\minGW\bin\g++.exe”解析配置。 请改用“cl.exe”。
vscode使用教程
2023-03-13 21:47:18
7330
原创 PYTHON了解
Self代表类的实类,而非类1.类的方法与普通的函数只有一个特别的区别---它们必须有一个额外的第一个参数名称,按照惯例它的名称是self。2.所谓的self,可以理解为自己可以把self当作C++中类里面的this指针一样理解,就是对象自身的意思3.某个对象调用其方法时,python解释器会把这个对象作为第一个参数传递给self,所以开发者只需要传递后面的参数即可Python中提供__init__()方法,语法格式:def __init__(self): pass在创建对象的时候,直接设置..
2022-05-23 19:39:38
114
原创 arm基本了解(笔记)
创建项目:首先建一个文件夹,然后建立.s文件File-new-名字-samsung-s3c2410A-否(自己写汇编程序)-target-source ..-add file .. -.s文件(查看-文件扩展名)-写汇编代码交叉编译工具链 project-manage-con ..-folders-勾选GCC(Keil有自己的编译工具,自带可用)-设置GNN- TOOL-Prefix和GUN Tool Folder导入linker脚本 Project – Options for target –
2022-05-12 20:20:27
433
原创 2021-05-18
安装anaconda+tensorflow心路历程在安装过程中遇到很多坑,一开始自己从官网下载anaconda、cuda相关的软件等等,下载速度极其慢,下载后直接在cmd中pip install tensorflow 或者在anaconda中创建相关一个文件夹之类的,然后继续pip install tensorflow==3.7,最后出的问题那是五花八门的,有卡在anaconda Prompt上的,...
2021-05-18 18:52:11
67
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人