[openrtm-users 01190] Re: ExtendedDataTypes.idl

Masayuki Shimizu masayuki.shimizu @ aist.go.jp
2010年 4月 15日 (木) 21:04:24 JST


皆様

静岡大の清水です。

姿勢表現に関して一つ意見があります。

姿勢角度の範囲を[0, 2\pi]に固定するとありましたが、
その必要はないと思います。

ロール・ピッチ・ヨーやオイラー角の場合は、
3軸の連続した回転による姿勢表現なので、
各軸回りの回転角で姿勢変化の量をも表していると
とらえることもできます。

例えば、1.5\piと-0.5\piは姿勢としては同じですが、
姿勢変化の過程が異なり、0を基準姿勢とすると、
前者は回転軸に関して反時計回りに1.5\piだけ回転、
後者は時計回りに0.5\piだけ回転した後の姿勢
であるとみなすことができます。

姿勢表現にその変化の過程を含めるか否かの違いですが、ロー
ル・ピッチ・ヨーやオイラー角の定義からすると、
変化の過程も含まれると考えるのが自然では
ないかと思います。
皆様のご意見をお聞かせください。

清水

--- Masaharu Shimizu <shimi @ furo.org> wrote:

> 安藤様
> ジェフ様
> 
> 清水@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 メーリングリストの案内