当前位置: 首页 > news >正文

Ubuntu20.04 Carla安装与和Ros联合仿真

1.Carla安装

1.1网站资源

  • carla官网:CARLA Simulator
  • carla官方教程:Quick start package installation - CARLA Simulator

1.2Carla0.9.15安装 

        carla安装一般有两个方式:

  1. 源码编译安装,这种比较难装。
  2. 第二种就是发行版,直接下载压缩包解压后就能后使用,这里使用这种方式。0.9.15下载页面Release 0.9.15 · carla-simulator/carla

1.3安装显卡驱动

         注意在Linux下运行需要安装Nvidia显卡驱动,其他方法可以自行查找,下面介绍一种方式。

        首先使用ubuntu-drivers devices查看推荐的显卡驱动,如果该命令获取不到可以先使用sudo apt update。如若无问题,则会出现driver   : nvidia-driver-575 - third-party non-free recommended,后面带有recommende代表推荐的,然后选择一个安装:sudo apt install nvidia-driver-575。安装完成后使用nvidia-smi进行测试,如果没有输出请重启电脑再次查看,正常会有:

Sun Aug  3 11:21:49 2025       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 575.57.08              Driver Version: 575.57.08      CUDA Version: 12.9     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |

        上面使用可能获取不到最新的显卡驱动,可以使用下面的方式获取最新驱动,获取完毕后再次执行ubuntu-drivers devices不出意外可以获取最新的,其他步骤保持一致:

# 下载 pin 文件
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600# 添加密钥
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub# 添加源
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"#(报错)InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY A4B469963BF863CC
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A4B469963BF863CC# 更新索引
sudo apt update

 1.4测试Carla

        进入解压目录CARLA_0.9.15中去,找到CarlaUE4.sh在终端中执行./CarlaUE4.sh。之后会出现Carla界面,下面是具体的操作指令:

  • W:视角向前
  • S:视角向后
  • Q/E:视角上升或下降
  • 鼠标在界面上左键按下左右移动视角也会左右移动

1.5 配置环境

         上面运行的./CarlaUE4.sh相当于一个服务器,自己可以编写客户端来请求服务器,创建车辆或行人等操作。下面介绍运行Carla所需要的环境:

  1. 使用Anconda进行包管理。不使用也可以,不过做这方面的最好使用Anconda进行包管理,进行环境隔离。
  2. 创建一个虚拟环境。CARLA 客户端库可以从 PyPi 下载。此库与 Python 版本 2.7、3.6、3.7 和 3.8 兼容,这里选择3.8,不详细指定版本。之前有位博主说明3.7.8是非常稳定的版本,这里也可以使用这个版本(carla下有一个3.7whl文件,可以直接运行安装相关的依赖)。

1.5.1安装Anconda

        使用uname -m查看电脑架构,我这里是x86_64。到清华开源软件镜像站进行下载Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror。这里下载Anaconda3-2025.06-0-Linux-x86_64.sh,可以任意选择或者选择一个稳定版本。找不到这个可以往下翻翻。

        首先chmod +x Anaconda3-2025.06-0-Linux-x86_64.sh给予可执行权限,然后sudo ./Anaconda3-2025.06-0-Linux-x86_64.sh进行安装,可以看看具体的操作然后再Enter和yes,注意的是遇到conda config --set auto_activate_base false 这个代表每次开启终端是否conda bash是否自动激活,可以选择禁止自动激活。不过也可以使用conda init --reverse $SHELL来开启自自动激活。还有遇到安装路径的时候可能会出现在/root目录下,可以替换为其他路径。

        正常的情况下会自动添加的,不需要配置。先sudo gedit ~/.bashrc或sudo vim ~/.bashrc,如若没有,在末尾添加export PATH="$HOME/anaconda3/bin:$PATH",这里要符合实际的安装路径。正常情况下使用conda --version有输出代表安装成功。

