virt_flyのブログ -20ページ目

virt_flyのブログ

フライトシミュレーターソフトのFlightGearで仮想飛行を楽しむブログです。

↑FlightGear画面にルートマネージャー、マップ、オートパイロット・セッテイングを表示させたもの

 

フライトプランを使ったオートパイロットの手順

 

フライトシミュレーターのFlightGearで自動操縦に成功しましたので、なかでも興味深いルートマネージャーで作成したフライトプランを使ったオートパイロットについて、忘れないうちに設定、手順をメモに残したいと思います。

 

良い解説はなかなか見つからないもので手こずりましたが、手っ取り早く自動操縦を試したくて簡単に実現を心がけた結果、結構シンプルに自動操縦が実行できました。本格的なフライトプランの作成にはもっと知識が必要ですが、自動操縦の雰囲気だけでもとりあえずは味わうことができます。

 

それでは、具体的にルートマネージャーやマップ、オートパイロット・セッティングを使って自動操縦を行う手順を記します。

 

1)フライトプランの作成

 

いわゆるフライトプランは、FlightGearではルートマネージャーの機能を使い、これにWaypointを入力することで作成した飛行ルートがそれです。

 

ここでは関西新空港から中部国際空港へのフライトプランを作成するものとします。

 

①ルートマネージャーを開く

 

フライトプラン作成のために、ルートマネージャーを開きます。

 

FlightGear画面の上部のメニューバーから[Autopirot]をクリック

→開いたドロップダウンメニューのなかの[Route Manager]を選択

→Route Managerのダイアログが開きます

 

↑開いたばかりのRoute Manager

 

②行き先の空港の入力

 

開いたRoute Managerのダイアログには発着空港のデータを入力するボックスがあり、すでに出発空港のICAOコード(ここではRJBB)と滑走路番号が入っています。

 

したがって、入力する必要があるのは[Arrival:]に行き先の空港のICAOコード(ここではRJGG)とその横の[Rwy:]に滑走路番号となります。

 

この他、巡航速度や高度を入力するようになっています。本来入力すべきなのでしょうが、なくても特段支障はなさそうというか、入力しても速度、高度が保たれるわけではありません。

 

↑到着予定空港を入力したRoute Manager

 

到着予定の空港が入力できたら、それまで下の四角の枠内に000の数字の後に出発空港のICAOコードと滑走路番号が記された行が1行だけ表示されていたのが、001の数字の後に到着空港のICAOコードと滑走路番号が記された行が新たに加わり、都合2行になっているはずです。

 

③SIDの入力

 

次に、ダイアログボックスの右上にある[SID:]のボックスの▲印を押して「DEFAULT」を選び入力します。

 

すると、今度は出発と到着の2つの空港を表示する2行の間に、英数字の書かれた何行かが挿入されて表示されます。

 

↑[SID:]にDEFAULTを指定した後のRoute Manager

 

今回増えた行は、離陸してからの標準計器出発方式に定められたルートなのだと思われます。おそらくFlightGearで必須なわけではなさそうです。

 

なんだか、ルートができてきてフライトプランが作られた気分になってきますが、本格的にはルート作成の作業はこれからです。

 

④Waypointの入力

 

本格的なルート作成には、本機の位置を確認する拠り所となる標識というか地点、すなわちWaypointを入力していかなければなりません。

 

空港や無線施設の他、緯度・経度でも指定ができます。ちなみに、対象となる空港や無線施設の探し方は、後の「2)Waypointの探し方」に記します。

 

書式は空港、無線施設のコードや緯度・経度にオプションで@高度をつけたものとなります。高度を指定しておけば、自動操縦時のオートパイロットの設定に反映されます。

 

  例)RJOY@3000 あるいは 34*25'42.9"N,135*12'22.4"E など

 

これを、[Waypoint:]と表示されたテキストボックスに書き込み、[Add]を実行して先のルートのリストに追加していくことになります。

 

↑[Waypoint:]に入力中

 

その際は、順番を間違えないように挿入位置の上の行にカーソル移動した上で実行するか、実行後ならドラッグで行を移動させます。

 

