ドローン(クアッドコプター)の機体がようやく完成しました。テスト可動で、モーター振動?、機体の各種センサーに結構ノイズが乗ってしまっているので、姿勢制御プログラムに取り掛かる前に原因と対策を行いたいと思います。(記事後半に記載してありますが、最終的によくはわからないのですが、ノイズがおさまりました)
(これまでの製作記録はこちらに纏めていってます。)
まずはどれほどのノイズが乗っているかの確認です。プロペラは付けずにモーターの回転、停止を行ってます。機体は硬い床に水平に置いているだけです。
▼ノイズ確認▼
加速度センサーとジャイロの値をグラフ化してます。波が激しいところがモーター回転中、波が無い所がモーター停止中です。モーター回転中は見事にぐちゃぐちゃです。
振動の原因ですが、恐らくモーターからの直接的な振動が主かと・・。機体みててもモーター回転中の振動がそれなりに・・。加速度センサーが微振動拾うのはわかるのですがジャイロも拾ってしまうのですかね・・。
確認するためにArduino(101:6軸センサー内蔵)を機体から外して再度実測してみました。
こんな感じでArduinoを機体から離して計測してます。
▼センサーを機体から離した場合▼
先ほどのグラフと比較するために、グラフの縦軸レンジは固定してます。かなりの振れ幅の低減です。
ノイズというか、単にモーター振動がフレームを伝っているのが原因のようですね。興味もあったし、ダメ元で減衰できないかハードで対策を試してみました。
①Arduinoと機体の固定をビス止めから耐震ゴムで張り付け、に変更してみました。
100均とかにある耐震ゴムです。少しだけ効果期待してます。
②Arduinoを固定しているビスにバネを挟んでみました。
悪化しそうですが・・。興味で試して見ました。
それぞれの測定結果です
▼耐震ゴム▼
多少はあると思ったのですが思ったよりも効果がありました。
▼ばね固定▼
予想通りまったく効果なしです。
素人では中途半端な対策は難しいですね。
この後、振動対策は後回しにして、いろいろプログラムを調整していたら、いつの間にかノイズがかなり軽減されていました。まったくもって真因が不明です。
何が真因かよくわかりませんが、センサー値に影響しそうな変化点はこんなところ??
①センサーのサンプリング周波数を低減。
もとはデバイス最大の1600Hzだったのですが、制御ループ速度に合わせて400Hzに落としてます。
②センサーの測定レンジ(感度)を変更。
加速度センサーを2G ⇒ 8Gに変更。ジャイロは変更せずに1000deg/sのまま。
③ESCへの信号周波数を変更。
50Hzの信号から250Hzへ変更してます。
④その他
なんども機体をばらしたり、組み立てたりしてます。
▼ノイズが軽減してる状態▼
結局、意図した対策はしていないのにノイズが激減してました。機体の再組み立てが効いてる?。最初のノイズが何だったのかと思うくらいです・・・。
これくらいであればあとはフィルター(ソフト)でなんとかなりそうかな?。
コメント
はじめまして
センサー類と配線類の電磁シールドが、
ノイズ抑制効果があるかもしれません。
可能ならば、モーターも。
配線位置が変ったためにノイズ受けレベルが低減したのかなと感じたものですから
はじめまして。
助言有難うございます。たしかに信号ノイズも影響がありそうですね。出来ることなら対策してみたいと思います。