OpenRTM-aist (C++버전) 1.x계열 인스톨

C++언어버전의 OpenRTM-aist는 패키지나 인스톨러가 준비되어 있어, 다양한OS나 배포 파일로 손쉽게 인스톨 하는것이 가능합니다. 또한 소스를 다운로드 하여 자신의 환경에 맞춰 빌드하는것도 가능합니다. 여기에서는 C++ 언어버전의 OpenRTM-aist 인스톨 각각의 방법에 대해서 설명합니다

Ubuntu/Debian: deb패키지 인스톨

ubuntu_logo2_ko.png

C++판 OpenRTM-aist는 Ubuntu나 Debian GNU Linux로 이용 가능한 deb 패키지가 제공되고 있습니다. 대응하고 있는 배포 버젼은 다운로드 페이지로부터 확인할 수 있습니다. Ubuntu/Debian GNU Linux에의 대응 및 버젼은, 예고없이 변경 또는 정지되는 일이 있으므로 양해 바랍니다.

인스톨의 방법에는 크게 나누어 이하의 2종류의 인스톨 방법이 있습니다.

  • openrtm.org 가 제공하는 일괄 인스톨 스크립트를 사용
  • apt-get 나 synaptic 패키지 매니저를 사용

원하시는 방법으로 인스톨 해 주십시오.

일괄 인스톨·스크립트를 사용하는 방법

openrtm.org 가 제공하는 인스톨·스크립트 pkg_install[버전 번호]_ubuntu.sh 또는 pkg_install[버전 번호]_debian.sh를 다운로드 페이지로부터 다운로드하여 root 권한으로 실행합니다. 이 스크립트는 필요한 패키지를 차례차례 apt-get로 인스톨 해 갈 것입니다.

OpenRTM-aist를 개발·실행하기 위해서 필요한 패키지를 빠짐없이 인스톨 하기에 편리합니다. 처음으로 OpenRTM-aist를 인스톨 하시는 분에게 추천합니다.

다만, OpenRTM-aist와 관계된 모든 패키지를 인스톨 하므로, 필요 없는 것도 인스톨 될 가능성이 있습니다. 관계자나 잘 알고 계시는 분은 수동으로 인스톨도 무관합니다

이하 일괄 인스톨 스크립트를 사용한 인스톨의 순서입니다.

 > wget [pkg_installXXX.sh 의 다운로드 URL]
 > su
 # sh pkg_installXXX_ubuntu.sh
 //도중 몇개의 질문이 있으므로,''y''혹은 ''Y''를 입력하면서 완료시킨다.

apt-get를 사용하는 방법

source.list의 편집

openrtm.org에서는 apt-get으로부터 이용 가능한 패키지 리포지터리(repository)를 제공하고 있습니다. 다만 디폴트의 패키지 리포지터리에는 포함되어 있지 않으므로 apt-get의 설정을 변경할 필요가 있습니다.

/etc/apt/sources.list에 이하의 행을 추가합니다.

 > su
 # vi /etc/apt/sources.list # "sources.list"를 편집

  deb http://www.openrtm.org/pub/Linux/ubuntu/ (code name) main
  또는
  deb http://www.openrtm.org/pub/Linux/debian/ (code name) main

의 1행을 추가. "(code name)"의 부분에는 이하의 debian/ubuntu의 버전에 대응한 코드네임을 지정합니다.

버젼 code name
Debian GNU Linux
Debian 3.1 sarge
Debian 4.0 etch
Debian 5.0 lenny
Ubuntu
Ubuntu 7.04 feisty
Ubuntu 7.10 gutsy
Ubuntu 8.04 hardy
Ubuntu 8.10 intrepid
Ubuntu 9.04 Jaunty
Ubuntu 9.10 karmic
Ubuntu 10.04 lucid
Ubuntu 9.10 maverick

apt-get에 의한 인스톨

다음의 순서로 인스톨을 실시합니다. 도중 몇개의 질문이 있으므로, y를 입력하면서 완료시켜 주십시오.

 # apt-get update
 # apt-get install gcc g++ make uuid-dev
 # apt-get install libomniorb4 libomniorb4-dev omniidl4 omniorb4-nameserver
 # apt-get install python-support (Debian 3.1 Sarge에서만 필요)
 # apt-get install openrtm-aist openrtm-aist-doc openrtm-aist-dev openrtm-aist-example

또한 인스톨 끝난 OpenRTM-aist를 특정 버전인 상태로 보관 유지하고 싶은 장소에 /etc/apt/preferences를 편집해 이하의 행을 추가합니다. (이 예제에서는 1.0 계열에 버전으로 고정합니다.)

 Package: OpenRTM-aist
 Pin: version 1.0.*

자세한 것은 http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.ja.html#s-pin 를 참조해 주십시오.

인스톨의 확인

인스톨을 확인합니다.

 $ dpkg -l 'openrtm*'
 Desired=Unknown/Install/Remove/Purge/Hold
 | Status=Not/Installed/Config-f/Unpacked/Failed-cfg/Half-inst/t-aWait/T-pend
 |/ Err?=(none) /Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
 ||/ Name           Version        Description
 +++-==============-==============-============================================
 ii  openrtm-aist   1.0.0-0        OpenRTM-aist runtime libraries and configura
 ii  openrtm-aist-d 1.0.0-0        Header files for OpenRTM-aist development
 pn  openrtm-aist-d <none>         (no description available)
 ii  openrtm-aist-e 1.0.0-0        OpenRTM-aist examples

패키지의 상세

각 패키지의 내용은 이하와 같습니다.

openrtm-aist

openrtm-aist 에는 런 타임 라이브러리와 커멘드군이 포함되어 있습니다.

  • 커멘드
     /usr/bin/rtcd
     /usr/bin/rtm-naming
  • 라이센스 등
     /usr/share/doc/openrtm-aist/changelog.gz
     /usr/share/doc/openrtm-aist/README.Debian
     /usr/share/doc/openrtm-aist/README
     /usr/share/doc/openrtm-aist/README.jp
     /usr/share/doc/openrtm-aist/NEWS.gz
     /usr/share/doc/openrtm-aist/copyright
     /usr/share/doc/openrtm-aist/changelog.Debian.gz
  • 설정 파일 샘플

 /usr/etc/rtc.conf.sample

  • 라이브러리
     /usr/lib/libRTC-X.X.X.so.X.X.X
     /usr/lib/libRTC.a
     /usr/lib/libRTC.la
     /usr/lib/libRTC.so
     /usr/lib/libRTC-X.X.X.so.X

openrtm-aist-dev

openrtm-aist-dev에는 개발에 필요한 커멘드군과 헤더가 포함되어 있습니다.

  • 커멘드
     /usr/bin/rtc-template
     /usr/bin/rtm-config
     /usr/bin/rtm-skelwrapper
  • 라이센스 등
     /usr/share/doc/openrtm-aist-dev/changelog.gz
     /usr/share/doc/openrtm-aist-dev/copyright
     /usr/share/doc/openrtm-aist-dev/changelog.Debian.gz
  • 헤더
     /usr/include/rtm/DefaultPeriodicTask.h
     /usr/include/rtm/OutPortPullConnector.h
     중략
     /usr/include/rtm/ExecutionContextBase.h
     /usr/include/rtm/Manager.h
     /usr/include/coil/OS.h
     /usr/include/coil/UUID.h
     중략
     /usr/include/coil/Properties.h
  • 라이브러리·그 외
     /usr/lib/OpenRTM-aist/py_helper/cxx_svc_impl.py
     /usr/lib/OpenRTM-aist/py_helper/profile_gen.py
     중략
     /usr/lib/OpenRTM-aist/py_helper/gen_base.py
     /usr/lib/OpenRTM-aist/py_helper/yat.py
     /usr/lib/pkgconfig/libcoil.pc
     /usr/lib/pkgconfig/libRTM.pc

openrtm-aist-example

openrtm-aist-example에는 스탠드 얼론 RTC, loadable RTC 각각의 샘플과 샘플 RTC의 소스가 포함되어 있습니다.

  • 샘플(스탠드 얼론 RTC)
     /usr/share/OpenRTM-aist/examples/ConsoleOutComp
     /usr/share/OpenRTM-aist/examples/ConsoleInComp
     중략
  • 샘플(소스)
     /usr/share/OpenRTM-aist/examples/src/Composite/README.Motor
     /usr/share/OpenRTM-aist/examples/src/Composite/Makefile.Sensor
     /usr/share/OpenRTM-aist/examples/src/Composite/Motor.cpp
     중략
     /usr/share/OpenRTM-aist/examples/src/SimpleService/Makefile.MyServiceProvider
     /usr/share/OpenRTM-aist/examples/src/SimpleService/rtc.conf
  • 샘플(loadable RTC)
     /usr/share/OpenRTM-aist/examples/rtcs/MyServiceConsumer.so.0.0.0
     /usr/share/OpenRTM-aist/examples/rtcs/SeqIn.so.0.0.0
     중략
     /usr/share/OpenRTM-aist/examples/rtcs/ConfigSample.so.0.0.0
     /usr/share/OpenRTM-aist/examples/rtcs/ConsoleOut.so.0.0.0
  • 라이센스 등
     /usr/share/doc/openrtm-aist-example/changelog.gz
     /usr/share/doc/openrtm-aist-example/copyright
     /usr/share/doc/openrtm-aist-example/changelog.Debian.gz

openrtm-aist-doc

