Ubuntu20.04 服务器安装 CARLA_0.9.13服务端和客户端详细步骤

润信云 技术支持

0.1 应用场景:

  1. 远程服务器:无显示器,具备多个GPU卡,Ubuntu 20.04

  2. 远程服务器上拟安装的Carla版本:0.9.13

  3. Carla的服务端和客户端均运行在远程服务器上

  4. 用户通过本地计算机(Windows10)远程访问和操作服务器

  5. 本地计算机可:

  • 安装并使用MobaXterm软件:利用本地电脑远程登陆和操作服务器,主要使用该软件的SSH来操作服务器终端,SFTP显示和操作服务器的文件夹和文件,或RDP来远程登录服务器界面。

  • 使用Vs Code: 通过建立SSH来直接修改或调试远程服务器上的Python函数。

1. 准备工作

安装之前,需要熟悉以下几个Carla常用的资源来源网站。

  • a. Carla安装包: https://github.com/carla-simulator/carla/blob/master/Docs/download.md

       CARLA的不同版本安装包点这里

  • b. Carla官网: https://carla.org/

       可以找到DOCUMENTATION说明文档,和GITHUB官网下载链接。

  • c. Pypi-Carla: https://pypi.org/search/?q=carla

The Python Package Index (PyPI) 是Python编程语言的软件仓库repository,帮助我们查找并安装Python community共享的软件。本文中,远程服务器的Carla客户端Python软件来源于Pypi。但须注意安装时,到网站上检查一下Pypi仓库中默认的Carla客户端软件版本,否则可能导致安装失败。

2. 安装 CARLA 服务端软件【远程服务器】

