08 常见问题与排错

本教程踩过的坑汇总,按现象查。

构建相关

现象 原因 / 处理
Setup.sh 下 libpng 404 sourceforge URL 失效。改 download.sourceforge.net 镜像(修复 1)。
PROJ 报 no type named 'int64_t' in namespace 'std' #include <cstdint>。给 proj_json_streaming_writer.hpp 加(修复 2)。
make clean 后 PROJ 又报 int64_t clean 删了 Build/proj-src,补丁丢失。重新加 #include <cstdint>
构建卡在 “Downloading STREETMAP” GitHub 不可达。BuildUE4Plugins.shGIT_PULL=false(修复 3)。
mi/mdl_sdk.h not found / packman Package not found MDL SDK 下架。构建加 --no-simready(修复 4)。
链接报 cannot open libfoonathan_memory-0.7.3.a Carla.Build.cs 版本号写死。改 0.7.4(修复 5)。
make rebuild --ros2 没编进 ros2 rebuild 不传 --ros2 给 BuildLibCarla。用分步命令(见 04 章)。
make launchtime-out of 2000ms 或端口 2000 没监听 服务端没起。确认按了 Play 且地图加载完。

ROS2 相关

现象 原因 / 处理
ros2 topic list 只有 /parameter_events /rosout native ROS2 没编入/没启动。确认带 --ros2 编译 + make launch --ros2 + 跑了 ros2_native.py
节点互相发现不了(DDS 不一致) 没设 FASTRTPS_DEFAULT_PROFILES_FILE(禁 SHM)。见 04 章 4.3。
ros2 命令报 PackageNotFoundError: ros2cli conda 的 python 抢占系统 python。conda deactivate,用系统 python + source /opt/ros/humble/setup.zsh
source setup.bashsetup.sh not found zsh 下 BASH_SOURCE 失效。zsh 用 setup.zsh,别用 setup.bash
服务端进程没加载 rmw/fastrtps native ROS2 没初始化。确认 --ros2 真编入(.soROS2 Send 符号)。

检测/跟踪相关

现象 原因 / 处理
画面一个检测框都没有 np.isin(class_ids, ALLOWED) 传了 set 返回全 False。改成 list(见 05 章 5.5)。
类别错位(car 标成 motorcycle) COCO 映射多加了 +1。coco_id = argmax,不要 +1(见 05 章 5.2)。
'Pose2D' object has no attribute 'x' humble 的 bbox.centervision_msgs/Pose2D,要用 center.position.x(见 06 章 6.7)。
can't set attribute 'context' self.context 撞了 rclpy Node 的只读属性。改名 self.trt_context
改了节点代码没生效 没重启节点。colcon build 后必须重启 ros2 run
No module named 'filterpy' OC-SORT 依赖。/usr/bin/python3 -m pip install filterpy
No module named 'carla' 在系统 python 跑了 carla 脚本。generate_traffic.py 用 conda carla 环境。

性能相关

现象 原因 / 处理
rviz2 卡 LiDAR 点太多 / GPU 争抢 / 大图像。见 07 章 7.3。
仿真 FPS 低 NPC 太多 / 分辨率太高 / 着色器没编完。降 NPC 数或分辨率。
首次启动很慢 着色器编译,后续有缓存。

环境对照速查

终端 python 干什么
CARLA 服务端 make launch --ros2
ego 车+传感器 系统 python + ROS2 ros2_native.py
NPC 交通 conda carla generate_traffic.py -n -w
检测节点 系统 python + ROS2 + 包 ros2 run perception_camera carla_detector.py
rviz2 显示 detection_image