articles:frame

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
articles:frame [2021/06/14 12:13] – [逆変換] Takashi Suehiroarticles:frame [2022/03/04 09:02] (現在) – [まとめ] Takashi Suehiro
行 48: 行 48:
  
 [{{ articles:frame_03.png?300|図3 位置ベクトルの座標変換}}] [{{ articles:frame_03.png?300|図3 位置ベクトルの座標変換}}]
-図3は位置ベクトルの座標変換を示している.位置ベクトルの場合は座標系の原点位置に依存するので +図3は点Pに対する位置ベクトルの座標変換を示している.位置ベクトルの場合は座標系の原点位置に依存するので 
-計算がもう少し複雑になる.+計算がもう少し複雑になる.座標系$\Sigma_0$から見た点Pの位置ベクトル$^0\boldsymbol{p}$はベクトルとしては 
 +座標系$\Sigma_0$の原点から座標系$\Sigma_1$の原点へのベクトル$^0\boldsymbol{d}_1$と, 
 +座標系$\Sigma_1$の原点から点Pへのベクトル$^1\boldsymbol{p}$を加えたものになる. 
 +ただし$^1\boldsymbol{p}$は座標系$\Sigma_1$での成分表示になっているため 
 +座標系$\Sigma_0$への成分表示に変換して加える必要がある.したがって,
  
 $$ $$
 ^0\boldsymbol{p} = {^0A_1} {^1\boldsymbol{p}}+^0\boldsymbol{d}_1 \tag{4} ^0\boldsymbol{p} = {^0A_1} {^1\boldsymbol{p}}+^0\boldsymbol{d}_1 \tag{4}
 $$ $$
 +となる.
  
 図が煩雑になるので座標系$\Sigma_2$は描かれていないが同様に, 図が煩雑になるので座標系$\Sigma_2$は描かれていないが同様に,
行 71: 行 76:
 ==== 座標系の変換の連鎖 ==== ==== 座標系の変換の連鎖 ====
  
-図2に戻って見ると,座標系$\Sigma_0$から見た座標系$\Sigma_2$の原点位置$^0\boldsymbol{d}_2$は,座標系$\Sigma_2$からみた自身の原点位置は$0$なので式(5)で$^2\boldsymbol{p}=\boldsymbol{0}$として計算できる.+図2に戻って見ると,座標系$\Sigma_0$から見た座標系$\Sigma_2$の原点位置$^0\boldsymbol{d}_2$は,座標系$\Sigma_2$からみた自身の原点位置は$0$なので式(6)で$^2\boldsymbol{p}=\boldsymbol{0}$として計算できる.
  
 $$ $$
行 148: 行 153:
             \right)             \right)
 $$ $$
-とすると,式(6),(7)より,+とすると,式(7),(8)より,
 $$ $$
 {^0T_1}{^1T_2} = \left( \begin{array}{c}  {^0T_1}{^1T_2} = \left( \begin{array}{c} 
行 163: 行 168:
 となり,すなわち となり,すなわち
 $$ $$
-{^0T_2}={^0T_1}{^1T_2} \tag{10}+{^0T_2}={^0T_1}{^1T_2} \tag{11}
 $$ $$
-のように,座標系の姿勢のみを表現した直行列の変換と類似の分かりやすい記法となる.+のように,座標系の姿勢のみを表現した直行列の変換と類似の分かりやすい記法となる.
  
 ==== 同次変換行列の逆行列(逆変換) ==== ==== 同次変換行列の逆行列(逆変換) ====
  
-式(8),(9)より,+式(9),(10)より,
 $$ $$
 {^1T_0} = \left( \begin{array}{c}  {^1T_0} = \left( \begin{array}{c} 
行 180: 行 185:
             \end{array}             \end{array}
             \right)             \right)
-            \tag{11}+            = {^0T_1^{-1}} 
 +            \tag{12}
 $$ $$
-これが逆行列になっていることは,式(10)の$^1T_2$にこの$^1T_0$を代入して計算するとすぐに分かる.+これが$^0T_1$の逆行列になっていることは,式(10)の$^1T_2$にこの$^1T_0$を代入して計算するとすぐに分かる.
  
 ==== 同次変換行列と位置ベクトルの積 ==== ==== 同次変換行列と位置ベクトルの積 ====
行 222: 行 228:
    =\left( \begin{array}{c} {^0A_1} {^1\vec{\boldsymbol{p}}}+^0\boldsymbol{d}_1 \\ 1 \end{array} \right)     =\left( \begin{array}{c} {^0A_1} {^1\vec{\boldsymbol{p}}}+^0\boldsymbol{d}_1 \\ 1 \end{array} \right) 
        
-    \tag{12}+    \tag{13}
 $$ $$
  
 として座標変換に伴う位置ベクトルの変換がシンプルににかける. として座標変換に伴う位置ベクトルの変換がシンプルににかける.
 +
 +さらに座標系を連鎖させた場合の位置ベクトルも
 +$$
 +^0\boldsymbol{p} = {^0T_1}{^1T_2}{^2\boldsymbol{p}} \tag{14}
 +$$
 +のように簡単に表記できることは,式(13)ないしは式(11)を用いて計算すると
 +式(6)と一致することからすぐ分かる.
  
 ==== 同次変換行列とベクトルの積 ==== ==== 同次変換行列とベクトルの積 ====
行 266: 行 279:
 表現した方が素直ではある. 表現した方が素直ではある.
  
 +===== まとめ =====
 +
 +座標系の姿勢と位置の表現(ないしはその変換の表現)に同次変換行列を用いることで変換の連鎖が
 +$$
 +{^0T_2} = {^0T_1}{^1T_2}
 +$$
 +などの形式で容易に表現できる.
 +
 +また位置ベクトルも,
 +$$
 +^0\boldsymbol{p} = {^0T_1}{^1\boldsymbol{p}}
 +$$
 +の形で分かりやすく表現出来る.
 +
 +同次変換行列を,たとえば任意のある座標系のz軸方向10.0[m]など,特定の座標系によらない座標変換に用いる場合は,
 +左上の参照座標系の表示をしないことが多い.
 +
 +同次変換行列による表現はとても便利なものであるが,最初に述べたようにプログラムで実装する際は
 +座標系の連鎖やそれに伴うベクトルの変換などの機能が実現できていれば
 +内部表現を必ずしも4x4の行列にする必要はない.
 +
 +===== プログラムと練習問題 =====
  
 +[[articles:geo_basic#FRAME|座標系演算のプログラム]]
  
 +[[articles:geo_manual#座標系(FRAME)|練習問題]]
  
  • articles/frame.1623640383.txt.gz
  • 最終更新: 2021/06/14 12:13
  • by Takashi Suehiro