// it's for Latex

pages

[ Map merging ] #06. getting two groundtruth from EuRoc datasets using ROS

[ Map merging ] #05. Evaluation with evo에서 Datasets을 이용해 SLAM을 진행해보았다.
그리고 이번 프로젝트의 목적이 Map merging인 만큼 한 공간에 대한 다른 두 로봇의 데이터가 필요하게 되는데, 나는 이 부분을 evo를 이용해서 확인해보고 싶었다.
그래서 EuRoc의 MH_01_easy, MH_02_easy 두 데이터의 groundtruth 데이터를 evo를 이용해 그래프로 표현해보고자 하였다.


구동환경

OS : Ubuntu 16.04 LTS
ROS : Kinetic


1. Download Data


먼저 아래의 링크를 통해 2개의 데이터 (MH_01_easy, MH_02_easy)를 다운로드한다.

http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/machine_hall/

2. Make Directory


이제 다음 명령어를 통해 두 파일을 보관할 폴더를 만든다.

1
2
3
4
5
$ cd ~
$ mkdir Datasets
$ cd Datasets
$ mkdir MH_01_easy
$ mkdir MH_02_easy
cs

3. Moving Downloaded Files


MH_01_easy 폴더로 MH_01_easy.zip 파일을 옮겨 압축을 풀고,
MH_02_easy 폴더로 MH_02_easy.zip 파일을 옮겨 압축을 풀어준다.

그러면 각각의 폴더에 mav0 폴더가 나온다.

4. Change name of groundtruth data file


mav0/state_groundtruth_estimate0 폴더 안으로 들어가면 data.csv 라는 groundtruth data file이 나온다.
해당 파일의 이름이 groundtruth data의 topic name이 되므로 각각의 이름을 바꾸어 준다.

1
2
$ mv ~/Datasets/MH_01_easy/mav0/state_groundtruth_estimate0/data.csv ~/Datasets/MH_01_easy/mav0/state_groundtruth_estimate0/data_01.csv
$ mv ~/Datasets/MH_02_easy/mav0/state_groundtruth_estimate0/data.csv ~/Datasets/MH_02_easy/mav0/state_groundtruth_estimate0/data_02.csv
cs

5. Convert csv to bag


이제 다음 명령어를 통해 각 폴더 안에 csv 파일을 bag 파일로 바꾸어준다.

1
2
3
4
5
$ cd ~/Datasets/MH_01_easy/mav0/state_groundtruth_estimate0
$ evo_traj euroc ~/Datasets/MH_01_easy/mav0/state_groundtruth_estimate0/data_01.csv --save_as_bag
$ cd ~/Datasets/MH_02_easy/mav0/state_groundtruth_estimate0
$ evo_traj euroc ~/Datasets/MH_02_easy/mav0/state_groundtruth_estimate0/data_02.csv --save_as_bag
cs

6. change name of bag file


위 과정을 통해서 생성된 두 파일의 이름은 기본적으로 해당 순간의 날짜 및 시간으로 정해진다.
그러므로 해당 이름을 다음과 같이 변경해준다.

gt_01.bag
gt_02.bag

6. Map merge

이제 두 bag 파일을 합쳐준다.
./bagmerge.py 관련 내용은 아래 링크를 참조한다.

[ Map merging ] #05. Evaluation with evo

1
$ ./bagmerge.py gt_01.bag gt_02.bag -o merged.bag
cs

7. Display Trajectory


1
$ evo_traj bag merged.bag data_01 data_02 --plot
cs





최종적으로 한 공간내에서 두 개의 groundtruth가 동작하는 것을 확인할 수 있다.


































댓글 없음:

댓글 쓰기