Skip to main content
Skip table of contents

[ROS] 통신 환경 구성 및 테스트

본 섹션에서는 Ubuntu 가상 서버를 활용한 ROS 통신 환경 구성 및 시뮬레이터와 통신하는 방법을 설명한다.


1. ROS 및 종속 프로그램 설치

Ubuntu 가상 서버에 아래와 같은 명령어로 ROS 통신 환경에 필요한 ROS Bridge 서버 및 종속 프로그램을 설치한다.

CODE
# 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’
$ sudo apt-get install curl
# ROS 저장소로부터 패키지를 내려받기 위해 공개키를 추가
$ curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add –
$ sudo apt-get update
$ sudo apt-get upgrade
# 데스크탑용 ROS 패키지 및 rqt 패키지 설치
$ sudo apt install ros-melodic-desktop-full
$ sudo apt-get install ros-melodic-rqt*
$ sudo apt-get install ros-melodic-velodyne
#기타 도구 및 필요 패키지 설치
$ sudo apt-get install git
$ sudo apt-get install net-tools
$ sudo apt-get install python-pip
$ pip install scikit-learn

 

본 가이드에서 제공하는 예제 코드는 Git으로 다운로드한다.
Git을 Ubuntu 가상 서버에 처음 설치하는 경우, git config --global 명령어로 사용자 정보를 서버 시스템에 등록하고, 사용자 인증을 위한 SSH 공개키 생성 및 등록이 필요하다.
본 가이드에서는 Git 설치 및 설정 방법을 다루지 않으므로, 관련한 자세한 내용은 Git - Git 최초 설정Git - SSH 공개키 만들기 를 참고한다.

2. ROS 환경 설정

2-1. 설치한 ROS의 사용을 위해 환경 설정 파일을 불러온다.

CODE
$ source /opt/ros/melodic/setup.bash

 

2-2. 환경 설정 파일을 매번 실행하는 번거로움을 없애기 위해 bash에 해당 파일을 추가한다.

CODE
$ echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
$ source ~/.bashrc

 

2-3. ROS 패키지 빌드 시 필요한 의존성 패키지를 설치 및 초기화한다.

CODE
$ sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
# rosdep 초기화
$ sudo apt install python-rosdep
$ sudo rosdep init
$ rosdep update

 

3. ROS 작업 공간 구성

3-1. ROS 작업 공간으로 catkin_ws 폴더를 생성한다.

CODE
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
$ cd ~/catkin_ws/
$ catkin_make

 

3-2. ROS 작업 공간의 환경 설정 파일을 bash 설정 창에 추가하여 파일 실행을 자동화한다.

CODE
$ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
$ source ~/.bashrc

 

3-3. 생성한 작업 공간에 ROS 테스트에 필요한 자율 주행 예제 코드(.py) 및 메시지 파일을 다운로드하고 실행한다.

CODE
$ cd ~/catkin_ws src
# MORAI ROS 통신 예제 코드 및 메시지 파일 다운로드
$ git clone https://github.com/MORAI-Autonomous/MORAI-DriveExample_ROS.git
$ git clone https://github.com/MORAI-Autonomous/MORAI-ROS_morai_msgs
# 센서 데이터 파싱 및 Visualization 예제 파일 다운로드
$ git clone https://github.com/MORAI-Autonomous/MORAI-SensorExample.git 
# Package 및 message build
$ cd ..
$ catkin_make
# catkin 환경 변수 선언
$ source ~/catkin_ws devel setup.bash
# catkin 패키지 재구축
$ rospack profile

 

다운받은 예제 파일 실행 시 아래와 같은 권한 오류가 발생하면 파일에 권한을 부여하여 해결한다.

CODE
$ cd ~/catkin_ws/src/gen_ros/
$ chmod -R a+x scripts/\

 

4. ROS Bridge 동작 확인

4-1. 가상 서버에서 ROS 통신 환경 구성을 마쳤으면, 아래와 같이 ROS Bridge 서버를 실행하여 정상 동작하는지 확인한다.

POWERSHELL
$ roslaunch rosbridge_server rosbridge_websocket.launch

4-2. 시뮬레이터의 네트워크 설정에서 ROS 통신에 대한 IP 설정 후 Connect를 클릭하면 아래와 같이 ros bridge를 실행한 가상 서버의 터미널에 Client Connect 메시지가 출력된다.

시뮬레이터 네트워크의 ROS 통신 설정은 네트워크 설정 UI | Simulator-네트워크-설정 를 참고하여 아래와 같이 진행한다.

  • 입력할 Bridge IP 는 가상 서버 내 터미널 명령어로 확인한다.
    $ ifconfig

  • 출력되는 아래의 가상 서버의 IP 정보 중 ‘192.168.56.101’ 을 참조한다. (IP 주소는 사용자 환경마다 다를 수 있다.)

ROS 통신 환경에서는 rqt 도구를 활용하면 시뮬레이터에 전송하는 ROS 메시지 정보를 보다 직관적으로 확인할 수 있다.

ROS 메시지에 대한 자세한 내용은 통신 메시지 프로토콜 | ROS-Message-Type을 참고한다.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.