100g未満FPVドローン製作 – パラメータ設定(初期設定(1))

2025年11月30日

 前回までに100g未満ドローンの機体製作と独自(カスタム化)のArdupilotのインストールについて説明してきました。今回からこのインストールしたArdupilotのパラメータ設定を行い、100g未満ドローンを飛行できるようにします。パラメータの設定には地上局制御ソフトのMission Plannerを用います。最新のMission Plannerはこちらからダウンロードできます。Windows PCにインストールして使用します。

 パラメータ設定には以下の主に以下の2種類があります。

  • 機体を飛行可能な状態にするためのハードウェアの初期設定
  • 機体の飛行性能を向上させるためのチューニング設定

 まずハードウェアの初期設定から説明します。初期設定では以下の項目(項目名は一部を除きMission Plannerの表示から引用、このため英語と日本語が混載)のパラメータを設定します。

  • フレームタイプ
  • Accel Calibration
  • コンパス
  • ラジオキャリブレーション
  • Servo Output
  • Serial Ports
  • ESC Calibration
  • フライトモード
  • フェールセーフ
  • Initial Tune Parameter
  • モーターテスト
  • VTXパラメータの設定
  • その他のパラメータ

ドローンとMission Plannerの接続

 フライトコントローラのUSB接続用SHコネクタをSH-USB変換ボードに接続し、変換ボードのUSB端子をPCに接続します。この時、ドローンにバッテリーを装着する必要はありません。USBよりフライトコントローラに電源が供給されます。MissionPlannerを起動して、右上のCOMポート①をクリックして「Ardupilot COMx」 の表記があるポートを選択し、「接続」②をクリックします。「パラメータ取得中1」のサブウィンドウが表示され、フライトコントローラからのパラメータ取得が完了すると「接続」が「切断」に表示が変わります。COMポートに「Ardupilot COMx」 の表記が無い場合は、SHコネクタとSH-USB変換ボードをチェックして正常に接続されているか確認してください。

MissionPlannerの起動画面

 次にMission Planner左上の「初期設定」③タブをクリックすると、右端に「必須ハードウェア」④タブが表示されますので、クリックして初期パラメータの各項目を表示させます。

MissionPlannerの初期設定項目画面

フレームタイプの設定

 最初にフレームタイプを設定します。上記画面の「必須ハードウェア」・「フレームタイプ」⑤をクリックし、フレームタイプ設定画面を表示させます。「フレームクラス」設定で「4プロペラクラス」⑥をクリックします。「フレームタイプ」設定で「’X’、’Y6A’」タイプのラジオボタン⑦をクリックして、フレームタイプの設定は完了です。

 フレームタイプ設定により4個のモータ位置はデフォルトで設定されます。しかしながらこのデフォルトのモータ位置はArdupilotで定義された位置と必ずしも一致するとは限りません。両方の位置を合わせないと、ドローンの正常な飛行ができません。Ardupilotのドキュメントではフライトコントローラごとのモータの位置関係が詳細に説明されていないので、モータ位置関係を理解するのにかなり苦労しました。

 以下にフライトコントローラFlywoo GOKU GN405S 20A AIOのモータの位置(番号)とArdupilotモータ位置の関係を示します。Mission Plannerの「モーターテスト」でのモータ位置(A~D)が右前→右後→左後→左前の順になるようにフライトコントローラのモータ位置(パラメータ名:Servo1~4)にArdupilotの設定値(33~36)を割り当てます。「初期設定」画面の「オプションハードウェア」・「モーターテスト」で「テスト モーターA~D」をクリックするとA~Dのモータが回転しますので、A~Dがどの位置のモータに該当するかを確認できます。字部2025年11月5日修正)