openrtm-aist-doc에는 일본어와 영어의 클래스 레퍼런스, IDL 인터페이스 정의 레퍼런스가 포함되어 있습니다.

  • 클래스 레퍼런스
     /usr/share/OpenRTM-aist/docs/ClassReference/html/ConnectorBase_8h-source.html
     /usr/share/OpenRTM-aist/docs/ClassReference/html/RTC_8h.html
     중략
     /usr/share/OpenRTM-aist/docs/ClassReference/html/FactoryInit_8h-source.html
  • IDL 레퍼런스
     /usr/share/OpenRTM-aist/docs/IDLReference/html/BasicDataType_8idl-source.html
     중략
     /usr/share/OpenRTM-aist/docs/IDLReference/html/interfaceOpenRTM_1_1InPortCdr-members.html
  • 클래스 레퍼런스(영어)
     /usr/share/OpenRTM-aist/docs/ClassReference-en/html/ConnectorBase_8h-source.html
     /usr/share/OpenRTM-aist/docs/ClassReference-en/html/RTC_8h.html
     중략
     /usr/share/OpenRTM-aist/docs/ClassReference-en/html/FactoryInit_8h-source.html
  • IDL 레퍼런스(영어)
     /usr/share/OpenRTM-aist/docs/IDLReference-en/html/BasicDataType_8idl-source.html
     /usr/share/OpenRTM-aist/docs/IDLReference-en/html/structRTC_1_1FsmProfile.html
     중략
     /usr/share/OpenRTM-aist/docs/IDLReference-en/html/interfaceOpenRTM_1_1InPortCdr-members.html
  • 라이센스등
     /usr/share/doc/openrtm-aist-doc/changelog.gz
     /usr/share/doc/openrtm-aist-doc/copyright
     /usr/share/doc/openrtm-aist-doc/changelog.Debian.gz

Fedora에서의 인스톨

fedora_logo_ko.png

C++버전 OpenRTM-aist는 Fedora Linux로 이용 가능한 RPM 패키지가 제공되고 있습니다. 대응하고 있는 Fedora Linux의 버전은 다운로드 페이지로부터 확인 할 수 있습니다. Fedora Linux에의 대응 및 그 버전은 예고없이 변경 또는 정지되는 일이 있습니다. 양해 바랍니다.

Fedora Linux에의 인스톨의 방법에는 크게 나누어 이하의 2종류의 인스톨 방법이 있습니다.
  • openrtm.org 가 제공하는 일괄 인스톨 스크립트를 사용
  • yum 패키지 매니저를 사용

일괄 인스톨·스크립트

openrtm.org 가 제공하는 인스톨·스크립트 pkg_install[버전번호]_ fedora.sh를 다운로드 페이지로부터 다운로드하여, root 권한으로 실행합니다. 이 스크립트는 필요한 패키지를 차례차례 yum로 인스톨 합니다.

OpenRTM-aist를 개발·실행하기 위해서 필요한 패키지를 빠짐없이 인스톨하기 때문에 편리합니다. 처음으로 OpenRTM-aist를 인스톨 하시는 분에게 추천합니다. 다만, OpenRTM-aist에 관련된 모든 패키지를 인스톨 하므로, 필 요 없는 것도 인스톨 될 가능성이 있습니다. 자세하게 알고계신 분께서는 수동으로 인스톨 하셔도 좋습니다. 이하, 일괄 인스톨 스크립트를 사용한 인스톨의 순서입니다.

 > wget [pkg_installXXX.sh 의 다운로드 URL]
 > su
 # sh pkg_install1XX_fedora.sh
 //도중 , 몇개의 질문을 물어보므로,''y''혹은 ''Y''를 입력하면서 완료시킵니다.

yum를 사용하는 방법

/etc/yum.repos.d/openrtm.repo의 작성

openrtm.org에서는 yum로부터 이용 가능한 패키지 리포지터리를 제공하고 있습니다. 다만, 디폴트의 패키지 리포지터리에는 포함되어 있지 않으므로, yum 의 설정을 변경할 필요가 있습니다.

이하와 같은 설정을 기록한 파일 /etc/yum.repos.d/openrtm.repo를 작성해 둡니다. 작성에는 통상 root 권한이 필요합니다.

 [openrtm]
 name=Fedora $releasever - $basearch
 failovermethod=priority
 baseurl=http://www.openrtm.org/pub/Linux/Fedora/releases/$releasever/Fedora/$basearch/os/Packages
 enabled=1
 gpgcheck=0
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY
/etc/yum.repos.d/openrtm.repo

yum에 의한 인스톨

openrtm.repo 를 작성하면, 다음의 순서로 인스톨을 실시합니다. 도중, 몇개의 질문에 y를 입력하면서 완료시킵니다.

 > su
 # yum install gcc-c++ python
 # yum install omniORB omniORB-devel omniORB-doc omniORB-servers omniORB-utils omniORB-bootscripts
 # yum install OpenRTM-aist OpenRTM-aist-devel OpenRTM-aist-doc OpenRTM-aist-example

인스톨의 확인

마지막에 이하의 커멘드로 인스톨의 확인을 합니다.

 # rpm -q OpenRTM-aist
 OpenRTM-aist-1.0.0-0.fcX

패키지의 상세

각 패키지의 내용은 이하와 같습니다

OpenRTM-aist

openrtm-aist 에는 런 타임 라이브러리와 커멘드군이 포함되어 있습니다.

  • 샘플 설정 파일
     /etc/rtc.conf.sample
  • 라이브러리
     /usr/lib/libRTC-1.0.0.so.0
     /usr/lib/libRTC-1.0.0.so.0.0.4
     /usr/lib/libRTC.a
     /usr/lib/libRTC.la
     /usr/lib/libRTC.so
     /usr/lib/libcoil.a
     /usr/lib/libcoil.la
     /usr/lib/libcoil.so
     /usr/lib/libcoil.so.0
     /usr/lib/libcoil.so.0.0.0

OpenRTM-aist-devel

openrtm-aist-dev에는, 개발에 필요한 커멘드군과 헤더가 포함되어 있습니다.

  • 커멘드
     /usr/bin/coil-config
     /usr/bin/rtc-template
     /usr/bin/rtcd
     /usr/bin/rtcprof
     /usr/bin/rtm-config
     /usr/bin/rtm-naming
     /usr/bin/rtm-skelwrapper
  • 헤더
     /usr/include/coil/Allocator.h
     /usr/include/coil/Async.h
     중략
     /usr/include/coil/memory.h
     /usr/include/coil/stringutil.h
     중략
     /usr/include/rtm/BufferBase.h
     /usr/include/rtm/BufferStatus.h
     중략
     /usr/include/rtm/Typename.h
     /usr/include/rtm/config_rtc.h
  • IDL 및 스텁·스켈리턴
     /usr/include/rtm/idl/BasicDataType.hh
     /usr/include/rtm/idl/BasicDataType.idl
     중략
     /usr/include/rtm/idl/device_interfaces/RFID.idl
     /usr/include/rtm/idl/device_interfaces/Ranger.idl
  • 라이브러리
     /usr/lib/OpenRTM-aist/py_helper/README_gen.py
     /usr/lib/OpenRTM-aist/py_helper/README_gen.pyc
     중략
     /usr/lib/OpenRTM-aist/py_helper/yat.pyc
     /usr/lib/OpenRTM-aist/py_helper/yat.pyo
     /usr/lib/pkgconfig/libcoil.pc
     /usr/lib/pkgconfig/openrtm-aist.pc

OpenRTM-aist-doc

openrtm-aist-doc에는 일본어와 영어의 클래스 레퍼런스, IDL 인터페이스 정의 레퍼런스가 포함되어 있습니다.

  • 클래스 레퍼런스
     /usr/share/OpenRTM-aist/docs/ClassReference/html/ConnectorBase_8h-source.html
     /usr/share/OpenRTM-aist/docs/ClassReference/html/RTC_8h.html
     중략
     /usr/share/OpenRTM-aist/docs/ClassReference/html/FactoryInit_8h-source.html
  • IDL 레퍼런스
     /usr/share/OpenRTM-aist/docs/IDLReference/html/BasicDataType_8idl-source.html
     중략
     /usr/share/OpenRTM-aist/docs/IDLReference/html/interfaceOpenRTM_1_1InPortCdr-members.html
  • 클래스 레퍼런스(영어)
     /usr/share/OpenRTM-aist/docs/ClassReference-en/html/ConnectorBase_8h-source.html
     /usr/share/OpenRTM-aist/docs/ClassReference-en/html/RTC_8h.html
     중략
     /usr/share/OpenRTM-aist/docs/ClassReference-en/html/FactoryInit_8h-source.html
  • IDL 레퍼런스(영어)
     /usr/share/OpenRTM-aist/docs/IDLReference-en/html/BasicDataType_8idl-source.html
     /usr/share/OpenRTM-aist/docs/IDLReference-en/html/structRTC_1_1FsmProfile.html
     중략
     /usr/share/OpenRTM-aist/docs/IDLReference-en/html/interfaceOpenRTM_1_1InPortCdr-members.html

OpenRTM-aist-example

openrtm-aist-example에는 스탠드 얼론 RTC, loadable RTC 각각의 샘플과 샘플 RTC의 소스가 포함되어 있습니다.

  • 샘플(스탠드 얼론 RTC)
     /usr/share/OpenRTM-aist/examples/ConsoleOutComp
     /usr/share/OpenRTM-aist/examples/ConsoleInComp
     중략
  • 샘플(소스)
     /usr/share/OpenRTM-aist/examples/src/Composite/README.Motor
     /usr/share/OpenRTM-aist/examples/src/Composite/Makefile.Sensor
     /usr/share/OpenRTM-aist/examples/src/Composite/Motor.cpp
     중략
     /usr/share/OpenRTM-aist/examples/src/SimpleService/Makefile.MyServiceProvider
     /usr/share/OpenRTM-aist/examples/src/SimpleService/rtc.conf
  • 샘플(loadable RTC)
     /usr/share/OpenRTM-aist/examples/rtcs/MyServiceConsumer.so.0.0.0
     /usr/share/OpenRTM-aist/examples/rtcs/SeqIn.so.0.0.0
     중략
     /usr/share/OpenRTM-aist/examples/rtcs/ConfigSample.so.0.0.0
     /usr/share/OpenRTM-aist/examples/rtcs/ConsoleOut.so.0.0.0

Vine Linux 에서의 인스톨

vine_logo_ko.png

C++판 OpenRTM-aist는 Vine Linux로 이용 가능한 RPM 패키지가 제공되고 있습니다. 대응하고 있는 Vine Linux의 버전은 다운로드 페이지로부터 확인 할 수 있습니다. Vine Linux에의 대응 및 그 버전은 예고없이 변경 또는 정지되는 일이 있습니다, 양해 바랍니다.

