- KVKV-X
クォータニオンFUNライブラリ
クォータニオンとは
クォータニオン(Quaternion)は3次元空間の回転を表現するための数学モデルです。
ロボット制御、ドローン制御、姿勢制御、3Dグラフィックスなどで広く使用されています。
オイラー角ではジンバルロックが発生する場合がありますが、クォータニオンではその問題を回避できます。
クォータニオンの利用例
- 携帯の中のジャイロで姿勢をリアルタイムで計算
- ゲームの中の回転はユニティやアンリアルなどのエンジンが計算
- スペースXのロケットが着陸するときの姿勢制御をリアルタイムで計算
- ロボット制御
- 自動運転
- AR(仮想現実)
関連ページ
一覧
クォータニオン生成 (Quaternion)
Quaternion
KV

KV-X
入力
- ww
- スカラー部(実部)
- x
- ベクトル部x(虚部)
- y
- ベクトル部y(虚部)
- z
- ベクトル部z(虚部)
出力
- outQT
- クォータニオン
【例】
入力
- ww
- 1.0
- x
- 2.0
- y
- 3.0
- z
- 4.0
出力
- outQT
- [1.0, 2.0, 3.0, 4.0]
【 計算式 】
\begin{align}
q=q_w+q_xi+q_yj+q_zk=&
\begin{bmatrix}
q_w \\
q_x \\
q_y \\
q_z \\
\end{bmatrix} \\
i^2+j^2+k^2=&-1 \\
ij=&k \\
jk=&i \\
ki=&j
\end{align}
比較 (qtEQ)
qtEQ
KV

KV-X
入力
- qt1
- クォータニオン1
- qt2
- クォータニオン2
出力
- result
- 結果
加算 (qtADD)
qtADD
KV

KV-X
入力
- qt1
- クォータニオン1
- qt2
- クォータニオン2
出力
- outQT
- 結果クォータニオン
【例】
入力
- qt1
- [1.0, 1.0, 1.0, 1.0]
- qt2
- [0.5, 2.0, 1.0, 0.0]
出力
- outQT
- [1.5, 3.0, 2.0, 1.0]
【 計算式 】
\[
Q1+Q2 =
\begin{bmatrix}
a_{w} \\
a_{x} \\
a_{y} \\
a_{z} \\
\end{bmatrix}
+
\begin{bmatrix}
b_{w} \\
b_{x} \\
b_{y} \\
b_{z} \\
\end{bmatrix}
=
\begin{bmatrix}
a_w+b_w\\
a_x+b_x\\
a_y+b_y\\
a_z+b_z
\end{bmatrix}
\]
減算 (qtSUB)
qtSUB
KV

KV-X
入力
- qt1
- クォータニオン1
- qt2
- クォータニオン2
出力
- outQT
- 結果クォータニオン
【例】
入力
- qt1
- [1.0, 1.0, 1.0, 1.0]
- qt2
- [0.5, 2.0, 1.0, 0.0]
出力
- outQT
- [0.5, -1.0, 0.0, 1.0]
【 計算式 】
\[
Q1+Q2 =
\begin{bmatrix}
a_{w} \\
a_{x} \\
a_{y} \\
a_{z} \\
\end{bmatrix}
-
\begin{bmatrix}
b_{w} \\
b_{x} \\
b_{y} \\
b_{z} \\
\end{bmatrix}
=
\begin{bmatrix}
a_w-b_w\\
a_x-b_x\\
a_y-b_y\\
a_z-b_z
\end{bmatrix}
\]
外積 (qtCross)
qtCross
KV

KV-X
入力
- qt1
- クォータニオン1
- qt2
- クォータニオン2
出力
- outQT
- 結果クォータニオン
【例】
入力
- qt1
- [1.0, 1.0, 1.0, 1.0]
- qt2
- [0.5, 2.0, 1.0, 0.0]
出力
- outQT
- [-2.5, 1.5, 3.5, -0.5]
【 計算式 】
\[
Q1\times Q2 =
\begin{bmatrix}
a_{w} \\
a_{x} \\
a_{y} \\
a_{z} \\
\end{bmatrix}
\times
\begin{bmatrix}
b_{w} \\
b_{x} \\
b_{y} \\
b_{z} \\
\end{bmatrix}
= out
\]
\[
(a,b,c,d)(e,f,g,h)
=
(
ae-bf-cg-dh,
af+be+ch-dg,
ag-bh+ce+df,
ah+bg-cf+de
)
\]
共役 (qtCQ)
qtCQ
KV

KV-X
入力
- QT
- クォータニオン
出力
- outQT
- 結果クォータニオン
【例】
入力
- QT
- [0.5, 2.0, 1.0, 0.0]
出力
- outQT
- [0.5, -2.0, -1.0, 0.0]
【 計算式 】
\[
\bar{Q1} =
\begin{bmatrix}
a_{w} \\
-a_{x} \\
-a_{y} \\
-a_{z} \\
\end{bmatrix}
= out
\]
実部の設定 (qtSetReal)
qtSetReal
KV

KV-X
入力
- ww
- スカラー部(実部)
- qt
- クォータニオン
出力
- qt
- 結果クォータニオン
【例】
入力
- ww
- 0.5
- qt
- [0.0, 0.0, 0.0, 0.0]
出力
- qt
- [0.5, 0.0, 0.0, 0.0]
虚部の設定 (qtSetImag)
qtSetImag
KV

KV-X
入力
- vector
- ベクトル部(虚部)
- qt
- クォータニオン
出力
- qt
- 結果クォータニオン
【例】
入力
- vector
- [1.0, 2.0, 3.0]
- qt
- [0.0, 0.0, 0.0, 0.0]
出力
- qt
- [0.0, 1.0, 2.0, 3.0]
ダウンロード
このサイトが役に立ったと感じたら、ご支援いただけると嬉しいです