当前位置: 首页 > 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.lryc.cn/news/608751.html

相关文章:

  • Ubuntu22.4部署大模型前置安装
  • AI + 云原生:正在引爆下一代应用的技术革命
  • LabVIEW小波变换检测信号断点
  • HCIP笔记(第四章)
  • 悬挂的绳子,它的函数方程是什么样子的?
  • Python Dash 全面讲解
  • 大屏项目展示
  • 基于Springboot+UniApp+Ai实现模拟面试小工具八:管理端基础功能实现
  • RAG与智能体技术全景解析:架构革新、场景落地与未来趋势
  • linux2.6 和 unix-v6 源码实验
  • uni-app学习笔记01-项目初始化及相关文件
  • Java小红书源码1:1还原uniapp_仿小红书源码
  • UniApp 实现顶部固定导航栏 Tab 及滚动变色效果
  • 7.13.B+树
  • io_setup系统调用及示例
  • [AI8051U入门第十五步]W5500实现DHCP自动获取IP
  • UE5的渲染Debug技巧
  • [每周一更]-(第154期):Docker 底层深度剖析:掌控 CPU 与内存资源的艺术
  • Leetcode 12 java
  • GitHub 趋势日报 (2025年08月02日)
  • ThinkPad P16 Gen2,P16 Gen2 LTE(21FA,21FB)原装Win10Pro,Win11专业版系统镜像,恢复出厂开箱状态
  • All the Mods 9 - To the Sky - atm9sky 局域网联机报错可能解决方法
  • Timer串口常用库函数(STC8系列)
  • 代码随想录算法训练营第三十九天
  • 【内容规范】关于标题中【】标记的使用说明
  • 【机器学习③】 | CNN篇
  • k8s日志收集
  • Node.js 操作 MySQL
  • [硬件电路-129]:模拟电路 - 继电器的工作原理、关键指标、常用芯片与管脚定义
  • OSPF知识点整理