Vine Linux에의 인스톨의 방법에는 크게 나누어 이하의 2종류의 인스톨 방법이 있습니다.

  • openrtm.org 가 제공하는 일괄 인스톨 스크립트를 사용
  • apt-get 나 synaptic 패키지 매니저를 사용

Vine Linux 일괄 인스톨·스크립트

openrtm.org 가 제공하는 인스톨·스크립트 pkg_install[버전 번호]_vine.sh를 다운로드 페이지로부터 다운로드 해, root 권한으로 실행 합니다. 이 스크립트는 필요한 패키지를 차례차례 apt-get로 인스톨 해 갑니다.

OpenRTM-aist를 개발·실행하기 위해서 필요한 패키지를 빠짐없이 인스톨 해주므로 편리합니다. 처음으로 OpenRTM-aist를 인스톨 하시는 분에게 추천합니다. 다만, OpenRTM-aist에 관계된 모든 패키지를 인스톨 하므로 필 요 없는 것도 인스톨 될 가능성이 있습니다. 자세하게 알고계신 분은 수동으로 인스톨 하셔도 관계없습니다. 이하, 일괄 인스톨 스크립트를 사용한 인스톨의 순서입니다.

 > wget [pkg_installXXX.sh 의 다운로드 URL]
 > su
 # sh pkg_install1XX_vine.sh
 //도중, 몇개의 질문을 물어보므로,''y''혹은 ''Y''를 입력하면서 완료시킨다.

apt-get를 사용하는 방법

sources.list의 수정

openrtm.org에서는 apt-get로부터 이용 가능한 패키지 리포지터리를 제공하고 있습니다. 다만, 디폴트의 패키지 리포지터리에는 포함되어 있지 않으므로, apt-get의 설정을 변경할 필요가 있습니다. 우선,/etc/apt/sources.list의 말미에 다음의 한문장을 추가합니다. 이 때 root 권한이 필요하므로 주의해 주십시오.

 rpm http://www.openrtm.org/pub/Linux/Vine/apt x.x/$(ARCH) main

여기서,x.x의 부분은 버전 번호입니다.예를 들면,Vine5.0라면 x.x5.0로 바꿔놓습니다.

 rpm http://www.openrtm.org/pub/Linux/Vine/apt 5.0/$(ARCH) main

sources.list 를 수정하여, 다음의 순서로 인스톨합니다.

 > su
 # apt-get update
 # apt-get install gcc-c++ python
 # apt-get install omniORB omniORB-devel omniORB-servers omniORB-doc
 # apt-get install e2fsprogs e2fsprogs-devel
 # apt-get install OpenRTM-aist OpenRTM-aist-devel OpenRTM-aist-doc OpenRTM-aist-example

도중, 몇개의 질문에 y혹은 Y를 입력해 완료 시킵니다. apt-get은 현재는 synaptic 커멘드로 바꾸는 것을 추천하고 있습니다.

인스톨의 확인

인스톨의 확인을 이하와 같이 해 실시합니다.

 # rpm -q OpenRTM-aist
 OpenRTM-aist-1.0.0-0.vl50

패키지의 상세

OpenRTM-aist

openrtm-aist 에는 런타임 라이브러리와 커멘드군이 포함되어 있습니다.

  • 샘플 설정 파일
     /etc/rtc.conf.sample
  • 라이브러리
     /usr/lib/libRTC-1.0.0.so.0
     /usr/lib/libRTC-1.0.0.so.0.0.4
     /usr/lib/libRTC.a
     /usr/lib/libRTC.la
     /usr/lib/libRTC.so
     /usr/lib/libcoil.a
     /usr/lib/libcoil.la
     /usr/lib/libcoil.so
     /usr/lib/libcoil.so.0
     /usr/lib/libcoil.so.0.0.0

OpenRTM-aist-devel

openrtm-aist-dev에는, 개발에 필요한 커멘드군과 헤더가 포함되어 있습니다.

  • 커멘드
     /usr/bin/coil-config
     /usr/bin/rtc-template
     /usr/bin/rtcd
     /usr/bin/rtcprof
     /usr/bin/rtm-config
     /usr/bin/rtm-naming
     /usr/bin/rtm-skelwrapper
  • 헤더
     /usr/include/coil/Allocator.h
     /usr/include/coil/Async.h
     중략
     /usr/include/coil/memory.h
     /usr/include/coil/stringutil.h
     중략
     /usr/include/rtm/BufferBase.h
     /usr/include/rtm/BufferStatus.h
     중략
     /usr/include/rtm/Typename.h
     /usr/include/rtm/config_rtc.h
  • IDL 및 스텁 스켈리턴
     /usr/include/rtm/idl/BasicDataType.hh
     /usr/include/rtm/idl/BasicDataType.idl
     중략
     /usr/include/rtm/idl/device_interfaces/RFID.idl
     /usr/include/rtm/idl/device_interfaces/Ranger.idl
  • 라이브러리
     /usr/lib/OpenRTM-aist/py_helper/README_gen.py
     /usr/lib/OpenRTM-aist/py_helper/README_gen.pyc
     중략
     /usr/lib/OpenRTM-aist/py_helper/yat.pyc
     /usr/lib/OpenRTM-aist/py_helper/yat.pyo
     /usr/lib/pkgconfig/libcoil.pc
     /usr/lib/pkgconfig/openrtm-aist.pc

OpenRTM-aist-doc

openrtm-aist-doc에는 일본어와 영어의 클래스 레퍼런스, IDL 인터페이스 정의 레퍼런스가 포함되어 있습니다.

  • 클래스 레퍼런스
     /usr/share/OpenRTM-aist/docs/ClassReference/html/ConnectorBase_8h-source.html
     /usr/share/OpenRTM-aist/docs/ClassReference/html/RTC_8h.html
     중략
     /usr/share/OpenRTM-aist/docs/ClassReference/html/FactoryInit_8h-source.html
  • IDL 레퍼런스
     /usr/share/OpenRTM-aist/docs/IDLReference/html/BasicDataType_8idl-source.html
     중략
     /usr/share/OpenRTM-aist/docs/IDLReference/html/interfaceOpenRTM_1_1InPortCdr-members.html
  • 클래스 레퍼런스(영어)
     /usr/share/OpenRTM-aist/docs/ClassReference-en/html/ConnectorBase_8h-source.html
     /usr/share/OpenRTM-aist/docs/ClassReference-en/html/RTC_8h.html
     중략
     /usr/share/OpenRTM-aist/docs/ClassReference-en/html/FactoryInit_8h-source.html
  • IDL 레퍼런스(영어)
     /usr/share/OpenRTM-aist/docs/IDLReference-en/html/BasicDataType_8idl-source.html
     /usr/share/OpenRTM-aist/docs/IDLReference-en/html/structRTC_1_1FsmProfile.html
     중략
     /usr/share/OpenRTM-aist/docs/IDLReference-en/html/interfaceOpenRTM_1_1InPortCdr-members.html

OpenRTM-aist-example

openrtm-aist-example에는 스탠드얼론 RTC, loadable RTC 각각의 샘플과 샘플 RTC의 소스가 포함되어 있습니다.

  • 샘플(스탠드 얼론 RTC)
     /usr/share/OpenRTM-aist/examples/ConsoleOutComp
     /usr/share/OpenRTM-aist/examples/ConsoleInComp
     중략
  • 샘플(소스)
     /usr/share/OpenRTM-aist/examples/src/Composite/README.Motor
     /usr/share/OpenRTM-aist/examples/src/Composite/Makefile.Sensor
     /usr/share/OpenRTM-aist/examples/src/Composite/Motor.cpp
     중략
     /usr/share/OpenRTM-aist/examples/src/SimpleService/Makefile.MyServiceProvider
     /usr/share/OpenRTM-aist/examples/src/SimpleService/rtc.conf
  • 샘플(loadable RTC)
     /usr/share/OpenRTM-aist/examples/rtcs/MyServiceConsumer.so.0.0.0
     /usr/share/OpenRTM-aist/examples/rtcs/SeqIn.so.0.0.0
     중략
     /usr/share/OpenRTM-aist/examples/rtcs/ConfigSample.so.0.0.0
     /usr/share/OpenRTM-aist/examples/rtcs/ConsoleOut.so.0.0.0

Windows에서의 인스톨

windows_logo.png

openrtm.org에서는 Windows용의 msi(Microsoft Windows installer) 패키지를 제공하고 있습니다. msi 패키지를 이용하는 것으로 의존 라이브러리인 omniORB나, RTSystemEditor라고 하는 툴도 동시에 인스톨 할 수 있습니다.

msi 패키지에 의한 인스톨

openrtm.org의 다운로드 사이트로부터, msi패키지를 다운로드합니다. msi 패키지에는, 필요한 모든 라이브러리등이 포함되어 있으므로 별도 라이브러리를 인스톨 할 필요는 없습니다. 다만, 컴포넌트의 개발을 실시하는 경우는 이하의 것도 추가로 인스톨 할 필요가 있습니다.

  • Visual C++ 또는 Visual Studio
  • python
  • RTSystemEditor나 RTCBUilder를 포함한 eclipse 패키지
  • OpenCV 1.0 또는 2.x (카메라를 사용한 샘플을 동작시킬 때에 필요)

또, 구 버전의 OpenRTM-aist나 omniORB등의 의존 패키지가 인스톨 되고 있는 경우는, 미리 언인스톨하는 것을 추천합니다.

인스톨러의 기동

openrtm.org에서 msi를 다운로드해 실행하면, 이하와 같은 다이얼로그가 나타납니다.

installer_ko_00.png
인스톨러 다이얼로그

위저드에 따라서, 인스톨을 진행시킵니다. 「다음」을 클릭하면 사용 허락 계약서의 화면이 되기 때문에, 「동의함」을 클릭해 다음으로 진행합니다.(디폴트에서는 EPL (Eclipse Public License)에 동의 한 것이 됩니다.)

installer_ko_02.png
라이센스의 선택

셋업의 종류의 선택