入力したWaypointが不要なら、ダイアログボックス下部にある[Remove]ボタンで削除できます。

 

飛行ルート上にWaypoint設けるには、ルールがあると思われますが、航空関係の法令に通じているわけでなし、まことにアバウトながらここでは試しということでWaypointの入力は2、3箇所にとどめます。

 

↑ルートにSHINODA VOR-DMEとYAO飛行場が加わりました


セーブとロード

 

フライトプランが完成したら、保存しておきたいですね。ルートマネージャーの[Save]ボタンをクリックし、わかりやすい名前をつけて保存します。

 

なお、保存するフライトプランの名前の後に拡張子.fgfpを付け足さないと拡張子なしのファイルになってしまいますので、注意しましょう。

 

保存した拡張子.fgfpのファイルは[Load]で読み込めます。

 

困りごとは、保存、ならびに読み込みとも、その際開いた保存先フォルダーとファイル名を指定する画面が、実行後も閉じず、キャンセルを押そうが開いたままになることです。

 

開きっぱなしでもFlightGearの画面を上にもってきさえすれば、支障がないとも言えますが…。

何回もセーブやロードを繰り返してFlightGearがフリーズするようなら、Flightgearの[✕]あるいは開きっぱなしのセーブ、ロード時画面の[Cansel]を連打しましょう。通常はFlightGear終了時には、開きっぱなし画面も閉じます。

 

2)Waypointの探し方

 

Waypointを探すのに役立つのがマップです。

 

FlightGear画面の上部のメニューバーから[Equipments]をクリック

→開いたドロップダウンメニューの先頭にある[Map]を選択

→Map画面が開きます

 

すでにフライトプランがルートマネージャーにより作成中、あるいはFlightGearに読み込まれておれば、Map画面には当該の機体が滑走路の上に表示されるとともに、飛行予定ルートがピンク色の線で表示されているはずです。

 

↑飛行中のMap ピンクの線が今後の飛行ルート、グレーの先はこれまでの飛行経路、黄色の±形が現在位置、黄色の破線が進行方向

 

Map中にある、四角の中に六角形の青色マークや()中に()のあるような黒色マークが無線施設、下に4文字のコードがついた白い塔のようなマークが空港で、Waypointになるものです。

 

Waypointを追加する場合は、ピンクのルートの近くの空港や無線施設を見つけ、表示された文字をルートマネージャーに入力すると、ルートのリストが増えるとともに、Map上では当該Waypoitに新たにピンクの線が繋がり、既存のWaypoint同様に十字手裏剣のようなマークが付きます。

 

3)アクティベートとJump To

 

ここが勘所です。

 

ルートマネージャーでWaypointの入力が終わり、フライトプランが完成したら、オートパイロットでつかえるように、アクティベートを実行する必要があります。

 

ルートマネージャーのダイアログボックス下部にある[Activate]をクリックします。すると、ルートのリスト最上段にある出発空港の行の頭に記号の「>」がつくとともに文字の色がオレンジに変わります。

 

↑[Activate]を実行したときのRoute Managerの画面

 

これで、オートパイロットとのリンクができ、オートパイロットの設定にすすむことができるようになったわけです。るのですが、その前に忘れないように次を実行しておきます。

 

それは、次に向かうWaypointの行を選択し、今度は[Jump to]をクリックすると、ことです。ここでは、①行目に代わり2行目の頭その行の頭に「>」がつくとともに文字の色が変わったはずです。オートパイロットに離陸したら向かうべきWaypointが知らされることになります。変わります。この場合、直ちに機体を次のWaypointに向かわせるよう、オートパイロットに知らされることになります。早めに回頭の必要がある場合に有効です。

 

↑[Jump To]を実行したときのRoute Managerの画面

 

4)オートパイロットで自動操縦

 

①オートパイロット・セッティングを開く

 

それでは、オートパイロット・セッティングを開き確かめてみましょう。

 

FlightGear画面の上部のメニューバーから[Autopirot]をクリック

→開いたドロップダウンメニューの先頭にある[Autopilot Settings]を選択

→Autopilot Settingsが開きます

 

②オートパイロットの設定

 

