ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
今、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
これらの変更を施した結果、以下のようにOpenRTM-aist Python版とOpenRTM Lua版で通信ができるようになりました。
炎上するかもしれないので一応言っておきますが、ROMイメージはこのサイトの著作権フリーのものを使っているため、問題はないはずです。嫌がらせはやめてください。

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

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
short
1 1
2 255
3 230
4 0
octet
octet
1 1
2 230
sequence<long>(配列数2)
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イメージはこのサイトの著作権フリーのものを使っているため、問題はないはずです。嫌がらせはやめてください。

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

PR
RTMコンテスト2017の感想を書きます。
予想していた通り最優秀賞は逃しました。特に審査に不満はありません。
それは置いておくにしても、やはり発表の評価が高いのか・・・
それだけ発表を頑張るのだったら、マニュアルの作成も頑張ってほしいです。発表はその場だけですが、作品は後にも残ります。
この作品は今年も評価が低いのか。
作品の出来が良かったので、個人的には賞をあげたかったのですが、作品の良し悪しが審査基準ではない賞なので無理でした。
想像ですが、「今まで○○ができなくて、開発物によって○○ができるようになった」という事が分かり辛いのかもしれません。というか、僕もわかりません。
「こういう問題があったので、この手段で解決しました」、あるいは「こういう物を作ると、この人たちにとっては嬉しい」という過程がよく分かりません。
ただ作ってみたという状態になっているように思います。
僕の賞が該当者なしになったのは残念です。
今年は賞金を払わなくて済んだので、来年は個人賞2つ出します。
来年も作品は出します。
以前から予告していた通りOpenRTM Lua版を出します。楽しみにしていてください。

予想していた通り最優秀賞は逃しました。特に審査に不満はありません。
それは置いておくにしても、やはり発表の評価が高いのか・・・
それだけ発表を頑張るのだったら、マニュアルの作成も頑張ってほしいです。発表はその場だけですが、作品は後にも残ります。
この作品は今年も評価が低いのか。
作品の出来が良かったので、個人的には賞をあげたかったのですが、作品の良し悪しが審査基準ではない賞なので無理でした。
想像ですが、「今まで○○ができなくて、開発物によって○○ができるようになった」という事が分かり辛いのかもしれません。というか、僕もわかりません。
「こういう問題があったので、この手段で解決しました」、あるいは「こういう物を作ると、この人たちにとっては嬉しい」という過程がよく分かりません。
ただ作ってみたという状態になっているように思います。
僕の賞が該当者なしになったのは残念です。
今年は賞金を払わなくて済んだので、来年は個人賞2つ出します。
来年も作品は出します。
以前から予告していた通りOpenRTM Lua版を出します。楽しみにしていてください。
今年は個人賞を出したのですが、残念ながら該当者なしになりそうです。
今から3作品以上にコメントするなんて無理だろうから、ほぼ表彰は無理そうです。
コメントしただけで1万円あげるって言ってるのに、これでは賞を出す意味がありません。
諦めずに来年も出してみようとは思いますが、3年連続該当者なしになった場合は流石に諦めます。
ちなみに明日のRTMコンテストの表彰式は、他の発表が被っているため欠席します。
最後にこの作品の感想を書きます。
正直何ができるのかが全く分かりません。
マニュアルじゃなくてただの概要にしかなっていません。これで他の人が使うのは不可能です。
ソースコードについては、審査で評価するのはMobileRobotShootingGameRTCとARTKMarkerInfoToPose2Dだけでいいのかどうか不明です。
とりあえずC#ラッパーツールについては、WIndows 10 IotでC#のRTCを作成する際に使おうと思います。
ソースコードについてはRTCのカテゴリ名や概要をちゃんと設定しているところは評価できます。設定しないのが悪いのであって、設定していたら褒められる点ではないような気がしますが。
ARTKMarkerInfoをPose2Dに変換しようとしている部分が2箇所ありますが、これは関数で定義して使いまわした方が良かったと思います。
それにしても、pose3_idは一体どこで使っているのだろうか・・・・
データ型についてはMobileRobotShootingGameRTCとRTMAdapterとの間がごちゃごちゃしているので、いっそのことサービスポートを使った方が良かったかもしれません。
あと感想を書いていない作品は僕が関わっているものなので、これで今年は終わりです。

にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
今から3作品以上にコメントするなんて無理だろうから、ほぼ表彰は無理そうです。
コメントしただけで1万円あげるって言ってるのに、これでは賞を出す意味がありません。
諦めずに来年も出してみようとは思いますが、3年連続該当者なしになった場合は流石に諦めます。
ちなみに明日のRTMコンテストの表彰式は、他の発表が被っているため欠席します。
最後にこの作品の感想を書きます。
正直何ができるのかが全く分かりません。
マニュアルじゃなくてただの概要にしかなっていません。これで他の人が使うのは不可能です。
ソースコードについては、審査で評価するのはMobileRobotShootingGameRTCとARTKMarkerInfoToPose2Dだけでいいのかどうか不明です。
とりあえずC#ラッパーツールについては、WIndows 10 IotでC#のRTCを作成する際に使おうと思います。
ソースコードについてはRTCのカテゴリ名や概要をちゃんと設定しているところは評価できます。設定しないのが悪いのであって、設定していたら褒められる点ではないような気がしますが。
ARTKMarkerInfoをPose2Dに変換しようとしている部分が2箇所ありますが、これは関数で定義して使いまわした方が良かったと思います。
それにしても、pose3_idは一体どこで使っているのだろうか・・・・
データ型についてはMobileRobotShootingGameRTCとRTMAdapterとの間がごちゃごちゃしているので、いっそのことサービスポートを使った方が良かったかもしれません。
あと感想を書いていない作品は僕が関わっているものなので、これで今年は終わりです。

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

本当は今回で終わりのはずだったのですが、作品が出そろっていないので次も書きます。
そういえば、今年は個人賞をだしています。
自分以外の作品にコメントを投稿するだけで作品の出来は一切問わない賞なので、欲しければだれでも取れます。まだだれもコメントを投稿してないので非常に不安ですが。
何故か受賞基準が書いていませんが、3作品以上にコメントしないと受賞対象にはなりません。
今日はこの作品の感想を書きます。
一体どういう動作をするのかよくわかりません。ちょっとこのままでは厳しいような気がします。
restartやreset等のコマンドをTimedString型でやり取りするのは使い方が分かりづらいので、サービスポートを使ったほうがよかったと思います。
というか実装方法が根本的に間違っているような感じがします。
どうもAVSdeviceSDKのサンプルを起動するRTCみたいなのですが、AVSdeviceSDKのサンプルコードを参考にしてRTCを実装するのが正解だと思います。

にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
そういえば、今年は個人賞をだしています。
自分以外の作品にコメントを投稿するだけで作品の出来は一切問わない賞なので、欲しければだれでも取れます。まだだれもコメントを投稿してないので非常に不安ですが。
何故か受賞基準が書いていませんが、3作品以上にコメントしないと受賞対象にはなりません。
今日はこの作品の感想を書きます。
一体どういう動作をするのかよくわかりません。ちょっとこのままでは厳しいような気がします。
restartやreset等のコマンドをTimedString型でやり取りするのは使い方が分かりづらいので、サービスポートを使ったほうがよかったと思います。
というか実装方法が根本的に間違っているような感じがします。
どうもAVSdeviceSDKのサンプルを起動するRTCみたいなのですが、AVSdeviceSDKのサンプルコードを参考にしてRTCを実装するのが正解だと思います。

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

今年は作品数が少ないのでここから後半戦です。
今日はこの作品の感想を書きます。
作品の出来はいいと思います。なんで去年あんなに辛い評価だったのかはわかりませんけど。
マニュアルは組み立て方まで記載しており、評価は高そうです。
ただ、肝心の起動スクリプトが・・・なんだか作りが適当というか、微妙な感じがします。
どうでもいいですが、pygameは開発終了しているらしいのでPySDL2を使ったほうがいいかもしれません。
TimedDoubleSeq型やTimedBooleanSeq型ばかりを使用しているのも気になります。
次はこの作品の感想を書きます。
個人的な評価は高いです。シンプルなGUIなのは評価できる点だとは思います。
ただ、RTシステムエディタにはRTシステム復元時に、コネクタやコンフィギュレーションパラメータだけではなく、マネージャからRTCを起動する機能があるので、それをうまく使ったほうが汎用性が高いものが作れたかもしれません。問題はRTシステムエディタのソースコードを編集できる人間が一体何人いるのかという問題がありますが。
というかRTCがノンアクティブ状態という表現は初めて聞いたのですが、これは正しい表現なんだろうか・・・
ソースコードに関しては、もう少しコメント文を書いたほうがいいとは思います。

にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
今日はこの作品の感想を書きます。
作品の出来はいいと思います。なんで去年あんなに辛い評価だったのかはわかりませんけど。
マニュアルは組み立て方まで記載しており、評価は高そうです。
ただ、肝心の起動スクリプトが・・・なんだか作りが適当というか、微妙な感じがします。
どうでもいいですが、pygameは開発終了しているらしいのでPySDL2を使ったほうがいいかもしれません。
TimedDoubleSeq型やTimedBooleanSeq型ばかりを使用しているのも気になります。
次はこの作品の感想を書きます。
個人的な評価は高いです。シンプルなGUIなのは評価できる点だとは思います。
ただ、RTシステムエディタにはRTシステム復元時に、コネクタやコンフィギュレーションパラメータだけではなく、マネージャからRTCを起動する機能があるので、それをうまく使ったほうが汎用性が高いものが作れたかもしれません。問題はRTシステムエディタのソースコードを編集できる人間が一体何人いるのかという問題がありますが。
というかRTCがノンアクティブ状態という表現は初めて聞いたのですが、これは正しい表現なんだろうか・・・
ソースコードに関しては、もう少しコメント文を書いたほうがいいとは思います。

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