셋업의 종류의 선택으로 진행됩니다. 이하의 3 종류의 인스톨 방법을 선택할 수 있습니다.

  • 표준: 모든 기능이 인스톨 됩니다.
  • 사용자 지정: 인스톨 하는 기능을 선택합니다.
  • 전체: 모든 기능이 인스톨 됩니다.표준과 같다.
    installer_ko_03.png
    셋업의 종류의 선택

사용자 지정 인스톨

「사용자 지정」을 선택하면, 인스톨 하는 패키지를 한층 더 세세하게 선택할 수 있습니다.

installer_ko_03.png
셋업의 종류의 선택

이하의 4개의 항목이 있습니다.
  • OpenRTM-aist (C++): OpenRTM-aist 본체입니다
  • OpenRT Platform Tool Chain: RTSystemEditor의 스탠드얼론버전 입니다
  • omniORB: omniORB 라인 타임 라이브러리와 헤더입니다
  • Visual C++ 2008 Runtime: VC9의 라인 타임 라이브러리입니다
통상은 모든 것을 인스톨 해 주십시오. 다만, 개발을 하지 않는 경우는
  • OpenRTM-aist (C++)의 Runtime Environment
  • omniORB 의 Runtime Environment 만을 인스톨 하는 것으로 런타임 라이브러리만이 인스톨 됩니다.

인스톨

셋업의 종류의 선택 후, 「다음」을 클릭하면 인스톨이 개시됩니다.

installer_ko_09.png
인스톨

아래와 같은 화면이 나오면 인스톨은 완료입니다.「마침」을 클릭해 인스톨을 종료합니다.

installer_ko_10.png
인스톨의 완료

인스톨의 상세

인스톨러의 작업 내용

인스톨러는 이하의 작업을 실시합니다.

  • 인스톨 디렉토리 (디폴트는 C:\Program Files) 이하에 각종 파일을 복사
    • OpenRTM-aist 헤더, 스크립트, 라이브러리, 샘플을 OpenRTM-aist\<version_number> 이하에 복사
    • 스탠드 얼론판 RTSystemEditor를 OpenRTP 이하에 복사
    • omniORB 헤더, 라이브러리, 커멘드 등을 omniORB 이하에 복사
    • Visual C++런타임을 시스템 디렉토리에 복사
  • 스타트 메뉴 이하에 OpenRTM-aist 폴더를 작성해 각종 숏컷을 설정
    • rtcd, 네임서버 등의 숏컷을 작성
    • 샘플 RTC의 숏컷을 작성
    • doxygen 에 의한 클래스 레퍼런스, IDL 레퍼런스 바로가기를 작성
  • 환경 변수의 설정
    • RTM_ROOT에 OpenRTM-aist\bin를 세트
    • OMNI_ROOT에 omniORB의 바이너리·라이브러리 디렉토리를 세트

인스톨 되는 파일

파일은 이하와 같은 구조로 인스톨 됩니다.

 <install_dir>
   + OpenRTM-aist
   |  + <version>
   |     + bin: dll, lib, 각종 커멘드
   |     + coil: coil 헤더 파일
   |     + doc: doxygen 문서
   |     + etc: vsprops, rtc.conf 샘플
   |     + examples
   |         + CXX: C++ 샘플 컴포넌트 (.exe, .dll)
   |     + rtm: OpenRTM-aist 헤더 파일
   |        + idl: OpenRTM-aist IDL 파일
   |     + util
   |        + rtc-template: rtc-template 모듈
   |
   + omniORB
   |  + <version>
   |     + bin: dll, 각종 커멘드
   |     + idl: IDL 파일
   |     + include: omniORB 헤더 파일
   |     + lib: 임포트 라이브러리, python 라이브러리
   |
   + OpenRTP
      + RTSystemEditor: 스탠드 얼론판 RTSystemEditor

Mac OS X 으로의 MacPorts로 인스톨

osx_logo2.png

C++버전 OpenRTM-aist는 Mac OS X용의 패키지 관리 시스템 MacPorts로 이용 가능한 ports가 제공되고 있습니다. MacPorts의 대응 및 그 버전은, 예고없이 변경 또는 정지되는 일이 있습니다. 양해 바랍니다.

MacPorts

MacPorts는 Mac OS X상에서 이용 가능한 오픈 소스의 패키지 관리 시스템 입니다. MacPorts는 FreeBSD의 ports라고 하는 패키지 관리 시스템처럼 ports로 불리는 패키지를 빌드하기 위한 레시피에 근거해, 자동으로 소스의 다운로드, 패치의 적용, 컴파일, 인스톨까지를 행하여 주는 시스템입니다. Mac OS X용의 패키지 관리 시스템으로서는 그 밖에 Fink가 있습니다.

MacPorts의 인스톨

MacPorts를 이용하려면, Apple의 Xcode 및 X11 환경을 미리 인스톨 할 필요가 있습니다. Xcode 및 X11는 Mac OS X의 인스톨 CD로 인스톨 할 수도 있습니다. 자세한 것은 상기 MacPorts의 Web 페이지를 참조해 주십시오.

MacPorts 자체는 dmg 패키지 형식이 되어 있어 자신의 Mac의 OS의 버전 에 맞춘 dmg 패키지를 다운로드, 인스톨 하는 것으로 간단하게 인스톨 할 수 있습니다. dmg 패키지는 MacPorts의 Web 페이지, 또 는 아래와 같이 링크로부터 다운로드할 수 있습니다.

OpenRTM-aist ports에 의한 인스톨

Portfile의 다운로드, 전개, 빌드를 일괄로 행하는 스크립트가 이하에 준비되어 있습니다.

적당한 디렉토리에서, 이하와 같이 스크립트를 실행합니다. 일반 유저로 실행을 해도 문제 없습니다. 하지만, 도중에 해당 유저의 패스워드를 묻는 일이 있습니다.

 $ sh port_install100_mac.sh
 sh port_install.sh
 file:///Users/n-ando/ports/
 Getting Portfile from:  http://www.openrtm.org/pub/MacOSX/macports//ports.tgz
 --2010-07-27 23:21:06--  http://www.openrtm.org/pub/MacOSX/macports//ports.tgz
 Resolving www.openrtm.org (www.openrtm.org)... 182.48.18.55
 Connecting to www.openrtm.org (www.openrtm.org)|182.48.18.55|:80... connected.
 HTTP request sent, awaiting response... 200 OK
 Length: 3600 (3.5K) [application/x-gzip]
 Saving to: `ports.tgz.1'
 
 100%[================================================>] 3,600       --.-K/s   in 0.002s
 
 2010-07-27 23:21:06 (2.02 MB/s) - `ports.tgz' saved [3600/3600]
 
 x ports/
 x ports/devel/
 x ports/PortIndex
 x ports/PortIndex.quick
 x ports/devel/OpenRTM-aist/
 x ports/devel/OpenRTM-aist/Portfile
 x ports/devel/OpenRTM-aist/files/
 x ports/devel/OpenRTM-aist/Portfile~
 x ports/devel/OpenRTM-aist/files/patch-src-lib-rtm-InPortConsumer.h
 x ports/devel/OpenRTM-aist/files/patch-src-lib-coil-posix-coil-UUID.cpp
 x ports/devel/OpenRTM-aist/files/patch-src-lib-coil-posix-coil-Routing.cpp
 x ports/devel/OpenRTM-aist/files/patch-examples-SimpleService-Makefile.in
 x ports/devel/OpenRTM-aist/files/patch-examples-Composite-Makefile.in
 x ports/devel/OpenRTM-aist/files/patch-examples-ConfigSample-Makefile.in
 x ports/devel/OpenRTM-aist/files/patch-examples-SeqIO-Makefile.in
 x ports/devel/OpenRTM-aist/files/patch-examples-SimpleIO-Makefile.in
 x ports/devel/OpenRTM-aist/files/patch-src-lib-rtm-idl-Makefile.in
 Creating port index in /Users/n-ando/ports
 Adding port devel/OpenRTM-aist
 
 Total number of ports parsed:   1
 Ports successfully parsed:      1
 Ports failed:                   0
 Up-to-date ports skipped:       0
  
 Adding local ports repository entry to sources.conf
 # A password may be required for sudo. Input your password.
 Password:
 Installing OpemRTM-aist...it may take several minutes.
 # A password may be required for sudo. Input your password.
 --->  Computing dependencies for OpenRTM-aist
 --->  Fetching OpenRTM-aist
 --->  Verifying checksum(s) for OpenRTM-aist
 --->  Extracting OpenRTM-aist
 --->  Applying patches to OpenRTM-aist
 --->  Configuring OpenRTM-aist
 --->  Building OpenRTM-aist
 --->  Staging OpenRTM-aist into destroot
 --->  Installing OpenRTM-aist @1.0.0_2
 --->  Activating OpenRTM-aist @1.0.0_2
 --->  Cleaning OpenRTM-aist
 Cleaning local ports repository entry in sources.conf
 # A password may be required for sudo. Input your password.
 Password:
 $

ports는 의존관계(dependencies)를 자동적으로 해결해, 빌드에 필요한 패키지가 들어있지 않은 경우에는 자동으로 그 패키지의 빌드도 실시하기 때문에, 다소 시간이 걸리는 경우가 있습니다.

인스톨의 상세

자세한 것은 일괄 인스톨 셸 스크립트 port_installXXX_mac.sh 에 써 있습니다. 인스톨 순서는, 대체로 이하와 같이 되어 있습니다.

  • Portfile를 다운로드한다
  • Portfile를 전개한다
  • sources.conf에 전개한 Portfile의 장소를 쓴다
  • port 커멘드로 빌드·인스톨 한다

MacPorts에서는 port 커멘드로 인스톨 하도록 지정된 패키지를, 설정 파일 sources.conf에 기재되어 있는 특정의 장소 이하로부터 찾아내고, Porrtfile에 따라 소스를 다운로드해 빌드를 실시합니다.

소스로부터 빌드(Windows)

OpenRTM-aist 본체를 수정한 후에 Windows상에서 사용하고 싶은 경우는 Windows용 소스 패키지를 스스로 빌드 할 수 있습니다. 여기에서는 다운로드 페이지나 리포지터리에서 소스를 취득해 Windows상에서 OpenRTM-aist를 빌드하는 방법을 설명합니다.

