[openrtm-users 01189] Re: ExtendedDataTypes.idl

Masaharu Shimizu shimi @ furo.org
2010年 4月 15日 (木) 19:53:42 JST


安藤様
ジェフ様

清水@fuRoです。

ExtendedDataTypes.idlの経緯の説明ありがとうございました。

なるほど、ORCA2、ROS、Player等のデータ型を参考にされてるのですね。
是非、機会があれば学会などで上記のロボット用ミドルェアでどのようなデータ型
やIF型を利用されていて、その調査の結果、ExtendedDataTypes.idlや
InterfaceDataTypes.idlにまとめたお話しを聞いてみたいですね。

移動ロボットに関する部分しか見渡せていませんが、ざっと見た感じ大きな問題点
はなさそうです。

とりあえず気がついたのは以前のメールにも書きましたが右・左手座標系、角度の
表現ぐらいです。

> bの場合は二つのデータ型があったらどうでしょうか。Pose2DLHとPose2DRHとか
> のようにしたら、開発者は両方から選べるし、もし使えたいコンポーネントは
> Pose2DLHで出力して、Pose2DRHのInPortに接続したかったら、データ型を変身す
> るコンポーネントは簡単に書けるし、こうしたら皆にいい方法でしょうか。
自分は、どちらかに決めてしまった方がよいかと思います。
ただ、これも他のロボット用ミドルウェアに合わせられるのであれば合わせたが良
いかと。

> 後、角度のことですが、たぶん皆が0〜2πを使ったら一番簡単と思います。
Poseの角度は上記でよいかもしれないですね。


最後に、
InterfaceDataTypes.idlのなかで間違えと思われる場所を見つけたので報告します。

struct Waypoint2D
{
 /// Location of the waypoint.
 Pose2D target;
 /// How far away from the waypoint is considered success (radius in metres).
 double distanceTolerance;
 /// How much off the target heading is considered success (in radians).
 double headingTolerance;
 /// Target time to arrive at the waypoint by.
 Time timeLimit;
 /// Maximum sped to travel at while heading to the waypoint.
 Pose2D maxSpeed;  <-------------- Velocity2Dの間違い?
};

同じ間違いがWaypoint3Dにもあります。


以上、宜しく御願いします。



