プログラミング素人がAutoware.AIを使ったコンテストに参加した話(その1:Autoware.AIの環境構築)
まずはじめに
仕事ではプログラミングとは全く縁がありませんが数年前からAIに興味を持って独学で勉強を始めました。
コマンドや参考リンク等は最新の状況では当てはまらないかもしれません。
これは素人が環境構築するだけでもとても大変で非常に勉強になったことをまとめて記事にしたものです。
・その1:Autoware.AIの環境設定 ←いまここ
・その2:ROSの情報まとめ
・その3:Autoware.AIとLGSVLシミュレータを使ってみる
項番 | ページ内リンク |
---|---|
0 | コンテストに参加したきっかけ |
1 | Ubuntuが起動しない |
2 | CUDA、docker、nvidia-docker2とそれぞれインストール |
3 | Autoware.AIのビルド |
4 | 参考リンク |
0. コンテストに参加したきっかけ
ソフトウェアファーストやコネクティッドの考え方とともにモノづくりが変わろうとしています。私は普段の業務ではソフトウェアにはほとんど関わらないのですがそれではいけないと思い、2年ほど前から社内の有志とともにAIをはじめとしたプログラミング勉強を仕事とは別にやってきました。そのなかで自動運転とAIという非常にホットなワードがある自動運転AIチャレンジに参加しました。(ものすごく大変だった。。。)
1. Ubuntuのインストール
Ubuntuが起動しない。(PCが起動しない)
当時はUbuntuって何?という知識レベルでした。とりあえずUbuntu18.04のインストーラーを使って起動したのですが何故か起動しません。NVIDIA GPUと標準のUbuntuのグラフィックドライバーの相性が悪いためうまく起動しないようです。
こちらの記事を参考にして解決。
nouveauの無効化
1. BIOSのメニューに入り、Secure Boot を Disabled にしておく
(BIOSへの入り方はPCによって異なるので型番とかと合わせてググってください。)
2. Install Ubuntu にカーソルを合わせて e
を押し起動オプションの設定
3.quiet splash ---
となっているところを quiet splash nomodeset ---
と書き換えるとnouveauを無効化できます。
nvidia-smiができない(GPUドライバのインストール)
こちらを参考にしました。
ubuntu-drivers devices
sudo apt update
sudo apt install nvidia-driver-***
もしうまく行かない場合こちらの記事を参考にしました。GUIが使えなくなるのはツライ・・・
NVIDIA公式サイトでドライバを検索してインストール。もし見つからない場合はβ版があるかもしれないのでこちらから探すようにしてください。
sudo bash NVIDIA-Linux-x86_64-440.36.run
2. 必要なものインストール
GPUのnvidia-driverとCUDA Toolkitの一覧はこちら
ちゃんと対応するものをインストールしましょう。
CUDA Toolkit 10.0 をインストール場合
まずCUDAをインストールします。今回はAutowareの推奨がCUDA10なのでそちらをインストールします。
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
sudo apt-get update
sudo apt-get -y install cuda-10.0
# パスをbashrcに追加
echo -e "\n## CUDA and cuDNN paths" >> ~/.bashrc
echo 'export PATH=/usr/local/cuda-10.0/bin:${PATH}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:${LD_LIBRARY_PATH}' >> ~/.bashrc
source ~/.bashrc
# PCを再起動
sudo reboot
dockerのインストール
dockerのサイト:Install Docker Engine on Ubuntuにそっていけばインストールできます。
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
# 一般ユーザがdockerコマンドを使えるようにする
sudo usermod -aG docker $USER
reboot
nvidia-dockerと nvidia-docker2のインストール
こちらNVIDIA Docker って今どうなってるの? (19.11版) → こちらが最新のようですNVIDIA Docker って今どうなってるの? (20.09 版)と
こちらNVIDIA-DOCKER2の始め方を参考にしてインストールします。
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu16.04/amd64/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install nvidia-docker2
sudo pkill -SIGHUP dockerd
sudo docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
確認コマンドが動作してイメージをpullしてこない場合はうまく行っていないので注意してください。
<- 不要なので削除しました。docker run --gpus all nvidia/cuda:10.0-base nvidia-smi
docker run --runtime nvidia nvidia/cuda:10.0-base nvidia-smi
ROSのインストール <- (dockerで使用するなら不要)
ROSはOSのバージョンによって対応するバージョンが異なり、Ubuntu18.04にはmelodicをインストールします。
こちらにそってインストールしましょう。
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install ros-melodic-desktop-full
# 次回起動時もROSの環境ファイルが読み込まれるようにbashrcに追加
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
# 依存関係のインストール
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
sudo apt install python-rosdep
sudo rosdep init
rosdep update
3. Autowareのビルド
Autoware.AIにはdockerで起動するAutoware-dockerとローカルPCに直接ビルドする方法の2種類あります。
環境的な制約もあるかもしれませんがAutoware-dockerをおすすめします。
もしROS環境やAutowareがこわれて動かなくなってもdockerならすぐにもとに戻すことができますので。。。
Autoware-dockerの場合
まずユーザーIDを調べます。
id
あとはAutoware-docker buildにしたがってビルドしていきます。今回はv1.13.0をビルドしていくためバージョン指定します。
git clone https://github.com/Autoware-AI/docker.git
cd docker/generic
# uid=1000のとき
./run.sh -t 1.13.0
# uid!=1000のとき
./run.sh -s -t 1.13.0
【補足】dockerからexitしてもimageが残るようにする。
このままではdockerからexitするとimageが残らないためまたパッケージのビルドからはじめないといけません。
それを避けるためにAutoware-docker/run.shの最後の部分を変えると簡単です。その代わり./run.sh
するたびにイメージが作成されるようになることになりますが。。。
# 最後のdockerコマンド
*****
docker run \
-it\ #<=--rm コマンドを消すだけ
$VOLUMES \
--env="XAUTHORITY=${XAUTH}" \
--env="DISPLAY=${DISPLAY}" \
--env="USER_ID=$USER_ID" \
--privileged \
--net=host \
$RUNTIME \
$IMAGE
ソースビルドする場合
こちらAutoware-docker Source Buildにそってすすめていきます。私の環境の場合はEigenをビルドするところがちょっとうまく行かなかったので変えています。
# 依存ライブラリのインストール
sudo apt update
sudo apt install -y python-catkin-pkg python-rosdep ros-$ROS_DISTRO-catkin
sudo apt install -y python3-pip python3-colcon-common-extensions python3-setuptools python3-vcstool
pip3 install -U setuptools
# Eigenのインストール
cd && wget http://bitbucket.org/eigen/eigen/get/3.3.7.tar.gz
mkdir eigen && tar --strip-components=1 -xzvf 3.3.7.tar.gz -C eigen
cd eigen && mkdir build && cd build && cmake .. && make
sudo make install #<=ここにsudoをいれる
あとはこちらUbuntu18.04にAutoware.AIをインストールにそってやればビルドが完了します。
mkdir -p autoware.ai/src
cd autoware.ai
# v1.13.0をビルドしていくためバージョン指定
wget -O autoware.ai.repos "https://gitlab.com/autowarefoundation/autoware.ai/autoware/raw/1.13.0/autoware.ai.repos?inline=false"
vcs import src < autoware.ai.repos
sudo rosdep init
rosdep update
rosdep install -y --from-paths src --ignore-src --rosdistro melodic
source /opt/ros/melodic/setup.bash
# CUDA support ありでビルド
AUTOWARE_COMPILE_WITH_CUDA=1 colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
# CUDA Support なしでビルド
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
AutowareのRuntime Managerが起動できればビルド成功です。
# Autowareの環境ファイルの読み込み
source ~/Autoware/install/local_setup.bash
# runtime_managerの起動
roslaunch runtime_manager runtime_manager.launch
お疲れ様でした。どんなに順調に行ってもここまでやるのに丸一日はかかると思います。(初めてやったときは試行錯誤で4日くらいかかった。)
ここまででようやくAutoware.AIを動かす環境設定が終わりました。
かなり長くなってしまったのであらためてROSの勉強方法とAutoware.AIの使い方など書きたいと思います。
4. 参考リンク
・自動運転AIチャレンジ
・ubuntu18.04にnvidiaドライバを入れるの苦労した
・エヌビディア製品用ドライバ
・エヌビディア製品用ドライバのベータ版
・Deep Learning 環境の構築
・Autoware.AI Source Build
・Ubuntu 18.04へのCUDAインストール方法
・NVIDIA CUDA Installation Guide for Linux
・Install Docker Engine on Ubuntu
・NVIDIA Docker って今どうなってるの? (19.11版)
・NVIDIA Docker って今どうなってるの? (20.09 版)
・NVIDIA-DOCKER2の始め方
・Ubuntu install of ROS Melodic
・id - ユーザIDやグループIDを表示する
・Autoware-docker build
・Autoware-docker Source Build
・Ubuntu18.04にAutoware.AIをインストール
・Ubuntuの18.04 - NVIDIAドライバをインストールする方法
・NVIDIA CUDA Toolkit Release Notes
Author And Source
この問題について(プログラミング素人がAutoware.AIを使ったコンテストに参加した話(その1:Autoware.AIの環境構築)), 我々は、より多くの情報をここで見つけました https://qiita.com/penstood/items/aa0328805bb91ad9340f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .