(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023091940
(43)【公開日】2023-07-03
(54)【発明の名称】移動体運動制御システム及び移動体の運動制御方法
(51)【国際特許分類】
G05D 1/02 20200101AFI20230626BHJP
【FI】
G05D1/02 P
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021206830
(22)【出願日】2021-12-21
(71)【出願人】
【識別番号】000000974
【氏名又は名称】川崎重工業株式会社
(74)【代理人】
【識別番号】110000556
【氏名又は名称】弁理士法人有古特許事務所
(72)【発明者】
【氏名】柘植 俊佑
(72)【発明者】
【氏名】宍戸 紀彦
【テーマコード(参考)】
5H301
【Fターム(参考)】
5H301BB05
5H301CC03
5H301CC06
5H301CC10
5H301DD08
5H301DD17
5H301GG14
5H301KK08
5H301QQ01
(57)【要約】
【課題】 先行移動体と後続移動体の状況を考慮して運動を制御する移動体運動制御システムを提供する。
【解決手段】 移動体運動制御システム100は、各機体1の制御部11は、自機25の先行機24及び自機25の後続機26の少なくとも何れか一方を設定し、過去の1時点である指定時点tを所定の周期で決定し、通信によって指定時点tを発信し、先行機24及び後続機26が設定されているときは、現在から過去のある時点までの先行機24の状態量の履歴である状態量履歴Sを取得し、通信によって先行機24が発信した指定時点tを取得し、状態量履歴Sに基づいて指定時点tにおける先行機24の状態量である指定時点状態量Stを特定し、後続機26の現在の状態量である現在状態量Snを取得し、先行機24の指定時点状態量St及び後続機26の現在状態量Snに基づいて自機25の目標状態量Saを生成する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
複数の移動体に設けられる移動体運動制御システムであって、
各前記移動体に設けられ、自移動体の状態量の目標値である目標状態量を生成する制御部と、前記目標状態量に基づき自移動体を運動させる駆動部と、前記制御部の制御によって他の前記移動体との通信を行う通信部と、を有し、
前記制御部は、
自移動体の先行移動体及び自移動体の後続移動体の少なくとも何れか一方を設定し、
過去の1時点である指定時点を所定の周期で決定し、前記通信によって前記指定時点を発信し、
前記先行移動体及び前記後続移動体が設定されているときは、現在から過去のある時点までの前記先行移動体の状態量の履歴である状態量履歴を取得し、前記通信によって前記先行移動体が発信した前記指定時点を取得し、前記状態量履歴に基づいて前記指定時点における前記先行移動体の状態量である指定時点状態量を特定し、前記後続移動体の現在の状態量である現在状態量を取得し、前記先行移動体の前記指定時点状態量及び前記後続移動体の前記現在状態量に基づいて自移動体の前記目標状態量を生成する、移動体運動制御システム。
【請求項2】
前記制御部は、前記先行移動体が設定されていないときは、所定の経路を移動する前記状態量を生成し、生成した前記状態量に基づいて自移動体の前記目標状態量を生成する、請求項1に記載の移動体運動制御システム。
【請求項3】
前記制御部は、前記通信によって自移動体の前記状態量履歴及び前記現在状態量を発信し、前記先行移動体が設定されているときは、前記通信によって前記先行移動体の前記状態量履歴を取得し、前記後続移動体が設定されているときは、前記通信によって前記後続移動体の前記現在状態量を取得する、請求項1又は2に記載の移動体運動制御システム。
【請求項4】
前記制御部は、前記先行移動体が設定されている状態で前記先行移動体との前記通信が途絶したと判定したときは、前記通信が途絶する前に前記先行移動体から取得した前記状態量履歴に基づいて前記通信が途絶した後の前記先行移動体の状態量を予測した予測状態量を補完して前記状態量履歴とし、自移動体が決定した時点における前記先行移動体の状態量を前記先行移動体の予測状態量を補完した前記状態量履歴に基づいて特定して前記指定時点状態量とする、請求項3に記載の移動体運動制御システム。
【請求項5】
各前記移動体は、複数の前記移動体の並び順を保持する記憶部を有し、
前記制御部は、前記先行移動体が設定され、且つ前記先行移動体との通信が途絶した状態が所定時間継続したときにおいて、前記並び順に基づいて前記先行移動体の先行移動体である先々行移動体が有ると判定したときは、前記先行移動体に替えて前記先々行移動体を自移動体の先行移動体として再設定し、前記先々行移動体が無いと判定したときは、前記先行移動体の設定を抹消する、請求項3又は4に記載の移動体運動制御システム。
【請求項6】
前記状態量は、自移動体の位置を算出可能な状態量であり、
前記制御部は、自移動体の前記状態量履歴を取得し、自移動体の前記状態量履歴から算出される前記自移動体の位置に自移動体と後続移動体との位置ずれ量であるオフセット量を付加するように前記状態量履歴を修正し、前記通信によって修正した前記状態量履歴を発信する、請求項3乃至5の何れか1項に記載の移動体運動制御システム。
【請求項7】
前記状態量は、自移動体の位置を算出可能な状態量であり、
前記制御部は、前記通信によって自移動体と後続移動体との位置ずれ量であるオフセット量を発信し、
前記先行移動体が設定されているときは、前記通信によって前記先行移動体が発信した前記オフセット量を取得し、前記先行移動体と自移動体との間に前記オフセット量に応じた位置ずれが生じるように前記目標状態量を生成する、請求項3乃至5の何れか1項に記載の移動体運動制御システム。
【請求項8】
前記制御部は、前回決定した前記指定時点との時間差が所定の閾値よりも小さくなるように今回の前記指定時点を決定する、請求項1乃至7の何れか1項に記載の移動体運動制御システム。
【請求項9】
前記状態量は、自移動体位置、自移動体速度、自移動体姿勢、自移動体の制御コマンド、自移動体の制御量、自移動体の姿勢変化率、及び自移動体の加減速率の少なくとも何れか1の状態量である、請求項1乃至7の何れか1項に記載の移動体運動制御システム。
【請求項10】
自移動体の先行移動体及び自移動体の後続移動体の少なくとも何れか一方を設定し、
過去の1時点である指定時点を所定の周期で決定し、通信によって前記指定時点を発信し、
前記先行移動体及び前記後続移動体が設定されているときは、現在から過去のある時点までの前記先行移動体の状態量の履歴である状態量履歴を取得し、通信によって前記先行移動体が発信した前記指定時点を取得し、前記状態量履歴に基づいて前記指定時点における前記先行移動体の状態量である指定時点状態量を特定し、前記後続移動体の現在の状態量である現在状態量を取得し、前記先行移動体の前記指定時点状態量及び前記後続移動体の前記現在状態量に基づいて目標状態量を生成し、
前記目標状態量に基づき自移動体を運動させる、移動体の運動制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、移動体運動制御システム及び移動体の運動制御方法に関する。
【背景技術】
【0002】
従来から移動体制御システムが知られている(例えば特許文献1参照)。
【0003】
この移動体制御システムは、第1移動体に設けられ第2移動体との間で所定の位置関係が形成されるように前記第1移動体の移動に関する制御を行う移動体制御システムであって、第2移動体との間の第1移動体の相対的な位置及び速度を求める相対位置関係算出部と、第1移動体の相対的な位置及び速度に基づいて、第2移動体との間で前記所定の位置関係が形成されるべく前記第2移動体に対する相対的な位置を調整するための相対位置調整用コマンドを生成するコマンド生成部とを備えている。これによって、移動体が複数運用される場合に、複数の移動体の移動経路などの制御を全体として行うことができる。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、特許文献1に記載の移動体制御システムは、第1移動体に先行する移動体と連携した移動を行えないという問題があった。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明のある態様に係る移動体制御システムは、複数の移動体に設けられる移動体運動制御システムであって、各前記移動体に設けられ、自移動体の状態量の目標値である目標状態量を生成する制御部と、前記目標状態量に基づき自移動体を運動させる駆動部と、前記制御部の制御によって他の前記移動体との通信を行う通信部と、を有し、前記制御部は、自移動体の先行移動体及び自移動体の後続移動体の少なくとも何れか一方を設定し、過去の1時点である指定時点を所定の周期で決定し、前記通信によって前記指定時点を発信し、前記先行移動体及び前記後続移動体が設定されているときは、現在から過去のある時点までの前記先行移動体の状態量の履歴である状態量履歴を取得し、前記通信によって前記先行移動体が発信した前記指定時点を取得し、前記状態量履歴に基づいて前記指定時点における前記先行移動体の状態量である指定時点状態量を特定し、前記後続移動体の現在の状態量である現在状態量を取得し、前記先行移動体の前記指定時点状態量及び前記後続移動体の前記現在状態量に基づいて自移動体の前記目標状態量を生成する。
【0007】
先行移動体と後続移動体の状況を考慮して運動を制御することができるので、複数の移動体の連携移動が可能となる。また、先行移動体の過去の状態量のうち、どの時点における状態量に基づいて運動を制御すべきかを指示するので、距離間隔を制御することができる。
【発明の効果】
【0008】
本発明は、先行移動体と後続移動体の状況を考慮して運動を制御することができるという効果を奏する。
【図面の簡単な説明】
【0009】
【
図1】実施の形態に係る移動体運動制御システムの構成例を示す説明図である。
【
図2】
図1の移動体運動制御システムの制御系統の構成例を概略的に示すブロック図である。
【
図3】
図1の移動体運動制御システムの制御処理の例を示すフローチャートであり、移動体の制御処理全体のフローチャートである。
【
図4】
図1の移動体運動制御システムの制御処理の例を示すフローチャートであり、
図3の制御入力生成処理のフローチャートである。
【
図5】
図1の移動体運動制御システムの制御処理の例を示すフローチャートであり、
図3の指示発信処理のフローチャートである。
【
図6】
図1の移動体運動制御システムの制御処理の例を示すフローチャートであり、
図3の先行機情報受信処理のフローチャートである。
【
図7】
図1の移動体運動制御システムの制御処理の例を示すフローチャートであり、
図3の後続機情報受信処理のフローチャートである。
【
図8】
図1の移動体運動制御システムのオフセット付加処理を行う場合の構成例を示す説明図である。
【
図9】
図1の移動体運動制御システムの制御処理の例を示すフローチャートであり、第1のオフセット付加処理を行う場合の指示発信処理の例を示すフローチャートである。
【
図10】
図1の移動体運動制御システムの制御処理の例を示すフローチャートであり、第2のオフセット付加処理を行う場合の指示発信処理を示すフローチャートである。
【
図11】
図1の移動体運動制御システムの制御処理の例を示すフローチャートであり、第2のオフセット付加処理を行う場合の先行機情報受信処理を示すフローチャートである。
【
図12】
図1の移動体運動制御システムの制御処理の例を示すフローチャートであり、第2のオフセット付加処理を行う場合の制御入力生成処理を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、実施の形態について、図面を参照しながら説明する。なお、以下の実施の形態によって本発明が限定されるものではない。また、以下では、全ての図を通じて、同一又は相当する要素には同一の参照符号を付して、その重複する説明を省略する。
【0011】
本明細書で開示する要素の機能は、開示された機能を実行するよう構成またはプログラムされた汎用プロセッサ、専用プロセッサ、集積回路、ASIC(Application Specific Integrated Circuits)、従来の回路、および/または、それらの組み合わせ、を含む回路または処理回路を使用して実行できる。プロセッサは、トランジスタやその他の回路を含むため、処理回路または回路と見なされる。本開示において、回路、ユニット、または手段は、列挙された機能を実行するハードウェアであるか、または、列挙された機能を実行するようにプログラムされたハードウェアである。ハードウェアは、本明細書に開示されているハードウェアであってもよいし、あるいは、列挙された機能を実行するようにプログラムまたは構成されているその他の既知のハードウェアであってもよい。ハードウェアが回路の一種と考えられるプロセッサである場合、回路、手段、またはユニットはハードウェアとソフトウェアの組み合わせであり、ソフトウェアはハードウェアおよび/またはプロセッサの構成に使用される。
【0012】
図1は、実施の形態に係る移動体運動制御システム100の構成例を示す説明図である。
図2は、移動体運動制御システム100の制御系統の構成例を概略的に示すブロック図である。
【0013】
図1、2に示すように、移動体運動制御システム100は、複数の機体1(移動体)に設けられた制御器の制御によって、これら複数の機体1が連携して移動するように制御するシステムである。
図1において例示する制御例は、移動体運動制御システム100が1列に隊列を組んだ状態で移動するように複数の機体1を制御した例である。機体1は、航空機、船、水中船、自動車が例示される。
【0014】
各機体1が備える制御器は、電気回路であり、CPU等の演算器を有する。この制御器は、
図2に示すように、自機(自移動体)25の状態量sの目標値である目標状態量Saを生成する制御部11と、ROM及びRAM等のメモリを有し、各種プログラム及び各種データを記憶する記憶部12とを有する。制御器は、集中制御する単独の制御器で構成されていてもよく、互いに協働して分散制御する複数の制御器で構成されてもよい。また、機体1は、目標状態量Saに基づき自機25を運動させる駆動部13と、制御部11の制御によって他の機体1との通信を行う通信部14とを備える。記憶部12に記憶されるデータは、先行機24の状態量履歴S及び指定時点t、後続機26の現在状態量Snを含む。また、記憶部12に記憶されるデータは、予め設定された機体1の隊列の並び順を含んでもよい。また、通信部14における他の機体1との通信は、受信先を特定した双方向通信であってもよく、また、受信先を特定せずデータを一方向に発信する一方向通信であってもよい。
【0015】
次に、移動体運動制御システム100の移動体の制御例を説明する。本動作例においては、複数の機体1を一方向に移動させる場合を例示する。
【0016】
図3~
図7は、移動体運動制御システム100の制御処理の例を示すフローチャートである。このうち、
図3は、移動体の制御処理全体のフローチャートである。また、
図4は、
図3の制御入力生成処理のフローチャートである。更に、
図5は、
図3の指示発信処理のフローチャートである。また、
図6は、
図3の先行機情報受信処理のフローチャートである。更に、
図7は、
図3の後続機情報受信処理のフローチャートである。
【0017】
図3に示すように、制御部11は、ステップS10を処理した後、ステップS20~S90を繰り返し実行する。この繰り返し処理は、所定の周期毎に実行される。
【0018】
まず、制御部11は、自機25の先行機(先行移動体)24及び自機25の後続機(後続移動体)26の少なくとも何れか一方を設定する(ステップS10)。複数の機体1が一列に隊列を組む場合は、先頭機21の制御部11は、並び順において2番目の機体1を後続機26として設定する。2番目の機体1の制御部11は、先頭機21を先行機24として設定し、3番目の機体1を後続機26として設定する。このように、先頭機21及び末尾機29を除くN番目の中間機の制御部11は、N-1番目の機体1を先行機24として設定し、更にN+1番目の機体1を後続機26として設定する。末尾機29の制御部11は、並び順において末尾から2番目の機体1を先行機24として設定し、後続機26は設定しない。
図2において、先頭機21、後述する先々行機23、末尾機29において、制御部11、記憶部12、駆動部13、通信部14の一部又は全部の図示を省略している。
【0019】
次に、制御部11は、設定されている先行機24の有無を判定する(ステップS20)。そして、制御部11は、先行機24が有ると判定すると(ステップS20においてYes)、先行機情報受信処理を実行する(ステップS30)。
【0020】
図6に示すように、先行機情報受信処理には、通信途絶時の処理(ステップS310及びステップS325~ステップS365)が含まれるが、これらの処理については後述する。先行機情報受信処理において、制御部11は、設定されている先行機24から発信された状態量履歴S及び指定時点tを受信する(ステップS315)。先行機24から発信された状態量履歴S及び指定時点tは、先行機24の後述するステップS90の指示発信処理において、先行機24が発信した情報である。状態量履歴Sは、現在から過去のある時点までの所定の時間間隔毎の先行機24の状態量sのデータセットから構成される履歴である。そして、j個のデータセットから構成される状態量履歴Sは、例えば、以下のように定義される。
S:=[s(1), s(2), s(3), ... s(j)]
なお、小括弧内の数字は添え字である。状態量s(1)は、現在の状態量sであり、状態量sの添え字の値が大きくになるにしたがって、より過去の状態量sである。
【0021】
状態量sは、自機位置、自機速度、自機姿勢、自機の制御コマンド、自機の制御量、自機の姿勢変化率、及び自機の加減速率の少なくとも何れか1の状態量である。また、状態量sは自機25の位置を算出可能な状態量であってもよい。
【0022】
また、指定時点tは、先行機24が、この先行機24の後続機である自機25に対して、状態量履歴Sに含まれる状態量s(1)~s(j)のうち、何れの時点の状態量sを自機25の目標状態量Saの設定に用いるのかを指定する指令値である。この指定時点tは、例えば、データセットに含まれる状態量sの添え字を用いて指定する。
【0023】
次に、制御部11は、受信した状態量履歴S及び指定時点tを記憶部12に格納し、状態量履歴S及び指定時点tの値を更新する(ステップS320)。そして、制御部11は、先行機情報受信処理を終了する。なお、更新前の状態量履歴S及び指定時点tは、更新時に過去の状態量履歴S及び指定時点tとして保管するように、記憶部12に過去の履歴として蓄積してもよい。
【0024】
なお、先行機24の状態量sは、自機25がカメラ、レーダーを用いて先行機24を観測して取得されるように構成してもよい。
【0025】
一方、制御部11は、ステップS20において、設定されている先行機24が無い、すなわち先頭機21であると判定すると(ステップS20においてNo)、ステップS30の先行機情報受信処理をスキップする。
【0026】
次に、制御部11は、設定されている後続機26の有無を判定する(ステップS40)。そして、制御部11は、設定されている後続機26が有ると判定すると(ステップS40においてYes)、後続機情報受信処理を実行する(ステップS50)。
【0027】
図7に示すように、後続機情報受信処理において、制御部11は、まず、設定されている後続機26から発信された現在状態量Snを受信する(ステップS510)。後続機26から発信された現在状態量Snは、後続機26の後述するステップS70の処理において、後続機26が発信した情報である。現在状態量Snは、後続機26が発信した後続機26の現在の状態量sである。この現在状態量Snは、後続機26が発信した状態量履歴Sに含まれる現在の状態量s(1)であってもよい。この場合、後続機26が発信した状態量履歴Sを自機25が受信し、制御部11は、この中から現在の状態量s(1)を取り出し、これを後続機26の現在状態量Snとして取り扱ってもよい。
【0028】
次に、制御部11は、後続機情報受信処理において受信した現在状態量Snを記憶部12に格納し、現在状態量Snの値を更新する(ステップS515)。そして、制御部11は、後続機情報受信処理を終了する。
【0029】
なお、後続機26の状態量sは、自機25がカメラ、レーダーを用いて後続機26を観測して取得されるように構成してもよい。
【0030】
上記の通り、状態量履歴S、指定時点t、現在状態量Snは、通信によって取得されるので、観測による先行機24又は後続機26の状態量履歴Sの取得が難しい状況下においても、先行機24の状態量履歴S及び後続機26の現在状態量Snを取得することができる。
【0031】
一方、制御部11は、ステップS40において、設定されている後続機26が無い、すなわち末尾機29であると判定すると(ステップS40においてNo)、ステップS50の後続機情報受信処理をスキップする。
【0032】
次に、制御部11は、制御入力生成処理を実行する(ステップS60)。
図4に示すように、制御入力生成処理において、制御部11は、まず、自機25の先行機24及び後続機26が何れも設定されているか否か、すなわち、自機25が中間機であるか否かを判定する(ステップS610)。そして、制御部11は、自機25の先行機24及び後続機26が何れも設定されている(ステップS610においてYes)と判定すると、記憶部12から先行機24の状態量履歴S及び指定時点tを読み出して取得する(ステップS615)。
【0033】
次に、制御部11は、指定時点tにおける先行機24の状態量sである指定時点状態量Stを特定する(ステップS620)。
図1においては、t=5である場合における先行機24の状態量sであるs(5)を自機25の指定時点状態量Stと特定した場合を例示している。また、t=7である場合における自機25の状態量sであるs(7)を後続機26の指定時点状態量Stと特定した場合を例示している。
【0034】
次に、制御部11は、記憶部12から後続機26の現在状態量Snを読み出して取得する(ステップS625)。
【0035】
次に、制御部11は、先行機24の指定時点状態量St及び後続機26の現在状態量Snに基づいて自機25の目標状態量Saを生成する(ステップS630)。一例として、具体的には、制御部11は、指定時点状態量Stを仮目標状態量とする。そして、制御部11は、自機25と後続機26との間隔が所定の閾値よりも大きいか否かを判定し、この間隔が所定の閾値よりも小さい、即ち、自機25に後続機26が遅れずに追従していると判定すると、仮目標状態量を目標状態量Saとする。一方で、制御部11は、この間隔が所定の閾値よりも大きい、すなわち、後続機26が遅れて追従していると判定すると、仮目標状態量を修正し、これを目標状態量Saに設定する。仮目標状態量の修正は、例えば、tの値を大きくし、指定時点tにおける状態量sよりも過去の時点における状態量sを目標状態量Saとする。そして、制御部11は、制御入力生成処理を終了する。そして、駆動部13は、目標状態量Saに基づき自機25を運動させる。このように、駆動部13は、制御部11によって制御される。以上の通り、中間機に係る機体1は、先行機24と後続機26の状況を考慮して運動を制御する。これによって、複数機の連携移動が可能となる。また、先行機24の過去の状態量sのうち、どの時点における状態量sに基づいて運動を制御すべきかを指定時点tによって指示するので、並び順において隣り合う機体1の距離間隔を制御することができる。
【0036】
一方、制御部11は、ステップS610において、自機25の先行機24及び後続機26の何れかが設定されていない、すなわち、先頭機(先頭移動体)21か、末尾機(末尾移動体)29であると判定すると(ステップS610においてNo)、更に、後続機26が設定されているか否か、すなわち、先頭機21であるか否かを判定する(ステップS635)。
【0037】
そして、制御部11は、後続機26が設定されている、すなわち先頭機21であると判定すると(ステップS635においてYes)、記憶部12から後続機26の現在状態量Snを読み出して取得する(ステップS640)。
【0038】
次に、制御部11は、所定の指示状態量Si及び後続機26の現在状態量Snに基づいて自機25の目標状態量Saを生成する(ステップS645)。所定の指示状態量Siとは、例えば、所定の経路を移動する生成される状態量である。また、指示状態量Siは、先頭機21の操縦者から通信によって与えられる動作指示に基づいて算出される状態量であってもよい。そして、具体的には、制御部11は、指示状態量Siを仮目標状態量とする。そして、制御部11は、ステップS630と同様に、自機25と後続機26との間隔に応じて仮目標状態量を修正し、目標状態量Saとする。そして、制御部11は、制御入力生成処理を終了する。そして、駆動部13は、目標状態量Saに基づき自機25を運動させる。このように、先頭機21の制御部11は、自律的に運動を制御することができる。また、これに続く2番目の機体1の制御部11は、ステップS615~S630において述べた通り、先頭機21の指定時点状態量Stに基づき移動する。これに更に続く機体1も同様に制御され、その結果、先頭機21に続く他の機体1は、先頭機21の指定時点状態量Stに基づき隊列を組んで移動する。
【0039】
一方、ステップS635において、制御部11は、後続機26が設定されていない、すなわち、末尾機29と判定すると(ステップS635においてNo)、ステップS615及びS620と同様に、記憶部12から先行機24の状態量履歴S及び指定時点tを読み出して取得し(ステップS655)、指定時点状態量Stを特定する(ステップS660)。そして、制御部11は、先行機24の指定時点状態量St基づいて状態量の目標値である目標状態量Saを生成する(ステップS665)。一例として、具体的には、制御部11は、指定時点状態量Stを目標状態量Saとする。そして、制御部11は、制御入力生成処理を終了する。
【0040】
このように制御入力生成処理において、制御部11は、先頭機21、中間機、末尾機29の何れであるかを判定し、それぞれ異なる処理を実行する。
【0041】
制御部11は、制御入力生成処理を終了すると、次に、現在状態量Snを発信する(ステップS70)。なお、制御部11は、現在状態量Snの発信に代えて、現在状態量Snを含む状態量履歴Sを発信してもよい。また、制御部11は、自機25の故障状況や後続機26の故障状況を発信してもよい。
【0042】
次に、制御部11は、後続機26が設定されているか否か、すなわち、末尾機29であるか否かを判定する(ステップS80)。そして、制御部11は、後続機26が設定されている、すなわち末尾機29でないと判定すると(ステップS80においてYes)、指示発信処理を実行する(ステップS90)。
図5に示すように、指示発信処理において、制御部11は、まず、自機25の現在状態量Snを取得する(ステップS910)。
【0043】
次に、制御部11は、自機25の過去の状態量sを記憶部12から読み出し、現在状態量Snを状態量s(1)として含めた状態量履歴Sを生成する(ステップS915)。
【0044】
次に、制御部11は、後続機26の現在状態量Snを取得する(ステップS920)。
【0045】
次に、制御部11は、状態量履歴Sに含まれる状態量s(1)~s(j)のうち、1の時点の状態量の添え字を用いて指定時点tとして決定する。このとき、制御部11は、状態量履歴Sに含まれる状態量s(1)~s(j)のうち1の状態量を基準として、自機25の現在状態量Snと後続機26の現在状態量Snとの間隔が広がるに従い、指定時点tを早め、添え字を小さくしてもよい。また、制御部11は、自機25の現在状態量Snと後続機26の現在状態量Snとの間隔が狭まるに従い、指定時点tを遅くし、添え字を大きくしてもよい。
【0046】
このとき、制御部11は、前回決定した指定時点tとの時間差が所定の閾値よりも小さくなるように今回の指定時点tを決定する。これによって、機体1の急激な挙動の変化を防止することができる。
【0047】
なお、制御部11は、状態量(1)~s(j)の取得時に各状態量を取得した時刻も取得し、この時刻を状態量履歴Sに含めてもよい。そして、制御部11は、指定時点tを時刻によって指定してもよい。
【0048】
次に、制御部11は、通信によって状態量履歴S及び指定時点tを発信する(ステップS930)。これによって、制御部11は、後続機26にこの後続機26の目標状態量Saと現在状態量Snとが乖離していることを報知することができる。これによって、後続機26は、速度を上げるといった対応を取ることができる。そして、制御部11は、制御入力生成処理を終了し、再度、ステップS20を実行する。なお、制御部11は、状態量履歴Sに各時点における飛行中、停止中等の自機飛行モードに係る情報を含めて発信してもよい。
【0049】
一方、制御部11は、後続機26が設定されていないと判定すると(ステップS80においてNo)、再度、ステップS20を実行する。
【0050】
制御部11は、上述した通り、ステップS80又はステップS90の後、所定の周期経過後に再度ステップS20を実行する。これによって、目標状態量Sa、指定時点t等は所定の周期で決定される。
【0051】
このように、制御部11は、先行機24と後続機26の状況を考慮して運動を制御する。これによって、複数の機体の連携移動が可能となる。また、制御部11は、先行機24の過去の状態量のうち、どの時点における状態量に基づいて運動を制御すべきかを指示するので、距離間隔を制御することができる。また、これらの制御は機体が自律的に行うので、機体数の増加に伴う運用者のワークロードの増大を抑制することができる。
【0052】
(通信途絶時の処理)
なお、制御部11は、先行機24が設定されている状態で実行される先行機情報受信処理において、ステップS315に先立ち、先行機24との通信が途絶状態にあるか否かを判定する(ステップS310)。そして、制御部11は、ステップS310において通信が途絶していないと判定すると上記のステップS315及びこれに続くステップを実行する。一方で、制御部11は、ステップS310において通信が途絶したと判定すると、更に通信の途絶が所定時間以上であるか否かを判定する(ステップS325)。この所定時間とは、通信品質の劣化等の一時的な要因に基づく通信の途絶時における時間幅に応じて設定されてもよい。そして、制御部11は、通信の途絶が所定時間以上でないと判定すると(ステップS325においてNo)、通信によって先行機24から取得し、記憶部12に蓄積されている先行機24の状態量履歴S、すなわち、通信が途絶する前に先行機24から取得した状態量履歴Sに基づいて予測状態量を算出する。予測状態量とは、通信が途絶した後の蓄積されていない時点の先行機24の状態量を予測したものである。そして、制御部11は、通信の一時的な途絶によって先行機24から取得できなかった状態量sを予測状態量によって補完して、状態量履歴Sを生成する(ステップS330)。次に、制御部11は、通信の一時的な途絶によって先行機24から取得できなかった指定時点tを決定する(ステップS335)。この自機25が決定する指定時点tは、予め設定された時点であってもよい。
【0053】
次に、制御部11は、生成した状態量履歴S及び決定した指定時点tを記憶部12に格納し、状態量履歴S及び指定時点tの値を更新する(ステップS340)。そして、制御部11は、先行機情報受信処理を終了する。これによって、先行機情報受信処理に続く制御入力生成処理のステップS620、S630等においては、自機25が決定した時点における先行機24の状態量を先行機24の予測状態量を補完した状態量履歴Sに基づいて指定時点状態量Stが特定される。そして、この指定時点状態量Stに基づいて目標状態量Saが生成される。よって、通信途絶時において、不適切な運動制御が実行されることを回避することができる。
【0054】
また、制御部11は、ステップS325において、通信の途絶が所定時間以上であると判定すると(ステップS325においてYes)、記憶部12に格納されている機体1の並び順に基づいて、先行機24の先行機である先々行機(先々行移動体)23があるか否かを判定する(ステップS345)。そして、制御部11は、先々行機23があると判定すると(ステップS345においてYes)、設定されている先行機24に替えて先々行機23を先行機24に再設定する。そして、制御部11は、ステップS315と同様に、再設定した先行機24から発信された状態量履歴S及び指定時点tを受信する。そして、制御部11は、ステップS320と同様に、受信した状態量履歴S及び指定時点tを記憶部12に格納し、状態量履歴S及び指定時点tの値を更新する。そして、制御部11は、先行機情報受信処理を終了する。これによって、制御部11は、通信が途絶した先行機24に代えて先々行機23を新たな先行機として隊列を組むことができ、隊列を維持することができる。
【0055】
更に、制御部11は、ステップS345において、先々行機23が無い、すなわち先々行機23が並び順において2番目の機体1であると判定すると、先行機24の設定を抹消し、先行機なしに再設定し、先行機情報受信処理を終了する。これによって、この機体1は先頭機21して、隊列を先導することができ、隊列を維持することができる。
【0056】
(第1のオフセット付加処理)
図8は、オフセット付加処理を行う場合の移動体運動制御システム100の構成例を示す説明図である。
図9は、移動体運動制御システム100の制御処理の例を示すフローチャートであり、第1のオフセット付加処理を行う場合の指示発信処理の例を示すフローチャートである。
【0057】
制御部11は、指示発信処理において発信する状態量にオフセットを付加してもよい。
【0058】
具体的には、
図9に示すように、制御部11は、指示発信処理のステップS915の後、自機25の状態量履歴Sを取得し、この自機25の状態量履歴Sに含まれる状態量s(1)~s(j)のそれぞれに対して自機25の状態量履歴Sから算出される自機25の位置に自機25と後続機26との位置ずれ量であるオフセット量Dを付加するように状態量履歴Sを修正する(ステップS916)。そして、制御部11は、ステップS930において、通信によって修正した状態量履歴Sを発信してもよい。これによって、この状態量履歴Sを受信した後続機26の制御部11は、オフセット量Dが付加された状態量sに基づいて目標状態量Saを生成する。したがって、自機25と先行機24との間隔を適切に維持することができる。よって、ホバリング等の一時停止を円滑に行うことができ、隊列を適切に維持することができる。
【0059】
(第2のオフセット付加処理)
図10~12は、移動体運動制御システム100の制御処理の例を示すフローチャートであり、それぞれ第2のオフセット付加処理を行う場合の指示発信処理、先行機情報受信処理、及び制御入力生成処理を示すフローチャートである。
【0060】
図10に示すように、制御部11は、指示発信処理の上述のステップS925に続くステップS931において、状態量履歴S及び指定時点tと共に、自機25と後続機26との位置ずれ量であるオフセット量Dを発信する。
【0061】
そして、
図11に示すように、制御部11は、先行機情報受信処理のステップS310がNoの場合に続くステップS316又はステップS350に続くステップS356において、設定されている状態量履歴S及び指定時点tと共にオフセット量Dを受信して取得し、ステップS316に続くステップS321又はステップS356に続くステップS361において、状態量履歴S及び指定時点tと共にオフセット量Dの値を更新する。そして、制御部11は、
図12に示すように、この先行機情報受信処理に続く制御入力生成処理のステップS620に続くステップS626又はステップS660に続くステップ661において、オフセット量Dを取得する。そして、制御部11は、ステップS626に続くステップS631又はステップS661に続くステップS670において、先行機24と自機25との間にオフセット量Dに応じた位置ずれが生じるように目標状態量Saを生成する。これによって、自機25と先行機24との間隔を適切に維持することができる。よって、ホバリング等の一時停止を円滑に行うことができ、隊列を適切に維持することができる。
【0062】
このように、移動体運動制御システム100は、複数の機体1に設けられる移動体運動制御システム100であって、各機体1に設けられ、自機25の状態量の目標値である目標状態量Saを生成する制御部11と、目標状態量Saに基づき自機25を運動させる駆動部13と、制御部11の制御によって他の機体1との通信を行う通信部14と、を有し、制御部11は、自機25の先行機24及び自機25の後続機26の少なくとも何れか一方を設定し、過去の1時点である指定時点tを所定の周期で決定し、通信によって指定時点tを発信し、先行機24及び後続機26が設定されているときは、現在から過去のある時点までの先行機24の状態量の履歴である状態量履歴Sを取得し、通信によって先行機24が発信した指定時点tを取得し、状態量履歴Sに基づいて指定時点tにおける先行機24の状態量である指定時点状態量Stを特定し、後続機26の現在の状態量である現在状態量Snを取得し、先行機24の指定時点状態量St及び後続機26の現在状態量Snに基づいて自機25の目標状態量Saを生成する。これによって、先行機24と後続機26の状況を考慮して運動を制御することができるので、複数の機体1の連携移動が可能となる。また、先行機24の過去の状態量のうち、どの時点における状態量に基づいて運動を制御すべきかを指示するので、距離間隔を制御することができる。
【0063】
制御部11は、先行機24が設定されていないときは、所定の経路を移動するように状態量を生成し、生成した状態量に基づいて自機25の目標状態量Saを生成してもよい。これによって、先頭機21として、自律的に運動を制御することができる。また、これに続く機体1は、先頭機21の指定時点状態量Stに基づき隊列を組んで移動するように制御することができる。
【0064】
制御部11は、通信によって自機25の状態量履歴S及び現在状態量Snを発信し、先行機24が設定されているときは、通信によって先行機24の状態量履歴Sを取得し、後続機26が設定されているときは、通信によって後続機26の現在状態量Snを取得してもよい。これによって、観測による先行機24の状態量履歴Sの取得が難しい状況下においても、先行機24の状態量履歴S及び後続機26の現在状態量Snを取得することができる。
【0065】
制御部11は、先行機24が設定されている状態で先行機24との通信が途絶したと判定したときは、通信が途絶する前に先行機24から取得した状態量履歴Sに基づいて通信が途絶した後の先行機24の状態量を予測した予測状態量を補完して状態量履歴Sとし、自機25が決定した時点における先行機24の状態量を先行機24の予測状態量を補完した状態量履歴Sに基づいて特定して指定時点状態量Stとしてもよい。これによって、通信途絶時において、不適切な運動制御を回避することができる。
【0066】
各機体1は、複数の機体1の並び順を保持する記憶部12を有し、制御部11は、先行機24が設定され、且つ先行機24との通信が途絶した状態が所定時間継続したときにおいて、並び順に基づいて先行機24の先行機24である先々行機23が有ると判定したときは、先行機24に替えて先々行機23を自機25の先行機24として再設定し、先々行機23が無いと判定したときは、先行機24の設定を抹消してもよい。これによって、通信途絶時に隊列を維持することができる。
【0067】
状態量は、自機25の位置を算出可能な状態量であり、制御部11は、自機25の状態量履歴Sを取得し、自機25の状態量履歴Sから算出される自機25の位置に自機25と後続機26との位置ずれ量であるオフセット量Dを付加するように状態量履歴Sを修正し、通信によって修正した状態量履歴Sを発信してもよい。これによって、機体1の間隔を適切に維持することができる。
【0068】
状態量は、自機25の位置を算出可能な状態量であり、制御部11は、通信によって自機25と後続機26との位置ずれ量であるオフセット量Dを発信し、先行機24が設定されているときは、通信によって先行機24が発信したオフセット量Dを取得し、先行機24と自機25との間にオフセット量Dに応じた位置ずれが生じるように目標状態量Saを生成してもよい。これによって、隊列を適切に維持することができる。
【0069】
制御部11は、前回決定した指定時点tとの時間差が所定の閾値よりも小さくなるように今回の指定時点tを決定してもよい。これによって、機体1の急激な挙動の変化を防止することができる。
【0070】
状態量は、自機25の位置、自機25の速度、自機25の姿勢、自機25の制御コマンド、自機25の制御量、自機25の姿勢変化率、及び自機25の加減速率の少なくとも何れか1の状態量であってもよい。これによって、機体1の運動を適切に制御することができる。
【0071】
上記説明から、当業者にとっては、本発明の多くの改良や他の実施の形態が明らかである。したがって、上記説明は、例示としてのみ解釈されるべきであり、本発明を実行する最良の態様を当業者に教示する目的で提供されたものである。本発明の精神を逸脱することなく、その構造及び/又は機能の詳細を実質的に変更できる。
【符号の説明】
【0072】
S 状態量履歴
Sa 目標状態量
Sn 現在状態量
St 指定時点状態量
t 指定時点
1 機体
11 制御部
13 駆動部
14 通信部
24 先行機
25 自機
26 後続機
100 移動体運動制御システム