链接:https://zhuanlan.zhihu.com/p/48589754

三维扫描仪有三个误差来源:

● 线性误差(激光雷达部分/LARA)

● 测距噪声(激光雷达部分/LARA)

● 测角误差(机械偏转部分)

它的硬件包括两个部分

1、激光雷达系统(The LAser RAdar system/LARA),它的作用是发射激光,测量激光飞行时间,计算被测物体的距离。

2、机械偏转系统(The Mechanical Deflection System),它的作用是引导激光束的发射方向。偏转系统通过激光反射镜(铅垂方向转动)以及旋转整个仪器(水平方向转动)来实现全方位测量。在极坐标系中扫描仪通过水平角与竖直角来确定激光束位置。

  1. 激光雷达系统(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激光扫描仪的更多相关文章

  1. z+f profiler 9012

    角度分辨率/角度精度 0.0088°/0.02°RMS

  2. z+f数据解析

    1.先打开cmd2.把D:\qcc\编译和解析\debug_jiexi\SampleZFS.exe 拉进来.3.SampleZFS.exe -i *.zfs -o D:\*.txt 注意:*号代表文件 ...

  3. 变量的解构赋值////////////z

    变量的解构赋值 数组的解构赋值 对象的解构赋值 字符串的解构赋值 数值和布尔值的解构赋值 函数参数的解构赋值 圆括号问题 用途 数组的解构赋值 基本用法 ES6允许按照一定模式,从数组和对象中提取值, ...

  4. 【最大流】ECNA 2015 F Transportation Delegation (Codeforces GYM 100825)

    题目链接: http://codeforces.com/gym/100825 题目大意: N(N<=600)个点,每个点有个名字Si,R(R<=200)个生产商在R个点上,F(F<= ...

  5. Opengl4.5 中文手册—F

    索引 A      B    C      D     E     F     G H      I     J      K     L     M     N O      P    Q      ...

  6. AtCoder Regular Contest 067 F - Yakiniku Restaurants

    题意: 有n个餐厅排成一排,第i个与第i+1个之间距离是Ai. 有m种食物,每种食物只能在一个餐厅里吃,第j种食物在第i个餐厅里吃的收益是$b[i][j]$. 选择每种食物在哪个餐厅里吃,使收益减去走 ...

  7. 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. ...

  8. 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条路目前开启(即能走),剩下的都是关闭状态 定义: ...

  9. F# 图形数学基础。

    这几天,在看Unity3D,很有意思,其中看到,第一人称控制器,就想看到里面的一些控制脚本是如何实现,才发现,学到的好多数据知识已经还给老师了,还好,走遍大江南北,跟着的书不多,唯一的二本高数没丢. ...

随机推荐

  1. SSH无密码(密钥验证)登录的配置

    进入到我的home目录 cd ~/.ssh [root@shtppATTSTPUBv03 home]# cd ~/.ssh [root@shtppATTSTPUBv03 .ssh]# pwd /roo ...

  2. cookie设置中文时的编码问题

    cookie设置中文时的编码问题:cookie在设置时不允许出现中文.非要设置中文的怎么办,看下面的解决方案: 方式1 def login(request): ret = HttpResponse(' ...

  3. K number(思维和后缀以及3的特性)(2019牛客暑期多校训练营(第四场))

    示例1: 输入:600 输出:4 说明:'600', '0', '0', '00' are multiples of 300. (Note that '0' are counted twice bec ...

  4. wc 指令

    统计文件的行数, 字符数, 字节数. wc 命令的功能相对简单,参数也较少,但是是统计文本行数,字符数的利器.具体的参数和用法如下 语法 wc [OPTION]... [FILE]... wc [OP ...

  5. VBA分别使用MSXML的DOM属性和XPATH进行网页爬虫

    本文要重点介绍的是VBA中的XmlHttp对象(MSXML2.XMLHTTP或MSXML.XMLHTTP),它可以向http服务器发送请求并使用微软XML文档对象模型Microsoft XML Doc ...

  6. 11/8 (tell tales web)

    1.visual perception gestalt theory:格式塔学派是心理学重要流派之一,兴起于20世纪初的德国,又称为完形心理学.由马科斯·韦特墨.沃尔夫冈·苛勒和科特·考夫卡三位德国心 ...

  7. STM8 定时器

    中断映射表 对应stm8_interrupt.c #pragma vector=1 __interrupt void TRAP_IRQHandler(void) { } #pragma vector= ...

  8. AetherUpload大文件传输

    AetherUpload-Laravel是laravel框架下的一个大文件传输组件 github:https://github.com/peinhu/AetherUpload-Laravel 文件传输 ...

  9. Java8常用示例

    java.util.Map中的putIfAbsent.computeIfAbsent.computeIfPresent.compute的区别 探索Java8:(三)Predicate接口的使用 Has ...

  10. 爬虫请求库 requests

    requests模块   阅读目录 一 介绍 二 基于GET请求 三 基于POST请求 四 响应Response 五 高级用法 一 介绍 #介绍:使用requests可以模拟浏览器的请求,比起之前用到 ...