HELIOS模拟平台介绍
写在前面:我前段时间的一个工作(
地基激光雷达TLS的新型布站策略
)需要用到模拟的TLS点云数据来验证新型布站模式的性能,因此需要找一个LiDAR模拟平台来完成以上任务。
据我所知,目前典型的常用的两个模拟平台是:
DART (Discrete anisotropic radiative transfer) 的LiDAR模拟模块. DART原本主要用于遥感影像模拟与三维反演,在大约2015-2016年,增加了LiDAR的模拟模块。
HELIOS (Heidelberg LiDAR Operations Simulator). HELIOS本身就是设计用于LiDAR数据的模拟的,也是在2015年左右完成初始版本的。
这两个软件我都用过,并准备分享一下经验,最近新学习的HELIOS,那就先分享HELIOS吧
1. HELIOS的出现与特点
近些年,随着计算机算力的提高,遥感
中各种计算机模拟软件层出不穷。其实LiDAR模拟软件往往是用于以下场景的:
研究扫描策略和规划路径:比如一些路径规划,以及我的TLS布站策略
算法发展:根据模拟数据,来发展一些新的方法,比如估算树木结构属性信息
传感器发展:调整扫描参数,以测试不同传感器的扫描性能
教学训练:比如学校没有购买激光雷达,可以用模拟数据教学
作者在他会议论文总结了一些相关历史工作,发现以前的研究主要存在如下几个不足:
一些研究采用的是
2.5D
高程图来模拟ALS数据,缺少对场景详细几何结构的描述详细几何结构下的模拟十分耗时,需要加速
激光脉冲并非一条无宽度的直线(
thin line
),而是存在beam divergence
,即锥形束缺乏全波形数据(full-waveform)的模拟
可视化与交互做的不够好
德国海德堡大学(Heidelberg University)
Bernhard Höfle
教授团队的工程师Sebastian Bechtold
(主要作者) 开发的HELIOS
则具有如下特点(a flexible multi-purpose simulation framework):
支持真实三维几何,输入可以为obj模型文件、GeoTIFF地形高程文件(自动被转换为三角网)、ASCII格式的‘xyz’点云文件(自动被转换为体元)
可用于任意场景的模拟:城市、森林、农田、自定义几何结构等
可以模拟机载LiDAR、无人机LiDAR、车载/背包LiDAR、地基LiDAR等不同平台数据
可以输出三维点云、强度、全波形数据
Java开发,三维可视化和交互性非常好
各种扫描参数定义十分方便 (XML文件的形式),适合批量处理
采用核心模块(core component)和扩展模块(extension modules)的组成方式,方便扩展
代码开源,优亿在线:www.jintianxuesha.com,且一直在维护
HELIOS的软件结构示意图
2.1. 核心模块之Platform
platform
主要用于控制scanner
的位置和方位,用户可以选择平台类型诸如航空或地面平台,对于运动平台还可以设置speed
。
平台类型包含:
四轮车 (mobile laser scanning)
无人机 (multicopter, UAV laser scanning)
有人机 (airplane)
三脚架 (tripod)
HELIOS支持的四种平台
小注:Platform模块并不能定义行动路径,其仅能控制平台怎样移动,但却不能控制平台向哪里移动(这在survey playback模块中进行)。
2.2. 核心模块之Scene
Scene
模块有两个核心功能:
场景建立:根据输入的场景文件,构建三维场景模型。
一般而言,场景是由
三角面片 triangle mesh
构建的(即输入多个obj模型,其具有详细的几何结构信息),每个三角面片均在*.mtl文件中定义了其物理属性(如反射率
),*.obj
文件会对*.mtl
文件中的属性值进行索引。
*
*.obj文件中三角面片的存储格式(来源于漆建波博士论文)
求交计算:根据
扫描原点 origin
、激光射线向量 ray vector
、场景几何 scene geometry
,来快速计算激光线与场景的交点。这就是所谓的光线投射 ray casting(也可以称为光线追踪 ray tracing
)。通常激光雷达每秒钟的脉冲数量可达百万,因此需要极为快速的光线投射计算。限制计算速度的主要是如何确定一条激光射线向量与场景中那一个三角面片上的点相交,因此需要进行搜索,一般采用
KD-Tree
这种数据结构算法。
光线与场景交点计算的加速结构(来源于漆建波博士论文)
KD-Tree创建过程与遍历过程(来源于漆建波博士论文)
小注:这里的几个图片都是来自于我师兄漆建波 博士
的博士论文,他算是遥感圈很认可的做计算机模拟模型做的很好的青年学者了。这些理论比较相通,恰好他的图很直观,于是借过来一用,感谢慷慨。
关于光线追踪/光线投射的一些具体内容,不妨看一下漆建波博士的论文
2.3. 核心模块之Scanner
Scanner
模块主要有三项任务:
模拟射束偏转(beam deflection):比如对于TLS,就是方位azimuth扫描和天顶zenith扫描范围,其实就是角度移动的范围 the pattern of angular movement.
模拟激光脉冲发射 (firing of laser pulse):真实的激光脉冲是锥形光束,而不是直线,所以要考虑beam divergence
模拟探测和处理激光回波信号:
HELIOS有四类扫描模式(scan pattern)可供选择:
Rotating mirror (www.baiweiegw.com parallel scan lines)
Fiber array (parallel scan lines)
Oscillating mirror (腾越娱乐:www.feishenbo.cn“zig-zag” scan pattern)
Conic mirror (elliptical scan pattern, a.k.a. “Palmer scan”)
HELIOS支持的四类扫描模式
beam divergence的模拟:用多条光线投射
multiple raycasting queries
来近似激光锥形束。一般而言,以锥形束中心为圆心,可以设置不同的数量的圆圈来控制
采样质量
。
beam divergence通过多光线投射来近似模拟
full waveform 全波形的模拟:对锥形束中每条采样光线执行光线投射,如果光线与三角面片相交,则记录
surface incidence angle
和该面片的物理性质。波形的计算有点复杂,我还没搞清楚,挖个坑,回头填上吧。
点云输出:HELIOS通过应用回波检测算法,诸如
peak detection
和Gaussian decomposition
来导出点云。
2.4. 扩展模块之Loading assets
Loading assets
模块其实就负责导入数据。它支持:
OBJ文件格式,这是HELIOS支持的标准格式
GeoTIFF文件格式,这是2.5D的数字高程影像,HELIOS会将其自动转换为三角面片
XYZ点云文件格式,点云输入后被体元化,如果体元存在多于一个点,则该体元为场景结构体元
读取输入场景文件中的坐标空间变换,包含平移 translate
、旋转 rotate
、缩放 scale
三个要素。
2.5. 扩展模块之Visualization
Visualization
模块提供了实时交互功能,虽然目前看起来比较粗糙,但是依然很有用。根据可视化,可以判定测站、结构等是否正确,判定扫描方式是否如预期,发现模拟代码是否有问题等等。
HELIOS的TLS模拟扫描可视化示例
3. 后记
下一期我们具体看一下如何实际使用HELIOS模拟自己想要的数据。
其实我们RAMM研究小组早就有人在用HELIOS,只是我一直用DART比较习惯,而且这篇TLS布站论文中也一直用DART模拟点云。目前审稿人让增加新的international benchmarking数据,而手头又没有在法国时那么powerful的电脑了,又经漆建波博士推荐,就学习了HELIOS。
我查了一下文献,目前国内外用HELIOS的还不多,于是想着总结一下经验,与大家分享。
HELIOS模拟平台介绍相关推荐
- SkyEye硬件模拟平台
SkyEye硬件模拟平台 教程: SkyEye硬件模拟平台, 第一部分: SkyEye 介绍 SkyEye硬件模拟平台,第二部分: 安装与使用 SkyEye硬件模拟平台,第三部分: 硬件仿真实现之一 ...
- 三维地理信息平台介绍与比较(转)
Google Earth和World Wind是两款优秀的网络维地球影像浏览器,它们的出现,打破了传统Web GIS的数据发布模式,为空间信息的快速发布提供了新的解决思路和技术手段 采用这种技术,客户 ...
- SkyEye硬件模拟平台:硬件仿真实现之一
本系列文章主要介绍了SkyEye硬件模拟平台的实现细节.主要内容包括SkyEye的总体设计.SkyEye的可扩展框架.SkyEye的关键数据结构.SkyEye对各种CPU的模拟实现.SkyEye对各种 ...
- Salome平台介绍及二次开发案例
基于国产的"神威·太湖之光",国家超级计算无锡中心发布了"无锡超算云平台",将打造世界一流的超算技术与产业发展深度融合的高性能计算应用生态圈.现已升级为&quo ...
- 基于Spark与ROS分布式无人驾驶模拟平台
作者:刘少山,PerceptIn联合创始人.加州大学欧文分校博士,研究方向包括智能感知计算.系统软件.体系结构与异构计算.现在主要专注于SLAM技术及其在智能硬件上的实现与优化.曾负责百度无人车系统架 ...
- 【无人驾驶系列四】 基于Spark与ROS分布式无人驾驶模拟平台
本文是无人驾驶技术系列的第四篇,着重介绍基于Spark与ROS的分布式无人驾驶模拟平台.无人驾驶的安全性和可靠性是通过海量的功能和性能测试来保证的.无人驾驶系统是一个复杂的系统工程,在它的整个研发流程 ...
- [转}SkyEye硬件模拟平台,第三部分: 硬件仿真实现之二
SkyEye硬件模拟平台,第三部分: 硬件仿真实现之二 CPU/开发板仿真 文档选项 <script language=JavaScript type=text/javascript> & ...
- 19.1 Linux监控平台介绍;19.2 zabbix监控介绍;19.3,19.4 安装zabbi
19.1 Linux监控平台介绍 常见开源监控软件: 1. cacti.nagios.zabbix.smokeping.open-falcon等等 2. cacti.smokeping偏向于基础监控, ...
- linux监控平台介绍、zabbix监控介绍、安装zabbix
linux监控平台介绍 常见开源监控软件 cacti.nagios.zabbix.smokeping.open-falcon 等等. nagios和zabbix流行度很高. cacti.smokepi ...
- Linux监控平台介绍、zabbix监控介绍、安装zabbix、忘记Admin密码如何做
Linux监控平台介绍 常见开源监控软件 cacti.nagios.zabbix.smokeping.open-falcon等等. cacti.smokeping偏向于基础监控,成图漂亮. cacti ...
最新文章
- scroll事件实现监控滚动条并分页显示示例(zepto.js)
- puppet自动化运维之puppet的资源基础知识
- BZOJ 3781: 小B的询问 [莫队]
- c++:结构体的应用
- jetty NoSuchFieldError: MAX_INACTIVE_MINUTES
- 使用 ABAP Open SQL 的 Select AS 别名,提高代码可读性
- [LeetCode]: 100: Same Tree
- LeetCode383. Ransom Note
- 士林变频器面板如何调速度_工业电气设计|变频器在应用中的故障处理实例分享...
- java sqlite 多线程_深入Sqlite多线程入库的问题
- 泰山OFFICE在LINUX上输入法候选框位置错误的两个解决思路
- Windows电脑上有哪些好用的txt小说阅读器?
- 互动媒体技术专题2——多视角认识十二个“一” 技术预演与方案设计
- 2021年材料员-岗位技能(材料员)新版试题及材料员-岗位技能(材料员)考试试卷
- idea git push时 报错 Push rejected: Push to origin/master was rejected
- Domain Adaptive在无监督语义分割上的应用
- 通过USB在传统电视上播放B站视频
- 用python实现等额本息
- ADC类型和技术指标
- Web前端期末大作业-在线手机商城网站设计(HTML+CSS+JS)
热门文章
- Summary——CrowdPose: Efficient Crowded Scenes Pose Estimation and A New Benchmark
- 先有鸡还是先有蛋?应用程序开发与安全
- Fallback class must implement the interface annotated by @FeignClient
- 移动端300ms延迟_移动端300ms延迟原因及解决方案
- 高可用、高可扩展的原生WebView通信架构的思考
- InnoDB中的页合并与分裂
- 打乱魔方软件_家里魔方吃灰了?这三款魔方App教你轻松上手
- Bayesian Browsing Model 的个人理解
- 完美世界CEO萧泓:年轻化战略大有可为
- 梯形断面正常水深莫洛图