Skip to content

トラブルシューティング#

セットアップの問題#

CUDAに関連するエラー#

CUDAをインストールする際にバージョンの競合によりエラーが発生する場合があります。このようなタイプのエラーを解決するには、次のいずれかの方法を試してください:

  • すべてのCUDA関連ライブラリの保留を解除し、セットアップスクリプトを再実行します。

    sudo apt-mark unhold  \
      "cuda*"             \
      "libcudnn*"         \
      "libnvinfer*"       \
      "libnvonnxparsers*" \
      "libnvparsers*"     \
      "tensorrt*"         \
      "nvidia*"
    
    ./setup-dev-env.sh
    
  • すべてのCUDA関連ライブラリをアンインストールし、セットアップスクリプトを再実行します。

    sudo apt purge        \
      "cuda*"             \
      "libcudnn*"         \
      "libnvinfer*"       \
      "libnvonnxparsers*" \
      "libnvparsers*"     \
      "tensorrt*"         \
      "nvidia*"
    
    sudo apt autoremove
    
    ./setup-dev-env.sh
    

警告

これによりシステムが破損する可能性があるため、慎重に実行してください。

  • CUDA関連のライブラリをインストールせずにセットアップスクリプトを実行します。

    ./setup-dev-env.sh --no-nvidia
    

警告

Autoware Universeの一部のコンポーネントにはCUDAが必要であり、現時点ではenvファイルのCUDAバージョンのみがサポートされていることに注意してください。 Autowareは他のCUDAバージョンでも動作する可能性がありますが、それらのバージョンはサポートされておらず機能は保証されていません。

ビルド上の問題#

メモリの不足#

Autowareのビルドには大量のメモリが必要で、ビルド中にメモリが不足するとマシンがフリーズしたりクラッシュしたりする可能性があります。この問題を回避するには16-32GB のスワップを構成する必要があります。

# Optional: Check the current swapfile
free -h

# Remove the current swapfile
sudo swapoff /swapfile
sudo rm /swapfile

# Create a new swapfile
sudo fallocate -l 32G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# Optional: Check if the change is reflected
free -h

より詳細な構成手順とスワップの説明についてはDigital Oceanの"How To Add Swap Space on Ubuntu 20.04" tutorialを参照してください。

マシンのCPUコアが多すぎる(64個以上)場合、より大きなメモリが必要になる可能性があります。 この問題を回避するにはビルド中のジョブの数を制限します。

MAKEFLAGS="-j4" colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release

-j4はシステムに基づいて任意の数値に調整できます。 詳細についてはmanual page of GNU makeのマニュアルページを確認してください.

並行してビルドされるパッケージの数を減らすことで、使用されるメモリの量も減らすことができます。 以下の例では、並行してビルドされるパッケージの数が1に設定され、makeで使用されるジョブの数は1に制限されます。

MAKEFLAGS="-j1" colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release --parallel-workers 1

注記

並行してビルドされるパッケージの数とmakeで使用されるジョブの数の両方を減らすことで、メモリ使用量を減らすことができます。 ただし、これはビルドプロセスに時間がかかることも意味します。

最新版のAutowareを使用している時のエラー#

最新版のAutowareを使用している場合は、古いソフトウェアまたは古いビルドファイルが原因で問題が発生する可能性があります。

このようなタイプの問題を解決するには、まずビルドの成果物を削除して再構築してみてください:

rm -rf build/ install/ log/
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release

エラーが解決しない場合は、src/を削除してインストールタイプ(Docker / ソース)に応じてワークスペースをアップデートしてください。

警告

src/を削除する前にローカル環境に保持したい変更がないことを確認してください!

上記の手順を試してもエラーが解決しない場合は、ワークスペース全体を削除し、もう一度リポジトリのクローンを作成して、インストール手順をやりなおしてください。

rm -rf autoware/
git clone https://github.com/autowarefoundation/autoware.git

修正版のAutowareを使用している時のエラー#

修正版を使用する場合、原則としてエラーは発生しません。つまり、考えられる原因は以下のとおりです:

  • ROS2が重大な変更を伴うアップデートを行った。
  • ローカル環境が壊れています。
    • .bashrcファイル、環境変数およびライブラリのバージョンを確認します。

上記の原因に加えて修正バージョンの使用に関してよくある誤解が2つあります。

  1. autowarefoundation/autoware修正バージョンのみ使用しました。 完全に修正されたバージョンを使用するには.reposファイル内のすべてのリポジトリバージョンを指定する必要があります。

  2. autowarefoundation/autowareのブランチを変更した後、ワークスペースを更新しませんでした。 autowarefoundation/autowareのブランチを変更してもsrc/下のファイルには影響しません。これらを更新するにはvcs importコマンドを実行する必要があります。

pythonパッケージのビルド中のエラー#

ビルド中に以下の問題が発生する可能性があります

pkg_resources.extern.packaging.version.InvalidVersion: Invalid version: '0.23ubuntu1'

このエラーは66.0.0と67.5.0の間のバージョンではsetuptoolsがPythonパッケージをPEP-440準拠にすることを強制するために発生します。 バージョン 67.5.1 以降、setuptoolsには古いパッケージを再び操作できるようにするフォールバック があります。

解決策は、次のコマンドを使用してsetuptoolsを最新バージョンに更新することです。

pip install --upgrade setuptools

Docker/rockerの問題#

DockerまたはrockerでAutowareを実行するときにエラーが発生した場合は、まず次のコマンドを実行して、Docker インストールが正しく動作していることを確認します:

docker run --rm -it hello-world
docker run --rm -it ubuntu:latest

次にGitHubパッケージWebサイトに保存されているAutowareのベースイメージにアクセスできることを確認します。

docker run --rm -it ghcr.io/autowarefoundation/autoware-universe:latest

ランタイムの問題#

パフォーマンス関連の問題#

症状:

  • Autowareの実行が予想よりも遅い
  • RViz2でメッセージが遅く表示される
  • 点群の遅れ
  • カメラの映像が遅れている
  • RViz2で点群またはマーカーがちらつく
  • 複数のサブスクライバが同じパブリッシャーを使用するとメッセージレートが低下する

これらの症状が発生した場合はパフォーマンスに関するトラブルシューティングページを参照してください。

計画シミュレーターの実行時にマップが表示されない#

計画シミュレータを実行するときに、RVizにマップが表示されない最も一般的な理由は起動コマンドでマップパスが正しく指定されていないことです。これに該当するかどうかは{path-to-map-dir}/lanelet2_map.osmログ内でCould not find lanelet mapエラーを検索することで確認できます。

考えられるもう1つの理由はDDSのパフォーマンスが低いためにマップの読み込みに時間がかかっていることです。これについてはパフォーマンスのトラブルシューティングページを参照してください。