-
S-PTAM 설치 및 구동 가이드SLAM/S-PTAM 이론 설명 및 코드 리뷰 2021. 7. 2. 15:05
이전 글에서 언급했듯, S-PTAM 구동을 위해서는 pangolin의 Python 버전과 g2o의 Python 버전이 필요합니다. S-PTAM 파일은 제가 원본에 기능 추가/삭제/수정을 위해 원본에서 fork한 repositiory에 존재하고, pangolin과 g2o는 소스 코드를 내려받아 빌드해야 합니다.
가이드 시작 전, 제 구동 환경을 나열해 보자면 :
- AMD Ryzen 7 4700U, 16g 램
- VMWare Workstation 16 Player에서 돌아가는 Pop!_OS 20.04(우분투 배포판 중 하나입니다)
- Linux 커널 5.11.0
과 같습니다. 라이브러리 설치와 구동을 위해 리눅스 운영체제가 필요합니다.
Pop!_OS 강력추천 합니다. ※ 구동 환경에 따라 저에게 없었던 오류가 나타날 수 있습니다. 그 때는 터미널의 오류 메시지에 따라 직접 검색해가며 문제를 해결하셔야 합니다.
일단 필수 라이브러리를 설치합니다. 터미널을 열고 다음과 같이 입력합니다.
sudo apt install libgl1-mesa-dev libglew-dev python3-dev libsuitesparse-dev libqglviewer-dev-qt5 libeigen3-dev python-opengl cmake pip(또는 pip3) install pyopengl
설치가 완료되었다면 먼저 pangolin을 설치합니다. 일단 다음과 같은 명령어로 파일들을 내려받습니다.
cd ~ git clone https://github.com/uoip/pangolin.git
파일 일부에 오류가 있어 수정해주어야 합니다. 내려받은 pangolin 폴더로 들어가 setup.py를 텍스트 에디터에서 열고, Line 18~25 사이에 install_dirs라고 적힌 부분을 보두 install_dir로 바꿔 줍니다. 그 후 다시 터미널로 돌아가 다음과 같이 입력합니다.
cd pangolin mkdir build cd build cmake .. make -j4 cd .. python(또는 python3) setup.py install
마지막 줄을 입력할 때 sudo를 앞에 붙여야 할 수도 있습니다. 정상 설치가 되었다면 다음으로 넘어가 g2opy를 설치하겠습니다.
cd ~ git clone https://github.com/uoip/g2opy.git
여기에도 파일 일부에 오류가 있습니다. g2opy 폴더 안의 python/core/eigen_types.h를 텍스트 에디터로 열어 줍니다. 그리고 다음과 같은 부분을 찾아서 :
.def("x", (double (Eigen::Quaterniond::*) () const) &Eigen::Quaterniond::x) .def("y", (double (Eigen::Quaterniond::*) () const) &Eigen::Quaterniond::y) .def("z", (double (Eigen::Quaterniond::*) () const) &Eigen::Quaterniond::z) .def("w", (double (Eigen::Quaterniond::*) () const) &Eigen::Quaterniond::w)
다음 내용으로 바꿔치기합니다.
.def("x", [](const Eigen::Quaterniond& q) { return q.x(); }) .def("y", [](const Eigen::Quaterniond& q) { return q.y(); }) .def("z", [](const Eigen::Quaterniond& q) { return q.z(); }) .def("w", [](const Eigen::Quaterniond& q) { return q.w(); })
이제 다시 터미널로 돌아가서 다음과 같이 입력합니다.
cd g2opy mkdir build cd build cmake .. make -j4 cd .. python(또는 python3) setup.py install
여기서도 마지막 줄을 입력할 때 앞에 sudo를 입력해야 할 수도 있습니다.
이제 stereo_ptam 자체를 다운로드합니다.
cd ~ git clone -b revision https://github.com/wjdghksdl26/stereo_ptam
실행해 보기 전, KITTI 데이터셋이 없다면 여기에서 다운로드하고 적당한 폴더에 압축을 풉니다.
이제 S-PTAM을 실행해볼 수 있습니다!
cd ~ cd stereo_ptam python3 sptam.py --dataset kitti --path ~/dataset/sequences/00
--path 뒤의 경로는 KITTI 데이터셋이 있는 폴더에 맞추어 적어 줍니다. 00은 데이터셋 번호입니다.
제대로 설치 및 실행된다면 보이는 것은 다음과 같습니다.
저는 MapPoint 표시를 꺼 두어서 조금 다르게 보일 수 있습니다.
종료를 위해서는 터미널에서 Ctrl+C를 입력하면 됩니다(모든 쓰레드들이 종료될 때까지 몇 번 눌러야 할 수 있습니다).
'SLAM > S-PTAM 이론 설명 및 코드 리뷰' 카테고리의 다른 글
S-PTAM 리뷰 - 이론(4) : Local Bundle Adjustment 1 (0) 2021.07.06 S-PTAM 리뷰 - 코드(2) : Visual Odometry 2 (0) 2021.07.05 S-PTAM 리뷰 - 코드(1) : Visual Odometry 1 (0) 2021.07.02 S-PTAM 리뷰 - 코드(0) : 주요 파일, 클래스 및 함수 (0) 2021.07.02 S-PTAM 리뷰 - 이론(3) : Visual Odometry 3 (0) 2021.07.02