飛行の様子(動画)
このチュートリアルでは、以下の作業の習得を目的に、具体的な手順を示します。なお、ホスト PC として Ubuntu14.04 を使用します。
- Phenox2 を電池から起動し、ssh 通信により接続します。
- Phenox2 ライブラリの
px_selfstate
構造体より入手できる状態量を表示します。 - 下向きカメラで取得する画像特徴点の個数を確認し、自律飛行に適した環境を用意します。
- 地面に Phenox2 本体を置き, 笛によって離陸させ、自律飛行させます。
飛行に際しては以下のことに注意してください。
- 屋内環境下で 3m x 3m以上、天井高さが2.5m以上の、障害物の無い平坦な地面をしたスペースを用意してください。
- 蛍光灯などの照明がよく当たるようにします。
- 空調などの風が起こる装置はあらかじめ切っておきます。
- 飛行中のPhenox2は足を捕まえて大きく傾けることで停止できることを常に頭に入れて下さい。
1. ssh接続によるPhenox2 へのログイン
まず、メイン回路が4ヶ所のシリコンリングに挟まっていることを確認してください。電源について を参考に、電池を使用した電源のセットアップを実行し、通信方法についてを参考に、ssh通信のセットアップと電源の投入を行い、ホストPCがssh通信を経由してPhenox2へのログインを完了したところまで進んでください。
2. プロジェクトの作成
チュートリアルプロジェクトをコピーし、カスタムプロジェクトを作成します。
phenox# cd /root/phenox/work/
phenox# cp -a tutorial_autohover myproject_autohover
3. プロジェクトのビルド
まずは、先ほどコピーした tutorial_autohover と同じ内容で myproject_autohover をビルドしてみます。
phenox# cd /root/phenox/work/myproject_autohover
phenox# make clean all
これで、実行ファイル main
が作成されました。
4. プログラムの実行: 状態量の確認
このプログラムは以下の動作を行います。
- Phenox ライブラリの初期化
- ユーザーによって笛が鳴らされるまで待機
- 笛の音に反応して離陸
- ホバー状態に入り、その場静止をするように飛行制御
それでは、まず、待機状態の Phenox の各種状態量を確認してみましょう。
以下のコマンドでプログラムを実行します。
phenox# ./main
プログラム開始時には Phenox2 がジャイロセンサーなどの初期化を行うので、必ず Phenox2 を安定した場所で静止させて、手に持つことはしないで下さい。開始から3秒程で初期化は完了し、 CPU0:Finished Initialization.
というメッセージが現れます。万が一、この間に手で持つなどした場合は、初期化が完了しません。その場合はCtrl-cでプログラムを停止し、"reboot"コマンドで再起動します。
初期化が完了すると、状態量が表示されます。状態量の数字は、それぞれ px_selfstate
構造体のメンバー変数 (degx
, degy
, degz
, vision_tx
, vision_ty
, vision_tz
, height
) と、下向きカメラから得られた特徴点の個数を表しています。状態量の表示が開始されたら、Phenox2 を持ち上げて、動かしながら各状態量が変化することを確認してみてください。height
はホバー状態になるまで、0を示します。
5. プログラムの実行: 特徴点の検出状況の確認と地面の環境整備
状態量の表示の右端の数字が、下向きカメラから得られた特徴点の個数を示しています。Phenox2 を持ち下向きカメラを地面に向けながら、特徴点の個数がある程度の値 (最低 15 個程度)になるまで、床に特徴点となる模様を張り付けてください。なお、画像特徴点となりやすいものは、明暗がはっきりし、角の多い模様になります。
6. プログラムの実行: 飛行
地面の環境整備が完了したら、Phenox2 を地面の上に置き、Phenox2 の近くで笛を大きく吹いてください。離陸が始まります。笛の音を検出すると 3 秒間のスタートアップ状態の後、上昇 (PX_UP
) し、ホバー状態 (PX_HOVER
) となり, 高度方向、水平方向に状態を保つように飛行制御が行われます。
7. プログラムの実行: 飛行状態の停止
Phenox2 の 飛行を止める場合は、Phenox2 の足の1つを手で掴み、大きく傾けて下さい。不安な方は手袋を着用することをお勧めします。この機能は、チュートリアルプログラムに明示されてはいないものの、飛行制御用CPUの機能として備わっています。
8. シャットダウン
シャットダウンさせる際は、"halt"コマンドを実行した後、電源スイッチをOFFにしてください。
phenox# halt