news 2026/10/8 15:31:45

AT128激光雷达Ubuntu 20.04实时点云显示与ROS集成保姆级教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AT128激光雷达Ubuntu 20.04实时点云显示与ROS集成保姆级教程

说实话,AT128 这雷达我已经在 Ubuntu 20.04 上跑过好几轮了,每次帮同事配环境还是会碰到一些奇奇怪怪的问题。这篇东西我早就该整理出来,前前后后踩过的坑加起来,比教程本身还长。网上虽然也能搜到零散的安装记录,但大部分都卡在 PandarView 2 装不上、点云出不来这一步就断了,很少有一篇能让你从头到尾照着敲完就直接看到实时点云的文章。

这篇保姆级教程要解决的就是四件事:把 Ubuntu 20.04 的网络环境配好,让电脑能拿到 AT128 的数据包;把官方可视化工具 PandarView 2 顺利装上,绕开我在安装过程中遇到的各种依赖报错;用工具把实时点云显示出来,并且能判断数据到底正不正常;最后再往 ROS 方向走一步,告诉你日后开发时怎么用 RViz 来接替 PandarView。不管你是刚拆箱的研究生,还是帮实验室调设备的技术支持,只要手头有一台 AT128、一台装了 Ubuntu 20.04 的电脑,这篇文章应该都能帮你省下至少一个通宵。

1. AT128 雷达与点云应用场景:先搞清楚你要面对的是什么

1.1 AT128 不是“大号 Velodyne”,半固态扫描方式决定了很多使用习惯要改

很多人第一次拿到 AT128,下意识会把它和传统的 64 线、128 线机械旋转雷达摆在一起比,觉得无非是线数更多、角度更广。这个理解方向对了一半,但 AT128 的本质区别在于它是半固态激光雷达,内部通过转镜结构实现扫描,而不是整个雷达头部绕垂直轴旋转。所以它的水平视场角不是 360 度,而是 120 度左右,垂直视场角大约 25 度,测距能力最远能到 200 米,点频在 153.6 万点每秒上下,波长是 905 纳米。

这样带来的直接后果是:如果你之前用惯了机械式雷达,指望单台设备覆盖车辆周围一圈,那拿到 AT128 之后这个习惯要改。AT128 的应用场景多数是安装在车头或者车顶前向,用多台拼接来覆盖 360 度环境。当然,单台做前向感知、路侧感知、园区巡检也完全没问题,数据输出依然是标准的三维点云,坐标、距离、反射强度这些信息都包含在内。

1.2 点云数据流向:雷达到电脑,这条链路每个环节都可能出问题

AT128 内部已经完成了从激光发射、信号采集到点云计算的全过程,对外输出的直接就是标准 UDP 以太网数据包。换句话说,电脑端不需要任何专用的采集卡,只需要一张千兆网卡、一根网线,把雷达的数据包接住,然后交给软件解析渲染。

这里我习惯打一个比方:雷达就像一家快递仓库,把每一帧点云数据打包成一个个 UDP 包裹,通过网络发给你;电脑上运行的可视化软件就是快递分拣员,负责拆包、整理、把点云画到屏幕上。整个过程看起来简单,但任何一个环节出问题都会直接影响结果。网卡没识别、IP 配置错了、防火墙拦截、数据包被网线质量拖累导致丢包、可视化软件依赖缺失,这些我在实际调试里都遇到过,后面每一节都会对应展开讲。

1.3 推荐学习路线:PandarView 2 验证、SDK 二次开发、ROS 集成

拿到雷达之后,我建议你按照三个阶段来推进。第一阶段用官方工具 PandarView 2 做整机验证,确认设备是好的、网络通了、点云正常,这个阶段的目标是“看到点云”。第二阶段再去看官方提供的 SDK 和驱动代码,理解点云数据是怎么解析出来的,为后续写自己的应用打基础。第三阶段是接入 ROS,无论是跑 SLAM、做目标检测还是标定,ROS 环境才是真正干活的舞台。

