OpenRTM-aist에는 몇개의 샘플 컴포넌트가 부속되어 있어, 간단하게 테스트할 수 있습니다.(USBCameraMonitor/USBCameraAcquire 컴포넌트에는 OpenCV1.0 이상이 필요합니다.) 샘플 컴포넌트의 소스 코드도 포함되어 있기 때문에 개발에 도움이 될 것입니다.
여기에서는 OpenRTM-aist에 부속의 샘플에 대해 설명합니다.이 샘플은 OpenRTM-aist의 C++버전, Python버전, Java버전에 모두 들어 있습니다.
Windows의 경우 | Linux의 경우 | |||
ConsoleIn 컴포넌트 | ConsoleOut 컴포넌트 | ConsoleIn 컴포넌트 | ConsoleOut 컴포넌트 | |
C++버전 | ConsoleInComp.exe | ConsoleOutComp.exe | ConsoleInComp | ConsoleOutComp |
Python바잔 | ConsoleIn.py | ConsoleOut.py | ConsoleIn.py | ConsoleOut.py |
Java버전 | ConsoleIn.bat | ConsoleOut.bat | ConsoleIn.sh | ConsoleOut.sh |
Windows의 경우 | Linux의 경우 | |
C++버전 | Connector.exe | Connector |
Python버전 | Connector.py | Connector.py |
Java버전 | Connector.bat | Connector.sh |
Windows의 경우 | Linux의 경우 | |||
ConsoleIn 컴포넌트 | ConsoleOut 컴포넌트 | ConsoleIn 컴포넌트 | ConsoleOut 컴포넌트 | |
C++버전 | ConsoleInComp.exe | ConsoleOutComp.exe | ConsoleInComp | ConsoleOutComp |
Python버전 | ConsoleIn.py | ConsoleOut.py | ConsoleIn.py | ConsoleOut.py |
Java버전 | ConsoleIn.bat | ConsoleOut.bat | ConsoleIn.sh | ConsoleOut.sh |
InPort, OutPort의 사용 방법을 나타낸 샘플입니다. SeqIn 컴포넌트와 SeqOut 컴포넌트를 기동하면 GUI 화면이 표시됩니다. SeqIn, SeqOut 모두 아래와 같은 형태의 DataPort를 유지하고 있습니다. TimedShort, TimedLong, TimedFLoat, TimedDouble, TimedShortSeq, TimedLongSeq, TimedFLoatSeq, TimedDoubleSeq 각 Port의 출력은 랜덤으로 결정되고 각 Port간을 접속하면 SeqOut측의 출력치, SeqIn측의 입력치가 각각의 GUI 화면에 표시됩니다.(Port간의 접속은 RTSystemEditor를 이용하십시오.)
Windows의 경우 | Linux의 경우 | |||
SeqIn 컴포넌트 | SeqOut 컴포넌트 | SeqIn 컴포넌트 | SeqOut 컴포넌트 | |
C++판 | SeqInComp.exe | SeqOutComp.exe | SeqInComp | SeqOutComp |
Python판 | SeqIn.py | SeqOut.py | SeqIn.py | SeqOut.py |
Java판 | SeqIn.bat | SeqOut.bat | SeqIn.sh | SeqOut.sh |
ServicePort의 사용 방법을 나타낸 샘플입니다. 이하에 나타내는 IDL를 사용해 서비스를 정의하고 있습니다.
typedef sequence<string> EchoList; typedef sequence<float> ValueList; interface MyService { string echo(in string msg); EchoList get_echo_history(); void set_value(in float value); float get_value(); ValueList get_value_history(); };
MyServiceConsumer 컴포넌트와 MyServiceProvider 컴포넌트를 기동합니다. Consumer측 컴포넌트를 Activate 하면, 콘솔에 이용 가능한 커멘드 리스트가 표시되기 때문에 각 커멘드를 시험해 주십시오.(Port간의 접속에는 RTSystemEditor를 이용하십시오.)
Windows의 경우 | Linux의 경우 | |||
MyServiceConsumer 컴포넌트 | MyServiceProvider 컴포넌트 | MyServiceConsumer 컴포넌트 | MyServiceProvider 컴포넌트 | |
C++버전 | MyServiceConsumerComp.exe | MyServiceProviderComp.exe | MyServiceConsumerComp | MyServiceProviderComp |
Python버전 | MyServiceConsumer.py | MyServiceProvider.py | MyServiceConsumer.py | MyServiceProvider.py |
Java버전 | MyServiceConsumer.bat | MyServiceProvider.bat | MyServiceConsumer.sh | MyServiceProvider.sh |
RT컴포넌트의 컨피그레이션 세트의 사용 방법을 나타낸 샘플입니다. ConfigSample 컴포넌트를 기동합니다. 컴포넌트가 정상적으로 기동되면 컨피그레이션·세트가 미리 설정된 상태입니다. RTSystemEditor를 이용해 컨피그레이션·세트를 확인해 보십시오.
※컴포넌트 기동시에「지정된 패스가 발견되지 않습니다.」라고 하는 에러가 발생하는 경우는,
RTMExamples/ConfigSample 디렉토리내에 있는 rtc.conf 파일내의「example.ConfigSample.config_file」에
아래의 항목을 다음과 같이 수정해 주십시오..\\RTMExamples\\ConfigSample\\configsample.conf
(폴더와 폴더의 사이의 문자는'\'가 아니고,'\\'로 합니다)
분할자에게'\\'를 이용하는 것에 주의.
Windows의 경우 | Linux의 경우 | |
C++버전 | ConfigSampleComp.exe | ConfigSampleComp |
Python버전 | ConfigSample.py | ConfigSample.py |
Java버전 | ConfigSample.bat | ConfigSample.sh |
GUI 화면을 가진 RT컴포넌트의 샘플입니다. Windows의 경우는 GUIIn.bat, Linux의 경우는 GUIIn.sh를 실행하는 것으로 샘플·컴포넌트가 기동합니다.
이 샘플은 OpenRTM-aist의 C++버전 Windows 인스톨러에 들어 있습니다. OpenRTM-aist의 C++버전 Linux 패키지, Python버전, Java버전에는 들어 있지 않으므로 주의해 주십시오.
USBCameraAqcuireComp, USBCameraMonitorComp를 기동하는 것으로 USB 카메라의 화상을 모니터에 표시합니다. 화상 처리를 실시하는 OpenCV 샘플 RTC 컴포넌트를 접속해, 이미지 효과를 나타낼 수 있습니다.
USBCamera는 USBCameraAqcuireComp 컴포넌트로 USB 카메라의 화상 데이터를 취득해 USBCameraMonitorComp 컴포넌트로 모니터상에 표시하는 샘플입니다. OpenCV의 RT샘플 컴포넌트와 접속해 화상 데이터에 이미지 효과를 나타낼 수도 있습니다.
이 샘플은 OpenRTM-aist의 Python버전에 들어 있습니다. C++버전, Java버전에는 들어 있지 않으므로 주의해 주십시오.
GUI 화면을 가진 RT컴포넌트 샘플입니다. TkJoyStickComp.py를 실행하는 것으로 샘플·컴포넌트가 기동합니다.
GUI의 스틱을 드래그하는 것으로 이동한 값(x,y)를 출력합니다.
※MobileRobotSimulator, 또는NXTRTC의 사용법을 봐 주십시오.
TkJoystickComp.py(입력 디바이스)·TkMotorComp.py(출력 디바이스)등과 접속해, GUI로 모터로 움직이는 로봇의 시뮬레이션을 합니다.
NXTRTC.py는 LEGO Mindstorm NXT의 모터 제어나 센서 데이터를 출력하는 컴포넌트입니다.
GUI를 가진 TkJoystickComp(입력 디바이스)와 TkMotorComp(출력 디바이스)에 접속해, LEGO의 모터 제어와 값의 확인을 합니다.
※자세한 것은RT컴포넌트 작성(LEGO Mindstorm편)메뉴얼을 참고해 주십시오.
RT컴퍼넌트 외부로부터의 입력(이벤트)에 의해 처리를 실행하는 ExecutionContext의 샘플입니다.ExtConsoleIn.bat와 ExtConsoleOut.bat를 실행하는 것으로 샘플·컴퍼넌트가 기동합니다.양컴퍼넌트를 기동 후, ExtConnector.bat를 실행해 양컴퍼넌트의 Port간을 접속해 주세요.
Port간의 접속이 성공하면, ExtConnector를 실행한 콘솔에 어느 컴퍼넌트의 처리를 진행시키는지 선택하는 메뉴가 표시됩니다.각 컴퍼넌트는 이 콘솔에 입력된 값에 따라 처리 1 주기씩 진행시켜 나갑니다.