Main Content

se2

SE(2) 同次変換

R2022b 以降

    説明

    se2 オブジェクトは、並進と回転で構成される 2 次元同次変換行列として SE(2) 変換を表します。

    詳細については、2 次元同次変換行列のセクションを参照してください。

    このオブジェクトは数値行列のように機能し、乗算と除算を使用して姿勢を構成できるようになります。

    作成

    説明

    回転行列、並進ベクトル、および変換行列

    transformation = se2 は、並進のない恒等回転を表す SE(2) 変換を作成します。

    transformation=[100010001]

    transformation = se2(rotation) は、並進のない、正規直交回転 rotation によって定義された純粋な回転を表す SE(2) 変換を作成します。回転行列は、transformation 行列の左上の要素で表されます。

    rotation=[r11r12r21r22]

    transformation=[r11r120r21r220001]

    transformation = se2(rotation,translation) は、正規直交回転 rotation と並進 translation によって定義された回転を表す SE(2) 変換を作成します。関数は、最初に回転行列を適用し、次に並進ベクトルを適用して変換を作成します。

    rotation=[r11r12r21r22], translation=[t1t2]

    transformation=[r11r12t1r21r22t2001]=[10t101t2001]·[r11r120r21r220001]

    transformation = se2(transformation) は、同次変換 transformation で定義された並進と回転を表す SE(2) 変換を作成します。

    その他の 2 次元回転および変換の表現

    transformation = se2(angle,"theta") は、z 軸を中心とした回転 (ラジアン単位) から SE(2) 変換 transformation を作成します。変換の並進はゼロです。

    transformation = se2(angle,"theta",translation) は、並進 translation を使用し、z 軸を中心とした回転 (ラジアン単位) から SE(2) 変換を作成します。

    transformation = se2(translation,"trvec") は、並進ベクトル translation から SE(2) 変換を作成します。

    transformation = se2(pose,"xytheta") は、2 次元のコンパクトな姿勢 pose から SE(2) 変換を作成します。

    入力引数

    すべて展開する

    正規直交回転。2 行 2 列の行列、2×2×N の配列、スカラーの so2 オブジェクト、あるいは so2 オブジェクトの N 要素配列として指定します。N は回転の合計数です。

    rotation に複数の回転が含まれており、作成時に translation も指定する場合、translation の並進の数は 1 または rotation の回転数と等しくなくてはなりません。結果として得られる変換オブジェクトの数は、引数 translation または rotation のどちらか大きい方の値と等しくなります。

    rotation に 1 つの回転が含まれており、さらに translation を N 行 2 列の行列として指定した場合、結果として得られる変換には、rotation で指定したのと同じ回転と、translation の対応する並進ベクトルが含まれます。結果として得られる変換オブジェクトの数は、translation の変換の数と等しくなります。

    例: eye(2)

    データ型: single | double

    並進。N 行 2 列の行列として指定します。N は並進の総数で、各並進は [x y] の形式になります。

    translation に複数の並進が含まれる場合、rotation の回転数は 1 または translation の並進の数に等しくなくてはなりません。結果として作成される変換オブジェクトの数は、引数 translation または rotation のどちらか大きい方の値と等しくなります。

    複数の並進を指定したが、回転は 1 つだけ指定した場合、結果として得られる変換には、rotation で指定したのと同じ回転と、translation の対応する並進が含まれます。結果として作成される se2 オブジェクトの数は、translation の値と等しくなります。

    例: [1 4]

    データ型: single | double

    同次変換行列。3 行 3 列の行列または 3×3×N の配列、スカラーの se3 オブジェクト、あるいは se2 オブジェクトの N 要素配列として指定します。N は指定された変換の合計数です。

    transformation が配列の場合、作成される se2 オブジェクトの結果の数は N に等しくなります。

    例: eye(3)

    データ型: single | double

    z 軸回転角度。N 行 M 列の行列として指定します。行列の各要素は、z 軸を中心としたラジアン単位の角度です。se2 オブジェクトは、角度ごとに se2 オブジェクトを作成します。

    angle が N 行 M 列の行列の場合、作成される se2 オブジェクトの結果の数は N に等しくなります。

    回転角度は、軸に沿って原点に向かって見ると、反時計回りが正になります。

    データ型: single | double

    3 次元のコンパクトな姿勢。N 行 3 列の行列として指定します。ここで、N はコンパクトな姿勢の総数です。各行は姿勢であり、xy 位置と z 軸を中心とした回転で構成され、形式は [x y theta] です。x と y は xy 位置、theta は z 軸を中心とした回転です。

    pose が N 行 3 列の行列の場合、作成される se2 オブジェクトの結果の数は N に等しくなります。

    データ型: single | double

    オブジェクト関数

    すべて展開する

    mtimes, *変換または回転の乗算
    mrdivide, /変換または回転の右除算
    rdivide, ./要素単位の変換または回転の右除算
    times, .*要素単位の変換または回転の乗算
    interp変換の間で内挿する
    dist変換間の距離を計算する
    normalize変換行列または回転行列を正規化する
    transform剛体変換を点に適用する
    rotm回転行列の抽出
    trvec並進ベクトルを抽出する
    tform同次変換の抽出
    theta変換または回転を 2 次元回転角度に変換する
    xytheta変換または回転をコンパクトな 2 次元姿勢表現に変換する
    so2SO(2) 回転

    すべて折りたたむ

    角度回転 pi/4"xyz" 並進 [6 4] を定義します。

    angle = pi/6;
    trvec = [2 1];

    角度と並進を使用して SE(2) 変換を作成します。

    TF = se2(angle,"theta",trvec)
    TF = se2
        0.8660   -0.5000    2.0000
        0.5000    0.8660    1.0000
             0         0    1.0000
    
    

    アルゴリズム

    すべて展開する

    拡張機能

    C/C++ コード生成
    MATLAB® Coder™ を使用して C および C++ コードを生成します。

    バージョン履歴

    R2022b で導入

    すべて展開する

    参考

    関数

    オブジェクト