数据_解析pcap文件为pcd文件-禾赛

Pcap文件

1.厂商在存储硬件的数据包的时候, 是通过存储pcap包实现的,
      如何读取pcap包并从中解析出真正有用的数据	  
Linux    
    libpcap(Packet Capture Library)是Unix/Linux平台下的开源网络数据包捕获函数库
方式三
  1.汽车说明书那样,需要用才看,
  2.通览一遍后时不时还要拿出来看看细节
  3.逐步精深

禾赛激光雷达的数据校准文件

转换命令 
 correction_file="./params/Pandar128_Correction.csv"
 firetimes_file="./params/Pandar128_Firetimes.csv"
 
   ./PandarHS-i input_file.pcap -o output_pcd_dir -c correction_filename -f firetimes_filename	
点云标定修正csv文件。里面记录了工厂经过标准方法检测后雷达实际的线束分布 
     Hesai在后续的雷达批次中会这个修正值嵌入雷达的内部软件层面	
	 
激光雷达每一帧的数据长度固定为1248字节,前42字节的前数据包标识、12组数据包、4字节时间戳和最后两字节雷达型号参数	 

参数文件

校准文件  Channel 128线==共计128行数据从1-128  correction - 校正     correlation “相关性”“关联”或“相互关系”
 cor rection    方向;反应  cor relation
 Channel	Elevation	Azimuth
例子	
角度修正文件(建议使用雷达自身的角度修正文件)	
  Channel,Elevation,Azimuth
   1,14.378976,3.260407
   2,13.412330,3.251593
通道发光时序(发光时刻修正文件)   
    Firetimes 
    operation mode,0,0,0,0,0,0,0,0,2,2,2,2,3,3,3,3
    angle state,0,0,1,1,2,2,3,3,0,0,1,1,0,0,1,1
    1,4436,5201,0,0,4436,4436,0,0,4436,5201,4436,4436,4436,5201,4436,4436
 
如果程序无法正常运行,需要设置export一下依赖库 # export LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH

雷达数据处理

 雷达获取的点云数据先进行预处理(pre-processing),经过剪裁(clipper),动态畸变矫正(distortion correction),地面滤波(ground removal)后,
 对点云特征进行聚类(clustering)和	
  冗余(redundancy)
  
点云在高速驾驶过程中,会出现一定程度的偏移
 良好的时序对齐
 sudo apt update && sudo apt install -y libpcl-dev libpcap-dev libyaml-cpp-dev openssl
##注意cd的位置 
 cd HesaiLidar_SDK_2.0
 mkdir -p build && cd build
 cmake -DCMAKE_BUILD_TYPE=Release ..
 make -j$(nproc)

 cd HesaiLidar_SDK_2.0/tool
 mkdir build
 cd build
 cmake ..
 make

can格式

 CAN协议支持两种报文格式,其唯一的不同是标识符(ID)长度不同,
    标准格式为11位,扩展格式为29位  
不同的惯导设备,采用的坐标系是不同的,有的用FRD,有的用FLU。例如ROS就缺省使用FLU
   euler2 = [pos_roll, -pos_pitch, 90.0 - pos_yaw]
   r2 = RRR.from_euler('xyz', euler2, degrees=True)
   rotation_matrix2 = r2.as_matrix()
   
      roll 从FRD坐标系转到FLU坐标系的转换公式为:roll_FLU = - roll_FRD
      pitch从FRD坐标系转到FLU坐标系的转换公式为:pitch_FLU = - pitch_FRD
      yaw从END坐标系转到ENU坐标系的转换公式为:  yaw_ENU = PI/2 - yaw_END
  自身坐标系之FRD坐标:X轴向前,Y轴向右,Z轴向下。
  自身坐标系之FLU坐标:X轴向前,Y轴向左,Z轴向上。


  世界坐标系之NED坐标:X轴向北,Y轴向东,Z轴向下      北东地坐标系(NED)  对应的IMU载体坐标系是前右下 欧拉角旋转顺序:z-y-x
  世界坐标系之ENU坐标:X轴向东,Y轴向北,Z轴向上	  东北天坐标系(ENU)   对应的IMU载体坐标系是右前上 欧拉角旋转顺序:z-x-y  
   
 旋转顺序定义是否内旋或外旋  
 
 
 在SLAM、无人机导航等领域,通常采用Tait–Bryan角(如东北天坐标系中的偏航、俯仰、横滚),而航空航天可能使用Proper Euler角。
 两者核心差异在于旋转轴的选择和顺序,    
 
 若已知某顺序的欧拉角想转换为另一顺序,通常需先将欧拉角转为旋转矩阵或四元数,
 
导远定义的顺时针规则与国际规则是相反的。 
右手法则的正方向
    国际规则:右手拇手指向坐标轴正向,四指自然弯曲,四指弯曲的方向即为逆时针方向。
    导远规则:右手手臂伸直,手里握钟,手臂指向即坐标轴正向,钟的指针旋转方向即顺时针方向		

 右手定则是用来规定绕某轴旋转的正方向
        01.生活中所谓的逆时针方向为正,是由于人们平时的习惯,约定俗成的。
        02.逆时针旋转不一定是正方向,它只是用来描述旋转方向 
     顺时针逆时针旋转来描述更容易让人明白是怎样旋转的,和顺时针逆时针旋转的正反无关
	 右手定则是用来规定绕某轴旋转的正方向。  

参考

https://github.com/HesaiTechnology/HesaiLidar_SDK_2.0/blob/master/docs/parsing_pcap_file_data_offline.md	
https://github.com/HesaiTechnology/HesaiLidar_SDK_2.0/blob/v2.0.10/docs/save_point_cloud_data_as_a_pcd_file.md	
posted @ 2025-09-09 17:41  辰令  阅读(35)  评论(0)    收藏  举报