産総研 安藤です
EclipseのバージョンとRTCBuilderのバージョンはいくつでしょうか?
産総研 安藤です
EclipseのバージョンとRTCBuilderのバージョンはいくつでしょうか?
OpenRTM公式からダウンロードできる下記の「全部入り」を使用しているので,
eclipse342_rtmtools100release_linux_ja.tar.gz
eclipseは3.4.2です.
また,rtcbuilderのバージョンはeclipse/pluginの中を見ると
akiba@yken-hiro:~/Downloads/eclipse/plugins$ ls *rtcbuilder*
jp.go.aist.rtm.rtcbuilder.csharp_1.0.0.jar
jp.go.aist.rtm.rtcbuilder.nl1_1.0.0.v20100316.jar
jp.go.aist.rtm.rtcbuilder.vbdotnet_1.0.0.jar
jp.go.aist.rtm.rtcbuilder.java_1.0.0.v20100412.jar
jp.go.aist.rtm.rtcbuilder.python_1.0.0.v20100521.jar
jp.go.aist.rtm.rtcbuilder_1.0.0.v20100507.jar
となりますので,1.0.0だと思います.
eclipseの全部入りをダウンロードするときに,下記のサイトで
OpenRTM Eclipse tools 1.0-RELEASE | OpenRTM-aist
http://www.openrtm.org/openrtm/ja/node/941
””
Ubuntu8.04, Ubuntu9.10, Ubuntu10.04でLinux用Eclipse3.4.2が動作しない不具合が報告されています。
Ubuntu8.04では、apt-get install xulrunner-1.9 として xulrunninerをアップデートしてください。
Ubuntu9.10,Ubuntu10.04では、以下の方法を利用するか、Eclipse3.3もしくは3.5をご利用ください。
””
というような記述があるので,
akiba@yken-hiro:~/Downloads/eclipse$ cat eclipse.sh
#/bin/sh
export GDK_NATIVE_WINDOWS=1
./eclipse -vmargs
-Dorg.eclipse.swt.browser.XULRunnerPath=/usr/lib/xulrunner-1.9.2.28/xulrunner
というようなファイルを作り,これを実行して使用しています.
サイトではxulrunner-1.9.1.8 と書いていますが,実際に現在入っているバージョンがxulrunner-1.9.2.28であるため,
そのように書き換えました.
普段使用している分にはこれで不具合などはなかったのですが,この問題などが「不具合」にあたるのでしょうか.
宜しくお願い致します.
ためしに、1.1.0-RC4を使ってみていただけないでしょうか?
1.1.0のツールを1.0.0で使用するのは特に問題ないはずです。
http://openrtm.org/openrtm/ja/node/30
ちなみに、xulrunner関係の不具合が出る場合、そもそもEclipseのウィンドウが
出なかったはずです。今回はこの不具合とは別の問題のような気がします。
安藤
産総研 安藤様
山形大学の秋葉です.
申し訳ありません.
自己解決しました.
問題はidlファイルの中身でした.
下記のURLに書いてあるMyDataType.idlをそのままコピペしてしまったので,すぺての行の先頭にスペースが入っていました.
データポート (応用編) | OpenRTM-aist
http://www.openrtm.org/openrtm/ja/content/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%9D%E3%83%BC%E3%83%88-%E5%BF%9C%E7%94%A8%E7%B7%A8#toc2
すべての行の先頭のスペースを削除するときちんとRTCBuilderのタプが表示されました.
詳しく調べてみたところ,
#include
の前にスペースが入るとこのようになるようです.
C++では#includeの前にスペースが入っても正常に動作しますが,IDLではダメみたいです.
お手間を取らせてしまい,申し訳ありませんでした.
秋葉さま
安藤です
なるほどそうでしたか。一応こういう現象があったとしてチケット出しておきます。
情報ありがとうございました。
山形大学の秋葉です.
上の問題は解決されたのですが,
「独自のデータポートを持つPyhtonRTCを実行できない」
という問題が出てしまいました.
前に説明しましたが,環境は下のようになります.
Ubuntu10.04 32bit
OpenRTM-C++ 1.0.2
OpenRTM-python 1.0.0
RTCBuilderはeclipse342_rtmtools100release_linux_ja.tar.gzを解凍したもの
下記のページにあるMyDataTypeを持つデータポートを作成しました.
cat MyDataType.idl
// @file MyDataType.idl
#include "BasicDataType.idl"
struct MyData
{
RTC::Time tm;
short shortVariable;
long longVariable;
sequence data;
};
データポート (応用編) | OpenRTM-aist
http://www.openrtm.org/openrtm/ja/content/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%9D%E3%83%BC%E3%83%88-%E5%BF%9C%E7%94%A8%E7%B7%A8#toc2
詳しく説明しますと,
RTCのメインプログラムtest.pyを何も編集をせず,実行すると下のようになりました.
#RTCの名前は"test"としました.
$ ./test.py
File "./test.py", line 58
self._d_out = MyData(),0)
^
SyntaxError: invalid syntax
よって,下のように書き換えてみました.
self._d_out = MyData(RTC.Time(0,0),0,0,[])
その結果,エラーはなくなりましたが,実行しても,RTSystemEditorにでてくることもなく,数秒経つと./test.pyの実行が終わるようになってしましました.
C++のRTCではきちんとデータポートで送受信できているのでRTCBuilder上の項目は間違っていないと思っています.
このような場合.独自のデータポートを持つPythonのRTCを実行するにはどのようにすればよいのでしょうか.
他にこのRTCに対してしたことは下のようなことです.
1)
RTCを実行する前に./idlcompile.shをした所,
MyDataType.idl:2: BasicDataType.idl: No such file or directory
MyDataType.idl:6: Error in look-up of 'RTC::Time': 'RTC' not found
omniidl: 1 error.
omniidl: Error running preprocessor
となってしまったので,同じディレクトリ内に"BasicDataType.idl"を追加し,再度"./idlcompile.sh"をしました.
2)
RTCBuilderを"eclipse342_rtmtools100release_linux_ja.tar.gz"のものから"eclipse381-openrtp110rc4v20130216-ja-linux-gtk.tar.gz"に変えて見ましたが,
結果は変わりませんでした.
宜しくお願い致します.
秋葉様
栗原と申します。
> よって,下のように書き換えてみました.
> self._d_out = MyData(RTC.Time(0,0),0,0,[])
上記を、
self._d_out = _GlobalIDL.MyData(RTC.Time(0,0),0,0,[])
として試してみてください。
よろしくお願い致します。
栗原様
山形大学の秋葉です.
回答有難うございます.
self._d_out = _GlobalIDL.MyData(RTC.Time(0,0),0,0,[])
と書き換えてみたのですが,書き換える前と同じ
「実行してもRTSystemEditorに表示されず,数秒後に実行が終了する」
という現象に変わりありませんでした.
端末には次の文字だけ表示されます.
comp_args: test
#関係ないかもしれませんが,確かに,idlcompile.shを実行すると"_GlobalIDL"と"_GlobalIDL__POA"が生成されています.
少し中身を調べてみるとtest.pyの265行目あたりの
mgr.runManager()
が実行されて,
/usr/lib/python2.6/dist-packages/OpenRTM_aist/Manager.py
のrunManagerが実行されているようですが,その中の
self._orb.run()
が実行されると,OpenRTMに標準で搭載されているデータポートの型を持つRTCは「待ち」になる様なのですが,
自分のRTCはこの関数が実行された数秒後に関数から抜けてしまいtest.py自体が実行が終了してしまっているようです.
このような問題はどのように解決できますでしょうか.
宜しくお願い致します.
#一応,情報として,RTCBuilderでRTCを生成した際の各パラメータを下に示します.
・Basic
Module name test
Module description test
・Data Ports
Port name out
Data Type MyData
Var Name out
・Language and Environment
Language Python
コードを見てみないとわかりませんが、コンポーネントのコンストラクタで
なにか例外が出ているのではないでしょうか?
コンポーネントのインスタンスを作成するのに失敗して、自動シャットダウン機能
で数秒後にorb.run()から戻って終了しているのではないかと思います。
差支えなければコードを見せてもらえないでしょうか?
安藤
産総研 安藤様
山形大学の秋葉です.
返事が遅れてしまい,申し訳ありません.
RTCBuilderで生成された"test"ディレクトリをそのまま圧縮して添付致します.
しかし,Pythonプログラム自体は前回に栗原様からのアドバイスに沿って1行だけ変更を加えただけであるため,
他のところに原因があるのではないかと考えています.
また,RTC全体のディレクトリを添付する際におそらく"idlcomile.bat"の影響でZIPのまま添付できませんでしたので,
"test.zip”を"test.zip.txt"とリネームして添付致します.
解凍する際には"test.zip"にリネームしなおしてから解凍をお願い致します.
宜しくお願いいたします.
秋葉様
栗原です。
_GlobalIDLがインポートされていないことが原因ですね。
import _GlobalIDL
をimport OpenRTM_aistの下あたりに追加してください。
最新のRTCBuilderでは、import _GlobalIDLは追加されると
思うのですが。
栗原様
山形大学の秋葉です.
アドバイス通りに
import _GlobalIDL
を記述したら正常にRTSystemEditorに表示され,実行が自動的に終了することもなくなりました.
また,今回使用していたRTCBuilderはこれまでにも書きましたように
eclipse342_rtmtools100release_linux_ja.tar.gz
であったため,
OpenRTP 1.1.0-RC4
eclipse381-openrtp110rc4v20130216-ja-linux-gtk.tar.gz
を利用してRTCを制作した結果,test.pyに
import _GlobalIDL
がデフォルトで記述されていることを確認しました.
OpenRTMが1.0系統ならEclipseの方も1.0系統を用いたほうがいいと考えていたため,このように行なっていました.
この質問の前の方で産総研 安藤様に「OpenRTM1.0でもEclipse1.1.0をつかっても問題ない」という事を教えて頂いていたのですが,
問題ないばかりではなく,今回のようにEclipse1.1.0を使ったほうが色々と都合がいいという事がわかったので最新版のeclipseを使っていきたいと思います.
この問題は私が最新のeclipseを使っていないことが原因のようです.
申し訳ありません.
宜しくお願い致します.
山形大学の秋葉直樹と申します.
宜しくお願い致します.
こちらはUbuntu10.04にOpenRTM-aist のC++ ver1.0.2と Python ver1.0.0をインストールしています.
下記のURLを参考に独自型のデータポートを作成しようとしたのですが,
データポート (応用編) | OpenRTM-aist
http://www.openrtm.org/openrtm/ja/content/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%9D%E3%83%BC%E3%83%88-%E5%BF%9C%E7%94%A8%E7%B7%A8#toc1
書かれていることと同様に
~/Document/IDL内に
BasicDataType.idl MyDataType.idl
を置き,
RTCBuilderの設定からIDL File Directoriesを上から
/usr/include/rtc/idl
/home/akiba/Document/IDL
としました.
しかし,「RTCBuilderでの確認」を行おうとした際に,
RTCBuilderを開いてタブを開くと
タブは出てくるのですが,設定画面が表示されなくなってしまいました.
言葉では表現しにくいため,プリントスクリーンの画像を添付致します.
一度eclipseを閉じ,~/Document/IDL/MyDataType.idlを消去してから再度開くとタブも設定画面も表示されます.
質問としては以下の2つがあります.
1)
上記の状態で設定画面を通常通りに表示させるにはどのようにすれば良いのか.
2)
はじめに示したURLの「RTCBuilderでの確認」のところに,赤字で「新規プロジェクトを作成する場合は・・・」とありますが,
"デフォルト・ロケーションの使用のチェック"はどこにあるのか
初歩的な質問かもしれませんが,宜しくお願い致します.
--
/*************************************
山形大学大学院理工学研究科
機械システム工学専攻
秋葉 直樹
*************************************/