Super Sylphide 進捗状況(46) -- TinyFeatherの誘導制御スケルトン
無人航空機(UAV)用オートパイロットシステム TinyFeatherですが、ようやく足回りが終わり、楽しい匂いがするところにやってきました。誘導制御です。ちなみに僕は天邪鬼で、足回りである航法の方が面白かったりします。
誘導制御則を実装するにあたって、その骨組み、スケルトンを作ってみました。
図を説明すると、1つのループが一定時間間隔で繰り返されることで誘導制御を構成しています。中央の円がそのループで、順を追って説明すると
- 航法情報(どこをどういう状態で飛んでいるのか)の取得
- 入手した航法情報を元に誘導制御(どこをどうやって飛びたいか)の計算をする
- その計算結果を元に舵面やモータを、サーボ、スピードコントローラで動かす
- 計算結果のログを残す
- 地上局(Ground Station, GS)にテレメトリ(どこを飛んでいるかなど監視用情報)を送信
となっています。加えて、地上局からWay Point (WP)の変更など飛び方の指令が非同期的に送られてくる可能性があるので、それを処理できるよう、図の下に示すアップリンク通知ブロックがあります。
コードはguidance_control_skeleton.cppにあります。航法情報として得られるものはヘッダ guidance_control.h に書いてあります。TinyFeatherとこのコードを使って、皆さん独自の制御則を作ってみることが可能なようにしていきたいです。
※Tiny Feather用ADSがようやく完成しました。
コメント
コメントする
- 匿名でのコメントは受け付けておりません。
- お名前(ハンドル名可)とメールアドレスは必ず入力してください。
- メールアドレスを表示されたくないときはURLも必ず記入してください。
- コメント欄でHTMLタグは使用できません。
- コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
- コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。
- 投稿ボタンを押してエラーがでなければ、投稿は成功しています。反映されるまでには少し時間がかかります。