CARLA + ROS2 + rf-DETR + OC-SORT 感知仿真教程

本教程记录从零搭建 CARLA 0.9.16 仿真环境、接入 ROS2 话题、用 rf-DETR (TensorRT) 做目标检测、再用 OC-SORT 做多目标跟踪并绘制移动轨迹的完整过程。最终在 rviz2 中看到带 ID 和轨迹的检测结果。

你将搭建的系统

1
2
3
4
5
6
7
8
9
10
11
CARLA 仿真(带 NPC 交通)
│ RGB 相机 (ROS2 native 接口)

/carla/hero/rgb/image 话题
│ perception_camera 检测节点 (rf-DETR TensorRT + OC-SORT)

/carla/hero/rgb/detection_image (画框 + ID + 轨迹, 给 rviz2)
/carla/hero/detections (Detection2DArray, track_id 在 id 字段)


rviz2 可视化

目录

章节 内容
01 环境准备 系统、GPU/CUDA、TensorRT、ROS2、conda、依赖
02 构建 UE4 与 CARLA UE4.26 编译、CARLA 0.9.16 编译(含 4 处构建修复)
03 运行仿真 启动 CARLA、生成 NPC 交通、Python 客户端测试
04 ROS2 接口与话题 native ROS2 构建、DDS 配置、读话题
05 目标检测 (rf-DETR TensorRT) 检测节点开发、TRT 推理、COCO 类别映射
06 目标跟踪 (OC-SORT) OC-SORT 集成、移动轨迹、track_id
07 rviz2 可视化与调优 rviz2 配置、分辨率、卡顿优化
08 常见问题与排错 踩过的坑与解决方案

配套脚本见 scripts/ 目录。

路径约定(请按你的实际路径替换)

本教程用以下占位符,实际操作时替换成你的路径:

占位符 含义(示例)
~/carla_project/carla CARLA 0.9.16 源码
~/carla_project/UnrealEngine_4.26 UE4.26 引擎
~/carla_project/ros2_ws ROS2 工作空间
~/models/rf-detr rf-DETR 模型仓库
~/models/OC_SORT OC-SORT 跟踪仓库
conda 环境 carla CARLA Python 客户端环境

适用环境

  • Ubuntu 22.04
  • NVIDIA GPU(本教程用 CUDA 12.8 / 驱动 570+)
  • TensorRT 10.9
  • ROS2 Humble
  • CARLA 0.9.16 + UE4.26

教程中标注 ⚠️ 的是实际踩坑点,配有解决方案,值得注意。