ubuntu22.04 ROS 2 Humble環境にAutoware Universeをインストールする手順（Source installation）


ubuntu22.04 ROS 2 Humble環境にSource installationの手順で依存パッケージを手動インストールする手順
ほぼドキュメントの通り


https://autowarefoundation.github.io/autoware-documentation/main/installation/autoware/source-installation/




# 環境

OS
Ubuntu 22.04
ROS
ROS 2 Humble


# 必要な依存パッケージ

1. ROS 2
2. ROS 2 Dev Tools
3. RMW Implementation
4. pacmod
5. Autoware Core dependencies
6. Autoware Universe dependencies
7. pre-commit dependencies
8. Nvidia CUDA
9. Nvidia cuDNN and TensorRT


# 依存関係をAnsibleのスクリプトで自動インストールする

初めて環境構築する場合はこちらを推奨

```bash
git clone https://github.com/autowarefoundation/autoware.git
cd autoware
./setup-dev-env.sh
```

# 依存関係を手動でインストールする


## 1. ROS2 のインストール

公式ドキュメントや参考記事を参考にインストールする


公式ドキュメント

https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html

参考記事

https://qiita.com/porizou1/items/5dd915402e2990e4d95f





https://github.com/autowarefoundation/autoware/tree/main/ansible/roles/ros2#manual-installation


## 2. ROS 2 Dev Toolsのインストール


```bash
sudo apt update && sudo apt install -y \
  python3-flake8-docstrings \
  python3-pip \
  python3-pytest-cov \
  ros-dev-tools

sudo apt install -y \
  python3-flake8-blind-except \
  python3-flake8-builtins \
  python3-flake8-class-newline \
  python3-flake8-comprehensions \
  python3-flake8-deprecated \
  python3-flake8-import-order \
  python3-flake8-quotes \
  python3-pytest-repeat \
  python3-pytest-rerunfailures

sudo rosdep init
rosdep update

```


https://github.com/autowarefoundation/autoware/tree/main/ansible/roles/ros2_dev_tools#manual-installation





## 3. RMW Implementationのインストール

```bash
wget -O /tmp/amd64.env https://raw.githubusercontent.com/autowarefoundation/autoware/main/amd64.env && source /tmp/amd64.env

# For details: https://docs.ros.org/en/humble/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
```

## 4. pacmodのインストール


```bash
wget -O /tmp/amd64.env https://raw.githubusercontent.com/autowarefoundation/autoware/main/amd64.env && source /tmp/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
```


## 5. autoware_coreの依存パッケージをインストール


```bash
pip3 install gdown
```


## 6. autoware_universeの依存パッケージをインストール

```bash
sudo apt install geographiclib-tools

# Add EGM2008 geoid grid to geographiclib
sudo geographiclib-get-geoids egm2008-1
```


## 7. pre_commiteの依存パッケージをインストール

```bash
clang_format_version=16.0.0
pip3 install pre-commit clang-format==${clang_format_version}

sudo apt install golang
```


## 8. Nvidia CUDAのインストール

## 9. Nvidia cuDNN と TensorRTのインストール

CUDA、cuDNN、TenserRTのインストールは省略



# Autowareのclone

```bash
git clone https://github.com/autowarefoundation/autoware.git
cd autoware
```

# ワークスペースの設定

### ディレクトリを作成してwstoolsでワークスペースを構築

```bash
cd autoware
mkdir src
vcs import src < autoware.repos
```

### 依存するROS 2 パッケージのインストール

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


### ROS 2 パッケージのビルド


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

CPUのみで動かす場合　CUDAに依存しているパッケージのbuildを飛ばす

```bash
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release --packages-skip traffic_light_classifier bytetrack lidar_apollo_instance_segmentation lidar_centerpoint tensorrt_yolox traffic_light_fine_detector
```

### メモリが足りなくてcolcon buildが失敗する場合の対処方法

・MAKEFLAGSを-j1に設定

```bash
 MAKEFLAGS=-j1
```


・--parallel-workersオプションで同時にbuildするパッケージ数を1にする（colcon のデフォルトは4）

```bash
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
 --parallel-workers 1
```

・メモリのSWAP領域を増やす

https://qiita.com/gitcho/items/d38b77ce746b5de872f0

ドキュメントのトラブルシューティング

https://autowarefoundation.github.io/autoware-documentation/main/support/troubleshooting/#build-issues


# 参考

https://qiita.com/np_hsgw/items/4e585f272771ecb908ab

https://qiita.com/np_hsgw/items/53974ac9aa9c4943455b




https://qiita.com/porizou1/items/efe537a6d427eff4a29f


https://medium.com/tier-iv-tech-blog/autoware%E3%81%AE%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB%E3%81%A8component%E3%81%AE%E3%83%8F%E3%82%A4%E3%83%AC%E3%83%99%E3%83%AB%E3%81%AA%E8%A8%AD%E8%A8%88-67a8a2a1b9ba