×

ORIZURUの裏話 2回目「ORIZURUのシステム」

2016-10-05

今回はORIZURUのシステムについてです。

orizuru2016

今年のORIZURUのテーマは姿勢制御によるホバリング機能です。姿勢制御をするためには、リアルタイムにその状態を見ることができるシステムの開発が重要です。

今回のシステムはこのようになっています。

orizuru_system

今年のORIZURUは2台のコントローラから信号を受けることが出来るようになっています。ウエアラブル(腕時計型)コントローラは特別なフラグを付けた信号を送信しており、その信号は通常のコントローラより優先して使用するようにしました。

通常のコントローラ

通常のコントローラーは、左右・ピッチを制御するジョイスティック、羽根の強さを決めるスライダー、4つのボタンと3極トグルスイッチで構成しています。

normal_controller

3極トグルスイッチ

3極トグルスイッチは、上、真ん中、下で固定できるタイプのスイッチで、次のようにモードが割当られています。

toggle_switch

スライダー

スライダーは常時羽根の動きを決定しています。0~1023の10bitで表現しており、Lazurite内のADコンバータで10bitに変換した値をそのまま使用しています。また、ORIZURU側のDCモータの周期が1.023msに割り当てられているため、値がそのままモータのON時間になっています。

ジョイスティック

ジョイスティックはセンターを中心に-512~+511の10bitで左右の値を示しています。しかし、モード信号に応じてORIZURU側で指示されている内容を読み替えています。それぞれのモードで、ジョイスティックの値は次のように解釈しています。

緊急停止モード

緊急停止モード時はジョイスティックおよびスライダーの値は常に0となります。

マニュアル操作

モードマニュアル操作モードのとき、ジョイスティックの横方向は尻尾のサーボモータの振り幅、そして縦方向はピッチモータの強さに連動しています。

姿勢制御モード

姿勢制御モードのとき、縦方向のジョイスティックの値はpitchの角度を0~90度で指定します。横方向はYAW軸のターゲット角度を-90度~+90度で指定します。

腕時計型コントローラ

腕時計型コントローラは、ORIZURUを常に姿勢制御モードで動かしています。ただし、通常のコントローラと区別するために特殊なフラグを立ててデータを送信しています。ウエアラブルコントローラにはLazurite Flyが搭載されており、その中の加速度・ジャイロセンサーを用いてORIZURUの制御を行っています。このコントローラでは姿勢の角度は固定とし、コントローラの2つの角度を利用して羽ばたきの強さとYAW軸の制御により動きを制御しました。

wearable

wearable2

2台を切り替えて制御

ウエアラブルコントローラからの信号は、ORIZURU側で通常のコントローラより優先して信号を拾うようにしました。ウエアラブルコントローラからの信号が200msの間途切れると、通常のコントトーラに制御が移る仕組みになっています。

角度モニタリング用Lazurite Pi Gateway

今回のシステム開発にあたってなくてはいけなかったのは、姿勢の状態をリアルタイムにモニタリングするシステムです。しかも、これは飛行体から無線でセンサーの値を取得しないと状態を把握することができません。

そこで、センサー値のロギングには公開中のLazuriteGraphを利用してリアルタイムにセンサーの値をグラフ化し、機体制御のパラメータにフィードバックしていきました。この評価システムなくしてORIZURUのシステム開発は不可能でした。

裏話

ジェスチャーコントロールに使用する腕時計型のコントローラですが、最初は絵のようなデザインでケースに入れて作り込みをしたのですが、ケースに入れると電波が全く飛ばなくなってしまいました。どうやら塗料とアンテナ・ケースのクリアランスに問題があったと推測しています。その為、CEATECでは基板の状態でデモをせざるを得なくなってしまいました。これは来年に向けた課題の一つです。