(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023175366
(43)【公開日】2023-12-12
(54)【発明の名称】制御装置、制御方法、及びプログラム
(51)【国際特許分類】
G05D 1/10 20060101AFI20231205BHJP
B64C 3/40 20060101ALI20231205BHJP
B64C 39/00 20060101ALI20231205BHJP
B64D 27/20 20060101ALI20231205BHJP
G05D 1/00 20060101ALN20231205BHJP
【FI】
G05D1/10
B64C3/40
B64C39/00 Z
B64D27/20
G05D1/00 B
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022087778
(22)【出願日】2022-05-30
(71)【出願人】
【識別番号】503361400
【氏名又は名称】国立研究開発法人宇宙航空研究開発機構
(74)【代理人】
【識別番号】100141139
【弁理士】
【氏名又は名称】及川 周
(74)【代理人】
【識別番号】100140774
【弁理士】
【氏名又は名称】大浪 一徳
(74)【代理人】
【識別番号】100188592
【弁理士】
【氏名又は名称】山口 洋
(74)【代理人】
【識別番号】100181124
【弁理士】
【氏名又は名称】沖田 壮男
(72)【発明者】
【氏名】和田 大地
(72)【発明者】
【氏名】大瀬戸 篤司
(72)【発明者】
【氏名】久田 深作
【テーマコード(参考)】
5H301
【Fターム(参考)】
5H301AA06
5H301AA10
5H301CC04
5H301CC07
5H301CC08
5H301DD05
5H301DD15
5H301GG07
5H301GG17
(57)【要約】
【課題】ユーザの体格に依らずに、又はユーザの有無に依らずに飛行装置を好適に制御することができる制御装置、制御方法、及びプログラムを提供することを目的の一つとする。
【解決手段】実施形態に係る制御装置は、ユーザが装着可能な飛行装置を制御するものであり、前記飛行装置の状態に関する状態データと、前記飛行装置の操作に関する操作データとを取得し、深層強化学習を用いて学習されたモデルに対して、前記取得した状態データ及び操作データを入力し、前記状態データ及び操作データが入力された前記モデルの出力結果に基づいて、前記飛行装置を制御する処理部を備える。
【選択図】
図3
【特許請求の範囲】
【請求項1】
ユーザが装着可能な飛行装置を制御するための制御装置であって、
前記飛行装置の状態に関する状態データと、前記飛行装置の操作に関する操作データとを取得し、
深層強化学習を用いて学習されたモデルに対して、前記取得した状態データ及び操作データを入力し、
前記状態データ及び操作データが入力された前記モデルの出力結果に基づいて、前記飛行装置を制御する、
処理部を備える制御装置。
【請求項2】
前記モデルは、ドメイン-ランダマゼイションによって学習されたニューラルネットワークである、
請求項1に記載の制御装置。
【請求項3】
前記モデルは、記憶層が含まれるリカレントニューラルネットワークである、
請求項1又は2に記載の制御装置。
【請求項4】
前記飛行装置は、ジェットエンジンが含まれ、
前記状態データには、前記飛行装置の姿勢、位置、速度、及び角速度のうち少なくとも一つが含まれ、
前記操作データには、前記ジェットエンジンの推力及び前記推力の方向が含まれ、
前記処理部は、前記モデルによって出力された前記推力及び前記推力の方向に基づいて、前記飛行装置の姿勢を制御する、
請求項1又は2に記載の制御装置。
【請求項5】
前記飛行装置には、更に、可変翼が含まれ、
前記操作データには、更に、前記可変翼の操作量が含まれ、
前記処理部は、前記モデルによって出力された前記推力、前記推力の方向、及び前記可変翼の操作量に基づいて、前記飛行装置の姿勢を制御する、
請求項4に記載の制御装置。
【請求項6】
ユーザが装着可能な飛行装置をコンピュータを用いて制御するための制御方法であって、
前記飛行装置の状態に関する状態データと、前記飛行装置の操作に関する操作データとを取得すること
深層強化学習を用いて学習されたモデルに対して、前記取得した状態データ及び操作データを入力すること、
前記状態データ及び操作データが入力された前記モデルの出力結果に基づいて、前記飛行装置を制御すること、
を含む制御方法。
【請求項7】
ユーザが装着可能な飛行装置を制御するようコンピュータに実行させるためのプログラムであって、
前記飛行装置の状態に関する状態データと、前記飛行装置の操作に関する操作データとを取得すること
深層強化学習を用いて学習されたモデルに対して、前記取得した状態データ及び操作データを入力すること、
前記状態データ及び操作データが入力された前記モデルの出力結果に基づいて、前記飛行装置を制御すること、
を含むプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、制御方法、及びプログラムに関する。
【背景技術】
【0002】
ジェットやロケットの推力を利用してユーザを飛行させる装着型の飛行装置(飛行器具)が知られている。このような飛行装置は、ポータブル・パーソナル・エアモビリティ・システムとも呼ばれている。一方で、深層強化学習を用いてロボットを制御する技術が知られている(例えば非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】X. B. Peng, M. Andrychowicz, W. Zaremba, and P. Abbeel, “Sim-to-real transfer of robotic control with dynamics randomization,” in 2018 IEEE International Conference on Robotics and Automation (ICRA), 2018, pp. 3803-3810.
【発明の概要】
【発明が解決しようとする課題】
【0004】
人間は一人ひとり体格が異なっているため、飛行装置がヘリコプターのような大きな装置でなく、スーツのように、人間の体格の差に対して相対的に大きな影響を受ける装置である場合、飛行装置を装着するユーザに応じて飛行装置の制御方法を調整する必要がある。しかしながら、従来の技術では、ユーザに応じて飛行装置の制御方法を十分に調整できていなかった。また、その制御方法はユーザが替わるたびに調整し直す必要があり、時間的或いは経済的コストが大きかった。
【0005】
本発明は、このような事情を考慮してなされたものであり、ユーザを問わずに飛行装置を好適に制御することができる制御装置、制御方法、及びプログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【0006】
本発明の一態様は、ユーザが装着可能な飛行装置を制御するための制御装置である。前記飛行装置は、前記飛行装置の状態に関する状態データと、前記飛行装置の操作に関する操作データとを取得し、深層強化学習を用いて学習されたモデルに対して、前記取得した姿勢データ及び操作データを入力し、前記状態データ及び操作データが入力された前記モデルの出力結果に基づいて、前記飛行装置を制御する処理部を備える。
【発明の効果】
【0007】
本発明の一態様によれば、ユーザの体格に依らずに、又はユーザの有無に依らずに飛行装置を好適に制御することができる。
【図面の簡単な説明】
【0008】
【
図1】実施形態に係る飛行装置1の利用場面を説明するための図である。
【
図2】実施形態に係る飛行装置1の構成例を表す図である。
【
図3】実施形態に係る制御装置100の構成例を表す図である。
【
図4】処理部170の一連の処理の流れを示すフローチャートである。
【
図5】深層強化学習モデルMDLの一例を表す図である。
【発明を実施するための形態】
【0009】
以下、図面を参照し、本発明の制御装置、制御方法、及びプログラムの実施形態について説明する。
【0010】
[飛行装置の利用場面]
図1は、実施形態に係る飛行装置1の利用場面を説明するための図である。図示のように、飛行装置1はユーザUによって装着される。ユーザUによって装着された飛行装置1は、ユーザUの操縦によって飛行したり、又はオートパイロットのように自律的に飛行したりする。例えば、飛行装置1は、出発地Aから目的地Bまで移動するために利用される。飛行装置1を装着したユーザUが出発地Aから目的地Bまで移動した後、飛行装置1を脱着して目的地Bに降り立った場合、飛行装置1は再度ユーザUが装着するまで目的地Bの周辺でホバリングし続けてもよいし、自律飛行によって目的地Bから出発地Aまで戻ってもよい。飛行装置1は、予め決められた単独のユーザだけでなく、不特定多数のユーザによって利用されてよい。
【0011】
例えば、飛行装置1は、山岳救助隊が、山のふもとに設置された本部基地(出発地A)から登山道内の救助現場(目的地B)に空路で向かうために利用されてよい。この際、1人目の救助隊員が目的地Bに到着した後、飛行装置1を脱着して目的地Bに降り立ち、その後、飛行装置1が単独で出発地Aまで戻ることで、2人目の救助隊員が飛行装置1を装着して救助現場に向かう。これを繰り返すことで、1つの飛行装置1によって複数の救助隊員を目的地Bに出動させることができる。また、救助隊員が目的地Bに到着した後、飛行装置1を脱着して目的地Bに降り立ち、その後、飛行装置1が単独で出発地Aや給油地Cまで向かい、出発地Aや給油地Cにおいて給油を終えた後に飛行装置1が単独で目的地Bまで戻るようにしてもよい。この場合、出発地Aから目的地Bまでの片道分の燃料しか搭載しておらず、往路しか有人飛行できない場合であっても、途中で飛行装置1単独による給油を挟むことで、目的地Bから出発地Aまでの復路も有人飛行することができる。このように、航続距離をより長くすることもできる。
【0012】
また、飛行装置1は、前述の用途に加え、地上の要救助者を上空で待機中のヘリコプターまで移送させるために利用されてもよい。更に、飛行装置1は地上に限られず、海上でも利用されてよい。例えば、飛行装置1は、海上遭難者を上空のヘリコプターや海上の船舶まで移送させるために利用されてもよい。
【0013】
[飛行装置の構成]
図2は、実施形態に係る飛行装置1の構成例を表す図である。図示のように、飛行装置1は、例えば、推力装置10と、翼20と、着脱部30と、制御装置100とを備える。
【0014】
図2に示すΣ
Wは慣性座標系の一つの地球固定座標Σ
Wを表し、O
Wは地球固定座標Σ
Wの原点を表し、X
W軸は真北を表し、Y
W軸は東を表し、Z
W軸は鉛直下方を表している。また、慣性主軸を機体固定座標系として定義した場合、図中X
B軸は、飛行装置1の重心を原点としたときの機体の慣性主軸を表し、Z
B軸は、機体の下方向を表し、Y
B軸は、機体の進行方向右側の方向を表している。言い換えれば、X
B軸はロール軸を表し、Z
B軸はヨー軸を表し、Y
B軸はピッチ軸を表している。
【0015】
推力装置10は、燃料11を用いて飛行装置1に推力を発生させる。推力装置10には、例えば、公知のジェットエンジンが好適に用いられてよい。以下、一例として推力装置10には推力偏向可能なジェットエンジンが適用されるものとして説明する。ジェットエンジンの噴射口には、ダクトファンによって生じた噴流の向きを切り替えるための推力偏向機構(例えばパドルやノズル、リングなどを有するスラストベクタリング機構)が設けられており、これら推力偏向機構は、制御装置100によって制御される。
【0016】
翼20は、飛行装置1の姿勢を維持し、かつ飛行する方向を転換する。翼20による方向の転換は、ユーザUが後述のユーザインターフェース120を操作することで行われてもよいし、制御装置100が行ってもよいし、ユーザUと制御装置100との協働で行われてもよい。
【0017】
本実施形態において、翼20はリンク機構を備え、鳥の羽根のように折り畳みが可能である。上述の翼幅は、翼20を広げた状態におけるものとする。翼20を折り畳むことができることから、下記の機能を有する。すなわち、高速飛行時においては翼20を折り畳んで小さめにすることで空気抵抗を減らし、低速飛行時及び離着陸時には翼20を大きく展開することで空気力を得る。また、飛行装置1の不使用時には翼20を折り畳むことで、運搬時の機動性に寄与してもよい。また、上記に限らず、翼20は、折り畳むことに代えて伸縮構造を備えることによって展開及び格納が可能な構造としてもよい。あるいは、折りたたみ可能な構造を備えない平板状(つまり固定翼)であってもよい。また、本実施形態に係る翼20は、上述のリンク機構に加えて各種アクチュエータを備え、
図2に示すロール軸X
B、ヨー軸Z
B、ピッチ軸Y
Bまわりに回動することができるものとする。詳細については後述する。
【0018】
なお飛行装置1は、翼20が設けられている代わりに、手と足の間に布を張ったウィングスーツであってもよいし、上記のような固定翼であってもよい。
【0019】
着脱部30は、ユーザUが飛行装置1を装着するための部材であり、この部材はユーザUが容易に着脱可能な構造を有する。例えば、着脱部30は、一般的なリュックサックのように肩に掛ける構造と、ユーザUに固定するための留め具と、を備える構造を有してよい。あるいは、各ユーザUが予め着脱部30に対応した形状を備えた取付部材を装備した状態において、ユーザUに装備された取付部材を介して、ユーザUと着脱部30とを適宜固定する構造としてもよい。
【0020】
制御装置100は、推力装置10の推力を制御したり、その推力の向きを制御したりする。更に、制御装置100は、翼20の形状や向きを制御することで、飛行装置1の姿勢を調整したり、飛行する方向を転換したりする。
【0021】
[制御装置の構成]
図3は、実施形態に係る制御装置100の構成例を表す図である。図示のように、制御装置100は、例えば、通信インターフェース110と、ユーザインターフェース120と、センサ130と、電源140と、記憶部150と、アクチュエータ160と、処理部170とを備える。
【0022】
通信インターフェース110は、例えば、WAN(Wide Area Network)などのネットワークを介して、外部装置と無線通信を行う。外部装置は、例えば、飛行装置1を遠隔操作可能なリモートコントローラであってよい。例えば、通信インターフェース110は、外部装置から、飛行装置1がとるべき目標の姿勢や速度などを指示するコマンドを受信してよい。これにより、ユーザUの操縦技能が未熟であって、かつ、制御部230による自律単独飛行が不可能であるような場合に、外部から操縦に熟練したオペレータによる操縦を行うことができる。
【0023】
また、通信インターフェース110は、外部装置から、目的地Bが変更になった旨を飛行中のユーザUに対して連絡するための情報を受信してもよいし、目的地Bのより詳細な情報をユーザUに対して連絡するための情報を受信してもよい。
【0024】
また、通信インターフェース110は、外部装置に対して情報を送信してもよい。例えば、通信インターフェース110は、救助現場に関する詳細な情報(座標や高度等)を外部装置に送信してよい。
【0025】
ユーザインターフェース120は、入力インターフェース120aと、出力インターフェース120bとが含まれる。例えば、入力インターフェース120aは、ジョイスティックやハンドル、ボタン、スイッチ、マイクロフォンなどである。出力インターフェース120bは、例えば、ディスプレイやスピーカなどである。例えば、ユーザUは、入力インターフェース120aのジョイスティック等を操作して、推力装置10の推力やその向きを調整してもよいし、翼20の形状や向きを調整してもよい。また、ユーザUは、入力インターフェース120aのマイクロフォンに対して、飛行装置1がとるべき速度や高度、姿勢などを発話することで、推力装置10の推力やその向きを調整してもよいし、翼20の形状や向きを調整してもよい。
【0026】
センサ130は、例えば、慣性計測装置である。慣性計測装置は、例えば、三軸式加速度センサと、三軸式ジャイロセンサとを含む。慣性計測装置は、三軸式加速度センサや三軸式ジャイロセンサによって検出された検出値を処理部170に出力する。慣性計測装置による検出値には、例えば、水平方向、垂直方向、奥行き方向の各加速度及び/又は角速度や、ピッチ、ロール、ヨーの各軸の速度(レート)などが含まれる。センサ130には、更に、レーダやファインダ、ソナー、GPS(Global Positioning System)受信機などが含まれてもよい。
【0027】
電源140は、例えば、リチウムイオン電池などの二次電池である。電源140は、アクチュエータ160や処理部170などの構成要素に電力を供給する。電源140には、更に、ソーラーパネルなどが含まれてもよい。
【0028】
またアクチュエータ160や処理部170などは、電源140から供給された電力を利用する代わりに、或いは加えて、推力装置10のジェットエンジンによって発電された電力を利用してもよい。
【0029】
記憶部150は、例えば、HDD(Hard Disc Drive)、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read Only Memory)、ROM(Read Only Memory)、RAM(Random Access Memory)などの記憶装置により実現される。記憶部150には、ファームウェアやアプリケーションプログラムなどの各種プログラムのほかに、処理部170の演算結果などがログとして格納される。また、記憶部150には、モデル情報152が格納される。モデル情報152は、例えば、ネットワークを介して外部装置から記憶部150にインストールされてもよいし、制御装置100のドライブ装置に接続された可搬型の記憶媒体から記憶部150にインストールされてもよい。モデル情報152については後述する。
【0030】
アクチュエータ160は、例えば、推力アクチュエータ162と、スイープアクチュエータ164と、フォールドアクチュエータ168とを備える。
【0031】
推力アクチュエータ162は、推力装置10を駆動させて、飛行装置1に推力を与えたり、その推力の向きを変更したりする。スイープアクチュエータ164は、ヨー軸ZB周りに翼20を回動させる。
【0032】
処理部170は、例えば、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などが記憶部150に格納されたプログラムを実行することにより実現される。また、処理部170は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、またはFPGA(Field-Programmable Gate Array)などのハードウェアにより実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
【0033】
処理部170は、(i)入力インターフェース120aに対するユーザUの入力操作、(ii)センサ130の検出結果、(iii)通信インターフェース110が外部装置から受信した遠隔操作のためのコマンドのうちの一部又は全部に基づいて、推力アクチュエータ162を制御する。これによって、推力装置10の推力が制御されたり、その推力の向きが制御されたりする。例えば、制御装置100は、推力アクチュエータ162を制御することによって、推力装置10のジェットエンジンのダクトファンの回転数を制御することで推力を調整したり、ジェットエンジンの推力偏向機構を制御して推力方向を調整したりする。
【0034】
また、制御装置100は、翼20が可変翼である場合、(i)~(iii)のうちの一部又は全部に基づいて、スイープアクチュエータ164やフォールドアクチュエータ168を制御する。これによって、翼20の形状や向きが制御される。翼20の形状や向きは、「可変翼の操作量」の一例である。
【0035】
[処理部の処理フロー]
以下、処理部170の一連の処理の流れをフローチャートを用いて説明する。
図4は、処理部170の一連の処理の流れを示すフローチャートである。本フローチャートの処理は、例えば、所定の周期で繰り返し行われてよい。
【0036】
まず処理部170は、現時刻tにおいて飛行装置1をとりまく環境の状態を示す状態変数stを取得する(ステップS100)。状態変数stには、例えば、飛行装置1の現時刻tの姿勢、位置、速度、及び角速度のうち少なくとも一つ(好ましくは全て)が含まれる。例えば、状態変数stに含まれる角度は、ピッチ軸周りの角度(以下、ピッチ角という)であってよい。また状態変数stに含まれる角速度は、ピッチ角の角速度であってよい。さらに、状態変数stには、現時刻tの推力装置10の推力及びその方向や、現時刻tの翼20の形状や向きが含まれてよい。現時刻tにおける姿勢、位置、速度、及び角速度のうち少なくとも一つ又は全部は「状態データ」の一例である。また現時刻tの推力装置10の推力及びその方向や、現時刻tの翼20の形状や向きは「操作データ」の一例である。
【0037】
例えば、処理部170は、センサ130から姿勢、位置、速度、及び角速度を状態変数stとして取得する。
【0038】
また、処理部170は、入力インターフェース120aを介してユーザUが推力装置10の推力やその向きを指示した場合、入力インターフェース120aに対するユーザUの入力操作を状態変数stに加えてもよい。
【0039】
次に、処理部170は、記憶部150からモデル情報152を読み出し、そのモデル情報152によって定義された深層強化学習モデルMDLを用いて、状態変数stから、次の時刻t+1において飛行装置1が取り得ることが可能な最適な行動(行動変数)at+1を決定する(ステップS102)。
【0040】
本実施形態における行動(行動変数)at+1は、所望のタスクを実現させるための行動であり、例えば、当タスクを実現させるために必要となる推力装置10の推力とその方向が含まれてよく、更には、翼20の形状や向きが含まれてよい。所望のタスクは、例えば、ある一定の高度を保ったまま飛行装置1をホバリングさせ続けることや、水平飛行から滑らかにホバリング体勢に遷移させること、強風下でも真っ直ぐに飛行すること、といった様々なタスクであってよい。
【0041】
図5は、深層強化学習モデルMDLの一例を表す図である。本実施形態に係る深層強化学習モデルMDLは、深層強化学習を利用したニューラルネットワークである。図示のように、例えば、深層強化学習モデルMDLは、中間層(隠れ層)の一部がLSTM(Long Short Term Memory)であるリカレントニューラルネットワークであってよい。深層強化学習モデルMDLは、ドメイン-ランダマゼイション(Domain-Randomization)を用いて、飛行装置1の重量や重心、慣性モーメント等のダイナミクスとシステム応答遅れがランダムに設定されて学習される。
【0042】
ドメイン-ランダマゼイションによる(飛行装置1のダイナミクスがランダム化されて)学習をする際、深層強化学習モデルMDLのLSTMには、ランダムに設定された飛行装置1のダイナミクスを反映した時系列が記憶される。このように、ニューラルネットワークにLSTMを設けることで、ドメイン-ランダマゼイションによる学習が好適に行われる。
【0043】
例えば、深層強化学習モデルMDLを学習させる深層強化学習のアルゴリズムが、価値ベース(Value based)である場合、深層強化学習モデルMDLは、DQN(Deep Q-Network)などを用いて学習されてよい。DQNとは、Q学習と呼ばれる強化学習において、ある時刻tのある環境の状態stの下で、ある行動atを選択したときの価値を関数として表した行動価値関数Q(st、at)を、ニューラルネットワークに近似関数として学習させる手法である。つまり、価値ベース(Value based)の手法で学習された深層強化学習モデルMDLは、現時刻tにおいて飛行装置1が取り得ることが可能な一つ又は複数の行動(行動変数)atのうち、価値(Q値)が最大となる行動(行動変数)atを出力するように学習されてよい。
【0044】
Q学習は、例えば、翼20や推力装置10が理想的な状態をとる場合に報酬を高くして、深層強化学習モデルMDLの重みやバイアスを学習する。例えば、決められた地点の上空において、飛行装置1の姿勢が90度のピッチアップ姿勢であり、飛行装置1の速度が静止と見做せる程度の速度にあるときには報酬を高くしてよい。一方、飛行装置1が地面や木々に接触したり、決められていた高度から逸脱したりする状態にあるときには、報酬を低く(例えばゼロ)にしてよい。
【0045】
また、例えば、深層強化学習モデルMDLを学習させる深層強化学習のアルゴリズムが方策ベース(Policy based)である場合、深層強化学習モデルMDLは、方策勾配法(Policy Gradients)などを用いて学習されてよい。
【0046】
また、例えば、深層強化学習モデルMDLを学習させる深層強化学習のアルゴリズムが価値と方策を組み合わせたActor-Criticである場合、深層強化学習モデルMDLに含まれるActor(行動器)を学習しながら、方策を評価するCritic(評価器)も同時に学習してよい。
図5に例示した深層強化学習モデルMDLは、PPO(Proximal Policy Optimization)等のActor-Criticを用いて学習されたモデルであり、上段のレイヤが方策を出力するように学習され、下段のレイヤが価値を出力するように学習される。
【0047】
このような深層強化学習モデルMDLを定義したモデル情報152には、例えば、ニューラルネットワークを構成する複数の層のそれぞれに含まれるユニットが互いにどのように結合されるのかという結合情報や、結合されたユニット間で入出力されるデータに付与される結合係数などの各種情報が含まれる。結合情報とは、例えば、各層に含まれるユニット数や、各ユニットの結合先のユニットの種類を指定する情報、各ユニットを実現する活性化関数、隠れ層のユニット間に設けられたゲートなどの情報を含む。ユニットを実現する活性化関数は、例えば、正規化線形関数(ReLU関数)であってもよいし、シグモイド関数や、ステップ関数、その他の関数などであってもよい。ゲートは、例えば、活性化関数によって返される値(例えば1または0)に応じて、ユニット間で伝達されるデータを選択的に通過させたり、重み付けたりする。結合係数は、例えば、ニューラルネットワークの隠れ層において、ある層のユニットから、より深い層のユニットにデータが出力される際に、出力データに対して付与される重みを含む。結合係数は、各層の固有のバイアス成分などを含んでもよい。更に、モデル情報152には、LSTMに含まれる各ゲートの活性化関数の種類を指定する情報や、リカレント重みやピープホール重みなどが含まれてよい。
【0048】
例えば、処理部170は、飛行装置1の現時刻tの姿勢、位置、速度、及び角速度のうち少なくとも一つと、現時刻tの推力装置10の推力及びその方向とを取得すると、それらを状態変数stとして深層強化学習モデルMDLに入力する。状態変数stが入力された深層強化学習モデルMDLは、次の時刻t+1において最適となる推力装置10の推力及びその方向を出力する。上述したように、深層強化学習モデルMDLは、次の時刻t+1において推力装置10が出力すべき推力及びその方向に加えて、或いは代えて、次の時刻t+1において翼20がとるべき形状や向きを出力するように学習されてもよい。
【0049】
図4のフローチャートの説明に戻る。次に、処理部170は、深層強化学習モデルMDLを用いて決定した飛行装置1がとるべき行動(行動変数)a
t+1、つまり次の時刻t+1において推力装置10が出力すべき推力及びその方向や、次の時刻t+1において翼20がとるべき形状や向きに基づいて、飛行装置1のアクチュエータ160を制御するための制御コマンドを生成する(ステップS104)。
【0050】
例えば、処理部170は、深層強化学習モデルMDLによって行動変数at+1として出力された推力装置10の推力及びその方向に基づいて、推力アクチュエータ162の制御コマンドを生成してよい。また、処理部170は、行動変数at+1として出力された翼20の形状や向きに基づいて、スイープアクチュエータ164やフォールドアクチュエータ168の制御コマンドを生成してよい。
【0051】
次に、処理部170は、生成した制御コマンドに基づいてアクチュエータ160を制御する(ステップS106)。これによって所望のタスクが実現され、その結果として飛行装置1を取り巻く環境の状態が変化し、その状態を表す状態変数がstがst+1へと変化する。
【0052】
処理部170は、状態変数stがst+1へと変化したのに伴って、時刻t+1における状態変数st+1を取得し直す。そして、処理部170は、時刻t+1における状態変数st+1が、飛行装置1によって所望のタスクが達成され続けるように制御コマンドを対象のアクチュエータ160に与え続ける。これによって本フローチャートの処理が終了する。
【0053】
以上説明した第実施形態によれば、制御装置100の処理部170は、飛行装置1の現時刻tの姿勢、位置、速度、及び角速度のうち少なくとも一つ(好ましくは全て)と、現時刻tの推力装置10の推力及びその向きとを状態変数stとして取得する。この際、処理部170は、現時刻tの推力装置10の推力及びその向きに加えて、或いは代えて、現時刻tの翼20の形状や向きを、状態変数stとして取得してもよい。
【0054】
処理部170は、状態変数stを取得すると、深層強化学習によって予め学習された深層強化学習モデルMDLに対して、状態変数stを入力する。処理部170は、状態変数stが入力されたことに応じて深層強化学習モデルMDLが出力した次の時刻t+1における行動変数at+1に基づいて、飛行装置1を制御する。このように、現時刻tの飛行装置1の姿勢、位置、速度、及び角速度と、現時刻tの推力装置10の推力及びその向きとを含む状態変数stをもとに深層強化学習された深層強化学習モデルMDLを利用して飛行装置1を制御するため、有人飛行の場合には、飛行装置1を装着するユーザUの体格(体重や身長など)にばらつきがあったとしても、ユーザUの体格に依らずに飛行装置1を好適に制御することができる。また、飛行途中でユーザが飛行装置1を離脱し、有人飛行から無人飛行に切り替わった場合であっても、飛行装置1を好適に制御することができる。
【0055】
例えば、前述のように、山岳救助隊が飛行装置1を装着して登山道内の救助現場(目的地B)に空路で向かう場合、1人目の救助隊員が目的地Bに到着した後、飛行装置1を脱着して目的地Bに降り立ち、その後、飛行装置1が単独で出発地Aまで戻ることで、2人目の救助隊員が飛行装置1を装着して救助現場に向かうことが想定される。このような場合において、例えば、1人目の救助隊員と2人目の救助隊員との体格が大きく異なると、従来の技術では、同一の飛行装置1を利用することが難しい。これに対して本実施形態では、特にリカレントニューラルネットワークがLSTM層を有するため、時系列の記憶が可能となり、制御出力と状態変数の履歴からユーザの体格に応じたチューニングが可能となる。この結果、体重が重いユーザUが飛行装置1を装着したときでも、体重が軽いユーザUが飛行装置1を装着したときでも同じように飛行装置1を安定的に飛行させ続けることができる。
【0056】
また、例えば、1人目の救助隊員が目的地Bに到着した後、飛行装置1を脱着して目的地Bに降り立った場合、飛行装置1にかかる荷重が急激に減少することになる。このような場合、従来の技術では、飛行装置1を安定して飛行させ続けることが難しい。これに対して本実施形態では、ユーザの体格を考慮したのではなく、飛行装置1のダイナミクスや応答遅れのばらつきを考慮して深層強化学習を行っているため、つまりドメイン-ランダマゼイションを用いて深層強化学習を行っているため、ユーザUが飛行装置1を離脱し、飛行装置1単体となった場合であっても、ユーザUが飛行装置1を装着していたとき同様に、飛行装置1を安定的に飛行させ続けることができる。
【0057】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【0058】
1…飛行装置、10…推力装置、20…翼、30…着脱部、100…制御装置、110…通信インターフェース、120…ユーザインターフェース、130…センサ、140…電源、150…記憶部、160…アクチュエータ、170…処理部