quaternion
読み仮名は”しげんすう”
”よんげんすう”のほうがいいのに。。。
3軸加速度と3軸ジャイロの入ったセンサーです。
3軸加速度センサーは何度か使っているし、
MoTeCでログもとっているし、
実際、Gというのはあちこちで感じ取れるので、
なんとなくはわかったつもりになっていたのだけれど。
ジャイロというのは、どうもわかりません。
角速度っていうんだから、グルンとした時の速さなんだろうけど、
物理の図みたいに軸がどっかに通っているのは見えたりしないから
イメージできにくいのかな???
仮に鉄棒で大車輪回っていても、
それは鉄棒の横から見ていれば回る速度はわかるんだろうけど、
回っている本人には遠心力の強さ というか
棒を握ってる手の握力しか感じなかったような気が。。。😝
ん?いや、大車輪はできなかったんだっけか?
け上がりはラクショーだったのは間違いないんだけど。。。忘れた。。。
というわけで、
5月の下旬からいじくっていたのですけど、
加速度のところはすぐにできました。
ジャイロのほうは数字はでてきましたけれど、
ではこれをどうしたら良いのか???
今回は、これをクルマではなくて、
おもちゃのてっぽう=BB弾のボルトコッキングライフルに付けました。
玉を撃つまでの銃身のブレ(静止時の傾き角)と発射時のエアピストンの運動の反力、ピストンストローク端の衝撃、また、玉の反動(1ジュール以下)はほとんどないかな?等の運動の加速度を見ることができました。
同じ時間内のジャイロの値も見てみたのですが、
なんか回転方向があちこちで、なんだかよくわかりませんでした。
このセンサにはDMP= Digital Motion Processorなる機能があって、
ファームウエアをICにロードすると面倒な計算はIC内でしてくれて、
3D姿勢に関する数値クオータニオン=四元数を出力してくれる、
とのことだったのですが、
このDMPに関する文書の資料が全く無いようです。
ネット検索しても出てくるものは、
arduinoのライブラリと センサのメーカサポートで見れるstm32用のソースプログラム(ケータイ向け?)だけでした。
なので、
プログラムとプログラム中の注釈文から読み取るしかなくて
ものすごく大変でした。
途中8回くらいあきらめましたが、
4ヶ月かかって、やっとのことでDMPがpicマイコンで動作しました♪
つっかえてたところは、
プログラムをメモリに書き込むときの手順と隠しコマンド、
あとはソースプログラムが分割されてあちこちになっているため
迷子になってる関数探しとか、
センサーの設定値をプログラム側でもそっくりそのままダブらせて持たせていて、
その変数表がすべて正しく揃っていないと
なにもしないで帰ってくるようなルーチンばっかりなので、
そのインターロックを外すのがヒジョーにタイヘンでした。
組み込み用途では、後で設定を変えるなんてことはほとんどないはずなので、
できることを全部羅列するようなプログラムは必要ないし、
マイコン側で設定を把握する必要もないから、
使う機能のとこだけ簡単に移植できるようにしてもらった方がいいと思うんだけど。。。
んで、Quartanionで求まった姿勢角度
机の上に置いたセンサボードを
平らなまま回して向きを変えると
角度が変わります♪
いままでは重力から求まる傾斜角度しか見れなかったので、平面上で回った角度がわかるのはなんだか手品みたいです😃
あ、そっか! これがジャイロスコープか!
ヘリコプターとかドローンとかこれで姿勢制御してるんでしたっけ?
慣性航法とかもこれで方向がわかるんでしたっけ?
やっとジャイロ一年生です🙋♂️
さて、
このヨー角はクルマの場合はかなり重要なんではないかな???
Posted at 2020/09/22 21:50:36 | |
トラックバック(0) | 日記