2장 ROS 설치하기

2장 ROS 설치하기

ROS 가 운영하는 운영체제는 다양하지만, 우분투를 제외하고는 공식적으로는 지원하지 않고 설치 방법만 제공한다. 아래 링크를 참고해서 리눅스를 듀얼부팅 하도록 하면, ROS의 모든 기능을 무리없이 사용해 볼 수 있다.

자신이 사용하려는 ROS버전에 따라서 우부투 역시 다른 버전을 준비하여야 한다. 현재 가장 많은 패키지를 가지고 있는 것은 16.04버전을 설치하여 사용할 수 있는 키네틱 버전이고, 비교적 최신 버전의 ROS를 사용하고 싶다면 18.04버전을 선택 가능하고, ROS1의 최종 버전을 사용하고 싶다면, 우분투 20.04버전을 설치하여야 한다. 하지만 현 시점에서 아직 20.04는 추천하지 않는다. 많은 ROS 패키지들이 아직 제공되지 않고 있어서 많은 어려움이 있을 수 있다.

1. 우분투에 설치하기

우분투 16.04 LTS 가 설치된 상태에서 아래의 명령어를 터미널창에서 실행합니다.(우분투를 버츄얼 머신으로 설치하는 것은 비추입니다.단독 혹은 멀티부팅으로 설치하세요. 그리고 우분투는 영문으로 설치하세요.) Gazebo에서 시뮬레이션을 동작시키고, 포인트클라우드와 비전처리를 위해서 8G정도의 RAM을 추천합니다.

wget https://raw.githubusercontent.com/ROBOTIS-GIT/robotis_tools/master/install_ros_kinetic.sh && chmod 755 ./install_ros_kinetic.sh && bash ./install_ros_kinetic.sh

  • Ubuntu 18.04(Bionic), Melodic ROS

wget https://raw.githubusercontent.com/orocapangyo/meetup/master/190830/install_ros_melodic.sh && chmod 755 ./install_ros_melodic.sh && bash ./install_ros_melodic.sh

만약에 일반 데스크탑이나 노트북이 아닌 라즈베리파이 3를 이용하는 경우는 하기의 1줄 설치를 이용해주세요.

wget https://raw.githubusercontent.com/ROBOTIS-GIT/robotis_tools/master/install_ros_kinetic_rp3.sh && chmod 755 ./install_ros_kinetic_rp3.sh && bash ./install_ros_kinetic_rp3.sh

2. 일반 설치

일반 설치는 우리가 추천하는 1줄 설치가 내부적으로 어떤 일을 하는지 하나 하나 설명하는 것입니다. 정상적으로 설치가 되었다면, 일반 설치는 필요가 없습니다.

NTP(Network Time Protocol) 설정

NTP 설정을 함으로써 서로 다른 PC간에 시간의 오차를 최소한으로 줄일수 있다.

sudo apt-get install -y chrony ntpdate
sudo ntpdate -q ntp.ubuntu.com

소스 리스트 추가

Ros-latest.list 에 ROS 저장소를 추가한다.

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

키 설정

ROS 저장소로부터 패키지를 내려받기 위해 공개키를 추가한다.

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

패키지 인덱스 업데이트

sudo apt-get update && sudo apt-get upgrade -y

ROS Kinetic Kame 설치

다음 명령으로 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를 사용하는 경우, 이를 구분하여 입력하면 다른 컴퓨터 간의 통신이 가능하게 된다.

export ROS_MASTER_URI=http://localhost:11311
export ROS_HOSTNAME=localhost

단축 명령어

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 명령으로 빌드를 할 수 있다.

4. ROS 동작 테스트

  • turtlesim 패키지

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
rqt_graph 

Last updated