# PCD Generation by gnss_mapping
本筆記將示範如何錄製模擬器中的高精度點雲圖([PCD file](http://pointclouds.org/documentation/tutorials/pcd_file_format.php))
* 示範場域:台灣 沙崙自駕實驗場域
* 使用之軟體專案
* [成大版 Autoware](https://github.com/nckucar/Autoware) `gnss_mapping` 分支
* [成大版 LG Simulator](https://github.com/nckucar/simulator) `shalun_dev` 分支
* [成大版 autoware-data](https://github.com/nckucar/autoware-data) `ncku_shalun_dev` 分支
## 操作說明
模擬器端選擇
> Environment: Shalun_NCKU(或想要測量的地圖)
> Bridge address: 輸入 ROS Master IP
> Vehicle: ForSlam_V3(專門用在 SLAM 的感測器車架)
> 如果 Autoware 未連線成功,此處會顯示 Connecting;反之,則顯示 Connected。
> [name=ShaoHua Wang]

開啟 Autoware 端,在 Quick Start 中,只需選取 **Map、Sensing 與 Localization** 對應的 launch file 即可 (e.g. Map -> `${PATH_TO_autoware-data}/slam/my_map.launch`),並執行 Map 與 Sensing。

回到模擬器端,進入 Shalun 場域,勾選`Enable LIDAR` 及 `Enable GPS`。

再回 Autoware 端,啟動 Localization,並開啟 rviz,在 `File -> Open Config` 中找到 `${PATH_TO_autoware}/ros/src/.config/rviz/ndt_mapping.rviz`。
> .config 在 Linux 中是隱藏檔的意思
> [name=ShaoHua Wang]

在 Computing 中,啟動`Localization -> gnss_localizer -> gnss_mapping`

進入模擬器端,移動車輛(可調整速度),便可透過 rviz 觀察到錄製點雲圖的情況。

當錄製完成後,暫停模擬器。

按下 `gnss_mapping` [app] 選定輸出檔案的位置及名稱,按下 `PCD OUTPUT` 輸出完成。

> 因為 slam 錄製時,會因為定位精度而導致誤差累積,因此大型的地圖建議切割成多份點雲圖錄製,在 `${PATH_TO_autoware_data}/shalun_map/my_map.launch` 中再設定載入多份點雲圖即可。
> [name=ShaoHua Wang]
---
<!-- css style -->
<style type="text/css">
@import url('https://fonts.googleapis.com/css?family=Proxima+Nova');
#doc {
background-color: white;
color: rgba(0,0,0,0.8);
font-family: 'proxima nova', sans-serif, 'Noto Sans CJK TC Light';
}
.markdown-body h4
{
padding:0;
/*line-height:normal;*/
height:25px;
/*padding-top:2px;*/
border-bottom:2px solid;
/*border-top:2px solid;*/
display:inline-block;
padding-right:6px;
}
ul.part
{
margin-left: 10px;
}
div > p {
margin-left: 20px;
}
strong {/* 粗體設置 */
font-weight: bolder;
color: #AA0000;
}
blockquote{
font-weight: normal;
font-size: 16px;
margin-left: 20px;
}
h3{
color: #4B6DC1; /*#2bac8f; /* #4B6DC1 */
}
a {
color: #2bac8f;
text-decoration: none;
padding: 5px;
border-radius: 5px;
/*margin: -5px;*/
-webkit-transition: 0.5s;
-moz-transition: 0.5s;
-o-transition: 0.5s;
-ms-transition: 0.5s;
transition: 0.5s;
}
a:hover {
color: #2eb899;
text-decoration: underline;
background-color: rgba(255,201,92,0.3);
}
a:visited {
color: #2bac8f;
}
</style>