忍者ブログ
ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
[1]  [2]  [3]  [4]  [5]  [6]  [7]  [8]  [9]  [10]  [11
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

OpenRTM Lua版は見てわかる通りファイル一式で2MB程度のサイズです。
あとはテキストエディタがあればLuaのRTCを開発可能なため、OpenRTM-aistのインストーラーが900MBもあることを考えると非常に軽量です。

後はツールがあればいいのですが、GUIのツールはどうしても容量が必要なので難しいかもしれません。
RTC Builder on the WEBが使えればいいけど、当然Luaのコードなんか出してくれないし。

最大の問題はRT System Editorですが、自分の環境で開発するのであればRT System Editor on the WEBを使うのは微妙です。
だれかLua版rtshellを作ってくれたら、コンテストで賞あげます。





とりあえずRTC BuilderでLuaソースコードを出力するプラグインを作成したので、自分でRTC Builderのプラグインのビルドができる人は試してみてください。
onExecute関数の前とかに謎のスペースが入っていますが、これは今のところ解決手段がないです。
テンプレートのファイルに${def}と書くとdefと表示されるのですが、${function}と書いてもfunctionとは表示されません。これはRTCBuilder本体のTemplateUtil.javaというソースコード内に処理を記述しているので、プラグイン側ではどうしようもありません。





あとLuaRocksに対応したので、以下のようにコマンドでインストールできるようになりました。


git clone https://github.com/Nobu19800/RTM-Lua.git
cd RTM-Lua
sudo luarocks --local make




OpenRTM Lua版のバージョン0.2を3月中にリリースする予定でしたが、まだロガー機能の実装が残っています。遅れても誰も気にしないと思うので、他のことを優先します。




とりあえず、2か月ぐらい前に追加したOpenRTM Lua版のデモ動画を載せ忘れていたので載せておきます。











にほんブログ村 科学ブログ ロボットへ
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・

人気ブログランキングへ
PR
今回はただのメモです。

TAOでオブジェクトリファレンスに複数のエンドポイントが設定されている場合に、接続するエンドポイントの優先順位を入れ替える手順についてメモします。

まずエンドポイントなどのプロファイルを表示する手順はこのコードのように書けばいいようなので特に説明はしません。

エンドポイントの優先順位を入れ替えるには以下のようなコードを書きます。



CORBA::Object_var obj = orb->string_to_object(ior);
TAO_Stub *stub = obj->_stubobj();
//プロファイルの一覧取得
TAO_MProfile profiles = stub->base_profiles();
//試しに先頭のプロファイルを削除してみる
profiles.remove_profile(profiles.get_profile(0));
//プロファイルを再設定する
stub->base_profiles(profiles);



これでいいみたいです。








にほんブログ村 科学ブログ ロボットへ
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・

人気ブログランキングへ
OpenRTM Lua版 0.1をリリースしました。

マニュアルはここです。

RTシステムエディタやネームサーバーはないので、OpenRTM-aistをインストールしてください。

最大の問題は現状のDataPort.idlが読み込めないため、OpenRTM-aist 2.0系でないと通信ができないことだとは思うのですが、解決できそうにありません。


とりあえず、OpenRTM-aistと通信したい場合は、Python版かjava版をソースコードからインストールしてください。Python版とJava版はFSM4RTCのDataPort.idlに対応しているので通信できます。
C++版は現在のところ対応してないのでデータポートの通信はできません。OpenRTM.NETとも通信できません。



データポートのコールバック、コネクタのコールバックなど、リスナ関連の機能はほぼ未実装です。あとRTCを動的にロードする機能もないです。複合コンポーネントもありません。


OpenRTM Lua版は今年のRTMコンテストに出すので、とりあえず12月ぐらいまでに足りない部分は実装するようにします。あと実用例を増やさなければならないので、ComputerCraftでも動かしてみます。





にほんブログ村 科学ブログ ロボットへ
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・

人気ブログランキングへ
今、OpenRTM Lua版の実装をしているのですが、それなりに苦戦しています。

C++版やPython版の機能が多くなりすぎて、どこから手を付けていいのかよくわかりません。

仕様通りに実装すれば、ほかの実装と相互通信できるはずなので、C++版やPython版を参考にして作るのはやめたほうがいいかもしれません。不可解な処理も多いし。例えばポートを切断する箇所でdisconnect関数内でコネクタプロファイルに格納したすべてのポートのnotify_disconnect関数を呼び出しているにも関わらず、notify_disconnect関数内でコネクタプロファイルの次のポートのnotify_disconnect関数を呼び出そうとしている箇所は意図がよくわかりません。



CORBAのLua実装のoilにはwchar型やwstring型が存在しないらしく、BasicDataType.idlに修正が必要です。
あとoilは同一プロセス内でオペレーションを呼び出すと、引数のオブジェクトリファレンスを自動的に実体で渡してくれる有難迷惑な動作をするらしく、_is_equivalentで比較する部分など大幅な修正が必要です。
それから2つのIDLファイルで異なる#pragma prefix、同じモジュール名を設定した場合にエラーが出るため、OpenRTM-aistのIDLファイルに変更が必要です。
それからマーシャリングしたデータのサイズが何故か違います。long型が8、short型が4、TimedLong型が16と滅茶苦茶です。

とりあえずマーシャリング後のバイナリデータの中身を調べてみました。

long
1       1
2       255
3       255
4       255
5       230
6       0
7       0
8       0

short
1       1
2       255
3       230
4       0

octet
1       1
2       230


sequence<long>(配列数2)
1       1
2       255
3       255
4       255
5       2
6       0
7       0
8       0
9       123
10      0
11      0
12      0
13      234
14      0
15      0
16      0


Time
1       1
2       255
3       255
4       255
5       35
6       0
7       0
8       0
9       234
10      0
11      0
12      0



TimedLong
1       1
2       255
3       255
4       255
5       35
6       0
7       0
8       0
9       234
10      0
11      0
12      0
13      23
14      0
15      0
16      0
先頭の1が何の意味があるのかがよく分からないので、他のRTM実装と通信する場合は削除します。そのあとに255が0~3個並んでいます。確かではありませんが、本来のデータサイズが1の時は255が0個、2の時は255が1個、4以上の時は3個となっているようなので、適宜変更するようにします。


これらの変更を施した結果、以下のようにOpenRTM-aist Python版とOpenRTM Lua版で通信ができるようになりました。








炎上するかもしれないので一応言っておきますが、ROMイメージはこのサイトの著作権フリーのものを使っているため、問題はないはずです。嫌がらせはやめてください。





にほんブログ村 科学ブログ ロボットへ
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・

人気ブログランキングへ
RTMコンテスト2017の感想を書きます。

予想していた通り最優秀賞は逃しました。特に審査に不満はありません。



それは置いておくにしても、やはり発表の評価が高いのか・・・
それだけ発表を頑張るのだったら、マニュアルの作成も頑張ってほしいです。発表はその場だけですが、作品は後にも残ります。



この作品は今年も評価が低いのか。
作品の出来が良かったので、個人的には賞をあげたかったのですが、作品の良し悪しが審査基準ではない賞なので無理でした。
想像ですが、「今まで○○ができなくて、開発物によって○○ができるようになった」という事が分かり辛いのかもしれません。というか、僕もわかりません。
「こういう問題があったので、この手段で解決しました」、あるいは「こういう物を作ると、この人たちにとっては嬉しい」という過程がよく分かりません。
ただ作ってみたという状態になっているように思います。





僕の賞が該当者なしになったのは残念です。
今年は賞金を払わなくて済んだので、来年は個人賞2つ出します。



来年も作品は出します。
以前から予告していた通りOpenRTM Lua版を出します。楽しみにしていてください。










&lt;&lt; 前のページ 次のページ &gt;&gt;
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
フリーエリア
最新CM
[08/31 ysuga]
[08/31 Nobu]
[08/31 ysuga]
[12/11 Nobu]
[12/11 Kanamura]
最新TB
プロフィール
HN:
Nobu
年齢:
35
性別:
男性
誕生日:
1988/09/22
職業:
あれ
趣味:
妄想、自堕落
バーコード
ブログ内検索
P R
カウンター
忍者ブログ [PR]