건축 컴퓨터 비전/ORB-SLAM3

ORB-SLAM3 설치(20.04)

시도하고 시도 2022. 6. 16. 21:31

https://github.com/UZ-SLAMLab/ORB_SLAM3

 

GitHub - UZ-SLAMLab/ORB_SLAM3: ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM

ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM - GitHub - UZ-SLAMLab/ORB_SLAM3: ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and...

github.com

의 dependencies를 설치해줬다,

사실 다 하지는 않았고, 

1. C++11 컴파일러 설치를 확인

gcc -V  로 C++11 컴파일러 설치를 확인했다. (이전에 build-essential로 설치했다.)

 

2. Pangolin 설치 확인

시키는 대로 설치하고 ctest까지 해줘서 명령문이 실행되는 것을 확인해줬다.

 

3. OpenCV

c++용 opencv를 깔아야 한다.

https://www.youtube.com/watch?v=6pABIQl1ZP0&t=72s&ab_channel=ProgrammingKnowledge

http://www.codebind.com/cpp-tutorial/install-opencv-ubuntu-cpp/

문제가 발생한 부분이다. ORB-SLAM3는 python2.7 정도에서 실행이 되는데, 참고로 python2.7은 opencv 4.2까지 지원한다.

그리고 github 설명서에는 다음과 같이 써있다. 'equired at leat 3.0. Tested with OpenCV 3.2.0 and 4.4.0.'

그런데, 아래와 같이 OpenCV > 4.4 not found 라는 에러가 떴다. 이에 대한 해결은 나중에 하기로 하고, 나머지 dependencies에 대해서 확인해보기로 했다.

3. Opencv의 버전 호환 문제에 의한 에러 문구

4. Eigen3

이것은 sudo apt-get install libeigen3-dev 라는 명령어로 간단히 설치할 수 있는데, 나는 이전에 설치한 적이 있어서 확인만 하고 넘어갔다.

pkg-config --modversion eigen3 라는 명령어로 eigen3의 버전이 출력되면 설치된 것으로 확인하고 넘어갈 수 있다. 이것이 eigen3의 버전일거라고 믿고 간다(출처: https://sunggoo.tistory.com/36)

 

5. DBoW2 and g2o(Included in Thirdparty folder)

써드파티라는 폴더에 포함되었다고 하여 그냥 다른 조치 없이 넘어간 후에 ORB_SLAM3 빌드할 때에 자동으로 빌드되는 것을 확인했다.

 

6. Python

sudo apt install libpython2.7-dev 

데비안 계열에서는 다음과 같은 명령어로 설치했는데, numpy까지 설치하자 에러가 OpenCV 하나만으로 줄어들었다.

추가로 다른 사람의 사례를 보고 python을 2.7.17로 설치했다.

libpython2.7-dev가 뭔지 몰라 찾아보니, https://packages.ubuntu.com/bionic-updates/libpython2.7-dev에 따르면 libpython2.7-dev는 Header files and a static library for Python (v2.7) 였다. 그러니, 나는 아나콘다로 여러개의 가상환경을 사용하는데, 이 가상환경(이름을 slam)이라고 지어주었다)에서는 python=2.7.17로 설치하는 것이 오류를 발생하지 않는 안전한 길 같았다. 하지만, opencv version이 3.0이상이면 된다는 설명과 다르게 실제 Build 시에는 4.4 버전 이상을 요구하고 있었다.

 

7. ROS(optional)

로스는 옵션이라 선택하지 않았다. 쓸 줄도 잘 모른다.

 

앞으로의 계획:

python을 막무가내로 최신버전으로 끌어올리고 6에서 설치한 libpython2.7-dev와 오류가 안나는지, 그렇게 opencv버전을 올려서 설치하면 잘 build 되는지를 확인해보겠다.