Download
latest Releases : 2.0.0-RELESE
2.0.0-RELESE | Download page |
Number of Projects
RT-Component | 152 |
RT-Middleware | 33 |
Tools | 22 |
Documentation | 2 |
Choreonoid
Motion editor/Dynamics simulator
OpenHRP3
Dynamics simulator
OpenRTP
Integrated Development Platform
AIST RTC collection
RT-Components collection by AIST
TORK
Tokyo Opensource Robotics Association
DAQ-Middleware
Middleware for DAQ (Data Aquisition) by KEK
サービスポートを持つ RTC を Eclipse でビルドするとエラーが表示される
RTCBuilder でサービスポートを持つ RTC を生成した場合、Eclipse のビルドで以下のような「***POA を型に解決できません」エラーが表示されます。
原因: idl コンパイルは、サービスポートで使用する idlファイルから javaファイル(スタブソース、スケルトンソース、各種ユーティリティソース)を生成します。 idl コンパイルが実行される前にビルドが実行されると、ビルドに必要なこれらのソースファイル(javaファイル)が見つからずエラーになります。
対処方法: Eclipse のパッケージエクスプローラから「build_JavaRTCTest.xml」を右クリックして [実行] > [antビルド] 実行してください。 これにより、idl コンパイルが実行され、javaファイルが生成されます。 「build_JavaRTCTest.xml」実行後に、[F5] キーなどでプロジェクトを更新すると、エラー表示が消えます。RTC がシステムエディタ上に表示されない
ネットワークの切り替え時に発生する現象で、NameService と RTC を再起動することで表示されるようになります。データポートで約2MB以上のデータを送りたい
画像データなどをデータポートで送る際、1回に送られるデータサイズ約2MBを超える場合には注意が必要です。omniORBでは、giop (General Inter-ORB Protocol)で扱えるサイズはデフォルトで"2097152B(2MB)"となっています。 このサイズを超えるデータを1回で送ろうとすると、giop の制限のため正しいデータを送ることができません。
この最大サイズを変更するためには、下記の2つの方法があります。
(omniORB configuration and API)
http://omniorb.sourceforge.net/omni41/omniORB/omniORB004.html
Raspberry Pi との接続時に、IPアドレスが割り当てられない
Raspberry Pi を再起動してください。Raspberry Pi 上のデータポートと PC上のデータポートを接続すると接続エラーになる
Raspberry Pi が起動する前に PC側の NameService を立ち上げていたためと思われます。再度、NameService を立ち上げ直してください。Raspberry Pi に接続した場合に RTC と通信できなくなる
ウイルス対策ソフトの影響の可能性があります。WiFi 設定を WPA2 に変更してください。Raspberry Pi 側のサービスに ConsoleOut が表示されない
このほか、Raspberry Pi の有線LANと無線LAN等2つ以上のネットワークインターフェースがある場合、PCとの接続に使用するどちらかのネットワークのみを使うように設定することで解決するケースもあります。
PCにネットワークインターフェースが2つ以上ある場合、RTSystemEditor で接続できない、反応しなくなるなどの問題がある
エンドポイントを設定するため、rtc.conf に使用する方の IPアドレスを以下のように設定します。
ただし、Vista 以降の Windows では、C:\Program Files 以下のファイルは簡単には編集ができなくなっています。c:\tmp など適当なディレクトリーに ConsoleIn.exe と rtc.conf をコピー(あるいは新たに作成)するなどして、対処してください。
Naming rules for RT-Component instances
The default rule used to name RT-Component isntances is: [RT-Component type name] + [index (0,1,2,3,...)]The type name is specified in the component profile (usually specified in the component's source file). The index is used for components instantiated using the same type in the same manager.
If components are instantiated using the same type but separate managers, they may use the same instance name on the name server. The most recent component that registers will overwrite any previous registrations. You can avoid this by:
How can I use non-standard data types for InPort/OutPort.
Usually, in OpenRTM-aist usable data types are defined in rtm/idl/BasicDataType.ild:TimedShort、TimedLong、TimedUShort、TimedULong、TimedFloat、TimedDouble、TimedChar
TimedBooleanTimedOctet、TimedString、TimedShortSeq、TimedLongSeq、TimedUShortSeq
TimedULongSeq、TimedFloatSeq、TimedDoubleSeq、TimedCharSeq、TimedBooleanSeq
TimedOctetSeq、TimedStringSeq
You can use the above 20 data types for the data type for InPort/OutPort.
If you want to use the other data types for InPort/OutPort, you need to define it in IDL file and need to compile and link it when you comile the components.
Let's assume we want use a data type to store images, which has size (width, height), depth, and image data as members (note that OpenRTM-aist supplies a CameraImage data type). Define the following data type in your IDL:
Put this file in the directory where the component source is located. Next, generate the component with rtc-template. At that time, specify this IDL file to --consumer-idl option.
In this example, we use the TimedImage type defined in TimedImage.idl as the data type of OutPort. Let's compile the generated code.
新規 Java プロジェクトが JDK6(1.6)準拠として作成できない
新規プロジェクトで Java プロジェクトを作成しようとすると、次のようなダイアログが表示されて、JDK準拠が選択できないことがあります。
RTCBuilder を利用し、Java で RTコンポーネント作成するプロジェクトでは、このダイアログにおいて指定する JRE(Java実行環境)を JDK 内に含まれている JRE とする必要があります。このままでは JDK内の JRE を選択できないため設定を変更します。
1. 下図のように JRE フレーム内の「JREを構成...」リンクをクリックします。(あるいは、一旦このダイアログをキャンセルして Eclipse のメニューバーの[ウィンドウ] > [設定] > 「設定」ダイアログの左のツリー部分から「Java」の下の「インストール済みのJRE」を選択します。)
2. [追加] ボタンをクリックします。
3.「標準VM」 を選択して [次へ] ボタンをクリックします。
4. [ディレクトリー] ボタンをクリックして、JDK6 までのパスを選択します。(参考:通常、JDK6 のパスはC:\Program Files\Java\jdk1.6.0_XX)
5. JDK までのパスの参照に成功すると、「JRE の追加」ダイアログが下図のようになりますので、[完了] ボタンをクリックしてダイアログを閉じます。
6.「インストール済みの JRE」ダイアログに戻ってくるので(JDK が追加された状態で)、下図のようにアクティブとする JRE にチェックを入れ、[OK] ボタンをクリックします。
7.「新規 Java プロジェクト」のダイアログで JDK が選択できるようになります。
任意のフォルダーにクラスパスを設定して Ant ビルドを行う方法は?
環境変数 RTM_JAVA_ROOT に OpenRTM-aist (Java版)ライブラリ「OpenRTM-aist-X.X.X.jar」(X.X.Xはバージョンです。)が存在するフォルダー「jar」へのベースパス(親フォルダまでのパス)を設定し、それをクラスパスの設定に用いることで、OpenRTM-aist (Java版)は RTCBuilder でのコード生成と Ant でのビルド実行の連携を築いています。したがって、RTM_JAVA_ROOT は OpenRTM-aist (Java版) のライブラリフォルダーへのパス(ベースパス)を必ず保持していなければならないわけです。ところが、RTM_JAVA_ROOT は本来、OpenRTM-aist (Java版) のインストール場所を指すものなので、結果 OpenRTM-aist (Java版) のライブラリと他のコンポーネント(ドキュメント・サンプル・ユーティリティツール類)は常にそのフォルダー構造を保っていなければなりません。環境変数 RTM_JAVA_ROOT をクラスパス設定専用に使う方法も考えられます。OpenRTM-aist (Java版)のライブラリフォルダーを自由な位置に配置し、それに合わせて RTM_JAVA_ROOT 設定するという使い方もできるでしょう。ただし、この場合は、「環境変数 RTM_JAVA_ROOTをライブラリへのクラスパスの用途以外には使用していない」という保証が必要です。
そこで、何らかの事情で RTM_JAVA_ROOT が指示しているところとは別のところにクラスパスを設定したい場合、クラスパスをどのように設定したらよいのかをここで説明します。
Eclipse の通常左のビュー「パッケージ・エクスプローラー」から build_<CompName>.xml を右クリックして、[実行] > [Antビルド...] を選択する。
1. Ant の設定ダイアログが表示されるので、「クラスパス」タブを選択する。
2.「ユーザーエントリ」を一度選択し、その後「外部 JAR の追加」ボタンをクリックする。
3.「JAR の選択」ダイアログが現れたら、目的の JAR ライブラリまでのパスを指定する。結果、下図のように追加した JAR ライブラリが Ant の設定ダイアログに表示される。
重要な留意点
環境変数 RTM_JAVA_ROOT は必ず設定しなければなりません(ただし、ダミーでも可)。クラスパスを任意に指定することで、たとえ RTM_JAVA_ROOT の設定が不要となったとしても、その設定削除をしたり、設定そのものをしなかったりするとビルド時にエラーとなります。また、RTM_JAVA_ROOT が指し示すパスの先には(空でもいいので)必ず「jar」という名前のフォルダーが実在していなければなりません。
Java で Ant を使ってコマンドラインからビルドするときに例外が表示される
Java で Ant を実行すると以下のような例外が表示される場合があります。
原因:Java のバージョンが古い可能性があります。
Java と Ant のバージョン要件は以下のリンクを参照してください。必要に応じてアップデートを実行してください。
Java と Ant のバージョン要件