Velodyne 64线激光雷达协议
作者: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线激光雷达协议相关推荐
- Velodyne 16线激光雷达-多雷达版本
今天由于工作原因,进行了一番velodyne16线激光雷达的配置,也是第一次自己配置这个牌子的雷达.如下,人家的霸气履带车,跟我们自己的无人车比,确实霸气多了.我就不放全图了,还在开发中,不方便露脸. ...
- 【激光雷达】velodyne VLP-16线激光雷达驱动程序、相位锁、时钟同步测试总结
目录 1.velodyne VLP-16线激光测试参考: 2.测试目的: 3.测试结果: 4.编写的测试代码 1.velodyne VLP-16线激光测试参考: 源码地址: https://githu ...
- 3999美元掀价格战,Velodyne宣布16线激光雷达降价50%
3D视觉系统和先进的自动驾驶安全解决方案的全球领导者Velodyne LiDAR今天宣布,其无人驾驶用16线激光雷达现在可以面向全球客户降价50%. 新智元从Velodyne亚洲区总监翁炜处获悉,现在 ...
- 2022年全球市场多线激光雷达总体规模、主要生产商、主要地区、产品和应用细分研究报告
本文研究全球市场.主要地区和主要国家多线激光雷达的销量.销售收入等,同时也重点分析全球范围内主要厂商(品牌)竞争态势,多线激光雷达销量.价格.收入和市场份额等.针对过去五年(2017-2021)年的历 ...
- SLAM实操入门(六):连接Velodyne的16线激光雷达并可视化
文章目录 前言 1 Velodyne激光雷达 2 配置网络 3 创建ROS工程 4 启动并可视化 5 录包与播放 总结 前言 好久没更新这部分了,最近在搞中期答辩的东西,简单补充一部分多线激光雷达建图 ...
- 单线激光雷达与多线激光雷达
单线激光雷达:实际上就是一个激光发射器(发出的线束是单线),再加一个旋转扫描仪.扫描出来的就是一个二维平面的图(2D激光) . 单线激光雷达特点: 便:一路发射一路接收,结构简单,使用方便:高:扫描速 ...
- 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 ...
- 镭神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 ...
- 多线激光雷达+imu的gazebo仿真
多线激光雷达+imu的gazebo仿真 前言:在做2D/3D slam的课题研究时,往往我们手里头没有昂贵的多线激光雷达和惯性传感器,ros提供了相应的传感器插件,通过插件可以在物理仿真环境下,模拟传 ...
最新文章
- Hopfiled 神经网络实例解释
- Gastroenterology:住院期间COVID-19患者肠道菌群的变化
- R语言data.table导入数据实战:data.table生成新的数据列(基于已有数据列)、生成多个数据列
- 深入理解java中的ArrayList和LinkedList
- ajax数据传送中文乱码,springmvc 发送ajax出现中文乱码的解决方法汇总
- 3DSlicer23:Module-Create Loadable
- CSMA/CD工作原理
- C# 枚举(Enum)
- python16_day37【爬虫2】
- python hashlib安装_Hashlib加密,内置函数,安装操作数据库
- flex 发送到java_(转)java与flex通信
- mysql不识别生僻字_mysql生僻字插入失败解决方案
- linux源代码阅读笔记 高速缓冲区管理
- SQlite数据库的C编程接口(七) 数据库锁定(Database Locking) ——《Using SQlite》读书笔记
- 香港公司章程中英文样本
- 纯css单击事件,纯css实现点击事件
- 吴伯凡-认知方法论-原始舒适区=0认知
- linux smtp ip伪造,邮箱伪造之搭建匿名SMTP服务器
- xmapp启动mysql出现Error: MySQL shutdown unexpectedly.
- 打印机文件服务器主机,打印机服务器主机名称是什么原因
热门文章
- 数独项目Last弹:网络识别PIAN
- 低调的华丽:从服务器开发的角度认识 asp.net 中的回调技术
- radiogroup多选_为何多组RadioGroup 里面的RadioButton 会出现多选状态​?
- 华为nova6开启开发者模式,连接USB
- 使用tps5430制作正负DC-DC降压电源,tps7a47和tps7a33制作正负LDO线性电源
- SpringBoot安全登录验证
- 软件测试行业女生真的没有一席之地了吗,还能入行软件测试吗?
- Tableau-仪表板
- c语言 r语言 java,R语言rJava包安装载入及JAVA环境配置
- 华美天气(数据来源:和风天气 API)