Autopilot Settingsのダイアログ画面は、ルートマネージャーでアクティベートを実行する前から開いておけばよくわかるのですが、[True Heading:]の箇所がアクティベート実行後には[GPS/FMS Heading:]に変わり、機首の方角が角度で示されます。

      

今回の自動操縦ではこれを使うことになりますので、[GPS/FMS Heading:]のラジオボタンをクリックしてこれを選択、ついで[Heading Control]と表示されたチェックボックスにチェックを入れ有効にします。

 

↑Route Managerでアクティベート実行後のAutopilot Settings画面ーGPS/FMS Headingにチェック後、Heading Controlにチェックで自動操縦スタート

 

ダイアログ画面の右側を見ると、今回、フライトプランのWaypointに指定した高度が反映されて、[Altitude Hold]に数字が入っています。せっかくなので、[Pitch/Altitude Control]にもチェックし有効にします。これで高度を保って自動操縦が可能になります。

 

オートパイロットの設定はこれだけで完了です。

 

後は、エンジンに点火し離陸するばかりです。

 

③離陸後、自動操縦中にすべきこと

 

離陸後機体は、自動操縦でWaypointに向かって飛んでいきます。必要なことは、Waypoitを通過する前に次のWaipointに[Jump to]することです。さもなければ、機体はそのまま真っ直ぐに飛び続けてしまいます。

 

FlightGearでは、毎回Waypointに近づいてきたらこれを実行する必要があります。そうすれば、機体は自動操縦で次のWaypointに向けて旋回します。

 

実際上は、Waypointを正確にたどったのでは飛行ルートがジグザグになり燃料がもったいないですから、近くを通るだけでできる限り飛行ルートは一直線になるようにすべきなのでしょう。

 

なおもし、[Jump To]を実行して次のWaypointに向かおうとするのだとルートマネージャーを開いて実行することになるので、FlightGearの画面がこれに大きくとられて見づらくなってしまいます。

 

代わりに、メニューバーから[Autopilot]をクリックして[Next Waypoint]を選択すれば、ルートマネージャーを開かずともJump Toを実行したことになって、画面が見づらくなることなく自動操縦による飛行が続けられます。

 

 

《お詫びと訂正》

 

このブログでは、当初、FlightGearではJump Toをいちいち実行しないと次のWaypointに自動操縦では向かわないとの認識を示していましたが、まったくの誤りであり、一切Jump ToあるいはNext Waypointを実行することなく、機体はオートパイロットにより順次、次のWaypointに向かっていくことを確認しました。すなわち、操縦者の手を煩わせることなく、機体は文字通り自動操縦によって勝手に旋回を繰り返しながらWaypointをたどり飛行していくということです。お詫びし訂正いたします。

 

なお、事実誤認は、機体を無理やり旋回させたく短い距離でWaypointを設定したものの、機体の旋回半径が大きすぎて通過していってしまうことを捉えて、早計に判断してしまったためと考えます。

 

《次回のお知らせ》

 

今回は大層な内容でもなかったのに、長くなりました。

次回「オートパイロットの使い方(3)」では、FlightGearのランチャーにあるFlight-Planningをとりあげて見たいと思います。ルートマネージャーとどこが違うのでしょう。

 

 

 

参考)fgfpファイル

 

FlightGearのルートマネージャーで作成したフライトプランのfgfpファイルの一部を画像で掲載します。AI機を飛ばすためのフライトプランのxmlファイルの内容と似ているようで少し違っています。

 

 

↑ルートマネジャー(右上)、マップ(左上)、オートパイロットセッティング(左下)を表示させたFlightGear画面ー関空からセントレアへのフライトプランにもとづき自動操縦で飛行するT-38A Talonが回頭するところ

 

自動操縦に成功!

 

フライトシミュレーターのFlightGearは、AIのスクリプト化がすすむなど大きく様変わりしつつあります。Aircraftも、今日のFlightGearに対応したものはAircraft-2020に括られる状況です。

 

私にとって「今後はAIシナリオなしにどうすればAI機を飛ばせるのか」が一大関心事であり、そのためには遅まきながらも、FlightGearの新しい機能、旧いFlightGearから現行FlightGearで置き換えられた機能について確かめるところから調べはじめてみるべきかと思っています。

 

