Ubuntu20.04 は Autoware.universe をインストールし、Awsim と共同デバッグします


序章

この記事では、ROS2 Gaoptic に基づいた Ubuntu20.04 での Autoware.universe の詳細なインストール手順を紹介します。公式 Web サイト: Autoware Documentation
ここに画像の説明を挿入

注意:左上隅でGalacticバージョンを選択します
最終的な実行効果:
ここに画像の説明を挿入

1. インストールの依存関係

手順 3 で依存関係を自動インストールする場合、ROS2 Gaoptic を一緒にインストールすることも、事前に手動でインストールすることもできます。

1.1 gitをインストールする

sudo apt-get -y update
sudo apt-get -y install git

1.2 Autoware をローカルにクローン作成する

mkdir autoware_universe
cd autoware_universe/
git clone https://github.com/autowarefoundation/autoware.git -b galactic

1.3 関連する依存関係を自動的にインストールする

cd autoware
./setup-dev-env.sh

ここに画像の説明を挿入

これを試してみてもうまくいきません。すべて手動でインストールし、公式が提供する各ステップのリンクをたどってインストール コマンドを取得します (: 入力後、左上隅に必要があります)下の写真注意です选择Galactic版本が、公式のものには実際には少し問題があります。以下の私の手順を参照してください)。
ここに画像の説明を挿入
ここに画像の説明を挿入

1.4 グラフィックドライバーをインストールする

推奨されるグラフィックス カードを表示する

ubuntu-drivers devices

ここに画像の説明を挿入

推奨されるグラフィックス カードのバージョンをインストールします。ここではバージョン 535 です。

sudo apt-get install nvidia-driver-535

バージョンを選択すると、カーネルが自動的に更新されます。ただし、535 をインストールすると画面が真っ暗になり、510 しかインストールできません。新しくインストールしたシステムなので、カーネルを更新してもあまり影響はありません。また、インストールのバージョンが低すぎると、インストールできません。以下の CUDA をインストールするには最小バージョンが必要であるため、機能します。

1.5 ROS2 ギャラクティックのインストール

Yuxiang ros ワンクリックインストール:

wget http://fishros.com/install -O fishros && . fishros
  • [1]を選択: ワンクリックインストール: ROS (ROS および ROS2、Raspberry Pi Jetson をサポート)
  • [1] を選択: システム ソースを変更してインストールを続行します。既にソースを変更している場合は、[2] を選択してソースを変更しないこともできます。
  • [2] を選択: システム ソースを置換し、サードパーティ ソースをクリーンアップします。
  • [3]を選択:ギャラクティック(ROS2)
  • [1]を選択: ギャラクティック (ROS2) デスクトップ版
    ここに画像の説明を挿入

1.6 ros2_dev_toolsのインストール

sudo apt update && sudo apt install -y \
  build-essential \
  cmake \
  git \
  python3-colcon-common-extensions \
  python3-flake8 \
  python3-pip \
  python3-pytest-cov \
  python3-rosdep \
  python3-setuptools \
  python3-vcstool \
  wget
python3 -m pip install -U \
  flake8-blind-except \
  flake8-builtins \
  flake8-class-newline \
  flake8-comprehensions \
  flake8-deprecated \
  flake8-docstrings \
  flake8-import-order \
  flake8-quotes \
  pytest-repeat \
  pytest-rerunfailures \
  pytest \
  setuptools

ここに画像の説明を挿入

上記のエラーが報告された場合は、依存関係をインストールします。

sudo apt install python3-testresources

次のコマンドで問題が発生した場合は、記事「Ubuntu20.04 は ROS1 と ROS2 を同時にインストールする」を参照するか、Yuxiang ROS rosdepc を使用してください。

sudo rosdep init
rosdep update

1.7 rmw_implementation のインストール

# wget -O /tmp/amd64.env https://raw.githubusercontent.com/autowarefoundation/autoware/main/amd64.env && source /tmp/amd64.env
# 注意官网给的是mian,humble的,需要改成galactic
wget -O /tmp/amd64.env https://raw.githubusercontent.com/autowarefoundation/autoware/galactic/amd64.env && source /tmp/amd64.env

最初の文で次の問題が報告されている場合: 接続が拒否されました。解決策は 2 つあります ( 1 推荐第二种)
Scientific Internet
(2) amd64.env は一部のソフトウェアの対応バージョンの環境変数です。セクション 1.2 で実際にダウンロードしました。クリックするだけです。ソースは大丈夫

cd autoware_universe/
source amd64.env

ここに画像の説明を挿入

# For details: https://docs.ros.org/en/galactic/How-To-Guides/Working-with-multiple-RMW-implementations.html
sudo apt update
rmw_implementation_dashed=$(eval sed -e "s/_/-/g" <<< "${rmw_implementation}")
sudo apt install ros-${rosdistro}-${rmw_implementation_dashed}