很多人一上来就想着直接编译 ROS 驱动,结果连最基本的数据链路都没有验证过,最后出了问题根本分不清是硬件还是软件的问题。所以我这篇教程会严格按这个顺序来,先把 PandarView 2 跑通,再讲 ROS 集成,这样排错的范围可以大大缩小。

2. Ubuntu 20.04 环境准备:网卡、静态 IP、数据包验证一条龙

2.1 网络拓扑与接线:直连比路由器靠谱

AT128 采用的是标准以太网输出,雷达端通常是一个工业级网口,电脑端用普通千兆网口就能对接。连接方式上,我强烈建议你直接用网线把雷达和电脑连起来,也就是“点对点直连”,不要图方便把雷达插到实验室的交换机或者路由器上。

原因有二。第一,AT128 的数据量不小,每秒上百万个点,换算成网络带宽大约是几十兆字节每秒的 UDP 流量,如果交换机上有其他大流量设备在跑,丢包的概率会明显上升。第二,雷达通过 UDP 广播发送数据,如果接到公司或实验室的大网里,这些广播包会扩散到整个局域网,既影响别人,也可能被路由器的防火墙策略误伤。直连就清爽得多,一台电脑一个雷达,没有中间商赚差价。

上电的时候也要注意,AT128 的供电是通过专用线束完成的,电压范围一般是 9V 到 36V 直流,常见的是 12V 或 24V 供电。千万不要自己乱接线,最好使用雷达包装里附带的原装线缆。上电后,雷达内部的转镜会起转,工作正常时能听到轻微的风扇声和转镜运转声,状态指示灯也会亮起。

2.2 配置静态 IP:让电脑和雷达处于同一网段

雷达出厂时一般会有一个默认 IP 地址,通常在 192.168.1.x 这个网段,具体以你拿到设备附带的手册为准,常见的是 192.168.1.201。雷达不会主动去请求 DHCP 地址,它就像一个固定地址的服务器,一直在往外发数据。所以电脑端的 IP 必须手动设置成与雷达同一个网段,才有可能收到数据。

举个例子,如果雷达默认 IP 是 192.168.1.201,那么电脑的 IP 可以设置为 192.168.1.102,子网掩码 255.255.255.0,网关不用填。在 Ubuntu 20.04 上,我建议直接用 netplan 来配置,简单直接。打开配置文件:

sudo vim /etc/netplan/01-netcfg.yaml

写入以下内容:

network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: no addresses: - 192.168.1.102/24

注意把 enp0s3 换成你电脑实际网卡的名字,可以用命令ip a查看。保存后执行:

sudo netplan apply

然后检查一下网卡 IP 是否生效:

ip addr show enp0s3

这里补充一句:我不推荐在 Ubuntu 桌面版里用图形界面的网络设置去改 IP,因为有时候 NetworkManager 和 netplan 的配置会互相覆盖,改了半天发现 IP 没变。用 netplan 统一管理,至少在服务器端和桌面端都能保持一致行为。

2.3 用 tcpdump 验证雷达数据包是否到达

IP 配好之后,先别急着打开 PandarView,先确认数据包是不是真的到了电脑网卡里。这里推荐用 tcpdump 抓包看一眼。执行:

sudo tcpdump -i enp0s3 udp -c 100

如果网卡名是 enp0s3,并且雷达已经上电、网线也接好了,应该能看到不断刷新的 UDP 包,源地址是雷达的 IP,端口一般是雷达数据输出端口。看到这些数据包,就说明物理链路和数据链路都已经通了,下一步装软件才有意义。

如果 tcpdump 什么都没有输出,不要急着去装驱动,先回头查三层问题:网线有没有松、网卡有没有起来、IP 是不是在同一网段。我遇到过很多次,折腾了半天软件,最后发现问题只是网线插错了口。

3. PandarView 2 安装避坑指南:依赖、权限、GLIBC 这些坑我都替你踩过了

3.1 PandarView 2 是什么,为什么我建议你先用官方工具验证

