Ubuntu22.04 で CARLA0.10.0 を使ってみる
はじめに
今回は、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をインストールします。
手順は以下のとおりです。
-
インストーラのダウンロード
wget https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh
最新版をダウンロードしたい場合は、
ここから一番新しいものを選択してください。 -
インストーラの実行
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を使用できるようにします。
-
zipファイルのダウンロード
ここから、ubuntu向けのzipファイルをダウンロードし、解凍します。 -
サーバーの起動
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
で画面表示しないようにしています。 -
クライアントの準備
conda create -n carla python=3.10 conda activate carla
別のターミナルを開き、conda環境を作成し、有効化します。
現在は提供されているwhlファイルがpython3.10向けしかないため、3.10で行っています。 -
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