chakokuのブログ(rev4)

日々のごった煮ブログです

やりたいこと:クオータニオンを理解して、Rustでドローン姿勢制御プログラムを作る

過去Interface誌で、ドローン用の姿勢制御プログラムの特集があって、本を買って、ドローン開発キットも買った。が、、肝心の姿勢制御のコアであるクオータニオンの概念が全く理解できず*1、開発キットも押し入れに入れたままであった。
普段はPythonを使ってるけど、Rustを使えるようになりたいと思っているが、、何か目的がないとなかなか勉強する気になれない。ドローンとRustに興味があるので、Rustでドローン用の姿勢制御プログラムが書けたらちょうどいいと思う。が、、肝心のクオータニオンが全く分からない。
そんな中、Interface9月号は、数学とプログラミングが特集で、クオータニオンも多少は分かりやすく書かれている。そんなわけで、もう一度、線形代数を復習して、クオータニオンをプログラミングできるレベルには理解したいと思っている。IoT勉強会の準備があって、趣味のPGの時間が取れないのだけど、こっちもボチボチ進めたい。

買った本:
Interface(インターフェース) 2021年 9 月号
数の世界 自然数から実数、複素数、そして四元数へ (ブルーバックス)

■追記
ブルーバックスの「数の世界」は書かれている証明を辿りながら、なんとか四元数の章まではやってきた。まだ内積外積をやっているところで、四元数による回転の章までは20ページぐらいある。なかなか進まない。
一方、結果だけ使ったらいいというのなら、高校数学の美しい物語というサイトで、クオータニオンの説明が簡潔になされている。公式を使うだけなら、行列とsin/cosで回転が扱える(?)ので、手っ取り早く制御回路を組みたいのなら、以下のサイトの公式を使えばいいのでは?と思う(が、、自分の場合はせっかくなので、証明を辿りながら、回転の概念までたどり着きたい)
四元数と三次元空間における回転 | 高校数学の美しい物語

■追記(210822)
式展開をノートに書き写しながらも全ての証明を理解したわけではなく、あぁそういうものなんですね、という程度の理解ではあるが、なんとか回転の章(P189)まではたどり着いた。最終目的地である四元数による回転の理解は次週に持ち越し。

*1:虚数を使って4次元で表現すると計算が楽というのは分かるけど、プログラムに落とすレベルに理解できない