ダウンロード
最新バージョン : 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集
東京オープンソースロボティクス協会
- RT컴퍼넌트의 인스턴스 명명 규칙
- 표준 이외의 데이터형을 InPort/OutPort로 사용하려면
- 데이터 포트로 약 2 MB이상의 데이터를 보내고 싶다.
- 신규 Java 프로젝트가 JDK6(1.6)로 작성되지 않는다.
- 임의의 폴더에 클래스 패스를 설정해서 Ant빌드를 하는 방법은?
RT컴포넌트 작성에 관한 FAQ를 정리하였습니다.RT컴퍼넌트의 인스턴스 명명 규칙
RT컴퍼넌트 type명은, rtc-template로 --type-name 옵션으로 지정한 이름, 또는 컴포넌트 프로파일(통상은 *.cpp 파일의 선두에 기술) "type_name"로 지정되어 있는 이름입니다.
번호는, 동일 매니저상에서 생성된 컴퍼넌트에 대해서, 0,1,2,3...(와)과 같은 연속적인 숫자를 매깁니다.
동일한 컴퍼넌트가 별도의 프로세스로 복수 기동되었을 경우에는, 인스턴스의 번호는 각각 0으로부터 시작되므로 동일한 이름의 컴퍼넌트가 복수 기동된 것이 됩니다.
이것을 방지하려면경우에 따라서는, 네임 서비스에 동일한 이름으로서 복수의 컴퍼넌트가 등록되어 전에 등록된 것은 다음에 등록된 것으로 덮어쓰기가 됩니다.
표준 이외의 데이터형을 InPort/OutPort로 사용하려면
이외의 데이터형을 정의해 InPort/OutPort로 사용하고 싶은 경우는, 그 데이터형을 IDL로 정의해, 컴퍼넌트를 컴파일 할 때 동시에 컴파일·링크 할 필요가 있습니다.
만일 화상을 저장하기 위해 사이즈(width, height), 뎁스(depth), 이미지 데이터, 각 멤버를 가지는 데이터형을 사용하고 싶다고 한다면, IDL에서는 이 데이터형을 이하와 같이 정의합니다.
#include <BasicDataType.idl> module RTC { struct TimedImage { Time tm; long width; long height; long depth; sequence<octet> data; }; };이것을 TimedImage.idl로서 파일에 저장합니다.
이 파일을 컴퍼넌트 작성하는 디렉토리에 둡니다.
다음으로 rtc-template로 컴퍼넌트를 작성합니다. 그 때, 이 IDL 파일을 --consumer-idl 옵션으로 지정합니다.
컴퍼넌트내에서의 데이터 사용 방법은 통상의 것과 같습니다.
이것과 같은 데이터형을 다른 컴퍼넌트에서도 사용하고 싶은 경우, 이 IDL 파일만 복사하고 똑같이 rtc-template의 --consumer-idl
옵션으로 파일을 지정해 주십시오.
이것으로 이 데이터형을 이용해 컴퍼넌트 간 통신을 할 수 있게 됩니다.
데이터 포트로 약 2 MB이상의 데이터를 보내고 싶다.
omniORB에서는 giop(General Inter-ORB Protocol)로 취급할 수 있는 사이즈는 디폴트로 "2097152B(2MB)"로 되어 있습니다.
이 사이즈를 넘는 데이터를 한번에 보내려고 하면 giop의 제한 때문에 제대로 데이터를 보낼 수 없습니다.
이 최대 사이즈를 변경하기 위해서는 아래와 같은 2개의 방법이 있습니다.
# file: rtc.conf corba.nameservers: localhost naming.formats: %n.rtc corba.args: -ORBgiopMaxMsgSize 3145728 # 이 행을 추가 # Max 사이즈를 3M로 지정(omniORB configuration and API) http://omniorb.sourceforge.net/omni41/omniORB/omniORB004.html
신규 Java 프로젝트가 JDK6(1.6)로 작성되지 않는다.
임의의 폴더에 클래스 패스를 설정해서 Ant빌드를 하는 방법은?
환경 변수 RTM_JAVA_ROOT를 클래스 패스 설정 전용으로 사용하는 방법도 생각할 수 있습니다. OpenRTM-aist(Java버전)의 라이브러리 폴더를 임의의 위치에 배치해 거기에 맞추어 RTM_JAVA_ROOT 설정하는 방법도 있습니다. 단, 그 경우는 「환경 변수 RTM_JAVA_ROOT를 라이브러리에의 클래스 패스의 용도 이외에는 사용하지 않음」이라는 보증이 필요합니다.
거기서 어떠한 사정으로 RTM_JAVA_ROOT가 지시하고 있는 곳과는 다른 곳에 클래스 패스를 설정하고 싶은 경우를 위해서,클래스 패스를 어떻게 설정하면 좋을지를 여기서 설명합니다.