728x90
- IDE(Integrated Development Tool)란? : 프로그래밍시 필요한 각종 기능들을 하나의 프로그램 안에서 처리하는 환경을 제공하는 Software
- ROS에서 사용 가능한 IDE : https://wiki.ros.org/IDEs 각종 IDE 환경 설정법
- Qtcreator + Qt Creator Plugin for ROS : 가장 추천하는 IDE. ROS에서는 많은 프로그램들을 qt 기반으로 짜 놓음(GUI toolbox인 rqt가 qt base로 짜여진 프로그램). 큰 프로젝트에서 보통 사용
- Qt : GUI Program 개발에 자주 쓰이는 cross platform framework
- Visual Studio Code + ROS Extension : 위에 비해 가볍고 빠름. 사용시 큰 문제는 없음. ROS Extension 설치 후 사용. 작은 프로젝트에서 주로 사용
- Eclips : 많은 사람들이 사용하지만 무거움
- 여기선 Qtcreator와 Visual Studio Code만을 다룸
1) Visual Studio Code
- 간단한 text editor를 지향하므로 사용이 쉽고 속도가 빠름
$ sudo apt-get install curl
- curl 설치
- curl (Client URL)은 다양한 통신 protocol을 이용하여 command line이나 source code로 server와 통신할 수 있게 하는 기술로, 다양한 command line tool과 library를 지원한다
$ sudo sh -c 'curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/microsoft.gpg'
- 마이크로소프트 GPG 키를 다운로드하여 /etc/apt/trusted.gpg.d/ 경로에 복사
- GPG (Gnu Privacy Guard)는 강력한 암호화 program으로써, data를 암호화 할 때 사용
$ sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
- Visual Studio Code를 다운로드 받기 위한 저장소 추가
$ sudo apt update
- 추가한 저장소로부터 패키지 목록을 가져옴
$ sudo apt install code
- Visual Studio Code 설치
- 위 명령어 입력 시, 아래와 같은 error 발생
$ sudo snap install code --classic
- 위 명령어를 통해 해결
- apt는 program만 설치하는 반면, snap 명령어는 program 실행에 필요한 의존성(library)들을 모두 설치함
$ code
- Visual Studio Code 실행
$ sudo apt-get install git
- Visual Studio Vode 실행 시 git이 없다는 error 발생 시 위 명령어 입력
- 'Ctrl' '+' ',' 세 자판을 눌러 Settings 창을 연 후 아래와 같이 ROS를 검색하여 현재 ROS에 해당하는 distro를 적음
$ source devel/setup.bash
- ~/.bashrc에 setup.bash 추가
$ sudo apt install ros-noetic-mav*
- mavros 관련 package들 설치
- mavros 는 MAVLink 지원 자동조종장치, 지상국 또는 주변 장치에 대해 ROS(1)를 실행하는 컴퓨터 간에 MAVLink 확장 통신을 가능하게 하는 ROS(1) 패키지로써, ROS(1)와 MAVLink 프로토콜 간의 공식 지원 브리지
- MAVLink (Micro Air Vehicle Link)는 소형 무인 장치들 및 자체내의 서로 다른 내부 컴포넌트과 통신하기 위한 프로토콜로 안정된 데이타 교환을 제공하는 메시징이다
- Terminal 창을 열고 ros 관련 명령어들을 실행하면 정상적으로 작동함을 확인할 수 있다
- C++ 관련 추가 설정
- Ctrl + Shift + P 를 눌러 보이는 입력창에 'c/c++' 입력 후 'Select a Configuration' 선택
- Compiler path를 /usr/bin/g++로 설정 (C언어 사용시 gcc, C++ 사용시 g++)
- IntelliSense mode를 linux-gcc-x64로 지정
- IntelliSense는 코드 문법 자동완성 기능을 의미
- 사용할 header file의 경로 지정 (default)
- C++ 표준을 c++14로 지정
- 아래에서 볼 수 있듯, Noetic에서는 c++14를 기준으로 함
- Source code를 선택한 상태에서 Terminal -> Configure Default Build Task 선택
- C++을 사용하므로 g++ 선택
- 위 과정 수행시 오른쪽과 같이 tasks.json 파일이 생성됨
- 테스트를 위한 test.cpp 파일 생성 후 debug 진행
- 현재 global variable인 a, b는 값이 보이지 않음
- 아래처럼 WATCH 옆의 '+'를 눌러 추가할 변수 입력 (a, b)
- 설치한 Extension들
- ROS
- XML Tools
- Cmake Tools
- Indent-raindow
- C/C++ Extension Pack
2) Qtcreator
- 프로젝트를 CMakeLists.txt를 통해 바로 불러올 수 있다
- rqt plugin 및 GUI를 개발하기 쉽다 (rqt, RViz 모두 Qt로 만들어짐)
$ sudo apt install qtcreator
$ qtcreator
- qtcreator 설치 후 실행
- 아래와 같은 icon을 클릭하여 실행할 수도 있지만 ~/.bashrc에 작성한 ROS관련 설정들을 Qtcreator에도 적용하려면 위처럼 terminal 창에서 실행해야 함
참고 자료 :
https://swiftcam.tistory.com/395
https://seonghyuk.tistory.com/259
https://webnautes.tistory.com/1158
https://answers.ros.org/question/341313/what-happens-if-i-use-c-17-features-in-my-ros-nodes/
https://www.ros.org/reps/rep-0003.html#c
'Study_ROS' 카테고리의 다른 글
Cartographer/Hector SLAM 사용법 (0) | 2023.02.05 |
---|---|
Ubuntu 20.04에 ROS Noetic 설치법 (0) | 2023.01.21 |
[ROS] tf란? (0) | 2022.11.06 |
우분투에서 Arduino IDE를 통한 rosserial 사용법 (0) | 2022.11.05 |
Tutorial of ROS (0) | 2022.10.29 |