目黒研のbagデータをautoware (ros2)で動かす

# はじめに


こんにちは!!B4の黒田です!!
今回は，以下の構成で記事を書きます!!

推奨環境
・OS　ubuntu22.04
・ROS　ROS2 Humble
・git　「https://github.com/settings/keys」

**1. githubの登録・SSHキーの設定**

**2. autowareのインストール・設定**

**3. autoware外の環境設定**

**4. autoware内の環境設定**

**5. 幸田町で実装してみた**


## 1. githubの登録・SSHキーの設定について
### `githubの登録`
まずは，fire boxやChromeを開いて[github](https://github.com/)を調べよう!!
次に，githubを登録（ユーザーネームとパスワード）しよう!!

### `githubのSSHキーの設定`
まずは，[下記の写真](https://github.com/)，右上のアイコンを押そう!!
![Screenshot from 2023-07-24 16-44-24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3305414/78e118f6-e68b-fbd8-8f1a-9d897938780b.png)
「Settings」⇒「Developer settings」⇒「Personal access tokens」⇒「Tokens(classic)
![Screenshot from 2023-07-24 17-04-49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3305414/3d63fb2e-a700-2bd0-c1b1-ff717a9ac1cf.png)
[上記の写真](https://github.com/settings/tokens)，「Generate new token」⇒「Generate new token(classic)」を選択．
[New personal acces token (classic)](https://github.com/settings/tokens/new)に移動．
Noteは，「ubuntu22.04PC」⇐適当に判別が付く名前を決定する．ubuntu?Windows?なのか
Expirationは，「No expiration」⇐お好みで．めんどくさいので期限なしにしてます．
Select scopesは，repoにチェックマーク．
上記３つを変更後，「Generate token」を選択．
パスワードが生成させるので，メモしてください．<font color="Red">パスワード超超超重要，これで完成!!</font>

## ２. autowareのインストール・設定について
### `2-1. How to set up a development environment`
以下のコマンド打ってください
```
$git clone git@github.com:MeijoMeguroLab/Y23_autoware.git
```
<font color="Red">⚠⚠注意:外部ネットに繋ぐこと⚠⚠</font>
```
$cd Y23_autoware
$./setup-dev-env.sh
```
ここで，<font color="Red">エラー発生!!</font>
自分の場合は，systemdとubevがお互い干渉環境にあったらしく、、、
以下のコマンドでsystemdをアップグレードでエラー解消．以下，時間かかります．
```
$sudo apt upgrade systemd
```
上記が通れば，もう一度やり直してください。これで通るはず．
```
$./setup-dev-env.sh
```

### `2-2. How to set up a workspace`

以下のコマンド打ってください．以下（3行目），時間かかります．
```
$cd autoware
$mkdir src
$vcs import src < autoware.repos
```
```
$source /opt/ros/humble/setup.bash
$rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
```
ここで，<font color="Red">エラー発生!!</font>
自分の場合は，rosdepのversionが古かったらしく、、、
以下のコマンドでrosdepをupdateすればエラー解消．以下，時間かかります．
また，Y23_autoware/src/universe/autoware.universe/perception内のCOLCON_IGNOREは削除．
autowareはすぐに変更されるのでエラー分を見て，gitを入れ直す必要があります．
現時点で，autoware.universeは変更されているのでもう一度git cloneし直して下さい．
```
$rosdep update
```
上記が通れば，もう一度やり直してください。これで通るはず．
```
$rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
```
最後に，ここで，<font color="Red">コルコンビルド</font>して下さい．ここも，結構時間かかります．
```
$colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
```
## 3. autoware外の環境設定
ここでは，簡潔に準備するものについて説明する．

### `3-1 目黒研のros1bagデータをros2bagデータに変換`

別の[qiita記事](https://qiita.com/kurodashiryu/items/4d36e96b472180cd56d8)に記述があります．参考にどうぞ．

### **`3-2 topic_name_chengerをgit cloce`**

目黒研のbagデータ(topic，type)をautowareに適応するために用いる．
この[リンク](https://github.com/MeijoMeguroLab/Y23_autoware_topic_name_changer
)から飛べます．README.mdを参考に．

### `3-3 network設定` 
はじめに，Home内の.bashrcを開きます．隠しファイルなのでCtrl+hで出できます．
.bashrcの最後の行に，「export ROS_LOCALHOST_ONLY=1」を追加します．
次は，以下のコマンドを打ちます．
```
$ip link show lo
```
「1: lo: <LOOPBACK,MULTICAST,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000」
が出力させるはずです．上記に，MULTICASTがなければ，コマンドで以下を打つ．
```
$sudo ip link set lo multicast on
```
以上で，networkの設定は完了です．


## 4. autoware内の環境設定
ここでは，autowareのコードを触っていきます．多いし，難しいし，さっぱりー．
目黒のrosbagデータに対応させるために，以下を変更するといいと思います．

### **`4-1 sample_sensor_kit_launchをgit clone`**
この[リンク](https://github.com/MeijoMeguroLab/sample_sensor_kit_launch
)から飛べます．
git cloneする意味として，lidarの設定が必要であるため．

### **`4-2 autoware.universeをgit clone`**
この[リンク](https://github.com/MeijoMeguroLab/autoware.universe
)から飛べます．
git cloneする意味として，vector map視点からpcd視点に変更するため．

### **`4-3 autoware_invidual_paramsをgit clone`**
この[リンク]()から飛べます．
git cloneする意味として，車両のtf設定変更を行うため．


## 5. 幸田町で実装してみた

使用したrosbagデータ
・場所⇒幸田町
・計測日時　2021/10/14

次の順番でコマンド打ちましょう!!それぞれ別コマンドで!!

### **`5-1 autowareを立ち上げましょう!!`**

```
$cd Y23_autoware
$source install/setup.bash
$ros2 launch autoware_launch logging_simulator.launch.xml map_path:='/home/megken/0_data/kota/map' vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit perception:=false planning:=false control:=false
```

### **`5-2 topic_name_changerを立ち上げましょう!!`**

```
$ cd ros2_ws/
$source install/setup.bash
$ros2 launch autoware_topic_name_changer autoware_topic_name_changer_launch.py
```
### **`5-3 ros2 bag playをしましょう!!`**

bagデータが欲しければ言って下さい．
```
$ros2 bag play --clock 100 '/home/megken/0_data/kota/bag/2021-10-14_run2_cut' --topics /velodyne_packets /imu/data_raw /rtk/fix /can_twist -s sqlite3
```

### **`5-4 ros2 bag recordをしましょう!!`**

```
$ros2 bag record /sensing/lidar/top/velodyne_packets /sensing/gnss/ublox/fix_velocity /sensing/imu/tamagawa/imu_raw /sensing/gnss/ublox/nav_sat_fix
```

record前に，トピックが流れているかの確認も大事です!!以下のコマンドで確認しよう!!
```
$ros2 topic echo /sensing/lidar/top/velodyne_packets
$ros2 topic echo /sensing/gnss/ublox/fix_velocity
$ros2 topic echo /sensing/imu/tamagawa/imu_raw
$ros2 topic echo /sensing/gnss/ublox/nav_sat_fix
```
また，rosbagデータ内のtopicの確認もできます．以下のコマンドで確認しよう!!
下記の'　'内はtopicを見たいbagデータをinputして下さい!!
```
$ros2 bag info 'input_bag'
```
以下は，実際に実装した時の写真です．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3305414/bc81d699-c21d-7357-ef22-abd926a8a108.png)

以上，黒田からでした．



参考：
ローカルのgit設定「https://qiita.com/koki2022/items/2a056f1286b9c62bf614」