链接: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. 线性表——顺序表的实现与讲解(C++描述)

    线性表 引言 新生安排体检,为了 便管理与统一数据,学校特地规定了排队的方式,即按照学号排队,谁在前谁在后,这都是规定好的,所以谁在谁不在,都是非常方便统计的,同学们就像被一条线(学号)联系起来了,这 ...

  2. 循环(数组循环、获取json数据循环)、each()循环详解

    return; // 退出循环(不满足,退出此次循环.下次满足条件,依然会走此循环)return false; //退出函数(退出所有) 一. 数组循环: html: <div class=&q ...

  3. lnmp二级域名配置相关

    阿里云那域名解析那有误读 我在偏远的电信网选择中国联通解析死活解析不出来 以上这么配置就对了....选择默认.瞬间解析出来.... 出于对nginx 配置不够熟悉 后来一点点理出来. 不带www 也正 ...

  4. 转:如何正确彻底删除webpack 全局或是局部?

    原文链接:如何正确彻底删除webpack 全局或是局部? 就需要卸载cli 配置webpack ,提示需要安装 webpack-cli,选择yes 后安装webpack-cli , 可是问题不断,所以 ...

  5. PAT甲级题分类汇编——序言

    今天开个坑,分类整理PAT甲级题目(https://pintia.cn/problem-sets/994805342720868352/problems/type/7)中1051~1100部分.语言是 ...

  6. 几个有益的 CSS 小知识

    样式的顺序 CSS 代码:   HTML 代码:   记得之前这是一道比较火的 CSS 考题,当时好像是有不少的人答错(30% 以上) 答案你们应该是知道的. 可以这样提升 CSS 性能 后代选择器 ...

  7. Z算法板子

    给定一个串$s$, $Z$算法可以$O(n)$时间求出一个$z$数组 $z_i$表示$s[i...n]$与$s$的前缀匹配的最长长度, 下标从$0$开始 void init(char *s, int ...

  8. ClickOnce 部署 API 以编程方式检查应用程序更新

    private void InstallUpdateSyncWithInfo() { UpdateCheckInfo info = null; if (ApplicationDeployment.Is ...

  9. centos安装rocketMQ

    1.下载安装包 http://rocketmq.apache.org/release_notes/ 这里选择 4.4.0 版本,点击进去 可以选择源码包或者二进制文件,这里选择二进制文件(ps:如果选 ...

  10. JS的DOM和BOM

    * JavaScript分三个部分: ECMAScript标准:JS的基本的语法 DOM:Document Object Model --->文档对象模型----操作页面的元素 BOM:Brow ...