(2010/04/14 7:17), Geoffrey Biggs wrote:
> 清水様
> 
> 産総研のジェフです。
> 
> もう一つの点ですが、今年の3月、ヨーロッパのOrocosの開発者と相談して、
> OrocosもCommon data typesに興味があります。Orocosの開発者とROSの開発者と
> この話題について相談しました。まだ決定はありませんが、全部のフレームワー
> クは同じデータ型を使うようにしたがります。そのために、一つのフレームワー
> クに含めなくて、違うところから取るデータ型を作るに考えています。でも、皆
> の賛成をいただくことは難しいからそこまでできるかどうかまだ分かりません。
> 
> 
> On 14/04/10 06:57, Geoffrey Biggs wrote:
>> 清水様
>>
>> 産総研のジェフです。
>>
>> ExtendedDataTypes.idlとInterfaceDataTypes.idl は標準というわけではありま
>> せんがOpenRTMのユーザ間で議論できるようにたたき台として作成しました。こ
>> こで定義されているデータ型、インターフェース定義は、移動ロボットの代表的
>> ミドルウエアであるPlayerや、ORCA2や、Willow Garage の ROSで使われている
>> ものを参考にして作成しました。
>>
>> このデータ型、インターフェース型の定義は未完成で、いろいろ間違っていると
>> ころがあると思いますが、移動ロボットや、マニピュレータなどそれぞれの専門
>> の人たちからコメントをもらって、徐々に修正していけばいいのではと考えてい
>> ます。今回、清水様からこのように右手系、左手系についてコメントをいたい
>> て、さらに詳しく、メーリングリストで議論できれば幸いです。
>>
>> もちろん、多くの人がこれらのデータ型やインターフェース型を使い始めたら変
>> 更するのは難しくなりますが、バージョンが変わればAPIの変更が行われる事は
>> ソフトウエア開発では普通のことだと思いますし、いまはまだあまり使っている
>> 人がいないので、議論するにはいい時期だと思います。
>>
>> bの場合は二つのデータ型があったらどうでしょうか。Pose2DLHとPose2DRHとか
>> のようにしたら、開発者は両方から選べるし、もし使えたいコンポーネントは
>> Pose2DLHで出力して、Pose2DRHのInPortに接続したかったら、データ型を変身す
>> るコンポーネントは簡単に書けるし、こうしたら皆にいい方法でしょうか。
>>
>> 後、角度のことですが、たぶん皆が0〜2πを使ったら一番簡単と思います。
>>
>>
>> ところで、使い方のもっと詳しくのは以下のページにあります。まだほとんど英
>> 語ですみません。
>>
>> http://www.openrtm.org/OpenRTM-aist/html/E382B3E383B3E3839DE383BCE3838DE383B3E38388.html
>>
>>
>> よろしくお願いいたします。
>>
>>
>> On 13/04/10 19:22, Masaharu Shimizu wrote:
>>> RTM開発者の皆様
>>>
>>> 未来ロボット技術研究センターの清水です。
>>>
>>> RTM1.0になりExtendedDataTypes.idlなるIDL定義が追加されています。
>>> このIDLには、添付ファイルを見ていただければわかりますが、位置や速度といっ
>>> た物理量についての定義も含まれています。
>>> (また、InterfaceDataTypes.idlというGPS、サーボモータ、グリッパなどのIFを
>>> 定義したIDLも追加されています。これらを使っている方は一度チェックしてみて
>>> はいかがでしょう)
>>>
>>> すでにRTMに標準で組み込まれていると言うことでNEDO知能化PJ内の我々のグルー
>>> プでもなるべくExtendedDataTypes.idlに記載されているデータ型を取り込む形で
>>> 共通定義をまとめております。
>>> (現状、RTC::TimedPose2Dなどそのまま利用するのではなくRTC::Pose2D型にtm,ID
>>> やエラーを追加した最終的には独自型になっていますが。)
>>>
>>> この共通定義をまとめている議論で、
>>>
>>> a)そもそもExtendedDataTypes.idlはどういった経緯でRTM1.0に標準で組み込まれ
>>> ることになったのか
>>>
>>> b)コメントに書いてある単位(メートルやラジアン)以外に少なくとも座標系が右
>>> 手系なのか左手系なのかぐらい記述がないと標準で組み込まれているだけに、それ
>>> ぞれが同じデータ型を使っているのにもかからず上記の違いで混乱することが予想
>>> される。
>>>
>>> といった論点が出てきました。
>>>
>>> a)については、標準で組み込まれていることで積極的に採用させていただこうと考
>>> えています。が、我々の活動と同じような活動が産総研さん内で行われているので
>>> あれば、経緯など教えていただけると、車輪の再発明ではないですが同じ議論をせ
>>> ずにすむなーといったところです。
>>> また、たたき台というか標準で組み込まれているということで、この型をもとに議
>>> 論できたので非常に進めやすかったですし、今回我々の議論では、
>>> ExtendedDataTypes.idlに独自に追加する部分は有りましたが、基本は変更無しで
>>> 進められましたので問題有りませんでした。
>>> しかし、場合によっては違う表現定義の適切ではないかと言う時に、標準組み込ま
>>> れているIDLは、すでにそれを利用して開発している場合もありなかなか変更する
>>> ことが難しいのではないかと印象を持ちました。
>>> 上記の懸念はありますが、充分練って作成しておられるかと思うので実際に問題に
>>> ならないかもしれませんね。
>>>
>>> b)ですが、余談でOpenGLとDirectXで右手系、左手系が違うのは有名ですが、
>>> ExtendedDataTypes.idlなるIDL定義を標準で組み込むからには、OpenRTM-aistで採
>>> 用する座標系を明示した方が良さそうですがいかがでしょう?
>>> ちなみに我々の知能化PJでは右手系でロボット中心座標系に関しては、添付ファイ
>>> ルのような定義をしています。
>>>
>>> また、これは細かい点ですが、ExtendedDataTypes.idlにも定義されているロボッ
>>> ト位置姿勢を示すPoseの方位角で
>>> ・0〜2π
>>> ・-π〜π
>>> などいろいろな表現があってこれらもあってないとIFを接続するときに混乱の基に
>>> なります。ただ、このレベルまでRTMで定義するのかといった点は、議論する必要
>>> 有るかと思います。
>>> (ちなみに、我々の活動では、姿勢表現なので0〜2πの多回転無しとしました)
>>>
>>> 以上ですが、何かコメントいただけると幸いです。
>>>
>>> 宜しく御願い致します。
>>
> 
> 

-- 
 One for all.  |     |  清水 正晴, 上席研究員, 博士(工学)
 All for one.  |     |  未来ロボット技術研究センター, 千葉工業大学
      o/     0 |_____|  e-mail: shimi @ furo.org   web: www.furo.org
     /U___     |     |  tel: 047-478-0567  fax: 047-478-0568
      /



openrtm-users メーリングリストの案内