ROS 가 운영하는 운영체제는 다양하지만, 우분투를 제외하고는 공식적으로는 지원하지 않고 설치 방법만 제공한다.
아래 링크를 참고해서 리눅스를 듀얼부팅 하도록 하면, ROS의 모든 기능을 무리없이 사용해 볼 수 있다.
자신이 사용하려는 ROS버전에 따라서 우부투 역시 다른 버전을 준비하여야 한다. 현재 가장 많은 패키지를 가지고 있는 것은 16.04버전을 설치하여 사용할 수 있는 키네틱 버전이고, 비교적 최신 버전의 ROS를 사용하고 싶다면 18.04버전을 선택 가능하고, ROS1의 최종 버전을 사용하고 싶다면, 우분투 20.04버전을 설치하여야 한다. 하지만 현 시점에서 아직 20.04는 추천하지 않는다. 많은 ROS 패키지들이 아직 제공되지 않고 있어서 많은 어려움이 있을 수 있다.
1. 우분투에 설치하기
우분투 16.04 LTS 가 설치된 상태에서 아래의 명령어를 터미널창에서 실행합니다.(우분투를 버츄얼 머신으로 설치하는 것은 비추입니다.단독 혹은 멀티부팅으로 설치하세요. 그리고 우분투는 영문으로 설치하세요.)
Gazebo에서 시뮬레이션을 동작시키고, 포인트클라우드와 비전처리를 위해서 8G정도의 RAM을 추천합니다.
다음 명령으로 ROS, rqt, Rviz, 로봇관련 라이브러리, 시뮬레이션 내비게이션 등이 포함된다.
sudo apt-get install ros-kinetic-desktop-full
위의 설치만으로도 기본적인 rqt는 포함되지만 다양한 rqt 플러그인의 사용을 위해 추가로 설치한다.
sudo apt-get install ros-kinetic-rqt*
rosdep 초기화
ROS 를 사용하기 전에 반드시 rosdep 을 초기화해야 한다. Rosdep 은 ros 의 핵심 컴포넌트들을 사용하거나 컴파일 할 때 의존성패키지를 쉽게 설치하여 사용자 편의성을 높여주는 기능이다.
sudo rosdep init
rosdep update
rosinstall 설치
ROS 의 다양한 패키지를 인스톨하는 프로그램이다.
sudo apt-get install python-rosinstall
환경설정 파일 불러오기
환경설정파일은 ROS_ROOT, ROS_PAKAGE_PATH 등의 환경변수들이 정의 되어 있다.
source /opt/ros/kinetic/setup.bash
작업 폴더 생성 및 초기화
ROS 에서 catkin 이라는 ROS 전용 빌드 시스템을 사용하고 있다. 이를 사용하려면 다음처럼 catkin 작업 폴더를 생성하고 초기화해야 한다. 이 설정은 작업 폴더를 새롭게 생성하지 않는 한 처음 한 번만 설정해 주면 된다.
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
현재 catkin 작업 폴더에는 src 폴더와 그 안에 CMakeList.txt 파일만 있지만 시험삼아 catkin_make 명령어를 이용해 빌드해 보자.
cd ~/catkin_ws/
catkin_make
ls
Build
Devel
Src
마지막을 catkin 빌드 시스템과 관련된 환경 파일을 불러오자.
source ~/catkin_ws/devel/setup.bash
테스트
ROS의 모든 설치가 완료 되었으니 테스트 해보자. 새로운 터미널 창을 열어 실행한다.
roscore
3. ROS 환경 설정
ROS 환경설정 파일을 불러오기 위해서는 새로운 터미널 창을 열 때마다 매번 아래의 명령을 매번 실행해야 한다.
source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash
이러한 번거로움을 없애고 네트워크 등 기타 설정을 불러들이기 위해 gedit로 bashrc 파일을 편집한다.
gedit ~/.bashrc
아래의 내용을 삽입한다.
alias eb =‘nano ~/.bashrc'
alias sb ='source ~/.bashrc'
alias cw ='cd ~/catkin_ws'
alias cs ='cd ~/catkin_ws/src'
alias cm ='cd ~/catkin_ws && catkin_make'
source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash
export ROS_MASTER_URI=http://localhost:11311
export ROS_HOSTNAME=localhost
#export ROS_MASTER_URI=http://192.168.1.100:11311
#export ROS_HOSTNAME=192.168.1.100
ROS 네트워크 설정
ROS_MASTER_URI와 ROS_HOSTNAME의 설정이다. ROS는 네트워크를 이용해 노드 간에 메시지 통신을 하기 때문에 이 설정은 매우 중요하다.우선은 둘 다 자신의 네트워크 IP를 입력해주면 된다. 차후에 마스터 PC가 따로 있고, 로봇은 호스트 PC를 사용하는 경우, 이를 구분하여 입력하면 다른 컴퓨터 간의 통신이 가능하게 된다.
alias eb =‘nano ~/.bashrc' #eb 명령만으로 bashrc 파일 수정
alias sb ='source ~/.bashrc' #sb 명령으로 환경설정 불러오기
alias cw ='cd ~/catkin_ws' #cw 명령으로 워크스페이스 폴더로 이동
alias cs ='cd ~/catkin_ws/src' #cs 명령으로 src 폴더로 이동
alias cm ='cd ~/catkin_ws && catkin_make' #cm 명령으로 빌드를 할 수 있다.