こんにちはー!性格はずぼらな方、K-ki(K-ki@Ailerocket)です。
K-kiが初めて自作ドローンを作ってからもはや3年くらい経ってしまっていて、当時書いていたドローンを自作するためのノウハウをまとめていた連載記事が書きかけの状態で止まってしまっています。気づいてはいたんですが、筆無精なもんですっかりほったらかしになってしまっていました。
連載「OpenTXの使い方」
- OpenTX(ラジコン送信機・プロポ用ソフト)の使い方とインストール・設定方法
- OpenTXでドローン・ラジコン飛行機を飛ばす!#1 プロポの基本設定編
- OpenTXでドローン・ラジコン飛行機を飛ばす!#2 信号送受信・表示編
- OpenTXでドローン・ラジコン飛行機を飛ばす!#3 操縦コマンド設定編
- OpenTXでドローン・ラジコン飛行機を飛ばす!#4 便利機能編
ここ最近このサイトをちょくちょく更新しているので、せっかくだしこの機会に書きかけの情報をまとめてしまおうと思いたってこのページを書いています。何しろ昔のことで忘れてしまっている部分も多いのですが、自分用の忘備録でもあるので多少調べ直しつつまとめていきます。
OpenTX 設定の流れ
まず、OpenTXをインストールしてからドローンを操作できるようになるまでに、必要となる設定の流れを確認しておきましょう。
概要の理解とインストール
最初は、OpenTXとはどんなソフトウェアで何ができるのかを理解するところからのスタートです。プロジェクトの構成や対応するプロポ(送信機)の種類、ブランチについての知識を学んでおきましょう。
補足説明
OpenTXは対象とするプロポによって「ブランチ」が分かれています。Turnigy 9XR PROなら「OpenTX 2.1ブランチ」、Frsky Taranis Q X7なら「OpenTX 2.2ブランチ」、Frsky Taranis X9D+なら「OpenTX 2.3ブランチ」という具合です。使用するプロポに応じて適切なブランチのソフトウェアを使用する必要があります。
基礎を一通り学んだら、パソコンに設定ソフトである「OpenTX Companion」をインストールし、プロポにOpenTXファームウェアをインストールします。
-
OpenTX(ラジコン送信機・プロポ用ソフト)の使い方とインストール・設定方法
ドローン・マルチコプター・ラジコン飛行機などを操作する送信機(プロポ)には様々な種類があります。中でも、オープンソースソフトウェアのOpenTXは、細かい設定が可能で世界的に人気です。OpenTX対応のプロポやソフトのインストール方法を紹介します。
ここまでの操作の具体的な方法はこちらで紹介しています。OpenTXを初めて使う人はこちらのページから読み始めてください。
プロポの基本設定
インストール後、まずはプロポ本体に関わる設定を行います。日時、ビープ音やガイダンス音声の再生タイミング・音量、液晶スクリーンのバックライト設定、操舵に対する通信チャンネル割り当て、バッテリー減少時の警報音などの設定が、この基本設定に該当します。
-
OpenTXでドローン・ラジコン飛行機を飛ばす!#1 プロポの基本設定編
ドローン・マルチコプター・ラジコン飛行機などを操作する送信機(プロポ)用のオープンソースソフトウェア「OpenTX」について、モデルに依存しないプロポの基本的な設定方法を紹介します。日時・音声・バイブレーション・チャンネル・モードの設定が中心です。
プロポ本体の基本設定方法はこちらで解説しています。
機体ごとの設定(モデル設定)
OpenTXをはじめとする多くのプロポでは、一つのプロポで複数の機体を扱えるように「モデル設定」という機能が用意されています。これは複数の機体を同時に操作するという意味ではなくて、機体Aを使うときはモデルA、機体Bを使うときはモデルB、というように飛ばす機体によって設定を切り替えられるようにするものです。プロポ本体の設定が終わったら、次はモデル設定を行いましょう。
タイトルにもあるように、このページでは特にモデル設定について解説します。具体的な設定内容はモデル設定の内容の項目から紹介していきます。
設定対象のプロポ(送信機)の例
上にも書いたとおり、このページではOpenTXのインストールと基本設定は終わっているものとし、モデル設定について解説します。また、以前はOpenTX 2.1ブランチを中心に紹介していましたが、時間が経ったこともあって2.1ブランチのユーザーが減っていると思われるので、最新の2.3ブランチの情報と併記する形で紹介します。
以下でモデル設定の方法を、具体的なプロポの画面を示しながら解説します。ブランチごとに以下のプロポを例として使用しています。もちろん、OpenTXはこれら以外のプロポにも対応しているため、OpenTXのDownloadsページで対象のプロポを確認してください。
OpenTX2.1ブランチは9XR PRO
2.1ブランチについては、Turnigy 9XR PROの画面を交えて紹介します。ちなみに、K-kiはこのプロポを使っています。理由は安かったからです。
OpenTX2.1ブランチはTARANIS X9D+
2.3ブランチについては、Frsky TARANIS X9D+の画面で紹介します。昔は結構高かった気がするんですが、今では新しいバージョンや廉価版も登場し、だいぶ値段もこなれてきているようです。9XR PROはもはやほとんど売っていないこともあり、新しく始める人にはこちらをおすすめします。
このページで扱うモデル設定の内容
では、まずOpenTXのモデル設定ではどのような項目を設定できるのか、大まかなイメージを掴んでもらうために、モデル設定時に使用する設定画面の一覧を紹介しておきます。OpenTXのモデル設定には、以下に示す14の設定画面が存在します(ブランチやプロポによって表示されない画面もあります。)。
- モデル選択画面(MODEL SELECTION)
- モデルセットアップ画面(MODEL SETUP)
- ヘリコプタ用設定画面(HELI SETUP)
- フライトモード画面(FLIGHT MODES)
- インプット画面(INPUTS)/スティック画面(STICKS)
- ミキサー画面(MIXES/MIXER)
- アウトプット画面(OUTPUTS)/サーボ画面(SERVOS)
- 曲線設定画面(CURVES)
- グローバル変数画面(GLOBAL VARIABLES)
- 論理回路画面(LOGICAL SWITCHES)
- スペシャルファンクション画面(SPECIAL FUNCTIONS)
- カスタムスクリプト画面(CUSTOM SCRIPTS)
- テレメトリー設定画面(TELEMETRY)
- ディスプレイ設定画面(DISPLAY)
これらすべての設定画面の内容を紹介すると非常にボリュームが多くなってしまうため、このページでは1.~4.及び12.~14.の7画面を紹介します。これ以外の設定画面のうち、主にスティック操作からモーター制御までの設定は、以下のページで紹介します。
-
OpenTXでドローン・ラジコン飛行機を飛ばす!#3 操縦コマンド設定編
ドローン、マルチコプターやラジコン飛行機などを操縦するためのプロポ(送信機)用オープンソースソフトウェア「OpenTX」の設定方法を解説します。スティック等の入力からサーボ・モーターへの出力に関わる信号の設定を紹介します。
また、スティック操作やモーター制御に直接は関わらないものの、これらの設定をサポートする機能については以下のページで紹介します。
-
OpenTXでドローン・ラジコン飛行機を飛ばす!#4 便利機能編
ドローン、マルチコプターやラジコン飛行機などを操縦するためのプロポ(送信機)用オープンソースソフトウェア「OpenTX」の設定方法を解説します。GLOBAL VARIABLESやSPECIAL FUNCTIONSを中心に設定を楽にする便利機能を紹介します。
モデル設定の項目と方法
それでは、OpenTXにおける具体的なモデル設定の項目とその設定内容・方法を、設定画面ごとに紹介していきましょう。ブランチやプロポによって設定項目に多少の違いはありますが、設定内容に大きな差はありません。
モデル選択画面(MODEL SELECTION)
メインスクリーンから、9XR PROの場合MENUボタンの長押しで、TARABNIS X9D+の場合MENUボタンの一度押しでモデル設定画面に入れます。
この画面では、使用するモデル(機体別の設定一式)を選択します。「*」がついているのが選択されているモデルです。これ以降で行う設定変更は、全てここで選んでいるモデルに反映されます。
モデルセットアップ画面(MODEL SETUP)
モデル選択画面モデルの基本的な設定を行う画面です。設定項目を以下で説明します。
Model name
モデルの名称を設定します。機体の名前に合わせるのがわかりやすいでしょう。
Model image
モデル選択画面でモデル名称と一緒に表示される画像を指定できます。SDカードに保存されているビットマップ画像から選択することが可能です。プロポによっては画像を表示できないものもあります。
Timer(1~3)
何らかの操作をトリガにして、タイマーが発動するように設定できます(最大で3個まで)。時間を指定しなければカウントアップ、時間を指定すれば指定した時間からのカウントダウンを行います。
Name
タイマーの名前を設定します。
Persistent
チェックを入れると、電源が切れたりモデルを切り替えたりした時にタイマー値を保持し、次にこのモデルを選択した際に続きからカウントします。
Minute call
チェックを入れると、タイマーのカウント開始から1分毎にビープ音または音声でアナウンスをしてくれます。次の「Countdown」の設定とは独立しているので、Cowntdownで「Silent」に設定していても、ここにチェックを入れていると音が鳴ります。
Countdown
タイマーをカウントダウン設定にしている時に、指定時間が経過した時の挙動を設定します。ビープ音を1回鳴らす(Silent)、10秒以上のビープ音を鳴らす(Beep)、音声でアナウンスする(Voice)などを選択可能です。
Extended Limits
OpenTXでは、通常サーボモーターに対するパルス信号は、パルス幅が1500±512[µsec]の範囲でコントロールできるようになっています。Extended Limitsにチェックを入れると、このパルス幅として1500±768[µsec]まで使用可能になります。サーボモータによって1500±512[µsec]の範囲だと駆動範囲を使い切れない場合があり、その場合にここにチェックを入れることになります。
補足説明
ドローンというかラジコンの世界では、PWM(Pulse Width Modulation:パルス幅変調)という方法でモーターの制御を行っています。これは、ON/OFFを繰り返し切り替える信号(パルス信号)のON時間(パルス幅)を調整して情報を伝えます。
日本のラジコン界隈だと、トラベルアジャストの上限を150%まで使えるようにする、というような言い方がわかりやすいのかなと思います。なお、モーターの駆動範囲は広がってもプロポのスティックの可動範囲は変わらないので、機体がスティック操作に対して敏感になる点に注意が必要です。
Extended Trims
OpenTXでは、トリムを取れる範囲は、通常スティックの可動域に対して25%までに制限されていますが、Extended Trimsにチェックを入れると、スティック可動域のフルレンジに対してトリムを取ることが可能になります。
補足説明
ラジコン用語で、スティックを中立にしたときの出力信号を変更することを「トリムを取る」といいます。サーボモーターの個体差等で、真っすぐ進む操作をしたはずなのに少し斜めにそれて移動してしまうような場合に、それる方向と逆方向にトリムを取ることで操作しやすいように調整することが可能です。
Trim Step
トリムキーをクリック操作した時に、トリム位置がどのように変化するかを指定します。Fineだと1クリックで1µsec、Mediumで4でµsec、Coarseで8µsecです。Exponentialを選ぶと、トリム位置がニュートラル付近では細かく、ニュートラルから離れるにつれて粗く変化するようになります。
Throttle
スロットルに関する設定を行います。設定項目は以下の通り。
Reverse
チェックを入れると、スティックの上下とパワーの関係が逆転します。ドローンの場合には、スティックダウンで上昇するようになります。
Source
スロットルに関するタイマー機能を使用する際の信号源を指定します。通常はスロットルチャンネルが指定されていますが、例えば、ここに何かしらのスイッチと連動するチャンネルを指定すれば、そのスイッチをオンにするとスロットルをカットしてローターを止める、みたいな操作が可能になります。
Preflight Checks
飛行前点検として実施する内容を指定することができます。
Display Checklist
チェックを入れると、SDカードに保存された「DOS.txt」という名前のテキストファイルの内容を表示します。テキストファイルを編集して飛行前に確認したい内容を書いておくと、確認することができるよ、という機能です。
Throttle State
チェックを入れると、電源ONまたはモデルが読み込まれた時にスロットルスティックがフルダウンの位置にない場合に警告を表示します。通常はチェックが入っています。
Switch Positions
チェックを入れると、電源ONまたはモデルが読み込まれた時の、スイッチのあるべき状態を指定できます。「↑」はスイッチがONになっていることを示し、この状態とスイッチのON/OFF状態が異なると警告が表示されます。
Pot positions
ポテンショメータ及びスライダーについて電源ONまたはモデルが読み込まれた時の警告有無を指定します。「Off」は警告なし、「Man」は設定を行ったときの状態と違うと警告を表示、「Auto」は電源OFFまたは別モデルを読み込んだときと状態が違うと警告を表示、です。
Center Beep
スティック、ポテンショメータ、スライダーについて、それぞれのセンター位置をまたぐ操作をした時にビープ音がなるように設定できます。
Internal RF
RFモジュール (Radio Frequency:無線周波数)についての設定です。「Internal」なので、プロポが内蔵しているモジュールに対する設定になります。おそらくTARANIS系統のプロポのみで有効な設定項目と思われます。
Mode
内蔵モジュールの挙動を、Frskyの送信モジュールであるXJT D8/D16/LR12の中から選択することができます。
Channel Range
使用する通信チャンネルを設定します。
Receiver no
プロポ側の送信モジュールとバインドする受信モジュールの番号を0~63の間で指定できます。ここで指定された番号が受信モジュールへと送信され、対応する番号以外の操作は受け付けないような仕組みになっています。
Failsafe mode
プロポとの通信が途絶した場合など、不具合が起こった場合の動作を規定します。
Hold
最後に受信したサーボの位置を保持します。
Custom
あらかじめ設定したスティック位置に相当するサーボ位置を保持します。
No Pulses
最後に受信したサーボの位置から動かすような信号は出しませんが、その位置を保持する信号も出しません。
External RF
プロポに外付けするRFモジュールに対する設定です。基本的にはInternal RFの設定と同様です。
Internal RFではXJT D8/D16/LR12が選択できましたが、外部モジュールにはFrsky製以外のモジュールも含めて数多くの送信モジュールを取り付けることが可能なため、対応するモジュールを選択することができるようになっています。
Trainer Port
複数台のプロポを連動し、ドローンやラジコン飛行機の操縦方法を指導する「トレーナーモード」を使用するために必要な設定を行います。トレーナーモードでは、指導者側が「Master」、生徒側が「Slave」となって1機の機体を操作します。Master側からの操縦信号はそのまま機体の受信モジュールへと伝送されますが、Slave側からの操縦信号は一度Master側のプロポを経由して機体へと送られます。そのため、Master側のプロポでは、自分で操縦したり、Slave側に操縦させたりという設定をスイッチひとつで切り替えることが可能です。
OpenTXの設定としては、以下の4つの選択肢の中から設定を選び、必要に応じて通信方法などの詳細を指定します。
Master/Jack
3.5mmフォーンジャック(イヤホンジャック)を介してプロポ同士を接続し、トレーナーモードを使用します。この設定がされたプロポがMaster側として働きます。
Slave/Jack
上と同じく3.5mmのイヤホンジャックを介してトレーナーモードを使用する際、とくにSlave側として使用する場合に選択します。この設定を選択した場合は、使用するチャンネルと通信に使用するPPM制御のパラメータも追加で設定します。
Master/SBUS Module
受信モジュールがモーター/サーボとの通信規格にS.BUSを採用している場合、この設定を使用すると無線でMaster側としてトレーナーモードを利用することができます。
Master/CPPM Module
受信モジュールがモーター/サーボとの通信規格にCPPMを採用している場合、この設定を使用すると無線でMaster側としてトレーナーモードを利用することができます。
ヘリコプタ用設定画面(HELI SETUP)
ヘリコプター用の設定画面です。ヘリコプター操縦の要となるスワッシュプレートの操作設定等を行います。説明しだすとかなり難しい話を細かく解説しなければならないので、ここでは割愛します。
フライトモード画面(FLIGHT MODES)
フライトモードという名前は付いているが、APM(ArduPilot Mega)などのフライトコード(飛行制御プログラム)で指定されているフライトモードのことではなく、ラダー、エレベーター、エルロン、スロットルの4軸それぞれについてのトリム設定の組み合わせを「フライトモード」として登録しておき(最大9個まで)、スイッチ操作などで簡単に呼び出せるようにするための設定です。
例えば、低速前進、高速前進、右旋回、左旋回などのそれぞれを実現できるトリム状態をあらかじめフライトモードとして設定しておけば、スイッチ操作でそれぞれの飛行状態を簡単に呼び出すことができ、操縦をより簡単にすることができます。また、カメラなどを搭載できる機体で、搭載物の状況ごとにスロットルのトリム状態をフライトモードとして設定しておけば、機体重量が変わっても簡単に高度保持状態を確立することができます。
カスタムスクリプト画面(CUSTOM SCRIPTS)
OpenTXでは、「Lua」というプログラミング言語を利用したカスタマイズにも対応しています。Luaを使ってできることは主に以下の3つです。
ポイント
OpenTXでは、Luaによるプログラミングを行うことで以下の3つのことができるようになります。
- スティックやスイッチ、ポテンショメータ等の操作端からの入力信号を利用して計算を行い、ミキサー画面で表示される入力値を生成する。(カスタムスクリプト)
- スイッチ操作等に連動して音声アナウンスなどを発生させる。(ファンクションスクリプト)
- テレメトリーデータまたはそれを利用した計算値をテレメトリースクリーンに独自のレイアウトで表示させる。(テレメトリースクリプト)
カスタムスクリプト画面では、これらのうち1つ目の、ミキサー画面に表示される入力値の生成が可能です。
LUA(1~7)
使用するLuaスクリプトを7つまで指定することが可能です。ENTキーを押すと、以下の値を設定する画面に遷移します。
Script
プロポに挿入されたSDカード内のデータから、使用するLuaスクリプト(.luaファイル)を選択します。
Name
Luaスクリプトによる計算結果に名前をつけてラベリングすることが可能です。
Inputs
実行するLuaスクリプトに対する引数を指定する事ができます。Luaスクリプトでの指定の仕方により、スロットルやスイッチ等の入力値を指定することや、固定の数値を指定することができます。
テレメトリー設定画面(TELEMETRY)
テレメトリーは、機体に搭載されている受信モジュールからプロポ等の地上側の装置に向かって、姿勢、高度、速度などの諸元を送信し確認できるようにする機能です。テレメトリー機能に対応する送信モジュールと受信モジュールを組み合わせて使っている場合に利用できます。
RSSI
RSSI(Received Signal Strength Indicator:受信信号強度)は、受信モジュールが送信モジュールからの電波を受信した際の信号強度を表す数値です。この信号をプロポで確認できると、ドローンが遠くに行き過ぎた結果電波が届かなくなって操縦不能になるのを避けることができるので、非常に重要な信号です。
OpenTXではRSSIは0~100の数値で表され、100に近づくほど信号の強度が強くなります。また、RSSIは対数で表現されているため、数値が3下がると信号強度は半分になります。また、信号強度は送信モジュールと受信モジュール間の距離の2乗に反比例するため、距離が2倍になるとRSSIは6下がります(信号強度が4分の1になる)。
RSSIをスクリーンに表示して確認できるようにするためには以下の項目の設定が可能です。
Source
RSSIとして表示する信号源を選択します。基本的にはdefaultで問題ないはずです。
Low alarm
「RF signal low」の警告アナウンスが発生するRSSIの値を設定します。デフォルトでは45になっています。
Critical alarm
「RF signal critical」警告アナウンスが発生するRSSIの値を設定します。デフォルトでは42になっています。
Disable telemetry alarms
「RF signal low」と「RF signal critical」のアナウンスを無効にします。
Sensors
テレメトリー機能を介して取得できるセンサデータについての設定を行います。
Discover new sensors
ENTキーを押すと、テレメトリー機能で取得できるセンサのリストを自動的に生成します。
Add a new sensor…
テレメトリー機能で取得したセンサ信号に対し、対数変換やフィルタ、何らかの計算などの処理を追加したカスタムのセンサ信号を設定し、センサリストに追加します。
Delete all sensors
取得できるセンサのリストを消去します。
Ignore instances
OpenTXは主としてFrsky製のプロポや送受信モジュールを対象にしています。Frsky製ではない送受信モジュールを使用した場合に、上手くセンサリストを取得できないことがあり、そういった場合に不具合を起こさないようセンサ信号を取得しないようにする設定です。基本的にはあまり使うことはありません。
Variometer
バリオメータとは昇降計(垂直速度計)のことで、機体の上昇率や降下率を示す計器です。機体の状況を表すために重要度の高い情報であるため、特出しで設定できるようになっています。
Source
垂直速度信号の信号源を設定します。
Range
OpenTXでは、垂直速度に応じてトーン音を発生するように設定できます。トーン音のテンポが変化する垂直速度の範囲を設定します。
Center
上昇・降下と判定しない垂直速度の範囲を設定します。また、「Tone」を選択しているとCenterで設定された範囲の垂直速度に置いてもトーン音が発生し、「Silent」を選択するとCenterで設定された範囲の垂直速度域ではトーン音が鳴らなくなります。
ディスプレイ設定画面(DISPLAY)
ディスプレイ設定画面では、メインスクリーンやテレメトリースクリーンに表示する情報を設定することが可能です。基本的には、テレメトリーデータを表示する場所を選ぶ設定画面になります。OpenTX2.1では、上で紹介したテレメトリー設定画面内で同様の設定を行います。
Top bar
メインスクリーンの上端にバー形式で表示される情報を設定します。
Voltage sourse
電圧を表示するための信号源となるテレメトリーデータを選択します。
Altitude
高度を表示するための信号源となるテレメトリーデータを選択します。
Screen(1~4)
メインスクリーンから、Taranis X9Dの場合PAGEキーの長押しで入れるテレメトリースクリーンに、どんな信号を表示するかを設定する画面です。テレメトリースクリーンは最大で4ページ分まで設定できます。
Nums
プロポの種類によって8個又は12個までのテレメトリーデータを数値表示するように設定できます。
Bars
4個までのテレメトリーデータを横方向に伸びるバー形式で表示するように設定できます。
Script
テレメトリー画面を表示するためのLuaスクリプトを選択します。
特に重要な設定
説明した項目の数が非常に多いため、その中でも特に重要な設定をピックアップして紹介しておきます。
Internal RF/External RF
Internal RF及びExternal RFの設定は、プロポから機体へと操作信号を送信するための設定であり非常に重要です。この設定が上手くできていないと、機体を操縦することができません。プロポを操作しても機体が反応しない場合などは、この設定を疑いましょう。
また、詳細な手順は別のページ(執筆中)で紹介することにしますが、受信モジュールと送信モジュールをバインドし、信号のやり取りができるように設定する際にもこの項目を使用します。
RSSI
RSSIは機体を操縦不能に陥らせないために重要な設定です。OpenTXを使用しているということは、多くの場合Frsky製品を利用していると思います。Frsky製の送受信モジュールであれば、少なくとも1系統はアナログ信号のテレメトリーが見れる物が多いので、その信号でRSSIが出力されるように設定しておけば、RSSIを確認できます。
ただし、RSSIと同じくらい重要な信号に機体のバッテリー情報があります。こちらも、バッテリー減少に気づかなければ墜落につながるため非常に重要な情報です。表示できるテレメトリー信号の数が限られる場合はどちらにするかは悩みどころです。
まとめ:OpenTX関連の参考ページ
書き始めてから思い出しましたが、設定項目が多すぎて説明が膨大になるのが嫌でこのページはお蔵入りしたんでした。非常に長い時間があいてしまいましたが、何とか書いたので参考にしてください。なお、今回は書ききれなかったスティック操作からサーボ制御までの信号関係の設定は、以下のページで紹介しています。こちらもぜひ参考にしてください。
-
OpenTXでドローン・ラジコン飛行機を飛ばす!#3 操縦コマンド設定編
ドローン、マルチコプターやラジコン飛行機などを操縦するためのプロポ(送信機)用オープンソースソフトウェア「OpenTX」の設定方法を解説します。スティック等の入力からサーボ・モーターへの出力に関わる信号の設定を紹介します。
最後に、OpenTX関連で参考になるページを紹介しておきます。いずれも英語のサイトですが、日本語では大した情報がないので仕方ありません。英語のドキュメントを追えばかなり詳しい設定が理解できると思うので、ぜひ読んでみてください。