PandarView 2 是禾赛官方提供的点云可视化软件,可以用来实时显示雷达点云、调整视角、查看距离和反射强度信息。和后来我们做开发常用的 RViz 相比,PandarView 2 的优势在于它不需要搭建 ROS 环境,不需要编译任何驱动,装好之后直接配置 IP 就能连接雷达,非常适合做设备验收和快速验证。

从拿到手到跑通,我的经验是:先把这个工具点亮,确认雷达本身没问题,然后再去碰 ROS 那套东西。否则你就得在一个充满未知变量的环境里同时调试硬件和软件,出了问题很难定位。

3.2 安装前依赖准备:一次性安装齐全

PandarView 2 是图形界面程序,依赖 Qt、OpenGL、libpcap 这些库。很多人装完之后双击图标没有反应,或者终端里报错找不到某个 so 文件,十有八九就是缺依赖。建议在安装之前一次性补齐:

sudo apt update sudo apt install -y libpcap-dev libqt5core5a libqt5gui5 libqt5widgets5 libgl1-mesa-dev libglu1-mesa-dev

如果你的电脑装了独立显卡,尤其是 NVIDIA 显卡,建议同时装好显卡驱动。PandarView 2 渲染点云时对 OpenGL 的要求比较高,集显虽然也能跑,但点云一多旋转视角就会掉帧。NVIDIA 驱动装好之后,可以用glxinfo | grep "OpenGL renderer"确认当前使用的渲染器是不是独立显卡。

注意,glxinfo 属于 mesa-utils 包,如果提示找不到命令,先执行:

sudo apt install -y mesa-utils

3.3 安装与启动三步走

拿到 PandarView 2 的安装包后,一般是一个压缩包或者一个可执行文件。这里以压缩包为例说明完整流程。

第一步,解压。假设压缩包在当前用户的主目录下:

cd ~ tar -xzvf PandarView2_xxx.tar.gz

第二步,进入解压出来的目录,给可执行文件加权限。有些压缩包解压之后文件没有可执行权限,直接运行会提示 Permission denied:

cd PandarView2_xxx chmod +x PandarView2

第三步,运行。这里有一个重点:如果你采用以太网直连的方式抓取雷达数据,PandarView 2 抓包时可能涉及 socket 权限问题,普通用户执行会提示无法打开网络设备。我建议先用 sudo 启动:

sudo ./PandarView2

如果你的系统是桌面版且当前用户在 sudo 组,也可以将用户加入 sudo 组后继续用这种方式。当然,如果你是在自己控制的机器上做实验,sudo 运行是最省事的方案。

3.4 高频报错集合(附解决办法)

这里我整理一下 PandarView 2 安装和启动时最高频的几个报错,每个都是我亲身遇到过的,或者帮别人排查过的,直接对号入座就能解决。

报错信息根本原因解决方法
error while loading shared libraries: libpcap.so.1缺少 libpcap 运行库安装 libpcap-dev
cannot open shared object file: libQt5Core.so.5Qt5 核心库缺失安装 libqt5core5a 等 Qt5 依赖
QXcbConnection: Could not connect to display没有图形环境或 DISPLAY 变量错误确认在桌面环境运行,或 export DISPLAY=:0
socket: Operation not permitted权限不足,无法抓包使用 sudo 启动
启动后窗口黑屏 / 画面不刷新OpenGL 渲染异常检查显卡驱动,试用 mesa-utils 确认渲染器类型
./PandarView2: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_xx not found系统 GLIBC 版本低于软件要求确认 Ubuntu 20.04 已更新到最新补丁,必要时升级系统

最后一个 GLIBC 问题比较隐蔽,因为 Ubuntu 20.04 的 GLIBC 版本可能因为长期没有执行过sudo apt upgrade而停留在比较旧的版本。遇到这种情况,先跑一下sudo apt update && sudo apt upgrade,把系统基础库更新一遍,然后再运行软件。

4. 实时点云显示与数据质量校验

4.1 PandarView 2 界面操作与参数配置

