作者:ShownSun
公众号:时沿科技


文章目录

  • Velodyne 64线激光雷达协议
    • 雷达简介
      • 适应的型号
      • 排列方式
      • 工作方式
      • 传输速率
      • UDP IP地址
    • 协议详解
      • 协议包格式
      • 传输数据格式
      • GPS时间戳格式
      • 状态数据格式
    • Veloview使用方法
      • 实时数据
      • 捕获数据

Velodyne 64线激光雷达协议

注释:最新的用户指南与编程手册可访问www.velodynelidar.com官网获取;

雷达简介

本文重点介绍协议的格式一些注意事项与初始校准数据的分析,其他只做简要介绍,可通过www.velodynelidar.com官网获取最新的用户指南与编程手册进行了解。

适应的型号

该协议适应于S2、S2.1版本的HDL-64E传感器;

排列方式

从下图可以看出64个激光收发器的排列方式很奇特,不是水平或者竖直排列。

64线激光器每个激光点的实际初始位置保存在xml为文件中,可以通过VeloView软件(https://www.paraview.org/veloview/)的安装目录share文件夹或者github上VeloView源码(https://github.com/Kitware/VeloView)对应的share文件夹位置找到。64线xml中包含的64个数据包校准信息rotCorrection、vertCorrection、distCorrection、distCorrectionX、distCorrectionY、vertOffsetCorrection、horizOffsetCorrection、focalDistance、focalSlope,分别表示方位角、俯仰角、矫正距离、矫正距离X、矫正距离Y等等初始校准数据。

如果自己设计的雷达工作方式单一,比如单线的激光雷达,从上到下扫描,扫完一列后在进行横行移动一个角度分辨率。那么校准信息很容易填写,只需要将64个数据包校准信息中的俯仰角vertCorrection平均分配一下,其他信息全部置零即可,如下图所示。

工作方式

下块激光从0号开始依次启动,直到最后一个下块激光器31号。上块激光从32号开始依次启动,直到最后一个上块激光器63号。也就是说,激光器32号和激光器0号同时工作,激光器33号和激光器1号同时工作,以此类推。
该传感器具有相同数量的上、下激光器。因此,当延时表中断时,每个数据对分别表示上块和下块。以太网数据包中的上、下块数据对具有相同的延迟值。

传输速率

UDP IP地址

传感器使用的是UDP包,可以通过Wireshark软件实时监控数据包来详细分析数据结构。默认的源(传感器)IP地址为192.168.3.043,默认的目的IP地址为192.168.3.255。如果要更改上面的任何一个IP地址,请执行命令# hdlipassssssssssdddddddddd $(大小写敏感)。
ssssssssssss为源12位IP地址;
dddddddddddd为目的12位IP地址;
Veloview软件可以支持实时的传感器流数据,对于IP的要求没有特别固定的要求,一定范围内的IP地址都支持。

协议详解

真实的采样数据可以通过Velodyne官网(https://velodynelidar.com/downloads/)下载使用,然后使用Veloview软件或者Wireshark软件打开进行分析。

协议包格式

传感器输出UDP以太网报文。每个数据包包含一个报头、一个发射数据和状态数据。数据包是集合了六个上块序列和六个下块序列的所有发射数据。上块激光首先采集距离、强度数据,然后采集下块激光数据。然后将数据包与状态和报头数据结合起来在以太网上传输UDP数据包。数据包以后进先出(LIFO)的顺序从最后一个字节开始传输。
状态数据总是包含一个4字节的GPS时间戳,表示从一小时开始的微秒数。另外,状态数据包含一种数据类型。其他的状态数据在不同的信息片段序列中旋转。
上述说的比较抽象,主要原因是激光器排列方式比较繁杂,水平线之上包含32个激光器,水平线之下包含32个激光器,且水平线上下的对应激光器同时工作,所以传输数据的时候,数据是一对一对的上下激光器数据。

比如从velodyne官网下载的32线雷达采样数据HDL32-V2_Tunnel.pcap(64线采样数据没有找到),使用wireshark打开后,选择其中一个长度为1248 byte长度的UDP数据包。结合上述图像HDL-64E中的协议格式,从图中可以分析得到,前两个字节EEFF表示upper,后面紧跟32个3byte的距离、强度数据,合起来就是100 byte,重复12次就是1200 byte,最后6 byte是时间戳与状态类型与值,32线的状态类型与值是固定的37 21(16进制)。
64线与32线不同的就是先发32个upper的距离强度数据,再发32个lower的距离强度数据,然后重复6次。还有一点不同的就是状态类型与值分别是37 a0。

传输数据格式

激光雷达传输数据包括2 byte的距离数据和1 byte的强度数据;先传输上32线激光器数据,再传输下32线激光器数据。

GPS时间戳格式

如果自己的产品没有这个信息,协议中的4 byte时间戳数据置零即可。

状态数据格式

这两个字节很重要,一般32线激光雷达对应的字节为37 21。64线激光雷达对应的字节为37 a0。可以看到到velodyne官网查看对应的文档或者从veloview源码中获取。

Veloview使用方法

实时数据

该选项主要用于实时显示激光雷达传感器传输的数据,需要选择对应线数的xml文件,配置LIDAR Port等一些信息。

捕获数据

该选项主要用于静态显示从wireshark捕获的数据包数据,选择pcap文件及对应的xml。

Velodyne 64线激光雷达协议相关推荐

  1. Velodyne 16线激光雷达-多雷达版本

    今天由于工作原因,进行了一番velodyne16线激光雷达的配置,也是第一次自己配置这个牌子的雷达.如下,人家的霸气履带车,跟我们自己的无人车比,确实霸气多了.我就不放全图了,还在开发中,不方便露脸. ...

  2. 【激光雷达】velodyne VLP-16线激光雷达驱动程序、相位锁、时钟同步测试总结

    目录 1.velodyne VLP-16线激光测试参考: 2.测试目的: 3.测试结果: 4.编写的测试代码 1.velodyne VLP-16线激光测试参考: 源码地址: https://githu ...

  3. 3999美元掀价格战,Velodyne宣布16线激光雷达降价50%

    3D视觉系统和先进的自动驾驶安全解决方案的全球领导者Velodyne LiDAR今天宣布,其无人驾驶用16线激光雷达现在可以面向全球客户降价50%. 新智元从Velodyne亚洲区总监翁炜处获悉,现在 ...

  4. 2022年全球市场多线激光雷达总体规模、主要生产商、主要地区、产品和应用细分研究报告

    本文研究全球市场.主要地区和主要国家多线激光雷达的销量.销售收入等,同时也重点分析全球范围内主要厂商(品牌)竞争态势,多线激光雷达销量.价格.收入和市场份额等.针对过去五年(2017-2021)年的历 ...

  5. SLAM实操入门(六):连接Velodyne的16线激光雷达并可视化

    文章目录 前言 1 Velodyne激光雷达 2 配置网络 3 创建ROS工程 4 启动并可视化 5 录包与播放 总结 前言 好久没更新这部分了,最近在搞中期答辩的东西,简单补充一部分多线激光雷达建图 ...

  6. 单线激光雷达与多线激光雷达

    单线激光雷达:实际上就是一个激光发射器(发出的线束是单线),再加一个旋转扫描仪.扫描出来的就是一个二维平面的图(2D激光) . 单线激光雷达特点: 便:一路发射一路接收,结构简单,使用方便:高:扫描速 ...

  7. SLAM实操入门(七):使用Velodyne16线激光雷达与A-Loam进行三维SLAM

    文章目录 前言 1 A-LOAM 2 预备条件 2.1 Ubuntu和ROS 2.2 Ceres Solver(Ceres求解器) 2.3 PCL(Point Cloud Library) 3 创建A ...

  8. 镭神16线激光雷达跑SC-LeGo-LOAM算法

    一.运行环境 环境:ubutu18.04+ros:melodic+pcl:1.8+gtsam+metis 环境配置: Eigen 3.3.4 PCL 1.8.1 (1.11不能用) ceres 2.0 ...

  9. 多线激光雷达+imu的gazebo仿真

    多线激光雷达+imu的gazebo仿真 前言:在做2D/3D slam的课题研究时,往往我们手里头没有昂贵的多线激光雷达和惯性传感器,ros提供了相应的传感器插件,通过插件可以在物理仿真环境下,模拟传 ...

最新文章

  1. Hopfiled 神经网络实例解释
  2. Gastroenterology:住院期间COVID-19患者肠道菌群的变化
  3. R语言data.table导入数据实战:data.table生成新的数据列(基于已有数据列)、生成多个数据列
  4. 深入理解java中的ArrayList和LinkedList
  5. ajax数据传送中文乱码,springmvc 发送ajax出现中文乱码的解决方法汇总
  6. 3DSlicer23:Module-Create Loadable
  7. CSMA/CD工作原理
  8. C# 枚举(Enum)
  9. python16_day37【爬虫2】
  10. python hashlib安装_Hashlib加密,内置函数,安装操作数据库
  11. flex 发送到java_(转)java与flex通信
  12. mysql不识别生僻字_mysql生僻字插入失败解决方案
  13. linux源代码阅读笔记 高速缓冲区管理
  14. SQlite数据库的C编程接口(七) 数据库锁定(Database Locking) ——《Using SQlite》读书笔记
  15. 香港公司章程中英文样本
  16. 纯css单击事件,纯css实现点击事件
  17. 吴伯凡-认知方法论-原始舒适区=0认知
  18. linux smtp ip伪造,邮箱伪造之搭建匿名SMTP服务器
  19. xmapp启动mysql出现Error: MySQL shutdown unexpectedly.
  20. 打印机文件服务器主机,打印机服务器主机名称是什么原因

热门文章

  1. 数独项目Last弹:网络识别PIAN
  2. 低调的华丽:从服务器开发的角度认识 asp.net 中的回调技术
  3. radiogroup多选_为何多组RadioGroup 里面的RadioButton 会出现多选状态​?
  4. 华为nova6开启开发者模式,连接USB
  5. 使用tps5430制作正负DC-DC降压电源,tps7a47和tps7a33制作正负LDO线性电源
  6. SpringBoot安全登录验证
  7. 软件测试行业女生真的没有一席之地了吗,还能入行软件测试吗?
  8. Tableau-仪表板
  9. c语言 r语言 java,R语言rJava包安装载入及JAVA环境配置
  10. 华美天气(数据来源:和风天气 API)