以下安装均在远程服务器的个人账号base环境下完成,无须在root管理员账号下安装,亲验有效。注意,后续运行服务端程序时,也同样需在同一个人账号base环境下进行,验证发现root账号下运行carla服务端程序的话,会提示不允许。

    • (1) 下载Carla 0.9.13安装包:

    打开1.a提供的下载网址,找到0.9.13版本,下载下列两个文件:

    image.png


    • (2) 将第一个文件拷贝至服务器某文件夹,进入该文件夹后,解压:

    tar -xzvf CARLA_0.9.13.tar.gz
    • (3) 将第二个文件 AdditionalMaps_0.9.13.tar.gz 放到 carla 的 import 目录下。

    • (4) 执行命令导入附加的地图:

    cd CARLA_0.9.13/
    ./ImportAssets.sh

    3. 安装 CARLA 客户端【远程服务器】

    建议在虚拟环境中安装 CARLA 客户端库,以避免在使用多个版本时发生冲突。在远程服务器建立Anaconda虚拟环境软件,创建所需版本的虚拟环境。

    本例中,采用python3.8版本来管理carla客户端库和应用程序。

    # 创建虚拟环境,指定python版本
    conda create --name your_env_name python=3.8
    # 激活虚拟环境
    activate your_env_name
    # 退出虚拟环境
    deactivate 
    # 删除虚拟环境
    conda remove --name your_env_name --all
    # 查看所有虚拟环境
    conda info --envs
    conda env list
    # 查看活跃环境下的所有包
    conda list
    # 为指定环境安装某个包
    conda install -n env_name package_name

    conda 虚拟环境中包的安装: 如果不能通过conda install来安装,更习惯用pip直接安装。pip在Anaconda中已安装好,不需要单独为每个环境安装pip。如需要用pip管理包,activate环境后直接使用即可。

    CARLA 0.9.12+ 以上版本提供了三种安装客户端库的方式。

    本例使用第二种whl安装方式成功安装,注意此处有,请看下文。

    3.1 .egg 文件安装:

    CARLA 在== PythonAPI/carla/dist/== 中为不同的 Python 版本提供了.egg 文件,开箱即可使用。

    在== PythonAPI/examples== 中的每个例子脚本都包括一个自动寻找这个文件的代码片段。

    注意:
    (1)在 linux 中,可能需要把这个文件添加到你的 PYTHONPATH 中。
    (2)如果之前用 pip 安装了客户端库,它将优先于 .egg 文件,如果想使用.egg客户端库,需要先卸载之前的库。
    (3)CARLA 0.9.12 之前的版本不需要安装 Python 库,都带有一个 .egg 文件,开箱就可以使用。

    3.2 .whl 文件安装:

    (1)启动虚拟环境,定位到.whl文件:

    • CARLA 为不同的 Python 版本提供 .whl 文件,需要安装 .whl 文件。

          .whl 文件可以在 ==PythonAPI/carla/dist/ == 中找到。

    • 每个支持的 Python 版本有一个文件,用文件名表示 (例如,carla-0.9.12-cp36-cp36m-manylinux_2_27_x86_64.whl 表示Python 3.6)。

    • 如果以前安装了客户端库,应该在安装新库之前卸载旧库。

      在操作中发现Carla0.9.13版本的PythonAPI/carla/dist/下只有python 2.7和python 3.7版本的whl文件,没有本例中虚拟环境python 3.8对应的whl文件。此时,要作以下两步:

      • a. 从Pypi.org下载Carla 0.9.13版本的Python 3.8的 客户端whl文件。


      •       下载地址:https://pypi.org/project/carla/0.9.13/#files

      # 找到并下载下列whl文件:
      carla-0.9.13-cp38-cp38-manylinux_2_27_x86_64.whl
      • b. 修改whl名称,以便符合规范,否则运行下面的安装命令会出错。


      将whl文件名改为符合python3.8版本的文件安装的命名规范

      # cd到whl文件所在目录,利用mv命令重命名文件
      mv carla-0.9.13-cp38-cp38-manylinux_2_27_x86_64.whl  carla-0.9.13-cp38-cp38-manylinux_2_27_x86_64.whl



      (2) 安装.whl文件

      # Python 3
      pip3 install <wheel-file-name>.whl
      
      # Python 2
      pip install <wheel-file-name>.whl
      ./ImportAssets.sh



      3.3 从Pypi下载Python package

      CARLA 客户端库可以从 PyPi 下载。要安装它,需要 pip/pip3 的20.3版本或以上。

      # 激活虚拟环境
      conda activate XXX
      # 如果 pip 需要升级,则执行命令
      pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U
      # 如果需要,可永久更换 pip 源为清华源
      pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
      # 在 虚拟环境中安装 CARLA 执行所需要的依赖
      pip install pygame numpy
      # 在 虚拟环境中安装客户端
      pip install carla

      本例曾经使用第三种方式pip安装失败,经查看pypi库是安装时的版本已经更新至0.9.15,因此不能使用pip install carla来安装(默认0.9.15,与本例carla版本不一致)。

      本例尝试使用pip install carla==0.9.13来安装指定版本,仍然失败,原因未知,有知道的请评论区提示。


      4. 运行服务端程序

      由于carla服务端程序安装在远程服务器的个人账号下,须首先进入个人账号base环境,然后启动carla运行服务端程序,并保持运行。

      • 安装依赖项:

      apt-get install -y libomp5


      • 命令行启动Carla, 正常模式

      cd CARLA_0.9.13/
      ./CarlaUE4.sh

      • 命令行启动Carla, off-screen mode

      ./CarlaUE4.sh -RenderOffScreen


      • 由于远程服务器没有显示器,本例采用off-screen mode 启动carla服务端程序:即Unreal Engine 正常运行,正常进行渲染计算 rendering,但是没有显示信号输出,GPU 的虚拟传感器可以正常返回有效数据

      • 如果电脑显卡性能较差,可以添加如下可选参数调低渲染 level:

       ./CarlaUE4.sh -quality-level=Low


      启动时可选的配置选项包括:

      image.png


      5. 运行客户端程序【远程服务器】

      服务端运行之后,等待客户端与之连接,可以用下面的方法连接服务端。

      (1) 进入虚拟环境,生成交通流。命令行执行后不要关闭。

      cd PythonAPI\examples
      python3 -m pip install -r requirements.txt 
      python3 generate_traffic.py


      (2) 人工控制

      cd PythonAPI\examples
      python3 manual_control.py




        本文链接:https://blog.runxinyun.com/post/284.html 转载需授权!

        分享到:
        版权声明
        网站名称: 润信云资讯网
        本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
        不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
        我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!邮件:7104314@qq.com
        网站部分内容来源于网络,版权争议与本站无关。请在下载后的24小时内从您的设备中彻底删除上述内容。
        如无特别声明本文即为原创文章仅代表个人观点,版权归《润信云资讯网》所有,欢迎转载,转载请保留原文链接。
        0 469

        留言0

        评论

        ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。