PandarView 2 启动之后,界面里一般会有连接参数设置区域,包括雷达 IP、电脑 IP 和数据端口。软件里通常会有默认端口,保持默认即可。这里要特别提醒:雷达 IP 必须和雷达实际的 IP 完全一致,不能随便填。你可以在雷达手册上找到出厂 IP,或者在上一步 tcpdump 抓包时从数据包源地址里看到雷达 IP,两者对照一下最稳妥。

点击连接按钮之后,如果参数正确,界面上的点云会立刻开始刷新。此时你会看到一个扇形分布的三维点云,这就是 AT128 的 120 度水平视场角扫描结果。点云的疏密程度和距离有关,近处密集远处稀疏,这是激光雷达的正常特性。

操作方面,鼠标左键旋转视角,滚轮缩放,右键平移。你可以把视角拉近看最近的物体,也可以拉远看整体轮廓,感受一下 128 线雷达的纵向分辨率。说实话,第一次在 PandarView 里看到 AT128 点云时,那种墙面像刀切一样平直的效果会给你留下很深的印象。

4.2 如何快速判断点云是否正常

看到点云之后,先别急着开心,按照下面几个维度快速做个体检。

第一,看地面。在雷达安装正常的前提下,地面点云应该是连续、平整的一条线或一面,中间没有大的空洞。如果地面点云有明显的断层或者大面积缺失,可能是雷达安装角度有问题,也可能是某个线束的探测异常。

第二,看反射强度。PandarView 2 一般可以用颜色表达反射强度。高反射物体(比如路牌、车身)的颜色应该明显区别于低反射物体(比如深色路面)。如果整个画面的强度值都一样,说明反射强度信息没有正常解析,可能是软件显示模式设置的问题。

第三,看远处。找一栋 50 米以外的建筑或一棵树,观察点云是否还能勾勒出轮廓。AT128 在 905 纳米波长下对远处低反射率物体测距能力有一定衰减,但如果 100 米开外的墙体完全没有任何点,那就要考虑设备标定或者故障问题。

第四,看帧率。PandarView 2 界面上一般会显示当前的帧率和点数。AT128 的点频大约为 153.6 万点每秒,以一帧 10Hz 为例,一帧应该在 15 万点上下。如果显示的点数明显偏少,多半是丢包了,检查网线是否千兆、接口是否松动。

4.3 点云显示异常的常见表现与应对方法

实际调试过程中,最常见的就是“点云很稀疏”。这通常不是雷达的问题,而是电脑网卡协商成了百兆模式,或者网线质量太差丢了大量 UDP 包。可以用ethtool enp0s3查看网卡协商速率,确认是 1000Mb/s。如果协商成了 100Mb/s,换一根六类网线,或者检查网口是否有灰尘。

另一个常见的现象是“点云抖动”——视角看起来在不停摇晃。这要看情况:如果雷达本身没有固定好,物理抖动会直接反映在点云上;如果雷达固定没问题,那可能是你观察的是动态场景。AT128 是半固态转镜扫描,不是瞬间快照,同一帧内不同线束的扫描时间略有差异,运动物体会出现轻微的运动畸变,这属于正常现象。

如果点云彻底不显示,但 tcpdump 能看到数据包,那问题基本都出在软件配置上。最常见的是雷达 IP 填错,或者电脑本地网卡选错。PandarView 2 里如果有多网卡机器,一定要确认当前选的是直连雷达的那张网卡,而不是连接外网的无线网卡。

5. 进阶:ROS 驱动集成与 RViz 点云可视化

5.1 为什么建议开发阶段切换到 ROS

PandarView 2 作为验证工具足够优秀,但它做不了算法开发。如果你想把点云数据接入到 SLAM、目标检测、感知融合这些流程里,ROS 几乎是绕不开的基础设施。Ubuntu 20.04 搭配 ROS Noetic 是我目前用得最顺的组合。

好消息是 AT128 的 ROS 驱动方案比较成熟,官方维护了驱动代码,社区里也有不少现成配置。编译完成后,点云会以 PointCloud2 消息发布到 ROS 话题上,RViz 可以订阅话题并实时显示。整个过程跑通之后,你就拥有了一个标准的 ROS 点云数据源,后面做任何算法开发都方便。

