スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

クアッドコプタープロジェクト終了のお知らせ

こんばんは、Operaです。
少し昔の話ですが、先々週に文化祭が終わり、発案から一年半の時を経てダラダラを続けていたクアッドコプタープロジェクトについてプレゼンを行いました。
一応このブログでもちょくちょく進捗状況を載せていたのでまとめとしてこちらの方に上げておきたいと思います。

1. プロジェクトの結果

まず結果から申し上げますと、もともと作りたいものは「半自律制御を用いて誰にでも操縦できるクアッドコプター」でしたが、残念ながら結果できたものは「そこそこのラジコン経験がある人になら操縦できるクアッドコプター」になってしまいました。残念!
まあカクカクシカジカ色々あったので順を追って書き連ねたいと思います。

2. 半自律制御クアッドコプターとはなんぞや

まずクアッドコプターについては最近では馬鹿でも阿呆でも猫でも杓子でも知っている超有名なものとして半自律制御とはなんぞやって話ですよ。
そもそもの自律制御というのは、ロボットが自らの状態をセンサを用いて認識し、それを元に自己判断を行い動作する方式のことです。
んじゃ半自律って言ったら何?って言われたら人間の命令とセンサから得た状態からどう動くかを判断して動作する方式のことなんですわ。
要するに人間が簡単に「前行け~」って命令したらロボットが自らズレを修正しながら前に行けばそいつが半自律なわけです。

3. 機体姿勢の制御内容

今回目的を達成することができなかった理由は機体の制御にあります。
本来、誰にでも操縦できる機体とするには

・高度制御→操作に合わせて上昇下降を行う
・旋回速度制御→操作に合わせて機体を旋回させる
・水平移動速度制御→操作に合わせて機体を水平移動させる

このあたりがないとダメなんですが、今回実装できたのは旋回制御と、水平移動速度制御の代わりとしての角度制御の二つだけだったのです。
高度制御は手動だから機体を目視しながらスロットルを手元で調整しないといけないし、機体の角度が制御されたところで風に流されちまえばそのまま流れていくので当て舵を当ててやらないといけない。
つまり誰にでも操縦できる機体ではなく、そこそこのラジコン経験がないと操縦できない機体になってしまったわけです。

ホントはそこら辺も実装したかったのですが、高度や速度といったデータを取得するには結構難しいのでその点は妥協せざるを得なかった感じです。
データさえ取れれば後はそんな難しくはないんですけどね、センシングは本当に難しい。

4. 組んだ制御システム

んでまあそんな妥協を重ねてでっち上げた機体の角度制御システムがこんな感じ。

図1

プレゼン用のデータをそのまま持ってきたので制御工学的な要素は限りなく隠蔽済み。
一旦角度入力を角速度入力に変換して最終的に角速度を制御する理由は単純で、直接機体角度を制御したところで応答が限りなく遅くてお話しにならないため(実験済)。基本的に微分値(角度に対する角速度)を使った方が安定するので良いのです。
角度で制御してもPD制御にして微分項を効かせれば実質変わらないんですけどね、でも微分項はノイズに弱くて不安定だから角速度でPI制御にしたほうが安定なのです。
一応実際に使ってる制御プログラムはPID制御なんですけど、微分項をちょっとでも効かせるとすぐに機体が暴れるんで微分項は無かったことにされPI制御に落ち着きました。

5. 角度のセンシング

機体角度の取得にはジャイロセンサと加速度センサを用い、それぞれのデータをいい感じにミックスして使いました。

ジャイロセンサは角速度を積分するので精度は良いのですが、時間が経つと共にノイズが積算されていき正しい角度からはズレていきます。
逆に加速度センサは重力加速度の方向から逆三角関数を用いて角度を求めるので角度がズレることはありませんがセンサに重力加速度以外の加速度が加わるとそれがそのままノイズになるのでクアッドコプターのようによく動くものだと楽しいことになります。

それを考えるとそれらのセンサをうまいこと機体の状態に合わせて混ぜてやるのがいいので、

図3
(θ:機体角度[deg], θa:加速度センサを用いて取得した角度[deg], θω:ジャイロセンサを用いて取得した角度[deg])

こんな適当な数式をでっち上げるとうまいこといきます。
kの値は下のグラフのように機体に加わる加速度の絶対値と重力加速度の偏差によって変化するので機体が激しく動いている=機体に加速度がかかり偏差が大きくなると小さくなります。

