
SLAM
文章平均质量分 87
sunqin_csdn
看我头像,文章付费观看不是我设置的,有知道如何取消的麻烦给个教程.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
pcl有序点云分析
在工作和学习中,只要是与点云打交道,那基本离不开pcl(point cloud library),点云pcd文件是我们最常接触到的文件,它的数据组织形式,可以分为有序(HEIGHT字段不为1)和无序两种(HEIGHT字段为1),对于有序点云,我们可以通过按照行列 cloud.at(column, row) 的方式来访问(注意对于pcd中的有序点云at方式的访问,列也就是宽度在前面,和常用的image访问相反),下面用代码进行验证。pcd文件的数据头示例如下所示:pcd 数据头# .PCD v0.7 -原创 2021-08-08 19:37:43 · 3724 阅读 · 0 评论 -
论文翻译—ICP算法论文(节选1~4章)
标题:A Method for Registration of 3-D Shapes作者: J. Besl, Neil D. McKay目录:Ⅰ IntroductionⅡ Literature ReviewⅢ Mathematical PreliminariesA. Point to Parametric Entity DistanceB. Point to Implicit Entity DistanceC. Corresponding Point Set Registration原创 2021-07-18 23:53:20 · 2452 阅读 · 5 评论 -
论文翻译—3D NDT算法论文(节选6.1-6.2)
文章目录第6章 正态分布变换6.1 用于表面表达的NDT6.2 NDT 扫描配准6.2.1 2D NDT6.2.2 3D NDT第6章 正态分布变换本章详细描述了正态分布变换以及它是如何被应用到扫描配准中的。6.1 用于表面表达的NDT在第3章讨论的距离传感器都是输出的点云:来自表面的空间采样点的集合。而且,在第5章的工作中提到的许多相关的算法都与点云打交道。但是,使用点云来表达表面有一系列的限制。例如,点云没有包含如方向、平滑度或者洞(holes)等表面属性的明确信息。根据传感器的配置,点云也可能原创 2021-07-03 00:33:12 · 1543 阅读 · 1 评论 -
代码分析——基于误差状态卡尔曼滤波器(ESKF)实例分析
imu_gps_localization代码分析最近在学习ESKF相关知识,偶然发现知乎大佬 Dongsheng Yang基于《Quaterniond kinematics for the error-state Kalman filter》实现了IMU+GPS的融合定位。刚刚学完理论知识,正好学习下基于ESKF的代码实战。看完大佬写的代码,更加深入地了解了数据融合的机制,笔记如下,一图胜千言。...原创 2020-10-08 19:24:37 · 5401 阅读 · 1 评论 -
文章翻译—基于误差状态卡尔曼滤波器的四元数运动学—第7章
文章目录基于误差状态卡尔曼滤波器的四元数运动学7 使用全局角度误差的ESKF7.1 持续时间的系统运动学7.1.1 真实和标称状态运动学7.1.2 误差状态运动学7.2 离散时间的系统运动学7.2.1 标称状态7.2.2 误差状态7.2.3 误差状态雅可比和扰动矩阵7.3 与互补的传感数据融合7.3.1 误差状态观测7.3.2 将观测到的误差注入标称状态7.3.3 ESKF重置基于误差状态卡尔曼滤波器的四元数运动学7 使用全局角度误差的ESKF7.1 持续时间的系统运动学7.1.1 真实和标称状态运原创 2020-10-06 00:22:58 · 2020 阅读 · 5 评论 -
文章翻译—基于误差状态卡尔曼滤波器的四元数运动学—第6章
文章目录基于误差状态卡尔曼滤波器的四元数运动学6. 用将IMU与互补的感知数据融合6.1 通过滤波校准的误差状态观测6.1.1 用于滤波器校正的雅可比计算6.2 将观察到的误差注入标称状态6.3 ESKF 重置6.3.1 关于定位误差的复位操作的雅可比基于误差状态卡尔曼滤波器的四元数运动学6. 用将IMU与互补的感知数据融合在除了IMU之外的其他信息(例如GPS或视觉)到达时,我们将进行ESKF校正。在设计良好的系统中,这应使IMU偏差可观察到,并允许ESKF正确估计它们。有无数种可能性,最受欢迎的是原创 2020-10-06 00:22:10 · 2243 阅读 · 1 评论 -
文章翻译—基于误差状态卡尔曼滤波器的四元数运动学—第5章
基于误差状态卡尔曼滤波器的四元数运动学5. 基于IMU驱动系统的误差状态运动学5.1 运动我们希望使用汉密尔顿(Hamilton)四元数表示空间或姿态的方向,编写将加速度计和陀螺仪读数与偏置和噪声相结合的惯性系统运动学的误差方程。加速度计和陀螺仪的读数通常来自惯性测量单元(IMU)。整合IMU读数可以得到随着时间漂移的航位推算定位系统。避免漂移就是将这些信息与GPS或视觉等绝对位置读数融合在一起。误差状态卡尔曼滤波(ESKF)是我们基于这个目的可能使用的其中的一个工具。在卡尔曼滤波范例中,这些是E原创 2020-10-06 00:21:24 · 3347 阅读 · 8 评论 -
文章翻译—基于误差状态卡尔曼滤波器的四元数运动学—第4章
文章目录基于误差状态卡尔曼滤波器的四元数运动学4. 扰动,微分和积分4.1 SO(3)SO(3)中的加法和减法运算符4.2 四个可能的微分定义4.2.1 从向量空间到向量空间的函数4.2.2 从SO(3)到SO(3)的空间4.2.3 从向量空间到SO(3)的函数4.2.4 从SO(3)到向量空间的函数4.3 有用的,且非常有用的,旋转的雅可比4.3.1 关于向量的雅可比4.3.2 关于四元数的雅可比4.3.3 SO(3)的右雅可比4.3.4 关于旋转向量的雅可比4.4 扰动,不确定性,噪声4.4.1 局部扰原创 2020-10-06 00:20:52 · 2339 阅读 · 8 评论 -
文章翻译—基于误差状态卡尔曼滤波器的四元数运动学—第3章
文章目录3. 四元数约定,我的选择3.1 四元数flavors[风味?]3.1.1 四元数分量的顺序3.1.2 四元数代数的规范3.1.3 旋转操作的函数3.1.4 旋转操作的方向3. 四元数约定,我的选择3.1 四元数flavors[风味?]有几种确定四元数的方法。它们基本上与四种二元选择有关:元素的顺序——实部在前还是在后:q=[qwqv] vs. q=[qvqw] .(140)\math原创 2020-10-06 00:19:54 · 1778 阅读 · 4 评论 -
文章翻译—基于误差状态卡尔曼滤波器的四元数运动学—第2章
基于误差状态卡尔曼滤波(ESKF)的四元数运动学文章作者:Joan Sol`a发表时间:October 12, 2017(注:Quaternion kinematics for the error-state Kalman filter 貌似有好几个版本,我这里选择翻译的是2017年10月的版本)原文:Quaternion kinematics for the error-state Kalman filter目录:1 四元数的定义和性质1.1 四元数定义1.1.1 四元数的替代表示原创 2020-10-06 00:18:53 · 2867 阅读 · 3 评论 -
文章翻译—基于误差状态卡尔曼滤波器的四元数运动学—第1章
基于误差状态卡尔曼滤波(ESKF)的四元数运动学作者:Joan Sol`a时间:October 12, 2017(注:Quaternion kinematics for the error-state Kalman filter 貌似有好几个版本,我这里选择翻译的是2017年10月的版本)原文:Quaternion kinematics for the error-state Kalman filter目录:1 四元数的定义和性质1.1 四元数定义1.1.1 四元数的替代表示1.2原创 2020-10-06 00:17:35 · 5422 阅读 · 6 评论 -
文章翻译—基于误差状态卡尔曼滤波器的四元数运动学—前言
基于误差状态卡尔曼滤波(ESKF)的四元数运动学文章作者:Joan Sol`a发表时间:October 12, 2017(注:Quaternion kinematics for the error-state Kalman filter 貌似有好几个版本,我这里选择翻译的是2017年10月的版本)原文:Quaternion kinematics for the error-state Kalman filter目录:1 四元数的定义和性质1.1 四元数定义1.1.1 四元数的替代表示原创 2020-10-06 00:16:12 · 3361 阅读 · 1 评论 -
坐标变换学习笔记—代码篇Matlab
坐标变换学习笔记—代码篇Eigen四元数 →\to→ 旋转矩阵四元数 →\to→ 欧拉角旋转矩阵 →\to→ 四元数旋转矩阵 →\to→ 欧拉角在matlab中,下面两个目录下均有关于四元数,旋转矩阵,欧拉角间变换的函数文件(quat2dcm.m, dcm2quat.m, angle2dcm.m, dcm2angle.m等)。C:\Program Files\Polyspace\R2020a\toolbox\aero\aero\C:\Program Files\Polyspace\R2020a\mcr原创 2020-08-23 23:57:58 · 6085 阅读 · 3 评论 -
坐标变换学习笔记—代码篇Eigen
坐标变换学习笔记—代码篇Eigen旋转向量旋转向量与其它旋转量的转换旋转向量一般常用函数四元数欧拉角旋转矩阵旋转向量旋转向量与其它旋转量的转换Eigen/src/Geometry/AngleAxis.h四元数 →\to→ 旋转向量:Eigen中,通过重载=操作符,实现旋转矩阵,四元数对转旋转向量的直接赋值,但是从下面的函数实现看,它的旋转角θ\thetaθ是通过atan2atan2atan2的方式求出来的,与式(3.1)(3.1)(3.1)稍微有点差别。Eigen/src/Geometry/A原创 2020-08-23 01:43:55 · 2187 阅读 · 0 评论 -
坐标变换学习笔记—代码篇ROS
坐标变换代码笔记坐标变换-ROS坐标变换-Eigen坐标变换-Matlabtf::Quaternion q;tf::quaternionMsgToTF(imu_msg->orientation, q);tf::Matrix3x3(q).getRPY(roll, pitch, yaw);tf::createQuaternionMsgFromRollPitchYaw(double r, double p, double y)tf::Quaternion q = tf::createIden原创 2020-08-20 00:10:41 · 9116 阅读 · 0 评论 -
坐标变换学习笔记—理论篇
旋转矩阵(R\mathbf{R}R) <==> 旋转向量(旋转角θ\thetaθ, 旋转轴n\mathbf{n}n)R=cos(θ)I+(1−cos(θ))nnT+sin(θ)n∧\mathbf{R} = cos(\theta) \mathbf{I} + (1-cos(\theta))\mathbf{n}\mathbf{n}^T + sin(\theta) \mathbf{n}^{\wedge} R=cos(θ)I+(1−cos(θ))nnT+sin(θ)n∧tr(R)=cos(θ)tr(I原创 2020-08-16 22:17:44 · 1520 阅读 · 0 评论 -
hdl_graph_slam 源码阅读笔记
src/hdl_graph_slam/registration.cpp :初始化匹配对象,提供可供选择的点云匹配方法(ICP,GICP,NDT)。apps/prefiltering_nodelet.cpp :接收名为 “velodyne_points” 的点云消息,降采样之后再以 “filtered_points” 的消息发布出去。降采样方法包括: pcl::VoxelGrid,pcl::ApproximateVoxelGrid,NONE(不降采样)三种方式可选。apps/scan_matchin原创 2020-08-12 16:54:52 · 320 阅读 · 0 评论 -
关于ROS的OccupancyGrid数据对应的地图颜色
最近在搞基于ROS的2D占用栅格地图,这类地图可用于机器人定位,它在机器人导航和避障方面很常用。它的消息类型是nav_msgs/OccupancyGrid,通过命令:rosmsg show nav_msgs/OccupancyGrid 可以看到nav_msgs/OccupancyGrid消息包含如下信息:std_msgs/Header header uint32 seq time stamp string frame_idnav_msgs/MapMetaData info time ma原创 2020-06-11 00:31:31 · 5061 阅读 · 1 评论 -
apollo自动驾驶平台配置笔记
apollo自动驾驶平台配置欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使原创 2020-06-07 14:54:12 · 4168 阅读 · 4 评论 -
利用Bresenham算法画圆和直线
利用Bresenham算法,从零开始实现在矩阵中画圆和直线,效果如下:基于matlab的画图代码如下:close all; clear all; clc% create image reactangle:img = ones(100, 200);figure('Name', 'original image')imshow(img)% draw line:help bresen...原创 2020-04-25 22:07:55 · 2998 阅读 · 0 评论 -
kitti点云地图拼接
文章目录1. 关于kitti数据集以及坐标系2. 关于bin格式点云的存储方式3. 点云拼接前言:这段时间在学习坐标系变换相关的知识,同时尝试了利用kitti公开点云数据集以及对应的真实位姿,拼接出全局地图,如下图所示,我采用了kitti点云数据集的00序列来测试拼接地图。下面大致记录下点云拼接过程以及基于C++和Matlab的拼接代码,备忘。1. 关于kitti数据集以及坐标系kitti数...原创 2020-04-13 00:25:47 · 4386 阅读 · 12 评论 -
相机畸变校准
相机畸变模型前言,关于相机的畸变模型及其推导,很多文章都已经写得很详细了,我这里只总结结论,把重点放在理解以及使用上。这篇文章总结了径向切向畸变,鱼眼畸变,FOV畸变;同时,还根据径向切向畸变的模型,以Euroc数据集为例,提供了畸变矫正的代码示例。1. 针孔模型(pinhole model)针孔相机模型(即直线投影模型,是相机在理想情况下的投影模型)是消费类相机中最常见的相机模型。在此模型...原创 2020-03-15 22:53:10 · 3944 阅读 · 0 评论 -
将轨迹对应到google earth(谷歌地球)上
下面为将机器人的轨迹对应到谷歌地球上的demo,只需要将 <coordinates> 与 </coordinates>之间的经纬度坐标换成自己的经纬度坐标数据,然后将下面的内容保存的到文件中,将扩展名改为.kml,再打开google earth,将该文件拖进去,即可在上面显示对应的坐标轨迹。<?xml version='1.0' encoding='UTF-8'...原创 2019-05-25 16:22:25 · 3460 阅读 · 4 评论 -
利用深度图建立三维点云地图笔记
前言:这几天在独立地研究对RGBD图像序列,建立其三维点云地图。由于我并没有借鉴像RTAB-MAP等SLAM方法,所以本文仅仅能够帮助学习和理解是三维建图的过程,对于实际的三维建图应用,意义并不大。本文的方法非常的简单粗暴,思路是首先求取每一帧深度图像的位姿,其次,将每一帧深度图转换为点云,最后将点云转换到世界坐标系下。对于求取深度图的位姿,可以使用ORB-SLAM2算法得到;对于深度图转点云,...原创 2019-05-25 16:26:25 · 9581 阅读 · 4 评论