5.2 在 Ubuntu 20.04 上编译 Hesai ROS 驱动

在开始编译之前,确保 ROS Noetic 已经完整安装。如果没有安装,参考 ROS 官方文档安装 ros-noetic-desktop-full。

然后创建工作空间并拉取驱动代码:

mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone https://github.com/HesaiTechnology/hesai_lidar.git cd ~/catkin_ws catkin_make

编译之前记得 source 一下 ROS 环境:

source /opt/ros/noetic/setup.bash

如果编译过程中提示缺少依赖包,根据报错信息用 apt 安装即可。编译完成后,配置驱动参数。关键文件在 hesai_lidar 包的 launch 目录下,打开对应的 AT128 launch 文件,把 server_ip 改成雷达的实际 IP,host_ip 改成你电脑的 IP。这里的 IP 必须和网络配置阶段保持一致,否则驱动收不到数据。

启动驱动:

source ~/catkin_ws/devel/setup.bash roslaunch hesai_lidar hesai_lidar.launch

驱动启动后,终端里会持续输出接收到的点云帧信息。此时可以新开终端,用命令确认话题:

rostopic list

你应该能看到类似/hesai/pandar或者包含 points 的点云话题。再看一眼话题的消息类型,应该是 sensor_msgs/PointCloud2。

5.3 RViz 中显示实时点云

确认话题存在后,启动 RViz:

rviz

在 RViz 界面里,把左侧 Displays 面板的 Fixed Frame 设置为驱动 launch 文件里配置的 frame_id,通常类似 hesai/AT128。然后点击 Add,选择 By topic,找到点云话题,确认消息类型是 PointCloud2,点击 OK 添加。

这时你应该能在 RViz 的 3D 视图里看到和 PandarView 2 类似的点云画面了。RViz 默认的点云渲染方式是大方块,如果觉得太粗,可以在 PointCloud2 的 Display 属性里把 Style 改为 Points,Size 调小一点,看起来就细密多了。

如果 RViz 画面里看不到任何点,优先检查 Fixed Frame 是否和话题时间戳的 frame_id 匹配,这是新手最常犯的错误。另外,确认驱动端打印的帧数和点数是不是正常增长,如果驱动起来但没人订阅话题,有些驱动版本会默认不发布数据,需要在 launch 里设置 publish 参数为 true。

6. 常见问题速查与排障实录

6.1 高频问题速查表

把我在各种场合遇到的高频问题整理成一张速查表,按图索骥,命中率很高。

问题现象可能原因排查与解决
tcpdump 收不到 UDP 包网线问题、网卡未启用、IP 网段不一致先查网线,再看 IP,然后看网卡协商速率
PandarView 连接后无点云雷达 IP 配置错误、端口错误、防火墙拦截核对 IP,用默认端口,确认没有开启 ufw 或放行 UDP
点云显示很稀疏网卡协商百兆、网线质量问题、CPU 处理不过来用 ethtool 查看速率,换六类线,关闭其他大流量应用
点云画面卡顿GPU 渲染性能不足、OpenGL 驱动异常装 NVIDIA 驱动,用 glxinfo 验证渲染器
RViz 里看不到点Fixed Frame 不匹配、话题未发布、frame_id 配置错误检查 launch 配置,确认 rostopic hz 有数据
雷达上电后不工作供电电压不足、线缆松动、设备故障检查电源指示灯,用原装线缆,联系售后

6.2 两个隐藏比较深的坑

第一个坑是 UDP 丢包率。AT128 数据量很大,如果电脑网卡的接收缓冲区不够,内核丢包会在完全不知道的情况下发生。用netstat -su可以查看 UDP 丢包统计,如果发现大量的 receive buffer errors,可以适当调大网卡缓冲区:

sudo sysctl -w net.core.rmem_max=134217728

这个参数让我在跑长时间采集任务时少了很多莫名其妙的问题,特别是在录制 bag 包的时候,推荐大家都设置一下。

