golang+webgl实践激光雷达(一)激光扫描仪基础知识
一、前言
最近做一个测量料堆形状的项目,通过前期调研,最后决定用激光测距原理进行测量。通过旋转云台+激光扫描仪实现空间三维坐标的测量。其中激光扫描仪扫射的是一个二维的扫描面,再通过云台旋转,则形成一个空间的三维点云。通过前期调研学习,加深了对激光扫描仪的了解,先整理一下收集的扫描仪的基础知识。
资料参考网址:
https://www.sick.com/cn/zh/w/gcn_div08series/
http://www.gongkong.com/news/201703/357440.html
二、激光扫描仪主要参数
激光扫描仪的原理是脉冲时间飞行原理,通过激光扫描器连续不停的发射激光脉冲,由旋转光学机构将激光脉冲按一定角度间隔(角度分辨率)发射向扫描角度内的各个方向而形成一个径向坐标为基准的二维扫描面。被测物体位置信息通过扫描器到物体的距离及对应的角度数据给出。

做项目之前对激光扫描仪并不了解,通过查资料,找供应商咨询,逐渐对激光扫描仪的参数和应用有所了解。扫描仪的主要参数就是扫描距离、测量精度、扫描角度、扫描频率。需要注意的是这个扫描距离要看是多少反射率时候的数值,有一些国内的激光传感器标注的是20%反射率的参数。激光对不同材质表面反射率是不同的,比如对黑色物体的反射率就比较低。
扫描距离
扫描距离是指激光扫描仪可以测量的最远距离,此参数在实际使用过程中受环境影响较大。主要影响因素有:目标物体表面反射率,目标物体形状,环境光干扰等等;一般情况下厂家会标明物体表面反射率为10%和90%情况下激光扫描仪的测量距离。
扫描角度
扫描角度是指即扫描器能覆盖的角度范围。一般有:70° … 360°

扫描频率
扫描频率是指激光扫描仪每秒钟扫描的次数。
扫描角度分辨率
两个相邻发射激光束之间的夹角为角度分辨率。

扫描精度
扫描精度分为两种表达方式:系统误差和统计误差;
- 系统误差是指激光扫描仪多次测量的平均值与真值之间的误差;系统误差不能被完全消除,但可以通过预先的标定减小系统误差影响;
- 统计误差是指激光扫描仪多次测量的均方差;统计误差可以采用多次测量取均值减小;
三、激光测距的影响因素
1 物体表面反射率
被测目标物体表面反射率是关系到激光扫描仪测量能力的关键参数。而影响物体表面反射率的因素主要有物体表面颜色和表面类型(亚光,高亮,平滑,粗糙等)。我们通常定义柯达白板(Kodak white material)表面反射率为100%。

2 物体表面轮廓
被测物体表面还有一个关键因素影响激光扫描仪测量距离和效果:目标物体表面形状。
平面物体,大于光束直径全部能量从被测物返回

圆形物体,小于光束直径部分的能量从被测物反射回(1 echo) + 从背景反射 (1 echo) -> 多次回波multi echo -> 检测不稳定

平面物体, 小于光束直径 (边沿检测),部分的能量从被测物反射回(1 echo) + 从背景反射 (1 echo) -> 多次回波multi echo -> 检测不稳定

高亮、光滑表面 -> 镜反射(反射角 = 入射角)
如果激光束入射角较小,就会造成激光束的反射光束不能返回到接收器。在该点的测量值就会显示为无物体,也就是数据丢失的情况。
如:高亮汽车漆、抛光的金属表面类似镜反射

亚光、光滑表面 -> 漫反射(全方向反射)
反射光分布在所有的方向上,光的强度分布类似于高斯曲面
当激光与物体表面成一定入射角,则反射能力会有相应的损失,入射角越小,返回扫描器的光越少,检测距离也就越近

亚光, 粗糙表面 -> 漫反射 (反射方向不确定)
反射可能向任意方向,由被测点实际形状确定。无规律性
如:块状的矿料等

反射板/反射胶贴 -> 反射板反射
几乎所有的激光都原路径返回扫描器
用于激光导航等应用

3 光斑直径(光斑大小 Beam diameter )
激光扫描器所发出的激光光束, 光斑大小会随着距离的增加而增大(如手电筒发出的光)

下面列出一些常用LMS产品的光斑直径的计算公式:
LMS111 =距离(mm)×15mrad + 8mm
LMS511 HR=距离(mm)×4.67mrad+13.6mm
LMS511 SR=距离(mm)×11.9mrad+13.6mm
TiM3= 距离×22mrad+6.5mm
LD-LRS3110=距离(mm)×2.8mrad+40mm
例:LMS111在10米距离时光点直径:
10000mm×0.015+8mm=158mm
4 光点(测量点)间距 ( Beam distance )
相邻两个光点中心之间的距离。光点间距与测量距离成正比;同时,角度分辨率越大,光点间距也越大。

测量点间距L=Tan(a/2)*d*2
例如:
当角度分辨率为0.5 °,工作距离为10米时,
光点间距=Tan( 0.5 °/2)*10m*2=8.72mm
5 最小检测物体体积(Minimum object size)
基于光斑直径和光点间距可以直接计算激光测量系统能测量的物体的最小尺寸。最小物体尺寸与测量距离成正比;
最小检测物体尺寸=光斑直径+光点间距

四、激光扫描仪工作模式
基于如上原理和技术,激光扫描仪可以实现以下两个功能:检测和测量
检测 Detection
在扫描范围内,设置不同形状的保护区域
(预设形状或任意形状)
当有物体进入该区域时,输出信号
可用于包括设备防撞、区域安防等

