RTK-GNSSのNavSatFixデータをGoogleMAPでリアルタイム表示

RTK-GNSS Fix解のROSデータ（sensor_msgs/NavSatFix）をRvizでGoogle Map上リアルタイム表示したいと思います。

# 使用環境
- Ubuntu 18.04
- ROS Melodic

# 使用パッケージ

- [gps_rviz_plugin](https://github.com/hakuturu583/gps_rviz_plugin)

RTK-GNSS Fix解 `sensor_msgs/NavSatFix` をRvizでリアルタイム表示するプラグインです。

# gps_rviz_pluginnのインストール

- gps_rviz_pluginからソースをダウンロードしてビルド

```
cd <catkin_ws>/src
git clone https://github.com/hakuturu583/gps_rviz_plugin.git
cd ../
catkin_make
```

# Google Static Map API keyの取得

- Google Developers Consoleでプロジェクトを選択

既存プロジェクトがない場合、新規作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/386259/b9f9bb25-115a-360f-8d9a-fcc0c4fa9950.png)


- API キー を生成

[APIとサービス]→[認証情報]→[認証情報を生成]→[API キー]より、API キーを生成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/386259/f197c022-74d2-ad94-b828-41c41a6a1ec9.png)

- API キーの制限を設定

API キー のIPアドレス等の制限を設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/386259/40ef3293-0858-f5af-98c3-61aab5e53f51.png)

- OAuth 同意画面でAPI キーを選択して同意

[APIとサービス]→[OAuth 同意画面]より、生成したAPI キーをーを選択して同意します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/386259/4af6e1a8-fe61-dad8-51f4-4bb51b5cd15d.png)

- 請求先アカウントを有効に設定

[Google APIs]→[お支払い]より、請求先アカウントを設定して有効にします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/386259/7494a63e-0668-2e43-6b90-77e1cfaab2cf.png)

- Google APIsを有効に設定

[APIとサービス]→[ライブラリ]より、[Maps Static API]と[Geocoding API]を有効に設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/386259/9e51ce16-429e-29aa-29b1-ee37ab460bfc.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/386259/0b3a32ff-17ae-5b65-74af-3424d18df12f.png)


# Google Static Map API keyをパラメータファイルに設定

gps_rviz_plugin/config/google_static_map_api_key.yamlに取得したGoogle Static Map API keyを設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/386259/0133b9b9-9fe6-b200-9b71-bf99b41b2e90.png)



```yaml
overlay_gps_display:
  google_static_map_api_key: YOUR_GOOGLE_STATIC_MAP_API_KEY
```

# gps_rviz_pluginnの起動

gps_rviz_plugin/launch/gps_rviz_plugin.launchでrosbag playをコメントアウトします。

```xml
<?xml version="1.0" encoding="UTF-8"?>
<launch>
  <rosparam command="load" file="$(find gps_rviz_plugin)/config/google_static_map_api_key.yaml"/>

  <node name="rviz" pkg="rviz" type="rviz" args="-d $(find gps_rviz_plugin)/config/gps_rviz_plugin.rviz" output="screen" respawn="true">
  </node>

  <node name="nmea_topic_driver" pkg="gps_rviz_plugin" type="nmea_topic_driver.py" args="" output="screen" respawn="true">
  </node>

<!--  <node name="rosbag" pkg="rosbag" type="play" args="$(find gps_rviz_plugin)/data/2017-10-28-16-02-02.bag" output="screen" respawn="true">
  </node>-->

  <node pkg="tf2_ros" type="static_transform_publisher" name="camera_tf_broadcaster" args="0 0 0 0 0 0 map gps" />
</launch>
```

gps_rviz_plugin.launchを起動

```
roslaunch gps_rviz_plugin gps_rviz_plugin.launch
```

rvizでgps_rviz_pluginのOverlayGpsDisplayを追加してTopicにfixを設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/386259/06edb6b9-9407-0ba9-eae3-528a7c7c6a63.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/386259/2a1a6bef-7548-1b5c-5df8-859029f70c0c.png)