Frequently Asked Questions about OpenRTM-aist.
Both entire robots and various usable robotic functional elements are known as RT (Robot Technology/Robotic Technology). RT-Middleware is a platform to modularise and integrate a variety of robotic functional elements as software. The goal of the RT-Middleware is to provide open specifications and establish an open architecture platform that enables the interoperation of various implementations of RT modules. Thus, "RT-Middleware."
In RT-Middleware, an RT functional element is modularized as a software component called an RT-Component, and a robot is implemented by combining RT-Components on RT-Middleware. RT-Components have data ports and service ports to communicate with other components, and you can integrate various components easily by standardizing these interface specifications. All RT-Components have a common state machine inside, and you can manage a large number of components in higher-level application programs through integration. Moreover, since RT-Components have standard interfaces to alter internal parameters, you can reuse them without recompiling.
OpenRTM-aist is one of the reference implementations of RT-Middleware that AIST has implemented and distributes. It consists of an RT-Component framework to create RT-Components, the RT-Middleware that manages the lifecycle of the RT-Components, tools to generate skeleton code for components and GUI tools to operate and connect RT-Components. Currently, AIST provides reference implementations for C++, Python and Java, and develops other versions implemented in other languages.
OpenRTM-aist provides a framework to develop RT-Components in C++, Python and Java.
OpenRTM-aist is provided with a dual license model to allow use via the LGPL (GNU Lesser General Public License) or individual contract with AIST. An individual license is a license for modifying source codes of OpenRTM-aist and distributing them in a closed format for commercial purposes. Since the source code needs to be modified for use in embedded systems, this type of license is provided to promote the use in business.
Components can be created and distributed as dynamically linked libraries (called "shared objects" in Unix and "DLLs" (Dynamic Link Libraries) in Windows), and the components used by dynamically linking with core libraries of OpenRTM-aist do not have any limitations under the LGPL license. The component developers can license their components individually. For those of you who would like to support our goal in promoting the reuse of the components, please open the components you created on a source code level.
RTミドルウエアとは、Robot Technology (ロボット技術(要素)用の) ミドルウエアという意味です。これは、産総研だけのものではなく、広く一般にロボット用のミドルウエアを指す言葉です。従って、ROS や OROCOS、OPRoS など他のロボット用のプラットフォーム・ミドルウエアも広い意味で RTミドルウエアと呼ぶことができます。 しかし一方で、一般的にはOMG の RTC 標準仕様 を実装したものを RTミドルウエアと呼ぶことが多いと思います。
産総研がオープンソースで開発・配布している RTミドルウエアは固有名詞として OpenRTM-aist と呼ばれます。このほかに、OMG RTC 標準準拠の RTミドルウエアには、株式会社セックの OpenRTM.NET、RT-Middleware on Android、本田技術研究所の RTミドルウエアなど互換性を持ついくつかの実装があります。
OpenRTM-aist は、LGPLライセンスでソースコードを公開している、いわゆるオープンソースソフトウエアです。 使用するためにお金は一切必要ありません。
詳しくは下の「ライセンス」に関するFAQをご参照ください。
OpenRTM-aist は、LGPLのオープンソースプロダクトですので、使用するにあたって産総研の許可を取る必要はまったくありません。 ご自由にダウンロード、使用していただいて構いません。 また LGPLライセンスに従う限り、製品に組み込んで販売することも自由です。産総研の許可を取る必要はありません。 ただし、もし製品にご使用に使用されたい場合は、メーリングリストやWebページのコンタクトフォームなどへお知らせいただけるとありがたいです。
OpenRTM-aist は、無保証のオープンソースプロダクトです。OpenRTM-aist は As-Is の状態で提供され、産総研およびその開発者はその使用または性能に関していかなる保証も行いません。 また、OpenRTM-aist を使用することにより得られる成果または結果を保証せず、また産総研および開発者はバグやその他不具合などを修正する義務を負いません。 これは、オープンソースソフトウエアに限らず一般的なソフトウエアの使用許諾に記載されている無保証に関する条項と同等のものです。
しかし、産総研ではユーザー間の情報共有のために、
を設け、そこに投稿された質問等を通じて疑問等にはできるだけお答えするよう努力しております。 さらに、講習会、サマーキャンプ、コンテストなどを開催し、RTコンポーネント開発・システム開発技能の習得を促進しており、その場を通じて疑問やフィードバックに対して可能な限りこたえる努力を行っています。
詳しくは「コミュニティについて」をご参照ください。
OpenRTM-aist (C++, Python, Java)版は LGPL (GNU Lesser General Public License)と、産総研との個別契約可能なデュアルライセンス方式を採用しています。 ツール (RTCBUilder, RTSystemEditor)は EPL (Eclipse Public License) と、産総研との個別契約可能なデュアルライセンス方式を採用しています。
1つのソフトウェアを異なる2種類(またはそれ以上)のライセンスの元で配布する方法をデュアルライセンス方式と呼びます。 ソフトウェアがデュアルライセンスで配布される場合、その利用者はそのソフトウェアを利用または再配布するためにいずれかのライセンスを選ぶことができます。詳細はWikipedia等をご覧ください。
我々は OpenRTM-aist および RTミドルウエア・RTコンポーネントという考え方を広めたいと考えており、そのためにオープンソースでソフトウエアを配布しています。 一方で、我々産総研は実際に RTミドルウエアを利用してロボットなどの実用化・事業化したいと考えている企業を支援するミッションも負っております。 その際、オープンソースライセンスのみで配布していると、企業にとって不都合ないくつかの制約があるため、オープンソースとは別の個別契約も可能なデュアルライセンス方式を採用しています。
例えば、「OpenRTM-aist 本体を改変してシステムに組み込みたいが、改変した部分は公開したくない」という場合、LGPLライセンスで OpenRTM-aist を利用することはできないので、産総研と個別に契約していただく必要があります。 その際、若干の実施料をいただくことになりますが、RTミドルウエアを推進している立場上、法外な値段の実施料をいただくことは決してありませんのでご安心ください。
OpenRTM-aist は、LGPL、ツールは EPL を採用しています。LGPL と EPL には特許条項とGPLライセンスのライブラリと混ぜて使えるか、など違いがあります。
EPL には特許条項があり、ソフトウエアのコントリビューターが持つ特許が当該ソフトウエアに影響しない(使用者には使用料無料の特許ライセンスが付与される)ため使用者にとってはより安全なライセンスとなっていますが、GPL とは非互換のため混ぜて使うことはできません。 したがって、EPL ライセンスの Eclipse ではプラグイン(RTCBuilder、RTSystemEditorなどもプラグインです)も EPL とすることが通例となっています。(例外条項を付加すればプラグインに GPL を適用可能ではありますが。)
一方、OpenRTM-aist を利用して C++ や Python で RTコンポーネントを作成する場合、GPL ライセンスのライブラリなどとリンクすることは容易に起こりえます。したがって、OpenRTM-aist 自体を EPL にするとこうした GPL ライブラリとのリンクが事実上できなくなるため、GPL と互換性のある LGPL を採用しています。
OpenRTM-aist のコミィニティに参加することで、OpenRTM-aist を使う上で必要な情報を得たり、他のユーザーと情報交換することができます。 方法としては以下にあげるいくつかの方法があります。
詳細は以下のFAQをご覧ください。
コミュニティに参加する一番簡単な方法はメーリングリストに参加することです。 OpenRTM-aist および RTミドルウエア全般の話題を議論するためのメーリングリストがあります。OpenRTM-aist がインストールができない、コンポーネントがうまくつながらないなど、困りごとを相談する場であり、講習会、イベントなどの情報を発信する場ともなっています。
加入は非常に簡単でこちらのページに必要事項を送信の上、自動送信されたメール内のリンクをクリックすれば完了です。
フォーラムとは、Webページ上に設けられた掲示板です。OpenRTM.org にはフォーラムが設置されています。
このフォーラムはメーリングリストと連動しています。メーリングリストの内容が自動でフォーラムにも投稿され、逆にフォーラムに投稿された内容はメーリングリストにも投稿されます。
OpenRTM-aist に関する情報は Facebook でも発信しています。1週間に1,2回程度の頻度で、RTミドルウエアに関するお知らせを掲示いたしますので、Facebook をご利用の方であれば、タイムラインにお知らせが表示されます。 また、RTミドルウエアに関する話題がユーザーの皆様から提供されることもあります。
Facebook をご利用の方は、下記ページにアクセスしていただき「いいね」を押していただくか、
下記、OpenRTM-aist の Webページにアクセスしていただき、右上の「いいね」ボタンを押していただければ、登録完了となります。
産総研では定期または非定期で RTミドルウエアの講習会を開催しています。
通常、機械学会・ロボティクスメカトロニクス講演会のチュートリアルとして RTミドルウエア講習会を開催しております。 また、イベントや依頼によって非定期に開催されることもあります。その際は、http://openrtm.org の NEWS や Facebook、およびメーリングリストで開催のご案内を流します。
産総研では毎年夏に RTミドルウエアサマーキャンプという合宿形式の講習会を開催しております。 サマーキャンプでは通常月曜日から金曜日まで、産総研の宿泊施設(さくら館)に宿泊していただき座学、実習、成果発表といった内容で参加者に RTミドルウエアを用いたロボットシステム構築を学習してもらいます。
参加資格は少なくとも上記講習会を1回以上受講した人となっており、より実践的なシステム構築を学ぶことを主眼とした講習会となっています。
プロジェクトページとは、openrtm.org に設置されている RTコンポーネントの公開サイトです。誰でも自分の作った RTコンポーネントを公開できます。 また、自分が必要なコンポーネントはここから探してダウンロードすることもできます。
プロジェクトページに自分のコンポーネントを登録するにはユーザー権限の昇格が必要です。 詳しくは
をご覧ください。
毎年12月に行われる計測自動制御学会・システムインテグレーション部門の講演会において、RTミドルウエアコンテストを開催しています。 コンテストは講演会のオーガナイズドセッションとして開催されますが、参加者は講演会に投稿する論文の他に、RTミドルウエアを使用した何らかのソフトウエア作品を予め OpenRTM の Webページに登録し、審査委員、有志の一般審査委員から評価を受けます。 講演会での最終的なプレゼンテーションを行った後、審査委員会を開き各種賞を授与します。
RTミドルウエアコンテストの特徴として、その賞の多さがあります。個人または企業が協賛賞として一口1万~2万円をだし、賞を設立することができます。 各賞は協賛した個人または企業が独自の基準で受賞作品を選ぶことができます。最も優秀な作品は審査委員会で決定され、計測自動制御学会・システムインテグレーション部会から最優秀賞が授与されます。
機械学会・ロボティクスメカトロニクス講演会(ROBOMECH)、ロボット学会学術講演会、計測自動制御学会・システムインテグレーション部門講演会でオーガナイズドセッション、「RTシステムとオープン化」「RTミドルウエアとオープン化」を毎年開催しています。 RTミドルウエアや他のロボットミドルウエアを用いてシステム構築した例、ソフトウエアを構築する上での問題点などを議論するためのオーガナイズドセッションです。 ロボットのソフトウエアに興味がある学生さんにはぜひ発表していただきたいと考えています。 OS 開催の案内も、Webページ、Facebook、メーリングリストにてご案内しています。
pkg_install_XXXX.sh を利用してアンインストールする。
>su #pkg_install_XXXX.sh -u
>su #yum remove OpenRTM-aist-example #yum remove OpenRTM-aist-dev #yum remove OpenRTM-aist-doc #yum remove OpenRTM-aist
>su #apt-get remove OpenRTM-aist-example #apt-get remove OpenRTM-aist-dev #apt-get remove OpenRTM-aist-doc #apt-get remove OpenRTM-aist
Ubuntu、Debian などのディストリビューションで、apt-get や pkg_install_ubuntu.sh, pkg_install_debian.sh を使用してインストール作業をしていると、次のように CD を求められることがあります。 メディア変更:
'Ubuntu 7.10 _Gutsy Gibbon_ Japanese Remix - Release i386 (20071018)'
とラベルの付いたディスクをドライブ '/cdrom/' に入れて Enter を押してください。
もちろん、CD を用意すればよいことなのですが、諸事情により用意できない場合の対処方法を記述します。
この場合はとりあえず、C-c(Ctrl+c) を入力してインストール作業を中断し、以下の手順でインストール作業をやり直してください。
/etc/apt/sources.list の冒頭部分に
deb cdrom:[Ubuntu 7.10 _Gutsy Gibbon_ Japanese Remix - Release i386 (20071018)]/ gutsy main restricted
あるいは
deb cdrom:[Debian GNU/Linux 4.0 r3 _Etch_ - Official i386 NETINST Binary-1 20080218-14:15]/ etch contrib main
というような行がありますので、該当する行頭に # 文字を挿入し、コメントアウトしてください。
#deb cdrom:[Ubuntu 7.10 _Gutsy Gibbon_ Japanese Remix - Release i386 (20071018)]/ gutsy main restricted
または、
#deb cdrom:[Debian GNU/Linux 4.0 r3 _Etch_ - Official i386 NETINST Binary-1 20080218-14:15]/ etch contrib main
RTCBuilder でサービスポートを持つ RTC を生成した場合、Eclipse のビルドで以下のような「***POA を型に解決できません」エラーが表示されます。
原因: idl コンパイルは、サービスポートで使用する idlファイルから javaファイル(スタブソース、スケルトンソース、各種ユーティリティソース)を生成します。 idl コンパイルが実行される前にビルドが実行されると、ビルドに必要なこれらのソースファイル(javaファイル)が見つからずエラーになります。
対処方法: Eclipse のパッケージエクスプローラから「build_JavaRTCTest.xml」を右クリックして [実行] > [antビルド] 実行してください。 これにより、idl コンパイルが実行され、javaファイルが生成されます。 「build_JavaRTCTest.xml」実行後に、[F5] キーなどでプロジェクトを更新すると、エラー表示が消えます。# file: rtc.conf corba.nameservers: localhost naming.formats: %n.rtc corba.args: -ORBgiopMaxMsgSize 3145728 ※この行を追加 (Maxサイズを3Mに指定)
export ORBgiopMaxMsgSize=3145728
このほか、Raspberry Pi の有線LANと無線LAN等2つ以上のネットワークインターフェースがある場合、PCとの接続に使用するどちらかのネットワークのみを使うように設定することで解決するケースもあります。
エンドポイントを設定するため、rtc.conf に使用する方の IPアドレスを以下のように設定します。
corba.endpoints: 192.168.11.20
ただし、Vista 以降の Windows では、C:\Program Files 以下のファイルは簡単には編集ができなくなっています。c:\tmp など適当なディレクトリーに ConsoleIn.exe と rtc.conf をコピー(あるいは新たに作成)するなどして、対処してください。
corba.endpoints: 192.168.11.21
#include <BasicDataType.idl> module RTC { struct TimedImage { Time tm; long width; long height; long depth; sequence<octet> data; }; };
rtc-template -bcxx --module-name=ConsoleIn --module-type='DataFlowComponent' --module-desc='Console input component' --module-version=1.0 --module-vendor='Noriaki Ando, AIST' --module-category=example --module-comp-type=DataFlowComponent --module-act-type=SPORADIC --module-max-inst=10 --outport=out:TimedImage --consumer-idl=TimedImage.idl
make -f Makefile.ConsoleIn
新規プロジェクトで 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 が選択できるようになります。
2.「ユーザーエントリ」を一度選択し、その後「外部 JAR の追加」ボタンをクリックする。
3.「JAR の選択」ダイアログが現れたら、目的の JAR ライブラリまでのパスを指定する。結果、下図のように追加した JAR ライブラリが Ant の設定ダイアログに表示される。
重要な留意点
環境変数 RTM_JAVA_ROOT は必ず設定しなければなりません(ただし、ダミーでも可)。クラスパスを任意に指定することで、たとえ RTM_JAVA_ROOT の設定が不要となったとしても、その設定削除をしたり、設定そのものをしなかったりするとビルド時にエラーとなります。また、RTM_JAVA_ROOT が指し示すパスの先には(空でもいいので)必ず「jar」という名前のフォルダーが実在していなければなりません。
Java で Ant を実行すると以下のような例外が表示される場合があります。
>ant -f build_ModuleName.xml Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/to ols/ant/launch/Launcher : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
原因:Java のバージョンが古い可能性があります。
Java と Ant のバージョン要件は以下のリンクを参照してください。必要に応じてアップデートを実行してください。
Java と Ant のバージョン要件
OpenRTM は 32bit をインストールしているのに、CMake でコンパイラを 64bit に指定しているなど、アーキテクチャを合わせていない可能性があります。 アーキテクチャを合わせてから実行する必要があります。
openrtm.org が提供する msi インストーラーには omniORB が含まれていますが、手動でインストールした場合には、omniORB が入っていない場合も考えられますので、omniORB がインストールされているか確認してください。
「Start Naming Service」は %RTM_ROOT%\bin\rtm-naming.bat にあるバッチファイルからネームサーバー (omniNames.exe) を起動します。 この際、omniNames.exe を参照するために環境変数 OMNI_NAMES を利用しています。 通常インストーラーで OpenRTM-aist をインストールした場合には、OMNI_ROOT 環境変数が自動で設定されますが、何らかの理由で環境変数が無効になったり、手動でインストールした場合は、環境変数が設定されていないことがあります。
環境変数 OMNI_ROOT が設定されていることを確認してください環境変数 TEMP を2バイト文字を含まない場所に設定することで改善する場合があります。 適当なテンポラリフォルダー (以下のケースでは C:\temp) を作成し、そこを環境変数 TEMP が指すように、rtm-naming.bat の先頭部分で以下のように設定します。
set cosnames="omninames" set orb="omniORB" set port=%1 rem set OMNIORB_USEHOSTNAME=localhost set PATH=%PATH%;%OMNI_ROOT%\bin\x86_win32 set TEMP=C:\temp
また、稀なケースですが、ホスト名やアドレスの設定の問題で、起動できないことがあります。 その場合、利用している PC の IPアドレス を omniNames.exe に設定する必要があります。 環境変数 OMNIORB_USEHOSTNAME を以下のように設定します (以下は自ホストの IPアドレスが 192.168.0.11 の場合の例)。
set cosnames="omninames" set orb="omniORB" set port=%1 set OMNIORB_USEHOSTNAME=192.168.0.11 set PATH=%PATH%;%OMNI_ROOT%\bin\x86_win32
corba.nameservers: localhost
CMake 実行時に以下のエラーが発生する。
No CMAKE_CXX_COMPILER could be found.
まずは、<プロジェクトディレクトリー>/<buildディレクトリー>/CMakeFiles/CMakeError.log を確認してください。
CMake を実行 (Configure) する際に、コンパイラをしてします。インストールされている Visual Studio とは異なるコンパイラを指定した場合には、コンパイラが見つからず、No CMAKE_CXX_COMPILER could be found. のようなエラーが発生します。
CMakeError.log を見ると、以下のように、コンパイラチェック開始直後にエラーが発生します。
Microsoft (R) Build Engine バージョン 4.6.1586.0 [Microsoft .NET Framework、バージョン 4.0.30319.42000] Copyright (C) Microsoft Corporation. All rights reserved. 2017/04/08 10:47:04 にビルドを開始しました。 ノード 1 上のプロジェクト "C:\workspace\Flip\build\CMakeFiles\3.7.2\CompilerIdC\CompilerIdC.vcxproj" (既定のターゲット)。 C:\workspace\Flip\build\CMakeFiles\3.7.2\CompilerIdC\CompilerIdC.vcxproj(18,3): error MSB4019: インポートされたプロジェクト "C:\Microsoft.Cpp.Default.props" が見つかりませんでした。<Import> 宣言のパスが正しいかどうか、およびファイルがディスクに存在しているかどうかを 確認してください。 プロジェクト "C:\workspace\Flip\build\CMakeFiles\3.7.2\CompilerIdC\CompilerIdC.vcxproj" (既定のターゲット) のビルドが終了しました -- 失敗。 ビルドに失敗しました。 "C:\workspace\Flip\build\CMakeFiles\3.7.2\CompilerIdC\CompilerIdC.vcxproj" (既定のターゲット) (1) -> C:\workspace\Flip\build\CMakeFiles\3.7.2\CompilerIdC\CompilerIdC.vcxproj(18,3): error MSB4019: インポートされたプロジェクト "C:\Microsoft.Cpp.Default.props" が見つかりませんでした。 <Import> 宣言のパスが正しいかどうか、およびファイルがディスクに存在しているかどうかを 確認してください。 0 個の警告 1 エラー 経過時間 00:00:00.50
Visual Studio インストール時に、C++コンパイラを含む Visual C++ がインストールされていない場合があります。
再度インストーラーを(手元になければダウンロードしてから)起動し、[変更] からインストールを行います。 インストールをカスタマイズするを選択して、インストール対象に Visual C++ が含まれていることを確認してからインストールを行います。
この原因の場合も、CMakeError.log の出力内容は(原因1)と同じです。
まれに、インストールされているコンパイラを CMake 実行時に正しく指定しているのにもかかわらず、No CMAKE_CXX_COMPILER could be found. のようなエラーが発生することがあります。 原因の一つとして、複数のバージョンの Visual Studio をインストール・アンインストール等を行った際に、まれにツールチェーンの設定に不整合が生じ、以下のようなエラー rc.exeが実行できない が発生することがあります。
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\CL.exe /c /nologo /W0 /WX- /Od /D _MBCS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"Debug\\" /Fd"Debug\vc140.pdb" /Gd /TC /errorReport:queue CMakeCCompilerId.c CMakeCCompilerId.c Link: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\link.exe /ERRORREPORT:QUEUE /OUT:".\CompilerIdC.exe" /INCREMENTAL:NO /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /PDB:".\CompilerIdC.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:".\CompilerIdC.lib" /MACHINE:X64 Debug\CMakeCCompilerId.obj LINK : fatal error LNK1158: 'rc.exe' を実行できません。 [C:\workspace\Flip\build\CMakeFiles\3.7.2\CompilerIdC\CompilerIdC.vcxproj] プロジェクト "C:\workspace\Flip\build\CMakeFiles\3.7.2\CompilerIdC\CompilerIdC.vcxproj" (既定のターゲット) のビルドが終了しました -- 失敗。 ビルドに失敗しました。
これに対する対処方法としては、rc.exe と rcdll.dll を対象コンパイラのツールディレクトリーにコピーする方法があります。
rtm-naming.bat を実行しても黒い窓(コマンドプロンプト画面)が一瞬開いて閉じてしまう。
omniNames.exe -start 2809 -logdir %TEMP%
通常環境変数 %TEMP% はユーザーのテンポラリディレクトリー
C:\Documents and Settings\ユーザー名\Local Settings\Temp
%cosnames% -start %port% -logdir %TEMP%\
%cosnames% -start %port% -logdir [パスに日本語を含まないログディレクトリー]
> ls -al run.sh -rw-r--r-- 1 n-ando n-ando 1146 4 27 15:12 run.sh > chmod 755 run.sh > ./run.sh もしくは > sh run.sh
openrtm.org が提供する msi インストーラーには omniORBpy が含まれていますが、手動でインストールした場合には、omniORBpy が入っていない場合も考えられますので、omniORBpy がインストールされているか確認してください。
ネームサーバーを起動するファイルは、C:\Program Files (x86)\OpenRTM-aist\1.1\bin\rtm-naming.py です。(32bit 版 msi でインストールした場合)
このディレクトリーでコンソール画面を開き、python rtm-naming.py を実行するとネームサーバーは起動するが、rtm-naming.py をダブルクリックして起動できない場合はインストールしている python を確認してください。
Python の 32bit版、64bit版の両方をインストールしている場合、先にインストールしたものが py ファイルに関連付けられるようなので、OpenRTM-aist-Python のインストーラーと同じアーキテクチャの Python を先にインストールすると解決するかもしれません。
利用している PC の IPアドレスを omniNames.exe に設定する必要があります。 環境変数 OMNIORB_USEHOSTNAME を以下のように設定します (以下は自ホストの IPアドレスが192.168.0.11の場合の例)。
変数名(N): OMNIORB_USEHOSTNAME 変数値(V): 192.168.0.11
corba.nameservers: localhost
対処法その1:C:\の直下(または、パス名に空白が入っていない場所)に"RTMNaming"等適当なフォルダーを作成し rtm-naming.py を実行してください。
対処法その2:C:\Python<version>\Lib\site-packages\OpenRTM\rtm-namingのrtm-naming.pyの48行目を下記のように編集してください。rtm-naming.py 48行目 cmd = "omniNames -start "+str(port)+" -logdir \""+str(currdir)+"\" &"
Cygwin をインストールしている環境では、Cygwin上にも python.exe が存在する場合があります。その場合は、通例 Cygwin上の python.exe へのサーチパスが優先されるよう設定されるため、環境変数 Path を適切に設定しているのにもかかわらず、今回導入したはずの Python とは違うバージョンの(すなわちCygwin上の)python.exe が起動してしまう場合があります。この場合、Python のバージョンの違いによる不具合が発生してしまいます。この問題は非常に原因が特定しづらいのが特徴です。このように Cygwin などをインストールしている環境で OpenRTM-aist Python版を使う場合は、該当バージョンの Pythonインストールフォルダーから python.exe が起動していることを確認してください。
確認方法の例:「python -V」でバージョンを調べる、(Cygwinのある環境では)which python でどの python.exe が実行されているかを確認する...など
この障害が発見された場合の対処:Pythonインストールフォルダー(C:\Python26など)をシステム環境変数 Path(*ユーザー環境変数 Path ではなく)の先頭に追加することで解決できます。この場合、次のように表示されます。
Can't open file: ./rtc.conf Can't open file: /etc/rtc.conf Can't open file: /etc/rtc/rtc.conf Can't open file: /usr/local/etc/rtc.conf Can't open file: /usr/local/etc/rtc/rtc.conf
corba.nameservers: localhost naming.formats: %n.rtc
$ file rtc.conf
corba.args: -ORBTCPReadTimeouts 1:60000:300:1
corba.nameservers: localhost
$ sh jdk-6u4-linux-i586.bin $ cp -r jdk1.6.0_04/jre eclipse/
OS が FedoraCore の場合、yum にて Java をインストールすると GCJ (The GNU Compiler for Java ) がインストールされてしまい、その GCJ を使用するといくつかの不具合が生じる事があります。
不具合が発生した場合は、まず、Oracle の Java が使用されているかの確認をしてください。
Applications that do not support HiDPI mode with Windows 10 or the like may display windows and icons small at high resolution. Eclipse also supports halfway only in HiDPI mode, it is displayed as a whole small as shown below.
You can solve this problem by changing the registry and placing the manifest file as follows.
Add the following key to the registry
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\PreferExternalManifest = (DWORD) 1
RTSystemEditor always synchronizes the display while gathering system information. When gathering this system information, accessing the reference of an inactive object may cause a timeout wait and become extremely slow.
If an object that is not working occurs, delete it from the name service with "Delete from NameService", and delete the object connected to the port not connected to the object from the name service and system editor, It will be light.
"--service=PortName:ServiceName:Type"
"--consumer=PortName:ServiceName:Type"
$ /usr/Eclipse/eclipse
In UNIX environment, it seems that GCJ (The GNU Compiler for Java) is often installed when installing Java (Many Linux distributions are applicable). If Eclipse tools is not Oracle's JRE 1.6 or higher, a problem will occur. In the meantime, if you want to use Oracle's Java with Eclipse alone, do the following:
Please obtain the JDK and copy it to the Eclipse installation directory by using the jre directory created by executing it.
How to apply Oracle's JRE to Eclipse (using jdk-6u4-linux-i586.bin)''
$ sh jdk-6u4-linux-i586.bin $ cp -r jdk1.6.0_04/jre eclipse/
Visual C++ 2005 Express Edition でビルド時に次のようなエラーが表示される場合があります。
>c:\program files\omniorb\include\omnithread\nt.h(35) : fatal error C1083: include ファイルを開けません。 'windows.h': No such file or directory
インストールをする順序などの関係で、Visual C++ 2005 Express Edition のインストールディレクトリーとは違う場所に Microsoft Platform SDK がインストールされてしまうなどの事情で、Visual C++ 2005 Express Edition のコンパイラが Microsoft Platform SDK のインクルードファイルやライブラリをたぐれなくなっている場合があります。この場合は、インクルードファイルサーチパスやライブラリサーチパスに Microsoft Platform SDK のインストールディレクトリーを追加することで問題を解決できます。
すでに JDK よりも新しいバージョンの JRE(Java Runtime Environment)がインストールされている場合は、JDK をインストールしても「java -version」が JRE のままになることがあります。この場合のインストールの確認方法を説明します。
「プログラムの追加と削除」での確認方法:Windowsのコントロールパネルから「プログラムの追加と削除」を呼び出し、JDK5 がインストールされていることを確認してください。
マイコンピューターからの確認方法:JDK をデフォルトでインストールした場合には、通常
C:\Program Files\Java\jdk1.6.0_21