
1. 环境准备与基础配置在Ubuntu 20.04上搭建Carla与ROS联合仿真环境首先需要确保系统基础环境配置正确。我遇到过不少因为驱动版本不对或依赖缺失导致的问题这里会详细说明每个关键步骤。1.1 显卡驱动安装NVIDIA显卡驱动是运行Carla仿真的必备条件。很多新手容易在这里踩坑比如直接使用Ubuntu默认的nouveau驱动结果发现Carla根本无法启动。我推荐用以下方法安装最新版驱动# 添加官方驱动仓库 sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update # 查看推荐驱动版本 ubuntu-drivers devices如果输出显示类似nvidia-driver-535 - third-party non-free recommended的内容就安装这个推荐版本。安装完成后务必重启sudo apt install nvidia-driver-535 reboot验证驱动是否生效nvidia-smi这个命令应该显示GPU状态表格。如果报错可能是Secure Boot未禁用在BIOS中关闭或驱动版本冲突需要完全卸载旧驱动。我曾经在一台机器上反复安装失败最后发现是之前用.run文件安装的残留文件没清理干净。1.2 系统依赖安装Carla和ROS都需要一些基础依赖包建议先统一安装sudo apt install -y \ build-essential \ cmake \ git \ wget \ curl \ unzip \ python3-dev \ python3-pip \ libomp5 \ libgl1-mesa-glx特别注意如果后续遇到OpenGL相关错误可能需要额外安装libglvnd-dev和libegl1-mesa-dev。我在一台没有GUI的服务器上部署时就遇到了这个问题添加这两个包后解决。2. Carla安装与配置2.1 Carla预编译版安装相比源码编译我更推荐新手使用预编译版本。以0.9.15版本为例wget https://carla-releases.s3.amazonaws.com/Linux/CARLA_0.9.15.tar.gz tar -xzvf CARLA_0.9.15.tar.gz cd CARLA_0.9.15解压后目录结构包含CarlaUE4.sh- 主程序启动脚本PythonAPI- 客户端接口Import- 资源文件测试运行./CarlaUE4.sh -quality-levelLow参数-quality-level可以设为Low/Epic等根据显卡性能调整。我第一次运行时没加这个参数结果笔记本风扇狂转后来发现默认画质太高。2.2 Python环境配置强烈建议使用conda创建独立环境避免包冲突。我习惯用minicondawget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh创建carla专用环境conda create -n carla python3.7 conda activate carla安装Carla客户端库pip install carla0.9.15 \ numpy1.18.4 \ pygame \ opencv-python关键点必须使用与Carla版本匹配的Python库。有次我用了最新版numpy结果导致坐标转换出错排查了半天才发现是版本问题。3. ROS安装与配置3.1 ROS Noetic安装Ubuntu 20.04对应ROS Noetic版本sudo sh -c echo deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main /etc/apt/sources.list.d/ros-latest.list sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 sudo apt update sudo apt install ros-noetic-desktop-full初始化rosdep时常见错误解决方案sudo pip install rosdepc sudo rosdepc init rosdepc update3.2 工作空间创建建议单独创建carla-ros工作空间mkdir -p ~/carla_ws/src cd ~/carla_ws catkin_make source devel/setup.bash4. carla-ros-bridge编译与调试4.1 源码下载与编译cd ~/carla_ws/src git clone --recurse-submodules https://github.com/carla-simulator/ros-bridge.git rosdep install --from-paths src --ignore-src -r cd ~/carla_ws catkin_make常见编译错误处理缺少ackermann_msgssudo apt install ros-noetic-ackermann-msgsPython版本冲突 确保编译时未激活conda环境使用系统默认Python。4.2 联合仿真测试启动顺序很重要先启动Carla服务端./CarlaUE4.sh -quality-levelLow再启动ros-bridgeroslaunch carla_ros_bridge carla_ros_bridge.launch \ town:town01 \ timeout:10示例车辆控制roslaunch carla_ros_bridge ego_vehicle.launch我在测试时发现如果先启动ros-bridge再开Carla会导致连接超时。正确的启动顺序能避免80%的连接问题。5. 常见问题解决方案5.1 Python路径问题错误信息/usr/bin/env: python: 没有那个文件或目录解决方法sudo ln -s /usr/bin/python3 /usr/bin/python5.2 版本不匹配如果出现类似CARLA python module version 0.9.13 required. Found: 0.9.15的错误需要修改vim ~/carla_ws/src/ros-bridge/carla_ros_bridge/src/carla_ros_bridge/CARLA_VERSION将文件内容改为你安装的Carla版本号。5.3 传感器数据异常当摄像头或雷达数据异常时检查Carla中的传感器配置是否与ROS话题匹配坐标系设置是否正确时间同步是否开启可以先用RViz查看原始数据逐步排查问题源。6. 性能优化建议渲染模式选择./CarlaUE4.sh -quality-levelLow -RenderOffScreen无GUI模式可节省30%以上GPU资源固定时间步长 在Carla设置中启用固定时间步长避免ROS节点处理不及时选择性发布话题 在ros-bridge启动文件中只启用必要的话题减少数据传输量使用Docker部署 对于复杂环境可以考虑使用官方Docker镜像避免环境冲突实际项目中我通过调整这些参数将仿真帧率从15fps提升到了稳定的30fps。特别是在多传感器配置时优化效果更明显。