1.5.2Python3.7相关依赖(.whl 文件)(和ROS联合使用还是使用这个为好)

        这里简单介绍一下Python3.7安装的过程,参考的内容为:Carla基础 | Carla预编译版安装与ROS联合仿真图文教程-CSDN博客。

  1. 首先创建一个虚拟环境:conda create -n carla python=3.7
  2. 激活该环境:conda activate carla
  3. 进入到CARLA_0.9.15/PythonAPI/carla/dist目录下,执行pip install carla-0.9.15-cp37-cp37m-manylinux_2_27_x86_64.whl。其中cp27代表的是Python2.7,不要选择错误。
  4. 增加carla相关配置,打开~/.bashrc添加
    # Carla
    export CARLA_ROOT=$HOME/CARLA_0.9.15
    export PYTHONPATH=$PYTHONPATH:$CARLA_ROOT/PythonAPI/carla/dist/carla-0.9.15-py3.7-linux-x86_64.egg:$CARLA_ROOT/PythonAPI/carla
    

1.5.3Python3.8 下安装相关依赖( Downloadable Python packag

        这里只是给出了Python3.8下安装依赖的方法,如果不使用上面的方式的与ROS联调会出现一些问题。

  1.  创建一个虚拟环境:conda create -n carla python=3.8
  2. 激活:conda activate carla
  3. 依次安装下面的依赖,指定版本的是参照CARLA_0.9.15/PythonAPI/carla/requirements.txt文件内容:
    pip3 install carla
    pip3 install numpy==1.18.4 -i https://pypi.tuna.tsinghua.edu.cn/simple
    pip3 install future -i https://pypi.tuna.tsinghua.edu.cn/simple
    pip3 install pygame -i https://pypi.tuna.tsinghua.edu.cn/simple
    pip3 install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
    pip3 install open3d -i https://pypi.tuna.tsinghua.edu.cn/simple
    pip3 install Pillow -i https://pypi.tuna.tsinghua.edu.cn/simple
    pip3 install Shapely==1.6.4.post2 -i https://pypi.tuna.tsinghua.edu.cn/simple
    pip3 install networkx -i https://pypi.tuna.tsinghua.edu.cn/simple

         接下来进行测试,这里使用Vscode,Linux没有安装Pycharm懒的安了,所以用Vscode。首先使用Vscode打开项目,然后下载一下

         安装先去点击右下角红框区域,然后选择环境即可。 

         接下来进行测试CARLA_0.9.15/PythonAPI/examples下有generate_traffic.pyautomatic_control.py两个文件:

  • generate_traffic.py是生成车辆和行人的
  • automatic_control.py可以实现车辆的自动控制

        首先运行两个节点前需要运行CarlaUE4.sh, 然后先运行generate_traffic.py生成车辆,然后运行automatic_control.py。

     

2.安装carla-ros-bridge 

        carla-ros-bridge 是连接自动驾驶仿真平台 CARLA 与机器人操作系统 ROS 的桥梁工具,能实现二者间数据(如传感器信息、车辆控制指令)的交互,便于在仿真环境中开发和测试 ROS 兼容的自动驾驶算法。

2.1安装ROS

        一键安装:wget http://fishros.com/install -O fishros && . fishros 

2.2 apt安装方式(大概率连接超时)

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1AF1527DE64CB8D9
sudo add-apt-repository "deb [arch=amd64] http://dist.carla.org/carla $(lsb_release -sc) main"
sudo apt-get update
sudo apt-get install carla-ros-bridge

 2.3源码构建

        参考:Carla 0.9.13 与ROS bridge安装记录_signal 11 caught. malloc size=65538 largememorypoo-CSDN博客

        首先第一步骤就是先退出anconda环境,默认启动终端都带有bash,执行conda deactivate退出bash然后再次进行操作。

  1. 创建工作空间:mkdir -p carla-ros-bridge/catkin_ws/src
  2. git clone --recurse-submodules https://github.com/carla-simulator/ros-bridge.git carla-ros-bridge/catkin_ws/src/ros-bridg
  3. 安装依赖
    cd carla-ros-bridge/catkin_ws/
    sudo rosdep init
    rosdep update
    rosdep install --from-paths src --ignore-src -r

    报错ERROR: cannot download default sources list from:
    https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
    可以使用下面方式:

    sudo apt install python3-pip
    sudo pip3 install rosdepc
    sudo rosdepc init
    rosdepc update
    rosdepc install --from-paths src --ignore-src -r
  4. 编译:catkin_make。这里可能会遇到两个错误:1.CMake Error at /opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package): Could not find a package configuration file provided by "ackermann_msgs"2.CMake Error at /opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package): Could not find a package configuration file provided by "derived_object_msgs",直接安装就可以:
    sudo apt-get install ros-noetic-ackermann-msgs
    sudo apt-get install ros-noetic-derived-object-msgs