フライトコントローラとArdupilotのモータ位置関係(修正)

 モータの位置関係を変更するには、Mission Plannerの「設定/調整」タブをクリックします。表示画面の左側タブの「フルパラメータ リスト」をクリックしてパラメータリストを表示させます。リスト下方にある「Servo1~4」パラメータの「Servox_function(xは1~4)」⑩の値を上の図の値に変更して「パラメータ書込」ボタン⑪でフライトコントローラに書き込みます。Servox_functionの値と回転方向が正しく設定できれば、問題なく最初の離陸に成功します。回転方向については「オプションハードウェア」・「モーターテスト」で説明します。誤った設定を行うと、離陸時にひっくり返ったり、怪獣ガメラのように水平回転したりするので注意が必要です。私は最初の頃にこの設定方法がわからなくて両方とも経験し苦労しました。尚、最近はモータ位置設定に関してサイトが開設されています。

Accelerometer Calibration

 次にフライトコントローラボードに搭載されているIMUの調整(キャリブレーション)を行います。「初期設定」画面の左側の「Accel Calibration」タブ⑫をクリックします。「Accelerometer Calibration」画面が表示されるので「Calibrate Accel」⑬ボタンをクリックします。順に以下の操作⑭を行い、キャリブレーションを完了します。

  1. ドローンを水平にして(vehicle LEVEL)「完了したらクリック」ボタンをクリックする。
  2. ドローンを進行方向左に90°傾けて(vehicle LEFT)「完了したらクリック」ボタンをクリックする。
  3. ドローンを進行方向右に90°傾けて(vehicle RIGHT)「完了したらクリック」ボタンをクリックする。
  4. ドローンを進方向に90°傾けて(vehicle NOSEDOWN)「完了したらクリック」ボタンをクリックする。
  5. ドローンを進方向後方に90°傾けて(vehicle NOSEUP)「完了したらクリック」ボタンをクリックする。
  6. ドローン背面を上側にして(vehicle BACK)「完了したらクリック」ボタンをクリックする。
Accel Caribration画面

シリアルポートの設定

 「コンパス」設定や「ラジオキャリブレーション」を実施する前に、テレメトリーや各種センサー接続のためのシリアルポートの設定を行います。シリアルポートのテレメトリー設定を行えばドローンとMission Plannerを無線(Xbee:ZigBeeプロトコル)で接続することができるようになります。ドローンを360°回転させる必要がある「コンパス」の設定・キャリブレーションが容易になります(USB接続ではケーブルが邪魔になって360°回転させることが困難です)。

 100g未満ドローンの組み立てのページで示したように各シリアルポートの割り当ては以下の通りです。シリアルポートのプロトコルおよびボーレートに設定によりArdupilotでテレメトリーや各センサーと通信ができるようになります。コンパスはI2C接続ですのでArdupilotにより自動的に検出されます。

NoI/O端子名センサー名プロトコルボーレート
1Serial Port1
UART1(Rx1、SBUS)
RC受信機S.BUS115200
2Serial Port2
UART2(Rx2,Tx2)
テレメトリー(Xbee Zigbee)MAVLINK257600
3Serial Port3
UART3(RX3,TX3)
オプティカルフローMSP115200
4Serial Port4
UART4(Tx4)
VTXコントロールSmartAudio115200
5Serial Port6
UART6(Rx6,Tx6)
GPSu-blox115200
6I2C (SDA,SCL)コンパス
シリアルポートの割り当て

 シリアルポートの設定にはMission Planner「初期設定」画面左の「Serial Ports」タブ⑮をクリックします。各シリアルポートのポートNoとスピード(ボーレート)とプロトコルが選択項目⑯として表示されます。上記のシリアルポートの割り当てに従って各項目を選択します。

シリアルポートの設定

Xbeeテレメトリーの設定

 シリアルポート2に設定したテレメトリーで、地上制御局(Mission Planner)と交信するにはドローンに搭載したXbeeモジュールとMission Plannerに接続するXbeeモジュールをあらかじめ相互に通信できるよう設定しておく必要があります。Xbeeの各パラメータの設定値は以下の通りです。

