上期搭建好了 Carla + ROS 环境,跑通了传感器数据流。但这期才是真正让仿真"活起来"的关键——添加 NPC 车辆和行人,让场景有真实的交通流。
先回顾一下整体流程
Carla UE4(仿真服务端) ↓ Carla ROS Bridge(数据桥接) ↓ 生成 NPC 车辆和行人 ↓ RVIZ 中可以看到动态场景第一步到第三步:跟第一期一样
启动容器、启动 Carla UE4、启动 ROS Bridge,这三个步骤不变,按第一期的顺序来就行。
# 终端1:启动容器cdcarla_simbashdocker/scripts/dev_start.shbashdocker/scripts/dev_into.sh# 终端1内:启动 Carla UE4cd/opt/carla_wsbash./CarlaUe4.sh# 终端2:启动 ROS Bridgecdcarla_simbashdocker/scripts/dev_into.shsourceros_bridge_env.shcd/opt/carla_ws/ros_bridge_wssourcedevel/setup.bashcd/opt/carla_ws roslaunch carla_ros_bridge carla_ros_bridge_with_example_ego_vehicle.launch第四步:添加 NPC
新开一个终端,同样进入容器,然后执行 NPC 生成脚本:
cd/opt/carla_ws python scripts/spawn_random_npc.py默认会生成10辆车 + 5个行人。
如果需要自定义数量:
# 20辆车 + 10个行人python scripts/spawn_random_npc.py _vehicle_count:=20_walker_count:=10脚本执行后,Carla UE4 场景中会立刻出现 NPC 车辆和行人。车辆会自动行驶,行人目前只是静止的不会走动(后面解决这个问题),整个场景瞬间有了真实感。
这时候打开 RVIZ,可以看到激光雷达点云中出现了动态的目标点,相机图像里也能看到车辆和行人经过。
NPC 是怎么动起来的
Carla 自带的 Traffic Manager 负责控制 NPC 的行为:
| 功能 | 说明 |
|---|---|
| 自动行驶 | NPC 车辆会沿着道路行驶 |
| 跟车距离 | 自动保持与前车的安全距离 |
| 行人漫游 | 行人在人行道上随机走动 |
| 交通规则 | NPC 会等红灯、让行 |
不需要我们自己写行为逻辑,调用 Traffic Manager 的 API 就能实现。
跟第一期的区别
| 维度 | 第一期只有自车 | 第二期加了 NPC |
|---|---|---|
| 场景 | 空旷,只有一辆车 | 有交通流,像真实道路 |
| 传感器数据 | 静态背景 | 动目标,有感知价值 |
| 算法验证 | 只能做单帧检测 | 可以做跟踪、预测 |
有了 NPC 之后,你的目标检测、障碍物跟踪算法才有了用武之地。
2_添加NPC到Carla仿真环境
如果本文对你有帮助,欢迎点赞、收藏。
遇到问题可以评论区留言交流,也欢迎转发给需要的朋友。