バッテリが切れそうになった場合、どうなるの?
飛行中の場合は、CPU1(飛行制御CPU)により無条件で下降状態 (PX_DOWN
) に入り、着陸後に静止します。 ユーザー側で halt
コマンドを実行し、電源スイッチを OFF
にしてください。なお、飛行中でない場合は、特にメッセージを表示しません(TODO)。使用時間を意識して、適宜電池を交換してください。
飛行中に Linux に異常が発生した場合、どうなるの?
Phenox アプリケーションでは、CPU0(Linux) と CPU1(飛行制御CPU) は pxset_keepalive
関数を呼び出すことで、定期的に通信を行ってください。(APIを参照)。
この通信が一定時間行われない場合、CPU1 側の判断で、以下のような動作を行います。
- ホバー状態 (
pxget_operatemode() == PX HOVER
) の場合はホバー状態を維持し、バッテリー残量が少なくなると降下します。 - 離陸命令 (
pxset_operatemode(PX_UP)
,pxset_operatemode(PX HOVER)
) は受付けなくなります。
天井にぶつかる。離陸時に高く上昇するのを抑制したい。
以下の関数を小さく設定して下さい。(20160109以降のphenox_ubuntu_masterのtutorialでは修正済み)
pxset_rangecontrol_z(120);//pxset_rangecontrol_z(150);
電池が切れていないのに下降する。
各チュートリアルでは、飛行中に笛の音に反応して下降するようにプログラムが書かれており、飛行中のプロペラ音で笛が誤検出されている可能性があります。笛の感度を下げるには、各プロジェクトフォルダにあるparameter.cのparam.whisleborder
を大きめに設定してみてください。
飛行中に突然落下した。
電池のケーブルが断線してかかっていないかどうか、確かめてください。メインボードに電源を供給しながら電池のケーブルを動かしたとき、接触不良によってLEDが明滅することがありませんか?
また、プロペラの一部が回らなくなっている場合は、モーターのケーブルが断線していないか、ケーブルを引っ張ってみるなどして確かめてください。
ブートの成功率が悪い
使用開始時に、ブートがなかなか成功しない現象(電源投入後、汎用LED0,1が点灯しっぱなしで、シリアル通信でメッセージが表示されない)が起こることがあります。その場合は MicroSD カードを抜き差しし、電源投入を再度行い、10 秒ほど様子を見るという動作を繰り替えしてください。
プロペラの交換
プロペラは、時計回りのプロペラと、反時計まわりのプロペラの 2 種類があるため、交換の際には正しい回転方向のプロペラを選択してください。プロペラは、モーターを片手で抑えながら、プロペラを手でねじることで取り外すことが可能です。挿入の際は、逆の手順で行います。接着剤は使用しないで下さい。
真っ直ぐ上昇させたい。
まずは、メイン回路が4ヶ所のシリコンリングに挟まっていることを確認してください。 Phenox2の上昇時は、下向きカメラを用いた画像特徴点による自己位置制御が行われないため、ホバー状態になるまで水平方向に大きくずれる場合があります。対策としては、電池の位置をずらす、あるいは以下の記述のようにparameter.cのバイアスパラメータを変更するなどの微調整を行ってください。
ペイロードを載せた場合などでは、重心位置が変動し、上昇状態、ホバー状態下で重い方向にPhenox2が移動してしまうことがあります。この場合、各プロジェクトフォルダにあるparameter.cの中のduty_bias_front
,duty_bias_back
,duty_bias_left
,duty_bias_right
の4つのパラメータを変更し、プロジェクトのビルドを参考に、ビルドしてください。それぞれの値は該当するプロペラの推力の強さを意味し、-250から250程度の値が推奨値です。例えば、以下の設定では、左のプロペラの推力が増加し、右のプロペラの推力が減少します。そのため、機体全体は右方向に動こうとする力が強くなります。
param.duty_bias_front = 0;
param.duty_bias_back = 0;
param.duty_bias_left = 130;
param.duty_bias_right = -130;
風などの外乱に強くしたい。
各プロジェクトフォルダにあるparameter.cにある、以下のパラメータを変更することで、上からの吹き降ろしや、横からの風に対して頑強にすることが可能です。急激な変更は行わず、小さな変更と実験を繰り返し行うようにして下さい。
param.duty_hover_max = 2800;//2250;
param.pgain_degx = 2050;//1580;//1800:
param.pgain_degy = 2050;//1580;//1800;
param.dgain_degx = 28;//22;//30;
param.dgain_degy = 28;//22;//30;
変更後はプロジェクトのビルドを参考に、ビルドしてください。
ペイロードを増やしたら、どうするの?
基本的に、重量の変化によって重大な姿勢制御への影響(転倒)が起こることはありませんが、上昇状態、ホバー状態、下降状態の推力パラメータを変更する必要があります。各プロジェクトフォルダにあるparameter.cの中のduty_hover
,duty_hover_max
,duty_hover_min
,duty_hover_up
,duty_hover_down
の5つのパラメータを増加重量に応じて増やし(最大700程度)、プロジェクトのビルドを参考に、ビルドしてください。
パラメータは実験的に決まりますが、特に注意が必要なのは下降時のパラメータであるduty_hover_down
です。この値が大きすぎると、バッテリ残量が少なくなった場合に自動的に遷移する下降状態(pxset_operatemode() == PX_DOWN)
においても機体が下降せず、下降時間(downtime_max
)が経過した後に停止状態になり、高い位置から落下する危険があります。
ターミナルの画面がフリーズした。電源確認用LEDが点滅を始めた、あるいは点灯しなくなった。
バッテリ残量が非常に少なくなり、回路への電源供給ができなくなっている可能性があります。電池を充電してください。
正面カメラの特徴点が表示されないことがある。
以下のような現象が起きる場合があります。
1. 正面カメラの特徴点の数が異常に少ない(0~2個くらい)。画像取得はできている。
2. 電源を切るまで変わらない。
3. 電源を入れ直して、正常に特徴点を取得した場合は、電源を切るまで正常に特徴点を取得できる。
この現象は、Phenox2のソフトウェアの不具合(正面カメラ初期化の異常)によるものです。現状は電源をリセットして、正常な画像が出るまで試行してください。この不具合が修正された場合は「ホーム」で周知の上、ファームウェアを更新します。
回路が死んだ?
回路はあまり多くを語りませんが、理由も無く不具合を起こすことは決してありません。メイン回路が正常に起動しなくなるパターンはほとんど全ての場合、金属が(運悪く当たりどころの悪いところに)接触したか、過度な力で基板が曲げられたか、の2種類です。 最も簡単な判別方法として、電源投入時に電源確認用LEDが点灯している場合、回路は生きています。その場合は、シリアル通信の設定が正常でない、SDカードのブートに成功できていない状況(電源投入して数秒経過しても汎用LED0,1が点灯しっぱなし)を疑って下さい。