CategorySetting Parameters
PC’s XBeeDrone XBee
NetworkingID=1234, SC=7FFF, SD=3, ZS=0, NJ=FF, NW=0, JV=[0], JN=[0], CE=[1], DO=0, DC=0ID=1234, SC=7FFF, SD=3, ZS=0, NJ=FF, NW=0, JV=[0], JN=[0], CE=[0], DO=0, DC=0
AddressingDH=13A200, DL=<SL of drone’s XBee>, NI=xbeepc, NH=30, BH=0, AR=FF, DD=A0000, NT=3C, NO=0, CR=3DH=13A200, DL=<SL of PC’s XBee>, NI=xbeedrone, NH=30, BH=0, AR=FF, DD=A0000, NT=3C, NO=0, CR=3
ZigBee AddressingSE=E8, DE=E8, CI=11, TO=0SE=E8, DE=E8, CI=11, TO=0
RF InterfacingPL=Highest[4], PM=Boost Mode Enabled[1]PL=Highest[4], PM=Boost Mode Enabled[1]
SecurityEE=[0], EO=0, KY=0, NK=0EE=[0], EO=0, KY=0, NK=0
Serial InterfacingBD=57600[6], NB=[0], SB[0], RO=3, D6=[0], D7=[0], AP=Transparent mode[0], AO=Native[0]BD=57600[6], NB=[0], SB[0], RO=3, D6=[0], D7=[0], AP=Transparent mode[0], AO=Native[0]
AT Command OptionsCT=64, GT=3E8, CC=2BCT=64, GT=3E8, CC=2B
Sleep ModesSP=20, SN=1, SM=No Sleep(Router)[0], ST=1388, SO=0, WH=0, PO=0SP=20, SN=1, SM=No Sleep(Router)[0], ST=1388, SO=0, WH=0, PO=0
I/O SettingD0=Commissioning Button[1], D1=[0], D2=[0], D3=[0], D4=[0], D5=Associated indicator[1], D8=Sleep_Rq[1], D9=Awake/Asleep indicator[1], P0=RSSI PWM Output[1], P1=[0], P2=[0], P3=DOUT[1], P4=DIN[1], PR=1FBF, PD=1FFF, LT=0, RP=28D0=Commissioning Button[1], D1=[0], D2=[0], D3=[0], D4=[0], D5=Associated indicator[1], D8=Sleep_Rq[1], D9=Awake/Asleep indicator[1], P0=RSSI PWM Output[1], P1=[0], P2=[0], P3=DOUT[1], P4=DIN[1], PR=1FBF, PD=1FFF, LT=0, RP=28
I/O SamplingIR=0, IC=0, V+=0IR=0, IC=0, V+=0
Xbeeのパラメータ設定

Xbee(Zigbee)の設定については以下のサイトを参照してください。

Telemetry-XBee — Copter documentation

 Mission PlannerではXbeeの設定を行うことができないので、Digi-International社のXbee設定ツール「X-CTU」をPCにインストトールして設定を行います。X-CTUの使い方は色々なサイトで紹介されていますのでここでは割愛します。Xbeeの設定には、PCとUSB接続するためのシリアル-USB変換ボードが必要です。Xbeeのシリアル端子(Tx、Rx)と電源端子を変換ボードのシリアル側とでクロス接続(Tx→Rx、Rx→Tx)します。Xbeeの電源電圧は5Vではなく3.3Vなので注意してください。私はドローンを飛行させる場合にもMission Plannerと容易に接続ができるよう秋月電子通商の「Xbee USBインターフェースボードキット」を購入して自作の3Dプリントケースに入れて使用しています。

 以上によりテレメトリによるドローンとMission Plannerとの無線通信が可能となり、各種パラメータの設定がUSBケーブルを使用しないで設定できます。次回以降、テレメトリーによる無線通信でのパラメータの設定を行います。

100g-drone

Posted by dronedroid-masa