一、前言

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

资料参考网址:

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. Vue - 简单实现一个命令式弹窗组件

    前言 在日常工作中弹窗组件是很常用的组件,但用得多还是别人的,空闲时间就自己来简单实现一个弹窗组件 涉及知识点:extend.$mount.$el 使用方式: this.$Confirm({ titl ...

  2. 第一节:Shiro HelloWorld 实现

    1.新建maven工程,pom配置maven jar包 <dependency> <groupId>org.apache.shiro</groupId> <a ...

  3. 一篇文章搞明白Integer、new Integer() 和 int 的概念与区别

    基本概念的区分 1.Integer 是 int 的包装类,int 则是 java 的一种基本数据类型 2.Integer 变量必须实例化后才能使用,而int变量不需要 3.Integer 实际是对象的 ...

  4. ACM-ICPC 2018 南京赛区网络预赛 L. Magical Girl Haze (分层dijkstra)

    There are NN cities in the country, and MMdirectional roads from uu to v(1\le u, v\le n)v(1≤u,v≤n). ...

  5. Activiti架构分析及源码详解

    目录 Activiti架构分析及源码详解 引言 一.Activiti设计解析-架构&领域模型 1.1 架构 1.2 领域模型 二.Activiti设计解析-PVM执行树 2.1 核心理念 2. ...

  6. 数百道BAT等大厂最新Python面试真题,学到你手软!

    春招临近,无论是要找工作的准毕业生,还是身在职场想要提升自己的程序员,提升自己的算法内功心法.提升 Python 编程能力,总是大有裨益的.今天,小编发现了一份好资源:Python 实现的面试题集锦! ...

  7. Dubbo环境搭建-ZooKeeper注册中心

    场景 Dubbo简介与基本概念: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103555224 注: 博客: https:// ...

  8. 配置Servlet 容器

    SpringBoot默认使用Tomcat作为嵌入式的Servlet容器: 1.如何定制和修改Servlet容器的相关配置: 1.修改和server有关的配置(ServerProperties[也是Em ...

  9. inux 资源监控分析-pidstat

    pidstat是sysstat工具的一个命令,用于监控全部或指定进程的cpu.内存.线程.设备IO等系统资源的占用情况.pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat ...

  10. JavaScript实例:运动的小球

    本篇博文通过制作一个小球运动动画的实例,来学习在HTML5的画布上实现动画制作的方法,同时理解面向对象程序设计的基本思想. 1.绘制小球 先在HTML页面中设置一个画布. <canvas id= ...