使用 `tcpdump` 抓取 LiDAR 网络数据包详解

发布于:2025-04-10 ⋅ 阅读:(36) ⋅ 点赞:(0)

在调试机器人系统或自动驾驶平台时,我们经常需要分析网络中的 LiDAR(激光雷达)数据流。本文将介绍如何使用 tcpdump 工具对指定 IP 的数据包进行抓取和分析,特别是 LiDAR 数据的典型 UDP 报文。


一、什么是 tcpdump

tcpdump 是 Linux 下非常强大的网络抓包工具。它可以监听网络接口并打印出经过的数据包详细信息。主要用于:

  • 网络调试
  • 性能分析
  • 数据流量监控
  • 安全审计

在 LiDAR 应用场景中,tcpdump 可帮助我们确认设备是否正常发送数据、包的格式是否正确、以及是否存在丢包等问题。


二、基本抓包命令

下面是我在一个 ROS2 项目中使用的命令:

sudo tcpdump host 192.168.1.201 -vv

参数说明:

  • sudo:抓包需要管理员权限
  • tcpdump:命令本体
  • host 192.168.1.201:只抓与该 IP 地址通信的包
  • -vv:显示更详细的信息(verbose level 2)

三、抓包结果解析

抓到的部分数据如下所示:

15:28:08.792372 IP (tos 0x0, ttl 255, id 57174, offset 0, flags [none], proto UDP (17), length 1408)
    192.168.1.201.56300 > lubancat.56301: [udp sum ok] UDP, length 1380

含义解释:

字段 含义
15:28:08.792372 抓包时间
IP 使用的是 IP 协议
ttl 255 生存时间,通常为 255 表示是局域网设备
proto UDP (17) 协议类型为 UDP
length 1408 整个 IP 包的总长度
192.168.1.201.56300 发送端 IP 和端口
lubancat.56301 接收端 IP(主机名)和端口
UDP, length 1380 UDP 数据部分长度

四、LiDAR 数据特征分析

观察抓包结果:

  • 56300 / 56301 通道传输的是大数据包(1380字节) → 很可能是 LiDAR 点云数据
  • 56400 / 56401 通道传输的是小数据包(60字节) → 可能是控制指令或心跳信号

这说明设备在通过 UDP 向本机不断推送高频数据,很可能是 LiDAR 输出。


五、扩展用法建议

你还可以用以下方式提升分析效率:

1. 抓特定端口

tcpdump udp port 56301 -X
  • -X:以十六进制 + ASCII 显示数据,方便看原始字节内容

2. 保存为 pcap 文件

sudo tcpdump host 192.168.1.201 -w lidar_data.pcap

然后可以使用 Wireshark 打开分析。

3. 只看某个网卡

tcpdump -i eth0 udp port 56301

六、结语

tcpdump 是 LiDAR 调试中非常实用的工具。通过抓包你可以快速定位数据是否发出、格式是否正确、频率是否稳定等问题。建议搭配 Wireshark 一起使用,效果更佳。