# SLAM 해보기

* Simulationeous Localization And Mapping
* <https://youtu.be/5NDmSXq72OY>

![](https://491696592-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK7gxD_6rkqAewni4tk%2F-MThoQY6ntgI9-dNuzHz%2F-MThpeJ2SpGFow3glXza%2Fimage.png?alt=media\&token=986d5906-fdea-44cc-a9f8-4f66aa9e0ab8)

## GMAPPING

![](https://491696592-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK7gxD_6rkqAewni4tk%2F-MThoQY6ntgI9-dNuzHz%2F-MThpm1qpSTrV9DsFA-O%2Fimage.png?alt=media\&token=b9d95668-ad3d-45a0-a5fa-c9799bf29974)

로봇을 적당한 곳에 두고 ssh로 접속합니다.

![](https://491696592-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK7gxD_6rkqAewni4tk%2F-MThoQY6ntgI9-dNuzHz%2F-MThpttYp3ERz5Um2Kb8%2Fimage.png?alt=media\&token=a46cc730-5bb1-4c71-9dbb-5a9809a691ed)

\[내 PC] roscore를 실행하고,

![](https://491696592-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK7gxD_6rkqAewni4tk%2F-MThoQY6ntgI9-dNuzHz%2F-MThq0AjPkRsj5ohLKcx%2Fimage.png?alt=media\&token=f935f180-a925-443d-a195-eb27978257e2)

\[로봇] roslaunch omo\_r1mini\_bringup omo\_r1mini\_robot.launch 도 실행하고

![](https://491696592-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK7gxD_6rkqAewni4tk%2F-MThoQY6ntgI9-dNuzHz%2F-MThq8kYF0-_A2-eT2EC%2Fimage.png?alt=media\&token=aa9e1987-229e-4f11-8192-5d0240de047b)

ssh로 로봇에 한 번 더 들어가서

![](https://491696592-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK7gxD_6rkqAewni4tk%2F-MThoQY6ntgI9-dNuzHz%2F-MThqFyNa2Mo_hTB_UkY%2Fimage.png?alt=media\&token=80717d56-fa83-4947-8531-ffd8cb4c1ad9)

\[로봇] roslaunch omo\_r1mini\_slam omo\_r1mini\_slam.launch 을 실행하고,

![](https://491696592-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK7gxD_6rkqAewni4tk%2F-MThoQY6ntgI9-dNuzHz%2F-MThqKxoKAbHOYi8IxsE%2Fimage.png?alt=media\&token=767de2aa-b36d-42f5-bd3c-019f330b6c00)

\[내 PC] roslaunch omo\_r1mini\_slam omo\_r1mini\_slam\_rviz.launch 를 실행해줍니다.

![](https://491696592-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK7gxD_6rkqAewni4tk%2F-MThoQY6ntgI9-dNuzHz%2F-MThqQr_2uTagUcr0dkF%2Fimage.png?alt=media\&token=fd6bbe91-6829-40da-a1f3-303a93cfc288)

그러면 rviz(알비즈)가 뜹니다.

![](https://491696592-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK7gxD_6rkqAewni4tk%2F-MThoQY6ntgI9-dNuzHz%2F-MThqWCT-VqAPxNligbY%2Fimage.png?alt=media\&token=d6435c24-52e0-48ad-84bc-0ec0b9861e02)

\[내 PC] roslaunch omo\_r1mini\_teleop omo\_r1mini\_teleop\_key.launch 를 실행하고

![](https://491696592-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK7gxD_6rkqAewni4tk%2F-MThoQY6ntgI9-dNuzHz%2F-MThq_e-wC0FN06ILFXW%2Fimage.png?alt=media\&token=422ad881-1944-4496-bf52-2e4e7daa2fb2)

\[내 PC] 키보드로 로봇을 움직여보면 RVIZ에서 map이 완성되는 것이 보입니다.

![](https://491696592-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK7gxD_6rkqAewni4tk%2F-MThoQY6ntgI9-dNuzHz%2F-MThqdxU6aG9pAxYUyex%2Fimage.png?alt=media\&token=35009d5f-3d09-47cc-924a-f0ea3020d3c7)

다 완성했다\~ 싶으면\~

![](https://491696592-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK7gxD_6rkqAewni4tk%2F-MThoQY6ntgI9-dNuzHz%2F-MThqm97crtjrEf-iq8w%2Fimage.png?alt=media\&token=e7fed1b7-3bcd-44f3-a4f5-a8a2df8ca9ad)

적당한 시점에 teleop.launch 를 중지해 맵 만들기를 멈추고,

![](https://491696592-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK7gxD_6rkqAewni4tk%2F-MThoQY6ntgI9-dNuzHz%2F-MThqsSoGTq_EdyXyz4J%2Fimage.png?alt=media\&token=2c2edb22-4b31-40ce-9ec9-615fc14cb9eb)

\[내 PC] rosrun map\_server map\_saver -f map 으로 맵을 저장합니다.

![](https://491696592-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK7gxD_6rkqAewni4tk%2F-MThoQY6ntgI9-dNuzHz%2F-MThqy4SswZ1FzVxZDvr%2Fimage.png?alt=media\&token=f02f63ec-1a2c-4cdb-85c0-b96f4f58729d)

이제 터미널에서 실행 중인 모든 노드를 중단한 후에,

* 내 PC와 로봇의 모든 터미널, 즉 roscore까지 전부 중단해주세요.

![](https://491696592-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK7gxD_6rkqAewni4tk%2F-MThoQY6ntgI9-dNuzHz%2F-MThr1-NuOJrZjSDtEAx%2Fimage.png?alt=media\&token=a1aea082-d6bb-43d0-bbda-4232f18056fa)

\[내 PC] map.pgm 파일과 map.yaml 파일을 omo\_r1mini/ omo\_r1mini\_navigation/maps 에 복사해줍니다.

```
sudo cp map.pgm map.yaml catkin_ws/src/omo_r1mini/omo_r1mini_navigation/maps
```

* 잘 따라하셨다면 내 PC의 홈(cd \~)에 파일이 있습니다.

![](https://491696592-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK7gxD_6rkqAewni4tk%2F-MThoQY6ntgI9-dNuzHz%2F-MThru_Jz8YNnonCZXyI%2Fimage.png?alt=media\&token=0183e5ae-9561-4b99-afad-f10784e2f806)

다시 내 PC에 roscore를 실행하고 로봇에서 roslaunch omo\_r1mini\_bringup omo\_r1mini\_robot.launch을 실행하고 난 후\~\
내 PC에서 roslaunch omo\_r1mini\_navigation omo\_r1mini\_navigation.launch를 실행해주세요.

![](https://491696592-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK7gxD_6rkqAewni4tk%2F-MThoQY6ntgI9-dNuzHz%2F-MThrykJmrjwz8xIwjMr%2Fimage.png?alt=media\&token=390338bc-b82a-49ef-a489-38c38e1975cb)

\[내 PC] roslaunch omo\_r1mini\_navigation omo\_r1mini\_navigation\_rviz.launch도 실행해줍니다.

![](https://491696592-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK7gxD_6rkqAewni4tk%2F-MThoQY6ntgI9-dNuzHz%2F-MThs5kysKV2tqKyRBt5%2Fimage.png?alt=media\&token=34726b81-28e0-4317-a093-37eff1fdeec3)

그러면 rviz에서 이런 화면이 뜨는 걸 확인할 수 있습니다.

![](https://491696592-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK7gxD_6rkqAewni4tk%2F-MThoQY6ntgI9-dNuzHz%2F-MThs9oZTGaml1o0hTdi%2Fimage.png?alt=media\&token=b45933be-7b8e-4df8-ac41-c8afac64b53e)

RVIZ의 상단 메뉴에서 2D pose estimation버튼을 클릭하여 초기 위치를 잡아주세요.

![](https://491696592-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK7gxD_6rkqAewni4tk%2F-MThoQY6ntgI9-dNuzHz%2F-MThsE8bKWepPoEAzGwn%2Fimage.png?alt=media\&token=60b98c59-0149-4c7d-a207-98f2f1454728)

이렇게\~

![](https://491696592-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK7gxD_6rkqAewni4tk%2F-MThoQY6ntgI9-dNuzHz%2F-MThsJJgyCCXzYVHYOvy%2Fimage.png?alt=media\&token=b2f77efc-5ef6-4a27-9f48-c161cffa8215)

그리고 2d new goal을 이용해서 목표 지점을 알려줍니다.

![](https://491696592-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK7gxD_6rkqAewni4tk%2F-MThoQY6ntgI9-dNuzHz%2F-MThsSxEmCF5swPyKRSr%2Fimage.png?alt=media\&token=3b199070-bfe0-4410-a81d-da769d575afc)

그러면 로봇이 스스로 목표 지점까지 가는 것을 확인할 수 있습니다.

이렇게요^^ 짠\~\~\~

![](https://491696592-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MK7gxD_6rkqAewni4tk%2F-MThoQY6ntgI9-dNuzHz%2F-MThsX3j9pfz-Bd53__R%2Fimage.png?alt=media\&token=f05fcc1e-4c9d-4424-91b0-b118e54b1a68)
