ダウンロード
最新バージョン : 2.1.0-RELESE
| 2.1.0-RELESE | ダウンロードページ |
OpenRTM@Github
OpenRTM-aist GitHubサイト
ROS
Robot Operating System
Choreonoid
モーションエディタ/シミュレータ
DAQ-Middleware
ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク
産総研が提供するRTC集
東京オープンソースロボティクス協会
| 2.1.0-RELESE | ダウンロードページ |
OpenRTM-aist GitHubサイト
Robot Operating System
モーションエディタ/シミュレータ
ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク
産総研が提供するRTC集
東京オープンソースロボティクス協会
OpenRTM-aist-Java-0.4의 샘플에 대해
본장에서는 OpenRTM-aist-Java-0.4에 부속의 샘플에 대해 설명합니다. 샘플을 테스트하는 경우는 각 샘플 컴포넌트를 기동하기 전에 start-orbd.vbs를 실행해 네임 서비스를 기동해 주십시오. start-orbd.vbs를 실행하려면 , 해당하는 파일을 더블 클릭해 주십시오. 인스톨러를 이용해 인스톨 했을 경우는 start-orbd.vbs를 시작 메뉴로부터 실행할 수도 있습니다. 덧붙여 본장에서는 RtcLink가 인스톨 된 환경인 것을 가정해 설명하고 있습니다. RtcLink의 인스톨에 대한 자세한 것은 RtcLink 인스톨 을 참조해 주십시오(일부의 샘플은 RtcLink가 없어도 동작합니다).
※이미 RtcLink를 인스톨 하고 있다면
새로운 OpenRTM-aist-Java-0.4에서는 RtcLink 0.4.0은 사용할 수 없게 되었습니다. 이미, Eclipse상에 RtcLink 플러그 인을 인스톨 하고 있는 분은 OpenRTM-aist-Java-0.4를 사용하는 경우, 반드시 RtcLink도 0.4.1에 업데이트 해주십시오.
참고:SimpleIO
DataInPort, DataOutPort의 사용 방법을 나타낸 샘플입니다. ConsoleIn.sh와 ConsoleOut.sh를 실행하는 것으로 샘플 컴포넌트가 기동합니다. Port간을 접속하면 ConsoleIn측에서 입력한 숫자가, ConsoleOut 측에 표시됩니다. Port간은 RtcLink를 이용하는 것 외에 Connector.bat를 실행하는 것으로 접속할 수 있습니다.
사용법
SimpleIO의 샘플은 ConsoleIn로 입력된 숫자를 데이터 포트로부터 ConsoleOut에 보내고, ConsoleOut 측에도 같은 숫자를 표시시키는 샘플입니다. ConsoleIn의 화면에서 숫자를 입력해 주십시오. 그렇다면 ConsoleOut에서 입력한 숫자가 출력됩니다.SeqIO
DataInPort, DataOutPort의 사용 방법을 나타낸 샘플입니다. SeqIn.bat와 SeqOut.bat를 실행하는 것으로 샘플 컴포넌트가 기동해, GUI 화면이 표시됩니다. SeqIn, SeqOut 모두 이하의 형태의 DataPort를 보관 유지하고 있습니다. TimedShort, TimedLong, TimedFLoat, TimedDouble, TimedShortSeq, TimedLongSeq, TimedFLoatSeq, TimedDoubleSeq 각 Port의 출력은 랜덤으로 결정하고 있어 각 Port간을 접속하면 SeqOut측의 출력치, SeqIn측의 입력치가 각각의 GUI 화면에 표시됩니다.(Port간의 접속에는 RtcLink를 이용하십시오.)
사용법
SeqIO의 샘플은, SeqOut로부터 연속해 출력되는 수치 데이터를 데이터 포트로부터 SeqIn에 보내, GUI상에 표시시키는 샘플입니다. SeqOut와 SeqIn의 대응하는 포트를 RtcLink상에서 접속해 주십시오. 양컴포넌트를 액티베이트 하면 SeqOut 뿐만이 아니라 SeqIn의 GUI상의 수치도 연속적으로 변화해, 데이터 포트의 입출력을 관찰할 수 있습니다.SimpleService
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.bat와 MyServiceProvider.bat를 실행하는 것으로 샘플 컴포넌트가 기동합니다. Consumer측 컴포넌트를 Activate 하면 콘솔에 이용 가능한 커멘드 리스트가 표시되기 때문에, 각 커멘드를 테스트해 보십시오.(Port간의 접속에는 RtcLink를 이용하십시오.)
사용법
SimpleService는 MyServiceConsumer로부터 커멘드를 보내 MyServiceProvider로 그것을 처리하는 샘플입니다(※정확하게는 커멘드의 해석은 Consumer측이며, Provider측의 함수를 호출하는 형태로 구현되고 있다). MyServiceConsumer와 MyServiceProvider의 대응하는 포트를 RtcLink상에서 접속해 주십시오. 양컴포넌트를 액티베이트 하면(Activate 하는 것은 Consumer측 컴포넌트만으로도 좋다) Consumer측 prompt에 커멘드 일람이 표시되므로, 적당한 커멘드를 입력해 주십시오. Provider측의 응답을 prompt상에서 관찰할 수 있습니다.- 커멘드
ConfigSample
RT컴포넌트의 컨피그레이션 세트의 사용 방법을 나타낸 샘플입니다. ConfigSample.ba을 실행하는 것으로 샘플 컴포넌트가 기동합니다. 컴포넌트가 정상적으로 기동되면, 컨피그레이션 세트가 미리 설정된 상태로 되어 있습니다. RtcLink를 이용해 컨피그레이션 세트를 확인해 보십시오.
※컴포넌트 기동시에 「지정된 패스가 발견되지 않습니다.」라고 하는 에러가 발생하는 경우, RTMExamples/ConfigSample 디렉토리안에 있는 rtc.conf 파일내의「example.ConfigSample.config_file」항목을 다음과 같이 수정해 주십시오.
.\\RTMExamples\\ConfigSample\\configsample.conf
(폴더와 폴더의 사이의 문자는'\'가 아니고,'\\'로 합니다)
사용법
RtcLink의 ConfigrationView로 선택, 설정한 ConfigrationSet에 따른 데이터 세트를 prompt상에 표시해 끊임 없이 표시 갱신을 합니다.- 조작
ExtTrigger
RT컴포넌트 외부로부터의 입력(이벤트)에 의해 처리를 실행하는 ExecutionContext의 샘플입니다. ExtConsoleIn.bat와 ExtConsoleOut.bat를 실행하는 것으로 샘플 컴포넌트가 기동합니다. 양컴포넌트를 기동 후, ExtConnector.bat를 실행해 양컴포넌트의 Port간을 접속해 주십시오.
Port간의 접속이 성공하면, ExtConnector를 실행한 콘솔에 어느 컴포넌트의 처리를 진행시키는지 선택하는 메뉴가 표시됩니다. 각 컴포넌트는 이 콘솔에 입력된 값에 따라 처리 1주기씩 진행시켜 나갑니다.
GUIIn
GUI 화면을 가진 RT컴포넌트의 샘플입니다. GUIIn.bat를 실행하는 것으로 샘플 컴포넌트가 기동합니다.
각 GUI 요소와 Port간의 관계는 이하대로입니다.
- 슬라이더(상)
- TimedLong형 DataOutPort
- 텍스트·박스(중)
- TimedString형 DataOutPort
- 스피너(하)
- TimedDouble형 DataOutPort
각 Port는 해당하는 Port간을 접속 후, GUI 요소옆의 체크 박스를 ON로 하는 것으로, 입력 데이터를 송신합니다.(Port간의 접속에는 RtcLink를 이용하십시오. 출력 데이터의 확인에는 SeqIn등의 타샘플을 이용하십시오.)사용법
GUIIn 컴포넌트의 GUI 화면에서 체크를 넣은 컨트롤(슬라이더, 스피너)을 조작하면, 그 값의 변화에 따라서 SeqIn의 GUI 화면상의 값도 변화합니다.LogView
(LogView 컴포넌트는 OpenRTM-aist-Java-0.4에 부속되지 않게 되었습니다)
통합 개발 환경 Eclipse의 플러그 인으로서 동작하는 RT컴포넌트의 샘플입니다. 이 컴포넌트는 2개의 TimedDouble형 DataInPort를 가지고 있어 입력된 값을 차례차례 화면상에 그래프 표시해 갈 것입니다.
인스톨과 기동
LogView 디렉토리내에 있는「jp.go.aist.rtm.logview_1.0.0.jar」를 Eclipse 인스톨 디렉토리 이하의 plugins 디렉토리내에 복사하면 인스톨은 완료입니다.(Eclipse의 인스톨 방법에 대해서는,RtcLink·RtcTemplate의 인스톨등을 참조하십시오)
네임 서비스를 기동 후, Eclipse를 기동해 주십시오.(Eclipse 기동시, 혹은 화면 표시시에 컴포넌트의 등록을 실시하기 때문에 네임 서비스는 사전에 기동해 주십시오.)
LogView에게 주는 rtc.conf를 작성해 적당한 디렉토리에 둡니다. 이하의 예에서는 Eclipse를 기동하는 호스트와 같은 호스트상의 네임서버를 참조해, 컴포넌트의 이름은 루트 컨텍스트의 직하에 그대로 등록되는 설정입니다.
Eclipse가 기동하면, 상부 메뉴로부터「윈도우」「설정」을 선택해, 표시된「설정」다이얼로그에서,「LogView」를 선택해 주십시오.
그림과 같이 LogView의 설정 화면이 표시되기 때문에, 각 설정 항목을 적절히 설정합니다.
설정이 끝나면, 상부 메뉴로부터「윈도우」「뷰의 표시」「그 외」를 선택해, 표시된「뷰의 표시」화면에서,「그 외」「LogView」를 선택해 주십시오. 네임서비스뷰상에 LogView 컴포넌트가 나타납니다.
동작 확인과 설정
LogView 컴포넌트의 동작 확인용 컴포넌트로서 SinCosOut 컴포넌트를 준비하고 있습니다. SinCosOut 컴포넌트는 TimedDouble형의 2개의 DataOutPort를 보관 유지하고 있어 각각의 Port로부터 sin파, cos파를 출력합니다. SinCosOut.bat를 실행하는 것으로 기동할 수 있기 때문에, LogView 컴포넌트와 함께 시험해 주십시오. LogView 컴포넌트는 Y축방향의 최대치, 최소치 및 눈금의 간격과 그래프의 리드로잉 주기를 설정하는 것이 가능합니다. 화면 우측의 텍스트 박스내로 설정치를 입력해, 「Apply」버튼을 누르는 것으로 설정을 반영하는 것이 가능합니다.