본문 바로가기
연구 정리/Matlab

GTSAM 라이브러리 설치 매뉴얼 (for Matlab)

by dw.kim 2025. 1. 22.

★ 해당 자료는 Ubuntu 20.04 Matlab R2023a 환경에서 GTSAM 라이브러리를 사용하기 위한 매뉴얼임 ★

▼ Ubuntu에 matlab이 설치되어 있지 않은 경우 아래의 매뉴얼 참고

 

Ubuntu Matlab 설치 매뉴얼

1. Matlab 공식 홈페이지 접속 MathWorks Account Sign In login.mathworks.com  2. Matlab 다운로드2.1. MathWorks 로그인 후 다운로드 할 버전 선택2.2. 'Linux용 다운로드' 클릭  2.3. 키보드에 'ctrl + art + t'를 동시에

dw-blog.tistory.com

 

1. GTSAM 종속 라이브러리 다운로드

   - '$' 표시는 터미널 창에 입력한다는 의미로 구분되어 있으면 따로 입력해야함.

 

1.1. libboost-all-dev 설치

$ sudo apt-get install libboost-all-dev

 

1.2. cmake 설치

$ sudo apt-get install cmake

 

1.3. TTB 설치

$ sudo apt-get install libtbb-dev

 

1.4 GTSAM 다운로드

    - 현재 Github에 업로드되어 있는 GTSAM 경로와 다름!!

    - 최신 버전이 필요한 경우 아래의 Github 링크에서 다운하면 되며, 단 해당 매뉴얼이 적용되지 않을 수 있음.

 

GitHub - borglab/gtsam: GTSAM is a library of C++ classes that implement smoothing and mapping (SAM) in robotics and vision, usi

GTSAM is a library of C++ classes that implement smoothing and mapping (SAM) in robotics and vision, using factor graphs and Bayes networks as the underlying computing paradigm rather than sparse m...

github.com

    - 필자는 아래의 명령어를 입력하여 다운로드함.

$ git clone https://bitbucket.org/gtborg/gtsam.git

 

2. GTSAM 라이브러리 수정

2.1. gtsam 폴더로 이동하여, CMakeList.txt 클릭

 

2.2. CMakelist.txt 수정

   - 78번째 코드에 'OFF'를 'ON'으로 변경

 

   - 174 ~ 180번째 코드 및 192 ~ 194번째 코드 주석(#) 처리

   - 저장(ctrl + s) 후 창 닫기

 

2.3. gtsam/wrap 폴더로 이동하여, CMakeList.txt 클릭

   - 8 ~ 11번째 코드 주석(#) 처리

   - 저장(ctrl + s) 후 창 닫기

 

2.4. libstdc++ 관련 파일 삭제

   - 아래 삭제한 파일 말고도 ‘/usr/local/MATLAB/R2023a/bin/glnxa64/’ 경로에도 ‘libstdc++’와 관련된 파일이 존재하는 경우, 삭제해야됨. (필자는 없었음)

$ cd /usr/local/MATLAB/R2023a/sys/os/glnxa64/
$ sudo rm –rf libstdc++.so.6
$ sudo rm –rf libstdc++.so.6.0.28

 

2.5. Matlab 폴더의 include 폴더로 이동

   - 'Other Locations' 클릭 후 아래의 경로로 이동

 

2.6 헤더 파일(.h)을 복사하여 붙여넣기

   - ‘matrix.h’, ‘mex.h’, ‘tmwtypes.h’ 복사 (ctrl + c)

   - gtsam 폴더 내부에 붙여넣기 (ctrl + v)

 

3. Build 및 cmake 컴파일

3.1. 아래의 명령어를 순서대로 입력한다.

$ cd gtsam/
$ mkdir build
$ cd build/
$ cmake -DEXAMPLES_BUILD_MATLAB_TOOLBOX:OPTION=ON -DGTSAM_TOOLBOX_INSTALL_PATH:PATH=/path/install/toolbox ..

 

 

3.2. 터미널창에 아래의 그림과 같이 나타났다면 완료된 것.

 

3.3. make 실행

   - make 뒤에 붙는 -j16은 사용할 코어를 의미함.

$ cd /gtsam/build
$ make -j16

 

3. Build 에러 수정

   - 본 장은 make 실행 중 아래 그림의 에러가 발생되었을 때 해결방법임. (에러 없이 완료되었다면, 4장으로 이동)

   - 해당 에러는 gcc 및 g++ 버전에 의해 발생되는 에러임.

 

3.1. gcc 및 g++ 버전 확인

   - 현재 설치한 GTSAM 라이브러리는 gcc 7.5.0과 g++ 7.5.0 버전을 지원함.

   - 그러나 필자는 9.4.0 버전이어서 다운그레이드를 수행함.

$ gcc --version
$ g++ --version

 

3.2. build-essential 설치

$ sudo apt install build-essential

 

3.3. gcc 및 g++ 7.5.0 다운로드

$ sudo apt –y install gcc-7 g++-7

 

3.4. gcc g++ 디폴트 설정

   - 여러 버전을 설치할 때, 뒤 숫자(ex. 700)를 통해 변경 가능함.

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 700
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 700

 

3.5. gcc 및 g++ 버전 재확인

   - 변경되었다면 아래의 그림과 같이 나타남. 

$ gcc --version
$ g++ --version

 

3.6. make 재실행

   - 완료되었다면 아래의 그림과 같이 나타남. 

$ cd /gtsam/build
$ make -j16

 

4. Matlab내 GTSAM 라이브러리 적용

4.1. make install 실행

$ cd /gtsam/build
$ sudo make install

 

4.2. Matlab 실행

$ cd /usr/local/MATLAB/R2023a/bin/
$ ./matlab

 

4.3. 좌측 상단의 '폴더 경로 설정' 클릭

   - 'Select a new folder' GUI 확인

 

4.4. 최상단 경로로 ('/') 이동 후 'path' 폴더 클릭

 

4.5. '/path/install' 경로로 이동 후 'toolbox'에서 'Open' 클릭

 

4.6. GTSAM 라이브러리 경로 설정

   - 'toolbox' 경로에서 우측 마우스 클릭

   - 'Add to Path'에 'Selected Folders' 클릭

 

5. GTSAM 예제 코드 실행

5.1. 'toolbox' 더블 클릭하여 내부 폴더(/gtsam_examples)로 이동

5.2. Pose2SLAMExample.m 클릭

 

5.3. 상단의 'Run' 클릭

   - 아래의 그림과 같이 결과가 나타나면 됨.

 

6. 실행 오류 해결법

   - 아래의 그림과 같은 오류가 발생되었을 때 해결법임.

   - 라이브러리 경로를 직접 설정해줘야 함.

 

6.1. .bashrc 열기

$ gedit ~/.bashrc

 

6.2.Matlab library path 설정

   - 아래의 그림과 같이 가장 하단에 'export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib'를 입력.

   - 단, ROS 경로가 설정되어 있는 경우, ROS 설정보다 위에 존재해야 roscore 실행 시 오류가 발생되지 않음.

 

6.2. .bashrc 변경사항 저장

$ source ~/.bashrc

 

 

'연구 정리 > Matlab' 카테고리의 다른 글

Ubuntu Matlab 설치 매뉴얼  (0) 2025.01.21