- 测量 Ranging
在扫描角度范围内测量每个脉冲检测点
输出位置数据 (极坐标角度及距离数据)
可用于轮廓测量、导航等作用

golang+webgl实践激光雷达(一)激光扫描仪基础知识的更多相关文章
- 0.Python 爬虫之Scrapy入门实践指南(Scrapy基础知识)
目录 0.0.Scrapy基础 0.1.Scrapy 框架图 0.2.Scrapy主要包括了以下组件: 0.3.Scrapy简单示例如下: 0.4.Scrapy运行流程如下: 0.5.还有什么? 0. ...
- 《JavaScript设计模式与开发实践》读书笔记-基础知识
笔记内容多摘录自<JavaScript设计模式与开发实践>(曾探著),侵删. 面向对象的JavaScript 1. 动态需要类型和鸭子类型 鸭子类型 如果它走起路来像鸭子,叫起来也是鸭子, ...
- Objective-C 方法交换实践(一) - 基础知识
一.Objective-C 中的基本类型 首先看下 Objective-C 的对象模型,每个 Objective-C 对象都是一个指向 Class 的指针.Class 的结构如下: struct ob ...
- golang基础知识之encoding/json package
golang基础知识之json 简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.可以去json.org 查看json标准的清晰定义.json pack ...
- [WebGL入门]五,矩阵的基础知识
注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中假设有我的额外说明.我会加上[lufy:],另外.鄙人webgl研究还不够深入,一些专业词语,假设翻译有误,欢迎大家指 ...
- 数据结构和算法(Golang实现)(8.1)基础知识-前言
基础知识 学习数据结构和算法.我们要知道一些基础的知识. 一.什么是算法 算法(英文algorithm)这个词在中文里面博大精深,表示算账的方法,也可以表示运筹帷幄的计谋等.在计算机科技里,它表示什么 ...
- 数据结构和算法(Golang实现)(8.2)基础知识-分治法和递归
分治法和递归 在计算机科学中,分治法是一种很重要的算法. 字面上的解释是分而治之,就是把一个复杂的问题分成两个或更多的相同或相似的子问题. 直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合 ...
- 数据结构和算法(Golang实现)(9)基础知识-算法复杂度及渐进符号
算法复杂度及渐进符号 一.算法复杂度 首先每个程序运行过程中,都要占用一定的计算机资源,比如内存,磁盘等,这些是空间,计算过程中需要判断,循环执行某些逻辑,周而反复,这些是时间. 那么一个算法有多好, ...
- 数据结构和算法(Golang实现)(10)基础知识-算法复杂度主方法
算法复杂度主方法 有时候,我们要评估一个算法的复杂度,但是算法被分散为几个递归的子问题,这样评估起来很难,有一个数学公式可以很快地评估出来. 一.复杂度主方法 主方法,也可以叫主定理.对于那些用分治法 ...
随机推荐
- 【Web技术】400- 浅谈Shadow DOM
编者按:本文作者:刘观宇,360 奇舞团高级前端工程师.技术经理,W3C CSS 工作组成员. 为什么会有Shadow DOM 你在实际的开发中很可能遇到过这样的需求:实现一个可以拖拽的滑块,以实现范 ...
- VS编译命令
一.前言 由于公司要求项目需要走CI构建平台,抛弃掉之前的人工编译打包方式,所以需要调研一下项目怎么通过命令行编译出产物. 二.准备工作 在构建机器上安装vs(本文示例为vs2017) 将代码上传版本 ...
- 大数据学习笔记——Java篇之基础知识
Java / 计算机基础知识整理 在进行知识梳理同时也是个人的第一篇技术博客之前,首先祝贺一下,经历了一年左右的学习,从完完全全的计算机小白,现在终于可以做一些产出了!可以说也是颇为感慨,个人认为,学 ...
- Python3 基本类型在64位上的占用内存情况
基本类型占用的内存 类型 # -*- coding: utf-8 -*- # @Time : 2019-12-19 11:16 # @Author : binger import sys a = No ...
- 快速失败(fail-fast)和安全失败(fail-safe)的区别是什么?
一:快速失败(fail—fast) 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加.删除.修改),则会抛出Concurrent Modification Exceptio ...
- deconstructSigs|探寻cosmic的独特“气质”-mutation signature !
deconstructSigs-mutation signature看一下你的数据是什么“气质”的? 本文首发于“生信补给站” https://mp.weixin.qq.com/s/k7yzk9hPX ...
- webpack打包出现WARNING in configuration The 'mode' option has not been set, webpack will fallback to 'production' for this value. 错误
打包运行的时候出现以下错误 WARNING in configurationThe 'mode' option has not been set, webpack will fallback to ' ...
- nyoj 737 石子合并(区间DP)
737-石子合并(一) 内存限制:64MB 时间限制:1000ms 特判: No通过数:28 提交数:35 难度:3 题目描述: 有N堆石子排成一排,每堆石子有一定的数量.现要将N堆石子并成为 ...
- 2019年12道RabbitMQ高频面试题你都会了吗?(含答案解析)
RabbitMQ 面试题 1.什么是 rabbitmq 2.为什么要使用 rabbitmq 3.使用 rabbitmq 的场景 4.如何确保消息正确地发送至 RabbitMQ? 如何确保消息接收方消费 ...
- PWN INTEGER OVERFLOW 整数溢出
0x00 Preview Last few passage I didn't conclude some important points and a general direction o ...