본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
오늘은 어제 실행했던 cartographer에서 map을 모두 완성한 후
저장하는 실습과 저장된 파일들에 대해서 알아보았다.
[오늘의 수강 영상]
[오늘의 실습]
먼저 로봇을 이동시키면서 map을 완성했다.
Cartographer 등의 2D LiDAR 기반 SLAM 알고리즘을 통해
생성한 지도를 저장하려면 nav2_map_server 패키지의
map_saver노드를 실행시켜야 한다.
$ ros2 run nav2_map_server map_saver_cli -f bookstore
이를 원하는 위치에서 실행시켜 맵을 저장하면
아래와 같이 두 개로 나뉘어서 저장된다.
pgm파일과 yaml파일로 나뉘어서 저장된다.
pgm파일이란?
이미지 파일로서 Occupancy Grid Map 기반의 지도파일이다.
생성된 pgm파일을 보면 아래와 같다.
yaml파일이란?
지도의 metadata가 포함된 속성파일이다.
yaml파일을 들어가 보면 아래와 같이
여러 가지 속성파일을 볼 수 있다.
image
생성된 지도의 이미지가 포함된 파일 이름이다.
resolution
지도의 해상도(단위: m/pixel)이다.
occupied_thresh
이 값보다 큰 픽셀은 점유 영역 (장애물로 표시됨)으로 간주한다.
free_thresh
이 값보다 작은 값을 가진 픽셀은 완전히 비어 있는 영역으로 간주한다.
negate
맵의 색상을 반전 (검은색 - free / 흰색 - occupied)
mode : trinary
검은색, 흰색, 회색 이렇게 세 개로 영역을 나누는 것이다.
origin
지도의 왼쪽 하단 2D 픽셀 좌표 (x, y, theta)이다.
이렇게 지도를 저장한 후에 저장된 지도를
다음에 사용할 수 있도록 워크스페이스를 다시 빌드해 준다.
$ colcon build --symlink-install --packages-select neuronbot2_nav
오늘은 이렇게 map을 저장해 보는 걸 해보았다.
항상 real world에서 bagfile을 따고
bagfile에서 visual 데이터를 사용하여 map을
정확하게 그리고자 하는 과정들을 많이 했어서
mapping을 하는데 많은 힘듦을 겪었었다.
그래도 재미있게 임하곤 했었는데
시뮬레이션을 통해 현재 그려지고 있는
map을 실제로 보면서 부족한 부분을 쉽게
다시 방문하여 그린 후에 맘에 들었을 때만 저장을
할 수 있다는 점이 너무너무 편해서 좋은 경험이었다.
그리고 이미지를 사용할 때는 정면만 보고 때문에
loop closure를 하려면 보고 왔던 방향으로
다시 방문했어야 했는데
LiDAR를 사용하니 360도를 보고 있어서
로봇의 방향을 신경 쓰지 않아도 돼서 너무 편했다.
이번 실습을 통해 map을 저장하고
이를 다음에도 쓸 수 있게 설정하는 방법도 알았으니
앞으로 잘 써먹어야겠다!!
#패스트캠퍼스 #직장인자기계발 #직장인공부 #환급챌린지 #패스트캠퍼스후기 #오공완
커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스
성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.
fastcampus.co.kr