여기에서는 OpenRTM-aist(Python)의 Windows에의 인스톨 방법을 설명합니다. ※이후의 설명은 편의상 OpenRTM-aist-0.4.0에 대해서 쓰여져 있습니다. OpenRTM-aist-0.4.x에 대해서도 같은 순서로 인스톨 할 수 있습니다.
여기에서는 OpenRTM-aist(Python)의 UNIX에의 인스톨 방법을 설명합니다. ※이후의 설명은 편의상 OpenRTM-aist-0.4.0에 대해 쓰여져 있습니다. OpenRTM-aist-0.4.x에 대해서도 같은 순서로 인스톨 할 수 있습니다.
VineLinux3.2, VineLinux4.0용의 rpm 패키지와 Ubuntu7.10용의 deb 패키지가 준비되어 있습니다.
rpm 패키지나 deb 패키지의 작성을 실시한 환경에서는, 이하에 표에 있는 버전의 Python, omniORB, omniORBpy를 사용하고 있습니다.
| Vine 3.2 | Vine 4.0 | Ubuntu 7.10 | |
| omniORB | 4.0.5* | 4.0.7 | 4.0.7 |
| omniORBpy | 2.3-1* | 2.7-1 | 2.7 |
| Python | 2.3.4 | 2.4.4 | 2.5.1 |
OpenRTM-aist-Python 의 인스톨에 대비해 사전에 이러한 패키지를 인스톨 해 둡니다.
참고:
rpm 패키지, deb 패키지를 여기로부터 다운로드합니다. 인스톨을 하는 경우, 각각 이하와 같이 해주십시오.
[Vine의 경우] > su # rpm -ivh OpenRTM-aist-Python-0.4.1-RC2.vl32.i386.rpm # rpm -ivh OpenRTM-aist-Python-example-0.4.1-RC2.vl32.i386.rpm 또는, # rpm -ivh OpenRTM-aist-Python-0.4.1-RC2.vl40.i386.rpm # rpm -ivh OpenRTM-aist-Python-example-0.4.1-RC2.vl40.i386.rpm [Ubuntu7.10의 경우] > sudo dpkg -i openrtm-aist-python_0.4.1-RC2_i386_Ubuntu710.deb > sudo dpkg -i openrtm-aist-python-example_0.4.1-RC2_i386_Ubuntu710.deb
환경 변수 PYTHONPATH가 설정되어 있는지를 확인해 주십시오.
PYTHONPATH가 설정되어 있지 않은 경우, 이하와 같이 환경 변수의 설정을 해주십시오.
[bash] > vi ~/.bashrc export PYTHONPATH=/usr/lib/python2.x/site-packages > source ~/.bashrc [csh] > vi ~/.cshrc setenv PYTHONPATH /usr/lib/python2.x/site-packages > source ~/.cshrc
※ python2.x의 2.x는 Python 버전(2.3, 2.4, 2.5)입니다. 또, "/usr/lib/python2.x"는 Python이 인스톨 되고 있는 경로를 지정해 주십시오.
◆계속해서 동작 확인으로 진행해 주십시오.
OpenRTM-aist-Python-0.4.1은 아래와 같은 OS 및 Linux 배포버전에서 동작 하는 것이 확인되고 있습니다.
OpenRTM-aist-Python-0.4.1의 인스톨에는 아래와 같은 패키지가 필요합니다.
참고:
우선 소스 코드 OpenRTM-aist-Python-0.4.1-RC2.tar.gz를 여기로부터 다운로드해, 적당한 디렉토리에 전개합니다.
> tar xvzf OpenRTM-aist-Python-0.4.1-RC2.tar.gz > cd OpenRTM-aist-Python-0.4.1
OpenRTM-aist는 패키지의 빌드에 Python의 Distutils 모듈을 사용하고 있습니다. 이하의 방법으로 빌드해 주십시오.
> python setup.py build
빌드가 정상적으로 종료하면 OpenRTM 모듈, 유틸리티 커멘드군을 인스톨 합니다.
> su # python setup.py install
환경 변수 PYTHONPATH가 설정되어 있는지 확인해 주십시오.
PYTHONPATH가 설정되어 있지 않은 경우, 이하와 같이 하여 환경 변수를 설정해 주십시오.
[bash] > vi ~/.bashrc export PYTHONPATH=/usr/lib/python2.x/site-packages > source ~/.bashrc [csh] > vi ~/.cshrc setenv PYTHONPATH /usr/lib/python2.x/site-packages > source ~/.cshrc
※ python 2.x의 2.x는 Python의 버전(2.3, 2.4, 2.5)입니다. 또, "/usr/lib/python2.x"의 부분은 Python이 인스톨 되고 있는 패스를 지정해 주십시오.
◆계속해서 동작 확인으로 진행해 주십시오.
OpenRTM-aist-Python-0.4.1은 아래와 같은 OS에서 동작하는 것이 확인되고 있습니다.
OpenRTM-aist-0.4.1의 인스톨에는 아래와 같은 패키지가 필요합니다.
작업을 실시하기 전에 유저 환경 변수(이하, 환경 변수라고 기술합니다.) PYTHONPATH의 설정을 확인해 주십시오. PYTHONPATH가 설정되어 있지 않은 경우, 이하와 같이 하여 환경 변수를 설정해 주십시오.
1. "내 컴퓨터"를 마우스 오른쪽 버튼 클릭
2. [상세 설정]탭을 클릭
3. 환경 변수 다이얼로그의 "환경 변수(N)"를 클릭
4. "유저 환경 변수(U)"항목의 "신규(N)"를 클릭
5. "변수명(N):"에 "PYTHONPATH"를 "변수치(V)"에 "C:\Python24\Lib\site-packages"를 각각 입력해 "OK"를 클릭
※ "변수치(V)"에는 자신의 환경에서의 Python의 site-packages 폴더의 패스를 지정해 주십시오. PYTHONPATH에는 복수의 패스 설정은 하지 않고 site-packages(C:\python24\Lib\site-packages)까지의 패스만의 설정으로 해주십시오.
6. 환경 변수 다이얼로그의 "OK"를 클릭
이상은 Python2.4를 사용하는 경우의 예입니다. Python2.5를 사용하는 경우는 위에서 "Python24"를 "Python25"로 변경하여 설정해 주십시오.이 시점에서, 환경 변수 Path의 설정도 갱신합니다. 순서는 위의 「PYTHONPATH의 설정」과 같습니다만, 순서 4.와 5.에서 조금 다릅니다.
4. "시스템 환경 변수(S)" *로부터 변수 Path를 찾아, 그것을 더블 클릭 합니다. * 이것은 유저 환경 변수에서도 괜찮습니다. 그 경우는, 「신규」로의 작성이 될지도 모릅니다.
5. "변수치(V)"로 설정되어 있는 문자열의 마지막에 ";C:\Python24"를 추가 기입하고 "OK"를 클릭
이상은, Python2.4를 사용하는 경우의 예입니다. Python2.5를 사용하는 경우는 위에서 "Python24"를 "Python25"로 변경하여 설정해 주십시오.
WindowsXp용의 패키지 인스톨러가 준비되어 있습니다. 소스 코드로부터의 인스톨이 필요한 경우는 본 페이지 마지막 장에 있는 Windows 시스템으로의 빌드를 참조해 주십시오.
인스톨러를 인터넷상에서 열거나, 데스크탑 등에 저장하여 더블 클릭 해 실행합니다. 그리고 인스톨러에 따라서 인스톨을 해주십시오.
◆ Python → omniORBpy → OpenRTM-aist-Python의 순서로 인스톨 하여 주십시오.
◆ 패키지 작성을 실시한 환경에서 사용된 Python, omniORBpy의 버전을 이하에 일람 합니다.
| OpenRTM-aist-Python24-0.4.1 | OpenRTM-aist-Python25-0.4.1 | |
| Python | Python-2.4.4 | Python-2.5.1 인스톨러 |
| omniORBpy | omniORBpy-2.7 | omniORBpy-3.1 |
| OpenRTM-aist | OpenRTM-aist-0.4.1-Python2.4-RC2 | OpenRTM-aist-0.4.1-Python2.5-RC2 |
◆ WINDOWS\system32 폴더를 검색해, msvcp71.dll와 msvcr71.dll가 있는 것을 확인해 주십시오. 이것들이 없는 경우는 여기 에서 다운로드 해주십시오.
OpenRTM-aist-Python-0.4.1은 아래와 같은 OS에서 동작하는 것이 확인되고 있습니다.
OpenRTM-aist-0.4.1의 인스톨에는 다음에 표시되는 패키지의 조합이 필요합니다.
이것들 패키지의 인스톨러가 준비되어 있습니다. 자세한 것은 여기를 참조해 주십시오.
여기 를 참조해 주십시오.
소스 코드 OpenRTM-aist-Python24-0.4.1-RC2.zip(Python2.4를 사용할 경우) 혹은 OpenRTM-aist-Python25-0.4.1-RC2.zip(Python2.5를 사용할 경우)를 여기로부터 다운로드해 적당한 폴더에 전개합니다.
OpenRTM-aist는 패키지의 빌드에 Python의 Distutils 모듈을 사용하고 있습니다. 커멘드 prompt에서 이하와 같이 입력해 빌드하여 주십시오.
> cd <OpenRTM-aist-Python전개 폴더> > python setup.py build
빌드가 정상적으로 종료하면 OpenRTM 모듈, 유틸리티 커멘드군을 인스톨 합니다. 커멘드 prompt에서 이하와 같이 입력해 인스톨을 해 주십시오.
> python setup.py install
◆ WINDOWS\system32 폴더를 검색하여 msvcp71.dll와 msvcr71.dll가 있는 것을 확인해 주십시오. 이것들이 없는 경우, 여기 로부터 다운로드해 주십시오.
인스톨이 정상적으로 종료되면, 부속의 샘플로 동작 테스트를 합니다. 여기에서는 샘플 컴포넌트 세트 SimpleIO를 사용하고 샘플 컴포넌트와 OpenRTM-aist-Python의 동작을 확인합니다.
샘플 컴포넌트 세트 SimpleIO:
RT컴포넌트 ConsoleIn.py, ConsoleOut.py와 이것들의 통신을 접속하는 Connector.py로 구성되는 샘플 세트입니다. 이 세트는 ConsoleIn.py에 준 수치를 ConsoleOut.py에 표시하는 「가장 Simple한 I/O 데몬스트레이션」을 목적으로 한 샘플입니다. ConsoleInComp로부터 ConsoleOutComp에 접속해, 그 통신을 개시시키는 것이 ConnectorComp의 역할입니다.
> mkdir RTCexamples > cd RTCexamples > cp -r /usr/share/OpenRTM-aist/examples/python ./ > cd python/SimpleIO > python run.py
> cd OpenRTM-aist-Python-0.4.1/OpenRTM/examples/SimpleIO/ > python run.py
실행하면 신규의 터미널이 2개 열립니다. "Please input number:"라고 표시되고 있는 터미널에 숫자를 입력합니다. 입력하는 숫자는 long int에 들어가는 범위의 수치를 입력해 주십시오. 숫자를 입력하면, 다른 한쪽의 터미널에 입력한 것과 같은 숫자가 나타납니다. 여기까지 할 수 있으면, OpenRTM-aist-Python가 정상적으로 인스톨 되고 있는 것을 확인할 수 있습니다.
우선, rtc-template를 사용하기 위한 준비를 합니다.
$PYTHONPATH/OpenRTM/rtc-template/rtc-template.py에 실행권한을 주어/usr/bin등의 패스가 참조하는 곳에 rtc-template.py에의 심볼릭 링크를 연결합니다.
> su # cd $PYTHONPATH/OpenRTM/rtc-template # chmod +x rtc-template.py # ln -s $PYTHONPATH/OpenRTM/rtc-template/rtc-template.py /usr/bin/rtc-template
다음으로 컴포넌트의 템플릿 제네레이터를 사용하고, 간단한 컴포넌트를 작성하는 테스트를 실시합니다. 템플릿 제네레이터 (rtc-template)를 사용합니다. 컴포넌트를 작성하는 디렉토리(임의의 디렉토리)를 작성하고 그 디렉토리에서 컴포넌트를 작성해 보겠습니다.
> cd > mkdir SampleComponent > cd SampleComponent
우선은 help를 보겠습니다.
> rtc-template --help
Usage: rtc-template [OPTIONS]
Options:
[-h] Print short help.
[--help] Print details help.
[--backend[=backend] or -b] Specify template code generator.
[--module-name[=name]] Your module name.
[--module-desc[=description]] Module description.
[--module-version[=version]] Module version.
[--module-vendor[=vendor]] Module vendor.
[--module-category[=category]] Module category.
[--module-comp-type[=component_type]] Component type.
[--module-act-type[=activity_type]] Component's activity type.
[--module-max-inst[=max_instance]] Number of maximum instance.
[--module-lang[=language]] Language.
[--config[=ParamName:Type:Default]] Configuration variable.
[--inport[=PortName:Type]] InPort's name and type.
[--outport[=PortName:Type]] OutPort's name and type
[--service[=PortName:Name:Type]] Service Provider Port
[--service-idl[=IDL_file]] IDL file name for service
[--consumer[=PortName:Name:Type]] Service Consumer Port
[--consumer-idl[=IDL_file]] IDL file name for consumer
[--idl-include=[path]] Search path for IDL compile
:
중략
:
Example:
rtc-template -bcxx --module-name=Sample --module-desc='Sample component' --module-version=0.1 --module-vendor=AIST --module-category=Generic --module-comp-type=DataFlowComponent --module-act-type=SPORADIC --module-max-inst=10 --config=int_param0:int:0 --config=int_param1:int:1 --config=double_param0:double:3.14 --config=double_param1:double:9.99 --config="str_param0:std::string:hoge" --config="str_param1:std::string:foo" --inport=Ref:TimedFloat --inport=Sens:TimedFloat --outport=Ctrl:TimedDouble --outport=Monitor:TimedShort --service=MySvcPort:myservice0:MyService --consumer=YourSvcPort:yourservice0:YourService --service-idl=MyService.idl --consumer-idl=YourService.idlrtc-template에 대해서 작성하고 싶은 컴포넌트의 설정을 인수로서 건네주면, 컴포넌트의 양식을 작성합니다. 여기에서는 help의 표시의 마지막 부분에 표시된 Example:이하를 복사하여 테스트해 보겠습니다.
Example의 예에서는 서비스 프로바이더로서 MyService, 서비스 컨슈머로서 YourService를 이용하는 옵션이 주어지고 있어 그것을 위한 IDL 파일을 커런트 디렉토리에 둘 필요가 있습니다. 여기에서는 간단한 IDL 파일을 이하와 같이 작성해 둡니다.
interface MyService
{
void echo();
}; interface YourService
{
void echo();
};이러한 파일을 작성했다면, "Example"의 예를 복사&붙여넣기 하는 등 커멘드로서 입력합니다.
※ --help로 표시되는 샘플은 C++코드 생성용이므로 Python용의 코드를 생성하는 경우는,
"-bcxx"를"-bpython"에 고쳐 써 주십시오.
> rtc-template -bpython --module-name=Sample --module-desc='Sample component' --module-version=0.1 --module-vendor=AIST --module-category=Generic --module-comp-type=DataFlowComponent --module-act-type=SPORADIC --module-max-inst=10 --config=int_param0:int:0 --config=int_param1:int:1 --config=double_param0:double:3.14 --config=double_param1:double:9.99 --config="str_param0:std::string:hoge" --config="str_param1:std::string:foo" --inport=Ref:TimedFloat --inport=Sens:TimedFloat --outport=Ctrl:TimedDouble --outport=Monitor:TimedShort --service=MySvcPort:myservice0:MyService --consumer=YourSvcPort:yourservice0:YourService --service-idl=MyService.idl --consumer-idl=YourService.idl File "MyService_idl_example.py" was generated. File "Sample.py" was generated. File "README.Sample" was generated. > ls MyService.idl README.Sample YourService_idl.py MyService_idl.py Sample.py _GlobalIDL/ MyService_idl_example.py YourService.idl _GlobalIDL__POA/
이와 같이, 컴포넌트의 Python 코드, 서비스의 구현 코드가 작성됩니다. 여기서,
이것으로, 실행 형식의 컴포넌트(Sample.py)가 작성되었습니다. 여기서, 실행 형식의 컴포넌트를 실행해 보겠습니다. 컴포넌트의 실행에는 컨피그레이션 파일(통상은 rtc.conf 라는 이름)이 필요합니다. 여기에서는 간이판을 커런트 디렉토리에 작성합니다.
corba.nameservers: 네임서버명:포트 번호 naming.formats: %n.rtc logger.log_level: PARANOID
여기서, 임시의 호스트명:localhost 포트 번호는 디폴트로 합니다.
corba.nameservers: localhost naming.formats: %n.rtc logger.log_level: PARANOID
다음은 CORBA의 네이밍 서비스를 기동합니다. CORBA의 네이밍 서비스는,
python $PYTHONPATH/OpenRTM/rtm-naming/rtm-naming.py [포트 번호]
로 기동할 수 있기 때문에, 방금전 rtc.conf로 지정한 포트 번호를 지정해 기동해 주십시오. 아무것도 지정하지 않으면 디폴트 포트를 사용합니다.
> python $PYTHONPATH/OpenRTM/rtm-naming/rtm-naming.py Starting omniORB omniNames: localhost : 2809 Starting omniNames for the first time. Wrote initial log file. Read log file successfully. Root context is IOR:010000002b00000049444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696e67436f6e746578744578743a312e300000010000000000000060000000010102000e0000003135302e32392e39362e31363700f90a0b0000004e616d6553657276696365000200000000000000080000000100000000545441010000001c00000001000000010001000100000001000105090101000100000009010100 Checkpointing Phase 1: Prepare. Checkpointing Phase 2: Commit. Checkpointing completed.
다음에, 컴포넌트를 기동합니다.
> python Sample.py -f rtc.conf 혹은 > python Sample.py (디폴트로 커런트 디렉토리의 rtc.conf를 읽어들인다)
구체적인 컴포넌트의 작성의 방법은, 메뉴얼을 참조해 주십시오.
Python버전 OpenRTM를 사용할 때, 환경 변수 PYTHONPATH가 올바르게 설정되어 있는지 확인을 해야합니다.
올바르게 설정되어 있지 않은 경우, 컴포넌트를 실행할 수 없는 가능성이 있습니다.
※ rtc-template에서는 PYTHONPATH의 첫번째의 요소를 참조하고 있기 때문에, PYTHONPATH에는 site-packages (/usr/lib/python2.x/site-packages)까지의 패스를 맨처음에 설정해 주십시오.
다음과 같이--prefix옵션을 이용해 인스톨 디렉토리를 지정했을 경우, PYTHONPATH에는 전개 후의 디렉토리를 지정할 필요가 있습니다.
# python setup.py install --prefix=/home/openrtm
[C++버전] --config="vector_param0:std::vector<double>:0.0,1.0,2.0,3.0,4.0"
[Python버전] --config="vector_param0:double:0.0,1.0,2.0,3.0,4.0"
MyService.idl라는 --service-idl로 지정한 IDL 파일이 있는 경우, rtc-template 실행 후에 MyService_idl_example.py라고 하는 파일이 생성됩니다.
이 파일은 IDL로 정의한 오퍼레이션을 구현하기 위한 파일이므로, 이 안에서 오퍼레이션의 구현을 실시해 주십시오.
부속의 샘플 RT컴포넌트를 이용하여 동작 확인을 실시합니다. "내 컴퓨터"에서 SimpleIO ※1 폴더를 표시해, 그 중의 run.py 를 더블 클릭 합니다. ※2 처음에 터미널 화면이 3개 열리고, 몇초후에 또 하나 열립니다. 4번째의 터미널 화면이 열릴 때까지, 반드시 기다려 주십시오. "Please input number:"라고 표시되고 있는 윈도우에 숫자를 입력합니다. ※3 입력하는 숫자는 long int 에 들어가는 범위의 값을 입력해 주십시오. 그러면 다른 한쪽의 윈도우에서 입력한 수치와 같은 수치가 나타납니다. 여기까지 할 수 있으면 OpenRTM-aist-Python이 정상적으로 인스톨 되고 있는 것을 알 수 있습니다.
인스톨러를 사용했을 경우는 통상 C:\Program Files\OpenRTM-aist\0.4\examples\Python\SimpleIO에, 소스로부터 빌드 했을 경우 <소스의 전개 폴더>\OpenRTM\examples\SimpleIO에 각각 인스톨 되고 있습니다.
다음으로 컴포넌트의 템플릿 제네레이터를 사용하여 간단한 컴포넌트를 작성하는 테스트를 실시합니다. 템플릿 제네레이터 (rtc-template.py)를 사용합니다. 또한 여기에서는 편의상 Python2.4를 사용하는 환경에서의 예를 들고 있습니다. Python2.5 를 사용하는 환경에서는 Python24라고 부분을 Python25로 수정하여 사용해 주십시오.
> cd C:\Documents and Settings\<user name>\SampleComponent
> C:\Python24\Lib\site-packages\OpenRTM\rtc-template\rtc-template.py --help
Usage: rtc-template [OPTIONS]
Options:
[-h] Print short help.
[--help] Print details help.
[--backend[=backend] or -b] Specify template code generator.
[--module-name[=name]] Your module name.
[--module-desc[=description]] Module description.
[--module-version[=version]] Module version.
[--module-vendor[=vendor]] Module vendor.
[--module-category[=category]] Module category.
[--module-comp-type[=component_type]] Component type.
[--module-act-type[=activity_type]] Component's activity type.
[--module-max-inst[=max_instance]] Number of maximum instance.
[--module-lang[=language]] Language.
[--config[=ParamName:Type:Default]] Configuration variable.
[--inport[=PortName:Type]] InPort's name and type.
[--outport[=PortName:Type]] OutPort's name and type
[--service[=PortName:Name:Type]] Service Provider Port
[--service-idl[=IDL_file]] IDL file name for service
[--consumer[=PortName:Name:Type]] Service Consumer Port
[--consumer-idl[=IDL_file]] IDL file name for consumer
[--idl-include=[path]] Search path for IDL compile
:
중략
:
Example:
rtc-template -bcxx --module-name=Sample --module-desc='Sample component' --module-version=0.1 --module-vendor=AIST --module-category=Generic --module-comp-type=DataFlowComponent --module-act-type=SPORADIC --module-max-inst=10 --config=int_param0:int:0 --config=int_param1:int:1 --config=double_param0:double:3.14 --config=double_param1:double:9.99 --config="str_param0:std::string:hoge" --config="str_param1:std::string:foo" --inport=Ref:TimedFloat --inport=Sens:TimedFloat --outport=Ctrl:TimedDouble --outport=Monitor:TimedShort --service=MySvcPort:myservice0:MyService --consumer=YourSvcPort:yourservice0:YourService --service-idl=MyService.idl --consumer-idl=YourService.idl interface MyService
{
void echo();
}; interface YourService
{
void echo();
}; > python C:\Python24\Lib\site-packages\OpenRTM\rtc-template\rtc-template.py -bpython^
--module-name=Sample --module-desc="Sample component"^
--module-version=0.1 --module-vendor=AIST --module-category=Generic^
--module-comp-type=DataFlowComponent --module-act-type=SPORADIC^
--module-max-inst=10^
--config=int_param0:int:0 --config=int_param1:int:1^
--config=double_param0:double:3.14 --config=double_param1:double:9.99^
--config="str_param0:std::string:hoge"^
--config="str_param1:std::string:foo"^
--inport=Ref:TimedFloat --inport=Sens:TimedFloat^
--outport=Ctrl:TimedDouble --outport=Monitor:TimedShort^
--service=MySvcPort:myservice0:MyService^
--consumer=YourSvcPort:yourservice0:YourService^
--service-idl=MyService.idl --consumer-idl=YourService.idl
File "MyService_idl_example.py" was generated.
File "Sample.py" was generated.
File "README.Sample" was generated.
> dir
2008/06/25 12:28 <DIR> .
2008/06/25 12:28 <DIR> ..
2008/06/25 12:27 45 MyService.idl
2008/06/25 12:28 2,226 MyService_idl.py
2008/06/25 12:28 1,341 MyService_idl_example.py
2008/06/25 12:28 3,557 README.Sample
2008/06/25 12:28 4,615 Sample.py
2008/06/25 12:27 47 YourService.idl
2008/06/25 12:28 2,312 YourService_idl.py
2008/06/25 12:28 <DIR> _GlobalIDL
2008/06/25 12:28 <DIR> _GlobalIDL__POA rtc-template.py를 실행할 때에 매회 커멘드 입력하는 것은 불편하므로, 이하와 같은 배치파일을 작성해 사용하는 것을 추천합니다.
python C:\Python24\Lib\site-packages\OpenRTM\rtc-template\rtc-template.py -bpython^
--module-name=Sample --module-desc="Sample component"^
--module-version=0.1 --module-vendor=AIST --module-category=Generic^
--module-comp-type=DataFlowComponent --module-act-type=SPORADIC^
--module-max-inst=10^
--config=int_param0:int:0 --config=int_param1:int:1^
--config=double_param0:double:3.14 --config=double_param1:double:9.99^
--config="str_param0:std::string:hoge"^
--config="str_param1:std::string:foo"^
--inport=Ref:TimedFloat --inport=Sens:TimedFloat^
--outport=Ctrl:TimedDouble --outport=Monitor:TimedShort^
--service=MySvcPort:myservice0:MyService^
--consumer=YourSvcPort:yourservice0:YourService^
--service-idl=MyService.idl --consumer-idl=YourService.idl> python "C:\Program Files\OpenRTM-aist\0.4\bin\rtm-naming.py" [포트 번호] 또는, C:\Program Files\OpenRTM-aist\0.4\bin로 커런트를 이동하고 나서 >python rtm-naming.py을 하던지 또는, C:\Program Files\OpenRTM-aist\0.4\bin\에 있는 rtm-naming.py를 더블 클릭
> python "C:\Program Files\OpenRTM-aist\0.4\bin\rtm-naming.py" Starting omniORB omniNames: localhost : 2809 Starting omniNames for the first time. Wrote initial log file. Read log file successfully. Root context is IOR:010000002b00000049444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696e67436f6e746578744578743a312e300000010000000000000060000000010102000e0000003135302e32392e39362e31363700f90a0b0000004e616d6553657276696365000200000000000000080000000100000000545441010000001c00000001000000010001000100000001000105090101000100000009010100 Checkpointing Phase 1: Prepare. Checkpointing Phase 2: Commit. Checkpointing completed.
corba.nameservers: 네임서버명:포트 번호 naming.formats: %n.rtc logger.log_level: PARANOID
corba.nameservers: localhost naming.formats: %n.rtc logger.log_level: PARANOID
> python Sample.py -f rtc.conf 혹은 > python Sample.py (디폴트로 커런트 디렉토리의 rtc.conf를 읽어들인다) 혹은 Sample.py를 더블 클릭
rpm http://www.openrtm.org/pub/Linux/Vine/apt 3.2/$(ARCH) main
> su # apt-get update # apt-get install python python-devel # apt-get install omniORB omniORB-devel omniORB-servers omniORB-doc # apt-get install omniORBpy omniORBpy-devel omniORBpy-standard # apt-get install tkinter
python python-devel
omniORB omniORB-devel omniORB-servers omniORB-doc omniORBpy omniORBpy-devel omniORBpy-standard
tkinter
rpm http://www.openrtm.org/pub/Linux/Vine/apt 4.0/$(ARCH) main
> su # apt-get update # apt-get install python python-devel # apt-get install omniORB omniORB-devel omniORB-servers omniORB-doc # apt-get install omniORBpy omniORBpy-devel omniORBpy-standard # apt-get install tkinter
python python-devel
omniORB omniORB-devel omniORB-servers omniORB-doc omniORBpy omniORBpy-devel omniORBpy-standard
tkinter
> sudo aptitude update > sudo aptitude install python > sudo aptitude install omniorb4 omniorb4-nameserver omniorb4-doc omniidl4 > sudo aptitude install omniidl4-python python-omniorb2 python-omniorb2-omg > sudo aptitude install python-tk
python
omniorb4 omniorb4-nameserver omniorb4-doc python-omniorb2 omniidl4-python python-omniorb2-omg
python-tk
rtc-template에서는 PYTHONPATH의 첫번째의 요소를 참조하고 있기 때문에, PYTHONPATH에는 site-packages(C:\python2.4\Lib\site-packages)까지의 패스만을 설정해 주십시오.
[C++버전] --config="vector_param0:std::vector<double>:0.0,1.0,2.0,3.0,4.0"
↓ ↓ std::vector<double> 를 double로 ↓ ↓
[Python버전] --config="vector_param0:double:0.0,1.0,2.0,3.0,4.0"