본문 바로가기

Networking/DDS

RTI DDS, Ubuntu Linux(8.04)에서 구동하기

본 문서를 작성시 환경은 다음과 같다.
  • RTI DDS 4.4d
  • Portable Ubuntu Linux Hardy 8.04

1. license를 요청한다.
  • http://www.rti.com/ 에서 30일 Trial 라이센스를 요청한다.
  • 라이센스 신청시 받는 이메일을 확인하여, 리눅스용 바이너리를 다운로드 받는다.

2. Red Hat Enterprise 5.0 용 RTI DDS 바이너리를 받는다.
  • 설치한 환경은 Portable Ubuntu 8.04 버전이다.
  • i86 gcc 4.1.1 용 버전을 받았다.(물론 x64용 리눅스 사용자는 x64용 바이너리를 받는다.)

3. PATH를 설정한다.
     다운로드한 RTI DDS의 압축을 해제한 디렉토리를 NDDSHOME 이란 환경 변수로 설정을 해주어야 하며, 각종 스크립트 사용을 위해, $NDDSHOME/scripts 를 PATH 환경 변수에 추가를 해주어야 한다.(항상 PATH지정후 에는 export를 잊지말자.)

3.1. NDDSHOME 환경 변수 생성
     전 계정에 적용을 원한다면 /etc/profile에 추가를 하고, 특정 계정에 추가를 원한다면, ~/.bashrc 에 추가하도록 한다. 이메일로 수신한 라이센스 파일(license.dat)을 $NDDSHOME에 복사를 하거나, 실행 파일이 있는 디렉토리에 넣는다.

NDDSHOME=RTI DDS 디렉토리루트

3.2. PATH에 scripts 폴더 추가
     마찬가지로 PATH 환경 변수에 RTI DDS를 위한 실행 스크립트 경로를 추가한다.

PATH=$PATH:$NDDSHOME/scripts

4. 예제 만들기
4.1. IDL 만들기
     HelloWorld.idl 파일을 다음과 같이 작성한다.

#define MAX_CHAR 100

struct HelloWorld
{
    char name[MAX_CHAR];
};

4.2. rtiddsgen 수행
     -language 옵션으로 C++ 용 코드를 생성하게 하고, -example 옵션으로 i86Linux2.6gcc4.1.1 용 예제 publisher와 subscriber를 생성하게 한다.

rtiddsgen -language C++ -example -i86Linux2.6gcc4.1.1 HelloWorld.idl

     자동 생성되는 파일 목록은 다음과 같다.
HelloWorld.cxx
HelloWorld.h
HelloWorldPlugin.cxx
HelloWorldPlugin.h
HelloWorldSupport.cxx
HelloWorldSupport.h
HelloWorld_publisher.cxx
HelloWorld_subscriber.cxx
USER_QOS_PROFILES.xml
makefile_HelloWorld_i86Linux2.6gcc4.1.1

4.3. 빌드하기
      자동 생성된 makefile_HelloWorld_i86Linux2.6gcc4.1.1로 빌드를 한다.
make -f makefile_HelloWorld_i86Linux2.6gcc4.1.1

     빌드된 결과물은 해당 디렉토리 밑에 objs/i86Linux2.6gcc4.1.1 에 생긴다.


4.4. 수행하기
      publisher와 subscriber를 차례대로 수행한다. 오고가는 메시지들을 모니터링하기 위해 rtispy를 동시에 수행하였다. 수행결과는 아래와 같다.