Windows상에서의 OpenRTM-aist의 빌드는, 환경의 정비나 인스톨러의 작성등, Windows상에서의 여러가지 지식이 필요가 됩니다. 본문서는, Windows상에서의 프로그램 개발이나 배치·파일 등의 기본적인 지식이 있는 분을 대상으로 하고 있습니다.

Windows용 소스 코드

Windows 용의 OpenRTM-aist(C++버전) 소스 패키지는 Linux 용의 소스 와는 별도로 배포되고 있습니다. 소스 코드의 내용은 완전히 같습니다만, 이하의 부분에 차이가 있습니다.

  • 문자 코드 (Windows: Shift-JIS, Linux: EUC)
  • Visual Studio의 솔루션을 포함
  • Visual C++ 의 프로젝트 파일을 포함
  • msi 인스톨러 작성 환경을 포함

소스 코드의 구성

그림에 나타나듯이 오리지날은 subversion 리포지터리(repository)의 소스 코드에서 그 소스 코드로부터 Linux상에서,

  • Linux/Unix용 소스 코드 배포 패키지
  • Windows용 소스 코드 배포 패키지

의 2종류를 작성하는 구성이 되어 있습니다.

openrtm_src_dist_ko.png
OpenRTM-aist의 소스의 구성

리포지터리로부터 취득한 최신의 소스 코드를 Windows로 이용하는 경우는, 일단 Linux로 Windows용의 소스 코드를 생성할 필요가 있습니다.

빌드 환경

빌드에 필요한 환경, 라이브러리는 이하와 같습니다.

  • Visual C++
    • Visual C++ Express Edition에서도 이용 가능
  • omniORB

Visual C++/Visual Studio

Windows용의 바이너리를 빌드 하기 위해서는, Visual C++개발 환경이 필요합니다. 현재 대응하고 있는 Visual C++는 Visual C++ 2005 또는 2008만입니다. Visual C++ 2010은 프로젝트 변환 위저드로 빌드 할 수 있을 가능성 이 있습니다만, 의존 라이브러리인 omniORB도 자동 빌드 할 필요가 있기 때문에 시간이 걸립니다.

Visual C++ Express Edition는 Microsoft가 무료로 제공하는 C++의 개발 환경으로 MFC나 ATL 등은 사용할 수 없습니다만, Windows 어플리케이션(Win32 아플리케이션)- 을 개발할 수 있습니다. OpenRTM-aist를 이용한 컴퍼넌트 개발 에서도 MFC나 ATL등을 이용하지 않는 컴퍼넌트는 Visual C++ Express Edition 만으로 개발할 수 있습니다. 아래의 링크로부터 ISO 이미지를 다운 로드해 인스톨 한 다음, Microsoft Live ID를 취득해 라이센스 (무료)를 취득해 주세요.

omniORB

OpenRTM-aist 의 빌드에는 omniORB 의 라이 방어가 필요합니다. omniORB 은 이하의 링크로, source code 및 바이너리를 다운로드할 수 있습니다. 바이너리 패키지를 아래 링크로 다운로드하고, 적당한 장소 (이하에서는 C:distributionomniORB를 가정)에 전개해 주십시오.

msi omniORB 인스톨러

인스톨러는 이하의 작업을 실시합니다.

  • 디폴트의 인스톨 디렉토리는 C:\Program Files\omniORB\<version_number>
  • 인스톨 디렉토리에 소스, 헤더, 스크립트, LIB등을 복사
  • 환경 변수 PATHbin/x86_win32를 추가
  • 환경 변수 OMNI_ROOT에 인스톨 디렉토리를 세트

또한, 환경 변수의 어플리케이션에의 통지는 되지 않으므로 환경 변수의 갱 신을 유효하게 하려면 재기동해 주십시오. 또는, 「내 컴퓨터」→ 「속성」→「고급 시스템 설정」→「고급」탭의「환경 변수」로부터 환경 변수의 아무 항목이나 선택해 「편집」을 클릭해 편집 다이얼로그를 표시시켜, 그대로 아무것도 변경하지 않고 OK를 누르는 것으로, 셸에 환경 변수의 변수가 통지되어 그 셸로부터 새롭게 실행한 어플리케이션에서는 변경된 환경 변수가 유효하게 되지만 잘 모르겠다면 재기동하는 편이 무난합니다.)

환경 변수: OMNI_ROOT

상기의 msi 인스톨러 이외 방법으로 인스톨 했을 경우는 환경 변수 OMNI_ROOT를 설정할 필요가 있습니다. OMNI_ROOT 로 설정한 디렉토 리 이하는 이하와 같은 구조가 되어 있어야 합니다.

 <OMNI_ROOT>
  + bin
  |  + scripts
  |  + x86_win32
  + idl
  |  + COS
  + include
  |  + COS
  |  + omniORB4
  |  |  + internal
  |  + omnithread
  |  + omniVms
  |  + python1.5
  + lib
     + python
        + omniidl
        + omniidl_be
           + cxx
              + dynskel
              + header
              + impl
              + skel

WiX

WiX Windows Installer XML)는 Windows의 msi 인스톨러를 커맨드라 인 베이스의 툴군으로 작성하는 것을 목표로 하고 있는 오픈 소스의 프로젝트입니다.

OpenRTM-aist는 Windows용의 인스톨러를 WiX를 이용해 작성합니다. 인스톨러까지 작성하는 경우에는, WiX를 미리 인스톨 해주십시오.

Python

빌드 도중에 몇개의 Python 스크립트를 이용하므로 Python이 필요합니다. 아래의 사이트에서 최신의 것을 다운로드해 인스톨 해 주세요.

인스톨러를 기동하면, 위저드에서 몇가지 선택하는 부분이 있습니다만, 디폴트인 채로 인스톨 해주십시오.

OpenCV

Windows버전 OpenRTM-aist에서는 OpenCV를 이용한 샘플 컴퍼넌트가 포함되어 있기 때문에 OpenCV가 필요합니다. 현재로서는 OpenCV 1.0만 대응입니다.

여기에서 OpenCV의 인스톨러 OpenCV_1.0.exe를 다운로드합니다. OpenCV_1.0.exe를 실행하면 인스톨러가 기동하므로 지시에 따라서 인스톨합니다.

소스 패키지의 취득

우선 소스 코드 OpenRTM-aist-X.X.X-win32.zip 를 다운로드해, 적당한 디렉토리에 압축을 해제합니다.

배치파일의 수정

그대로는, RTSystemEditor의 RCP 패키지가 없기 때문에 인스톨러를 빌드 하는 도중에 에러가 발생합니다. 이하의 2종류의 방법중 하나를 선택해 주십시오.

  • installer/autowix.cmd를 수정
  • openrtm.org 배포의 msi 인스톨러로 인스톨 되는 RTSystemEditor를 C:\distribution에 복ㄱ사

installer/autowix.cmd 을 수정

installer/autowix.cmd 의 처음에 있는 RTSystemEditor 에 관한 부분을 이 아래와 같이 수정합니다.

 @rem ------------------------------------------------------------
 @rem Generate RTSystemEditor wxs file
 @rem
 @rem RTSystemEditorRCP.exe should be under %RTSE_ROOT%
 @rem
 @rem ------------------------------------------------------------
 @rem if "x%RTSE_ROOT%" == "x" (
 @rem    echo Envrionment variable "RTSE_ROOT" is not set. Abort.
 @rem    goto END
 @rem )
 @rem if not exist "%RTSE_ROOT%\RTSystemEditorRCP.exe" (
 @rem    echo RTSystemEditorRCP.exe does not found. Abort
 @rem    goto END
 @rem )
 set INCLUDE_RTSE=NO
 set INCLUDE_OPENRTP=NO

RTSystemEditor를 복사

openrtm.org에서 배포하고 있는 Windows용 인스톨러로 OpenRTM-aist를 인스톨 하면, 디폴트에서는 C:\Program Files\OpenRTP 이하에 RTSystemEditor의 RCP버전이 인스톨 됩니다. 또는, msi로부터 파일을 추출 툴등을 사용해 RTSystemEditor를 꺼냅니다. 이것을 C:\distribution 이하에 복사합니다.

 C:\distribution
      + OpenRTP
         + RTSystemEditor
             + configuration
             + NewProjectName
             + plugins
             + ...

이러한 구조로 되어 있어야 합니다.

빌드

이상의 환경이 준비되었다면, 빌드를 합니다. autobuild_vc8.bat(개발 환경이 VC2005의 경우) 혹은 autobuild_vc9.bat(같이 VC2008의 경우)를 더블 클릭 한 후 기동하면 자동으로 빌드가 시작됩니다.

또, 솔루션 파일(sln)로부터의 빌드도 가능합니다. OpenRTM-aist_vc8.sln (개발 환경이 VC2005의 경우) 혹은 OpenRTM-aist_vc9.sln (개발 환경이 VC2008의 경우)를 더블 클릭 해, 빌드 해 주십시오.

인스톨

정상적으로 빌드가 되었다면 다음을 실시해, 인스톨을 완료시킵니다.

  • 환경 변수 RTM_ROOT를 설정: OpenRTM-aist의 디렉토리를 환경 변수 RTM_ROOT로 설정해 주십시오.
  • DLL에 패스를 설정: DLL에 패스를 복사합니다. 혹은, 환경 변수 PATH에 %RTM_ROOT%\bin를 추가합니다.
  • 환경 변수 PATH의 설정: 환경 변수 PATH에%RTM_ROOT%\bin 뿐만이 아니라 %RTM_ROOT%\utils\rtc-template도 등록하는 것을 추천합니다.

이상으로, OpenRTM-aist의 인스톨은 종료입니다.

소스로부터 빌드(Linux)

패키지가 준비되어 있지 않은 UNIX 환경이나, 크로스 개발 환경, OpenRTM-aist 본체의 소스를 변경해 이용하고 싶은 경우에는, 소스로부터 컴파일 할 수 있습니다.

배포 소스의 빌드

OpenRTM-aist(C++버전)는 autotools를 이용한 빌드 환경을 제공하고 있기 때문에, 여러가지 환경에서 용이하게 빌드 할 수 있습니다.

대응 OS 및 배포