Wingman ContorolsやTanker Controlsについてこの間試してみたのもその一環です。今度は何をテーマにすべきか? やはりフライトプランでしょう。

 

フライトプランというと、紛らわしいことに乗機の飛行計画と、AI機を飛ばすためのFlight Planの2つがあります。

 

Flight Planを使用したAIシナリオではAI機が表示されない仕様に変更されたようですから、もちろんこれのことではありません。どうすればAI機が飛ばせるかに関心があることは言うまでもありませんが、替わりうる方法がいまだわからず、ランチャーにFlight Planningという文字が見られてもAI機に関係するのかどうかも見極めつかない体たらくですから、ここはルートマネージャーによる乗機の飛行計画作成と、それにもとづく自動操縦の方法を知っておくことも必要と考えたものです。

 

オートパイロットの使い方概要

 

ルートマネージャーやオートパイロットは、すでに決してあたらしい機能ではありませんが、少々難しそうで私自身は興味がなかったことからまともにさわったことがなく、一からの勉強になりました。

 

ネットで検索しても、記述が旧いオートパイロットの説明だったり、ルートマネージャーの解説はWaypointの作成に詳しくても、作成したフライトプランを元に自動操縦させるにはどうすべきかが明示的に語られず、無線周波数に至ってはどこにどれが当てはまるのかがさっぱりわかない有様。

 

休日を丸1日潰したあげく成功したのは、GPSから方角を割り出し、オートパイロットのTrue Headingに入力して自動操縦させる方法、並びにざっくりとですが、ルートマネジャーを使って作成したルート(いわゆるフライトプラン)をアクティベートすることで無線設定することなくオートパイロットにGPS/FMS Headingを設定、Waypointを通過する際は次のWaypoitにJump Toを実行することで自動操縦を続ける方法でした。

 

「ざっくり」と言うのも、ルートマネージャーで作成したフライトプランを保存しようとsaveをクリックしても拡張子のないファイルが作成され.fgfpとふってやる必要があったり、またsave、loadとも実行後ダイアログが閉じず、開きっぱなしを余儀なくされたりしたからです。開発版のFlightGear2020.4.0を使ったからでしょうか。他にも、自身がWaypointの作成についてまだよく知らないということもあります。

 

なんと言っても、ルートマネージャーを使う方法の肝は、アクティベートを実行しないと自動操縦にならないこと、Waypointを通過する際に次のWaypointに向けJump Toを実行する必要があることです。

 

Jump Toを実行しなければ、飛行機は次のWaypointに向かいません。また、次のWaypoitへのJump Toの実行は、そのひとつ手前のWaypoitを通過するより前に早めに実行しておかないと乗機がルートを逸脱してしまいますので注意が必要です。

 

↑マップ―飛行予定ルートはピンク、これまでの経路はグレーの線で示され、黄色の飛行機形は現在位置、黄色の破線は進行方向を示しています。飛行機はJump Toのタイミングが悪くルートを少し逸脱していますが、次のWaypointに向け回頭中です

 

なんとか飛行機が自動操縦で飛行するようになり、次のWaypoitに機首を向けて行く様子を見たときは嬉しかったです。

 

残念ながらうまくいかなかったのが、オートパイロットのNAV1 COIコースを使う方法です。多分VORあるいはILSローカライザーの周波数を入力するのだろうと思っているのですが、自動操縦にはならず、飛行機は予定外の方向に飛んでいってしまいました。何かミスを犯しているのでしょう。

 

ちなみに、ここでオートパイロットというのは、FlightGearがオートパイロットの機能のないAircraftにも与える汎用の機能であって、現実の個々の航空機に備わるものとは違います。最近では操作パネルにマップが表示される航空機も見かけるようになりましたが、不勉強にもマップのない機体ではWaypointの接近をどう知るのかを知りません。距離がわかればよさそうですが。

 

今回は、FlightGearのオートパイロット機能で自動操縦する方法が少しわかりましたが、だからといってAI機をAIシナリオ無しでコンピューターまかせで飛ばすにはどうすれば良いかの疑問について解決を見たわけではありません。

 

