記事ディレクトリ
- 序章
- 1. インストールの依存関係
-
- 1.1 gitをインストールする
- 1.2 Autoware をローカルにクローン作成する
- 1.3 関連する依存関係を自動的にインストールする
- 1.4 グラフィックドライバーをインストールする
- 1.5 ROS2 ギャラクティックのインストール
- 1.6 ros2_dev_toolsのインストール
- 1.7 rmw_implementation のインストール
- 1.8 pacmodをインストールする
- 1.9 autoware_core のインストール
- 1.10 Autoware Universe の依存関係をインストールする
- 1.11 pre_commit をインストールする
- 1.12 CUDAのインストール
- 1.13 cuDNN と TensorRT のインストール
- 2. ソースコードをコンパイルする
- 3.Awsimをインストールする
- 4. Autoware と 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