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

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

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でも動かしてみます。





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

人気ブログランキングへ
PR
今、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講習会の内容ですが、前日に人工知能学会のRTM講習会がある関係からEV3を使います。

ロボット2台使う贅沢な内容なのですが、あまり人気はないみたいです。
Flipコンポーネントは古臭いので廃止しました。二度とやりません。







Windows 10 IoTにOpenRTM-aistをインストールする手順をまとめました。
とりあえず今までにRaspbianで動くRTCもいくつか作ったのですが全て捨てて、WIndows IoTに徐々に移植する方向で考えたいと思います。








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

人気ブログランキングへ
それにしても、Twitterでopenrtmというアカウント名の人がいるけど、いったい何者なんだ・・・
公式でもないのになぜこんな名前を付けたのかは謎ですが、そっとしておこうと思います。








RTM講習会は関東、関西、九州、北海道、東北、北陸、東海、中国地方で開催したことはありますが、四国では未だに一度も開催されたことがありません。

いくつか理由はあると思うのですが、ROBOMECHが四国では開催しないので講習会を併催することがないということが大きいと思います。つまりいじめです。



計測自動制御学会の中部支部主催でROS講習会があるらしいけど、四国支部のイベントはホームページを見ても何があるのかさっぱりわかりません。



状況を鑑みると、当分は無理そうなのであまり考えないようにします。


結局サマーキャンプの参加人数は残り4人から動かず。
と言うか実は1人減っています。

Githubで僕のリポジトリをフォークした人とかが来るかと期待したのですが、全くそんなことはありませんでした。

まあ予想通りなのであまり気にしてないです。



僕はサマーキャンプ中2回ほど抜ける予定なので、分からないことがあったら偉い人にきいてください。







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

人気ブログランキングへ
カレンダー
07 2019/08 09
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 31
フリーエリア
最新CM
[12/11 Nobu]
[12/11 Kanamura]
[08/24 Nobu]
[08/24 puku]
[08/22 Nobu]
プロフィール
HN:
Nobu
年齢:
30
性別:
男性
誕生日:
1988/09/22
職業:
あれ
趣味:
妄想、自堕落
バーコード
ブログ内検索
P R
カウンター
忍者ブログ [PR]