OpenRTM-aist는 아래와 같은 OS 및 Linux 배포 버전에서 동작 하는 것이 확인되고 있습니다.

  • FreeBSD
  • Vine Linux
  • Fedora
  • Debian
  • Ubuntu

이외의 환경에서도 일반적 Linux/UNIX 환경이면, 빌드할 수 있을 가능성이 있습니다.

의존 라이브러리

OpenRTM-aist-1.0.0의 인스톨에는 아래와 같은 개발 환경 및 라이브러리가 필요합니다.

  • gcc/g++ version3 이후: 컴파일에 필요
  • omniORB-4. x이상: OpenRTM-aist의 빌드에 필요
    • omniORB-4.0.6에는 버그가 있기 때문에 이용하지 말아 주십시오.
  • uuid 라이브러리: libuuid (Linux등 디폴트로 uuid 생성 함수를 제공하고 있지 않는 환경만)
  • python: 빌드 툴을 이용하기 위해서 필요
    • PyYAML

각각의 라이브러리등의 문서에 따라 인스톨을 실시해 주십시오. 이러한 패키지가 표준의 디렉토리(/usr, /usr/local 등) 아래에 인스톨 되어 있으면, 이후의 OpenRTM-aist의 컴파일 작업을 비교적 간단하게 실시할 수 있습니다.

소스의 다운로드

OpenRTM-aist의 소스를 다운로드합니다.

소스 코드의 전개

우선 소스 코드 OpenRTM-aist-X.X.X.tar.gz를 적당한 디렉토리에 전개합니다.

 $ tar xvzf OpenRTM-aist-X.X.X.tar.gz
 $ cd OpenRTM-aist-X.X.X

빌드

OpenRTM-aist는 패키지의 빌드에 autoconf, automake를 사용하고 있습니다. 빌드의 방법은 autoconf, automake를 사용한 패키지와 같게 실시합니다.

 $ ./configure --prefix=/usr [options]

[options]로 사용 가능한 옵션은

 $ ./configure --help

을 참조해 주십시오.

make

configure가 정상적으로 종료한 것을 확인해 주십시오. 정상적으로 종료하였다면 make 합니다.

 $ make

빌드가 정상적으로 종료되면 헤더 파일, 라이브러리, 유틸리티 커멘드군을 인스톨 합니다.

 $  su
 # make install

이상, 소스 코드로부터의 빌드 및 인스톨은 종료입니다.

리포지터리(repository)의 소스의 빌드

OpenRTM-aist는 개발에 이용하고 있는 subversion 리포지터리(repository)를 일반적으로 공개하고 있습니다. 리포지터리(repository)로부터 체크아웃 한 소스 코드로부터 빌드를 실시할 수도 있습니다.

필요한 툴

리포지터리(repository)로부터 체크아웃 한 소스는 configure 스크립트나 Makefile.in 가 포함되어 있지 않습니다. 이것들을 생성하려면,

  • automake
  • libtool
  • autoconf

등의 툴이 필요하므로 미리 인스톨 해 둡니다.

소스의 체크아웃

소스를 리포지터리(repository)로부터 체크아웃 합니다.

 $ svn co http://www.openrtp.jp/openrtm/svn/OpenRTM-aist/trunk/OpenRTM-aist
 A    OpenRTM-aist/include
 A    OpenRTM-aist/include/rtm
 A    OpenRTM-aist/AUTHORS
 A    OpenRTM-aist/src
 A    OpenRTM-aist/src/ext
 A    OpenRTM-aist/src/ext/artlinux
 중략
 A    OpenRTM-aist/examples/Templates/PanTilt.xml
 A    OpenRTM-aist/INSTALL.jp
  U   OpenRTM-aist
 Checked out revision 2009.

autogen.sh의 실행

체크아웃 하면, OpenRTM-aist라고 하는 디렉토리가 있으므로, 그 디렉토리로 들어갑니다.

 $ ls 
 OpenRTM-aist
 $ cd OpenRTM-aist
 $ ls
 AUTHORS         Makefile.am     acinclude.m4    examples/       win32/
 COPYING.LIB     NEWS            build/          include/
 COPYRIGHT*      README          configure.ac    openrtm.m4
 ChangeLog       README.jp       docs/           src/
 INSTALL.jp      TUTORIAL.jp     etc/            utils/

build 디렉토리 아래에 autogen라고 하는 셸 스크립트가 있는 것을 확인하여, 이 스크립트를 실행합니다. 실행에는, 몇분 정도의 시간이 걸립니다.

 $ls build/autogen
 build/autogen*
 $ sh build/autogen
 
 Setting up environment to generate configure script.
 
 ------------------------------------------------------------
  Searching Autotools
 ------------------------------------------------------------
 autoconf   was found in /usr/local/bin/autoconf.
 autoheader was found in /usr/local/bin/autoheader.
 autom4te   was found in /usr/local/bin/autom4te.
 autoreconf was found in /usr/local/bin/autoreconf.
 autoupdate was found in /usr/local/bin/autoupdates.
 automake   was found in /usr/local/bin/automake-1.9.
 aclocal    was found in /usr/local/bin/aclocal-1.9.
 libtool    was found in /usr/local/bin/libtool.
 libtoolize was found in /usr/local/bin/libtoolize.
 
 
 ------------------------------------------------------------
  Searching libtool.m4
 ------------------------------------------------------------
 file was found: /usr/local/share/aclocal/libtool.m4
 
  Copying libtool.m4 from /usr/local/share/aclocal/libtool.m4
 
 ------------------------------------------------------------
  Doing autoreconf
 ------------------------------------------------------------
 autoreconf-2.62: Entering directory `.'
 autoreconf-2.62: configure.ac: not using Gettext
 autoreconf-2.62: running: /usr/local/bin/aclocal-1.9 --force
 autoreconf-2.62: configure.ac: tracing
 autoreconf-2.62: configure.ac: adding subdirectory src/lib/coil to autoreconf
 autoreconf-2.62: Entering directory `src/lib/coil'
 autoreconf-2.62: running: /usr/local/bin/libtoolize --copy --force
 You should update your `aclocal.m4' by running aclocal.
 autoreconf-2.62: running: /usr/local/bin/autoconf --force
 autoreconf-2.62: running: /usr/local/bin/autoheader --force
 autoreconf-2.62: running: /usr/local/bin/automake-1.9 --add-missing --copy --force-missing
 configure.ac: installing `./install-sh'
 configure.ac: installing `./missing'
 ace/coil/Makefile.am: installing `./depcomp'
 Makefile.am: installing `./INSTALL'
 autoreconf-2.62: Leaving directory `src/lib/coil'
 You should update your `aclocal.m4' by running aclocal.
 configure.ac: installing `./install-sh'
 configure.ac: installing `./missing'
 examples/AutoTest/Makefile.am: installing `./depcomp'
 Makefile.am: installing `./INSTALL'
 autoreconf-2.62: Leaving directory `.'
 done
 $

configure & 빌드

autogen의 실행에 의해, configure가 OpenRTM-aist 디렉토리내에 생성되기 때문에 이후는 통상의 소스로부터의 빌드 처럼, configur&make로 빌드 합니다.

 $ ls -l configure
 -rwxr-xr-x  1 n-ando  n-ando  812893 Jul  6 05:56 configure*
 $ ./configure --prefix=/usr
 $ make

make dist

make dist를 실시하는 것으로 openrtm.org에서 배포하고 있는 소스의 패키지 를 작성할 수도 있습니다. 또, make dist로 Windows상에서 빌드 가능한 소스 코드의 패키지도 동시에 작성합니다. 하지만 make dist를 실시하려면 doxygen나 latex, qkc 등 추가의 커멘드가 필요합니다.

 $ make dist
 몇분 정도 걸립니다
 $ ls -l OpenRTM-aist*
 -rw-r--r--  1 n-ando  n-ando  9266837 Apr  7 09:53 OpenRTM-aist-1.0.0-win32.zip
 -rw-r--r--  1 n-ando  n-ando  4831099 Apr  7 09:53 OpenRTM-aist-1.0.0.tar.bz2
 -rw-r--r--  1 n-ando  n-ando  7258796 Apr  7 09:53 OpenRTM-aist-1.0.0.tar.gz
 $

생성된 소스 패키지는 각각 이하와 같습니다.

  • OpenRTM-aist-1.0.0-win32.zip: Windows용 소스
  • OpenRTM-aist-1.0.0.tar.gz: 범용 소스 (gzip 압축)
  • OpenRTM-aist-1.0.0.tar.bz2: 범용 소스 (bzip 압축)

동작확인 (Linux)

인스톨이 정상적으로 종료하면, 부속의 샘플로 동작 테스트를 합니다. 샘플은 통상적으로, 이하의 장소에 있습니다.

  • /usr/share/OpenRTM-aist/examples
  • /usr/local/share/OpenRTM-aist/examples
  • /opt/local/share/OpenRTM-aist/examples (Mac OS X MacPorts에서 인스톨 한 경우)

소스로 부터 빌드한 경우는 소스 디렉토리 이하의

  • OpenRTM-aist/examples/<샘플 컴포넌트 세트 이름>

에도 존재합니다。

샘플 컴포넌트 세트 SimpleIO를 사용해 OpenRTM-aist가 정상적으로 빌드·인스톨되어 있는지를 확인합니다.

샘플 컴포넌트 세트 SimpleIO

RT컴포넌트 ConsoleInComp, ConsoleOutComp로 구성되는 샘플 세트입니다. ConsoleInComp는 콘솔로부터 입력된 수치를 OutPort로부터 출력하는 컴포넌트, ConsoleOutComp는 InPort에 입력된 수치를 콘솔에 표시하는 컴포넌트입니다. 이것들은 Simple한 I/O(입출력)를 보여 주기 위한 샘플입니다. ConsoleInComp의 OutPort로부터 ConsoleOutComp의 InPort에 연결하여 2개의 컴포넌트를 액티브(Activate)하는 것으로 동작합니다.

이후, 간단을 위해 샘플은 /usr/share/OpenRTM-aist/examples 이하에 있는 것으로 설명을 기술합니다.

샘플을 사용한 테스트

