Autoware 传感器配置与数据采集:从驱动部署到点云落地的 5 步操作
【免费下载链接】autowareAutoware - the world's leading open-source software project for autonomous driving项目地址: https://gitcode.com/GitHub_Trending/au/autoware
Autoware 是开源自动驾驶软件栈。本文带你用 5 步把相机、激光雷达、毫米波雷达接入同一条采集链路:部署驱动、标定外参、启动采集、录制 bag,并排查时间戳漂移与 udev 权限两类常见故障。跑完后,你的ros2 topic list里会出现激光雷达点云 topic,并且有一段可回放的 bag。
硬件接入与设备确认
三个传感器各有接法,先确认接对,再谈软件:
| 传感器类型 | 推荐型号 | 典型接口 |
|---|---|---|
| 激光雷达 | Velodyne VLP-16 | GigE 网线,默认 IP 192.168.1.201 |
| 前置相机 | Intel RealSense D435i | USB 3 |
| 毫米波雷达 | Continental ARS408 | 以太网 / CAN |
先别把三个传感器一次全接上:一次只接一类,接好了再上下一类,出问题才好定位。这一步没做好,现象是某个传感器的 topic 在整个链路里永远不出现。下一步,部署驱动与运行环境。
🛠 部署传感器驱动与运行环境
Autoware 的通信框架是 ROS 2(机器人操作系统,负责节点间收发消息)。传感器驱动以 ROS 2 包(一个可编译、可发布的软件单元)形式存在:每个传感器对应一个节点,节点把原始数据发布到 topic(话题,一条带类型的消息流)。
部署 ROS 2 运行环境与工具链
下面这条命令用 Ansible(配置自动化工具)把 ROS 2 基础、通信中间件、构建工具和标定依赖装好,成功后ros2 --version有版本输出。它执行的入口是 install_dev_env.yaml,ROS 2 基础包由其中的 ros2 角色任务 负责安装。
ANSIBLE_CONFIG=ansible ansible-playbook ansible/playbooks/install_dev_env.yaml拉取源码并编译传感器驱动
这条命令按清单批量拉取 Autoware 全部源码,成功后src/下出现一批包目录;驱动会跟着源码一起编译,具体型号的驱动包名可从 extra-packages.repos 里查。
vcs import src < repositories/autoware.repos colcon build --symlink-install source install/setup.bash最后确认驱动编译进了环境:
ros2 package list | grep -i lidar有输出,说明激光雷达驱动已经就位。下一步,标定外参。
📐 标定传感器外参并生成标定文件
外参指传感器之间的空间关系:相机在激光雷达旁边多高、偏多少度。没有外参,点云和图像对不上,现象是同一辆车在两个传感器里位置错开。下面这条命令执行相机-激光雷达标定,成功后生成/tmp/calibration.yaml,里面有三组关键值:
- 旋转矩阵(rotation)
- 平移向量(translation)
- 时间偏移(time_offset)
ros2 run autoware_calibration_tool calibration_camera_lidar记下这个文件路径,启动采集时要把它挂进容器。下一步,启动采集。
📡 启动数据采集并录制回放
用 Compose(一套定义容器的配置文件,仓库 docker/examples/ 里有可直接抄的样例)起采集容器,把/tmp/calibration.yaml挂进去,容器内运行传感器 launch。启动后ros2 topic list里出现激光雷达点云 topic,就说明采集链路通了:
docker compose up -d要留下可回放的原始数据,用下面这条命令开始录制,它把相机、激光雷达、雷达三路 topic 存进一个 bag 文件,成功后目录里生成.mcap文件;按Ctrl+C停止录制。
ros2 bag record /camera/image_raw /lidar/points /radar/scan回放用于离线验证,-r 0.5表示 0.5 倍速:
ros2 bag play my_bag -r 0.5回放时重点看三路时间戳是否对得上,对不上就进入下一步排查。
🔍 排查时间戳漂移与 udev 权限
时间戳漂移超过 100ms
- 现象:各传感器时间戳差超过 100ms,融合节点把它们当成不同时刻的样本,车辆位置出现重影。
- 定位:下面这条命令查看 NTP(网络授时协议)同步状态,
chronyc tracking会打印当前同步偏移。
chronyc tracking若System time偏移超过 100ms,说明时钟没锁住。
- 修复:重启授时服务,再查一次,
System time偏移降到毫秒级即为恢复。
sudo systemctl restart chronydudev 权限丢失
- 现象:相机突然读不到,
ls -l /dev/video*里节点缺失或权限变成000。 - 定位:确认是系统更新后规则丢失,还是接口被占用。
- 修复:重新插拔或重启驱动节点,让 udev(负责给设备节点发权限的机制)重新匹配;规则文件丢了,从相机厂商文档补回。
ls -l /dev/video*数据链路跑通后,可用融合节点把相机、激光雷达、毫米波雷达统一到世界坐标系,配合 bag 录制与回放形成"采集—验证—复现"闭环,之后再接入建图与定位模块。
【免费下载链接】autowareAutoware - the world's leading open-source software project for autonomous driving项目地址: https://gitcode.com/GitHub_Trending/au/autoware
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考