★ 해당 자료는 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 |
---|