Z+F激光扫描仪
链接:https://zhuanlan.zhihu.com/p/48589754
三维扫描仪有三个误差来源:
● 线性误差(激光雷达部分/LARA)
● 测距噪声(激光雷达部分/LARA)
● 测角误差(机械偏转部分)
它的硬件包括两个部分
1、激光雷达系统(The LAser RAdar system/LARA),它的作用是发射激光,测量激光飞行时间,计算被测物体的距离。
2、机械偏转系统(The Mechanical Deflection System),它的作用是引导激光束的发射方向。偏转系统通过激光反射镜(铅垂方向转动)以及旋转整个仪器(水平方向转动)来实现全方位测量。在极坐标系中扫描仪通过水平角与竖直角来确定激光束位置。
- 激光雷达系统(LARA)
每一次激光测距的读数都包含误差,这个是任何设备避免不了的。测距的误差包括两部分:稳定可预测误差与随机不可预测误差。可预测误差可以通过合适的校准程序来改正:

将扫描仪的激光测距部分固定好,激光束指向一个具有已知反射率的标靶板。标靶板固定在滑轮车上,并且滑轮车可以沿着激光束走向精确地固定在某一个位置。每一个位置“i”都会做10000次距离采样(测量距离与反射率)。整个程序会自动测出不同反射率、不同距离下的测距情况。
真实距离D(i)由更高精度的激光干涉仪测得,通过对比10000次距离采样的平均值与D(i)的误差值,即可计算出改正值。我们称之为“测距校准”。距离校准可在扫描仪实时测量的同时进行实时改正,这样就能提高激光测距系统的测距精度。然而经过校准后还会存在微小的误差,这个误差就是所谓的“线性误差”,线性误差可以用相同的校准程序进行测定。
1.1)线性误差
用以上程序校准过的扫描仪,通过以上的程序再进行距离测量,记录不同距离下的测距采样的平均值与标准差。对比不同距离下的采样均值与真实距离D(i),我们得到了不同距离下的测距残留误差。随着标靶距离的变化,误差曲线总是成“之”字型,不是一个线性变化,总是在0位置上下浮动,我们称这种误差为“线性误差”。
扫描仪标称它的线性误差小于等于1mm,意思是误差曲线在+/-1mm以内浮动。总的来说线性误差与被测物体远近是没有关系的,所以线性误差可以被看做一个常数。
线性误差是随机误差,不符合正态分布。小于1mm的误差值是通过对数百台的扫描仪测试而来。然而对于所有误差来讲,线性误差是毫无关联的随机误差,你可以按照均方根值(RMS)来看待。
1.2)测距噪声
所谓距离噪声是指,特定距离下的测距采样值与其均值(特定距离下的10000测距采样均值)的差值。它符合高斯正态分布,可以表征每次测距读数的分布情况,一般以1 Sigma表示。它的意思是所有采样值里有68.3%是在以平均值为基准±1Sigma以内的。对于正太分布来讲,1Sigma 即所谓的均方根(RMS/Root Mean Square),也就是扫描仪的测距噪声。
测距噪声是任何点云数据里都有的,例如我们随便找一块墙体或者地面的点云,从侧面查看点云,都有一定的厚度,而不是一条线,老外称之为“三明治”现象。点云的厚度取决于它测距噪声点的范围(±1Sigma包含68.3%的点云、±2Sigma包含95.5%的点云、±3Sigma包含99.7%的点云)。

影响测距噪声的主要因素是被测物体与扫描仪的距离、物体表面反射率。物体表面反射率越好,距离越近噪声越少;物体表面反射率越低,距离越远噪声越多。
对于Z+F 5010来说被测物体在25米处,表面反射率为37%的情况下,测距噪声(1sigma)为0.6mm RMS,反射率为80%情况下为0.5mm RMS;如果据被测物体增加到100m,测距噪声会相应增加到3.8mm,2.0mm。
对于所有数据获取速率高的扫描仪来讲,测距噪声受采集速率的影响很大。大家可以类比一下全站仪,全站仪测一个点是需要一定的时间的。因为扫描仪动辄每秒几十万点的测量速率,它没有足够的时间将噪点滤除掉。如果要对比不同扫描仪的测距噪声需要先确定其数据采集速率。相同采集速率下,对比出来才有一定的参考价值。
例如:
● 在100m处目标反射率37%,扫描仪A以127KHz(127000点/秒)的速率测出的数据,测距噪声2.8mm
● 在100m处目标反射率37%,扫描仪B以10KHz(10000点/秒)的速率测出的数据,测距噪声1.5mm
表面上看扫描仪B的测距噪声要小一点,但是考虑到数据采集速率,有如下算法可供参考:
●扫描仪A 标准化测距噪声==0.0107mm
●扫描仪A 标准化测距噪声==0.0150mm
所以说测距噪声的大小还是要考虑到当时采集数据的速率。
2)机械偏转系统
激光束的发射角度是根据反射镜的角度来测量的,激光束真实的发射角度与反射镜的实际角度并不是完全一样。这个误差我们称之为“测角误差”。测角误差又包括水平测角误差Eβ与竖直测角误差Eα。对于Z+F 5010来说水平与竖直测角误差都是0.007°RMS(0.122mrad rms)。
弧度(rad)是一个能清晰反映测角误差对于每个点位误差影响程度的单位,2π rad=360°即单位圆(半径为1m的圆)的周长。对于微小的角度来讲弧度即对应该弧度的弧长。例如1mrad 的角度误差,反映到点位误差上即距离增加一米,误差增加1mm。所以0.122mrad的角度误差,在距离10米处的点误差为1.2mm,在50米处误差为6mm,在100米处误差为12mm。

