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)基础知识-算法复杂度主方法
算法复杂度主方法 有时候,我们要评估一个算法的复杂度,但是算法被分散为几个递归的子问题,这样评估起来很难,有一个数学公式可以很快地评估出来. 一.复杂度主方法 主方法,也可以叫主定理.对于那些用分治法 ...
随机推荐
- CodeForces-Round235D
链接:http://codeforces.com/contest/401/problem/D 题意:给出一个数字num和m,问通过重新排列num中的各位数字中有多少个数(mod m)=0,直接枚举 ...
- 详解EMC测试国家标准GB/T 17626
电波暗室,用于模拟开阔场,同时用于辐射无线电骚扰(EMI)和辐射敏感度(EMS)测量的密闭屏蔽室. 来源:http://gememc.com/upload/201712/201712010930227 ...
- IPFS学习-IPNS
星际名称系统(IPNS)是一个创建个更新可变的链接到IPFS内容的系统,由于对象在IPFS中是内容寻址的,他们的内容变化将导致地址随之变化.对于多变的事物是有用的.但是很难获取某些内容的最新版本. 在 ...
- Another git process seems to be running in this repository
今天在推送项目的时候git突然报如题的错误.查了一下是由于git被另外一个程序占用,产生原 原因在于Git在使用过程中遭遇了崩溃,部分被上锁资源没有被释放. 解决方案也很简单,在git中找到对应的in ...
- c++-类与类的关系
类与类的关系 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; class A { publ ...
- spring boot 2 + shiro 实现简单的身份验证例子
Shiro是一个功能强大且易于使用的Java安全框架,官网:https://shiro.apache.org/. 主要功能有身份验证.授权.加密和会话管理.其它特性有Web支持.缓存.测试支持.允许一 ...
- Shell(六):输入/输出重定向
重定向的作用是将命令的执行结果输出到指定的文件中. 重定向命令列表如下: 文件描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR). 1.输出重 ...
- CentOS 7 安装 Nginx 配置反向代理
Linux使用Nginx Yum存储库上安装Nginx,适用于Red Hat Enterprise Linux和CentOS系统. 1.添加设置Nginx Yum存储库 在CentOS中首次安装Ngi ...
- Mac上打开终端的7种简单方法
终端机是用于给Mac命令的便捷工具,尽管它可能会吓倒许多人.毕竟,这不像输入句子然后Mac响应那样简单.如果您有兴趣学习使用Terminal或只想输入一两个命令,我们在下面列出了一些文章,可以帮助您使 ...
- 在ubuntu18.04上使用OpenSSL生成自签名认证基本流程
为了使系统支持https模式,首先我们要使能ssl模式. 命令如下: sudo a2enmod ssl sudo systemctl restart apache2 接下来我们要生成一个SSL/TLS ...