IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 楽天株式会社の特許一覧

<>
  • 特許-制御システム、飛行体、及び、方法 図1
  • 特許-制御システム、飛行体、及び、方法 図2
  • 特許-制御システム、飛行体、及び、方法 図3
  • 特許-制御システム、飛行体、及び、方法 図4
  • 特許-制御システム、飛行体、及び、方法 図5
  • 特許-制御システム、飛行体、及び、方法 図6
  • 特許-制御システム、飛行体、及び、方法 図7
  • 特許-制御システム、飛行体、及び、方法 図8
  • 特許-制御システム、飛行体、及び、方法 図9
  • 特許-制御システム、飛行体、及び、方法 図10
  • 特許-制御システム、飛行体、及び、方法 図11
  • 特許-制御システム、飛行体、及び、方法 図12
  • 特許-制御システム、飛行体、及び、方法 図13
  • 特許-制御システム、飛行体、及び、方法 図14
  • 特許-制御システム、飛行体、及び、方法 図15
  • 特許-制御システム、飛行体、及び、方法 図16
  • 特許-制御システム、飛行体、及び、方法 図17
  • 特許-制御システム、飛行体、及び、方法 図18
  • 特許-制御システム、飛行体、及び、方法 図19
  • 特許-制御システム、飛行体、及び、方法 図20
  • 特許-制御システム、飛行体、及び、方法 図21
  • 特許-制御システム、飛行体、及び、方法 図22
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-02-17
(45)【発行日】2022-02-28
(54)【発明の名称】制御システム、飛行体、及び、方法
(51)【国際特許分類】
   B64C 13/18 20060101AFI20220218BHJP
   B64C 39/02 20060101ALI20220218BHJP
   B64D 45/00 20060101ALI20220218BHJP
   B64D 47/08 20060101ALI20220218BHJP
   G01S 17/89 20200101ALI20220218BHJP
   G05D 1/10 20060101ALI20220218BHJP
   G08G 5/00 20060101ALI20220218BHJP