在做扫描仪偏转系统的校准的时候,每个台扫描仪都会扫描一个独立的校准场。通过测量校准场内的目标,并与目标的实际位置进行对比,即可得到每台扫描仪的测角误差。有了这些测角误差就会相应的生成一些实时改正参数。至于这些误差如何计算并如何实时改正的,每个厂家可能都不一样。
通过对测量数据的统计分析,测角误差也包含平均误差与标准差。只有平均误差可以通过校准程序改正。随机误差是无法校准的,只能通过标准差(RMS)来标出来。标准差即正太分布中的1Sigma。所以测角误差为0.007°的意思是有68.3%的激光束角度误差小于等于0.007°。因为所有点云(直角坐标系)都是通过极坐标计算出来的(两个角度一个距离),所以角度误差肯定会传递到点位误差上。很明显角度误差在距离较远时对点云的三维误差影响很大。
基于以上分析,测角误差是一个重要参数。但是很多厂家(代理商)只标注仪器的角度分辨率。角度分辨率是机器能识别的最小角度,和测角精度毫无关系。
Z+F激光扫描仪的更多相关文章
- z+f profiler 9012
角度分辨率/角度精度 0.0088°/0.02°RMS
- z+f数据解析
1.先打开cmd2.把D:\qcc\编译和解析\debug_jiexi\SampleZFS.exe 拉进来.3.SampleZFS.exe -i *.zfs -o D:\*.txt 注意:*号代表文件 ...
- 变量的解构赋值////////////z
变量的解构赋值 数组的解构赋值 对象的解构赋值 字符串的解构赋值 数值和布尔值的解构赋值 函数参数的解构赋值 圆括号问题 用途 数组的解构赋值 基本用法 ES6允许按照一定模式,从数组和对象中提取值, ...
- 【最大流】ECNA 2015 F Transportation Delegation (Codeforces GYM 100825)
题目链接: http://codeforces.com/gym/100825 题目大意: N(N<=600)个点,每个点有个名字Si,R(R<=200)个生产商在R个点上,F(F<= ...
- Opengl4.5 中文手册—F
索引 A B C D E F G H I J K L M N O P Q ...
- AtCoder Regular Contest 067 F - Yakiniku Restaurants
题意: 有n个餐厅排成一排,第i个与第i+1个之间距离是Ai. 有m种食物,每种食物只能在一个餐厅里吃,第j种食物在第i个餐厅里吃的收益是$b[i][j]$. 选择每种食物在哪个餐厅里吃,使收益减去走 ...
- Problem D: 求(x-y+z)*2
Description 编写一个程序,求解以下三个函数: f(x,y,z)=2*(x-y+z) f(x,y) =2*(x-y) f(x) =2*(x-1) 函数调用格式见append.cc. ...
- Codeforces Round #477 (rated, Div. 2, based on VK Cup 2018 Round 3) F 构造
http://codeforces.com/contest/967/problem/F 题目大意: 有n个点,n*(n-1)/2条边的无向图,其中有m条路目前开启(即能走),剩下的都是关闭状态 定义: ...
- F# 图形数学基础。
这几天,在看Unity3D,很有意思,其中看到,第一人称控制器,就想看到里面的一些控制脚本是如何实现,才发现,学到的好多数据知识已经还给老师了,还好,走遍大江南北,跟着的书不多,唯一的二本高数没丢. ...
随机推荐
- MongoDB 空间定位(点) 与 距离检索
转自: http://blog.csdn.net/flamingsky007/article/details/39208837 基于 MongoDB 2.6 GeoJSON 格式 { "ty ...
- 多生产者多消费者(第一种方式),基于synchronized,wait,notifyAll
生产者消费者模式描述的是协调与协作关系.比如一个人正在准备食物(生产者),而另一个人正在吃(消费者),他们使用一个共用 的桌子用于放置盘子和取走盘子,生产者准备食物,如果桌子上已经满了就等待,消费者( ...
- 数据结构:队列queue 函数push() pop size empty front back
队列queue: push() pop() size() empty() front() back() push() 队列中由于是先进先出,push即在队尾插入一个元素,如:可以输出:Hello W ...
- C++ 中三种继承方式的理解
一.公有继承(public inheritance) 1.概念:当类的继承方式为公有继承时,基类的公有成员和保护成员的访问属性在派生类中不变,而基类的私有成员不可以直接访问. 实验一下: 我们用代 ...
- Python 编程入门
我喜欢直接了当, 这次主要是推荐蟒营大妈的 Python 入门课(https://py.101.camp), 还有不到一周就要开课了, 欢迎转发推荐~ 点击"夏日大作战:从小白到小能手的 P ...
- 05 IO流(三)——IO流标准流程
流程 选择源 选择合适的流 操作 关闭流:先打开的后关闭 演示 import java.io.File; import java.io.InputStream; import java.io.File ...
- 基于openfire的IM即时通讯软件开发
openfire:http://www.igniterealtime.org/ Xmpp:http://xmpp.org/ IOS(xmppframework):https://github.com/ ...
- 集合并卷积的三种求法(分治乘法,快速莫比乌斯变换(FMT),快速沃尔什变换(FWT))
也许更好的阅读体验 本文主要内容是对武汉市第二中学吕凯风同学的论文<集合幂级数的性质与应用及其快速算法>的理解 定义 集合幂级数 为了更方便的研究集合的卷积,引入集合幂级数的概念 集合幂级 ...
- Educational Codeforces Round 64 (Div. 2)
A.3*3讨论即可,注意正方形套圆套三角形只有6个点. #include<cstdio> #include<cstring> #include<iostream> ...
- 开源微信小程序商城测评
1. Java版 1)微同商城 减少重复造轮子,开源微信小程序商城 .快速搭建一个属于自己的微信小程序商城. 官网地址:https://fly2you.cn 开源地址:https://gitee.co ...