# (Optional) You set the default RMW implementation in the ~/.bashrc file.
echo '' >> ~/.bashrc && echo "export RMW_IMPLEMENTATION=${rmw_implementation}" >> ~/.bashrc

次の文は、次のエラーを報告し、ROS バージョン変数を galactic に変更します (このエラーは、main に対応する amd.
ここに画像の説明を挿入

1.8 pacmodをインストールする

# wget -O /tmp/amd64.env https://raw.githubusercontent.com/autowarefoundation/autoware/galactic/amd64.env && source /tmp/amd64.env
cd autoware_universe/
source amd64.env

# Taken from https://github.com/astuff/pacmod3#installation
sudo apt install apt-transport-https
sudo sh -c 'echo "deb [trusted=yes] https://s3.amazonaws.com/autonomoustuff-repo/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/autonomoustuff-public.list'
sudo apt update
sudo apt install ros-${rosdistro}-pacmod3

Wget はすでに一度処理されています。ここではソースのみを作成できます (見つからない場合は再度コピーします)。

1.9 autoware_core のインストール

pip3 install gdown

1.10 Autoware Universe の依存関係をインストールする

sudo apt install geographiclib-tools

# Add EGM2008 geoid grid to geographiclib
# 下面过程很慢,耐心等待
sudo geographiclib-get-geoids egm2008-1

1.11 pre_commit をインストールする

clang_format_version=14.0.6
pip3 install pre-commit clang-format==${clang_format_version}

# Install Golang (Add Go PPA for shfmt)
sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt install golang

1.12 CUDAのインストール

# wget -O /tmp/amd64.env https://raw.githubusercontent.com/autowarefoundation/autoware/galactic/amd64.env && source /tmp/amd64.env
cd autoware_universe/
source amd64.env

# Modified from:
# https://developer.nvidia.com/cuda-11-4-4-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=deb_network
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
sudo apt-get update
cuda_version_dashed=$(eval sed -e "s/[.]/-/g" <<< "${cuda_version}")
sudo apt install cuda-${cuda_version_dashed} --no-install-recommends

一般に、上記のプロセスは正常にインストールされますが、インストールの最後の手順で次のエラーが報告される場合があります。解決策は 2 つあります (2 番目をお勧めします)。
ここに画像の説明を挿入

(1) aptitude を使用して依存関係のバージョンを調整します (慎重に使用してください。2建议番目の方法を使用してください)

sudo apt-get install aptitude
sudo aptitude install cuda-${cuda_version_dashed}

--no-install-recommendsこのパラメータは、ソフトウェア パッケージをインストールするときに、推奨される追加のソフトウェア パッケージのインストールを禁止するために使用されます。CUDA 11.6 のコア コンポーネントのみがインストールされるため、インストールされるソフトウェア パッケージの数が減り、ディスク領域が節約され、システムの冗長性が削減されます。不要な場合はキャンセル可能です。
Y を選択すると、グラフィックス カード ドライバーが再インストールされます (私の場合は 535 が再インストールされますが、画面が真っ黒になるため、この方法は使用しません)
(2) 手動インストール方法を使用します。

nvidia-smi

グラフィックス カード ドライバーでサポートされている最高の CUDA バージョンが 12.1 であることを確認し、cuda-toolkit-archiveに移動し、ダウンロードする必要な CUDA (できれば env で記述された 11.6.2) バージョンを選択し、次の図に示すように、 runfile(ローカル)、生成されたコマンドを使用してダウンロードしてインストールします
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

Enter キーを押してグラフィックス カード ドライバーのインストールをキャンセルし、最終的なインストールを選択します。
ここに画像の説明を挿入
ここに画像の説明を挿入

インストールが成功すると、環境が構成され、環境変数が .bashrc ファイルの末尾に追加されます。

sudo gedit ~/.bashrc
# 添加以下内容:
export PATH=/usr/local/cuda-11.6/bin${
    
    PATH:+:${
    
    PATH}} 
export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

または、ターミナルに次のコマンドを入力して追加します。

# Taken from: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#post-installation-actions
echo 'export PATH=/usr/local/cuda-11.6/bin${PATH:+:${PATH}}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc

インストールが成功したことを確認する

nvcc -V

ここに画像の説明を挿入

1.13 cuDNN と TensorRT のインストール

# wget -O /tmp/amd64.env https://raw.githubusercontent.com/autowarefoundation/autoware/galactic/amd64.env && source /tmp/amd64.env
cd autoware_universe/
source amd64.env

# Taken from: https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html#installing
sudo apt-get install libcudnn8=${cudnn_version} libcudnn8-dev=${cudnn_version}
sudo apt-mark hold libcudnn8 libcudnn8-dev
sudo apt-get install libnvinfer8=${tensorrt_version} libnvonnxparsers8=${tensorrt_version} libnvparsers8=${tensorrt_version} libnvinfer-plugin8=${tensorrt_version} libnvinfer-dev=${tensorrt_version} libnvonnxparsers-dev=${tensorrt_version} libnvparsers-dev=${tensorrt_version} libnvinfer-plugin-dev=${tensorrt_version}
sudo apt-mark hold libnvinfer8 libnvonnxparsers8 libnvparsers8 libnvinfer-plugin8 libnvinfer-dev libnvonnxparsers-dev libnvparsers-dev libnvinfer-plugin-dev

2. ソースコードをコンパイルする

2.1 ユニバースのコードベースをダウンロードする

(1) srcフォルダを作成する

cd autoware_universe/
mkdir src

(2) autoware.reposファイルを変更する

sudo gedit autoware.repos

autoware.repos ファイルの 28 行目に次の内容を追加します。

universe/external/open_planner:
    type: git
    url: https://github.com/ZATiTech/open_planner.git
    version: main

(3) コードライブラリをローカルにダウンロードします。

vcs import src < autoware.repos

ここに画像の説明を挿入

2.2 Autoware ROS 依存関係パッケージをインストールする

(1)rosdepをインストールする

wget http://fishros.com/install -O fishros && . fishros
# 选择[3]:一键配置:rosdep(小鱼的rosdepc,又快又好用)
rosdep update --include-eol-distros  # 科学上网或者多试几次

(2) ROS の依存関係をインストールする

source /opt/ros/galactic/setup.bash
rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO

ROS の依存関係をインストールするときにエラーが報告されます。

/usr/bin/pip3:6: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
from pkg_resources import load_entry_point

ここに画像の説明を挿入

参考https://blog.csdn.net/yuteng12138/article/details/130123995:

pip install --upgrade --user setuptools==58.3.0

インストール時の依存関係のバージョンが高すぎます:

ros-galactic-tvm-vendor : Depends: ocl-icd-opencl-dev but it is not going to be installed

ここに画像の説明を挿入
aptitude を使用して依存関係をダウングレードします。N をそのままにして、すべて y を入力します。

sudo aptitude install ros-galactic-tvm-vendor

ここに画像の説明を挿入

ROS の依存関係をインストールする場合、open3d のインストールが遅くなり、エラー報告の問題については、https://blog.csdn.net/yuteng12138/article/details/130123620 を参照してください。

pip install open3d

ここに画像の説明を挿入

2.3 コンパイルワークスペース

colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release

コンパイル プロセス中にフリーズしたりクラッシュしたり、その他の問題が発生した場合は、さらに数回試すか、公式を参照してください: build-issues
Simply run Universe, $HOME/autoware_map/sample-map-planning は、公式

source install/setup.bash
ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/autoware_map/sample-map-planning vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kitre_launch/launch/autoware.launch.xml map_path:=/home/universe/autoware_universe/op_carla/Town01 vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit

ここに画像の説明を挿入

3.Awsimをインストールする

公式チュートリアルAWSSIM v1.0.1、インストールの依存関係を参照してください。

sudo apt update
sudo apt install libvulkan1

Awsim バイナリ ファイルAWSIM_v1.0.1.zipをダウンロードし、解凍後、次のコマンドを実行します。

./<path to AWSIM folder>/AWSIM.x86_64

ここに画像の説明を挿入

現在、公式シミュレータには比較的機能が少ないです。レンダリング頻度を調整できるのは下のプログレス バーのみです。
開くと、シミュレータによって出力されたセンサー メッセージと受信したシャーシ制御メッセージを確認できます。

ros2 topic list

ここに画像の説明を挿入

4. Autoware と Awsim の共同デバッグ

まず、高精度マップと点群マップを含むシミュレーター マップをダウンロードします: nishinjuku_autoware_map.zip 。
Awsim と Autoware を同時に起動し、ダウンロードしたマップ アドレスを置き換えることに注意してください

./<path to AWSIM folder>/AWSIM.x86_64

# 新开一个终端
cd autoware_universe
source install/setup.bash
ros2 launch autoware_launch e2e_simulator.launch.xml vehicle_model:=sample_vehicle sensor_model:=awsim_sensor_kit map_path:=<your mapfile location>

RViz を使用して手動で設定し2D Pose Estimate、RViz を使用して 2D ゴール ポーズ、設定2d Checkpoint Pose(オプション)、パス生成を手動で設定します。
ここに画像の説明を挿入

新しいターミナルを起動し、次のメッセージを投稿し (または RVIZ に参加するをクリックし)、自動操縦を開始します。

ros2 topic pub /autoware/engage autoware_auto_vehicle_msgs/msg/Engage '{engage: True}' -1

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/zardforever123/article/details/132029636