- 締切済み
3次元回転の類似度について教えてください
3次元の回転を表すR1,R2があったとき、両者がどの程度「似ているか・近いか」 を表す指標で何かよいものはありますでしょうか? R1=R2のときに最も「似ている」となる指標です。 (回転の表現は回転行列、四元数など何でも構いません。) 具体的には、ある計算に基づいて3次元の回転量補正量(四元数で表現しています) を求めているのですが、計算過程のパラメータが時々刻々と変化する誤差を含んで いるため、計算するたびに異なる結果が出てしまいます。 大半はだいたい「似ている」回転であるようなのですが、たまに大きくズレたものが 出ているようなので、ある評価基準で3次元回転の「似ている・似ていない」 を決めたいと考えています。たとえば四元数の場合だと回転の軸と回転量で 表現されるので、単純にそれぞれ比較・・・というのはちょっと違う気がしています。 よろしくおねがいいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Chippendal
- ベストアンサー率0% (0/0)
- kts2371148
- ベストアンサー率70% (49/70)
関連するQ&A
- 3次元空間の回転行列
3次元空間上の点A(X,Y,Z)と点B(X',Y',Z')があるとします。ただし、点Bは、点Aを原点Oを中心とする3次元空間の回転をさせることによって得られる点とします。 このAをBへと回転させる行列を、特に以下のように考えて得られる回転行列として導出する方法を教えてください。 O,A,Bによって作られる平面に直交し、原点を通る軸を回転軸として、それを軸にAを∠AOB回転させる。 一応自分なりに考えたこの回転行列を求める方法としては、まず ベクトルOA、OBに対してシュミットの直交化を用いて新たな正規直交基底、Vx、Vy、Vzを求めます。ただし、はじめのVxの導出にはOAを用い、VzはVxとVyの外積を計算しました。 次にP=(Vx,Vy,Vz)として座標変換の行列Pを作ります。 そして、求める行列Wを W = PMz(P^-1) (Mzはz軸まわりに∠AOB回転させる行列、P^-1はPの逆行列) として導出しました。 このようにして解く方法を考えたのですが、これは正しいのでしょうか? また、これ以外にもっとスマートに解く方法があれば教えてください。 よろしくお願いします。
- ベストアンサー
- 数学・算数
- 誤差を最小化する相似変換行列の求め方
三次元の変換行列について質問です。 空間上のある3点について、座標変換前と変換後の座標が与えられているとします。 その座標を元に、行った変換の表す行列を知りたいと考えております。 ただし変換は並進と回転のみとし、剪断変形等は行わないという条件です。 (行列は同次変換の形などで得られれば良いです) ただし、変換前と変換後では三点の相対的な位置関係は完璧には一致しておりません。 そのため得られた変換を元の3点に行った際に、変換後の3点の座標(既知)との 誤差を最小化したいという問題です。 変換が相似変換でなければ疑似逆行列により計算が可能と思いますが、 並進・回転のみなのでどうしようか聞きたいと思い質問をしました。 パラメータは「x, y, z 軸方向の並進移動量 + x, y, z 軸周りの回転量」の6つなので、 プログラムを組んで6パラメータを少しずつ変化させ、 誤差の二乗和が最小となる箇所を探すという方法は思いついております。 ですが、その他に行列計算により解析的に答えを得る方法はないでしょうか。 また、変換前後の3点を元に誤差を最小化する変換行列を得ることが可能であるなら、 座標の情報が3点でなくそれ以上の場合でも計算は可能でしょうか。 よろしくお願いいたします。
- 締切済み
- 数学・算数
- wikipediaの四元数を使った三次元の回転の項目について
wikipedia上の四元数について説明してあるページについて質問があります。 http://ja.wikipedia.org/wiki/%E5%9B%9B%E5%85%83%E6%95%B0#.E4.B8.89.E6.AC.A1.E5.85.83.E3.81.AE.E5.9B.9E.E8.BB.A2 三次元の回転の項目に >>回転を表す四元数をq、回転させたいベクトルをv、qの共役四元数をq'とすると、回転後のベクトルv′は >>v′ = qvq' >>で得られる。 と記述してあるのですが、 >>v′ = q'vq ではないのでしょうか? 誰かどちらが正しいのか教えていただけないでしょうか。
- ベストアンサー
- 数学・算数
- 誤差を最小化する相似変換行列の求め方
三次元の変換行列について質問です。 空間上のある3点について、座標変換前と変換後の座標が与えられているとします。 その座標を元に、行った変換の表す行列を知りたいと考えております。 ただし変換は並進と回転のみとし、剪断変形等は行わないという条件です。 (行列は同次変換の形などで得られれば良いです) ただし、変換前と変換後では三点の相対的な位置関係は完璧には一致しておりません。 そのため得られた変換を元の3点に行った際に、変換後の3点の座標(既知)との 誤差を最小化したいという問題です。 変換が相似変換でなければ疑似逆行列により計算が可能と思いますが、 並進・回転のみなのでどうしようか聞きたいと思い質問をしました。 パラメータは「x, y, z 軸方向の並進移動量 + x, y, z 軸周りの回転量」の6つなので、 プログラムを組んで6パラメータを少しずつ変化させ、 誤差の二乗和が最小となる箇所を探すという方法は思いついております。 ですが、その他に行列計算により解析的に答えを得る方法はないでしょうか。 また、変換前後の3点を元に誤差を最小化する変換行列を得ることが可能であるなら、 座標の情報が3点でなくそれ以上の場合でも計算は可能でしょうか。 質問は数学のようですが、この手の計算はCGや画像処理等で多く行われていると 感じたことから、情報工学カテゴリーで質問をさせて頂きました。 よろしくお願いいたします。
- 締切済み
- 情報工学
- テンソル代数を表現する多元数は有りますか。
多元数と言っても、2重化の繰り返しで生成するものではなく、和田博著『ベクトルを回す複素数・四元数・... ・多元数』、『ベクトルの回転演算子』で発表された、結合法則が完璧に成り立つ多元数ですが。 複素数や四元数は、行列を表現でき、逆もまた真らしいですが。
- ベストアンサー
- 数学・算数
- 3次元空間における平行回転移動の行列を使ったプログラム
Cまたは、C++で、3次元空間における (x,y,z)成分4点で出来ている四角形を任意に入力して、 XY平面と平行になるように回転したのちに平行移動をする行列を使ったプログラムを作りたいのですが、行列の計算がうまくいきません。 知識不足なのは自覚しています。。。 ソースを比較して勉強したいと思っています。よろしくお願いします。
- 締切済み
- C・C++・C#
- 3次元のリッチスカラー 一般相対論 リーマン幾何
3次元球面のリッチスカラー曲率についての疑問です。 よく知られたように、2次元球面(半径r)のガウス曲率はK=1/r^2 で、 リッチスカラー曲率はR=2/r^2 です。両者にはR=2Kの関係があります。 本やwikipediaなどによると、 一般的に、半径rのn次元球面のリッチスカラー曲率はR=n(n-1)/r^2 となるようです。(ガウス曲率との関係は R=n(n-1)K です) http://ja.wikipedia.org/wiki/%E3%82%B9%E3%82%AB%E3%83%A9%E3%83%BC%E6%9B%B2%E7%8E%87 そうすると、3次元球面のリッチスカラー曲率は R=6/r^2 になります。 (閉じたロバートソン・ウォーカー時空の、空間部分にあたるものです) ここで疑問なのですが、なぜ3次元の曲がりなのに、 r^2のような2次元の曲がりの量を用いて表現可能なのでしょうか? 2次元の曲率が1/r^2 に関係する量になることは、 ガウス曲率の定義(1次元の曲率 1/r の2方向の曲がりの積を取る) などからも素直に理解できます。 3次元で素直に考えると、3次元のガウス曲率は3方向の曲がりの積を取り、 1/r^3のように表現され、リッチスカラー曲率もr^3の逆数に比例する量で 表されそうな気がしてしまいます。 「空間の曲がり」が「曲面の曲がり」で表現できてしまう事が どうもよく分からずにいます。どうぞよろしくお願い致します。
- 締切済み
- 物理学
- 3次元の回転角度の求め方について教えてください。
3次元の回転角度の求め方について教えてください。 3軸の加速度センサーがあります。 まず加速度センサーのZ軸を重力方向に置いたときの加速度センサーの値を(x1,y1,z1)=(0,0,1)とします。 加速度センサーのx軸、y軸、z軸をそれぞれ回転させたあとの加速度センサーの値を(x2,y2,z2)とします (このとき加速度センサーは静止しているので、センサーの値は重力の分力になります)。 (x2,y2,z2)が既知のとき(x1,y1,z1)に戻すためのそれぞれの回転角はどのように求めれば良いのか教えてください。 (x2,y2,z2)→(x1,y1,z1)へ移動するときの回転角を φ(z軸の回転角)、ψ(x軸の回転角)、θ(y軸の回転角) とします。 回転行列 (x1) = (cosφ -sinφ 0) (cosθ 0 sinθ) (1 0 0 ) (x2) (y1) = (sinφ cosφ 0) (0 1 0 ) (0 cosψ -sinψ) (y2) (z1) = (0 0 1) (-sinθ 0 cosθ) (0 sinψ cosψ ) (z2) より,3行3列の行列を計算すると 0=cosφcosθx2 + (-sinφcosψ+cosφsinθsinψ)y2+(sinφsinψ+cosφsinθcosψ)z2 0=sinφcosθx2 + (cosφcosψ+sinφsinθsinψ)y2+(-cosφsinψ+sinφsinθcosψ)z2 1=-sinθx2 + cosθsinψy2 + cosθcosψz2 となると思うのですが、この式からφ、ψ、θが導きだせません。 どうすれば求めることができるか教えていただけますか。
- ベストアンサー
- 数学・算数
- 剛体運動の回転方向について
コンピュータを使って、3次元空間での剛体の回転運動のシミュレーションを作っております。回転について少し混乱してきたので、教えてください。 物体の基本姿勢での慣性テンソルを Iobj 時刻tでの角運動量を L(t) 時刻tでの角速度を ω(t) 時刻tでの姿勢を θ(t) 時刻tでの姿勢を表す回転行列を R(t) (基本姿勢を時刻tでの姿勢に回転させる行列) としたときの回転を考えると、 ω(t) = (R(t) Iobj R(t)')^-1 L(t) (R(t)' は R(t) の転置行列です) θ(t) = θ(t-Δt) + ω(t)Δt となることが分かってきました。ここで、最初の行で求まる ω(t) というのは、ワールド座標系(物体の外側の変化しない観測者)から見た方向の速度なのでしょうか?それとも、ローカル座標系(物体の現在の姿勢)から見た方向の速度なのでしょうか? 自分でも混乱していますので何か間違えているかもしれませんが、回転の基準について分からなくなってきたので、教えてください。
- ベストアンサー
- 物理学
お礼
ご回答ありがとうございます. なるほど、比例定数の(4π/3)を除いて考えると 単純な回転行列の自乗ノルムになるということですね。 なんとも衝撃的な(当たり前ですか??)結果です。 P,Qによって移された点間の距離を直線で測っている 問題はありますが、距離の要件は満たしているので これで十分実用になりそうです。 ありがとうございました。