💬

Ubuntu22.04 で CARLA0.10.0 を使ってみる

2025/03/07に公開

はじめに

今回は、Ubuntu22.04でCARLA0.10.0を使います。

CARLAとは

CARLAはオープンソースの自動運転研究用のシミュレータになります。
CARLAは天候や時間帯などを自由に選択できたり、車両や歩行者などを自由に配置できるため、手軽に様々な環境を再現できます。

さて、そんなCARLAですが、 2024年12月に新しいバージョンである0.10.0がリリースされました。
この更新によってUnrial Engineのバージョンが4.26から5.5に上昇し、グラフィックが細かくなり、より現実に近いものになりました。

そこで今回は、CARLAをインストールし、仮想環境上でPythonAPIを使用できるようにします。

環境

今回、サーバとクライアントは同一端末で動かしています。
OS: ubuntu22.04
メモリ: 94GB
GPU: NVIDIA GeForce RTX 4090
CPU: 12th Gen Intel(R) Core(TM) i7-12700

環境構築

Anaconda install

今回は仮想環境でクライアントを使用するため、
Anacondaをインストールします。
手順は以下のとおりです。

  1. インストーラのダウンロード

    wget https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh
    

    最新版をダウンロードしたい場合は、
    ここから一番新しいものを選択してください。

  2. インストーラの実行

    chmod +x Anaconda3-2024.06-1-Linux-x86_64.sh
    ./Anaconda3-2024.06-1-Linux-x86_64.sh
    

    このコマンドを実行すると設定画面が表示されます。途中で「ENTER」や「yes」を
    入力するよう指示されるので、案内どおりに進めてください。

これでAnacondaのインストールは完了です。

また、端末起動時に自動的にconda環境が有効になるのを避けるため、

sudo gedit ~/.bashrc

でbashファイルを開き、

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/yoshi-22/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/yoshi-22/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/home/yoshi-22/anaconda3/etc/profile.d/conda.sh"
    else
        export PATH="/home/yoshi-22/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

上記ブロックのすぐ下に、以下の1行を追加します。

conda deactivate

CARLA install

次にCARLAをインストールし、PythonAPIを使用できるようにします。

  1. zipファイルのダウンロード
    ここから、ubuntu向けのzipファイルをダウンロードし、解凍します。

  2. サーバーの起動

     cd Carla-0.10.0-Linux-Shipping
      ./CarlaUnreal.sh -quality-level=Epic -world-port=2000 -RenderOffScreen
    

    解凍したディレクトリに移動し、CARLAのサーバーを起動します。

    -quality-level=Epicでグラフィックの設定を最高にして、
    -world-port=2000でサーバーの使用するポートを2000に指定して、
    -RenderOffScreenで画面表示しないようにしています。

  3. クライアントの準備

    conda create -n carla python=3.10
    conda activate carla
    

    別のターミナルを開き、conda環境を作成し、有効化します。
    現在は提供されているwhlファイルがpython3.10向けしかないため、3.10で行っています。

  4. Python API のインストール

    pip install /home/apollo-22/Yoshi_repo/Carla-0.10.0-Linux-Shipping/PythonAPI/carla/dist/carla-0.10.0-cp310-cp310-linux_x86_64.whl
    cd Carla-0.10.0-Linux-Shipping/PythonAPI/examples/
    python3 manual_control.py
    

    pipでPythonAPIをインストールし、manual_control.pyを実行できれば
    Python APIのセットアップは完了です。

エラー対処

エラー:

(py310) yoshi-22@yoshi22-Victus-by-HP-Gaming-Laptop-16-r0xxx:~/Carla-0.10.0-Linux-Shipping/PythonAPI/examples$ LIBGL_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri python3 manual_control.py
pygame 2.6.1 (SDL 2.28.4, Python 3.10.16)
Hello from the pygame community. https://www.pygame.org/contribute.html
INFO: listening to server 127.0.0.1:2000
Allows controlling a vehicle with a keyboard.
libGL error: MESA-LOADER: failed to open iris: /home/yoshi-22/anaconda3/envs/py310/bin/../lib/libstdc++.so.6: version GLIBCXX_3.4.30' not found (required by /lib/x86_64-linux-gnu/libLLVM-15.so.1) (search paths /usr/lib/x86_64-linux-gnu/dri, suffix _dri)
libGL error: failed to load driver: iris
libGL error: MESA-LOADER: failed to open iris: /home/yoshi-22/anaconda3/envs/py310/bin/../lib/libstdc++.so.6: version GLIBCXX_3.4.30' not found (required by /lib/x86_64-linux-gnu/libLLVM-15.so.1) (search paths /usr/lib/x86_64-linux-gnu/dri, suffix _dri)
libGL error: failed to load driver: iris
libGL error: MESA-LOADER: failed to open swrast: /home/yoshi-22/anaconda3/envs/py310/bin/../lib/libstdc++.so.6: version GLIBCXX_3.4.30' not found (required by /lib/x86_64-linux-gnu/libLLVM-15.so.1) (search paths /usr/lib/x86_64-linux-gnu/dri, suffix _dri)
libGL error: failed to load driver: swrast
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  152 (GLX)
  Minor opcode of failed request:  3 (X_GLXCreateContext)
  Value in failed request:  0x0
  Serial number of failed request:  173
  Current serial number in output stream:  174

対策:
GUI表示するためのドライバーがうまく入っていない
orうまく検索できていないので、
sudo apt install mesa-dri-drivers libgl1-mesa-glx でドライバを入れて、
LIBGL_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri で正しいパスをMesaが検索するようにする。
それでもうまく行かない場合は、libstdc++のバージョンが異なる可能性があるので、
conda install -c conda-forge gcc_linux-64=12.1.0でコンパイラのバージョンを上げる必要がある。

おわりに

今回はCARLA0.10.0を使用するための環境を設定しました。
次回はCARLAを使用してLIO-SAMをしていきたいと思います。

Discussion