一、前言

  最近做一个测量料堆形状的项目,通过前期调研,最后决定用激光测距原理进行测量。通过旋转云台+激光扫描仪实现空间三维坐标的测量。其中激光扫描仪扫射的是一个二维的扫描面,再通过云台旋转,则形成一个空间的三维点云。通过前期调研学习,加深了对激光扫描仪的了解,先整理一下收集的扫描仪的基础知识。

资料参考网址:

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实践激光雷达(一)激光扫描仪基础知识的更多相关文章

  1. 0.Python 爬虫之Scrapy入门实践指南(Scrapy基础知识)

    目录 0.0.Scrapy基础 0.1.Scrapy 框架图 0.2.Scrapy主要包括了以下组件: 0.3.Scrapy简单示例如下: 0.4.Scrapy运行流程如下: 0.5.还有什么? 0. ...

  2. 《JavaScript设计模式与开发实践》读书笔记-基础知识

    笔记内容多摘录自<JavaScript设计模式与开发实践>(曾探著),侵删. 面向对象的JavaScript 1. 动态需要类型和鸭子类型 鸭子类型 如果它走起路来像鸭子,叫起来也是鸭子, ...

  3. Objective-C 方法交换实践(一) - 基础知识

    一.Objective-C 中的基本类型 首先看下 Objective-C 的对象模型,每个 Objective-C 对象都是一个指向 Class 的指针.Class 的结构如下: struct ob ...

  4. golang基础知识之encoding/json package

    golang基础知识之json 简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.可以去json.org 查看json标准的清晰定义.json pack ...

  5. [WebGL入门]五,矩阵的基础知识

    注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中假设有我的额外说明.我会加上[lufy:],另外.鄙人webgl研究还不够深入,一些专业词语,假设翻译有误,欢迎大家指 ...

  6. 数据结构和算法(Golang实现)(8.1)基础知识-前言

    基础知识 学习数据结构和算法.我们要知道一些基础的知识. 一.什么是算法 算法(英文algorithm)这个词在中文里面博大精深,表示算账的方法,也可以表示运筹帷幄的计谋等.在计算机科技里,它表示什么 ...

  7. 数据结构和算法(Golang实现)(8.2)基础知识-分治法和递归

    分治法和递归 在计算机科学中,分治法是一种很重要的算法. 字面上的解释是分而治之,就是把一个复杂的问题分成两个或更多的相同或相似的子问题. 直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合 ...

  8. 数据结构和算法(Golang实现)(9)基础知识-算法复杂度及渐进符号

    算法复杂度及渐进符号 一.算法复杂度 首先每个程序运行过程中,都要占用一定的计算机资源,比如内存,磁盘等,这些是空间,计算过程中需要判断,循环执行某些逻辑,周而反复,这些是时间. 那么一个算法有多好, ...

  9. 数据结构和算法(Golang实现)(10)基础知识-算法复杂度主方法

    算法复杂度主方法 有时候,我们要评估一个算法的复杂度,但是算法被分散为几个递归的子问题,这样评估起来很难,有一个数学公式可以很快地评估出来. 一.复杂度主方法 主方法,也可以叫主定理.对于那些用分治法 ...

随机推荐

  1. Python核心笔记:在python文件中如何调用其它python脚本文件,你肯定不会

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:zhujuyu 笔者在自学python的时候遇到了这样一个练习题:将 ...

  2. ARTS-S ISO C

    一些简称 ANSI: American National Standards Institute. ANSI是the International Organization for Standardiz ...

  3. Mybatis-plus入门教程(一)

    什么是MyBatis-Plus MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发繁琐的CRUD.提高代码效率而生,同时 ...

  4. MySQL安装及配置最详细教程

    https://blog.csdn.net/Mxdon_on/article/details/89461513 概述 MySQL作为最常用的数据库,手动安装的方法还是稍微有些弯弯 首先下载安装包 (官 ...

  5. JAVA使用SnakeYAML解析与序列化YAML

    1.概述 本文,我们将学习如何使用SnakeYAML库将 YAML文档转换为Java对象,以及JAVA对象如何序列化为YAML文档. 2.项目设置 要在项目中使用SnakeYAML,需要添加Maven ...

  6. 关于eclipse码代码时光标自动消失要重新点击输入框的问题

    前几天码代码时在两个电脑都出现了同样的问题,就是在输入的时候,输入法突然从程序框切换到某不可名状的位置,要重新点击输入框才能解决.(后发现不但是eclipse,任何带有输入框的都会出现此问题) 经排查 ...

  7. 《Java基础知识》序列化与反序列化详解

    序列化的作用:为了不同jvm之间共享实例对象的一种解决方案.由java提供此机制. 序列化应用场景: 1. 分布式传递对象. 2. 网络传递对象. 3. tomcat关闭以后会把session对象序列 ...

  8. mybatis源码学习(四)--springboot整合mybatis原理

    我们接下来说:springboot是如何和mybatis进行整合的 1.首先,springboot中使用mybatis需要用到mybatis-spring-boot-start,可以理解为mybati ...

  9. Nginx实现负载均衡时常用的分配服务器策略

    场景 Nginx配置实例-负载均衡实例:平均访问多台服务器: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103019576 在 ...

  10. 松软科技Web课堂:JavaScript While 循环

    只要条件为 true,循环能够一直执行代码块. While 循环 while 循环会一直循环代码块,只要指定的条件为 true. 语法 while (条件) { 要执行的代码块 } 实例 在下面的例子 ...