VLP16线用户手册

文档 

传感器数据

分组类型和定义

传感器产生两种类型的数据包:数据包和位置数据包。位置包有时也被称为遥测包或GPS包。

数据包包括传感器测量到的三维数据以及返回光脉冲的表面的校准反射率。数据包中还包含一组方位角和一个4字节的时间戳,以及两个标识传感器模型和返回模式的工厂字节

了解模型和返回模式可以为您的软件提供信息,从而自动调整以适应不同的数据格式。如果您将传感器配置为使用GPS时间源同步,则位置包提供接收到的最后一条GPRMC NMEA消息的副本。

位置包还提供一个字节来标识PPS信号的状态,以便与时间源同步。

定义

下面几节将解释传感器数据包构造。

发射序列

当传感器中的所有激光器发射时,就会发生发射序列。它们按特定于给定产品线的顺序发射。包括激光充电时间。发射序列有时被称为发射群。

激光通道

激光通道是单个903纳米激光发射器和探测器对。每个激光通道固定在相对于传感器的水平面的特定仰角上。通过特定激光通道的数据包位置来推断其仰角。



数据点

数据点是通过一个激光通道测量激光脉冲的反射。

数据点在数据包中表示为三个字节——两个字节的距离和一个字节的校准反射率。距离是一个无符号整数。它有2毫米粒度。因此,报告值51,154表示102,308 mm或

102.308米。校准反射率的报告在0到255的范围内,正如在第32页的关键特性所描述的。仰角(ω)推断是基于数据点的位置在一个数据块。

方位角

双字节方位值(α)标志字节后出现在每个数据块的开始。方位角是一个无符号整数。它表示一个百分之一的角度。因此,原始值27742应该解释为277.42°。

数据块

每个数据块中都包含来自16个激光器的两个发射序列的信息。每个包包含来自的数据12个数据块中有24个发射序列。每个数据块只返回一个方位.

一个数据块由100字节的二进制数据组成:

  • 两个字节的标志
  • 两个字节的方位角
  • 32个数据点

[2+2+(32x3)]=100字节。

建议: 为了计算时间偏移量,建议将数据包中的数据块编号为0到11

时间戳

4字节时间戳是一个32位无符号整数,用于标记第一个数据块的第一个触发序列中的第一个数据点的时刻。时间戳的值是自最小时开始经过的微秒数。num- ber的范围从0到3,599,999,999,一小时内的微秒数。

时间戳是至关重要的,因为它被地球参考软件用来匹配从惯导系统得到的相应数据。惯导系统为俯仰、横摇、偏航、纬度、经度和海拔提供一系列的时间戳值。从INS(惯导)通过将数据点的时间与时间戳数据匹配,用户的软件可以用数学方法将数据从传感器的坐标系转换为基于地球的参考坐标系。时间戳使用GPS/INS的UTC时间来进行匹配。

当传感器启动时,它开始使用内部时间参考来计算微秒,然而,传感器可以通过UTC时间同步它的数据,所以你可以确定每个激光在任何特定的包的准确发射时间。

UTC同步要求用户提供的GPS/INS接收器来生成同步的PPS信号和NMEA GPRMC定位消息。GPRMC定位消息提供UTC时间的分秒。

传感器从GPRMC消息中读取分秒数,并使用这些信息将传感器的时间戳设置为过去一小时的微秒数。

工厂字节

