自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shaozhenghan的博客

GitHub: https://github.com/shaozhenghan

  • 博客(70)
  • 资源 (5)
  • 收藏
  • 关注

原创 阅读笔记《CKF滤波算法及其在航天器自主导航中的应用》

《CKF滤波算法及其在航天器自主导航中的应用》是一篇非常好的论文,详细介绍推到了容积卡尔曼滤波(CKF)的原理及其与UKF的对比。1. 基本滤波问题其中公式3.1.5 由公式3.1.4根据 3变量的贝叶斯规则 得来:P(x | y, z) = P(y | x, z) * P(x | z) / P (y | z)公式3.17和公式3.18采用了条件独立。公式3.1....

2019-03-02 14:24:19 2663 1

原创 读论文:Recognizing Objects in Range Data Using Regional Point Descriptors (3D shape context 形状描述子)

Recognizing Objects in Range Data UsingRegional Point DescriptorsAndrea Frome 1 , Daniel Huber 2 Ravi Kolluri 1 , Thomas Bülow 1, and Jitendra Malik 11:University of California Berkeley, Berkeley C...

2018-08-09 14:24:24 3791

原创 C++11 标准特性:指向数组首元素和尾后元素的指针(附归并排序代码)

数组是以指针形式传递给函数的,所以函数一开始并不知道数组的确切尺寸,所以应该提供一些额外的信息。C++中常用方法有两种:1. 显示地传递一个表示数组大小的形参,这也是C语言和C++11标准之前常用的; 2. 在C++11标准中,可以传递指向数组首元素和尾后元素的指针,下面的代码我用了这种方法。这类似于容器类型的迭代器,但因为数组不是类类型,所以这两个函数不是成员函数,使用方法为:int * b...

2018-08-06 01:41:46 1784

原创 3D激光点云物体分类(Object Classification)常用特征梳理与总结

