[openrtm-users 02956] Re: OpenRTM-aist関連仕様の提案[クオータニオンデータ型]

ts suehiro @ is.uec.ac.jp
2013年 11月 20日 (水) 17:46:12 JST


ジェフ様,皆様,

末廣です.

(2013/11/20 14:13), Geoffrey Biggs wrote:
> 産総研 ジェフです。
> 
> 2013/11/20 ts <suehiro @ is.uec.ac.jp <mailto:suehiro @ is.uec.ac.jp>>
> 
>     (1) クオータニオンデータ型は不要ではないでしょうか.
>     この提案は一般のクオータニオンではなく姿勢表現のためのものと
>     理解しています(これが誤解でしたらご指摘ください).
>     クオータニオンが姿勢を表現するのに便利であることは理解しています.
>     しかし,データ交換用の表現として便利かどうか疑問があります.
> 
> 
> 必要だと思います。全ロボットシステムの中で、角度はすべてクオータニオンに
> するとデータ型変換が減るはずですし、誤解が原因のバグも少なくなるはずですし。
> 
> コンポーネントがかなり大きかったら、流れているところは少ないかもしれませ
> んが、コンポーネントが小さくて例えばナビゲーションシステムはコンポジット
> コンポーネントで作られたら、クオータニオンのデータ型があると便利で安心だ
> と思います。


たとえばOpenCVでは,座標変換は[R|t]で表現されます.
クオータニオンはこのRの部分に相当する訳ですが,
これをクオータニオンで扱うのが主流とは思えません.

プログラムとしては行列とベクトルで扱うのが普通(私の仮説)
ならデータ交換用もその方が便利ではありませんか?

内部の演算にクオータニオンを用いると便利なことがあるのは想像できます.
私も姿勢の軌道を作るときは回転角と回転軸を求めて(ロドリゲスかな)
計算しています.もともとクオータニオンなら少し楽かなとは思います.

でもportでやり取りするときにクオータニオンが必要でしょうか?

>     (2) 同様に現存のOrientation3D型も不要ではないかと思います.
>     このOrientation3Dは,rpyで表現されていますが,
>     それぞれがどの軸まわりか常に混乱が伴うものです.
>     その合意が取れれば人間にとって分かりやすいものではありますが,
>     データ交換用の表現として便利かどうか同様に疑問があります.
> 
> 
> Orientation3Dのメンバーの名前は編集が必要だと私も思います。

私はこれはメンバーの名前だけの問題だとは思っていません.
portでやり取りするときに間違いが多いrpyが必要でしょうか?
人間とのインタフェースには良いとは思いますが,
RTC間のインタフェースには無用ではないでしょうか.
したがってPose3Dも問題ありです.

>  行列はよく使われているなら、そのためのデータ型も提案した方がいいと思い
> ます。しかし、行列もクオータニオンも同時にOpenRTMに存在できない理由にな
> らないと思います。両方があると、コンポーネント開発者は自分の要求によって
> 適切なデータ型が使えて、他の開発者はそのデータ型が分かります。

内部で適切なデータ型を使うのは全く構いませんが,
portでやり取りするときに何通りもの表現が
あるのは混乱ではありませんか?

私は,
クオータニオンのメリット:データが4つでコンパクト,
デメリット:多くの場合,内部で行列に変換することになる,
と考えています.

この得失を比較して,データは9つになるけど行列の方が
汎用性が高いのでデータ交換用には良いのではないかと
考えているのですがいかがでしょうか?

皆様,ご議論,よろしくお願いします.
-- 
Takashi Suehiro, Professor, Intelligent Systems Lab,
Graduate School of Information Systems,
the University of Electro-Communications
Tel: +81-424-43-5655 Fax: +81-424-43-5682
E-mail: suehiro @ is.uec.ac.jp
1-5-1 Chofugaoka, Chofu, Tokyo 1828585, Japan


More information about the openrtm-users mailing list