从固件版本3.0.29.0开始,每个数据包都包含一对字节,称为工厂字节(它们的值指示方位角和数据点在包中的组织方式。

它们的包位置、值的意义如下:



返回模式字节表示分组的方位和数据点是如何组织的。每一个传感器模式线有垂直排列的激光,角度稍微有点不同。

使用Product ID字节识别正确的垂直(或仰角)集合。

数据包结构

数据包长度为1248字节,通过端口2368上的UDP数据包发送。数据包由42字节的协议报头、12个数据块、一个4字节的时间戳和两个工厂字节组成。

数据包有两种格式:

  • 单回波模式
  • 双回波模式

单返回模式的数据包结构:



双回波模式的数据包结构:

在双回波模式中传感器为每个方位角发射发送一对数据块。

奇数编号的块(1,3,…, 9, 11)包含最强或次强的返回值和偶数块(0,2,...,8,10)为最后一次回波。

如果最强回波也是最后的回波,那么次强的回波也会产生。如果只有一个回波被探测到。数据将会被标志位偶数|奇数的块对(0|1, 2|3, 4|5, 6|7, 8|9, 10|11).

下面的图显示了单包在单返回模式下的Wireshark跟踪。数据相对于数据包中初始字节的位置/偏移量显示在括号中。

包的开始:



包的结束:

VLP16线用户手册.md的更多相关文章

  1. CentOS7修复python拯救yum - 转载

    原文:http://blog.51cto.com/welcomeweb/2132654 本人正在吹着空调,喝着茶水,然后qq头像抖了两下,业务开发同学给我打了个招呼,“忙么?帮个忙可以不?” 这很明显 ...

  2. Lidar激光雷达市场

    Lidar激光雷达市场 近年来,激光雷达技术在飞速发展,从一开始的激光测距技术,逐步发展了激光测速.激光扫描成像.激光多普勒成像等技术,如今在无人驾驶.AGV.机器人等领域已相继出现激光雷达的身影. ...

  3. R_Studio(学生成绩)对数据缺失值md.pattern()、异常值分析(箱线图)

    我们发现这张Gary.csv表格存在学生成绩不完全的(五十三名学生,三名学生存在成绩不完整.共四个不完整成绩) 79号大学语文.高等数学 96号中国近代史纲要 65号大学体育 (1)NA表示数据集中的 ...

  4. AnyCAD .Net SDK 用户手册 v2013.1

    AnyCAD .Net SDK 用户手册 v2013.1 1. 简介 AnyCAD .Net SDK为.Net4.0开发者提供简单易用的三维建模和三维可视化的API.SDK主要由三维建模的API和可视 ...

  5. 分析一下FastDFS_java_client中TestClient.java这个文件以及跟它关联的这条线

    本来先打算上个图来说明一下这条线的,可是我的画图工具还没有安装好,我先把跟TestClient.java相关的几个文件代码贴上来,但是由于代码行数还是不少的,所以请大家阅读文章的时候先不要展开代码,等 ...

  6. 为项目编写Readme.MD文件

    了解一个项目,恐怕首先都是通过其Readme文件了解信息.如果你以为Readme文件都是随便写写的那你就错了.github,oschina git gitcafe的代码托管平台上的项目的Readme. ...

  7. .md即markdown文件的基本常用编写语法(图文并茂)

    序言: 很久没有写博客了,感觉只要是不写博客,人就很变得很懒,学的知识点感觉还是记不住,渐渐地让我明白,看的越多,懂的越少(你这话不是有毛病吗?应该是看的越多,懂的越多才对),此话怎讲,当你在茫茫的前 ...

  8. .md即markdown文件的基本常用编写语法

    因为现在的前端基本上都用上了前端构建工具,那就难免要写一些readme等等的说明性文件,但是这样的文件一般都是.md的文件,编写的语法自然跟其他格式的文件有所区别,本文也是我学习写markdown文件 ...

  9. CSDN新版Markdown编辑器(Alpha 2.0版)使用示例(文首附源码.md文件)

    CSDN新版Markdown编辑器(Alpha 2.0版) 使用示例 附 本文的Markdown源码: https://github.com/yanglr/AlgoSolutions/blob/mas ...

随机推荐

  1. JavaScript this用法

    当this为全局变量时,this为window对象 <script> // 在全局变量中,this为window window.onload= function(){ alert(wind ...

  2. Swift基础学习笔记 一

    之前学习过一段时间swift,由于目前开发的项目还是用的OC,一段时间不看swift又基本忘干净了,好记性不如烂笔头,还是用博客记录一下自己学的东西吧. 基本数据类型: 1.常量(let)和变量(va ...

  3. React项目的最佳实践

    项目代码 从零开始简书项目 ​ 从我第一次接触vue这个框架已经过了快一年的时间,陪伴我从前端小白到前端工程师,前端时间也是使用了 ts+vue这样的组合写代码,明显感觉vue与ts似乎没有产生比较好 ...

  4. Mysql数据库报错1264

    数据库报错 [Err] 1264 - Out of range value adjusted for column 'ID' at row 1 修改MYSQL下的my.ini, 将 sql-mode= ...

  5. arm平台的调用栈回溯(backtrace)

    title: arm平台的调用栈回溯(backtrace) date: 2018-09-19 16:07:47 tags: --- 介绍 arm平台的调用栈与x86平台的调用栈大致相同,稍微有些区别, ...

  6. 用gogs搭建git服务器

    Gogs 是一款极易搭建的自助 Git 服务. Gogs 的目标是打造一个最简单.最快速和最轻松的方式搭建自助 Git 服务.使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 G ...

  7. HIVE-分桶表的详解和创建实例

    我们学习一下分桶表,其实分区和分桶这两个概念对于初学者来说是比较难理解的.但对于理解了的人来说,发现又是如此简单. 我们先建立一个分桶表,并尝试直接上传一个数据 buckets row format ...

  8. 20145226夏艺华 《Java程序设计》第7&8周学习总结、实验一

    [实验一]http://www.cnblogs.com/bestixyh/p/6358734.html [第7周]http://www.cnblogs.com/bestixyh/p/6380475.h ...

  9. 苏州Uber优步司机奖励政策(4月18日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  10. 【转载】关于RenderTarget的注意事项

    原文:关于RenderTarget的注意事项 1. 设置一个RenderTarget会导致viewport变成跟RenderTarget一样大 2. 反锯齿类型必须跟DepthStencilBuffe ...