物体分类常用机器学习的方法,这里有句话说的透彻:数据与特征决定了机器学习的上限,而后面的模型/算法/参数只是来逼近这个上限。所以说特征的选择至关重要。这里对基于激光点云的物体分类常见特征做一下归纳整理。方便进一步学习,以及后续论文的写作。一、对点云特征的要求理想情况下相同或相似表面上的点的特征值将非常相似(相对特定度量准则〉,而不同表面上的点的特征描述子将有明显差异 。 下面几个条件,通过...

2018-08-01 20:43:10 15550 2

原创 主成份分析(PCA)基本原理/步骤及其C++ 实现与优化(结合Eigen矩阵库)

主成份分析是常用的降维方法,其他降维方法还有线性判别分析LDA,二者的区别见:https://www.cnblogs.com/pinard/p/6244265.html   简要说就是:1.PCA将原始数据投影到方差最大的方向,LDA将数据投影到不同样本的中心点距离最大的方向。2. PCA是无监督降维,LDA是有监督降维。3. 若分类主要依赖均值而非方差,则LDA效果好,反之PCA效果...

2018-07-29 20:37:29 2285 3

原创 开源框架PointNet 代码详解——/pointnet/sem_seg/model.py

本文介绍用于点云语义分割(Semantic Segmentation in Scenes)的模型文件 /pointnet/sem_seg/model.py。原论文:PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation (Charles R. Qi,  Hao Su,  Kaichun Mo, L...

2018-07-18 16:18:16 7163 7

转载 (转)Apollo 2.0 框架及源码分析(三) | 感知模块 | Radar & Fusion

https://zhuanlan.zhihu.com/p/33852112文章提到了几个点:一、雷达radar部分:Apollo 2.0 的坐标体系是以Lidar 为基准的。Apollo 可能认为 Velodyne 的位置是最准确的,因此 Camera 的位置标定参考 Velodyne, Radar 的标定参考 Camera。阿波罗的感知几乎都依赖高精地图预先做ROI处理,以...

2019-06-09 12:30:30 2239

转载 (转)相机参数标定(camera calibration)及标定结果如何使用

https://blog.csdn.net/aoulun/article/details/78768570

2019-06-06 14:32:50 1318

原创 ROS 中 catkin_make到catkin build 的迁移

1. 安装 catkincatkin_make 每次编译都要编译工作空间里面所有的package,比较费时间。如果想指定编译某个package,则需要用 $ catkin build [package name] 命令。但我在终端里面输入 catkin build,会出现 “catkin:command not found” 这样的错误,说明catkin和catkin_make 是不同的工...

2019-05-19 11:01:37 4220

原创 有关ROS中的TF坐标变换工具包的使用体会

基本上,在使用ROS遇到多个坐标系的时候,都不需要手工计算坐标变换关系,比如各种正弦余弦,四元数,变换矩阵等。只要坐标系之间相对位姿(pose)清楚,就都可以用TF发布坐标变换或坐标系的方法完成。这样甚至连Eigen库都用不着。怎样判断各个坐标系之间的相对位姿都清楚呢?只要能徒手画出TF树就好,就像 使用 $ rosrun tf view_frames 命令生成的PDF里面展示的那样,所有坐标...

2019-05-17 20:30:04 673

原创 ROS中用rosbag记录的数据仿真时发布TF在RVIZ中遇到“Message removed because it is too old”的问题解决

用rosbag的里程计和激光数据mapping,想在RVIZ中不仅显示occupancy grid map,也显示激光数据,为此需要自己编写TF的broadcaster来发布scan到odom的坐标变换,代码如下其中scan的坐标系名字(frame_id)叫“laser”,这是因为rosbag中scan的数据里面header.frame_id 就定义为了“laser”#include &...

2019-05-17 16:26:33 6710 4

原创 关于 坐标变换 的总结

2019-05-17 11:00:34 384

转载 (转)ROS机器人相关坐标系的理解

https://www.jianshu.com/p/bb1f579e37ca

2019-05-01 13:13:19 1058

转载 (转)ros::spin() 和 ros::spinOnce() 区别及详解

https://www.cnblogs.com/liu-fa/p/5925381.htmlhttps://www.cnblogs.com/agvcfy/p/9314682.html

2019-04-12 14:33:38 256

转载 (转)局部占据栅格地图到全局栅格地图的融合

一直不大明白局部和全局地图的转换,这篇文章讲的不错https://blog.csdn.net/zhubaohua_bupt/article/details/77093334

2019-03-25 14:37:19 2827

原创 读《针对复杂环境的模块化栅格地图构建算法》一文的总结与思考

摘 要:针对煤矿灾害救灾与信息探测机器人的自主导航问题,提出了一种用模块化的局部栅格地图表示复杂三维环境的地图构建算法。该算法使用TOF 相机对三维环境信息进行获取,形成三维点云坐标矩阵。通过对坐标阵中每个点进行计算,判断坐标点在局部栅格地图中的位置,创建新的局部栅格地图,并对栅格单元占据概率进行实时更新,创建完整的全局环境栅格地图。根据栅格单元中坐标点的密度,对障碍物进行类型划分,确定...

2019-03-24 17:45:21 817 1

原创 基于三维激光雷达的二维占据栅格地图构建-简介

与二维激光雷达只能得到一定高度的平面环境信息相比,三维激光雷达可以得到环境的三维信息。二维激光雷达一般不会得到地面点,即返回来的点都是障碍物的点,可以直接当做障碍物处理。但三维激光雷达的点中通常包含大量的地面点,不可以直接把返回点的区域当做障碍物。也正因为地面点的原因,三维Lidar的占据栅格地图不再需要Bresenham算法(https://zhuanlan.zhihu.com/p/2173...

2019-03-19 10:21:02 5439

转载 Git 与 GitFlow 教程

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000这是廖雪峰的关于git的操作教程,讲的超级好的https://www.jianshu.com/p/9a76e9aa9534这是基于 git flow 的开发流程https://www.cnblogs.com...

2019-03-19 08:44:20 203

原创 激光雷达数据从极坐标到笛卡尔坐标(结合内、外参)

以Velodyne HDL 64 为例

2019-03-19 08:41:23 3582 3

原创 对基于卡尔曼滤波的跟踪算法的一些理解(二)

KF跟踪时常见的运动模型有匀速运动模型(CV)和匀加速运动模型(CA)常用传感器是Lidar和Radar其中,Lidar只能测距不能测速,而radar可以测速。因此,在使用Lidar进行跟踪时,速度可以初始化为0,在预测阶段正常计算,在测量更新阶段使用测量矩阵H 将状态向量中的速度舍弃掉。但这并不意味着速度就不能更新了,因为计算得到的卡尔曼增益K可以根据预测测量值和实际测量值的差对速度...

2019-03-03 16:15:48 1241

原创 目标跟踪中的坐标变换问题以及四元数

在自动驾驶的目标跟踪问题中,自车的坐标系随着自车运动,包括yaw angle。因此,在跟踪时,需要这样做:车身偏航角的变化率是可以得到的yaw_rate,在每次触发跟踪算法时根据两帧时间戳的差值对yaw_rate做积分,就有这个时间段内产生的偏航角变化,把这个值算到卡尔曼的估计中,再和测量值做加权。也就是说,卡尔曼的预测过程=基于目标运动模型+自车坐标系变化引起的坐标变换(旋转).可以这样理解...

2019-03-03 15:26:01 1946

转载 (转)《开发者说 | 关于激光雷达感知模块的分析》

原创:Apollo社区开发者Apollo开发者社区2018-11-14本文档结合代码详细地解释感知模块中障碍物感知的流程与功能,也可以官方参考文档。(https://github.com/ApolloAuto/apollo/blob/master/docs/specs/3d_obstacle_perception_cn.md)硬件简介...

2019-03-03 14:38:07 918

原创 阅读笔记 《深度|详解自动驾驶核心部件激光雷达,它凭什么卖70万美元?》

原创:黄武陵新智元激光雷达描绘周围环境几个主要参数,包括线数、点密度、水平垂直视角、检测距离、扫描频率、精度等。除了位置和距离信息,激光雷达还提供返回所扫描物体的密度(错误!应该是反射强度)信息,后续算法据此可以判断扫描物体的反射率再进行下步处理。通过检测目标物体的空间方位和距离,通过点云来描述3D环境模型,提供目标的激光反射强度信息,提供被检测目标的详细形状描述,不仅在光照条件好的...

2019-03-03 14:09:17 1703

转载 (转)干货|一文读懂车载毫米波雷达

https://www.sohu.com/a/168237894_504589

2019-03-02 18:52:07 4703

原创 阅读笔记《量产必备的毫米波雷达》

原文来自知乎:https://zhuanlan.zhihu.com/p/34675392红色是我的笔记前言在上一次分享中,我对无人驾驶汽车上的激光雷达的原理、数据及功能做了介绍。激光雷达的普及所遇到的最大挑战是:成本过高。单独一个雷达的价格可能就超过了普通小汽车的价格,因此现阶段还没有大规模量产的可能性。为了推进自动驾驶技术的发展,同时要解决摄像机测距、...

2019-03-02 18:38:49 7320 3

原创 对基于卡尔曼滤波的跟踪算法的一些理解(一)

读《多假设航迹合成算法》这篇论文的一些总结和个人理解卡尔曼滤波(KF)用在跟踪上,从目标的动力学方程(系统方程)和观测方程为前提,即要求系统模型已知(包括模型噪声和观测噪声的统计特性)单radar的目标跟踪主要包括:航迹起始、数据关联、状态估计、航迹终止多传感器则需要航迹合成,即多个传感器的航迹属于同一targetKF跟踪的主要问题是,运动模型选择、噪声协方差的匹配所谓的...

2019-03-02 16:01:50 5026

原创 概率与贝叶斯基础(持续更新)

知乎上的概率机器人知识总结,总体写的深入浅出1.https://zhuanlan.zhihu.com/p/57307528补充3随机变量的贝叶斯规则的证明,这个用的真的非常多。这也是《概率机器人》第2章13页公式2.162.状态转移概率,测量概率,条件独立假设重要性https://zhuanlan.zhihu.com/p/57391230补充概念:马尔科夫假设:...

2019-03-02 15:25:49 294

原创 读论文 3D Point Cloud Classification using 3D Modified Fisher Vector Representation for CNN

3D Point Cloud Classification and Segmentation using 3D Modified Fisher Vector Representation for Convolutional Neural Networks 模型结构:可见模型主要分为两部分,一部分是将输入点云变为 Fisher Vector 表达,另一部分是进行CNN处理其中 I...

2018-08-31 19:30:08 1092

原创 集成学习方法之 Boosted Tree 原理

之前在点云分类中用了SVM和Random Forest , 发现RF 的效果非常好,比SVM好许多,因此想再试一下其它基于树的集成学习方法,比如Boosted Tree 和 Xgboost,Xgboost 基于前者是基于前者实现的,优点是相对前者可以并行化。这里先看Boosted Tree。参考文献:https://xgboost.readthedocs.io/en/latest/tuto...

2018-08-29 16:40:48 2217

原创 变量相似度的度量

变量相似度的度量有许多方法,比如卡方检验,线性相关系数,F检验,互信息等线性相关系数只能判别[线性]相关性,线性相关性低不代表没有别的相关性。卡方检验:卡方越大说明两变量越相关,使用的时候需要设置零假设F检验:检验两个正态随机变量的总体方差是否相等。互信息:用到了信息熵,估计离散变量需要用到k近邻。k近邻的选取 见论文: Mutual Information between Dis...

2018-08-16 23:10:34 1707

原创 数据结构(二):线性结构之线性表

数据结构中的逻辑结构分为线性结构和非线性结构,线性结构是n个数据元素的有序(次序)集合,它有下列几个特征:1.集合中必存在唯一的一个"第一个元素"; 2.集合中必存在唯一的一个"最后的元素"; 3.除最后元素之外,其它数据元素均有唯一的"后继"; 4.除第一元素之外,其它数据元素均有唯一的"前驱"。其中线性表是最常用且最简单的一种线性数据结构。线性表是一个含有n≥0个结点的有限序列...

2018-08-16 01:55:04 263

原创 数据结构(一):入门

今天开始补数据结构。其实以前也学过,都忘了,今天开始一点点补回来。1. 什么是数据结构数据结构由数据和结构组成,它是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科,数据结构是数据存储的方式。2. 什么是算法算法是处理数据的方法,通常我们通过分析算法的时间复杂度和空间复杂度来判断它的好坏。数据结构的不同就会导致算法的不同,数据结构的选择对算法效率会...

2018-08-15 02:40:20 2972

转载 (转)学习CMake / CMakeLists.txt

https://blog.csdn.net/yangguanghaozi/article/details/53392732https://www.cnblogs.com/qixianyu/p/6574048.htmlhttps://blog.csdn.net/michaelhan3/article/details/69525207

2018-08-12 18:28:18 189

转载 (转)GitHub 和 Git 使用教程

这篇写的最详细https://blog.csdn.net/young951023/article/details/79200208今天终于把之前的一部分代码放到Github上了:https://github.com/shaozhenghan

2018-08-11 22:24:16 166

转载 (转)一种好用的激光点云加标签的方法和工具

论文:Multi-Label Point Cloud Annotation by Selection of Sparse Control Points原文:https://www.computer.org/csdl/proceedings/3dv/2017/2610/00/261001a301-abs.html翻译: https://blog.csdn.net/m0_37903426/ar...

2018-08-10 14:55:33 2998 1

转载 (转)检查 NaN 数据值 (C/C++/Python 实现)

https://www.cnblogs.com/klchang/p/9029658.html

2018-08-09 19:54:41 278

原创 读论文:Real-time Object Classification in 3D Point Clouds Using Point Feature Histograms

马上补

2018-08-09 16:16:38 495 2

原创 哈佛大学公开课:计算机科学cs50 学习笔记及代码练习(第14集:栈,队列,哈希表,树)

周末写代码--------------------------------2018.8.7---------------------------1. stack 栈stack 后进先出(LIFO)结构。下面用数组实现栈,用malloc使栈的容量可扩展。stack.c这里要特别注意:(1) Destroy()函数中,free(s->data); 以及 s->dat...

2018-08-08 03:07:30 925

原创 对比:C语言数组与C++vector容器

有空整理。

2018-08-05 17:40:20 276

原创 C++ 指针与引用、指向常量的指针、常量指针、常量引用做函数形参

0. 指针与引用指针是对象,即在内存中占有实际内存。而引用只是一个对象的别名,本身不占有实际内存,不是对象。所以指针本身也可以是常量,指针也可以指向常量,下面区分一下。1. 指向常量的指针(pointer to const)指向常量的指针不能用于改变所指对象的值。const double pi = 3.14;const double *cptr = π  // 正...

2018-08-04 23:07:31 1297

点云库PCL学习教程 4

点云处理技术广泛应用在逆向工程、CAD/CAM、机器人学、激光遥感测量、机器视觉、虚拟现实、人机交互、立体3D影像等诸多领域。由于其涉及计算机学、图形学、人工智能、模式识别、几何计算、传感器等诸多学科,但一直以来由于点云获取手段的昂贵,严重阻碍其在各个行业上的广泛应用,也造成国内点云处理的理论性和工具性书籍匮乏。

2018-06-01

点云库PCL学习教程 3

点云处理技术广泛应用在逆向工程、CAD/CAM、机器人学、激光遥感测量、机器视觉、虚拟现实、人机交互、立体3D影像等诸多领域。由于其涉及计算机学、图形学、人工智能、模式识别、几何计算、传感器等诸多学科,但一直以来由于点云获取手段的昂贵,严重阻碍其在各个行业上的广泛应用,也造成国内点云处理的理论性和工具性书籍匮乏。

2018-06-01

智能汽车 matlabsimulink 模拟仿真技术

汽车智能化的模拟仿真技术。MATLAB 2016 年汽车年会。

2018-06-01

空空如也

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

TA关注的人

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