2.4测试

         首先使用启动carla:./CarlaUE4.sh -prefernvidia,然后启动carla-ros -bridge测试用例:roslaunch carla_ros_bridge carla_ros_bridge_with_example_ego_vehicle.launch town:='town01'

        可以打开rviz,订阅传感器话题进行查看:

错误解决

1.process[carla_ros_bridge-2]: started with pid [23503] /usr/bin/env: “python”: 没有那个文件或目录

在 Linux 系统中,默认安装的 Python 3 通常以 python3 命名,而 python 命令可能未设置(未指向 python3),导致依赖 python 命令的程序无法运行。

sudo ln -s /usr/bin/python3 /usr/bin/python

2.ModuleNotFoundError: No module named 'networkx'

        注意这里不要在anconda bash下执行。

pip3 install networkx -i https://pypi.tuna.tsinghua.edu.cn/simple

3.CARLA python module version 0.9.13 required. Found: 0.9.15

        打开carla-ros-bridge/catkin_ws/src/ros-bridge/carla_ros_bridge/src/carla_ros_bridge/CARLA_VERSION文件,将其修改为0.9.15

4. 提示没有pygame

pip3 install pygame -i https://pypi.tuna.tsinghua.edu.cn/simple
http://www.dtcms.com/a/312621.html

相关文章:

  • OpenCV轻松入门_面向python(第一章OpenCV入门)
  • Kafka——怎么重设消费者组位移?
  • 北京-4年功能测试2年空窗-报培训班学测开-第六十六天
  • 「iOS」————属性关键字底层原理
  • Jupyter Notebook 中高效处理和实时展示来自 OpenCV 和 Pillow 的图像数据探究
  • 网络缓冲区的设计以及C++实现
  • 【Python练习】075. 编写一个函数,实现简单的语音识别功能
  • 项目日记---高并发内存池整体框架
  • 人工智能与医疗健康:AI 助力医疗的新格局
  • 信号传播速度与延时
  • [硬件电路-143]:模拟电路 - 开关电源与线性稳压电源的详细比较
  • PLC传感器接线与输出信号接线
  • Redis实战(7)-- 高级特性 Redis Stream数据结构与基础命令
  • 【0基础PS】PS工具详解--文字工具
  • .NET 开源节点编辑器,将你的程序功能模块节点化
  • pytorch 安装
  • Paxos 算法是什么?介绍 RAFT 和 ZAB,以及它们之间的区别?会有脑裂问题吗?为什么?
  • 算法竞赛阶段二-数据结构(39)数据结构栈模拟实现
  • AI陪伴赛道,热闹背后是真需求还是泡沫?
  • 应急响应整理
  • Back to the Features:附录A
  • [创业之路-532]:知识、技能、技术、科学各自解决什么问题?
  • 手机(电脑)与音响的蓝牙通信
  • 15_01_opencv_形态学滤波
  • 动态置信度调优实战:YOLOv11多目标追踪精度跃迁方案(附完整代码)
  • C++引用:高效安全的别名机制详解
  • 用于 UBI 的 Elasticsearch 插件:从搜索查询中分析用户行为
  • centos9 安装docker engine
  • Parcel 使用详解:零配置的前端打包工具
  • RPG增容3:尝试使用MVC结构搭建玩家升级UI(一)