kure-kosen-water-rocket / logger

0 stars 2 forks source link

プログラムの変更について #5

Open Tatsuya0720 opened 4 years ago

Tatsuya0720 commented 4 years ago

今日、小畠君と話し合った結果。 今までは加速度センサーで得た値をフィルターに通して重力加速度のみ取り除こうとしていたのですが、このままだと ・フィルターのせいで飛行中のロケットの小さなブレを検出できない ・フィルターで大きな値も除きすぎて正確な加速度が得られない ・三次元のグラフを書きたいってなった時にまたフィルターの調整をしないといけない などの問題もあるので

1:加速度と角度(ジャイロ)データをそのままcsvに書き込む

2: 1で作成したcsv内の角度データから各軸の分散した重力加速度を求めて、それを計測した加速度値から引いて積分×2で変位を求めてcsv出力

3: 2のcsvファイルからからグラフを作成

の三つに書き直したいと考えています。 因みに自分はこれからロケットの姿勢制御あたりをやってみたいと思っていて、これをぜひ宮川君と上杉君に今あるコードをベースにして実際に書きなおしてもらいたいと考えています! もちろんプログラム的にどうすれば良いか分からない部分や、数学的な部分(積分など)や物理の角速度などを扱う部分もあるので、そこら辺を自分が手伝わせてもらう。という感じで進めていきたいと考えています。 宮川君と上杉君、どうでしょうか!?個人的に結構いい練習にもなるのではないかと思います。

miyagawa0510 commented 4 years ago

やりたいです!

Tatsuya0720 commented 4 years ago

ありがとう!

Tatsuya0720 commented 4 years ago

①data_measurement.py

・ measurement.csvを作成

・ジャイロ&加速度から現在の角度を計測
    ・各軸の加速度を計測

・計測データを0.1秒毎にcsvファイルに書き込み
    ・ 角度
    ・各軸の加速度

②data_processing.py

・pandasでmeasurement.csvからデータフレームを作成 ※pandasライブラリ使用

・0.1秒毎に計測された角度から各軸に分かれた重力加速度を算出 値はデータフレームから持ってくる
    ・zの重力加速度 = zの加速度 * cos(y_angle)
    ・xの重力加速度 = xの加速度 * cos(y_angle)

・各軸のセンサーが取得した加速度 ー 各軸の重力加速度 = 各軸のロケットの運動加速度

・進行方向の加速度を求めるために 運動加速度 * cos(y_angle) をする
    ・zの進行方向の加速度 = zの運動加速度 * cos(y_angle)
    ・xの進行方向の加速度 = xの運動加速度 * cos(y_angle)

・ロケットの各軸の進行方向の加速度を二回台形積分 → 各軸の変位を求める
            ・一回目の積分
            ・速度 = (((進行方向の加速度 + 一個前の進行方向の加速度) * dt) /2)

            ・二回目の積分
            ・距離 = (((速度 + 一個前の速度) * dt) /2)

     ※dtは微小時間っていう意味だけどfor文の前とかに dt = 0.1ってとりあえず書いといてください!!

・fly_distance.csvファイルを作成

・0.1秒ごとのxとzの変位をfly_distance.csvファイルに保存

③graph_plot.py

・fly_distance.csvファイルを読み込み

・xの変位とzの変位をグラフにプロット
Tatsuya0720 commented 4 years ago

上杉君へ measurement.pyのプログラムを見させてもらいました 修正内容ですが

ラズパイでテストしてみたところ修正内容はこれくらいでした またインキュの時間とかにでも変更しておいてください!

Tatsuya0720 commented 4 years ago

宮川君へ data_processing.pyのプログラムを見させてもらいました 修正内容ですが

ラズパイでテストしてみたところ修正内容はこれくらいでした またインキュの時間とかにでも変更しておいてください!