네임서버를 기동

우선, 컴포넌트의 참조를 등록하기 위한 네임서버를 기동합니다. Linux등의 패키지로 omniORB를 인스톨 했을 경우, 이미 시스템의 서비스로서 네임서버(omniNames)가 기동되어 있는 경우가 있습니다.

이미 omniNames가 기동되어 있는 경우, 이와 같이 됩니다.

 $ ps ax | grep omni
 1550  ?        Sl     0:00 /usr/bin/omniNames -errlog /var/log/omniorb4-nameserver.log
 18418 pts/2    S+     0:00 grep --color=auto omni

omniNames가 기동하고 있지 않는 경우는 이와 같이 됩니다.

 $ ps ax | grep omni
 18418 pts/2    S+     0:00 grep --color=auto omni

 omniNames가 기동하고 있지 않는 경우, rtm-naming 커멘드로 네임서버를 기동합니다.

 $ rtm-naming
 Starting omniORB omniNames: ubuntu910:9876
 
 Thu Dec  3 18:52:14 2009:
 
 Starting omniNames for the first time.
 Wrote initial log file.
 Read log file successfully.
 Root context is  IOR:010000002b00000049444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696e67436f6e746578744578743a312e30000001000000000000007400000001010200100000003139322e3136382e3130302e31323500942600000b0000004e616d6553657276696365000300000000000000080000000100000000545441010000001c0000000100000001000100010000000100010509010100010000000901010003545441080000004e8a174b01000fef
 Checkpointing Phase 1: Prepare.
 Checkpointing Phase 2: Commit.
 Checkpointing completed.

rtc.conf 의 작성

테스트를 위한 RTC 컨피그레이션 파일 rtc.conf를 작성하고 배치합니다. 우선 적당한 작업 디렉토리를 만듭니다. 여기에서는 편의상 홈 디렉토리 아래에 RTCwork라고 하는 디렉토리를 작업 디렉토리로 해두기로 하겠습니다. 작업 디렉토리 RTCwork에 다음과 같은 내용의 파일 rtc.conf를 작성합니다.

/usr/share/OpenRTM-aist/examples 아래에 있는 rtc.conf는 이 예에서는 사용할 수 없으므로, ~/RTCWork/rtc.conf로 새롭게 작성해 주십시오.

 $ cd ~/RTCwork
 $ vi rtc.conf

작성하는 파일의 내용은 이하와 같이 됩니다.

 corba.nameservers: localhost
 naming.formats: %h.host_cxt/%n.rtc
 logger.enable: NO
 example.ConsoleOut.config_file: consout.conf
 example.ConsoleIn.config_file: consin.conf
rtc.conf

시스템으로 IPv6가 설정되어 있는 경우, localhost라고 하는 호스트명이 정상적으로 기능하지 않는 경우가 있습니다. 그 경우는 localhost 대신에 127.0.0.1로 수정해 주십시오.

ConsoleInComp 의 기동

터미널을 기동하고 다음과 같이 앞에서 작성한 rtc.conf를 참조시키는 형태로 ConsoleInComp를 기동합니다.

 $ /usr/share/OpenRTM-aist/examples/ConsoleInComp -f rtc.conf 
 Creating a component: "ConsoleIn"....succeed.
 =================================================
  Component Profile
 -------------------------------------------------
 InstanceID:     ConsoleIn0
 Implementation: ConsoleIn
 Description:    Console input component
 Version:        1.0
 Maker:          Noriaki Ando, AIST
 Category:       example
   Other properties   
 =================================================
 =================================================
 Port0 (name): out
 -------------------------------------------------
 - properties -
 port.port_type: DataOutPort
 dataport.data_type: TimedLong
 dataport.subscription_type: flush,new,periodic
 dataport.dataflow_type: push
 dataport.interface_type: corba_cdr
 -------------------------------------------------
 

스스로 빌드·인스톨 했을 경우는,

 $ <source_dir>/OpenRTM-aist/examples/SimpleIO/ConsoleInComp -f ~rtc.conf

으로 ConsoleInComp를 기동합니다.

ConsoleOutComp 의 기동

터미널을 기동 rtc.conf를 참조하는 형태로 ConsoleOutComp를 기동합니다.

 $ /usr/share/OpenRTM-aist/examps/ConsoleOutComp -f rtc.conf 
 succeed.
 =================================================
  Component Profile
 -------------------------------------------------
 InstanceID:     ConsoleOut0
 Implementation: ConsoleOut
 Description:    Console output component
 Version:        1.0
 Maker:          Noriaki Ando, AIST
 Category:       example
   Other properties   
 =================================================
 =================================================
 Port0 (name): in
 -------------------------------------------------
 - properties -
 port.port_type: DataInPort
 dataport.data_type: TimedLong
 dataport.subscription_type: Any
 dataport.dataflow_type: push,pull
 dataport.interface_type: corba_cdr
 ------------------------------------------------- 

스스로 빌드·인스톨 했을 경우도

 $ <source_dir>/OpenRTM-aist/examples/SimpleIO/ConsoleOutComp -f ~rtc.conf

등으로 해서 ConsoleOutComp를 기동합니다.

RTSystemEditor의 기동

RTSystemEditor를 사용하고, RT컴포넌트의 접속과 액티브화를 실시합니다. 여기에서 Eclipse 패키지를 다운로드해 압축을 해제해 주십시오.

RTSystemEditor는 Java Development Kit6를 사용합니다. 이하의 메뉴얼을 참고에 인스톨해 주십시오. 또, Ubuntu 등에서는 디폴트의 Java 환경은 OpenJDK가 추천 되고 있습니다. 그러한 경우 OpenJDK에서도 이용하는 것은 가능합니다.

여기의 페이지를 참고하여 RTSystemEditor를 기동해 주십시오.

네임서버의 참조와 확인

네임서버에 접속해 등록 내용을 확인합니다. 네임서버에의 접속은 좌측의 Name Service View의 콘센트형 아이콘의 버튼을 클릭해, 다이얼로그에

 localhost
 또는
 localhost:2809

라고 입력합니다.(omniNames의 디폴트 포트 번호는 2809입니다.)

c_unix100_NameServer.png
네임서버에의 접속

네임서버에 등록된 RT컴포넌트를 시스템 에디터에 배치합니다. 왼쪽의 Name Service View 의 ConsoleOut0 및 ConsoleIn0를 중앙의 에디터 위에 드래그 앤드 드롭 합니다. 다음 컴포넌트의 우/좌단의 포트 아이콘을 다른 한쪽으로부터 반대쪽으로 드래그 앤드 드롭 하면 접속 다이얼로그가 표시됩니다. 모두 디폴트로 설정해도 좋습니다. 그리고 OK를 누르면 접속이 완료됩니다.

c_unix100_oneditor.png
RTSystemEditor에 의한 시스템의 편집

메뉴아래의 녹색의 「재생」버튼을 누르면, 에디터상의 모든 구성-컴포넌트가 액티브 됩니다.

수치 입력과 출력의 확인

ConsoleInComp 와 ConsoleOutComp 의 포트를 접속하면,

 Please input number: 

위와 같은 prompt가 나타나므로, 거기에 숫자를 입력합니다. 입력하는 숫자는, short int 에 들어가는 범위의 수치를 입력해 주십시오.

ConsoleInComp측의 터미널에 숫자를 넣으면, ConsoleOutComp측의 터미널에 입력한 수치가 나타납니다. 이상으로 OpenRTM-aist가 정상적으로 인스톨되어 있는 지를 확인할 수 있었습니다.

동작확인(Windows)

샘플 컴포넌트의 위치

인스톨 또는 빌드가 정상적으로 종료되면, 샘플로 동작 테스트 를 합니다. 샘플은, 통상은 이하의 장소에 있습니다.

  • 시작 메뉴: [시작]>>[OpenRTM-aist]>>[C++]>>[components]>>[examples]
  • C:\Program Files\OpenRTM-aist\1.0\examples\C++
  • OpenRTM-aist/examples (소스로부터 빌드 했을 경우)

샘플 컴포넌트 세트 SimpleIO를 사용하고, OpenRTM-aist가 정상적으로 빌드·인스톨 되어 있는지를 확인합니다.

샘플(SimpleIO)을 사용한 테스트

RT컴포넌트 ConsoleInComp, ConsoleOutComp로 구성되는 샘플 세트 입니다. ConsoleInComp는 콘솔로부터 입력된 수치를 OutPort로부터 출력하는 컴포넌트, ConsoleOutComp는 InPort에 입력된 수치를 콘솔에 표시하는 컴포넌트입니다. 이것들은 가장 Simple하게 I/O를 예로 보여주는 샘플입니다. ConsoleInComp의 OutPort로부터 ConsoleOutComp의 InPort에 접속해 2개의 컴포넌트를 액티브(Activate) 하는 것으로 동작합니다.

이하는 msi 인스톨러로 OpenRTM-aist를 인스톨 한 환경에서, 시작 메뉴로부터 각종 프로그램을 기동하는 것을 전제로 설명합니다. 시작 메뉴 로부터 OpenRTM-aist를 마우스 오른쪽 버튼을 클릭해 「열기」로 폴더를 열어, 각 프로그램 에 액세스 하면 편리합니다.

win_start_menu_open_ko.png
시작 메뉴의 OpenRTM-aist를 열기

네임서버의 기동

우선, 컴포넌트의 참조를 등록하기 위한 네임서버를 기동합니다. 「OpenRTM-aist」>>「tools」>>「Start Naming Service」에 있는 바로가기 를 클릭해 네임서버를 기동합니다.

win_start_openrtm_tool_ko.png
네임서버에의 바로가기

기동하면, 이하와 같은 콘솔 화면이 열립니다.

win_naming_service_ko.png
네임서버의 기동

콘솔 화면이 열리지 않는다

네임서버의 콘솔 화면이 열리지 않는 케이스가 있습니다. 이 경우 예상되는 몇개의 원인을 아래와 같이 대처해 주십시오.

omniORB가 인스톨 되어 있지 않다.