前述したランチャーにあるFlight Planningは、乗機にフライトプランを適用するかどうか、作成済のフライトプランの読み込みやフライトプランの作成、保存を、FlightGearの起動前に行えるようにしようとするものであって、やはりAI機にはまったく関係のないものでした。

 

さて、自動操縦を手っ取り早く試したいとシンプルにルートマネージャーでフライトプランをつくりオートパイロットを実行することに成功しましたので、次回「オートパイロットの使い方(2)」に手順を忘れないうちに書き残すことにしたいと思います。

 

 

《お詫びと訂正》

 

このブログでは、当初、FlightGearではJump Toをいちいち実行しないと次のWaypointに自動操縦では向かわないとの認識を示していましたが、まったくの誤りであり、一切Jump ToあるいはNext Waypointを実行することなく、機体はオートパイロットにより順次、次のWaypointに向かっていくことを確認しました。すなわち、操縦者の手を煩わせることなく、機体は文字通り自動操縦によって勝手に旋回を繰り返しながらWaypointをたどり飛行していくということです。お詫びし訂正いたします。

 

なお、事実誤認は、機体を無理やり旋回させたく短い距離でWaypointを設定したものの、機体の旋回半径が大きすぎて通過していってしまうことを捉えて、早計に判断してしまったためと考えます。

↑Tanker Controls機能を使い給油機を飛ばし、レーダー、HUDで補足、追尾

 

正常に表示されたAIの空中給油機

 

フライトシミュレーターのFlightGearでは、AI機(注1参照)を飛ばすのにAIシナリオが使わfれてきましたが、いつのまにかAIシナリオではAI機を表示しなくなり、デフォルトで用意されていたAIシナリオ自体の種類も減っていることは、以前から述べてきた通りです。

 

「AI システムでできることはかなり限られているため、AI はより汎用性の高いNasalソリューションに置き換え」(「FlightGearにおけるAIのステータス」より)られていることが、どうやら原因のようであることもわかってきました。

 

そこで、これからはどうすればAI機を飛ばせるのかを探るため、新たなソリューションが何で、それはどう使えば良いのかを、とりあえずわかる範囲で調べることにし始めたものです。

 

それらしきものの一つとして、今回とりあげるのはTanker Controlsです。

 

FlightGearでは、空中給油も以前はAIシナリオを指定して給油機を飛ばして実行していましたが、現在はTanker Controlsを使って近くの給油機を探して実行するようになったもようです。

 

AI Traffic and Scenario Settingsを開いてAIシナリオの一覧を見ても、以前のAIシナリオを使って給油機を飛ばす方式のAIシナリオで残っているのはAerial refueling demo (KSFO)だけでーしかも給油機は正しく表示されず青と黄のダミーに化けているー、他に空中給油用のシナリオは一切見当たりません。

 

Wingman ControlsではまだAIシナリオが使われていましたが、Tanker ControlsはAiシナリオなしにいったいどのような仕組みで給油機を飛ばしているのでしょう? Nasalと思われるものの、私には手の余ることなので言えることはありません。

 

とりあえず、解説も見かけず使い方もわかりませんが、闇雲にいじってみることにします。

 

Tanker Controlsは機体を選り好みする

 

なお、給油機を探すにはレーダーを使うのが楽なので、乗機はMirage 2000-5を使います。物騒な戦闘機より練習機くらいが良いのですが、Tanker Controlsは機体を選り好みするようで、T7 Red HawkではAIタブからはTanker Controlsが選択できないようになっています(Tanker Controlsの開き方は次項)。

 

おそらく空中給油対応の機体でない限り、Tanker Controlsは選択できない仕様なのでしょう。知りたいのは給油機がまともに表示されるかだけなのですが。

 

Tanker Controlsの開き方、使い方

 

Tanker Controlsは、FlightGear画面上部のメニューバーにある[AI]タブをクリックし、開いたドロップダウンメニュー中から[Tanker Controls]を選ぶと表示されるダイアログボックスがそれです。

 

 

「Air-to-Air Refueling Tanker」と標記されたダイアログボックスの一番上に、Tanker名のボックスがあります。右横の▲をクリックして表示されるリストから給油機を選んで入力ができます。

 