【FI】
B64C13/18 Z
B64C39/02
B64D45/00 A
B64D47/08
G01S17/89
G05D1/10
G08G5/00 A
【請求項の数】 17
(21)【出願番号】P 2020219576
(22)【出願日】2020-12-28
【審査請求日】2020-12-28
(73)【特許権者】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】100110135
【弁理士】
【氏名又は名称】石井 裕一郎
(74)【代理人】
【識別番号】100132883
【弁理士】
【氏名又は名称】森川 泰司
(74)【代理人】
【識別番号】100148633
【弁理士】
【氏名又は名称】桜田 圭
(74)【代理人】
【識別番号】100163452
【弁理士】
【氏名又は名称】南郷 邦臣
(74)【代理人】
【識別番号】100180312
【弁理士】
【氏名又は名称】早川 牧子
(72)【発明者】
【氏名】田爪 敏明
【審査官】長谷井 雅昭
(56)【参考文献】
【文献】特開2020-067880(JP,A)
【文献】特表2017-501484(JP,A)
【文献】特表2017-526566(JP,A)
【文献】国際公開第2018/008388(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B64C 13/18
B64D 47/08
B64D 45/00
G05D 1/10
G08G 5/00
B64C 39/02
G01S 17/89
(57)【特許請求の範囲】
【請求項1】
予め定められたルートを飛行する飛行体が搭載する第1センサがセンシングすることで得られたセンシング情報に基づいて、視程が予め定められた距離よりも短い短視程空域の大きさを推定する推定部と、
推定された前記短視程空域の前記大きさと、前記センシング情報と、に基づいて、前記短視程空域よりも安全性が高い安全空域を設定する設定部と、
前記飛行体に搭載され、かつ、前記第1センサと異なる第2センサから出力される情報に基づいて、前記短視程空域を通る前記ルートの飛行継続が不能と判定されると、設定された前記安全空域へ前記飛行体を移動させる制御を行う制御部と、を備える、
ことを特徴とする制御システム。
【請求項2】
前記飛行体が、前記短視程空域を検出した第1点の位置を表す情報と、前記短視程空域に入域したと判定した第2点の位置を表す情報と、を取得する取得部、をさらに備え、
前記第1センサは、空間を光学的にセンシングすることで得られた画像を表す情報を出力するイメージセンサを含み、
前記センシング情報は、前記イメージセンサが出力する前記情報を含み、
前記推定部は、取得された前記情報で表される前記第1点の前記位置と、前記第2点の前記位置と、前記第1点で前記飛行体が搭載する前記第1センサがセンシングすることで得られた前記センシング情報と、に基づいて、前記短視程空域の大きさを推定する、
ことを特徴とする請求項1に記載の制御システム。
【請求項3】
前記飛行体は、
前記イメージセンサから出力された前記センシング情報に基づいて、前記短視程空域を検出し、かつ、
前記イメージセンサから出力された前記センシング情報に基づいて、前記短視程空域への前記飛行体の入域を判定し、
前記推定部は、
前記短視程空域が検出される基礎となった前記センシング情報に基づいて、前記短視程空域が検出された前記第1点から、前記短視程空域と、前記短視程空域と異なる非短視程空域と、の境界へ向かう方向を特定し、
前記短視程空域が検出された前記第1点の前記位置と、前記短視程空域への前記入域が判定された前記第2点の前記位置と、に基づいて、前記短視程空域が検出される前記基礎となった前記センシング情報が得られた時刻における前記飛行体から前記短視程空域までの距離を推定し、
推定された前記距離と、前記第1点から前記短視程空域の前記境界へ向かう前記方向と、に基づいて、前記短視程空域の前記大きさを推定する、
ことを特徴とする請求項に記載の制御システム。
【請求項4】
前記飛行体に搭載された前記第1センサは、風向及び風速をセンシングし、かつ、センシングされた前記風向及び前記風速を表す情報を出力する風向風速センサをさらに含み、
前記センシング情報は、前記風向風速センサが出力する前記情報をさらに含み、
前記推定部は、前記風向風速センサから出力された前記センシング情報で表される前記風向及び前記風速にさらに基づいて、前記時刻における前記飛行体から前記短視程空域までの前記距離を推定する、
ことを特徴とする請求項に記載の制御システム。
【請求項5】
前記推定部は、
前記第1点の前記位置と、前記短視程空域の推定された前記大きさと、に基づいて、前記時刻における前記短視程空域の位置を推定し、
前記風向及び前記風速に基づいて、前記短視程空域の移動方向及び移動速度を推定し、かつ、
推定された前記移動方向及び前記移動速度に基づいて、前記時刻よりも後の前記短視程空域の位置を推定する、
ことを特徴とする請求項に記載の制御システム。
【請求項6】
前記飛行体に搭載された前記第2センサは、光学的にセンシングすることで得られた地表面から前記飛行体までの高度を表す情報を出力する高度センサをさらに含み、
前記制御部は、前記高度センサから出力される前記情報が、前記高度センサについて予め定められた異常条件を満足する第1の場合に、前記ルートの飛行継続が不能であると判定し、かつ、設定された前記安全空域へ前記飛行体を移動させる前記制御を行う、
ことを特徴とする請求項に記載の制御システム。
【請求項7】
前記制御部は、前記高度センサから出力される前記情報が、前記高度センサについて予め定められた前記異常条件を満足する前記第1の場合に、前記飛行体の高度を変更させる高度変更制御を行わずに、前記飛行体の高度に在る前記安全空域へ前記飛行体を移動させる第1制御を行う、
ことを特徴とする請求項に記載の制御システム。
【請求項8】
前記飛行体に搭載された前記第2センサは、空間を光学的にセンシングすることで得られた座標値であり、かつ、前記飛行体の飛行を妨げる可能性のある障害物の座標値を表す情報を出力するLiDAR(Light Detection And Ranging)センサをさらに含み、
前記制御部は、前記第1の場合に、若しくは、前記LiDARセンサから出力される前記情報が、前記LiDARセンサについて予め定められた異常条件を満足する第2の場合に、又は、前記第1の場合かつ前記第2の場合に、前記ルートの飛行の継続が不能であると判定する、
ことを特徴とする請求項に記載の制御システム。
【請求項9】
前記取得部は、前記LiDARセンサから出力される前記障害物の前記座標値を表す前記情報が、前記LiDARセンサについて予め定められた前記異常条件を満足する前記第2の場合に、予め定められた空域を表す情報と、前記予め定められた空域における障害物の確認結果を表す確認結果情報と、を予め対応づけて記憶する記憶部から、前記ルートが通る前記短視程空域を表す情報に対応付けられた前記確認結果情報を取得し、
前記確認結果情報は、前記予め定められた空域に障害物が存在することが確認されていることを表す存在確認情報、前記予め定められた空域に障害物が存在しないことが確認されていることを表す不存在確認情報、及び、前記予め定められた空域に障害物が存在すること及び存在しないことが確認されていないことを表す未確認情報を含み、
前記制御部は、
前記第2の場合であり、かつ、取得された前記確認結果情報が、前記存在確認情報、又は、前記未確認情報である場合に、前記ルートの飛行の継続が不能であると判定して、設定された前記安全空域へ前記飛行体を移動させる前記制御を行い、かつ、
前記第2の場合であり、かつ、取得された前記確認結果情報が前記不存在確認情報である場合に、前記ルートの飛行継続が可能であると判定して、前記ルートの飛行を前記飛行体に継続させる制御を行う、
ことを特徴とする請求項に記載の制御システム。
【請求項10】
前記制御部は、前記第2の場合であり、かつ、前記ルートの飛行継続が不能であると判定された場合に、
前記高度変更制御を行わずに、前記飛行体の前記高度に在る前記安全空域へ前記飛行体を移動させる前記第1制御を行い、かつ、
前記短視程空域を前記飛行体が出域する前に、前記第1制御を開始してから予め定められた移動距離を前記飛行体が移動すると、又は、予め定められた時間が経過すると、前記高度変更制御を行って、前記飛行体の上方に位置する前記安全空域へ前記飛行体を移動させる第2制御を行う、
ことを特徴とする請求項に記載の制御システム。
【請求項11】
前記設定部は、
前記イメージセンサから出力された前記センシング情報に基づいて、前記飛行体の飛行を妨げる可能性がある障害物の位置を検出し、かつ、
検出された前記障害物の前記位置に基づいて複数の非短視程空域を前記安全空域として設定する、
ことを特徴とする請求項2から10のいずれか一項に記載の制御システム。
【請求項12】
前記設定部は、
前記イメージセンサから出力された前記センシング情報に基づいて、人の位置及び家屋の位置の1つ以上を検出し、かつ、
検出された前記人の前記位置及び前記家屋の前記位置の1つ以上に基づいて、前記複数の安全空域それぞれに優先順位を設定し、
前記制御部は、設定された前記優先順位に基づいて、前記複数の安全空域から選択された空域へ前記飛行体を移動させる前記制御を行う、
ことを特徴とする請求項1に記載の制御システム。
【請求項13】
前記取得部は、予め定められた点の位置を表す情報を取得し、
前記設定部は、取得された前記情報で表される前記点との間に前記短視程空域が存在しない前記安全空域に、前記点との間に前記短視程空域が存在する前記安全空域よりも高い前記優先順位を設定する、
ことを特徴とする請求項1に記載の制御システム。
【請求項14】
前記ルートの飛行継続が不能と判定されると、前記短視程空域の視程が、予め定められた進行制限時間以内に、予め定められた前記距離以上となるか否かを、前記イメージセンサが出力する前記情報によって表される前記画像に基づいて推定する推定部、をさらに備え、
前記制御部は、
予め定められた前記進行制限時間以内に、前記短視程空域の視程が予め定められた前記距離以上となると推定されると、前記飛行体の進行を制限する制御を行い、かつ、
予め定められた前記進行制限時間以内に、前記短視程空域の視程が予め定められた前記距離以上とならないと推定されると、前記安全空域へ前記飛行体を移動させる前記制御を行う、
ことを特徴とする請求項2から13のいずれか一項に記載の制御システム。
【請求項15】
前記推定部は、前記ルートの飛行継続が不能と判定されると、前記短視程空域の視程が、予め定められた進行制限時間以内に、予め定められた前記距離以上となるか否かを、前記時刻よりも後の前記短視程空域の前記位置に基づいて推定し、
前記制御部は、
予め定められた前記進行制限時間以内に、前記短視程空域の視程が予め定められた前記距離以上となると推定されると、前記飛行体の進行を制限する制御を行い、
予め定められた前記進行制限時間以内に、前記短視程空域の視程が予め定められた前記距離以上とならないと推定されると、前記安全空域へ前記飛行体を移動させる前記制御を行う、
ことを特徴とする請求項5から10のいずれか一項に記載の制御システム。
【請求項16】
予め定められたルートを飛行する飛行体であって、
記飛行体が搭載する第1センサがセンシングすることで得られたセンシング情報に基づいて、視程が予め定められた距離よりも短い短視程空域の大きさを推定する推定部と、
推定された前記短視程空域の前記大きさと、前記センシング情報と、に基づいて、前記短視程空域よりも安全性が高い安全空域を設定する設定部と、
前記飛行体に搭載され、かつ、前記第1センサと異なる第2センサから出力される情報に基づいて、前記短視程空域を通る前記ルートの飛行継続が不能と判定されると、設定された前記安全空域へ前記飛行体を移動させる制御を行う制御部と、を備える、
ことを特徴とする飛行体。
【請求項17】
予め定められたルートを飛行する飛行体、又は、前記飛行体を制御する制御システムが実行する方法であって、
記飛行体が搭載する第1センサがセンシングすることで得られたセンシング情報に基づいて、視程が予め定められた距離よりも短い短視程空域の大きさを、前記飛行体又は前記制御システムが推定する推定ステップと、
推定された前記短視程空域の前記大きさと、前記センシング情報と、に基づいて、前記短視程空域よりも安全性が高い安全空域を、前記飛行体又は前記制御システムが設定する設定ステップと、
前記飛行体に搭載され、かつ、前記第1センサと異なる第2センサから出力される情報に基づいて、前記短視程空域を通る前記ルートの飛行継続が不能と判定されると、設定された前記安全空域へ前記飛行体を移動させる制御を、前記飛行体又は前記制御システムが行う制御ステップと、を有する、
ことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御システム、飛行体、及び、方法に関する。
【背景技術】
【0002】
従来、例えば、霧が発生している空域を含む、視程が予め定められた距離よりも短い短視程空域を飛翔体に飛行させる飛行制御システムが知られている(例えば、特許文献1)。この飛行制御システムは、パルス光を照射する誘導制御装置と、パルス光を検知するセンサから出力された情報に基づいて光が飛来した方向を検知する飛来方向検知装置と、を備え、検知された方向へ向かって霧の短視程空域を飛翔体に飛行させる。
【先行技術文献】
【特許文献】
【0003】
【文献】国際公開第2018/008388号
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1のシステムは、センサで光の飛来方向を検知しなければ、飛翔体を短視程空域で飛行させることができない。このため、例えば、センサから出力される情報に基づいて、パルス光で表されるルートの飛行ができないと判定された場合に、短視程空域よりも安全性の高い安全空域へ飛翔体を移動させることができないという問題があった。
【0005】
そこで、本発明は、このような点に鑑み、その目的とするところは、センサから出力される情報に基づいて、短視程空域を通るルートの飛行継続が不能と判定される場合であっても、短視程空域よりも安全性が高い安全空域へ飛行体を移動させることができる制御システム、飛行体、及び、方法を提供することにある。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明の第1の観点に係る制御システムは、
予め定められたルートを飛行する飛行体が、視程が予め定められた距離よりも短い短視程空域を検出した第1点の位置を表す情報と、前記短視程空域に入域したと判定した第2点の位置を表す情報と、を取得する取得部と、
取得された前記情報で表される前記第1点の前記位置と、前記第2点の前記位置と、前記第1点で前記飛行体が搭載する第1センサがセンシングすることで得られたセンシング情報と、に基づいて、前記短視程空域の大きさを推定する推定部と、
推定された前記短視程空域の前記大きさと、前記第1点で得られた前記センシング情報と、に基づいて、前記短視程空域よりも安全性が高い安全空域を設定する設定部と、
前記飛行体に搭載され、かつ、前記第1センサと異なる第2センサから出力される情報に基づいて、前記短視程空域を通る前記ルートの飛行継続が不能と判定されると、設定された前記安全空域へ前記飛行体を移動させる制御を行う制御部と、を備える。
【発明の効果】
【0007】
本発明に係る制御システム、飛行体、及び、方法によれば、センサから出力される情報に基づいて、短視程空域を通るルートの飛行継続が不能と判定される場合であっても、短視程空域よりも安全性が高い安全空域へ飛行体を移動させることができる。
【図面の簡単な説明】
【0008】
図1】本発明の実施例に係る制御システムの一構成例を表すシステム構成図である。
図2】実施例に係る飛行体の一外観例を表す外観構成図である。
図3】飛行体が備える制御装置の一構成例を表すハードウェア構成図である。
図4】実施例に係る飛行体が実行する飛行処理の一例の前半を表すフローチャートである。
図5】実施例に係る飛行体が実行する飛行処理の一例の後半を表すフローチャートである。
図6】飛行体が実行する空域判定処理の一例を表すフローチャートである。
図7】第1点、第2点、及び、第3点の一例を表す図である。
図8】制御システムが備える制御装置の一構成例を表すハードウェア構成図である。
図9】制御システムが備える制御装置が実行する飛行制御処理の一例を表すフローチャートである。
図10】制御システムが備える制御装置が有する機能の一例を表す機能ブロック図である。
図11】制御システムが備える制御装置が記憶する安全空域テーブルの一例を表す図である。
図12】制御システムが備える制御装置が記憶する確認結果テーブルの一例を表す図である。
図13】制御システムが備える制御装置が記憶する飛行位置関連テーブルの一例を表す図である。
図14】制御システムが備える制御装置が実行する大きさ推定処理の一例を表すフローチャートである。
図15】制御システムが備える制御装置が実行する安全空域設定処理の一例を表すフローチャートである。
図16】制御システムが備える制御装置が実行する飛行継続可否判定処理の一例を表すフローチャートである。
図17】実施例に係る制御システムが備える制御装置が実行する空域移動制御処理の一例を表すフローチャートである。
図18】端末装置の一構成例を表すハードウェア構成図である。
図19】実施例の変形例7に係る制御システムが備える制御装置が実行する空域移動制御処理の一例を表すフローチャートである。
図20】実施例の変形例7に係る飛行体が実行する飛行処理の一例の前半を表すフローチャートである。
図21】実施例の変形例7に係る飛行体が実行する飛行処理の一例の後半を表すフローチャートである。
図22】実施例の変形例11に係る飛行体の一外観例を表す外観構成図である。
【発明を実施するための形態】
【0009】
<実施例>
以下、本発明の実施例について添付図面を参照しつつ説明する。
【0010】
本発明の実施例に係る制御システム1は、物品を運搬するため、物品を格納して飛行する、図1に示すような飛行体100及び200と、飛行体100及び200の飛行を制御する制御装置500と、を備える。また、制御システム1は、制御装置500による飛行体100及び200の飛行制御を補助する補助者によって携帯される端末装置900を備える。
【0011】
飛行体100は、例えば、ドローン等の無人航空機であり、物品の運搬を行う運搬業者の営業所に着陸している。飛行体100は、飛行体100の姿勢及び飛行を制御する、図2に示すような直方体形状の制御装置190を備える。
【0012】
本実施例において、制御装置190が有する複数の面の内で、基準となる面を前面といい、当該前面の法線方向に平行で、かつ、制御装置190の外側に向かう方向を、飛行体100の前方向という。また、制御装置190が有する複数の面の内で、前面に垂直な面の1つを上面といい、当該上面の法線方向に平行で、かつ、制御装置190の外側に向かう方向を、飛行体100の上方向という。本実施例では、制御装置190は、上面が水平面と平行となるように、飛行体100の姿勢及び飛行を制御するが、これに限定される訳では無い。
【0013】
飛行体100は、制御装置190の前面から右前方向及び左前方向、並びに、制御装置190の後面から左後方向及び右後方向にそれぞれ突出したプロペラアーム101及び102、並びに、103及び104を備える。さらに、飛行体100は、プロペラアーム101から104の先端にそれぞれ設置されたプロペラ111から114と、制御装置190の制御に従ってプロペラ111から114を回転させる不図示のモータと、を備える。
【0014】
飛行体100は、制御装置190の下面に、物品を囲持する第1囲持枠121aと、第2囲持枠121bと、を備える。飛行体100の第1囲持枠121aは、物品を梱包する直方体形状の段ボールの側面の内の1つが有する4辺を囲持し、第2囲持枠121bは、第1囲持枠121aによって囲持される面(以下、第1囲持面という)と対向する側面(以下、第2囲持面という)が有する4辺を囲持する。
【0015】
また、飛行体100は、物品の第1囲持面及び第2囲持面の法線方向に延設され、第1囲持枠121aと第2囲持枠121bとを吊持し、かつ、第1囲持枠121aと第2囲持枠121bとの移動方向を延設方向にするガイドレール122a及び122bを、制御装置190の下面に備える。
【0016】
さらに、飛行体100は、制御装置190の制御に従って、第1囲持枠121aと第2囲持枠121bとを互いに近づく方向へ移動させることで、第1囲持枠121aと第2囲持枠121bとに商品を囲持させる不図示のモータを備える。この不図示のモータは、制御装置190の制御に従って、第1囲持枠121aと第2囲持枠121bとを互いに遠ざかる方向に移動させることで、囲持された商品を第1囲持枠121aと第2囲持枠121bとに開放させる。
【0017】
またさらに、飛行体100は、濃霧が発生している空域の位置の推定に用いられる第1センサ131を制御装置190の上面に搭載している。本実施例において、第1センサ131は、イメージセンサ131a及び風向風速センサ131bを含むが、これに限定される訳では無い。
【0018】
本実施例において、霧が発生している空域は、水滴が浮遊している空間を含む。また、濃霧が発生している空域は、霧が発生している空域であり、かつ、視程が予め定められた第1視程距離よりも短い短視程空域である。本実施例において、第1視程距離は、「100」メートルであるが、これに限定される訳では無く、「100」メートルよりも短い距離であっても、「100」メートルよりも長い距離であっても良い。好適な第1視程距離は、当業者が実験により定めることができる。
【0019】
イメージセンサ131aは、空間を光学的にセンシングすることで得られたセンシング情報を出力する。本実施例において、空間を光学的にセンシングするとは、当該空間を通過した光を検知することを含む。
【0020】
このため、イメージセンサ131aは、不図示のレンズと、空間を通過した後にレンズで収束させられた光を検知し、検知した光に応じた電気信号を出力する不図示の受光素子群と、を備えている。また、イメージセンサ131aは、受光素子群から出力された信号に基づいて、撮像により得られた画像を表す画像情報を生成し、生成された画像情報をセンシング情報として出力する不図示の画像生成回路を備えている。
【0021】
本実施例において、受光素子群は、CCD(Charge Coupled Device)センサであるが、これに限定される訳では無く、CMOS(Complementary Metal Oxide Semiconductor)センサであっても良い。
【0022】
また、本実施例において、受光素子群で構成される受光面の形状は、方形であり、受光面が制御装置190の底面及び上面と垂直となるように、かつ、受光面の一辺が制御装置190の底面及び上面と平行となるように、イメージセンサ131aは、制御装置190の上面に設置されている。このようにイメージセンサ131aが設置されているのは、飛行体100が、水平面と制御装置190の底面及び上面とが平行となるように飛行する間にイメージセンサ131aで得られる画像の主走査方向を水平方向に対応させ、かつ、副走査方向を鉛直方向に対応させるためである。
【0023】
また、イメージセンサ131aのレンズは、広角レンズであり、当該レンズの焦点距離は、予め定められた画角以上の画角となるように調整されている。また、当該レンズの光軸は、制御装置190の前方向と平行となるように調整されている。
【0024】
風向風速センサ131bは、風向及び風速をセンシングし、センシングされた風向及び風速を表すセンシング情報を制御装置190へ出力する。本実施例において、風向及び風速をセンシングするとは、風向及び風速を検知することを含む。
【0025】
このため、風向風速センサ131bは、超音波式の三次元センサであり、飛行体100の三次元座標系が有するXa軸の方向に吹く風の飛行体100を基準とした風速(以下、対飛行体速度という)WVaaxを検知する。また、風向風速センサ131bは、Ya軸の方向に吹く風の対飛行体速度WVaayと、Za軸の方向に吹く風の対飛行体速度WVaazと、を検知する。次に、風向風速センサ131bは、検知された風向及び風速を、検知された対飛行体速度WVaax、WVaay、及び、WVaazを要素とするベクトルで表す風向風速情報を生成する。その後、風向風速センサ131bは、生成された風向風速情報を、センシング情報として制御装置190へ出力する。
【0026】
本実施例において、飛行体100の三次元座標系のXa軸は、飛行体100の前方向に平行であり、かつ、飛行体100の前方向を正の方向とする。Ya軸は、飛行体100の左方向に平行であり、かつ、飛行体100の左方向を正の方向とし、Za軸は、飛行体100の鉛直上方向に平行であり、かつ、飛行体100の鉛直上方向を正の方向とする。また、飛行体100の三次元座標系の原点は、飛行体100の中心点であるが、これらに限定される訳では無い。
【0027】
飛行体100は、第1センサ131と異なる第2センサ132を搭載している。第2センサ132は、制御装置500によって予め定められた物品の運搬ルートの内で、短視程空域を通る部分ルート(以下、短視程ルートという)の飛行継続が可能か否かを判定するために用いられる。本実施例では、第2センサ132は、高度センサ132a及びLiDAR(Light Detection And Ranging)センサ132bを含むが、これに限定される訳では無い。
【0028】
高度センサ132aは、TOF(Time Of Flight)センサであり、制御装置190の底面に設けられている。高度センサ132aは、飛行体100の下方向へレーザ光を照射する。本実施例では、飛行体100の下方向は、制御装置190の底面の法線方向であり、かつ、制御装置190の外側に向かう方向である。また、本実施例では、制御装置190は、制御装置190の底面が水平面と平行となるように飛行体100の姿勢及び飛行を制御するため、高度センサ132aは、鉛直下方向にレーザ光を照射する。次に、高度センサ132aは、照射されたレーザ光の反射光を受光し、レーザ光の照射から反射光の受光までの時間に基づいて、飛行体100からレーザ光が反射された地表面までの対地高度を計測する。その後、高度センサ132aは、計測された対地高度を表す高度情報を制御装置190へ出力する。
【0029】
LiDARセンサ132bは、制御装置190の前面に設けられたLiDARセンサと、後面に設けられたLiDARセンサと、の総称である。前面のLiDARセンサは、飛行体100の前方向を基準の方位とした場合に、当該基準の方位となす方位角が-90度から+90度まで、かつ、飛行体100の前方向となす仰角が-90度から+90度までの範囲に含まれる複数の方向へレーザ光を照射する。前面のLiDARセンサは、照射されたレーザ光の反射光を受光し、レーザ光の照射から反射光の受光までの時間に基づいて、レーザ光を反射した障害物上の複数の反射点までの距離を計測する。本実施例において、障害物は、例えば、樹木、電線、電柱、塔、家屋、又は、ビル等の飛行体100の飛行を妨げる可能性のある物体を含む。
【0030】
次に、前面のLiDARセンサは、レーザ光の照射方向と計測された距離とに基づいて、飛行体100の三次元座標系における座標値を、複数の反射点について算出する。その後、前面のLiDARセンサ132bは、算出された障害物上の複数の反射点の座標値を表す座標情報を制御装置190へ出力する。
【0031】
飛行体100が備える後面のLiDARセンサは、飛行体100の後方向を基準の方位として用いる場合に、当該基準の方位となす方位角が-90度から+90度まで、かつ、飛行体100の後方向となす仰角が-90度から+90度までの範囲に含まれる複数の方向へ赤外線のレーザ光を照射する。また、後面のLiDARセンサ132bは、照射されたレーザ光の複数の反射点について飛行体100の三次元座標系における座標値を算出し、算出された障害物上の複数の反射点の座標値を飛行体100の制御装置190へ出力する。
【0032】
また、飛行体100は、制御装置190の下面から下方向に突出しており、制御装置190を支持する支持脚140を備えている。
【0033】
飛行体100の制御装置190は、図3に示すようなハードウェアであるCPU(Central Processing Unit)191、RAM(Random Access Memory)192、ROM(Read Only Memory)193a、フラッシュメモリ193b、データ通信回路194a、ビデオカード195a、表示装置195b、入力装置195c、位置センサ196、方位角センサ197a、姿勢センサ197b、入出力ポート198、及び、駆動回路199を備える。本実施例では、飛行体100は、1つのCPU191を備えるが、複数のCPUを備えても良い。また、飛行体100は、複数のRAM及びフラッシュメモリを備えても良い。
【0034】
飛行体100のCPU191は、ROM193a又はフラッシュメモリ193bに保存されたプログラムを実行することで、飛行体100の全体制御を行う。RAM192は、CPU191によるプログラムの実行時において、処理対象とされるデータを一時的に記憶する。
【0035】
飛行体100のROM193a及びフラッシュメモリ193bは、各種のプログラムを記憶している。また、フラッシュメモリ193bは、プログラムの実行に用いられる各種のデータやデータが保存されたテーブルをさらに記憶している。飛行体100は、フラッシュメモリ193bの代わりに、ハードディスクを備えても良い。
【0036】
飛行体100のデータ通信回路194aは、NIC(Network Interface Card)であり、例えば、LTE(Long Term Evolution)及び5G(5th Generation)といった通信規格に従って、インターネットINに接続された不図示の基地局と電波を用いてデータ通信を行う。このようにして、飛行体100のデータ通信回路194aは、インターネットINに接続された制御装置500とデータ通信を行う。
【0037】
飛行体100のビデオカード195aは、CPU191から出力されたデジタル信号に基づいて画像をレンダリングすると共に、レンダリングされた画像を表す画像信号を出力する。表示装置195bは、EL(Electroluminescence)ディスプレイであり、ビデオカード195aから出力された画像信号に従って画像を表示する。飛行体100は、ELディスプレイの代わりに、PDP(Plasma Display Panel)又はLCD(Liquid Crystal Display)を備えても良い。入力装置195cは、タッチパッド及びボタンのいずれか1つ以上であり、運搬業者の従業員又は物品の受取人の操作に応じた信号を入力する。
【0038】
飛行体100の位置センサ196は、GPS(Global Positioning System)回路を備えている。位置センサ196は、GPS衛星から発せられたGPS信号を受信し、受信されたGPS信号に基づいて飛行体100の位置を表す緯度、経度、及び、GPS高度を計測し、計測された緯度、経度、及び、GPS高度を表す位置情報を出力する。TOFセンサである高度センサ132aは、地表面を基準面とした飛行体100の対地高度を計測するのに対して、位置センサ196は、地表の形状を近似した回転楕円体の表面を基準面とした飛行体100のGPS高度を計測する点で、高度センサ132aと位置センサ196とは、互いに相違している。
【0039】
本実施例において、位置センサ196は、GPS回路を備えるが、これに限定されるのではない。位置センサ196は、準天頂衛星から発せられた信号を受信し、受信された信号に基づいて飛行体100の位置を表す緯度、経度、及び、高度を計測するQZSS(Quasi-Zenith Satellite System)回路を備えても良い。
【0040】
飛行体100の方位角センサ197aは、例えば、磁気センサであり、飛行体100の前方向と基準の方位とがなす方位角θを、基準の方位から反時計回りに計測し、計測された方位角θを表す方位角情報を出力する。本実施例において、基準の方位は北であるが、これに限定される訳では無く、基準の方位は、例えば、南、東、西、又は、南東を含むどのような方位でも良い。
【0041】
飛行体100の姿勢センサ197bは、例えば、ジャイロスコープであり、飛行体100の前方向と水平面とがなす最小の俯角φfと、飛行体100の右方向と水平面とがなす最小の俯角φrと、を検出し、検出された俯角φf及びφrを表す姿勢情報を出力する。
【0042】
飛行体100の入出力ポート198は、イメージセンサ131aに接続された不図示のケーブルと、風向風速センサ131bに接続された不図示のケーブルと、に接続されている。入出力ポート198は、イメージセンサ131a及び風向風速センサ131bが出力するセンシング情報をCPU191へ入力する。また、入出力ポート198は、高度センサ132aに接続された不図示のケーブルと、LiDARセンサ132bに接続された不図示のケーブルと、に接続されている。入出力ポート198は、高度センサ132aが出力する高度情報と、LiDARセンサ132bが出力する座標情報と、をCPU191へ入力する。
【0043】
飛行体100の駆動回路199は、プロペラ111から114を回転させる不図示のモータにそれぞれ接続された不図示のケーブルに接続されている。駆動回路199は、CPU191が出力する信号に従って、プロペラ111から114を回転させるモータを駆動させる。また、駆動回路199は、駆動させているモータの単位時間当たりの回転数を表す信号をCPU191へ出力する。
【0044】
また、飛行体100の駆動回路199は、第1囲持枠121aと第2囲持枠121bとを移動させる不図示のモータに接続された不図示のケーブルに接続されている。駆動回路199は、CPU191が出力する信号に従って、第1囲持枠121aと第2囲持枠121bとを移動させるモータを駆動させる。
【0045】
運搬業者の営業所に物品が運び込まれると、運搬業者の従業員は、物品に貼付された伝票から、物品の運搬先の住所を読み取ってから、物品を飛行体100又は200に格納させる。本実施例では、従業員は、飛行体100に物品を格納させる場合を具体例としてあげて説明するが、これに限定される訳では無く、従業員は、飛行体200に物品を格納させても良い。
【0046】
従業員は、飛行体100に物品を格納させるため、当該物品を、飛行体100の第1囲持枠121aと第2囲持枠121bとの間に配置する。その後、従業員は、第1囲持枠121aと第2囲持枠121bとに物品を囲持させるための操作を、飛行体100の入力装置195cに行う。入力装置195cが当該操作に応じた信号を出力すると、CPU191は、第1囲持枠121aと第2囲持枠121bとを互いに近づく方向に移動させる制御信号を駆動回路199へ出力することで、飛行体100に物品を格納させる。
【0047】
物品が飛行体100に格納されたことを視認した従業員が、飛行体100を識別する機体ID(IDentification)「100」と、当該物品の運搬先の住所と、を入力するための操作を制御装置500に行うと、制御装置500は、当該運搬先へ営業所から到る運搬ルートを定める。次に、制御装置500は、定められた運搬ルートを表すルート情報を含み、かつ、当該運搬ルートを飛行することを命じる飛行命令と、運搬ルートを飛行するために高度を変更することを許可する高度変更許可と、を飛行体100へ送信する。ルート情報は、運搬ルートに含まれる複数の到着点の位置を緯度、経度、及び、GPS高度で表す情報と、複数の到着点の到着順序を表す情報と、を含んでいる。
【0048】
飛行体100のデータ通信回路194aが飛行命令を受信すると、飛行体100のCPU191は、飛行命令に従って飛行するため、図4及び図5に示すような飛行処理の実行を開始する。
【0049】
飛行処理の実行が開始されると、飛行体100のCPU191は、データ通信回路194aから飛行命令と、当該飛行命令と共に送信された高度変更許可と、を取得する(ステップS01)。次に、CPU191は、飛行命令から運搬ルートを表すルート情報を取得し(ステップS02)、飛行体100に飛行させる飛行ルートを記憶するRAM192の予め定められた領域にルート情報を保存する。このようにして、CPU191は、飛行ルートを運搬ルートに設定する。
【0050】
その後、飛行体100のCPU191は、高度変更許可に従って、高度の変更が許可されているか、制限されているか、を表す高度変更許可フラグの値を、高度の変更が許可されていることを表す値「true」に初期化する(ステップS03)。
【0051】
高度の変更が制限されるのは、飛行体100の飛行が法令によって予め許可されている飛行許可空域を、飛行体100が出域することを抑制するためである。すなわち、飛行体100の飛行が法令によって予め禁止されている飛行禁止空域に、飛行体100が入域することを抑制するためである。本実施例において、飛行許可空域は、法令によって、対地高度の範囲が「30」メートル以上、かつ、「150」メートル未満と予め定められている空域を含む。また、飛行禁止空域は、法令によって、対地高度の範囲が「30」メートル未満の空域、及び、「150」メートル以上と予め定められている空域を含む。しかし、飛行許可空域及び飛行禁止空域は、これらに限定される訳ではない。
【0052】
次に、飛行体100のCPU191は、飛行体100を離陸させるための制御信号を生成し、生成された制御信号を駆動回路199へ出力する(ステップS04)。駆動回路199は、制御信号に従ってプロペラ111から114を回転させるモータを駆動させる。このようにして、飛行体100は、営業所から離陸する。
【0053】
次に、飛行体100のCPU191は、飛行処理を実行するスレッドと異なるスレッドを生成する。その後、CPU191は、生成されたスレッドで、飛行体100が飛行する空域が濃霧の発生している短視程空域であるか否かを判定する、図6に示すような空域判定処理を、飛行処理と並列的に実行し始める(ステップS05)。このため、飛行処理の説明を中断して、空域判定処理の説明を先に行う。
【0054】
空域判定処理の実行を開始すると、飛行体100のCPU191は、飛行体100が飛行する空域が短視程空域であるか、視程が予め定められた第1視程距離以上の非短視程空域であるかを表す短視程フラグの値を、非短視程空域であることを表す値「false」に初期化する(ステップS21)。
【0055】
次に、飛行体100のCPU191は、高度センサ132aから出力される高度情報を取得する。また、CPU191は、駆動回路199から出力される信号に基づいて、プロペラ111から114の単位時間当たりの回転数を表す回転数情報を取得する。その後、CPU191は、例えば、OS(Operating System)からシステム時刻を取得する。次に、CPU191は、システム時刻を表す情報を、高度情報及び回転数情報が取得された時刻を表す時刻情報として、高度情報及び回転数情報に対応付けてフラッシュメモリ193bに保存する(ステップS22)。
【0056】
次に、飛行体100のCPU191は、イメージセンサ131aから出力される画像情報と、風向風速センサ131bから出力される風向風速情報と、を、センシング情報として取得する(ステップS23)。また、CPU191は、位置センサ196から出力される位置情報を、センシング情報が得られた点の位置を表す情報として取得する。さらに、CPU191は、例えば、OSからシステム時刻を取得し、取得されたシステム時刻を表す情報を、センシング情報と位置情報とが取得された時刻を表す時刻情報とする。
【0057】
次に、飛行体100のCPU191は、方位角センサ197aから出力される方位角情報を取得する。次に、CPU191は、方位角情報で表される方位角θと、位置情報で表される位置と、に基づいて、飛行体100の三次元座標系を、世界座標系に変換する変換行列を算出する。
【0058】
姿勢センサ197bから出力される姿勢情報が変換行列の算出に用いられないのは、本実施例において、飛行体100は、飛行体100の前後方向と水平面とが平行であり、かつ、飛行体100の左右方向と水平面とが平行となるように飛行するためである。しかし、これに限定される訳でなく、姿勢情報が変換行列の算出に用いられても良い。
【0059】
また、本実施例において、世界座標系は、東経が「0」度であり、北緯が「0」度であり、かつ、GPS高度が「0」メートルの点を原点とし、東を正の方向とするXw軸と、基準の方位である北を正の方向とするYw軸と、鉛直上を正の方向とするZw軸と、を有するが、これに限定される訳では無い。
【0060】
その後、飛行体100のCPU191は、算出された変換行列を用いて、風向風速情報で表される速度であり、かつ、飛行体100の三次元座標系における対飛行体速度WVaax、WVaay、及び、WVaazを、世界座標系における対飛行体速度WVwax、WVway、及び、WVwazに変換する。
【0061】
次に、飛行体100のCPU191は、飛行体100の対地速度を算出するため、単位時間だけスリープした後に、位置センサ196から位置情報を再度取得する。次に、飛行体100のCPU191は、スリープ前に取得された位置情報と、スリープ後に取得された位置情報と、単位時間と、に基づいて、世界座標系のXw軸方向における飛行体100の対地速度AVwgx、Yw軸方向における対地速度AVwgy、及び、Zw軸方向における対地速度AVwgzを算出する。
【0062】
次に、飛行体100のCPU191は、世界座標系における風の対飛行体速度WVwax、WVway、及び、WVwazに、世界座標系における飛行体100の対地速度AVwgx、AVwgy、及び、AVwgzをそれぞれ加算する。これにより、CPU191は、飛行体100の位置で吹く風の世界座標系における対地速度WVwgx、WVwgy、及び、WVwgzを算出する。
【0063】
その後、飛行体100のCPU191は、スリープ前に取得された位置情報と、当該位置で得られたセンシング情報と、センシングが行われた方向を表すセンシング方向情報と、当該センシング情報が取得された時刻を表す時刻情報と、を対応付けることで、飛行体100の飛行位置に関する飛行位置関連情報を生成する。
【0064】
飛行位置関連情報に含まれるセンシング情報は、当該時刻に当該位置でイメージセンサ131aの撮像により得られた画像情報と、当該時刻に当該位置で吹いていた風の風向及び風速を、世界座標系における対地速度WVwgx、WVwgy、及び、WVwgzで表す対地風向風速情報と、を含む。
【0065】
また、飛行位置関連情報に含まれるセンシング方向情報は、当該時刻におけるイメージセンサ131aの撮像方向を表す情報である。イメージセンサ131aの光軸は、飛行体100の前方向と平行となるように調整されているため、イメージセンサ131aの撮像方向は、飛行体100の前方向と基準の方位とがなす方位角θで表される。このため、センシング方向情報は、方位角センサ197aから出力された方位角情報を含む。
【0066】
センシング方向情報が、姿勢センサ197bから出力された姿勢情報を含まないのは、本実施例において、飛行体100は、飛行体100の前後方向と水平面とが平行であり、かつ、飛行体100の左右方向と水平面とが平行となるように飛行するためである。しかし、これに限定される訳でなく、センシング方向情報が姿勢情報をさらに含んでも良い。
【0067】
飛行位置関連情報が生成された後、飛行体100のCPU191は、飛行体100を識別する機体ID「100」をフラッシュメモリ193bから取得し、取得された機体ID「100」と、飛行位置関連情報と、を、制御装置500を宛先として、データ通信回路194aへ出力する(ステップS24)。
【0068】
次に、飛行体100のCPU191は、濃霧の短視程空域に対応する画素のR値の範囲、G値の範囲、及び、B値の範囲を表す情報をフラッシュメモリ193bから取得する。本実施例では、濃霧の短視程空域に対応する画素は、白色の画素であるため、当該画素のR値の範囲、G値の範囲、及び、B値の範囲は、それぞれ「245」から「255」に予め定められているが、これに限定される訳では無い。濃霧の短視程空域に対応する画素のR値の範囲、G値の範囲、及び、B値の範囲の好適な範囲は、当業者が実験により定めることができる。
【0069】
その後、飛行体100のCPU191は、ステップS23で取得されたセンシング情報によって表される画像から、取得された情報で表されるR値の範囲にR値が含まれ、G値の範囲にG値が含まれ、かつ、B値の範囲にB値が含まれる白色の画素の検出を試行する。このとき、CPU191は、白色の画素が検出されないと、飛行体100が濃霧の短視程空域ではなく、非短視程空域を飛行していると判定する(ステップS25;No)。
【0070】
これに対して、飛行体100のCPU191は、白色の画素が検出されると、予め定められた白色割合を表す情報をフラッシュメモリ193bから読み出す。次に、CPU191は、センシング情報で表される画像の画素数に占める白色の画素数の割合を算出し、算出された割合が予め定められた白色割合よりも小さいと、飛行体100が非短視程空域を飛行していると判定する(ステップS25;No)。
【0071】
非短視程空域を飛行していると判定されると、飛行体100のCPU191は、短視程フラグの値が、非短視程空域を表す値「false」であるか否かを判定する(ステップS26)。このとき、CPU191は、短視程フラグの値が値「false」であると判定すると(ステップS26;Yes)、非短視程空域を飛行し続けているのであり、非短視程空域へ短視程空域から出域したのでないと判定する。
【0072】
その後、飛行体100のCPU191は、ステップS25の処理で、白色の画素が検出されていると、センシング情報で表される画像に、白色の画素が予め定められた数よりも多く連続している白色の画像領域が存在するか否かを判定する。このとき、CPU191は、白色の画像領域が存在すると判定すると、当該白色の画像領域を、濃霧の短視程空域に対応する短視程画像領域として検出する。次に、CPU191は、飛行体100の進行方向にある空域から短視程空域が検出されたと判定し(ステップS27;Yes)、短視程空域が検出されたことを告げる検出報告を生成する。
【0073】
その後、飛行体100のCPU191は、ステップS23でスリープ前に取得された位置情報を、短視程空域が検出された、図7に示すような点(以下、第1点という)P1を表す第1位置情報として検出報告に追加する。次に、CPU191は、第1位置情報を含む検出報告を、制御装置500を宛先としてデータ通信回路194aへ出力した後に(ステップS28)、ステップS22から上記処理を繰り返す。
【0074】
これに対して、ステップS25の処理で、白色の画素が検出されなかった場合、又は、白色の画像領域が存在しないと判定された場合に、短視程空域が検出されなかったと判定し(ステップS27;No)、飛行体100のCPU191は、ステップS22から上記処理を繰り返す。
【0075】
ステップS25において、白色の画素数の割合が予め定められた白色割合以上であると、飛行体100のCPU191は、飛行体100が濃霧の短視程空域を飛行していると判定する(ステップS25;Yes)。次に、CPU191は、短視程フラグの値が、非短視程空域を表す値「false」であるか否かを判定する(ステップS29)。このとき、CPU191は、短視程フラグの値が値「false」であると判定すると、非短視程空域から短視程空域へ入域したと判定し、飛行体100が短視程空域へ入域したことを告げる入域報告を生成する。
【0076】
その後、飛行体100のCPU191は、ステップS23でスリープする前に取得された位置情報を、短視程空域への入域が判定された、図7に示すような点(以下、第2点という)P2を表す第2位置情報として入域報告に追加する。次に、CPU191は、第2位置情報を含む入域報告を、制御装置500を宛先としてデータ通信回路194aへ出力する(ステップS30)。次に、CPU191は、短視程フラグの値を、短視程空域を表す「true」に変更した後に(ステップS31)、ステップS22から上記処理を繰り返す。
【0077】
ステップS29において、短視程フラグの値が値「false」でなく「true」であると判定すると(ステップS29;No)、飛行体100のCPU191は、短視程空域の飛行を継続していると判定する。次に、CPU191は、LiDARセンサ132bから出力される座標情報を取得する(ステップS32)。高度情報が取得されないのは、ステップS22で取得されているためである。
【0078】
次に、飛行体100のCPU191は、第2センサ132である高度センサ132aの高度情報が、高度センサ132aについて予め定められた異常条件(以下、高度センサ132aの異常条件という)を満足するか否かを判定する。
【0079】
本実施例において、高度センサ132aの異常条件は、予め定められた時間において、プロペラ111から114の単位時間当たりの回転数が予め定められた第1回転数以上であり、かつ、高度情報で表される対地高度が、予め定められた高度未満しか変化しない、又は、変化しないという第1条件を含む。本実施例では、第1回転数は、プロペラ111から114が生じさせる揚力が、物品を格納した飛行体100を上昇させるのに必要な回転数の最小値よりも多い値に予め設定されている。しかし、これに限定される訳では無く、第1回転数の好適な値は、当業者が実験で定めることができる。
【0080】
また、本実施例において、高度センサ132aの異常条件は、予め定められた時間において、プロペラ111から114の単位時間当たりの回転数が予め定められた第2回転数以下であり、かつ、高度情報で表される対地高度が、予め定められた高度未満しか変化しない、又は、変化しないという第2条件を含む。本実施例では、第2回転数は、プロペラ111から114が生じさせる揚力が、物品を格納した飛行体100の高度を維持するのに必要な回転数の最小値よりも少ない値に予め設定されている。しかし、これに限定される訳では無く、第2回転数の好適な値は、当業者が実験で定めることができる。
【0081】
さらに、本実施例において、高度センサ132aの異常条件は、予め定められた時間において、プロペラ111から114の単位時間当たりの回転数が第2回転数よりも多く、かつ、第1回転数よりも少なく、高度情報で表される対地高度が、予め定められた高度以上変化するという第3条件を含む。
【0082】
高度センサ132aの異常条件を満足する高度情報は、例えば、飛行体100と地表面との間を浮遊する水滴が、高度センサ132aから照射されたレーザ光を反射する確率が予め定められた第1確率よりも高くなった場合に、高度センサ132aから出力される。このため、高度センサ132aの異常条件が満足される場合、高度情報で表される対地高度は、飛行体100の実際の対地高度と、高度センサ132aの誤差よりも大きく相違する。
【0083】
ここで、短視程空域を浮遊する水滴がレーザ光を反射する確率は、例えば、短視程空域の視程が短くなる程高くなる。このため、高度センサ132aの異常条件を満足する高度情報は、例えば、短視程空域の視程が、第1視程距離よりも予め短く定められた第2視程距離よりも短くなった場合に出力される。また、短視程空域の視程は、例えば、短視程空域を浮遊する水滴の大きさが大きくなる程高くなり、水滴の数が多くなる程高くなる。このため、高度センサ132aの異常条件を満足する高度情報は、例えば、短視程空域を浮遊する水滴の大きさの平均値が予め定められた第1の大きさよりも大きくなった場合、又は、短視程空域を浮遊する水滴の数が予め定められた第1の数よりも多くなった場合に出力される。
【0084】
飛行体100のCPU191は、高度センサ132aの異常条件が満足されているか否かを判定するため、OSからシステム時刻を取得する。次に、CPU191は、取得されたシステム時刻以前、かつ、システム時刻よりも予め定められた時間だけ前の時刻以降の時刻を表す時刻情報に対応付けられた高度情報と回転数情報とを、フラッシュメモリ193bから複数取得する。
【0085】
その後、飛行体100のCPU191は、取得された複数の高度情報でそれぞれ表される対地高度と、複数の回転数情報でそれぞれ表されるプロペラ111から114の単位時間当たりの回転数が、第1条件、第2条件、及び、第3条件のいずれか1つを満足させるか、いずれも満足させないかを判定する。このとき、CPU191は、第1条件、第2条件、及び、第3条件のいずれか1つが満足されると判定すると、高度センサ132aの異常条件が満足されると判定する。これに対して、飛行体100のCPU191は、第1条件、第2条件、及び、第3条件のいずれも満足されないと判定すると、高度センサ132aの異常条件が満足されないと判定する。
【0086】
次に、飛行体100のCPU191は、第2センサ132であるLiDARセンサ132bの座標情報が、LiDARセンサ132bについて予め定められた異常条件(以下、LiDARセンサ132bの異常条件という)を満足するか否かを判定する。
【0087】
本実施例において、LiDARセンサ132bの異常条件は、座標情報によって表される複数の反射点のいずれか1つ以上に飛行体100が接触しなければ、飛行体100の現在の位置から予め定められた最低移動距離だけ飛行体100が遠ざかることができない位置に、当該複数の反射点があるという条件である。すなわち、飛行体100の現在の位置から最低移動距離よりも短い距離しか離れていない複数の反射点によって飛行体100が囲まれているという条件である。本実施例では、最低移動距離は、「1」メートルであるが、これに限定される訳では無く、「1」メートルよりも長くても短くても良い。また、最低移動距離の好適な値は、当業者が実験により定めることができる。
【0088】
LiDARセンサ132bの異常条件を満足する座標情報は、例えば、飛行体100から最低移動距離よりも短い距離しか離れていない水滴が、LiDARセンサ132bから照射されたレーザ光を反射する確率が予め定められた第2確率よりも高くなった場合にLiDARセンサ132bから出力される。水滴は障害物では無いため、LiDARセンサ132bの異常条件が満足される場合、LiDARセンサ132bから出力される座標情報に基づいた障害物の検出が不能になる。
【0089】
LiDARセンサ132bの異常条件を満足する座標情報は、例えば、短視程空域の視程が、第1視程距離よりも予め短く定められた第3視程距離よりも短くなった場合に出力される。また、LiDARセンサ132bの異常条件を満足する座標情報は、例えば、短視程空域を浮遊する水滴の大きさの平均値が予め定められた第2の大きさよりも大きくなった場合、又は、短視程空域を浮遊する水滴の数が予め定められた第2の数よりも多くなった場合に、出力される。
【0090】
飛行体100のCPU191は、LiDARセンサ132bの異常条件が満足されているか否かを判定するため、例えば、LiDARセンサ132bから出力された座標情報によって表される複数の反射点と、飛行体100と、の距離の平均値と分散値とを算出する。次に、CPU191は、算出された平均値が最低移動距離以下であり、かつ、算出された分散値が予め定められた分散値の閾値以下であると、LiDARセンサ132bの異常条件が満足されたと判定する。このように判定されるのは、短視程空域では、通常、一様の濃度で水滴が浮遊しているため、飛行体100から最低移動距離よりも短い距離しか離れていない水滴がレーザ光を反射する確率が第2確率よりも高くなれば、反射点と飛行体100との距離の平均値は最低移動距離以下となり、かつ、分散値は予め定められた閾値以下となるためである。尚、分散値の閾値の好適な値は、当業者が実験により定めることができる。
【0091】
飛行体100のCPU191は、高度センサ132aの異常条件が満足されたと判定された第1の場合、若しくは、LiDARセンサ132bの異常条件が満足されたと判定された第2の場合、又は、第1の場合、かつ、第2の場合に(ステップS33;Yes)、異常条件が満足されたことを告げる異常報告を生成する。
【0092】
次に、飛行体100のCPU191は、高度センサ132aの異常条件が満足されたと判定され、かつ、LiDARセンサ132bの異常条件が満足されたと判定された場合に、高度センサ132aを識別するセンサIDと、LiDARセンサ132bのセンサIDと、を異常報告に追加する。これに対して、高度センサ132aの異常条件が満足されたと判定されたが、CPU191は、LiDARセンサ132bの異常条件が満足されたと判定されていない場合に、高度センサ132aのセンサIDを異常報告に追加するが、LiDARセンサ132bのセンサIDを追加しない。また、これに対して、CPU191は、高度センサ132aの異常条件が満足されたと判定されていないが、LiDARセンサ132bの異常条件が満足されたと判定された場合に、LiDARセンサ132bのセンサIDを異常報告に追加するが、高度センサ132aのセンサIDを追加しない。
【0093】
その後、飛行体100のCPU191は、ステップS23で取得された位置情報を、異常条件が満足されたと判定された、図7に示すような点(以下、第3点P3という)を表す第3位置情報として異常報告に追加する。次に、CPU191は、センサID及び第3位置情報を含む異常報告を、制御装置500を宛先としてデータ通信回路194aへ出力した後に(ステップS34)、ステップS22から上記処理を繰り返す。
【0094】
ステップS33において、飛行体100のCPU191は、高度センサ132aの異常条件が満足されたと判定されず、かつ、LiDARセンサ132bの異常条件が満足されたと判定されない場合に(ステップS33;No)、ステップS22から上記処理を繰り返す。
【0095】
ステップS25で、非短視程空気を飛行していると判定された後に(ステップS25;No)、飛行体100のCPU191は、短視程フラグの値が、非短視程空域を表す値「false」でなく、短視程空域を表す値「true」であると判定すると(ステップS26;No)、非短視程空域へ短視程空域から出域したと判定する。その後、CPU191は、短視程空域から出域したことを告げる出域報告を、制御装置500を宛先としてデータ通信回路194aへ出力する(ステップS35)。次に、CPU191は、短視程フラグの値を、非短視程空域を表す値「false」に変更してから(ステップS36)、ステップS22から上記処理を繰り返す。このようにして、CPU191は、図4及び図5の飛行処理を実行するスレッドと異なるスレッドで、空域判定処理の実行を継続する。
【0096】
次に、中断していた飛行処理の説明を再開する。図4のステップS05で、空域判定処理の並列的な実行を開始した後(ステップS05)、飛行体100のCPU191は、飛行体100の位置を緯度、経度、及び、GPS高度で表す位置情報を、位置センサ196から取得する(ステップS06)。その後、飛行体100のCPU191は、ルート情報に基づいて、1又は複数の未到着の到着点の内で最も到着順序の早い通過点(以下、次の到着点という)の緯度、経度、及び、GPS高度を特定する。
【0097】
次に、飛行体100のCPU191は、高度変更フラグの値が、高度の変更が許可されていることを表す値「true」であるか否かを判定する(ステップS07)。このとき、CPU191は、高度変更フラグの値が値「true」であると判定すると、飛行体100の緯度、経度、及び、GPS高度と、次の到着点の緯度、経度、及び、GPS高度と、に基づいて、飛行体100から次の到着点までの距離を縮小させる飛行を、必要に応じて高度を変更させながら行うための制御信号を生成する。その後、CPU191は、生成された制御信号を駆動回路199へ出力することで(ステップS08)、必要に応じて対地高度を変更させながら飛行ルートを飛行体100に順行飛行させる。
【0098】
また、飛行体100のCPU191は、高度センサ132aから出力される高度情報が、飛行許可空域の対地高度の範囲に含まれる対地高度を表す情報となるように、プロペラ111から114の単位時間当たりの回転数を変化させるための制御信号を生成する。さらに、飛行体100のCPU191は、LiDARセンサ132bから出力される座標情報に基づいて、障害物を回避して飛行するための制御信号を生成する。その後、CPU191は、生成された制御信号を駆動回路199へ出力する。
【0099】
またさらに、飛行体100のCPU191は、位置情報で表される飛行体100の緯度、経度、及び、GPS高度と、次の到着点の緯度、経度、及び、GPS高度と、に基づいて、飛行体100の位置から次の到着点へ向かう方向を表す方程式を算出する。その後、飛行体100のCPU191は、算出された方程式に基づいて、飛行体100から次の到着点へ向かう方向と、基準の方位と、がなす方位角θ’を、基準の方位から反時計回りに算出する。次に、飛行体100のCPU191は、方位角センサ197aから出力される方位角情報によって表される方位角θと、算出された方位角θ’と、を一致させるための制御信号を生成する。その後、CPU191は、生成された制御信号を駆動回路199へ出力することで、飛行体100の前方向、及び、イメージセンサ131aの撮像方向を、飛行体100の進行方向と一致させる。
【0100】
また、飛行体100のCPU191は、姿勢センサ197bから出力される姿勢情報によって表される俯角φf及びφrを角度「0」度とするための制御信号を生成し、生成された制御信号を駆動回路199へ出力する。これにより、CPU191は、飛行体100の制御装置190の上面及び底面を水平面と平行に維持する。
【0101】
次に、飛行体100のCPU191は、未到着の到着点が存在するか否かに基づいて、飛行体100が移動先である物品の運搬先に到着したか否かを判定する(ステップS09)。このとき、CPU191は、未到着の到着点が存在するため、飛行体100が移動先に到着していないと判定すると(ステップS09;No)、データ通信回路194aが制御装置500からルート変更命令を受信しているか否かを判定する(ステップS10)。
【0102】
ルート変更命令は、飛行体100が飛行する飛行ルートを、ルート変更命令に含まれるルート情報で表される代替ルートに変更することを命じる命令である。本実施例では、ルート変更命令は、飛行体100が短視程空域を飛行する間に、第2センサ132の異常条件が満足され、かつ、短視程ルートの飛行継続が不能と判定された場合、又は、補助者によって飛行体100の高度の異常が視認された場合に、制御装置500から飛行体100に送信される。
【0103】
本実施例では、補助者によって視認される飛行体100の高度の異常は、例えば、飛行許可空域の上方に位置する飛行禁止空域を飛行体100が飛行することを含むが、これに限定される訳では無い。飛行体100の高度の異常は、例えば、飛行許可空域の下方に位置する飛行禁止空域を飛行体100が飛行することを含んでも良い。
【0104】
飛行体100のCPU191は、データ通信回路194aからのルート変更命令の取得を試行し、ルート変更命令が取得されない場合に、ルート変更命令が受信されていないと判定する(ステップS10;No)。その後、CPU191は、飛行ルートの飛行を継続するために、ステップS06から上記の処理を繰り返す。
【0105】
これに対して、飛行体100のCPU191は、データ通信回路194aからのルート変更命令が取得される場合に、ルート変更命令が受信されていると判定する(ステップS10;Yes)。次に、CPU191は、ルート変更命令からルート情報を取得し(ステップS11)、取得されたルート情報で表される代替ルートRDに飛行ルートを変更する。
【0106】
その後、飛行体100のCPU191は、高度変更許可及び高度の変更を制限する高度変更制限の取得を試行する。このとき、CPU191は、高度変更許可が取得されるが、高度変更制限が取得されない場合に(ステップS12;Yes)、高度変更許可フラグの値を、高度の変更が許可されていることを表す値「true」に変更する(ステップS13)。その後、CPU191は、変更後の飛行ルートを、必要に応じて高度を変更しながら飛行するため、ステップS06から上記の処理を繰り返す。
【0107】
これに対して、飛行体100のCPU191は、高度変更許可が取得されないが、高度変更制限が取得される場合に(ステップS12;No)、高度変更許可フラグの値を、高度の変更が制限されていることを表す値「false」に変更する(ステップS14)。その後、CPU191は、変更後の飛行ルートを、高度の変更を制限しながら飛行するため、ステップS06から上記の処理を繰り返す。
【0108】
ステップS07において高度変更許可フラグの値が、高度の変更が制限されていることを表す値「false」であると判定すると(ステップS07;No)、飛行体100のCPU191は、図6の空域判定処理で更新された短視程フラグの値が、短視程空域であることを表す値「true」であるか否かを判定する(ステップS15)。
【0109】
このとき、飛行体100のCPU191は、短視程フラグの値が値「true」でなく、非短視程空域であることを表す値「false」であると判定すると(ステップS15;No)、第2センサ132の異常条件が満足されなくなるため、高度の変更を制限する必要が無くなると判定する。このため、CPU191は、高度変更許可フラグの値を、高度の変更が許可されていることを表す値「true」に変更する(ステップS16)。その後、CPU191は、変更後の飛行ルートを、必要に応じて高度を変更しながら飛行するため、ステップS08から上記の処理を繰り返す。
【0110】
これに対して、飛行体100のCPU191は、短視程フラグの値が短視程空域であることを表す値「true」であると判定すると(ステップS15;Yes)、プロペラ111から114の単位時間当たりの回転数を変更せず維持させながら飛行ルートを飛行体100に順行飛行させるための制御信号を駆動回路199へ出力する(ステップS17)。プロペラ111から114の単位時間当たりの回転数を維持するのは、地表面が平坦であり、かつ、回転数の維持によって維持される飛行体100の揚力と、飛行体100に作用する重力と、が釣り合っていれば、飛行体100の対地高度を維持できるためである。
【0111】
このとき、飛行体100のCPU191は、ステップS08の処理と同様に、制御装置190の上面及び底面を水平面と平行に維持した状態で、飛行体100を飛行させる。また、CPU191は、飛行体100の前方向が、飛行体100の進行方向と一致し、かつ、イメージセンサ131aの撮像方向が、飛行体100の進行方向と一致した状態で、飛行体100を飛行させる。その後、CPU191は、移動先に到着したか否かを判定する図5のステップS09から上記処理を繰り返す。
【0112】
ステップS09において、飛行体100のCPU191は、未到着の到着点が存在しないため、飛行体100が移動先に到着したと判定すると(ステップS09;Yes)、飛行体100を着陸させるための制御信号を駆動回路199へ出力する(ステップS18)。次に、飛行体100のCPU191は、移動先に到着したことを告げる到着報告を、制御装置500を宛先としてデータ通信回路194aに出力し(ステップS19)、データ通信回路194aは、到着報告を制御装置500へ送信する。
【0113】
次に、飛行体100のCPU191は、図6の空域判定処理を実行するスレッドを終了してから(ステップS20)、飛行処理の実行を終了する。
【0114】
運搬先に居る受取人は、飛行体100の第1囲持枠121aと第2囲持枠121bとに物品を開放させるための操作を、飛行体100の入力装置195cに行う。入力装置195cが当該操作に応じた信号を出力すると、CPU191は、第1囲持枠121aと第2囲持枠121bとを互いに遠ざかる方向に移動させる制御信号を駆動回路199へ出力することで、飛行体100に物品を開放させる。
【0115】
受取人は、開放された物品を受け取ると、飛行体100を帰還させるための操作を、飛行体100の入力装置195cに行う。入力装置195cが当該操作に応じた信号を出力すると、CPU191は、物品の受渡が行われたことを告げる受渡報告を、制御装置500を宛先としてデータ通信回路194aに出力する。
【0116】
制御装置500は、受渡報告を飛行体100から受信すると、運搬先から営業所に到る帰還ルートを設定し、設定された帰還ルートの飛行を命じる飛行命令を飛行体100へ送信する。飛行体100は、飛行命令を受信すると、飛行命令に従って営業所まで帰還するために、図4及び図5に示した飛行処理の実行を行う。
【0117】
飛行体200の構成及び機能は、飛行体100の構成及び機能と同様である。
【0118】
制御装置500は、サーバ機であり、物品の運搬を行う運搬業者の営業所、又は、オフィスビルに設置されている。制御装置500は、ハードウェアである、図8に示すようなCPU501、RAM502、ROM503a、ハードディスク503b、データ通信回路504a、ビデオカード505a、表示装置505b、入力装置505c、スピーカ509a、及び、マイクロフォン509bを備える。本実施例では、制御装置500は、1つのCPU501を備えるが、複数のCPUを備えても良い。また、制御装置500は、複数のRAM及びフラッシュメモリを備えても良い。
【0119】
制御装置500が備えるCPU501、RAM502、ROM503a、データ通信回路504a、ビデオカード505a、及び、表示装置505bの構成及び機能は、図3に示した飛行体100が備えるCPU191、RAM192、ROM193a、データ通信回路194a、ビデオカード195a、及び、表示装置195bの構成及び機能と同様である。
【0120】
制御装置500のハードディスク503bは、各種のプログラムと、各種のプログラムの実行に用いられる各種のデータ及びデータが保存されたテーブルと、を記憶している。制御装置500は、ハードディスク503bの代わりに、フラッシュメモリを備えても良い。
【0121】
制御装置500のデータ通信回路504aの構成は、飛行体100のデータ通信回路194aの構成と同様である。制御装置500のデータ通信回路504aの機能は、飛行体100及び200、並びに、端末装置900とデータ通信を行う点を除き、飛行体100のデータ通信回路194aの機能と同様である。
【0122】
制御装置500の入力装置505cは、キーボード、マウス、タッチパッド、及び、ボタンのいずれか1つ以上であり、運搬業者の従業員の操作に応じた信号を入力する。
【0123】
制御装置500のスピーカ509aは、CPU501が出力する信号に従って音声を出力し、マイクロフォン509bは周囲の音声を表す信号を入力する。
【0124】
運搬業者の従業員によって物品の運搬先の住所と、物品を格納させた飛行体100の機体ID「100」と、を入力するための操作が行われると、制御装置500の入力装置505cは、当該操作に応じた信号を出力する。制御装置500のCPU501は、当該信号が出力されると、運搬先まで飛行体100を飛行させるために、図9に示すような飛行制御処理を実行する。
【0125】
これにより、制御装置500のCPU501は、短視程空域が検出された第1点P1を表す第1位置情報と、短視程空域に入域したと判定された第2点P2を表す第2位置情報と、を取得する取得部510として機能する。また、CPU501は、第1点P1の位置と、第2点P2の位置と、飛行体100の第1センサ131が第1点P1でセンシングすることで得られたセンシング情報と、に基づいて、短視程空域の大きさを推定する推定部520として機能する。
【0126】
さらに、CPU501は、推定された短視程空域の大きさと、第1点P1で得られたセンシング情報と、に基づいて、短視程空域よりも安全性が高い安全空域を設定する設定部530として機能する。また、CPU501は、飛行体100に搭載された第2センサ132から出力される情報に基づいて、短視程ルートの飛行継続が不能と判定されると、設定された安全空域へ飛行体100を移動させる制御を行う制御部540として機能する。
【0127】
制御装置500のハードディスク503bは、飛行制御処理に用いられる情報が保存される情報記憶部590として機能する。情報記憶部590は、安全空域に関する情報が保存される、図11に示すような安全空域テーブルを予め記憶している。安全空域テーブルには、安全空域に設定された優先順位を表す情報と、安全空域に含まれる点の位置を表す緯度、経度、及び、GPS高度の最小値及び最大値を表す位置情報と、が対応付けられて保存される。
【0128】
また、情報記憶部590は、予め定められた空域における障害物の確認結果を表す確認結果情報が保存されている、図12に示すような確認結果テーブルを予め記憶している。確認結果テーブルには、複数のレコードが保存されている。また、各レコードには、運搬業者が物品の運搬を行う地域の上空に位置する空域を、1辺が予め定められた大きさの複数の立方空域に分割することで生じた複数の立方空域の1つの位置を表す位置情報と、当該立方空域における障害物の確認結果を表す確認結果情報と、が対応付けられて保存されている。
【0129】
本実施例において、立方空域の位置情報は、当該立方空域に含まれる点の位置を表す緯度、経度、及び、GPS高度の最小値及び最大値を表す情報である。また、確認結果情報は、立方空域に障害物が存在することが確認されていることを表す存在確認情報、立方空域に障害物が存在しないことが確認されていることを表す不存在確認情報、及び、立方空域に障害物が存在すること及び存在しないことが確認されていないことを表す未確認情報を含む。
【0130】
また、本実施例において、確認結果テーブルに保存された確認結果情報は、例えば、午前2時といった予め定められた時刻に、制御装置500のCPU501が、不図示の空域確認処理を実行することで更新される。しかし、これに限定される訳では無く、確認結果情報は、例えば、1時間といった予め定められた時間間隔で更新されても良い。
【0131】
図9の飛行制御処理の実行を開始すると、制御装置500のCPU501は、最初のステップであるステップS41の処理を実行する前に、飛行制御処理を実行するスレッドと異なるスレッドを2つ生成する。次に、CPU501は、生成されたスレッドの一方で、不図示の情報保存処理を、飛行制御処理と並列的に実行する。情報保存処理は、図6のステップS24で出力された機体IDと、当該機体IDで識別される飛行体100又は200の飛行位置関連情報とを、情報記憶部590が予め記憶する、図13に示すような飛行位置関連テーブルに保存する処理である。
【0132】
また、他方のスレッドで、制御装置500のCPU501は、補助者によって携帯される端末装置900と音声通信を行うための不図示の音声通信処理を実行する。その後、CPU501は、飛行制御処理の終了直前に、情報保存処理を実行するスレッドと、音声通信処理を実行するスレッドと、を終了する。
【0133】
飛行位置関連テーブルには、飛行体100又は200の機体ID「100」又は「200」と、飛行体100又は200の飛行位置関連情報と、が保存された1又は複数のレコードが保存される。飛行位置関連情報には、時刻情報と、位置情報と、当該時刻情報で表される時刻に、当該位置情報で表される位置で得られたセンシング情報と、当該時刻におけるイメージセンサ131aのセンシング方向を表すセンシング方向情報と、を含む。飛行位置関連情報に含まれる位置情報は、当該時刻における飛行体100の飛行位置を緯度、経度、及び、GPS高度で表す情報である。また、飛行位置関連情報に含まれるセンシング情報は、当該時刻に当該位置で吹いていた風の風向及び風速を、世界座標系が有するXw軸方向の対地速度、Yw軸方向の対地速度、及び、Zw軸方向の対地速度で表す対地風向風速情報を含む。さらに、飛行位置関連情報に含まれるセンシング情報は、当該時刻に当該位置で行われた撮像によりイメージセンサ131aで得られた画像情報を含む。
【0134】
不図示の情報保存処理の実行が開始されると、制御装置500の取得部510は、データ通信回路504aが機体IDと飛行位置関連情報とを受信するまでスリープする処理を実行する。機体IDと飛行位置関連情報とが受信されると、取得部510は、データ通信回路504aからこれらの情報を取得し、制御部540は、取得されたこれらの情報が保存されたレコードを、飛行関連テーブルに追加する。その後、制御装置500は、機体IDと飛行位置関連情報とが受信されるまでスリープする処理から上記処理を繰り返す。
【0135】
不図示の音声通信処理の実行が開始されると、制御装置500の取得部510は、補助者が携帯する端末装置900から送信された音声情報をデータ通信回路504aから取得する処理を実行する。次に、制御部540は、取得された音声情報に基づいて補助者の音声を表す信号をスピーカ509aに出力する。制御装置500のスピーカ509aは、出力された信号に従って音声を出力し、制御装置500を操作する従業員は、出力された音声を確認する。
【0136】
また、制御装置500の取得部510は、マイクロフォン509bから出力される信号に基づいて、従業員の音声を表す音声情報を生成し、生成された音声情報を、端末装置900を宛先としてデータ通信回路504aへ出力する。制御装置500から音声情報を受信した端末装置900は、音声情報に基づいて音声を出力し、端末装置900を携帯する補助者は、出力された音声を確認する。
【0137】
次に、制御装置500の取得部510は、図13の飛行位置関連テーブルにおいて、飛行体100の機体ID「100」と対応付けられた1又は複数の時刻情報の内で最も遅い時刻を表す時刻情報を特定する。次に、取得部510は、特定された時刻情報と対応付けられた画像情報を取得し、制御部540は、取得された画像情報に基づく信号をビデオカード505aへ出力する。ビデオカード505aは、制御部540から出力された信号に基づいて画像信号を出力し、表示装置505bは、画像信号に従って画像を表示する。
【0138】
従業員は、スピーカ509aから出力される音声、又は、表示装置505bに表示される画像に基づいて、飛行体100の高度の異常を確認すると、飛行体100の高度を低下又は上昇をさせるための操作を制御装置500の入力装置505cに行う。
【0139】
制御装置500の入力装置505cが当該操作に応じた信号を入力すると、制御装置500の制御部540は、飛行体100の飛行位置のGPS高度よりも低い又は高いGPS高度の代替ルートを表す情報を生成する。次に、制御部540は、生成された代替ルートを表す情報を含み、飛行体100の飛行ルートを当該代替ルートに変更することを命じるルート変更命令と高度変更許可とを、飛行体100を宛先としてデータ通信回路504aへ出力する。その後、制御装置500は、音声情報を取得する処理から上記処理を繰り返す。
【0140】
飛行体100は、ルート変更命令を受信すると、ルート変更命令に従って飛行ルートを代替ルートに変更してから、自律的に、高度を低下又は上昇させて代替ルートを飛行する。
【0141】
これに対して、従業員は、飛行体100の飛行高度に異常が無いことを確認すると、高度を変化させるための操作を行わないため、制御装置500は、ルート変更命令を出力せずに、音声情報を取得する処理から上記処理を繰り返す。このため、飛行体100は、自律的に、飛行ルートを飛行し続ける。
【0142】
図9に示す飛行制御処理の実行が開始されると、制御装置500の制御部540は、端末装置900の位置を表す位置情報の送信を求めるリクエストを、端末装置900を宛先としてデータ通信回路504aへ出力する。制御装置500のデータ通信回路504aがリクエストを端末装置900へ送信した後に、端末装置900から位置情報を受信すると、制御装置500の取得部510は、データ通信回路504aから端末装置900の位置情報を取得する。次に、制御部540は、補助者が居る地点であり、かつ、飛行体100の飛行制御が補助される補助点を表すパラメータを、端末装置900の位置を表す位置情報で設定する(ステップS41)。
【0143】
次に、制御装置500の取得部510は、入力装置505cが従業員の操作に応じて出力した信号に基づいて、物品の運搬先の住所を表す情報を取得する。その後、取得部510は、情報記憶部590から、取得された住所を表す情報と予め対応付けて記憶されている緯度、経度、及び、GPS高度を表す情報を取得する。
【0144】
次に、制御装置500の制御部540は、飛行体100の位置を表す位置情報の送信を求めるリクエストを、飛行体100を宛先としてデータ通信回路504aへ出力する。制御装置500のデータ通信回路504aがリクエストを飛行体100へ送信した後に、飛行体100から位置情報を受信すると、制御装置500の取得部510は、データ通信回路504aから飛行体100の位置情報を取得する。
【0145】
その後、制御装置500の制御部540は、例えば、道路、河川、及び、山林の上空といった飛行体100が飛行可能な部分ルートに関する情報が保存されている不図示の部分ルートテーブルを、情報記憶部590から読み出す。部分ルートテーブルには、複数のレコードが予め保存されており、各レコードには、部分ルートであるエッジの始点ノードの緯度、経度、及び、GPS高度と、当該エッジの終点ノードの緯度、経度、及び、GPS高度と、当該エッジの距離を表す情報と、が対応付けられて予め保存されている。
【0146】
次に、制御装置500の制御部540は、飛行体100の位置と、複数のエッジの始点ノード及び終点ノードと、運搬先と、の緯度、経度、及び、GPS高度を用いて、例えば、ダイクストラ法といった経路探索アルゴリズムを実行する。これにより、制御部540は、部分ルートを組み合わせることで、飛行体100の位置から運搬先へ到る最短の全体ルートを決定する。次に、制御部540は、飛行体100に飛行させる運搬ルートを最短の全体ルートに設定し(ステップS42)、設定された運搬ルートを表す情報を含む飛行命令を、飛行体100を宛先としてデータ通信回路504aへ出力する(ステップS43)。
【0147】
次に、制御装置500の取得部510は、飛行命令に従って飛行する飛行体100から短視程空域の検出を告げる検出報告が受信されたか否かを判定する(ステップS44)。このとき、取得部510は、データ通信回路504aからの検出報告の取得を試行し、検出報告が取得されない場合に、検出報告が受信されていないと判定する(ステップS44;No)。次に、取得部510は、飛行体100から到着報告が受信されたか否かを判定する(ステップS45)。このとき、取得部510は、データ通信回路504aからの到着報告の取得を試行し、到着報告が取得されない場合に、到着報告が受信されていないと判定する(ステップS45;No)。その後、制御装置500は、ステップS44から上記処理を繰り返す。
【0148】
ステップS44において、制御装置500の取得部510は、データ通信回路504aから検出報告が取得される場合に、検出報告が受信されたと判定する(ステップS44;Yes)。次に、取得部510は、取得された検出報告から、短視程空域が検出された第1点P1を表す第1位置情報を取得する(ステップS46)。
【0149】
次に、制御装置500の取得部510は、飛行体100から短視程空域への入域を告げる入域報告が受信されたか否かを判定する(ステップS47)。このとき、取得部510は、データ通信回路504aからの入域報告の取得を試行し、入域報告が取得されない場合に、入域報告が受信されていないと判定する(ステップS47;No)。次に、制御装置500は、飛行体100から到着報告が受信されているか否かを判定する(ステップS48)。このとき、制御装置500は、到着報告が受信されてないと判定すると(ステップS48;No)、ステップS47から上記処理を繰り返す。
【0150】
ステップS47において、制御装置500の取得部510は、データ通信回路504aから入域報告が取得される場合に、入域報告が受信されたと判定する(ステップS47;Yes)。次に、取得部510は、取得された入域報告から、飛行体100が短視程空域へ入域したと判定した第2点P2を表す第2位置情報を取得する(ステップS49)。その後、制御装置500は、短視程空域の大きさを推定する、図14に示すような大きさ推定処理を実行する(ステップS50)。
【0151】
大きさ推定処理の実行が開始されると、制御装置500の取得部510は、飛行体100が搭載する第1センサ131によって第1点P1で得られたセンシング情報と、第1点P1における第1センサ131のセンシング方向を表すセンシング方向情報と、を取得する(ステップS61)。このため、取得部510は、図13の飛行位置関連テーブルにおいて、図9のステップS46で取得された第1位置情報と、飛行体100の機体ID「100」と、に対応付けられたセンシング情報と、センシング方向を表すセンシング方向情報と、を取得する。
【0152】
次に、制御装置500の推定部520は、図6のステップS27と同様の処理を実行することで、取得されたセンシング情報によって表される画像から短視程画像領域を検出する。また、推定部520は、当該画像に含まれる画像領域の内で、短視程画像領域と異なる領域を、非短視程空域に対応する非短視程画像領域として検出する。さらに、推定部520は、短視程画像領域と非短視程画像領域との境界の画像領域を、短視程空域と非短視程空域との境界面に対応する境界画像領域として検出する(ステップS62)。
【0153】
次に、本実施例において、制御装置500の推定部520は、短視程空域の形状が直方体形状であり、短視程空域と非短視程空域との境界面の1つは、図7に示すように、イメージセンサ131aの撮像方向に対して垂直であると仮定するが、仮定される短視程空域の形状は、これに限定される訳では無い。
【0154】
その後、制御装置500の推定部520は、第1点P1で得られた画像情報で表される画像の中心点を原点とし、主走査方向を正の方向とするXp軸と、副走査方向を正の方向とするYp軸と、を有する画像座標系を設定する。このように画像座標系を設定すると、飛行体100の前方向と平行となるように調整されたイメージセンサ131aの光軸よりも、飛行体100の前方向に向かってより右側に撮像対象点が位置している程、当該撮像対象点に対応する画素のXp座標値が大きくなる。また、イメージセンサ131aの光軸よりも、より下側に撮像対象点が位置している程、当該撮像対象点に対応する画素のYp座標値が大きくなる。
【0155】
これらのため、制御装置500の推定部520は、境界画像領域に含まれる画素の内で、Xp座標値が最も大きい画素を、短視程空域と非視程空域との境界面上の複数の点の内で、飛行体100の進行方向に向かって最も右側に位置していた、図7に示すような点(以下、右端点という)PErに対応する画素として検出する。同様に、推定部520は、境界画像領域に含まれる画素の内で、Xp座標値が最も小さい画素を、境界面上の複数の点の内で、飛行体100の進行方向に向かって最も左側に位置していた、図7に示すような点(以下、左端点という)PElに対応する画素として検出する。
【0156】
同様に、制御装置500の推定部520は、境界画像領域に含まれる画素の内で、Yp座標値が最も大きい画素、及び、Yp座標値が最も小さい画素を、境界面上の複数の点の内で、飛行体100の進行方向に向かって最も下側に位置していた不図示の点(以下、下端点という)PEb、及び、最も上側に位置していた不図示の点(以下、上端点という)PEtにそれぞれ対応する画素として検出する。
【0157】
その後、制御装置500の取得部510は、情報記憶部590が予め記憶するイメージセンサ131aの焦点距離を表す情報と、イメージセンサ131aが備える受光素子の大きさを表す情報と、を取得する。次に、推定部520は、イメージセンサ131aの焦点距離と、イメージセンサ131aの受光素子の大きさと、右端点PErに対応する画素のXp座標値及びYp座標値と、第1点P1におけるイメージセンサ131aのセンシング方向と、第1点P1の位置と、に基づいて、第1点P1と右端点PErとを通る直線の世界座標系を用いた方程式を算出する。
【0158】
その後、制御装置500の推定部520は、算出された方程式と、センシング方向情報と、を用いて、第1点P1から右端点PErへ向かう方向と、センシング方向である飛行体100の前方向と、がなす角度ψrを算出する。本実施例では、飛行体100は、飛行体100の前方向と飛行体100の進行方向とを一致させながら飛行ルートを飛行する。このため、角度ψrは、飛行体100の進行方向と、第1点P1から右端点PErへ向かう方向と、がなす角度である。
【0159】
制御装置500の推定部520は、同様の情報処理を実行することで、飛行体100の進行方向と、第1点P1から左端点PElへ向かう方向と、がなす角度ψlを算出する。また、推定部520は、同様に、飛行体100の進行方向と、第1点P1から上端点PEtへ向かう方向と、がなす不図示の角度ψtと、飛行体100の進行方向と、第1点P1から下端点PEbへ向かう方向と、がなす不図示の角度ψbと、を算出する(ステップS63)。
【0160】
その後、制御装置500の推定部520は、図9のステップS46で取得された第1位置情報と、ステップS49で取得された第2位置情報と、に基づいて、第1点P1から第2点P2までの水平方向の距離(以下、水平距離という)を算出する。第2点P2は、飛行体100が短視程空域に入域したと判定された点であるから、算出された第1点P1から第2点P2までの水平距離は、第2点P2を飛行体100が飛行した第2時刻における第1点P1から短視程空域までの水平距離L2である(ステップS64)。
【0161】
次に、制御装置500の取得部510は、第1点P1を飛行体100が飛行した第1時刻を特定するため、図13の飛行位置関連テーブルにおいて、図9のステップS46で取得された第1位置情報と、飛行体100の機体ID「100」と、に対応付けられている時刻情報を取得する。同様に、取得部510は、第2点P2を飛行体100が飛行した第2時刻を特定するため、飛行位置関連テーブルにおいて、ステップS49で取得された第2位置情報と機体ID「100」とに対応付けられている時刻情報を取得する。
【0162】
次に、制御装置500の取得部510は、飛行位置関連テーブルにおいて機体ID「100」と対応付けられている1又は複数の時刻情報でそれぞれ表される1又は複数の時刻の内で、第2時刻よりも前の時刻であり、かつ、第2時刻に最も近い時刻を表す時刻情報と、当該時刻情報に対応付けられた対地風向風速情報と、を取得する。これにより、取得部510は、第2時刻の1つ前の時刻と、第2時刻の1つ前の時刻において飛行体100の位置で吹いていた風の対地風向及び対地風速と、を特定する。
【0163】
その後、制御装置500の推定部520は、第2時刻の1つ前の時刻から第2時刻までの間、第2時刻の1つ前の時刻に飛行体100の位置で吹いていた風の風向及び風速と同じ風向及び風速の風が短視程空域でも一様に吹いていたと仮定する。このため、本実施例において、推定部520は、第2時刻の1つ前の時刻から第2時刻までの間における短視程空域の移動方向が当該風向から吹く風の風下に向かう方向と同じ方向であり、かつ、短視程空域の移動速度が当該風速と同じ速度であったと推定する。
【0164】
しかし、これに限定される訳では無く、制御装置500の推定部520は、第2時刻の1つ前の時刻から第2時刻までの間における短視程空域の移動方向が、当該風向から吹く風の風下へ向かう方向と異なる方向であったと、例えば、山、若しくは、丘、又は、谷、若しくは、崖といった短視程空域の風下の地形と、当該風向と、に基づいて推定しても良い。また、制御装置500の推定部520は、第2時刻の1つ前の時刻から第2時刻までの間における短視程空域の移動速度が、当該風速よりも予め定められた速度又は予め定められた割合だけ遅い速度であったと推定しても良い。
【0165】
この推定に基づいて、推定部520は、第2時刻における第1点P1から短視程空域までの水平距離L2と、第2時刻よりも1つ前の時刻における対地風向及び対地風速と、に基づいて、第2時刻よりも1つ前の時刻における第1点P1から短視程空域までの水平距離を推定する。
【0166】
その後、制御装置500の推定部520は、第2時刻よりも1つ前の時刻が第1時刻であると判定すると、推定された水平距離が、第1時刻における飛行体100から短視程空域までの水平距離L1であると特定する(ステップS65)。このような特定が行われるのは、第1時刻において、飛行体100は、第1点P1を飛行していたからである。
【0167】
これに対して、制御装置500の推定部520は、第2時刻よりも1つ前の時刻が第1時刻でないと判定すると、第2時刻よりも1つ前の時刻に注目する。その後、推定部520は、注目された時刻の1つ前の時刻における第1点P1から短視程空域までの水平距離を推定する処理を実行する。次に、推定部520は、注目された時刻よりも1つ前の時刻が第1時刻であると判定すると、推定された水平距離が水平距離L1であると特定する。
【0168】
これに対して、制御装置500の推定部520は、注目された時刻よりも1つ前の時刻が第1時刻でないと判定すると、注目された時刻よりも1つ前の時刻に注目する。その後、推定部520は、注目された時刻の1つ前の時刻における第1点P1から短視程空域までの水平距離を推定する処理から上記処理を繰り返す。
【0169】
第1時刻における飛行体100から短視程空域までの水平距離L1が特定されると、制御装置500の推定部520は、右端点PEr及び左端点PElにそれぞれ対応する2つの画素が画像の中心を挟んで位置するか、当該2つの画素の双方が画像の中心よりも右側又は左側に位置するか、を、当該2つの画素のXp座標値に基づいて判定する。このとき、推定部520は、右端点PEr及び左端点PElにそれぞれ対応する2つの画素が画像の中心を挟んで位置すると判定すると、下記の式(1)を用いて短視程空域の水平方向の大きさWを推定する。これに対して、制御装置500の推定部520は、当該2つの画素の双方が画像の中心よりも右側又は左側に位置すると判定すると、下記の式(2)を用いて短視程空域の水平方向の大きさWを推定する。
【0170】
水平方向の大きさW= L1×tanψl+L1×tanψr・・・(1)
水平方向の大きさW=|L1×tanψl-L1×tanψr|・・・(2)
但し、L1は、第1時刻における飛行体100から短視程空域までの水平距離であり、ψlは、第1点P1から左端点PElへ向かう方向と飛行体100の進行方向と、がなす角度であり、かつ、ψrは、第1点P1から右端点PErへ向かう方向と飛行体100の進行方向とがなす角度である。
【0171】
同様に、制御装置500の推定部520は、飛行体100から短視程空域までの水平距離L1、並びに、第1点P1から上端点PEtへ向かう方向と飛行体100の進行方向とがなす角度ψt、及び、第1点P1から下端点PEbへ向かう方向と飛行体100の進行方向とがなす角度ψbに基づいて、短視程空域の鉛直方向の大きさを推定する(ステップS66)。
【0172】
本実施例では、制御装置500の推定部520は、短視程空域の奥行き方向の大きさは、水平方向の大きさWに等しいと推定するが、これに限定される訳では無く、水平方向の大きさWよりも大きい又は小さいと推定しても良い。その後、推定部520は、大きさ推定処理の実行を終了する。
【0173】
図9のステップS50において大きさ推定処理が実行された後に、制御装置500の推定部520は、推定された短視程空域の水平方向の大きさ及び鉛直方向の大きさと、第1点P1の位置と、に基づいて、第1時刻における短視程空域の位置を推定する位置推定処理を実行する(ステップS51)。本実施例において、短視程空域の形状は、直方体形状であると仮定されているため、短視程空域の位置は、短視程空域が有する8個の頂点の緯度、経度、及び、GPS高度で表されるが、これに限定される訳では無い。
【0174】
ここで、左端点PElに対応する画素が画像の中心よりも左に位置する場合、第1時刻における飛行体100の進行方向に向かって、短視程空域が有する手前左下の頂点は、第1点P1の位置よりも水平距離L1×tanψlだけ左に位置する。これに対して、当該画素が画像の中心よりも右に位置する場合、短視程空域の手前左下の頂点は、第1点P1の位置よりも水平距離L1×tanψlだけ右に位置する。また、当該画素が画像の中心よりも下に位置する場合、短視程空域の手前左下の頂点は、第1点P1の位置よりも水平距離L1×tanψbだけ下に位置する。これに対して、当該画素が画像の中心よりも上に位置する場合、短視程空域の手前左下の頂点は、第1点P1の位置よりも水平距離L1×tanψbだけ上に位置する。
【0175】
このため、制御装置500の推定部520は、第1点P1の緯度、経度、及び、GPS高度と、水平距離L1×tanψl及び水平距離L1×tanψbと、に基づいて、短視程空域が有する左下手前の頂点の緯度、経度、及び、GPS高度を算出する。同様にして、推定部520は、短視程空域が有する手前左上の頂点、手前右上の頂点、及び、手前右下の頂点の緯度、経度、及び、GPS高度を算出する。
【0176】
また、第1時刻における飛行体100の進行方向に向かって、短視程空域が有する奥左下の頂点、奥左上の頂点、奥右上の頂点、及び、奥右下の頂点は、手前左下の頂点、手前左上の頂点、手前右上の頂点、及び、手前右下の頂点よりも、短視程空域の水平方向の大きさWに等しい距離だけそれぞれ奥に位置する。このため、制御装置500の推定部520は、手前左下の頂点、手前左上の頂点、手前右上の頂点、及び、手前右下の頂点の緯度、経度、及び、GPS高度と、短視程空域の水平方向の大きさWと、に基づいて、奥左下の頂点、奥左上の頂点、奥右上の頂点、及び、奥右下の頂点の緯度、経度、及び、GPS高度をそれぞれ算出する。
【0177】
このようにして、第1時刻における短視程空域の位置が推定されると、制御装置500の推定部520は、図13の飛行位置関連テーブルにおいて、第1時刻を表す時刻情報と、飛行体100の機体ID「100」と、に対応付けられた対地風向風速情報を取得する。これにより、推定部520は、第1時刻において飛行体100の位置で吹いていた風の対地風向及び対地風速を特定する。
【0178】
次に、制御装置500の推定部520は、飛行位置関連テーブルにおいて機体ID「100」に対応付けられている1又は複数の時刻情報でそれぞれ表される1又は複数の時刻の内で、第1時刻よりも後であり、かつ、第1時刻に最も近い時刻を表す時刻情報と、当該時刻情報に対応付けられた対地風向風速情報と、を取得する。これにより、推定部520は、第1時刻の1つ後の時刻と、第1時刻の1つ後の時刻において飛行体100の位置で吹いていた風の対地風向及び対地風速と、を特定する。
【0179】
その後、制御装置500の推定部520は、第1時刻から第1時刻の1つ後の時刻までの間、第1時刻に飛行体100の位置で吹いていた風の風向及び風速と同じ風向及び風速の風が短視程空域でも一様に吹いていたと仮定する。このため、本実施例において、推定部520は、第1時刻から第1時刻の1つ後の時刻までの間における短視程空域の移動方向が当該風向から吹く風の風下へ向かう方向と同じ方向であり、かつ、短視程空域の移動速度が当該風速と同じ速度であったと推定する。
【0180】
しかし、これに限定される訳では無く、制御装置500の推定部520は、第1時刻から第1時刻の1つ後の時刻までの間における短視程空域の移動方向が、当該風向から吹く風の風下に向かう方向と異なる方向であったと、短視程空域の風下の地形と当該風向とに基づいて推定しても良い。また、制御装置500の推定部520は、第1時刻から第1時刻の1つ後の時刻までの間における短視程空域の移動速度が、当該風速よりも予め定められた速度又は予め定められた割合だけ遅い速度であったと推定しても良い。
【0181】
この推定に基づいて、制御装置500の推定部520は、推定された第1時刻における短視程空域の位置と、第1時刻における対地風向及び対地風速と、に基づいて、第1時刻よりも1つ後の時刻における短視程空域の位置を推定する。
【0182】
その後、制御装置500の推定部520は、第1時刻よりも1つ後の時刻に注目し、注目された時刻の1つ後の時刻が存在するか否かを判定する処理を実行する。このとき、注目された時刻の1つ後の時刻が存在しないと判定すると、注目された時刻における短視程空域の位置が、現在の短視程空域の位置であると推定する。
【0183】
これに対して、制御装置500の推定部520は、注目された時刻の1つ後の時刻が存在すると判定すると、当該1つ後の時刻における短視程空域の位置を推定する。その後、推定部520は、当該1つ後の時刻に注目し、注目された時刻の1つ後の時刻が存在するか否かを判定する処理から上記処理を繰り返す。
【0184】
このようにして、現在の短視程空域の位置が推定されると、制御装置500は、現在の短視程空域の位置に基づいて安全空域を設定する、図15に示すような安全空域設定処理を実行する(ステップS52)。
【0185】
安全空域設定処理の実行が開始されると、制御装置500の取得部510は、図13の飛行位置関連テーブルにおいて、第1時刻を表す時刻情報と、飛行体100の機体ID「100」と、に対応付けられた位置情報と、センシング情報に含まれる画像情報と、センシング方向情報とを取得する。これにより、取得部510は、第1時刻において飛行体100のイメージセンサ131aが撮像を行った撮像位置と、イメージセンサ131aが撮像により得た画像と、イメージセンサ131aの撮像方向と、を特定する。また、取得部510は、飛行位置関連テーブルにおいて、第1時刻よりも1つ後の時刻又は1つ前の時刻を表す時刻情報と機体ID「100」とに対応付けられた位置情報と、画像情報と、センシング方向情報と、を取得する。
【0186】
その後、制御装置500の設定部530は、これら2つの画像情報でそれぞれ表される2つの画像に対して、例えば、テンプレートマッチングを行うことで、障害物に対応した画像領域と、人に対応した画像領域と、を検出する。障害物のテンプレートを表す情報と、人のテンプレートを表す情報と、は、情報記憶部590が予め記憶していれば良い。
【0187】
次に、制御装置500の取得部510は、情報記憶部590からイメージセンサ131aの焦点距離を表す情報と、イメージセンサ131aが備える受光素子の大きさを表す情報と、を取得する。その後、設定部530は、2つの画像における障害物に対応した画像領域の視差と、人に対応した画像領域の視差と、2つの画像の撮像位置及び撮像方向と、焦点距離と、受光素子の大きさと、に基づいて、障害物及び人の位置を検出する(ステップS71)。
【0188】
その後、制御装置500の設定部530は、検出された障害物の位置と、短視程空域の推定された位置と、に基づいて安全空域を設定する(ステップS72)。このために、設定部530は、現在の短視程空域と異なる空域である現在の非短視程空域を、1辺が予め定められた大きさの複数の立方空域に分割し、分割により生じた複数の非短視程空域の位置を特定する。本実施例では、予め定められた大きさは、「1」メートルであるが、これに限定される訳では無く、「1」メートルより大きくても小さくても良い。予め定められた大きさの好適な値は、当業者が実験により定めることができる。
【0189】
その後、制御装置500の設定部530は、複数の非短視程空域の位置と、障害物の位置と、に基づいて、複数の非短視程空域の内で、障害物が有る障害空域を特定し、特定された障害空域を、複数の非短視程空域から除外する。
【0190】
次に、制御装置500の設定部530は、障害空域が除外された複数の非短視程空域の内で、第1時刻に短視程空域であった空域を、第1時刻に得られたセンシング情報に基づいて障害物が存在するか否かを判定不能な判定不能空域と特定する。その後、設定部530は、障害空域が除外された複数の非短視程空域から、判定不能空域を除外する。
【0191】
次に、制御装置500の設定部530は、障害空域と判定不能空域とが除外された複数の非短視程空域には、障害物が存在しないと判定する。その後、設定部530は、障害空域と判定不能空域とが除外された複数の非短視程空域を、短視程空域よりも安全性が高い安全空域に設定する。このように安全空域が設定されるのは、障害空域と判定不能空域とが除外された複数の非短視程空域の方が、障害物が存在しないと判定されていない短視程空域よりも、飛行体100が障害物に接触する蓋然性が低く、飛行体100がより安全に飛行可能だからである。
【0192】
その後、制御装置500の設定部530は、検出された人の位置に基づいて、複数の安全空域に優先順位を設定する(ステップS73)。このために、設定部530は、複数の安全空域の内で、未注目の安全空域の1つに注目する処理を実行する。次に、設定部530は、注目された安全空域の下に位置する人の数を計数してから、未注目の安全空域が無くなるまで、未注目の安全空域の1つに注目する処理から上記処理を繰り返す。その後、設定部530は、複数の安全空域のそれぞれに、計数された人の数が少ない程、高い優先順位を設定する。このように優先順位が設定されるのは、人がより少ない又は人が居ない地域の上空の空域の方が、人がより多い地域の上空の空域よりも、飛行体100が飛行する空域としてより適切だからである。人がより少ない又は人が居ない地域の上空の空域の方がより適切であるのは、例えば、飛行体100が障害物との接触又は故障等により落下する場合、又は、緊急に着陸する場合に、飛行体100が人と接触する蓋然性がより少ない又は接触する可能性が無いためである。
【0193】
その後、制御装置500の設定部530は、図9のステップS41で予め定められたパラメータによって表される補助点の位置と、現在の短視程空域の位置と、に基づいて、補助点との間に短視程空域が存在する安全空域と、補助点との間に短視程空域が存在しない安全空域と、を特定する。補助点との間に短視程空域が存在する安全空域を飛行体100が飛行する場合、補助点に居る補助者は、飛行体100を視認できないため、飛行体100の視認結果を、制御装置500を操作する従業員に伝えることができず、飛行制御が補助されない。このため、設定部530は、特定された安全空域が、飛行制御の補助が行われない無補助空域であると判定する。
【0194】
次に、制御装置500の設定部530は、補助点との間に短視程空域が存在しない安全空域の位置と、補助点の位置と、検出された障害物の位置と、に基づいて、補助点との間に障害物が存在する安全空域と、補助点との間に短視程空域及び障害物が存在しない安全空域と、を特定する。次に、設定部530は、補助点との間に障害物が存在する安全空域が無補助空域であると判定し、補助点との間に短視程空域及び障害物が存在しない安全空域が、飛行制御の補助が行われる有補助空域であると判定する。
【0195】
その後、制御装置500の設定部530は、人の位置に基づいて設定された優先順位が同じ複数の安全空域が存在する場合に、当該複数の安全空域の内で、有補助空域の優先順位の方が、無補助空域の優先順位よりも高くなるように、優先順位を再設定する(ステップS74)。
【0196】
次に、制御装置500の制御部540は、図11の安全空域テーブルに、安全空域に設定された優先順位を表す情報と、安全空域に含まれる点の緯度、経度、及び、GPS高度の最小値及び最大値を表す位置情報を対応付けて保存した後に(ステップS75)、安全空域設定処理の実行を終了する。
【0197】
図9のステップS52で、安全空域設定処理が実行された後、制御装置500の取得部510は、異常条件が満足されたことを告げる異常報告が飛行体100から受信されたか否かを判定する(ステップS53)。このとき、取得部510は、データ通信回路504aからの異常報告の取得を試行し、異常報告が取得される場合に、異常報告が受信されたと判定する(ステップS53;Yes)。次に、制御装置500は、飛行体100による短視程ルートの飛行継続が可能か否かを判定する、図16に示すような飛行継続可否判定処理を実行する(ステップS54)。
【0198】
飛行継続可否判定処理の実行が開始されると、制御装置500の取得部510は、異常条件を満足させた情報を出力した第2センサ132を識別するセンサIDを報告から取得する(ステップS81)。
【0199】
次に、制御装置500の制御部540は、取得されたセンサIDに、高度センサ132aのセンサIDが含まれるか否かを判定する。このとき、制御部540は、高度センサ132aのセンサIDが含まれると判定すると、高度センサ132aから出力される高度情報が、高度センサ132aの異常条件を満足していると判定する(ステップS82;Yes)。このため、制御部540は、高度情報で表される対地高度が、飛行体100の実際の対地高度と、高度センサ132aの誤差よりも大きく相違していると判定する。
【0200】
次に、制御装置500の制御部540は、LiDARセンサ132bのセンサIDが含まれているか否かに関わらず、短視程空域を通る短視程ルートの飛行体100による飛行継続が不能であると判定した後に(ステップS83)、飛行継続判定処理の実行を終了する。
【0201】
このような判定がされるのは、高度情報で表される対地高度が、実際の対地高度と誤差よりも大きく相違していれば、飛行体100が短視程ルートの飛行を、法令により対地高度の範囲が定められている飛行許可空域内で継続することが不能となるからである。
【0202】
ステップS82において、制御装置500の制御部540は、高度センサ132aのセンサIDが含まれないと判定すると、高度センサ132aの異常条件が満足されていないと判定する(ステップS82;No)。このため、制御部540は、LiDARセンサ132bから出力される座標情報が、LiDARセンサ132bの異常条件を満足していると判定する。このため、制御部540は、LiDARセンサ132bから出力される座標情報に基づく障害物の検知が不能であると判定する。
【0203】
次に、制御装置500の制御部540は、図9のステップS51で位置が推定された現在の短視程空域を1辺が予め定められた大きさの複数の立方空域に分割し、分割により生じた複数の短視程空域の位置を特定する。その後、制御部540は、ルート情報で表される複数の到着点の位置と、複数の短視程空域の位置と、に基づいて、複数の短視程空域の内で、飛行ルートが通る1又は複数の空域(以下、通過短視程空域という)の位置を特定する(ステップS84)。
【0204】
次に、制御装置500の取得部510は、図12の確認結果テーブルにおいて、1又は複数の通過短視程空域の位置をそれぞれ表す位置情報にそれぞれ対応付けられた1又は複数の確認結果情報を取得する(ステップS85)。その後、制御装置500の制御部540は、1又は複数の確認結果情報の全てが、障害物が存在しないことが確認されていることを表す不存在確認情報であるか否かを判定する(ステップS86)。このとき、制御部540は、取得された1又は複数の確認結果情報の全てが不存在確認情報であると判定すると(ステップS86;Yes)、LiDARセンサ132bから出力される座標情報に基づく障害物の検知が不能であっても、通過短視程空域を通る短視程ルートの飛行体100による飛行継続が可能と判定し(ステップS87)、飛行継続可否判定処理の実行を終了する。
【0205】
ステップS85において、制御装置500の制御部540は、取得された1又は複数の確認結果情報の1つ以上が不存在情報でないと判定した場合(ステップS86;No)、複数の確認結果情報の1つ以上が、障害物が存在することが確認されていることを表す存在確認情報、又は、障害物が存在すること及び存在しないことが確認されていないことを表す未確認情報であると判定する。次に、制御部540は、LiDARセンサ132bから出力される座標情報に基づく障害物の検知が不能であるため、障害物の存在が確認されている、又は、障害物の存在及び不存在が確認されていない空域を通る短視程ルートの飛行継続が不能と判定する(ステップS83)。その後、制御部540は、飛行継続可否判定処理の実行を終了する。
【0206】
飛行継続可否判定処理において、短視程ルートの飛行継続が可能と判定されると(図9のステップS55;Yes)、制御装置500は、ステップS51から上記処理を繰り返す。これに対して、短視程ルートの飛行継続が不能と判定されると(ステップS55;No)、制御装置500は、飛行体100を安全空域へ移動させる、図17に示すような空域移動制御処理を実行する(ステップS56)。
【0207】
空域移動制御処理の実行が開始されると、制御装置500の取得部510は、異常条件が満足されたと判定された第3点P3を表す第3位置情報を異常報告から取得する(ステップS91)。次に、取得部510は、図11の安全空域テーブルから、取得された第3位置情報で表される第3点P3のGPS高度以下のGPS高度の最小値と、第3点P3のGPS高度以上のGPS高度の最大値と、を表す安全空域の位置情報と、当該位置情報に対応付けられた優先順位を表す情報を複数取得する。これにより、取得部510は、飛行体100がGPS高度の変更を制限した状態で移動可能な安全空域を複数特定する。
【0208】
次に、制御装置500の制御部540は、特定された複数の安全空域から、第3点P3からの距離が近い順に、予め定められた個数の安全空域を選択する。本実施例では、飛行体100の位置から安全空域までの距離は、飛行体100の位置と、安全空域の中心点と、の距離を意味するが、これに限定される訳では無い。
【0209】
その後、制御装置500の制御部540は、選択された複数の安全空域から、優先順位に基づいて1つの安全空域を選択する(ステップS92)。本実施例では、制御部540は、最も優先順位が高い安全空域を選択するが、これに限定される訳では無く、N番目(但し、Nは、2以上の自然数)に優先順位が高い安全空域を選択しても良いし、ソフトウェア乱数に基づいて1つの安全空域を選択しても良い。
【0210】
次に、制御装置500の制御部540は、図9のステップS42と同様の処理を実行することで、飛行体100の位置から、選択された安全空域を通り、移動先へ到る代替ルートを設定する(ステップS93)。次に、制御部540は、代替ルートを表すルート情報を含み、飛行ルートを、ルート情報で表される代替ルートに変更することを命じるルート変更命令と、短視程空域を飛行する間、高度の変更を制限する高度変更制限と、を、飛行体100を宛先としてデータ通信回路504aへ出力する(ステップS94)。このようにして、制御部540は、飛行体100の高度を変更させる高度変更制御を行わずに、飛行体100のGPS高度に在る安全空域へ飛行体100を移動させる第1制御を行う。
【0211】
このような第1制御が行われるのは、高度センサ132aの異常条件が満足されている場合に、飛行体100に高度変更制御を行うと、飛行体100が飛行許可空域から出域して飛行禁止空域に入域する蓋然性が、異常条件が満足されていない場合よりも高いからである。
【0212】
本実施例では、図6のステップS34において飛行体100で異常報告が出力されてから、図17のステップS94において安全空域へ飛行体100を移動させる第1制御が行われるまでの間、飛行体100は、短視程空域を飛行し続けている場合を具体例として挙げて説明する。このため、ルート変更命令と高度変更制限とを受信した飛行体100は、飛行ルートを代替ルートに変更した後、短視程空域を出域したと判定するまで、高度の変更を制限して代替ルートを飛行する。このため、飛行体100は、短視程空域を出域するまで、プロペラ111から114の単位時間当たりの回転数を変更せずに維持する。次に、短視程空域を出域したと判定すると、飛行体100は、高度センサ132aの異常条件が満足されなくなるため、高度の変更を制限する必要が無くなったと判別する。その後、飛行体100は、必要に応じて高度を変更しながら、代替ルートに従って安全空域を通り移動先へまで飛行する。
【0213】
しかし、これに限定される訳では無く、飛行体100は、異常報告の出力から第1制御の実行までの間に、短視程空域を出域していても良い。この場合、ルート変更命令と高度変更制限とを受信した飛行体100は、飛行ルートを代替ルートに変更した後、高度の変更を制限する必要が無いと判定し、必要に応じて高度を変更しながら、代替ルートに従って安全空域を通り移動先へまで飛行する。
【0214】
次に、制御装置500の制御部540は、図16のステップS82と同様の処理を実行することで、高度センサ132aの異常条件が満足されているか否かを判定する(ステップS95)。このとき、高度センサ132aの異常条件が満足されていると判定されると(ステップS95;Yes)、制御装置500の取得部510は、ルート変更命令に従って代替ルートを飛行する飛行体100から、短視程空域の出域を告げる出域報告が受信されたか否かを判定する(ステップS96)。このとき、取得部510は、データ通信回路504aからの出域報告の取得を試行する処理を実行し、出域報告が取得されない場合に、出域報告が受信されていないと判定する(ステップS96;No)。その後、取得部510は、予め定められた時間だけスリープしてから、ステップS96の処理を繰り返す。
【0215】
これに対して、制御装置500の取得部510は、出域報告が取得されると、出域報告が受信されたと判定し(ステップS96;Yes)、空域移動制御処理の実行を終了する。
【0216】
ステップS95において、制御装置500の制御部540は、高度センサ132aの異常条件が満足されていないと判定すると(ステップS95;No)、LiDARセンサ132bの異常条件が満足されていると判定する。次に、取得部510は、ステップS96と同様の処理を実行することで、出域報告が受信されたか否かを判定する(ステップS97)。このとき、取得部510は、出域報告が受信されたと判定すると(ステップS97;Yes)、空域移動制御処理の実行を終了する。
【0217】
これに対して、制御装置500の取得部510は、出域報告が受信されなかったと判定すると(ステップS97;No)、図13の飛行位置関連テーブルに保存された複数のレコードにそれぞれ保存された時刻情報の内で、最も遅い時刻を表す時刻情報と、飛行体100の機体ID「100」と、に対応付けられた位置情報(以下、最新の位置情報という)を取得する(ステップS98)。
【0218】
その後、制御装置500の制御部540は、第1制御がステップS94で開始されてから飛行体100が移動した距離を算出する。このために、制御部540は、第3位置情報で表される第3点P3から、最新の位置情報で表される飛行体100の位置までの距離を算出する(ステップS99)。
【0219】
次に、制御装置500の取得部510は、情報記憶部590から予め定められた移動距離を表す情報を取得する。本実施例では、予め定められた移動距離は、「100」メートルであるが、これに限定される訳では無く、「100」メートルよりも長くても短くても良い。予め定められた移動距離の好適な値は、当業者が実験により定めることができる。
【0220】
次に、制御装置500の制御部540は、算出された距離が予め定められた移動距離以上であるか否かを判定する(ステップS100)。このとき、制御部540は、算出された距離が予め定められた移動距離未満であると判定すると(ステップS100;No)、ステップS97から上記処理を繰り返す。
【0221】
これに対して、算出された距離が予め定められた移動距離以上であると判定すると(ステップS100;Yes)、制御装置500の制御部540は、最新の位置情報で表される飛行体100のGPS高度よりも高いGPS高度の最小値を表す安全空域の位置情報と、当該位置情報に対応付けられた優先順位を表す情報と、を複数取得する。これにより、取得部510は、飛行体100の上方に位置する安全空域を複数特定する。
【0222】
次に、制御装置500の制御部540は、特定された複数の安全空域から、最新の位置情報で表される飛行体100の位置からの距離が近い順に、予め定められた個数の安全空域を選択する。その後、制御部540は、選択された複数の安全空域から、優先順位に基づいて1つの安全空域を選択する(ステップS101)。本実施例では、制御部540は、最も優先順位が高い安全空域を選択するが、N番目(但し、Nは、2以上の自然数)に優先順位が高い安全空域を選択しても良いし、ソフトウェア乱数に基づいて1つの安全空域を選択しても良い。
【0223】
次に、制御装置500の制御部540は、ステップS93と同様の処理を実行することで、飛行体100の位置から、選択された飛行体100の上方の安全空域を通り、移動先へ到る代替ルートを設定する(ステップS102)。その後、制御部540は、設定された代替ルートを表すルート情報を含み、飛行ルートを、ルート情報で表される代替ルートに変更することを命じるルート変更命令と、高度の変更を許可する高度変更許可と、を、飛行体100を宛先としてデータ通信回路504aへ出力する(ステップS103)。このようにして、制御部540は、飛行体100の高度を変更させる高度変更制御を行うと共に、飛行体100の上方に位置する安全空域へ飛行体100を移動させる第2制御を行う。
【0224】
ステップS103で出力されたルート変更命令を受信した飛行体100は、飛行ルートを代替ルートに変更した後、短視程空域を出域したと判定する前であっても、高度を変更して代替ルートを飛行する。このために、飛行体100は、プロペラ111から114の単位時間当たりの回転数を変更する。
【0225】
次に、制御装置500の取得部510は、ステップS96と同様の処理を実行することで、検出報告が受信されたか否かを判定する(ステップS104)。このとき、取得部510は、検出報告が受信されなかったと判定すると(ステップS104;No)、ステップS104の処理を繰り返す。これに対して、制御装置500の取得部510は、検出報告が受信されたと判定すると(ステップS104;Yes)、空域移動制御処理の実行を終了する。
【0226】
制御装置500は、図9のステップS56で空域移動制御処理を実行した後、ステップS44から上記処理を繰り返す。
【0227】
ステップS53において、制御装置500の取得部510は、異常報告が受信されなかったと判定すると(ステップS53;No)、図17のステップS96と同様の処理を実行することで、検出報告が受信されたか否かを判定する(ステップS57)。このとき、取得部510は、検出報告が受信されたと判定すると(ステップS57;Yes)、ステップS44から上記処理を繰り返す。
【0228】
これに対して、制御装置500の取得部510は、検出報告が受信されなかったと判定すると(ステップS57;No)、ステップS45と同様の処理を実行することで、到着報告が受信されたか否かを判定する(ステップS58)。このとき、取得部510は、到着報告が受信されなかったと判定すると(ステップS58;No)、ステップS51から上記処理を繰り返す。
【0229】
ステップS45、S48、又は、S58で、制御装置500の取得部510は、到着報告が受信されたと判定すると(ステップS45、S48、又は、S58;Yes)、飛行制御処理の実行を終了する。
【0230】
本実施例では、運搬業者の従業員は、物品を飛行体100に格納させると説明したが、これに限定される訳では無く、従業員は、物品を飛行体200に格納させても良い。この場合、従業員は、物品の運搬先の住所と、飛行体200の機体ID「200」と、を入力するための操作を、制御装置500の入力装置505cに行い、制御装置500のCPU501は、入力装置505cから出力される信号に応じて、図9に示した飛行制御処理を実行することで、運搬先まで飛行体200を飛行させれば良い。また、この場合、CPU501は、飛行制御処理と並列的に、不図示の情報保存処理を実行することで、飛行体200の機体ID「200」と、飛行体200の飛行位置関連情報と、を、図13の飛行位置関連テーブルに保存する。
【0231】
制御装置500のCPU501は、予め定められた時刻が到来すると、図13の飛行位置関連テーブルに保存された飛行位置関連情報に基づいて、予め定められた立方空域に障害物が存在するか否かを確認する不図示の空域確認処理を実行する。
【0232】
不図示の空域確認処理の実行が開始されると、制御装置500の取得部510は、図12の確認結果テーブルに保存された複数のレコードの内で、未注目のレコードが存在するか否かを判定する処理を実行する。このとき、取得部510は、未注目のレコードが存在すると判定すると、未注目のレコードの1つに注目する。その後、取得部510は、注目されたレコード(以下、注目レコードという)に保存された立方空域(以下、注目空域という)の位置を表す位置情報を取得する。
【0233】
その後、制御装置500の取得部510は、図13の飛行位置関連テーブルに保存された複数のレコードの内で、注目空域に含まれる位置を表す位置情報が保存された1又は複数のレコードを特定する。このとき、レコードが特定されない、又は、1つのレコードしか特定されないと、取得部510は、注目空域において得られた画像情報が無い又は1つしか無いため、画像情報に基づいて障害物の位置を検出できないと判定する。このため、取得部510は、注目空域に障害物が存在するか否かの確認ができないと判定する。次に、取得部510は、注目レコードに保存された確認結果情報を、注目空域において障害物の存在及び不存在が確認されていないことを表す未確認情報に更新する。その後、取得部510は、未注目のレコードが存在するか否かを判定する処理から上記処理を繰り返す。
【0234】
これに対して、n個のレコードが特定されると(但し、nは、2以上の整数)、制御装置500の取得部510は、特定されたn個のレコードにそれぞれ保存された画像情報を取得する。このようにして、取得部510は、注目空域に含まれる位置で、飛行体100又は200で得られた2個以上の画像情報を取得する。飛行体100又は200の画像情報が2個以上特定されるのは、飛行体100のイメージセンサ131aの構成と、飛行体200の不図示のイメージセンサと、が、互いに同じだからである。すなわち、飛行体100の2個の画像情報、飛行体200の2個の画像情報、及び、飛行体100の1個の画像情報と飛行体200の1個の画像情報と、のいずれかが特定されれば、特定された画像情報でそれぞれ表される画像の視差に基づいて、障害物の位置を検出できるからである。しかし、これに限定される訳では無く、飛行体100の画像情報のみが2個以上特定されても良いし、飛行体200の画像情報のみが2個以上特定されても良い。
【0235】
次に、制御装置500の制御部540は、取得されたn個の画像情報から互いに異なる2つの画像情報の組み合わせをn×(n-1)組生成する。その後、制御部540は、n×(n-1)組の組み合わせのそれぞれについて、2つの画像情報でそれぞれ表される画像から障害物に対応する画像領域の検出を試行する。
【0236】
このとき、n×(n-1)組の組み合わせのいずれか1つ以上に基づいて、1又は複数の障害物にそれぞれ対応する画像領域が検出されると、制御装置500の制御部540は、検出された1又は複数の画像領域それぞれの視差に基づいて、図15のステップS71と同様の処理を実行することで、1又は複数の障害物の位置を検出する。次に、制御装置500の制御部540は、検出された1又は複数の障害物の位置が注目空域に含まれるか否かを判定する。このとき、制御部540は、1又は複数の障害物のいずれか1つ以上の位置が注目空域に含まれると判定すると、注目空域において障害物の存在が確認されたと判定する。その後、制御部540は、注目レコードに保存された確認結果情報を、注目空域において障害物の存在が確認されていることを表す存在確認情報に更新する。その後、制御装置500は、図12の確認結果テーブルに未注目のレコードが存在するか否かを判定する処理から上記処理を繰り返す。
【0237】
これに対して、n×(n-1)組の組み合わせのいずれからも障害物に対応する画像領域が検出されない場合、又は、1又は複数の障害物の全ての位置が注目空域に含まれないと判定された場合、制御装置500の制御部540は、注目空域において障害物の不存在が確認されたと判定する。次に、制御部540は、注目レコードに保存された確認結果情報を、注目空域において障害物の不存在が確認されていることを表す不存在確認情報に更新する。その後、制御装置500は、未注目のレコードが存在するか否かを判定する処理から上記処理を繰り返す。
【0238】
その後、制御装置500の取得部510は、図12の確認結果テーブルに未注目のレコードが存在しないと判定すると、空域確認処理を実行する。
【0239】
端末装置900は、スマートフォンであり、図18に示すような、ハードウェアであるCPU901、RAM902、ROM903a、フラッシュメモリ903b、データ通信回路904a、ビデオカード905a、表示装置905b、入力装置905c、位置センサ906、スピーカ909a、及び、マイクロフォン909bを備える。本実施例では、端末装置900は、1つのCPU901を備えるが、複数のCPUを備えても良い。また、端末装置900は、複数のRAM及びフラッシュメモリを備えても良い。
【0240】
端末装置900が備えるCPU901、RAM902、ROM903a、フラッシュメモリ903b、データ通信回路904a、ビデオカード905a、表示装置905b、入力装置905c、及び、位置センサ906の構成及び機能は、図3に示した飛行体100が備えるCPU191、RAM192、ROM193a、フラッシュメモリ193b、データ通信回路194a、ビデオカード195a、表示装置195b、入力装置195c、及び、位置センサ196の構成及び機能と同様である。また、端末装置900が備えるスピーカ909a及びマイクロフォン909bの構成及び機能は、図8に示した制御装置500が備えるスピーカ509a及びマイクロフォン509bの構成及び機能と同様である。
【0241】
端末装置900を携帯する補助者は、端末装置900のフラッシュメモリ903bが予め記憶する音声通信用のアプリケーションを実行させる操作を、端末装置900の入力装置905cに行う。その後、補助者は、飛行体100を視認すると、予め定められたタイミング又はランダムなタイミングで視認結果を口述する。
【0242】
端末装置900の入力装置905cが当該操作に応じた信号を出力すると、端末装置900のCPU901は、音声通信用のアプリケーションの実行を開始する。次に、CPU901は、マイクロフォン909bから出力される信号に基づいて、補助者の音声を表す音声情報を生成する処理を実行し、生成された音声情報を、制御装置500を宛先としてデータ通信回路904aへ出力する。その後、CPU901は、制御装置500から送信された音声情報をデータ通信回路904aから取得し、取得された音声情報に基づいて制御装置500を操作する従業員の音声を表す信号をスピーカ909aに出力する。その後、CPU901は、音声情報を生成する処理から上記処理の実行を繰り返す。
【0243】
これらの構成によれば、制御システム1は、予め定められた飛行ルートを飛行する飛行体100が、視程が予め定められた第1視程距離よりも短い短視程空域を検出した第1点P1の位置を表す位置情報と、短視程空域に入域したと判定した第2点P2の位置を表す位置情報と、を取得する取得部510を備える。また、制御システム1は、取得された位置情報で表される第1点P1の位置と、第2点P2の位置と、飛行体100が搭載する第1センサ131が第1点P1でセンシングすることで得られたセンシング情報と、に基づいて、短視程空域の大きさを推定する推定部520を備える。さらに、制御システム1は、推定された短視程空域の大きさと、第1点P1で得られたセンシング情報と、に基づいて、短視程空域よりも安全性が高い安全空域を設定する設定部530を備える。またさらに、制御システム1は、飛行体100に搭載され、かつ、第1センサ131と異なる第2センサ132から出力される情報に基づいて、短視程空域を通る短視程ルートの飛行継続が不能と判定されると、設定された安全空域へ飛行体100を移動させる制御を行う制御部540を備える。このため、制御システム1は、第2センサ132から出力される情報に基づいて、短視程空域を通る短視程ルートの飛行継続が不能と判定される場合であっても、短視程空域よりも安全性が高い安全空域へ飛行体100を移動させることができる。
【0244】
また、これらの構成によれば、第1センサ131は、空間を光学的にセンシングすることで得られた画像を表す画像情報を出力するイメージセンサ131aを含む。また、センシング情報は、イメージセンサ131aが出力する画像情報を含む。さらに、飛行体100は、イメージセンサ131aから出力されたセンシング情報に基づいて短視程空域を検出し、かつ、イメージセンサ131aから出力されたセンシング情報に基づいて短視程空域への飛行体100の入域を判定する。さらに、推定部520は、短視程空域が検出される基礎となったセンシング情報に基づいて、短視程空域が検出された第1点P1から、短視程空域と、短視程空域と異なる非短視程空域と、の境界へ向かう方向を特定する。またさらに、推定部520は、短視程空域が検出された第1点P1の位置と、短視程空域への入域が判定された第2点P2の位置と、に基づいて、短視程空域が検出される基礎となったセンシング情報が得られた第1時刻における飛行体100から短視程空域までの距離を推定する。また、推定部520は、推定された距離と、第1点P1から短視程空域の境界へ向かう方向と、に基づいて、短視程空域の大きさを推定する。このため、制御システム1は、例えば、短視程空域の色が一様であるために、短視程空域に対応する短視程画像領域から特徴点を抽出することができない、又は、抽出することが困難であるために、視差に基づいて短視程空域の大きさを推定することができない、又は、推定が困難な場合であっても、短視程空域の大きさを精度良く推定できる。
【0245】
さらに、これらの構成によれば、飛行体100に搭載された第1センサ131は、風向及び風速をセンシングし、センシングされた風向及び風速を表す風向風速情報を出力する風向風速センサ131bをさらに含む。また、センシング情報は、風向風速センサ131bが出力する風向風速情報をさらに含む。さらに、推定部520は、風向風速センサ131bから出力されたセンシング情報で表される風向及び風速にさらに基づいて、第1時刻における飛行体100から短視程空域までの水平距離L1を推定し、推定された当該水平距離L1に基づいて短視程空域の大きさを推定する。このため、制御システム1は、飛行体100が短視程空域を検出した後に、短視程空域の位置が風によって変化したとしても、短視程空域の大きさを精度良く推定できる。
【0246】
また、これらの構成によれば、推定部520は、第1点P1の位置と、短視程空域の推定された大きさと、に基づいて、第1時刻における短視程空域の位置を推定し、風向及び風速に基づいて、短視程空域の移動方向及び移動速度を推定し、かつ、推定された移動方向及び移動速度に基づいて、第1時刻よりも後の短視程空域の位置を推定する。このため、制御システム1は、短視程空域の位置が風によって変化したとしても、変化後の短視程空域の位置を推定できる。
【0247】
さらに、これらの構成によれば、飛行体100に搭載された第2センサ132は、光学的にセンシングすることで得られた地表面から飛行体100までの対地高度を表す情報を出力する高度センサ132aをさらに含む。制御部540は、高度センサ132aから出力される高度情報が、高度センサ132aについて予め定められた異常条件を満足する第1の場合に、短視程ルートの飛行継続が不能であると判定し、かつ、設定された安全空域へ飛行体100を移動させる制御を行う。また、これらの構成によれば、制御部540は、高度センサ132aから出力される高度情報が、高度センサ132aについて予め定められた異常条件を満足する第1の場合に、飛行体100の高度を変更させる高度変更制御を行わずに、飛行体100の高度に在る安全空域へ飛行体100を移動させる第1制御を行う。このため、制御システム1は、飛行体100が、対地高度に基づいて範囲が予め定められている飛行許可空域から出域して飛行禁止空域に入域することを抑制できる。
【0248】
また、これらの構成によれば、飛行体100に搭載された第2センサ132は、空間を光学的にセンシングすることで得られた座標値であり、かつ、飛行体100の飛行を妨げる可能性のある障害物の座標値を表す座標情報を出力するLiDARセンサ132bをさらに含む。また、取得部510は、LiDARセンサ132bから出力される座標情報が、LiDARセンサ132bについて予め定められた異常条件を満足する第2の場合に、予め定められた立方空域の位置を表す位置情報と、当該立方空域における障害物の確認結果を表す確認結果情報と、を予め対応づけて記憶する情報記憶部590の確認結果テーブルから、飛行ルートが通る通過短視程空域の位置を表す位置情報に対応付けられた確認結果情報を取得する。また、確認結果情報は、予め定められた立方空域に障害物が存在することが確認されていることを表す存在確認情報、立方空域に障害物が存在しないことが確認されていることを表す不存在確認情報、及び、立方空域に障害物が存在すること及び存在しないことが確認されていないことを表す未確認情報を含む。制御部540は、第2の場合であり、かつ、取得された確認結果情報が存在確認情報又は未確認情報である場合に、短視程ルートの飛行の継続が不能であると判定して、設定された安全空域へ飛行体100を移動させる制御を行う。このため、制御システム1は、飛行体100が障害物に接触することを抑制できる。
【0249】
さらに、これらの構成によれば、制御部540は、第2の場合であり、かつ、取得された確認結果情報が不存在確認情報である場合に、短視程ルートの飛行継続が可能であると判定して、短視程ルートの飛行を飛行体100に継続させる制御を行う。このため、制御システム1は、LiDARセンサ132bの異常条件が満足される第2の場合であっても、飛行体100が障害物に接触することを抑制しながら、飛行体100に短視程ルートの飛行を継続させることができる。また、飛行体100が物品を運搬する場合には、制御システム1は、物品の運搬効率を向上できる。本実施例では、物品の運搬効率は、単位時間当たり飛行体100が運搬する物品の個数で表されるが、これに限定される訳では無く、単位飛行時間当たり飛行体100が運搬する物品の個数、又は、単位飛行距離当たり飛行体100が運搬する物品の個数で表されても良い。
【0250】
また、制御装置500の制御部540は、飛行体100又は200の飛行中に得られた画像情報に基づいて、予め定められた立方空域に障害物が存在するか否かを確認し、確認結果に基づいて、当該立方空域に対応づけられた確認結果情報を更新する。このため、制御システム1は、飛行体100に飛行させたことがある空域であれば、飛行体100のLiDARセンサ132bの異常条件が満足される第2の場合であっても、飛行体100が障害物に接触することを抑制しながら、飛行体100に短視程ルートの飛行を継続させることができる。また、制御システム1は、飛行体100に飛行させたことがない空域であっても、飛行体200に飛行させたことがある空域であれば、第2の場合であっても、障害物との接触を抑制しながら、飛行を継続させることができる。
【0251】
これらの構成によれば、制御部540は、LiDARセンサ132bから出力される座標情報が、LiDARセンサ132bについて予め定められた異常条件を満足する第2の場合であり、かつ、短視程ルートの飛行継続が可能であると判定された場合に、高度変更制御を行わずに、飛行体100の高度に在る安全空域へ飛行体100を移動させる第1制御を行い、かつ、短視程空域を飛行体100が出域する前に、第1制御を開始してから予め定められた移動距離を飛行体100が移動すると、高度変更制御を行って、飛行体100の上方に位置する安全空域へ飛行体100を移動させる第2制御を行う。ここで、視程距離を短くする霧は、通常、鉛直方向よりも水平方向に長く発生する。このため、制御システム1は、飛行体100の上方に位置する安全空域へ飛行体100を移動させることで、高度変更制御を全く行わずに飛行体100を安全空域へ移動させる場合よりも、短い距離の移動で飛行体100を安全空域に移動させることができる。
【0252】
これらの構成によれば、設定部530は、イメージセンサ131aから出力されたセンシング情報に基づいて、飛行体100の飛行を妨げる可能性がある障害物の位置を検出し、かつ、検出された障害物の位置に基づいて1又は複数の非短視程空域を安全空域として設定する。このため、制御システム1は、飛行体100が障害物に接触することを抑制できる。
【0253】
これらの構成によれば、設定部530は、イメージセンサ131aから出力されたセンシング情報に基づいて、人の位置を検出し、かつ、検出された人の位置に基づいて、1又は複数の安全空域それぞれに優先順位を設定する。また、制御部540は、設定された優先順位に基づいて、1又は複数の安全空域から選択された空域へ飛行体100を移動させる制御を行う。このため、制御システム1は、飛行体100が人に接触することを抑制できる。
【0254】
これらの構成によれば、取得部510は、予め定められた補助点の位置を表す位置情報を取得し、設定部530は、取得された位置情報で表される補助点との間に短視程空域が存在しない安全空域に、補助点との間に短視程空域が存在する安全空域よりも高い優先順位を設定する。このため、制御システム1は、予め定められた補助点から視認可能な空域を優先して飛行体100に移動させることができる。
【0255】
<実施例の変形例1>
実施例に係る制御装置500の制御部540は、第1制御を開始してから予め定められた移動距離を飛行体100が移動すると、第2制御を行うと説明した。しかし、これに限定される訳では無く、本変形例に係る制御部540は、第1制御を開始してから予め定められた時間が経過すると第2制御を行っても良い。
【0256】
このために、本変形例に係る制御装置500の制御部540が、図17のステップS94の処理を実行することで第1制御を行うと、取得部510は、第1制御の開始時刻として、例えば、OSからシステム時刻を取得する。次に、取得部510は、ステップS95の処理が実行された後に(ステップS95)、出域報告が受信されなかったと判定すると(ステップS97;No)、システム時刻を再度取得する。その後、制御部540は、再度取得されたシステム時刻から第1制御の開始時刻を減算することで、第1制御を開始してからの経過時間を算出する。
【0257】
次に、制御装置500の取得部510は、情報記憶部590から予め定められた時間を表す情報を取得する。実施例では、予め定められた時間は、「10」分であるが、これに限定される訳では無く、「10」分よりも長くても短くても良い。予め定められた時間の好適な値は、当業者が実験により定めることができる。
【0258】
次に、制御装置500の制御部540は、算出された経過時間が予め定められた時間以上であるか否かを判定する。このとき、制御部540は、算出された経過時間が予め定められた時間未満であると判定すると、ステップS97から上記処理を繰り返す。これに対して、制御装置500は、算出された経過時間が予め定められた時間以上であると判定すると、ステップS101からS104の処理を実行することで、第2制御を行う。
【0259】
<実施例の変形例2>
実施例に係る制御装置500の設定部530は、図15のステップS71で、イメージセンサ131aから出力されたセンシング情報に基づいて、人の位置を検出し、かつ、ステップS73で、検出された人の位置に基づいて、複数の安全空域それぞれに優先順位を設定すると説明した。
【0260】
しかし、これに限定される訳では無く、制御装置500の設定部530は、ステップS71で、イメージセンサ131aから出力されたセンシング情報に基づいて、家屋の位置を検出し、かつ、ステップS73で、検出された家屋の位置に基づいて、複数の安全空域それぞれに優先順位を設定しても良い。
【0261】
また、これに限定される訳では無く、制御装置500の設定部530は、ステップS71で、センシング情報に基づいて、人の位置と家屋の位置とを検出し、かつ、ステップS73で、人の位置と家屋の位置とに基づいて、複数の安全空域それぞれに優先順位を設定しても良い。
【0262】
<実施例の変形例3>
実施例では、飛行体100は、霧が発生している短視程空域を検出すると説明したが、これに限定される訳では無い。本変形例に係る飛行体100は、例えば、野焼き又は山火事によって生じた煙が浮遊している短視程空域を検出する。
【0263】
本変形例に係る飛行体100のCPU191は、図6のステップS25において、センシング情報で表される画像から、画素値に基づいて灰色の画素の検出を試行する。煙が浮遊している短視程空域に対応する灰色の画素のR値の範囲、G値の範囲、及び、B値の範囲の好適な範囲は、当業者が実験により定めることができる。
【0264】
このとき、灰色の画素が検出されると、飛行体100のCPU191は、センシング情報で表される画像の画素数に占める灰色の画素数の割合を算出し、算出された割合が予め定められた灰色割合以上であると、飛行体100が短視程空域を飛行していると判定する(ステップS25;Yes)。
【0265】
これに対して、灰色の画素が検出されない場合、又は、灰色の画素数の割合が予め定められた灰色割合よりも小さい場合に、飛行体100のCPU191は、飛行体100が、短視程空域を飛行しておらず、非短視程空域を飛行していると判定する(ステップS25;No)。
【0266】
また、ステップS27において、飛行体100のCPU191は、灰色の画素が検出された場合であり、かつ、センシング情報で表される画像に、灰色の画素が予め定められた数よりも多く連続している灰色の画像領域が存在する場合に、当該灰色の画像領域を、煙が浮遊している短視程空域に対応する短視程画像領域として検出する。次に、CPU191は、飛行体100の進行方向にある空域から短視程空域が検出されたと判定する(ステップS27;Yes)。これに対して、CPU191は、灰色の画素が検出されない場合、又は、灰色の画像領域が存在しない場合に、短視程空域が検出されないと判定する(ステップS27;No)。
【0267】
本変形例に係る飛行体100は、例えば、野焼き又は山火事によって生じた灰色の煙が浮遊している短視程空域を検出すると説明したが、これに限定される訳では無い。飛行体100は、黒色の煙又は煤が浮遊している短視程空域を検出しても良い。また、飛行体100は、例えば、工場から、又は、煙幕弾若しくは煙幕装置から排出される予め特定されている色の煙が浮遊している短視程空域を検出しても良い。
【0268】
また、飛行体100は、センシング情報で表される画像から、例えば、茶色の画素を検出することで、風塵又は砂塵が生じている短視程空域を検出しても良い。さらに、飛行体100は、例えば、火山噴火によって生じた灰色の噴煙又は火山灰が浮遊している短視程空域を検出しても良い。
【0269】
また、実施例では、飛行体100は、霧が発生している短視程空域を検出すると説明したが、これに限定される訳では無く、靄が発生している短視程空域を検出しても良い。また、飛行体100は、雨、雪、霰、雹、若しくは、霙が降っている空域、又は、尾流雲が発生している空域を含む降水の生じている短視程空域を検出しても良い。さらに、飛行体100は、地吹雪が発生している短視程空域を検出しても良い。
【0270】
さらに、実施例では、霧が発生している空域は、水滴が浮遊している空間であると説明したが、これに限定される訳では無く、氷滴が浮遊している空間であっても良い。
【0271】
<実施例の変形例4>
実施例では、飛行禁止空域は、法令によって飛行体100の飛行が予め禁止されている空域であり、かつ、法令によって対地高度の範囲が予め定められた空域であると説明した。また、飛行許可空域は、法令によって飛行体100の飛行が予め許可されている空域であり、かつ、法令によって対地高度の範囲が予め定められた空域であると説明した。しかし、これらに限定される訳では無い。
【0272】
飛行禁止空域は、1又は複数の運搬業者が自主的に、飛行体100の飛行を予め禁止している空域であり、かつ、1又は複数の運搬事業者が自主的に、対地高度の範囲を予め定めた空域であっても良い。また、飛行許可空域は、1又は複数の運搬事業者が自主的に定めた飛行禁止空域と異なる空域であっても良い。
【0273】
<実施例の変形例5>
実施例では、制御装置500は、LiDARセンサ132bの異常条件が満足される第2の場合であり、かつ、短視程ルートの飛行継続が不能であると判定された場合に、第1制御を行うと説明した。また、制御装置500は、短視程空域を飛行体100が出域する前に、第1制御を開始してから予め定められた移動距離を飛行体100が移動すると、第2制御を行うと説明した。しかし、これらに限定される訳では無い。
【0274】
制御装置500は、LiDARセンサ132bの異常条件が満足される第2の場合であり、かつ、短視程ルートの飛行継続が不能であると判定された場合に、高度センサ132aの異常条件が満足されていなければ、第1制御を行わずに第2制御を行っても良い。この場合、第2制御は、高度変更制御を行って、短視程ルートの上方に位置する安全空域へ飛行体100を移動させる制御であっても良い。
【0275】
<実施例の変形例6>
実施例では、LiDARセンサ132bの異常条件が満足される第2の場合であり、かつ、短視程ルートの飛行継続が不能であると判定された場合に実行される第1制御は、飛行体100の高度に在る安全空域へ飛行体100を移動させる制御であると説明した。
【0276】
本変形例に係る第1制御は、飛行体100の高度に在る安全空域へ飛行体100を移動させる制御である点で実施例と同じであるが、第1時刻に得られた画像情報に基づいて障害物が存在しないと判定された現在の短視程空域を通って安全空域へ飛行体100を移動させる点で実施例と異なる。
【0277】
このために、制御装置500の設定部530は、図17のステップS93において、現在の短視程空域を、1辺が予め定められた大きさの複数の立方空域に分割し、分割により生じた複数の短視程空域の位置を特定する。次に、設定部530は、図9のステップS51で推定された第1時刻における短視程空域の位置に基づいて、複数の短視程空域の内で、第1時刻に短視程空域であった空域を、第1時刻に得られた画像情報に基づいて障害物が存在するか否かを判定不能な判定不能空域と特定する。その後、設定部530は、複数の短視程空域から判定不能空域を除外する。
【0278】
次に、制御装置500の設定部530は、図15のステップS71と同様の処理を実行することで、第1時刻に得られた画像情報に基づいて障害物の位置を検出する。次に、設定部530は、検出された障害物の位置に基づいて、判定不能空域が除外された複数の短視程空域のそれぞれについて障害物が存在するか否かを判定する。その後、設定部530は、判定不能空域が除外された複数の短視程空域の内で、障害物が存在すると判定された障害空域を特定する。その後、設定部530は、判定不能空域が除外された複数の短視程空域から障害空域を除外し、判定不能空域及び障害空域が除外された複数の短視程空域を、障害物の無い無障害空域と特定する。次に、設定部530は、図9のステップS42と同様の処理を実行することで、飛行体100の位置から、無障害空域を通過して、ステップS92で選択された安全空域に入域した後に、移動先へ到る代替ルートを設定する(ステップS93)。
【0279】
これらの構成によれば、LiDARセンサ132bの異常条件が満足される第2の場合に、制御システム1は、第1時刻に得られた画像情報に基づいて障害物が存在しないと判定された現在の短視程空域を通って安全空域へ飛行体100を移動させる。このため、障害物の座標値を表す座標情報を出力するLiDARセンサ132bの異常条件が満足されても、安全空域へ飛行体100を移動させる間に、飛行体100が障害物に接触することを抑制できる。
【0280】
<実施例の変形例7>
実施例では、制御装置500の制御部540は、短視程ルートの飛行継続が不能であると判定された場合に、安全空域へ飛行体100を移動させる制御を行うと説明したが、これに限定される訳では無い。
【0281】
本変形例に係る制御装置500の制御部540は、短視程ルートの飛行継続が不能であると判定された場合であり、かつ、予め定められた進行制限時間以内に、飛行体100が位置する空間の視程が回復すると推定される場合に、当該空間の視程が回復するまで飛行体100の進行及び高度変更を制限する第3制御を行う。これに対して、予め定められた進行制限時間以内に、飛行体100が飛行する空間の視程が回復しないと推定される場合に、第1制御を行う。
【0282】
本変形例において、空間の視程が回復するとは、当該空間の視程が予め定められた第1視程距離以上となることを意味する。また、本変形例において、予め定められた進行制限時間は、「10」分であるが、これに限定される訳では無く、「10」分よりも長くとも短くとも良い。好適な進行制限時間は、当業者が実験により定めることができる。
【0283】
このため、制御装置500の制御部540は、図9のステップS55で、短視程ルートの飛行継続が不能であると判定されると(ステップS55;No)、図19に示すような空域移動制御処理を実行する(ステップS56)。
【0284】
図19の空域移動制御処理の実行を開始すると、制御装置500の取得部510は、第3位置情報を取得する(ステップS91)。次に、取得部510は、情報記憶部590が予め記憶する進行制限時間を表す情報を取得する。その後、制御装置500の取得部510は、図13の飛行位置関連テーブルにおいて、第3位置情報と、飛行体100の機体ID「100」と、に対応付けられた対地風向風速情報を取得する。次に、推定部520は、取得された対地風向風速情報で表される対地風向から、対地風向風速情報で表される対地風速で、第3点P3において風が吹き続けると仮定する。この仮定と、図9のステップ51で推定された現在の短視程空域の位置と、に基づいて、推定部520は、飛行体100が位置している第3点P3を含む空域が、進行制限時間内に、短視程空域から非短視程空域に変り、視程が回復するか否かを推定する(ステップS91a)。
【0285】
このとき、進行制限時間内に視程が回復しないと推定されると(ステップS91a;No)、制御装置500は、ステップS92からS94の処理を実行することで(ステップS92からS94)、安全空域へ飛行体100を移動させる第1制御を行う。その後、制御装置500は、ステップS95からS104の処理を実行してから、空域移動制御処理の実行を終了する。
【0286】
これに対して、進行制限時間内に視程が回復すると推定されると(ステップS91a;Yes)、制御装置500の制御部540は、飛行ルートの進行を制限する進行制限を、飛行体100を宛先としてデータ通信回路194aへ出力する(ステップS91b)。また、制御装置500の制御部540は、高度の変更を制限する高度変更制限を、飛行体100を宛先としてデータ通信回路194aへ出力する。このようにして、制御装置500は、飛行体100が飛行する空間の視程が回復するまで、飛行体100の進行及び高度変更を制限する第3制御を行う。その後、制御装置500は、ステップS104の処理を実行した後に、空域移動制御処理の実行を終了する。
【0287】
高度変更制限が出力されるのは、飛行体100が、高度を変更することで、飛行体100の飛行が禁止されている飛行禁止空域を飛行することを抑制するためである。
【0288】
本変形例に係る飛行体100のCPU191は、図20及び図21に示すような飛行処理を実行する。飛行処理の実行を開始すると、飛行体100のCPU191は、ステップS01及びS02の処理を実行する(ステップS01及びS02)。その後、CPU191は、高度変更許可フラグの値を、高度の変更が許可されていることを表す値「true」に初期化する。また、CPU191は、飛行ルートの進行が許可されているか、制限されているか、を表す進行許可フラグの値を、進行が許可されていることを表す値「true」に初期化する(ステップS03)。
【0289】
その後、飛行体100のCPU191は、ステップS04からS10の処理を実行する(ステップS04からS10)。ステップS10において、CPU191は、ルート変更命令が受信されていないと判定すると(ステップS10;No)、データ通信回路194aが制御装置500から進行制限と高度変更制限とを受信しているか否かを判定する(ステップS10a)。このために、CPU191は、データ通信回路194aからの進行制限及び高度変更制限の取得を試行し、進行制限及び高度変更制限が取得されない場合に、進行制限及び高度変更制限が受信されていないと判定する(ステップS10a;No)。その後、CPU191は、飛行ルートの進行を、飛行体100を行わせるため、ステップS06から上記処理を繰り返す。
【0290】
これに対して、飛行体100のCPU191は、進行制限及び高度変更制限が受信されたと判定すると(ステップS10a;Yes)、進行許可フラグの値を、飛行ルートの進行が制限されていることを表す値「false」に変更する(ステップS10b)。次に、CPU191は、高度変更許可フラグの値を、高度の変更が制限されていることを表す「false」に変更する(ステップS14)。その後、現在の位置及び高度の変更を制限して飛行体100に飛行させるため、ステップS06から上記処理を繰り返す。
【0291】
ステップS06及びS07の処理を実行した後、飛行体100のCPU191は、短視程フラグの値が、非短視程空域であることを表す値「false」であると判定すると(ステップS15;No)、第2センサ132の異常条件が満足されなくなるため、高度の変更、及び、飛行ルートの進行を制限する必要が無くなると判定する。このため、CPU191は、高度変更許可フラグ及び進行許可フラグの値を値「true」に変更する(ステップS16)。その後、CPU191は、飛行ルートを、必要に応じて高度を変更しながら進行するため、ステップS08から上記の処理を繰り返す。
【0292】
ステップS15において、飛行体100のCPU191は、短視程フラグの値が短視程空域であることを表す値「true」であると判定すると(ステップS15;Yes)、進行許可フラグの値が、進行を許可されていることを表す値「true」であるか否かを判定する(ステップS15a)。このとき、CPU191は、進行許可フラグの値が、値「true」であると判定すると(ステップS15a;Yes)、ステップS17から上記の処理を実行することで、高度の変更を制限しながら飛行ルートを飛行体100に進行させる。
【0293】
これに対して、CPU191は、進行許可フラグの値が、値「true」でなく、飛行ルートの進行が制限されていることを表す値「false」であると判定すると(ステップS15a;No)、プロペラ111から114の単位時間当たりの回転数を変更せず維持させるための制御信号と、ホバリング飛行又は周回飛行若しくは旋回飛行をするための制御信号と、を駆動回路199へ出力する。これにより、飛行体100は、高度及び位置の変更を制限しながら飛行を継続する(ステップS17a)。その後、飛行体100のCPU191は、ステップS09の処理から上記処理を実行する。
【0294】
これらの構成によれば、制御装置500の制御部540は、短視程ルートの飛行継続が不能であると判定された場合であり、かつ、予め定められた進行制限時間以内に、飛行体100が飛行する空間の視程が回復すると推定される場合に、当該空間の視程が回復するまで飛行体100の進行を制限する第3制御を行う。このため、制御システム1は、飛行体100が移動先へ到着する到着時刻の遅れを抑制しながら、飛行体100が障害物に接触することを抑制できる。
【0295】
また、これらの構成によれば、制御装置500の制御部540は、飛行体100が飛行する空間の視程が回復するまで飛行体100の高度変更を制限する。このため、制御システム1は、飛行体100が飛行禁止空域に入域することを抑制できる。
【0296】
本変形例に係る第3制御は、飛行体100が飛行する空間の視程が回復するまで飛行体100の進行及び高度変更を制限する制御であると説明したが、これに限定される訳では無い。第3制御は、飛行体100が飛行する空間の視程が回復するまで飛行体100の進行を制限するが、高度変更を制限しない制御であっても良い。
【0297】
<実施例の変形例8>
実施例の変形例7において、制御装置500の推定部520は、対地風向風速情報で表される対地風向及び対地風速に基づいて、飛行体100が飛行する空域の視程が、進行制限時間内に回復するか否かを推定すると説明したが、これに限定される訳ではない。本変形例に係る制御装置500の推定部520は、画像情報に基づいて、飛行体100が飛行する空域の視程が、進行制限時間内に回復するか否かを推定しても良い。
【0298】
本変形例に係る制御装置500の取得部510は、図13の飛行位置関連テーブルにおいて、飛行体100の機体ID「100」と、第3位置情報と、に対応付けられた画像情報と、当該画像情報が第3点P3で得られた時刻である第3時刻を表す時刻情報と、を取得する。
【0299】
次に、制御装置500の取得部510は、飛行位置関連テーブルに保存されている1又は複数の時刻情報でそれぞれ表される1又は複数の時刻の内で、第3時刻よりも早く、かつ、第3時刻に最も近い時刻を表す時刻情報を取得する。また、取得部510は、取得された時刻情報と、飛行体100の機体ID「100」と、に対応付けられた画像情報を取得する。これにより、取得部510は、第3時刻の1つ前の時刻と、第3時刻の1つ前の時刻において飛行体100で得られた画像情報と、を特定する。
【0300】
その後、制御装置500の推定部520は、図6のステップS25の処理と同様の処理を実行することで、第3時刻の1つ前の時刻に得られた画像情報で表される画像の画素数に占める白色の画素数の割合(以下、第3時刻の1つ前の時刻における白色割合という)を算出する。同様に、推定部520は、第3時刻に得られた画像情報で表される画像の画素数に占める白色の画素数の割合(以下、第3時刻における白色割合という)を算出する。その後、推定部520は、第3時刻の1つ前の時刻における白色割合から、第3時刻における白色割合を減算することで、第3時刻の1つ前の時刻から第3時刻までに減少した白色の画素数が画像の画素数に占める割合(以下、白色減少割合)を算出する。
【0301】
次に、制御装置500の推定部520は、予め定められた正の白色減少割合を表す情報をフラッシュメモリ193bから読み出す。その後、推定部520は、算出された白色減少割合が、予め定められた白色減少割合よりも大きいと、予め定められた進行制限時間内に霧が晴れるため、第3点P3を含む空間の視程が回復すると判定する。これに対して、推定部520は、算出された白色減少割合が、予め定められた白色減少割合以下であると、予め定められた進行制限時間内に、第3点P3を含む空間の視程が回復しないと判定する。
【0302】
<実施例の変形例9>
実施例では、障害空域は、障害物が有る非短視程空域であると説明したが、これに限定される訳ではない。障害空域は、障害物が有る非短視程空域であり、かつ、当該非短視程空域の体積に占める障害物の体積の割合が、予め定められた障害割合よりも大きい空間であっても良い。障害物の体積は、図15のステップS71の処理と同様に、第1時刻に飛行体100で得られた画像と、第1時刻の1つ後の時刻又は1つ前の時刻に飛行体100で得られた画像と、の視差に基づいて、制御装置500の制御部540が算出すれば良い。
【0303】
また、本実施例では、不図示の空域確認処理において、制御装置500の制御部540は、注目空域に含まれる位置で得られた2個以上の画像の視差に基づいて、1又は複数の障害物の位置を検出し、検出された1又は複数の障害物の1つ以上の位置が注目空域に含まれる場合に、注目空域において障害物の存在が確認されたと判定すると説明した。また、制御部540は、検出された1又は複数の障害物の全ての位置が注目空域に含まれない場合に、注目空域において障害物の不存在が確認されたと判定すると説明した。しかし、これらに限定される訳では無く、制御部540は、当該2個以上の画像の視差に基づいて1又は複数の障害物の体積を算出しても良い。この場合、制御部540は、注目空域の体積に障害物の体積が占める割合が予め定められた障害割合よりも大きい場合に、注目空域において障害物の存在が確認されたと判定しても良い。また、制御部540は、注目空域の体積に障害物の体積が占める割合が、予め定められた障害割合以下の場合に、注目空域において障害物の不存在が確認されたと判定しても良い。
【0304】
さらに、本実施例では、不図示の空域確認処理において、制御装置500の制御部540は、注目空域に含まれる位置で飛行体100のイメージセンサ131aから出力された2個以上の画像情報に基づいて、1又は複数の障害物の位置を検出すると説明したが、これに限定される訳では無い。制御部540は、注目空域に含まれる位置で、飛行体100のLiDARセンサ132bから出力された座標情報に基づいて1又は複数の障害物の位置を検出しても良い。この場合、飛行体100は、図6のステップS24において、画像情報を含む飛行位置関連情報と共に、LiDARセンサ132bから出力された座標情報を制御装置500へ送信し、制御装置500は、不図示の情報保存処理で、受信された飛行位置関連情報と共に、座標情報を情報記憶部290へ保存すれば良い。
【0305】
さらに、本実施例では、図15のステップS71において、制御装置500の制御部540は、第1時刻に飛行体100で得られた画像と、第1時刻の1つ後の時刻又は1つ前の時刻に飛行体100で得られた画像と、の視差に基づいて障害物の位置を検出すると説明したが、これに限定される訳では無い。制御部540は、第1時刻から第2時刻までに飛行体100で得られた2つの画像の視差であれば、どのような画像の視差に基づいて障害物の位置を検出しても良い。
【0306】
<実施例の変形例10>
実施例では、飛行体100は、無人航空機であると説明したが、これに限定される訳ではなく、無人飛翔体であっても良い。さらに、実施例では、飛行体100は、プロペラ111から114で揚力及び推力を得るドローンであると説明したが、これに限定される訳ではない。飛行体100は、翼を備え、翼で揚力を得えても良いし、空気よりも比重の小さい気体で満たされた気嚢を備え、気嚢で揚力を得えても良い。また、飛行体100は、ジェットエンジン又はロケットエンジンを備え、ジェットエンジン又はロケットエンジンで推力を得ても良い。同様に、飛行体200は、無人飛翔体であっても良いし、翼を備え、翼で揚力を得えても良いし、気嚢で揚力を得えても良いし、ジェットエンジン又はロケットエンジンで推力を得ても良い。
【0307】
<実施例の変形例11>
実施例では、飛行体100は、制御装置190の下面に、物品を囲持する第1囲持枠121a及び第2囲持枠121bと、第1囲持枠121a及び第2囲持枠121bの移動方向を延設方向にするガイドレール122a及び122bと、を備えると説明したが、これに限定される訳では無い。本変形例に係る飛行体100は、制御装置190の下面に、物品を格納する、図22に示すような格納庫120を備える。
【0308】
本変形例に係る飛行体100の格納庫120は、不図示の1枚の底板、天板、及び、背板、並びに、2枚の側板を備え、これらの板により閉塞されて前方が開放された空間を形成する不図示の箱体を備える。箱体の開口部には、扉を受け止める不図示の扉枠が設置されている。扉は、カンヌキである不図示のデッドボルトを備え、扉枠は、デッドボルトの受座である不図示のストライクを備える。
【0309】
扉は、制御装置190から出力される信号に従って、デッドボルトをストライクへ挿入させることで、扉を施錠する不図示のモータをさらに備えている。当該モータは、制御装置190から出力される信号に従って、デッドボルトをストライクから抜出させることで、扉を解錠する。
【0310】
制御装置190の駆動回路199は、扉が備える不図示のモータに接続されたケーブルに接続されており、CPU191が出力する信号に従ってモータを駆動させる。これにより、駆動回路199は、デッドボルトをストライクから抜出させる又はストライクに挿入させることで、扉の解錠又は施錠を行う。
【0311】
<実施例の変形例12>
実施例では、飛行体100及び200は、無人航空機であると説明した。しかし、飛行体100及び200は、必ずしも無人である必要はなく、制御装置500による制御を除き、自律して移動する物体であれば、人が乗っていても良い。
【0312】
<実施例の変形例13>
また、実施例では、端末装置900は、飛行体100の飛行制御を補助する補助者によって携帯されると説明したが、これに限定される訳では無い。端末装置900は、飛行体100を観察する観察者又は監視する監視者によって携帯されても良い。
【0313】
この場合、観察者又は監視者は、飛行体100の観察結果又は監視結果を口述し、端末装置900は、口述された観察結果又は監視結果を表す音声情報を制御装置500へ送信しても良い。制御装置500は、受信された音声情報に基づいて観察結果又は監視結果を表す音声を出力し、運搬業者の従業員は、出力された音声を確認しても良い。従業員は、出力された音声に基づいて飛行体100の高度の異常を確認すると、飛行体100の高度を変更させる操作を制御装置500に行っても良い。
【0314】
<実施例の変形例14>
実施例において、補助者は、飛行体100の高度の異常を視認すると説明したが、これに限定される訳では無い。補助者は、例えば、飛行体100からの発煙といった異常を視認しても良い。
【0315】
この場合、制御装置500が出力する補助者の音声に基づいて、飛行体100の異常を確認すると、従業員は、飛行体100の位置から最も近く、かつ、飛行体100の着陸が禁止されていない最近着陸場所に飛行体100を着陸させるための操作を制御装置500の入力装置505cに行っても良い。
【0316】
また、制御装置500の入力装置505cが当該操作に応じた信号を入力すると、制御装置500の制御部540は、最近着陸場所に到る代替ルートを表す情報を含み、飛行体100の飛行ルートを当該代替ルートに変更することを命じるルート変更命令と高度変更許可を、飛行体100を宛先としてデータ通信回路504aへ出力しても良い。
【0317】
飛行体100の着陸が禁止されていない場所は、例えば、道路、河原、又は、公園を含むが、これらに限定される訳ではなく、着陸が禁止された場所と異なる場所であれば、どのような場所であっても良い。飛行体100の着陸が禁止されていない場所は、例えば、補助点を含んでも良いし、例えば、山地、丘陵地、校庭、又は、飛行体100の着陸が許可されたポートであっても良い。
【0318】
ポートは、共同住宅、オフィスビル、ホテル、商業施設、若しくは、公共施設のエントランス、又は、一軒家の玄関先であっても良い。また、ポートは、共同住宅、オフィスビル、ホテル、商業施設、又は、公共施設のロビーであっても良い。さらに、ポートは、一軒家、共同住宅、オフィスビル、ホテル、商業施設、又は、公共施設の庭、屋上、ベランダ、又は、駐車場であっても良い。
【0319】
<実施例の変形例15>
実施例では、風向風速センサ131bは、超音波式のセンサであると説明したが、これに限定される訳では無い。風向風速センサ131bは、風車型の風速計と羽式の風向計との組み合わせであっても良い。
【0320】
<実施例の変形例16>
実施例では、端末装置900は、スマートフォンであると説明したが、これに限定される訳ではなく、タブレット型のパーソナルコンピュータ、又は、ノートブック型のパーソナルコンピュータであっても良い。
【0321】
<実施例の変形例17>
実施例では、制御装置500は、情報記憶部590を備えると説明したが、これに限定される訳ではない。本変形例に係る制御装置500は、情報記憶部590を備えない。本変形例に係る制御装置500は、例えば、NAS(Network Attached Storage)であり、かつ、情報記憶部590の機能と同様の機能を有する不図示の情報記憶装置とインターネットINを介して接続されており、情報記憶装置が記憶する情報を用いて、図9に示した飛行制御処理と、図14に示した大きさ推定処理と、図15に示した安全空域設定処理、図16に示した飛行継続可否判定処理と、図17に示した空域移動制御処理と、不図示の情報保存処理、音声通信処理、及び、空域確認処理と、を実行する。本変形例に係る制御システム1は、情報記憶装置を備えても良いし、情報記憶装置を備えなくても良い。
【0322】
<実施例の変形例18>
実施例では、飛行体100が備えるCPU191は、図6に示した空域判定処理を実行すると説明したが、これに限定される訳ではない。制御装置500のCPU501が空域判定処理を実行することで、短視程空域の検出、短視程空域への入域の判定、及び、短視程空域からの出域の判定を行っても良い。
【0323】
また、これに限定される訳ではなく、図6に示した空域判定処理と、図9に示した飛行制御処理と、図14に示した大きさ推定処理と、図15に示した安全空域設定処理、図16に示した飛行継続可否判定処理と、図17に示した空域移動制御処理と、不図示の空域確認処理と、は、飛行体100のCPU191と、制御装置500のCPU501と、によって分散実行されても良い。
【0324】
<実施例の変形例19>
実施例では、制御システム1は、制御装置500を備えると説明した。また、実施例では、制御装置500のCPU501は、図9に示した飛行制御処理と、図14に示した大きさ推定処理と、図15に示した安全空域設定処理、図16に示した飛行継続可否判定処理と、図17に示した空域移動制御処理と、不図示の空域確認処理と、を実行することで、図10に示した取得部510、推定部520、設定部530、及び、制御部540として機能すると説明した。また、制御装置500のハードディスク503bは、情報記憶部590として機能すると説明した。
【0325】
しかし、これらに限定される訳ではなく、制御システム1は、制御装置500を備えなくとも良い。この場合、図9に示した飛行制御処理と、図14に示した大きさ推定処理と、図15に示した安全空域設定処理、図16に示した飛行継続可否判定処理と、図17に示した空域移動制御処理と、不図示の空域確認処理と、は、飛行体100が備える制御装置190のCPU191によって実行されても良い。このため、飛行体100のCPU191が、制御装置500の取得部510、推定部520、設定部530、及び、制御部540に相当する不図示の機能部として機能しても良い。また、飛行体100のフラッシュメモリ193bが、制御装置500の情報記憶部590に相当する不図示の機能部として機能しても良い。
【0326】
また、これらに限定される訳ではなく、制御システム1は、制御装置500を備え、かつ、飛行体100のCPU191が、図9に示した飛行制御処理と、図14に示した大きさ推定処理と、図15に示した安全空域設定処理、図16に示した飛行継続可否判定処理と、図17に示した空域移動制御処理と、を実行しても良い。この場合、図16の飛行継続可否判定処理に用いられる、図12の確認結果テーブルを、制御装置500が記憶しており、飛行体100は、図16のステップS85において、制御装置500から確認結果情報を受信しても良い。
【0327】
このために、飛行体100のCPU191は、1又は複数の通過短視程空域の位置をそれぞれ表す位置情報を含み、かつ、1又は複数の通過短視程空域の確認結果情報の送信を求める確認結果送信要求を生成する。その後、CPU191は、生成された確認結果送信要求を、制御装置500を宛先としてデータ通信回路194aに出力する。
【0328】
次に、制御装置500のデータ通信回路504aが確認結果送信要求を受信すると、制御装置500の取得部510は、確認結果送信要求から、1又は複数の通過短視程空域の位置をそれぞれ表す位置情報を取得する。次に、取得部510は、図12の確認結果テーブルから、取得された1又は複数の位置情報とそれぞれ対応付けられた1又は複数の確認結果情報を取得する。その後、取得部510は、取得された1又は複数の確認結果情報を、飛行体100を宛先としてデータ通信回路504aへ出力する。
【0329】
飛行体100のデータ通信回路194aが1又は複数の確認結果情報を制御装置500から受信すると、飛行体100のCPU191は、確認結果情報をデータ通信回路194aから取得する(ステップS85)。その後、CPU191は、ステップS86の処理から飛行継続可否判定処理の実行を継続する。
【0330】
本発明の実施例及び実施例の変形例1から19は、互いに組み合わせることができる。
【0331】
実施例及び実施例の変形例1から18のいずれかに係る機能を実現するための構成を備えた制御装置500、並びに、実施例の変形例19に係る機能を実現するための構成を備えた制御装置190として提供できることはもとより、複数の装置で構成されるシステムであって、本発明の実施例及び実施例の変形例1から19のいずれかに係る機能を実現するための構成をシステム全体として備えたシステムとして提供することもできる。
【0332】
実施例及び実施例の変形例1から18のいずれかに係る機能を実現するための構成を予め備えた制御装置500として提供できる。また、プログラムの適用により、既存の制御装置を実施例及び実施例の変形例1から18のいずれかに係る制御装置500として機能させることもできる。すなわち、実施例及び実施例の変形例1から18のいずれかで例示した制御装置500による各機能構成を実現させるためのプログラムを、既存の制御装置を制御するコンピュータ(CPUなど)が実行することで、実施例及び実施例の変形例1から18のいずれかに係る制御装置500として機能させることができる。
【0333】
本発明の実施例の変形例19に係る機能を実現するための構成を予め備えた制御装置190として提供できる。また、プログラムの適用により、既存の制御装置を実施例の変形例19に係る制御装置190として機能させることもできる。すなわち、上記実施例の変形例19で例示した制御装置190による各機能構成を実現させるためのプログラムを、既存の制御装置を制御するコンピュータ(CPUなど)が実行することで、実施例の変形例19に係る制御装置190として機能させることができる。
【0334】
このようなプログラムの配布方法は任意であり、例えば、メモリカード、CD(Compact Disc)-ROM、又は、DVD(Digital Versatile Disc)-ROMなどの記録媒体に収納して配布できる他、インターネットなどの通信媒体を介して配布することもできる。
【0335】
本発明に係る方法は、実施例及び実施例の変形例1から18のいずれかに係る制御装置500、並びに、実施例の変形例19に係る制御装置190を用いて実施できる。また、本発明に係る方法は、実施例及び実施例の変形例1から19のいずれかに係る制御システム1を用いて実施できる。
【0336】
また、本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施の形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【0337】
(付記)
(付記1)
予め定められたルートを飛行する飛行体が、視程が予め定められた距離よりも短い短視程空域を検出した第1点の位置を表す情報と、前記短視程空域に入域したと判定した第2点の位置を表す情報と、を取得する取得部と、
取得された前記情報で表される前記第1点の前記位置と、前記第2点の前記位置と、前記第1点で前記飛行体が搭載する第1センサがセンシングすることで得られたセンシング情報と、に基づいて、前記短視程空域の大きさを推定する推定部と、
推定された前記短視程空域の前記大きさと、前記第1点で得られた前記センシング情報と、に基づいて、前記短視程空域よりも安全性が高い安全空域を設定する設定部と、
前記飛行体に搭載され、かつ、前記第1センサと異なる第2センサから出力される情報に基づいて、前記短視程空域を通る前記ルートの飛行継続が不能と判定されると、設定された前記安全空域へ前記飛行体を移動させる制御を行う制御部と、を備える、
ことを特徴とする制御システム。
【0338】
(付記2)
前記第1センサは、空間を光学的にセンシングすることで得られた画像を表す情報を出力するイメージセンサを含み、
前記センシング情報は、前記イメージセンサが出力する前記情報を含み、
前記飛行体は、
前記イメージセンサから出力された前記センシング情報に基づいて、前記短視程空域を検出し、かつ、
前記イメージセンサから出力された前記センシング情報に基づいて、前記短視程空域への前記飛行体の入域を判定し、
前記推定部は、
前記短視程空域が検出される基礎となった前記センシング情報に基づいて、前記短視程空域が検出された前記第1点から、前記短視程空域と、前記短視程空域と異なる非短視程空域と、の境界へ向かう方向を特定し、
前記短視程空域が検出された前記第1点の前記位置と、前記短視程空域への前記入域が判定された前記第2点の前記位置と、に基づいて、前記短視程空域が検出される基礎となった前記センシング情報が得られた時刻における前記飛行体から前記短視程空域までの距離を推定し、
推定された前記距離と、前記第1点から前記短視程空域の前記境界へ向かう前記方向と、に基づいて、前記短視程空域の前記大きさを推定する、
ことを特徴とする付記1に記載の制御システム。
【0339】
(付記3)
前記飛行体に搭載された前記第1センサは、風向及び風速をセンシングし、かつ、センシングされた前記風向及び前記風速を表す情報を出力する風向風速センサをさらに含み、
前記センシング情報は、前記風向風速センサが出力する前記情報をさらに含み、
前記推定部は、前記風向風速センサから出力された前記センシング情報で表される前記風向及び前記風速にさらに基づいて、前記時刻における前記飛行体から前記短視程空域までの距離を推定する、
ことを特徴とする付記2に記載の制御システム。
【0340】
(付記4)
前記推定部は、
前記第1点の前記位置と、前記短視程空域の推定された前記大きさと、に基づいて、前記時刻における前記短視程空域の位置を推定し、
前記風向及び前記風速に基づいて、前記短視程空域の移動方向及び移動速度を推定し、かつ、
推定された前記移動方向及び前記移動速度に基づいて、前記時刻よりも後の前記短視程空域の位置を推定する、
ことを特徴とする付記3に記載の制御システム。
【0341】
(付記5)
前記飛行体に搭載された前記第2センサは、光学的にセンシングすることで得られた地表面から前記飛行体までの高度を表す情報を出力する高度センサをさらに含み、
前記制御部は、前記高度センサから出力される前記情報が、前記高度センサについて予め定められた異常条件を満足する第1の場合に、前記ルートの飛行継続が不能であると判定し、かつ、設定された前記安全空域へ前記飛行体を移動させる前記制御を行う、
ことを特徴とする付記4に記載の制御システム。
【0342】
(付記6)
前記制御部は、前記高度センサから出力される前記情報が、前記高度センサについて予め定められた前記異常条件を満足する前記第1の場合に、前記飛行体の高度を変更させる高度変更制御を行わずに、前記飛行体の高度に在る前記安全空域へ前記飛行体を移動させる第1制御を行う、
ことを特徴とする付記5に記載の制御システム。
【0343】
(付記7)
前記飛行体に搭載された前記第2センサは、空間を光学的にセンシングすることで得られた座標値であり、かつ、前記飛行体の飛行を妨げる可能性のある障害物の座標値を表す情報を出力するLiDAR(Light Detection And Ranging)センサをさらに含み、
前記制御部は、前記第1の場合に、若しくは、前記LiDARセンサから出力される前記情報が、前記LiDARセンサについて予め定められた異常条件を満足する第2の場合に、又は、前記第1の場合かつ前記第2の場合に、前記ルートの飛行の継続が不能であると判定する、
ことを特徴とする付記6に記載の制御システム。
【0344】
(付記8)
前記取得部は、前記LiDARセンサから出力される前記障害物の前記座標値を表す前記情報が、前記LiDARセンサについて予め定められた前記異常条件を満足する前記第2の場合に、予め定められた空域を表す情報と、前記予め定められた空域における障害物の確認結果を表す確認結果情報と、を予め対応づけて記憶する記憶部から、前記ルートが通る前記短視程空域を表す情報に対応付けられた前記確認結果情報を取得し、
前記確認結果情報は、前記予め定められた空域に障害物が存在することが確認されていることを表す存在確認情報、前記予め定められた空域に障害物が存在しないことが確認されていることを表す不存在確認情報、及び、前記予め定められた空域に障害物が存在すること及び存在しないことが確認されていないことを表す未確認情報を含み、
前記制御部は、
前記第2の場合であり、かつ、取得された前記確認結果情報が、前記存在確認情報、又は、前記未確認情報である場合に、前記ルートの飛行の継続が不能であると判定して、設定された前記安全空域へ前記飛行体を移動させる前記制御を行い、かつ、
前記第2の場合であり、かつ、取得された前記確認結果情報が前記不存在確認情報である場合に、前記ルートの飛行継続が可能であると判定して、前記ルートの飛行を前記飛行体に継続させる制御を行う、
ことを特徴とする付記7に記載の制御システム。
【0345】
(付記9)
前記制御部は、前記第2の場合であり、かつ、前記ルートの飛行継続が不能であると判定された場合に、
前記高度変更制御を行わずに、前記飛行体の高度に在る前記安全空域へ前記飛行体を移動させる前記第1制御を行い、かつ、
前記短視程空域を前記飛行体が出域する前に、前記第1制御を開始してから予め定められた移動距離を前記飛行体が移動すると、又は、予め定められた時間が経過すると、前記高度変更制御を行って、前記飛行体の上方に位置する前記安全空域へ前記飛行体を移動させる第2制御を行う、
ことを特徴とする付記8に記載の制御システム。
【0346】
(付記10)
前記設定部は、
前記イメージセンサから出力された前記センシング情報に基づいて、前記飛行体の飛行を妨げる可能性がある障害物の位置を検出し、かつ、
検出された前記障害物の前記位置に基づいて複数の非短視程空域を前記安全空域として設定する、
ことを特徴とする付記2から9のいずれか一つに記載の制御システム。
【0347】
(付記11)
前記設定部は、
前記イメージセンサから出力された前記センシング情報に基づいて、人の位置及び家屋の位置の1つ以上を検出し、かつ、
検出された前記人の前記位置及び前記家屋の前記位置の1つ以上に基づいて、前記複数の安全空域それぞれに優先順位を設定し、
前記制御部は、設定された前記優先順位に基づいて、前記複数の安全空域から選択された空域へ前記飛行体を移動させる前記制御を行う、
ことを特徴とする付記10に記載の制御システム。
【0348】
(付記12)
前記取得部は、予め定められた点の位置を表す情報を取得し、
前記設定部は、取得された前記情報で表される前記点との間に前記短視程空域が存在しない前記安全空域に、前記点との間に前記短視程空域が存在する前記安全空域よりも高い前記優先順位を設定する、
ことを特徴とする付記11に記載の制御システム。
【0349】
(付記13)
予め定められたルートを飛行する飛行体であって、
前記飛行体が、視程が予め定められた距離よりも短い短視程空域を検出した第1点の位置を表す情報と、前記短視程空域に入域したと判定した第2点の位置を表す情報と、を取得する取得部と、
取得された前記情報で表される前記第1点の前記位置と、前記第2点の前記位置と、前記第1点で前記飛行体が搭載する第1センサがセンシングすることで得られたセンシング情報と、に基づいて、前記短視程空域の大きさを推定する推定部と、
推定された前記短視程空域の前記大きさと、前記第1点で得られた前記センシング情報と、に基づいて、前記短視程空域よりも安全性が高い安全空域を設定する設定部と、
前記飛行体に搭載され、かつ、前記第1センサと異なる第2センサから出力される情報に基づいて、前記短視程空域を通る前記ルートの飛行継続が不能と判定されると、設定された前記安全空域へ前記飛行体を移動させる制御を行う制御部と、を備える、
ことを特徴とする飛行体。
【0350】
(付記14)
予め定められたルートを飛行する飛行体、又は、前記飛行体を制御する制御システムが実行する方法であって、
前記飛行体が、視程が予め定められた距離よりも短い短視程空域を検出した第1点の位置を表す情報と、前記短視程空域に入域したと判定した第2点の位置を表す情報と、を、前記飛行体又は前記制御システムが取得する取得ステップと、
取得された前記情報で表される前記第1点の前記位置と、前記第2点の前記位置と、前記第1点で前記飛行体が搭載する第1センサがセンシングすることで得られたセンシング情報と、に基づいて、前記短視程空域の大きさを、前記飛行体又は前記制御システムが推定する推定ステップと、
推定された前記短視程空域の前記大きさと、前記第1点で得られた前記センシング情報と、に基づいて、前記短視程空域よりも安全性が高い安全空域を、前記飛行体又は前記制御システムが設定する設定ステップと、
前記飛行体に搭載され、かつ、前記第1センサと異なる第2センサから出力される情報に基づいて、前記短視程空域を通る前記ルートの飛行継続が不能と判定されると、設定された前記安全空域へ前記飛行体を移動させる制御を、前記飛行体又は前記制御システムが行う制御ステップと、を有する、
ことを特徴とする方法。
【符号の説明】
【0351】
1:制御システム
100、200:飛行体
101から104:プロペラアーム
111から114:プロペラ
120:格納庫
121a:第1囲持枠
121b:第2囲持枠
122a、122b:ガイドレール
131:第1センサ
131a:イメージセンサ
131b:風向風速センサ
132:第2センサ
132a:高度センサ
132b:LiDARセンサ
140:支持脚
190、500:制御装置
191、501、901:CPU
192、502、902:RAM
193a、503a、903a:ROM
193b、903b:フラッシュメモリ
194a、504a、904a:データ通信回路
195a、505a、905a:ビデオカード
195b、505b、905b:表示装置
195c、505c、905c:入力装置
196、906:位置センサ
197a:方位角センサ
197b:姿勢センサ
198:入出力ポート
199:駆動回路
503b:ハードディスク
509a、909a:スピーカ
509b、909b:マイクロフォン
510:取得部
520:推定部
530:設定部
540:制御部
590:情報記憶部
900:端末装置
AS:安全空域
AV1:第1時刻の短視程空域
AV2:第2時刻の短視程空域
IN:インターネット
L1:第1時刻における第1点から短視程空域までの水平距離
L2:第2時刻における第1点から短視程空域までの水平距離
P1:第1点
P2:第2点
P3:第3点
PEl:左端点
PEr:右端点
RD:代替ルート
R:運搬ルート
ψl:第1点P1から左端点PElへ向かう方向とセンシング方向とがなす角度
ψr:第1点P1から右端点PErへ向かう方向とセンシング方向とがなす角度
【要約】      (修正有)
【課題】センサから出力される情報に基づいて、短視程空域を通るルートの飛行継続が不能と判定される場合であっても、短視程空域よりも安全性が高い安全空域へ飛行体を移動させることができる制御システム、飛行体、及び、方法を提供する。
【解決手段】制御システムは、飛行体が短視程空域を検出した第1点P1の位置と、短視程空域に入域したと判定した第2点P2の位置と、第1点で得られたセンシング情報と、に基づいて、短視程空域の大きさを推定する推定部を備える。また、制御システムは、推定された短視程空域の大きさと第1点で得られたセンシング情報とに基づいて、安全空域を設定する設定部を備える。さらに、制御システムは、センサから出力される情報に基づいて、短視程空域を通るルートの飛行継続が不能と判定されると、安全空域へ飛行体を移動させる制御を行う制御部を備える。
【選択図】図7
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22