openrtm.org가 제공하는 msi 인스톨러에는 omniORB가 포함되어 있습니다만, 언인스톨 을 선택하면, omniORB를 인스톨 하지 않고 OpenRTM-aist를 인스톨 할 수도 있습니다.

또, 수동으로 인스톨 했을 경우에는 omniORB가 들어가 있지 않은 경우도 있기 때문에 omniORB가 인스톨 되어 있는지 확인해 주십시오.

환경 변수 OMNI_ROOT가 설정되어 있지 않다

「Start Naming Service」는 %RTM_ROOT%\bin\rtm-naming.bat에 있는 배치파일 로부터 네임서버(omniNames.exe)를 기동합니다. 이 때, omniNames.exe 를 참조하기 위해서 환경 변수 OMNI_NAMES를 이용하고 있습니다. 통상 인스톨러로 OpenRTM-aist를 인스톨 했을 경우에는 OMNI_ROOT 환경 변수가 자동으로 설정되지만 어떠한 이유로 환경 변수가 무효가 되어 있거나, 수동으로 인스톨 했을 경우 등은 환경 변수가 설정되어 있지 않을 경우가 있습니다.

환경 변수 OMNI_ROOT가 설정되어 있는 것을 확인해 주세요. 환경편소는,
  • 「제어판」>>「시스템」>>「상세 설정」탭>>「환경 변수」
  • 「내 컴퓨터」를 오른쪽 클릭, 「속성」을 선택, 「고급 시스템 설정」>>「고급」탭>>「환경 변수」 등에서 참조·편집할 수 있습니다.

그 외

유저명이 2바이트 문자인 경우 로그 출력하는 폴더를 적절히 설정하지 못하고 omniNames.exe의 기동에 실패하는 경우가 있습니다. 그 경우, 환경 변수 TEMP를 2바이트 문자를 포함하지 않는 장소로 설정하는 것으로 수정하는 경우가 있습니다. 임의의 디렉토리(이하의 케이스에서는 C:\temp)를 작성해, 그곳을 환경 변수 TEMP 가 가리키도록 rtm-naming.bat의 선두 부분에서 이하와 같이 설정합니다.

 set cosnames="omninames"
 set orb="omniORB"
 set port=%1
 rem set OMNIORB_USEHOSTNAME=localhost
 set PATH=%PATH%;%OMNI_ROOT%\bin\x86_win32
 set TEMP=C:\temp

또, 드문 경우이지만 호스트명이나 주소의 설정의 문제로 기동이 잘 되지 않는 경우가 있습니다. 이 경우 이용하고 있는 PC의 IP주소를 omniNames.exe에 가르쳐 주면 잘 되는 경우가 있습니다. 환경 변수 OMNIORB_USEHOSTNAME를 이하와 같이 설정합니다(이하는 자신의 호스트의 IP주소 가 192.168.0.11의 경우인 예).

 set cosnames="omninames"
 set orb="omniORB"
 set port=%1
 set OMNIORB_USEHOSTNAME=192.168.0.11
 set PATH=%PATH%;%OMNI_ROOT%\bin\x86_win32

샘플 컴포넌트의 기동

네임서버 기동 후, 적당한 샘플 컴포넌트를 기동합니다. 방금전 열어 둔 시작 메뉴 폴더의, 「OpenRTM-aist」>>「C++」>> 「components」>>「examples」를 열면, 그림과 같이 몇개의 컴포넌트가 있습니다.

win_start_menu_comps_ko.png
샘플 컴포넌트 폴더

여기에서는, 「ConsoleInComp.exe」 「ConsoleOutComp.exe」를 각각 더블 클릭 해 2개의 컴포넌트를 기동합니다. 기동하면, 아래 그림과 같은 2개 의 콘솔 화면이 열립니다.

win_consoleinout_window_ja.png
ConsoleIn 컴포넌트와 ConsoleOut 컴포넌트

컴포넌트가 기동하지 않는 경우

컴포넌트가 기동하지 않는 경우, 몇개의 원인을 생각할 수 있습니다.

콘솔 화면이 열리자마자 사라진다

rtc.conf의 설정에 문제가 있어, 기동할 수 없는 케이스가 있습니다. 상기 시작 메뉴 폴더의 「rtc.conf for examples」를 열어 설정을 확인해야 합니다. 예를 들면, corba.endpoint/corba.endpoints 등의 설정이 현재 실행중의 PC의 호스트 주소와 미스매치를 일으키고 있는 경우 등은 CORBA가 이상종료합니다.

이하와 같은 최저한의 rtc.conf로 설정 다시 하고 시험해 보십시오.

 corba.nameservers: localhost

런타임 에러가 나와 종료된다

라이브러리등이 적절히 인스톨 되어 있지 않음·설정되어 있지 않은 등의 원인으로 라인 타임 에러가 발생하는 경우가 있습니다.-재기동해 본다- OpenRTM-aist를 모두 언인스톨해 재차 인스톨 해 보는 등을 실시하는 것으로 개선되는 경우도 있습니다.

RTSystemEditor(RTSE)의 기동

시작 메뉴 폴더로부터, RTSystemEditor를 기동합니다. RTSystemEditor는 「OpenRTM-aist」>>「C++」>>「tools」>>「RT System Editor」에 있습니다.

rtse_start_ko.png
RTSystemEditor의 기동

네임서버에의 접속

RTSE가 기동하면 우선 네임서버에 접속합니다. 왼쪽 페인의 상부에 있는, rtse_connect_ns_icon.png의 아이콘을 클릭해 접속 다이얼로그를 엽니다. 접속 다이얼로그의 호스트명의 부분에 방금전 기동한 네임서버의 주소(이 경우 동일 호스트이므로 localhost를 지정합니다. 포트 번호도 지정할 수 있습니다만, 통상 디폴트의 2809번을 사용하는 경우는 아무것도 지정하지 않습니다.

rtse_connect_dialog_ko.png
네임서버에의 접속 다이얼로그

접속하면, 네임서비스뷰에 localhost가 나타납니다. 트리 표시의 [+] 를 클릭하면, 방금전 기동한 2개의 컴포넌트가 등록되어 있는 것을 알수 있습니다.

rtse_ns_connected_ko.png
네임서버에 등록된 컴포넌트

에디터에의 배치

시스템을 편집하는 에디터를 엽니다. 상부의 에디터를 여는 버튼 rtse_open_editor_icon_ja.png 를 클릭하면, 윈도우의 중앙에 에디터가 열립니다.

좌측의 네임서비스뷰에 rtse_rtc_icon.png 의 아이콘으로 표시 되고 있는 컴포넌트(2개)를 중앙의 에디터에 드래그 앤드 드롭 합니다.

rtse_dnd_rtcs_ko.png
컴포넌트를 에디터에 배치

접속과 액티브화

ConsoleIn0 컴포넌트의 우측에는 데이터가 출력되는 OutPort rtse_outport_icon.png , ConsoleOut0 컴포넌트의 좌측에는 데이터가 입력되는 InPort rtse_inport_icon.png 가 각각 붙어 있습니다.

이것들의 InPort/OutPort(데이터 포트라고 부른다)를 접속합니다. OutPort로부터 InPort(또는 InPort 로부터 OutPort)에 드래그 앤 드롭 하면, 그림과 같은 다이얼로그가 나타나고 디폴트 설정인 상태로 OK 버튼을 누릅니다.

rtse_portconnect_ko.png
데이터 포트의 접속

rtse_portconnect_dialog_ko.png
데이터 포트 접속 다이얼로그

2개의 컴포넌트의 사이에 접속선이 나타납니다. 다음에, 에디터 상부 메뉴의 All Activate 버튼 rtse_all_actevate_icon.png 를 클릭해, 컴포넌트를 액티브화니다. 액티브 되면, 컴포넌트가 녹색으로 변화합니다.

rtse_actevated_all_ko.png
액티브 된 컴포넌트

컴포넌트가 액티브 되면 ConsoleIn 컴포넌트측에서는

 Please input number: 

라는 prompt 표시로 바뀌기 때문에, 적당한 수치 (short int 의 범위내: 32767 이하)를 입력해 Enter 키를 누릅니다. ConsoleOut 측에서는, 입력 한 수치가 표시되어 ConsoleIn 컴포넌트로부터 ConsoleOut 컴포넌트에 데이터가 전송된 것을 알 수 있습니다.

이상으로, 컴포넌트의 기본 동작의 확인은 종료입니다.

다른 샘플

인스톨러에는, 이 밖에도 몇개의 샘플 컴포넌트가 부속되어 있습니다. 이러한 컴포넌트도 이와 같이 기동해, RTSystemEditor로 포트끼리를 접속해, 액티브하는 것으로 테스트 할 수 있습니다.

부속되어 있는 컴포넌트의 리스트와 간단한 설명을 이하에 나타냅니다.

ConsoleInComp.exe 콘솔로부터 입력된 수치를 OutPort로부터 출력한다. ConsoleOutComp.exe와 연결해 사용
ConsoleOutComp.exe InPort에 입력된 수치를 콘솔에 표시하는 컴포넌트.ConsoleInComp.exe와 연결해 사용
SequenceInComp.exe 랜덤인 수치(Short,Long,Float,Double와 그 순서형)을 출력하는 컴포넌트.SequenceOutComp.exe와 연결해 사용
SequenceOutComp.exe InPort에 입력되는 수치(Short,Long,Float,Double와 그 순서형)을 표시.SequenceInComp.exe와 연결해 사용
MyServiceProviderComp.exe MyService형의 서비스를 제공하는 컴포넌트.MyServiceConsumerComp.exe와 연결해 사용
MyServiceConsumerComp.exe MyService형의 서비스를 제공하는 컴포넌트.MyServiceProviderComp.exe와 연결해 사용
ConfigSampleComp.exe Configuration의 샘플.RTSystemEdiotr에서 Configuration을 변경해 Configuration의 변경에 대해 이해하기 위한 샘플.
USBCameraAcquireComp.exe USB 카메라로부터 화상을 취득해 OutPort로부터 출력하는 컴포넌트.USBCameraMonitor.exe와 연결해 사용
USBCameraMonitor.exe InPort에 입력되는 화상을 화면에 표시하는 컴포넌트.USBCameraAquire.exe와 연결해 사용