第二个坑是时间戳。AT128 输出的点云数据带有时间戳,但如果雷达和电脑之间没有做时间同步,点云时间戳和系统时间可能对不上。后期做多传感器融合的时候,这个问题会变得致命。入门阶段不用太在意,但如果你要做相机和雷达的联合标定,一定要提前考虑 PTP 时间同步方案,从第一天开始就把时间戳问题纳入考虑范围。

6.3 关于 AT128 后续扩展的一些经验

整个流程跑通之后,你会发现 AT128 就是一个标准的数据源,后续想怎么玩完全取决于你的应用场景。比如做多雷达拼接,需要注意不同雷达之间的外参标定;做目标检测,需要同步采集图像和点云做融合;做点云配准和语义分割,可以先从公开数据集练手,再用实车数据做验证。基本链路是通的,剩下就是在算法和应用层面深挖。

写到这里,AT128 在 Ubuntu 20.04 上从零跑通实时点云的完整流程就讲完了。回看整个过程,真正困难的地方其实不是某一个具体步骤,而是每个环节里那些零碎的小坑。我自己在帮别人排错的时候体会最深的一句话是:先把链路一步步拆开验证,哪一步有问题就定位哪一步,千万别一口气把软件硬件全堆上去再查问题。照着这个原则来,哪怕你以后换别的型号激光雷达,处理思路也是一样的。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/8 15:30:41

tickrs 0.15.0 Windows x64 下载:在终端中查看行情图表

下载入口:tickrs 0.15.0 Windows x64 压缩包 入口经草料提示页跳转到夸克分享,请继续访问并核对文件名。 tickrs 把行情图表放进终端窗口,适合已经习惯终端工作、希望增加一个行情查看界面的用户。本文提供 0.15.0 Windows x64 压缩包&…

作者头像 李华
网站建设 2026/10/8 15:29:19

RSA 2048/4096签名校验实战:原理、填充与跨语言踩坑指南

楔子作为开发,你是不是也遇到过这种情况:后端返回的签名校验逻辑很简单,看起来就是“用公钥验签,过了就放行”,但一旦密钥长度从 1024 升到 2048、4096,或者遇到跨语言调用,网络上铺天盖地的资料…

作者头像 李华
网站建设 2026/10/8 15:27:39

UEC技术解读:AI集群下以太网如何实现负载均衡与确定性传输

简介:超以太网联盟UEC官方技术报告,来源于OIF 448Gbps Signaling for AI Workshop上Cisco院士Mark Nowell的专题演讲,面向数据中心网络架构师、AI/HPC基础设施工程师与网络协议研究者。报告围绕UEC如何从物理层释放AI工作负载潜力展开&#x…

作者头像 李华
网站建设 2026/10/8 15:26:37

风光不确定性下的微电网优化:场景法与鲁棒优化实战解析

搞微电网调度优化的人,迟早都会撞上“风光不确定性”这堵墙。我印象特别深的是第一次拿真实气象数据跑模型:预测曲线明明是一条挺光滑的光伏功率曲线,结果按误差分布抽样出来的几十个场景一摊开,满屏都是上下乱跳的数值。这还没完…

作者头像 李华
网站建设 2026/10/8 15:26:37

Xsens MTi系列IMU从硬件接线到ROS配置的完整实战指南

玩IMU这几年,前前后后经手过好几家的产品,Xsens算是用得最久的一款。很多人拿到MTi系列的第一反应是插上USB打开MT Manager,看到数据在跳就以为配置完了。但真到了做Lidar-IMU联合标定、跑VINS-Mono、或者给相机IMU做外参标定的时候&#xff…

作者头像 李华
网站建设 2026/10/8 15:25:34

Agent-Reach:为AI Agent打造稳定、高效的中间件工具调用方案

1. Agent-Reach 的定位:当大模型困在"对话框"里时先用一句话说清楚 Agent-Reach 是什么:它是给 AI Agent 用的一层"触达中间件"。整条链路可以理解成——大模型负责思考,Agent-Reach 负责把思考结果翻译成实际动作&#…

作者头像 李华