機種により給油可能なタイプの給油機に違いがありますので、リストも異なるものが表示されるものと思われます。ちなみに、Mirage 2000-5でリストされるのは、KA-6D、A4-F、A330-MRTT、KC-135の4機種、F-16CJ Block 52ではリストは現れず、TypeにKC-135が表示されKC-135しか入力できません。

 

Tanker名のボックスに給油機の機種が入力できたら、今度はダイアログボックスの左下にある[Request]名のボタンを押します。すると、FlightGear画面上部に指定した給油機の距離や進行方向、速度、TACANチャンネルなどの情報が文字で表示されます。

 

異なる給油機を入力し、[Request]することで、より近い給油機を調べて変更しても良いでしょう。

 

↑Tanker(給油機)を指定し[Request]をクリックすると、画面上部にオレンジ色で給油機の距離やTACANなどの情報が表示されます [Get Position]を選ぶと給油機の方向が水色で画面に表示されます

 

ちなみに、[Request]ボタンを押すたびに、順次別の給油機の情報に切り替わります。慣れた方ならこの情報から給油機を判別して指定したほうが早いのかも。ただし、乗機の対応・非対応に関係なく、近くを飛んでいるすべての給油機が表示されるようですから注意が必要です。

 

実際に、給油機を見つけ接近するには、給油機の距離や方向を知る必要があります。それには

TACANチャンネルが使われ無線設定をすることで、知ることができましたが、計器で距離や方角を読み取るのは結構大変です。

 

レーダーなら、この段階で([Request]した時点で)給油機の機影が写りますから、レーダーを頼りにできるならそれにこしたことはありません。

 

↑前方に給油機の飛行機雲が見えるMirage 2000-5のコクピット 画面真ん中にあるのがレーダー、上がHUD FlightGearの機能であるTanker controlsのダイアログを右に、おまけにマップを左に表示させています
 

Mirage 2000-5の例では、コントロールパネル中央にあるレーダーに給油機が映ります。ワ冠に棒が刺さったような形の機影は、ワ冠様の形が機首の向き、棒が飛行方向を表し、横の数字はおおよその距離を示しています。なお、付け足せば先のダイアログボックスの[Request]ボタンを押すたびに、レーダーの機影も順次切り替わります。

 
↑①はレーダーに映った給油機の機影、②はHUDに緑の○で表示された給油機とその情報、③はマップ上の給油機

少しずるいですが、ダイアログボックスの[Get Position]ボタンを押すと、指定した給油機の方角と乗機より上方あるいは下方にあるかの情報が、FlightGear画面情報に文字で表示されますので、これに基づきレーダーの正面に給油機の機影が映るように、さらにHUDに給油機情報が表示されるまで機首の向きを変え、捉えたらHUDから外されないように給油機を追尾し飛行していけばよいわけです。
 
接近し目視できるようになった給油機は、正常に指定した給油機の姿で現れ、青と黄のダミー機に化けて表示されることはありませんでした。A330-MRTTばかりかKC-135も正常に表示されるのを確認しました。
 
↑正常に表示されたAI空中給油機のA330-MRTT
 
Tanker Controlsで飛ばしたAIの給油機が正常に表示されるのが確認できたことで、今回の目的は無事終了です。
 
ここまで来たら次は空中給油と期待された向きもあることかと思いますが、空中給油はかなり操縦のスキルが求められるもので本人は至って不器用なため実施は困難と判断しました。Tanker Controlsの話としては中途半端なものとなりますが、伏してご了承願います。

 

《追記》

 

目的は別なところにあったとしても、試してみた評価がないのもどうかしてますので、追記します。

 

Tanker Controlsでは、いくつもの給油機が飛んでいて近くの給油機を探すことができ、あるいは給油機の速度を変更することもできて、いよいよ空中給油がしやすくなりました。それまでのAIシナリオでの空中給油にはなかったことで、AIのスクリプト化の恩恵と言えます。

 

 

注1)AI機は、自分が操縦する飛行機(乗機)とは違って、プログラミングに基づきコンピューターのコントロールで離発着、飛行するFlightGearの世界の航空機です。