从零到端到端自动驾驶实战-Pjoject2-第 1 章-环境搭建-CARLA-ROS2 集成 (下)
安装 carla-ros-bridge
克隆 ros-bridge 源码
# 创建 ROS2 工作空间
mkdir -p ~/carla_ws/src && cd ~/carla_ws/src
# 克隆 carla-ros-bridge (主分支适配 ROS2 Humble)
git clone --recurse-submodules \
https://github.com/carla-simulator/ros-bridge.git
# 确认子模块也派下来了
cd ros-bridge
git submodule update --init --recursive
安装依赖
cd ~/carla_ws
# 安装 ROS2 依赖
sudo apt install python3-rosdep python3-vcstool -y
# 自动安装所有依赖
source /opt/ros/humble/setup.bash
rosdep install --from-paths src --ignore-src -r -y
# 安装额外的 Python 依赖
pip install transforms3d simple-pid
编译 ros-bridge
cd ~/carla_ws
# 使用 colcon 编译
colcon build --symlink-install
# 编译大约耗时 3-8 分钟
# 如果出现错误, 常见解决:
# - 'carla_msgs not found': 改用 git clone --recurse-submodules
# - 'colcon: command not found': apt install python3-colcon-common-extensions
# - 'transforms3d 没有': pip install transforms3d
# 编译完成后
source install/setup.bash
# 永久生效(添加到 .bashrc)
echo 'source ~/carla_ws/install/setup.bash' >> ~/.bashrc
最后一步:跑通你的第一个 Demo
所有准备工作完成,现在来验收成果:把 CARLA 的仿真数据引到 ROS2 生态里。
启动四个终端
# ===== 终端 1: CARLA 仿真器 =====
cd ~/carla
./CarlaUE4.sh -quality-level=Medium
# ===== 终端 2: ros-bridge + 生成 Ego 车 =====
source ~/carla_ws/install/setup.bash
ros2 launch carla_ros_bridge \
carla_ros_bridge_with_example_ego_vehicle.launch.py \
host:=localhost \
port:=2000 \
town:=Town10HD \
timeout:=30
# 启动成功应看到:
# [carla_ros_bridge]: CARLA connected, got data:
# [carla_ros_bridge]: Publishing topics:
# [carla_ros_bridge]: /carla/ego_vehicle/rgb_front/image
# [carla_ros_bridge]: /carla/ego_vehicle/lidar
# [carla_ros_bridge]: /carla/ego_vehicle/imu
# [carla_ros_bridge]: /carla/ego_vehicle/odometry
# [carla_ros_bridge]: ...
# ===== 终端 3: 查看 ROS2 话题和数据 =====
# 列出所有话题
ros2 topic list
# 查看相机图像的发布频率 (应约 20Hz)
ros2 topic hz /carla/ego_vehicle/rgb_front/image
# 查看IMU 数据
ros2 topic echo /carla/ego_vehicle/imu --once
# 查看车辆状态
ros2 topic echo /carla/ego_vehicle/vehicle_status --once
# ===== 终端 4: 启动 RViz2 可视化 =====
source ~/carla_ws/install/setup.bash
# 用 ros-bridge 提供的配置
rviz2 -d ~/carla_ws/src/ros-bridge/carla_ros_bridge/config/\
carla_default.rviz
# 这时你应该看到:
# - 左上: 车辆前方 RGB 摄像头画面
# - 中心: 3D 场景, 中间显示实时激光点云, 车辆模型
# - 左下: 其他传感器(深度, 语义分割)
为者常成,行者常至
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)