jonajiroのアイコン画像

飛翔体つくった

jonajiro 2021年02月22日に作成  (2021年02月27日に更新)
飛翔体つくった

作成意図

飛翔体かっこいいよね。姿勢制御とかやってみたい。特に深い意図はない。

主要部品

品名 用途 価格
Seeeduino Xiao 機体制御 584円/個
TWE-001-Lite 状態管理、無線通信 1,450円
PLA樹脂 機体外殻 2,580円/kg
リップストップナイロン パラシュート 1,490円
バネ丁番 パラシュート放出機構 85円/個 x3個
サーボモータ パラシュート放出、動翼 500円/個 x3個
LiPoバッテリー 駆動電源、制御電源 500円
電源管理モジュール 駆動電源、制御電源 1,489円
BNO055 機体姿勢センシング 3,930円
大気圧センサ 高度計測 600円
差圧センサ 動圧計測 800円
ADコンバータ ゲージ圧センサのアナログ値計測 256円

システム構成

システム構成について下記図参照のこと。
ざっくりと説明すると、
・ステータス管理とコマンド受信をTwe-001-Liteが担当
・ステータスに基づいた機体の制御をSeeduino Xiaoが担当
システム構成図
電源アーキ

作成方法

3Dプリンターでボディーを造形する。
こんな感じでボディーを作成。黒いPLAを使用したため、写真では構造がわかりづらい・・・
ボディー
上部カバーとノーズ
パラシュート放出機構は下図のように、バネ丁番ではじき出す方式を採用。
放出機構閉状態
放出機構開状態


パラシュートはリップストップナイロン(シャカシャカした手触りの布地)を型紙に沿って切り、切れ込みの部分と端部を手縫い。
パラシュートの型紙図面
手縫いのパラシュート

ボディーにパラシュートを取り付ける。直接ラインを繋げず、間にゴムを挟むことで開傘時の衝撃を和らげる。
パラシュート取り付け

電子回路をはんだ付けする。ユニクラフトさんにて基板を発注した。モジュールを乗っけるだけなのでわざわざ基板自作する必要性があったのかは不明。
基板表面
基板裏面
回路図
機体裏側にサーボとランチスイッチを取り付ける。
サーボとランチスイッチのセット
ノーズに圧力センサを押し込む。
ノーズに圧力センサーをセット
ボディー内部に部品を配置して接着剤で固定。
左からパラシュート放出用のサーボ、カメラ、電源管理モジュール。
電装をセット

パラシュート放出用のサーボが作動すると下図のように閂(かんぬき)が出たり戻ったりして蓋側の穴に引っ掛かり、放出機構の開閉を制御できる。
パラシュート放出用サーボ閉状態
パラシュート放出用サーボ開状態
バッテリーを入れる。
バッテリーをセット
基板をボディーに乗せてコネクタを接続。
基板をセット
ノーズと基板のフレキシブルケーブルを接続
最後に上部のカバーを密閉して完成

  1. プログラミング
    ソースコードは本稿に示すには長すぎるため、下記リンクに公開した。
    https://github.com/jonajiro/gohomeproject
    全体の状態遷移と発射シーケンスの処理を紹介する。
    制御構成(論理アーキ)
    制御構成(物理アーキ)
    状態遷移
    発射シーケンス

試験結果

まずは制御なしでの発射試験について述べる。投射角は60degで初速がおよそ17m/s程度になるように発射した。
下に試験の様子を示す。くるくる回ってて面白い。試験日の風速は3~4m/sほどで風が吹いていた影響も受けていると考えられる。

次に制御有での発射試験について述べる。roll角の目標角度を0degとし、Pゲイン30 Dゲイン3、pitch角Dゲイン10のPID制御を実施した。おおむね姿勢制御に成功したと思われる。(データは後述)
複数回発射したが、パラシュートが展開できない場合もあった・・・
パラシュート展開成功パターン


パラシュート展開失敗パターン

計測データについては下記の通りとなった。
すべてのグラフの右軸に制御ステータスを表示しており、6から7になったタイミングで発射検知をしている。その後、7から8になったタイミングでパラシュート放出コマンドを出している。
加速度においては発射時には4Gを超える加速度がかかっていることがわかる。また、パラシュート放出コマンドからおよそ0.2secほどでy軸方向の加速度の立ち上がりが確認でき、コマンドから実際にパラシュートが放出するまでに0.2secのタイムラグがあることがわかる。
対気速度においては初速が16m/sほど出ていることが確認でき、発射から0.3secほどで0m/sと計測されている。動圧孔に対して正面に風が吹き込まなくなったことが原因と考えられる。
高度においては最大で約11mに到達していることが確認できる。
姿勢角においてはroll角は0degに収束しようとしてることが確認できる。また制御コマンドもroll角の振る舞いと整合性が取れることから正常に制御が働いたと考えられる。
制御ゲインに動圧補正掛けており対気速度が大きいときにはゲインを弱めて小さいときには強めてるので対気速度0m/sになった時、エレボン舵角コマンドが飽和してることが確認できる。
加速度
動圧換算対気速度
大気圧換算高度
エレボン舵角コマンド
Euler角
最後に、制御有と制御無での飛行の様子を比較した動画を下に示す。

まとめ

機体の回収と姿勢制御が実現できた。
今後は高度を上げつつ姿勢制御の精度を上げて軌道追従などやってみたい。

  • 追加情報
    投射角80deg 初速80kphを目標に投射したときの動画を下に示す。

    上動画と同条件でpitch角制御を実施したときの動画を下に示す。
    pitch角を頭上げ方向に宙返りするような制御コマンドを与えている。
1
jonajiroのアイコン画像
ソフトウェアとかつくるけどエンジニアではない。 よく使う道具はArduino /C#/ #Python /MATLAB /Simulink/Cです。 趣味は温泉巡り /電子工作 /ドローン です。
jonajiro さんが 2021/02/22 に 編集 をしました。 (メッセージ: 初版)
jonajiro さんが 2021/02/23 に 編集 をしました。 (メッセージ: 目次手動入力部消去)
jonajiro さんが 2021/02/26 に 編集 をしました。
jonajiro さんが 2021/02/26 に 編集 をしました。
jonajiro さんが 2021/02/26 に 編集 をしました。
jonajiro さんが 2021/02/26 に 編集 をしました。
jonajiro さんが 2021/02/27 に 編集 をしました。
jonajiro さんが 2021/02/27 に 編集 をしました。
ログインしてコメントを投稿する