図4

これで機体が安定していてだいたい重力加速度ぐらいしか加わってない状態だと加速度センサを用いて角度を取得するようになるのでジャイロセンサで溜まったノイズも綺麗サッパリです。めでたしめでたし。

ちなみにですがクアッドコプターのようにジャイロセンサを三軸フルに用いる場合は各軸の値をそのまんま積分したところで正しい角度なんて出てきません。
だってセンサ自体が回転してるんだもん、ちゃんと回転行列を使ってベクトルを回転させないと。

他にも直近n回のデータを持ってきて平均取ってデータの精度を確保し、PI制御をサンプリング周波数で回したりとか色々やりました。
一発で取ったデータは信用ならないんで平均取らないといけないけど、そんな悠長なことしてたらPI制御の周波数が落ちてしまうのでだったらいちいちn回サンプリングしてからPI制御に投げつけるんじゃなくって直近n回のデータ持ってきてその平均投げつけて制御周波数をサンプリング周波数と同じにしたほうがエエやんって話。

6. でっち上げた操縦システム

色々と書き連ねた内容を全部プログラムにぶち込んでブラックボックス化させた全体図がこちら。

図2

ほんとは他にも色々センサつけたかったのに結局6軸姿勢センサつけて終わりなんですよねぇ、かなしい。
一応機体情報がフィードバックされるのが特徴だったりします。

7. でっち上げた機体

でそれらを組み合わせ完成した機体がこちら。

DSC_0031 (Large)

発表の期限などもあり色々とダメな方向性の工夫を繰り返していたら最終的にはアンテナ支持フレームが紙製(しかも栄養ドリンク箱)になってしまったり衝撃吸収用の足がダイソーのボールになってしまったりしましたがプロトタイプなのでよくあることです。
フレームの方はみんな大好きアルミとアクリルのハイブリッドで、シンプルな出来になってるので案外墜落しても腕が損傷しただけで済んだりします。
一回色々あってそこそこの高度から落っこどしたのですが腕に使っているアルミアングルが曲がってポッキリ逝きかけただけで他は生きていました。
ちなみに設計は自分ではないのでメンバーに圧倒的感謝です。

あと送信機はこんな感じ。

DSC_0033 (Large)

LCDをつけると可能性が広がるので皆さんも是非やりましょう。
実際操縦中にはLCD見ることは難しいのでバッテリー警告なんかは音でやったほうが良さげです。一応LCDの下にブザーがあってLi-poの電圧が残念なコトになるとけたたましく鳴り響きます。

8. 飛ばしてみた

でその機体を飛ばしてみたら案外安定して飛んでくれました。

DSC_0048 (Large)

さすがに風に流されたりはしますが、クアッドコプター特有の圧倒的な機動力のおかげで機体を大きく傾けた操縦にも応答してわりかし自由自在に飛ばすことができました。
動画がこちら。



いやー飛ばしてると面白くてしょうがないですね。そのうち無線モジュ換装して長距離通信を可能にしてグラウンドで最高時速測ったりしてみたいです。そのうち。

9. 総論

クアッドコプター作るとセンシングとか制御とか勉強できて圧倒的成長できるよっ!
しかも完成した後には飛ばして遊べるよっ!
自分だけの機体だからパラメータ好き放題弄ってギリギリまで性能引き出すこともできるよっ!


まあこんな感じですね。無事に炎上しかけたりはしたものの一年半かけて作ってきたものがなんとか形になりました。
元々はホント色々な機能つけて遊びたかったのですが結局学業も忙しく飛ばすだけで精一杯でした。
来年には一応編入学試験が控えているというのが高専内での通説ですので理論上ではそろそろお勉強に舵を切る頃ですのでしばらくはブログも放置するでしょう。
一応二ヶ月に一回とかは更新出来たらな~と思います。順調に事が進んで行けば6月頃には進路が決まり戦線復帰できるはずです。
では、また今度。
スポンサーサイト
プロフィール

おぺら

Author:おぺら
強電から弱電まで狭く浅くやっています。
強電:コイルガン(充電&発射部)、テスラコイル
弱電:コイルガン(制御)、鉄道模型版PRC&CTC、マルチコプター

最新記事
カレンダー
10 | 2015/11 | 06
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 - - - - -
検索フォーム
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
訪問者数
リンク
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。