[1.無人航空機制御システムの全体構成]
以下、本発明に関わる無人航空機制御システムの実施形態の例を説明する。本実施形態では、ゴルフ場でラウンド中のプレイヤが注文した商品を無人航空機が届ける場面を例に挙げて、無人航空機制御システムに係る処理を説明する。
図1は、無人航空機制御システムの全体構成を示す図である。図1に示すように、無人航空機制御システム1は、管理者端末10、無人航空機20、及び移動体端末30を含む。管理者端末10、無人航空機20、及び移動体端末30は、それぞれネットワークを介してデータ送受信可能に接続される。なお、図1では、管理者端末10、無人航空機20、及び移動体端末30を1台ずつ記載しているが、これらは複数台ずつあってもよい。
管理者端末10は、管理者が操作するコンピュータであり、例えば、パーソナルコンピュータ、サーバコンピュータ、又は携帯型端末(タブレット型端末やスマートフォンを含む)である。管理者は、無人航空機制御システム1を管理する者であり、例えば、商品の配送サービスを提供するゴルフ場の係員である。例えば、管理者端末10は、ゴルフ場のクラブハウス内又はその付近で管理者により操作されるようにしてよい。管理者端末10は、制御部11、記憶部12、通信部13、操作部14、及び表示部15を含む。
制御部11は、例えば、少なくとも1つのマイクロプロセッサを含む。制御部11は、記憶部12に記憶されたプログラムやデータに従って処理を実行する。記憶部12は、主記憶部及び補助記憶部を含む。例えば、主記憶部はRAMなどの揮発性メモリであり、補助記憶部は、ハードディスクやフラッシュメモリなどの不揮発性メモリである。通信部13は、有線通信又は無線通信用の通信インタフェースを含む。通信部13は、ネットワークを介してデータ通信を行う。操作部14は、入力デバイスであり、例えば、タッチパネルやマウス等のポインティングデバイスやキーボード等である。操作部14は、操作内容を制御部11に伝達する。表示部15は、例えば、液晶表示部又は有機EL表示部等である。表示部15は、制御部11の指示に従って画面を表示する。
無人航空機20は、人が搭乗しない航空機であり、例えば、バッテリーで駆動する無人航空機(いわゆるドローン)やエンジンで駆動する無人航空機である。本実施形態では、無人航空機20は、クラブハウスの近くに発着所があり、管理者の管理下に置かれるものとする。無人航空機20は、制御部21、記憶部22、通信部23、センサ部24、及び荷物格納部25を含む。なお、制御部21、記憶部22、及び通信部23のハードウェア構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であるので説明を省略する。また、無人航空機20は、プロペラ・モーター・バッテリーなどの一般的な物理的構成も含むが、ここでは説明を省略する。
センサ部24は、カメラ24A及びGPSセンサ24Bを含む。カメラ24Aは、CCDイメージセンサやCMOSイメージセンサなどの撮像素子を含み、当該撮像素子が撮影した画像(静止画又は動画)をデジタルデータとして記録する。GPSセンサ24Bは、衛星からの信号を受信する受信機を含み、当該受信機が受信した信号に基づいて位置情報を検出する。なお、無人航空機20には、任意のセンサが搭載されてよく、センサ部24は、赤外線センサ、音声センサ(マイク)、風向風速センサ、加速度センサ、ジャイロセンサ、地磁気センサ、高度センサ、変位センサ、温度センサ、又は熱検知センサ等を含んでもよい。
荷物格納部25は、無人航空機20に荷物を固定する固定部材を含む。図2は、荷物格納部25を説明するための図であり、無人航空機20の外観図である。図2に示すように、例えば、荷物格納部25は、荷物を格納するスペースを有するフレーム25Aを含む。例えば、プレイヤが注文した商品が箱に格納されて運搬される場合、フレーム25Aは、その内部に箱を載置して固定できる程度の大きさとなっている。
また、荷物格納部25は、配送中の荷物が下に落ちないように支えるアーム25Bと、公知のロック機構を有する固定部材25Cと、を含む。管理者は、荷物をアーム25Bの上に載置すると、固定部材25Cを閉じて荷物が水平方向に動かないように固定する。アーム25Bは、図示しないモータの回転により開閉可能になっており、無人航空機20が所定の受取所に着陸するとアーム25Bが下側に向けて開き、アーム25Bの上に載置された荷物が数cm程度下方に落ちて地上に配置できるようになっている。
なお、荷物格納部25は、荷物を格納及び固定するスペースを有するものであればよく、上記の例に限られない。例えば、荷物を左右方向及び上下方向から挟むことで固定するアームを有していてもよいし、磁力によって荷物を固定するマグネットを有していてもよい。また例えば、荷物格納部25は、荷物を格納する格納容器、ネット、又は袋などを有していてもよい。
移動体端末30は、移動体とともに移動するコンピュータであり、例えば、携帯型端末(タブレット型端末やスマートフォンを含む)又はパーソナルコンピュータ等である。移動体とは、地球上を移動する物体であり、例えば、人などの動物、自動車、バイク、又は電車などである。別の言い方をすれば、移動体は、飛行禁止領域を設定する対象物である。本実施形態では、ゴルフ場において移動するプレイヤが移動体である場合を説明する。移動体端末30は、可搬型の端末であり、例えば、プレイヤが着ている洋服のポケットに格納される。
移動体端末30は、制御部31、記憶部32、通信部33、操作部34、表示部35、及びGPSセンサ36を含む。これらのハードウェア構成は、それぞれ制御部11、記憶部12、通信部13、操作部14、表示部15、及びGPSセンサ24Bと同様であるので説明を省略する。
なお、記憶部12,22,32に記憶されるものとして説明するプログラム及びデータは、ネットワークを介して供給されるようにしてもよい。また、管理者端末10、無人航空機20、及び移動体端末30のハードウェア構成は、上記の例に限られず、種々のコンピュータのハードウェアを適用可能である。例えば、管理者端末10、無人航空機20、及び移動体端末30の各々は、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、光ディスクドライブやメモリカードスロット)を含んでもよい。この場合、情報記憶媒体に記憶されたプログラムやデータが読取部を介して供給されるようにしてもよい。
[2.無人航空機制御システムの処理の概要]
次に、図3及び図4を参照し、無人航空機制御システム1の処理の概要を説明する。図3は、プレイヤが商品を注文する様子を示す図であり、図4は、プレイヤが注文した商品が配送される様子を示す図である。
図3に示すように、プレイヤが操作部34を操作して、専用のアプリケーションを起動したり、ウェブブラウザから所定のウェブサイトに接続したりすると、プレイ中のホールを選択するための注文画面40Aが表示部35に表示される。プレイヤが注文画面40Aからプレイ中のホールを選択すると、商品の受取所を示す注文画面40Bが表示される。商品の受取所は、例えば、プレイ中のホールよりも後のホールの所定場所に設定される。
注文画面40Bの注文ボタン41をプレイヤが選択すると、商品のリスト42を示す注文画面40Cが表示される。プレイヤがリスト42内のアイコン43を選択すると、商品を買い物かごに入れることができる。なお、無人航空機20が配送可能な商品の総重量は上限値が設定されており、注文画面40Cには、買い物かごに入れた商品の総重量と上限値との関係44が表示される。プレイヤが買い物かごに入れた商品を注文するための所定操作を行うと、移動体端末30から管理者端末10に注文内容が送信され、注文が完了した旨のメッセージが注文画面40Dに表示される。
管理者端末10が移動体端末30から注文内容を受信すると、図4に示す注文受付画面50が表示部15に表示される。管理者は、注文受付画面50から注文内容を確認し、商品を専用の箱に入れて荷物格納部25のフレーム25Aの内部に格納して固定部材25Cを閉じてロックする。管理者が操作部14を操作して配送開始ボタン51を選択すると、管理者端末10から無人航空機20に対し、荷物の配送指示が送信される。本実施形態では、クラブハウスCから受取所Qへの最短の飛行ルートが配送指示に含まれるものとする。なお、飛行ルートは、飛行すべき位置だけを示すものではなく、各位置の通過時刻も含む飛行計画を示すものであってもよい。無人航空機20は、配送指示に含まれる飛行ルートに基づいて飛行を開始する。
無人航空機20の飛行中において、管理者端末10は、無人航空機20及び移動体端末30から現在位置を受信し、ラウンド中の各プレイヤ付近及びショットの予想弾道付近を無人航空機20が飛行しないように、飛行ルートを調整する。飛行ルートの変更が必要な場合、管理者端末10は、新たな飛行ルートを無人航空機20に送信する。無人航空機20は、受信した新たな飛行ルートに基づいて、飛行ルートを変更する。このように、無人航空機制御システム1は、無人航空機20が商品の配送に出発してから、商品の配送を終えてクラブハウスCに戻ってくるまで、プレイヤ付近及びショットの予想弾道付近を避けるように飛行ルートを調整するようになっている。以降、当該技術の詳細について説明する。
[3.無人航空機制御システムにおいて実現される機能]
図5は、無人航空機制御システム1で実現される機能の一例を示す機能ブロック図である。図5に示すように、無人航空機制御システム1では、データ記憶部100、無人航空機位置取得部101、移動体位置取得部102、領域設定部103、目的地取得部104、及び飛行制御部105が実現される。本実施形態では、これら各機能が、管理者端末10において実現される場合を説明する。
[3−1.データ記憶部]
データ記憶部100は、記憶部12を主として実現される。データ記憶部100は、無人航空機20の飛行ルートを決定するためのデータを記憶する。ここでは、データ記憶部100が記憶するデータとして、無人航空機20が飛行する地域の地図データと、無人航空機20の目的地の一例である受取所を示す受取所データと、を説明する。
図6は、地図データの一例を示す図である。本実施形態では、無人航空機20はゴルフ場の上空を飛行するので、図6に示すように、地図データは、各コースのレイアウトを示すコースマップであってよい。なお、地図データが示す地図は、平面的な情報のみからなる2次元的なものであってもよいし、高さの情報も含む3次元的なものであってもよい。図6の地図データは、第1ホールH1〜第9ホールH9の各々のゴルフコースのレイアウトを示す。例えば、地図データは、地図上の各位置の緯度経度情報を含む。別の言い方をすれば、地図データは、地図に示された地域の緯度経度情報を含む。なお、緯度経度情報は、地球上の南北方向の位置及び東西方向の位置を特定する情報であり、例えば、度・分・秒の各数値により示される。
なお、無人航空機20の発着所として、地図データが示す地図内の任意の位置が、データ記憶部100に予め登録されているものとする。本実施形態では、クラブハウスC付近に無人航空機20の発着所があるので、クラブハウスC付近の位置Pの緯度経度情報が、無人航空機20の発着所として登録されている。
図7は、受取所データの一例を示す図である。図7に示すように、受取所データには、プレイヤが注文画面40Aから選択したプレイ中のホールと、受取所を識別情報と、の関係が定義されている。例えば、受取所の識別情報として、受取所の緯度経度情報が格納されているようにしてよい。本実施形態では、第5ホールH5〜第9ホールH9のティーグラウンド付近の位置Q5〜Q9が、受取所として指定されているものとする。これら5つの位置Q5〜Q9の何れが受取所として選択されるかは、プレイヤが選択したホールによって定まることになる。
なお、データ記憶部100に記憶されるデータは上記の例に限られない。例えば、データ記憶部100は、商品に関する商品データやプレイヤに関するプレイヤデータを記憶してもよい。例えば、商品データには、商品ごとに、商品の画像・詳細説明・在庫・重量・容積などが格納されており、注文画面40Cを表示させるために参照される。また、プレイヤデータには、プレイヤごとに、プレイヤのアカウント・個人情報・商品の決済情報・移動体端末30の識別情報などが格納されていてもよい。
[3−2.無人航空機位置取得部]
無人航空機位置取得部101は、制御部11を主として実現される。無人航空機位置取得部101は、無人航空機20の現在の位置に関する無人航空機位置情報を取得する。無人航空機位置情報は、無人航空機20の位置を特定可能な情報であればよく、ここでは、GPSセンサ24Bが検出した緯度経度情報を無人航空機位置情報として用いる場合を説明する。なお、無人航空機位置情報は、無人航空機20の通信部33が無線通信する基地局情報(例えば、無線LANのアクセスポイント情報)であってもよい。
例えば、無人航空機位置取得部101は、計時処理を実行し、一定時間が経過するたびに、最新の無人航空機位置情報を取得する。本実施形態では、無人航空機位置取得部101が管理者端末10で実現されるので、無人航空機位置取得部101は、一定時間が経過するたびに、無人航空機20に対して無人航空機位置情報の取得要求を送信する。無人航空機20は、取得要求を受信すると、GPSセンサ24Bで検出した緯度経度情報を、無人航空機位置情報として管理者端末10に送信する。無人航空機位置取得部101は、当該送信された無人航空機位置情報を受信する。
なお、上記のように取得要求が送信されなくても、無人航空機20が計時処理を実行し、一定時間が経過するたびに、無人航空機20から管理者端末10に無人航空機位置情報が送信されるようにしてもよい。また、本実施形態では、無人航空機位置取得部101が定期的に無人航空機位置情報を取得する場合を説明したが、無人航空機位置取得部101は、ランダムに定まるタイミングなどにより不定期的に無人航空機位置情報を取得してもよい。
[3−3.移動体位置取得部]
移動体位置取得部102は、制御部11を主として実現される。移動体位置取得部102は、地球上を移動する移動体の現在の位置に関する移動体位置情報を取得する。移動体位置情報は、移動体の位置を特定可能な情報であればよく、ここでは、GPSセンサ36が検出した緯度経度情報を移動体位置情報として用いる場合を説明する。即ち、本実施形態では、移動体端末30にGPSセンサ36が備えられているので、移動体位置取得部102は、移動体端末30のGPSセンサ36の検出信号に基づいて、プレイヤの現在の位置を示す移動体位置情報を取得することになる。なお、移動体位置情報は、移動体端末30の通信部33が無線通信する基地局情報(例えば、無線LANのアクセスポイント情報)であってもよい。
例えば、移動体位置取得部102は、無人航空機位置取得部101が取得した無人航空機位置情報に基づいて、無人航空機20が所定の場所に近づいたかを判定する。そして、移動体位置取得部102は、無人航空機20が所定の場所に近づいたと判定した場合、移動体端末30に対して移動体位置情報の取得要求を送信する。なお、無人航空機20は、ラウンド中の全プレイヤの邪魔になってはいけないので、取得要求は、注文をしたプレイヤだけでなく、ラウンド中の全プレイヤの移動体端末30に送信される。各プレイヤの移動体端末30は、取得要求を受信すると、GPSセンサ36が検出した緯度経度情報を、移動体位置情報として管理者端末10に送信する。移動体位置取得部102は、当該送信された移動体位置情報を受信する。
例えば、上記所定の場所は、ゴルフ場内の各ホールであってよい。このため、移動体位置取得部102は、無人航空機位置情報と地図データとに基づいて、無人航空機20が何れかのホールに近づいたかを判定することになる。移動体位置取得部102は、無人航空機20が何れかのホールに近づいたと判定した場合に、各移動体端末30に対して取得要求を送信する。
なお、上記のように移動体位置情報が無人航空機20の位置に応じたタイミングで取得されるのではなく、移動体位置取得部102は、ランダムに定まるタイミングなどにより不定期的に移動体位置情報を取得してもよい。更に、移動体位置取得部102は、不定期的に移動体位置情報を取得するのではなく、定期的に移動体位置情報を取得してもよい。例えば、移動体位置取得部102は、計時処理を実行し、一定時間が経過するたびに、最新の移動体位置情報を取得するようにしてもよい。この場合、移動体位置取得部102は、一定時間が経過するたびに、移動体端末30に対して移動体位置情報の取得要求を送信するようにしてよい。なお、上記のように取得要求が送信されなくても、移動体端末30が計時処理を実行し、一定時間が経過するたびに、移動体端末30から管理者端末10に移動体位置情報が送信されるようにしてもよい。
また、移動体位置情報が移動体端末30のGPSセンサ36を利用して取得される場合を説明したが、移動体位置情報は、無人航空機20のカメラ24Aを利用して取得されるようにしてもよい。この場合、移動体位置情報は、無人航空機20とプレイヤとの相対的な位置関係を示す情報であってよい。他にも例えば、センサ部24が熱検知センサを含む場合には、移動体位置情報は、熱検知センサの検出結果に基づいて取得されるようにしてもよい。
[3−4.領域設定部]
領域設定部103は、制御部11を主として実現される。領域設定部103は、移動体位置情報に基づいて、無人航空機20の飛行を禁止する飛行禁止領域を設定する。本実施形態では、ゴルフのプレイヤが移動体である場合を説明するので、領域設定部103は、プレイヤの現在の位置に基づいて、飛行禁止領域を設定することになる。
飛行禁止領域は、無人航空機20が飛行する可能性のある地域に設定され、例えば、無人航空機20が飛行するとプレイヤの邪魔になる領域を意味してもよいし、プレイヤが無人航空機20の飛行の妨げになる領域を意味してもよい。別の言い方をすれば、飛行禁止領域は、無人航空機20が飛行するとプレイヤ又は打球などに接触するおそれのある領域を意味してもよいし、無人航空機20が飛行するとプレイヤの目障り又は耳障りになるおそれのある領域を意味してもよい。
領域設定部103は、移動体位置情報に基づいて定まる位置に、飛行禁止領域を設定する。例えば、領域設定部103は、移動体位置情報が示す位置を含むように飛行禁止領域を設定してもよい。この場合、移動体位置情報が示す位置は、飛行禁止領域内の任意の位置になればよく、例えば、飛行禁止領域の重心点となるようにしてもよいし、重心点とは異なる位置となるようにしてもよい。また例えば、領域設定部103は、移動体位置情報が示す位置を含まないように当該位置から所定距離以内に飛行禁止領域を設定してもよい。この場合、領域設定部103は、移動体位置情報が示す位置を囲むように飛行禁止領域を設定してもよいし、無人航空機位置情報が示す位置と移動体位置情報が示す位置との間に飛行禁止領域を設定してもよい。
飛行禁止領域のサイズ及び形状は、移動体位置情報に関係なく固定サイズ及び固定形状であってもよいが、本実施形態では、領域設定部103は、移動体位置情報に基づいて、飛行禁止領域のサイズ及び形状の少なくとも一方を決定する場合を説明する。別の言い方をすれば、飛行禁止領域のサイズ及び形状の少なくとも一方は、移動体位置情報に応じて変化する。なお、サイズとは、飛行禁止領域の面積を意味し、形状とは、飛行禁止領域の輪郭の形を意味する。ここでは、飛行禁止領域のサイズ及び形状の両方が可変である場合を説明するが、何れか一方のみが可変であってもよい。
移動体位置情報と、飛行禁止領域のサイズ及び形状と、の関係は、プログラムに記述されていてもよいし、数式形式やテーブル形式のデータとしてデータ記憶部100が記憶してもよい。上記関係は、地球上の位置と、飛行禁止領域のサイズ及び形状と、の関係を示すものともいえる。領域設定部103は、移動体位置取得部102が取得した移動体位置情報に関連付けられたサイズ及び形状の飛行禁止領域を設定する。なお、本実施形態では、ゴルフ場内のホールごとに上記関係が定められているものとする。
図8〜図11は、飛行禁止領域が設定される様子を示す図である。ここでは、プレイヤが第9ホールH9にいる場合に設定される飛行禁止領域を例に挙げて説明する。図8に示すように、第9ホールH9は、複数の小領域H91〜H93に分割されている。小領域H91〜H93は、それぞれホール序盤、中盤、終盤の領域である。小領域ごとに、無人航空機20が飛行するとプレイヤの邪魔になってしまう範囲がことなるので、飛行禁止領域のサイズ及び形状を小領域に応じて異ならせるようにしている。
例えば、移動体位置情報が示す位置が小領域H91に含まれる場合、図9に示すように、領域設定部103は、移動体位置情報と、小領域H91に関連付けられた基準方向V91と、に基づいて、飛行禁止領域A91を設定する。基準方向V91は、ボールが小領域H91内にある場合の標準的な飛び出し方向であり、例えば、ティーグラウンドから見て正面方向である。即ち、基準方向V91は、小領域H91からプレイヤがボールを飛ばすと予想される方向、又は、小領域H91にいるプレイヤが見ると予想される方向である。別の言い方をすれば、基準方向V91は、移動体位置情報が示す位置M1から見て飛行禁止領域A91が広がる方向である。
図9に示す例では、領域設定部103は、位置M1を含む半径L1の円領域と、位置M1と基準方向V91とに基づいて定まる扇形領域と、を含む飛行禁止領域A91を設定する。扇形領域は、位置M1を中心とし、位置M1から基準方向V91に伸びる長さL2の線分を半径とした、所定の中心角の領域である。なお、円領域は、無人航空機20がプレイヤの周囲を飛行しないようにするためのものである。即ち、円領域は、無人航空機20がプレイヤに接触しないようにしたり、無人航空機20の飛行音がプレイヤの耳障りにならないようにしたりするためのものである。一方、扇形領域は、無人航空機20が弾道の周囲を飛行しないようにするためのものであり、無人航空機20がプレイヤの視界に入らないようにしたり、無人航空機20とボールとが接触しないようにしたりするためのものでもある。
また例えば、移動体位置情報が示す位置が小領域H92に含まれる場合、図10に示すように、領域設定部103は、移動体位置情報と、小領域H92に関連付けられた基準方向V92と、に基づいて、飛行禁止領域A92を設定する。例えば、領域設定部103は、移動体位置情報が示す位置M2を含む半径L3の円領域と、位置M2と基準方向V92とに基づいて定まる扇形領域と、を含む飛行禁止領域A92を設定する。基準方向V92は、基準方向V91と異なる方向であり、例えば、小領域H92内の任意の点からグリーン内のピンに向けた方向である。また、半径L3,L4は、それぞれ半径L1,L2と異なる。このため、飛行禁止領域A92のサイズ及び形状は、飛行禁止領域A91のサイズ及び形状と異なっている。
また例えば、移動体位置情報が示す位置が小領域H93に含まれる場合、図11に示すように、領域設定部103は、移動体位置情報が示す位置M3を含む半径L5の円領域を飛行禁止領域A93として設定する。このように、飛行禁止領域A93は、基準方向を用いずに設定されてもよい。また、小領域H93にはグリーンがあるので、プレイヤがパットに集中しやすくなるように、半径L5を半径L3,L4よりも長く設定してもよい。飛行禁止領域A93は、扇形領域を含まないので、飛行禁止領域A91,A92のサイズ及び形状と異なっている。
なお、飛行禁止領域は、任意の形状であってよく、上記説明した円形、扇形、又はこれらの組み合わせに限られない。飛行禁止領域は、三角形や四角形などの多角形であってもよいし、楕円形であってもよい。
[3−5.目的地取得部]
目的地取得部104は、制御部11を主として実現される。目的地取得部104は、無人航空機20の目的地に関する目的地情報を取得する。目的地は、無人航空機20の行先であり、本実施形態では、プレイヤが注文した商品の受取所、又は、配送を終えた無人航空機20が帰還する発着所である。このため、本実施形態では、目的地取得部104は、受取所データに示された何れかの受取所の緯度経度情報、又は、発着所として登録された緯度経度情報を目的地情報として取得することになる。
なお、無人航空機20の目的地を自由に設定可能とする場合は、操作部14,34から目的地が入力されるようにしてもよい。即ち、目的地取得部104は、データ記憶部100から目的地情報を取得してもよいし、操作部14,34から入力された目的地情報を取得するようにしてもよい。また、本実施形態では、目的地が設定されている場合を説明するが、無人航空機20がゴルフ場の上空を巡回する場合などのように、特に目的地が設定されていないようにしてもよい。
[3−6.飛行制御部]
飛行制御部105は、制御部11を主として実現される。飛行制御部105は、移動体位置情報に基づいて設定された飛行禁止領域を避けるように、無人航空機20の飛行を制御する。本実施形態では、飛行制御部105が管理者端末10において実現される場合を説明するので、無人航空機20に対して飛行ルートを送信することが、無人航空機20の飛行を制御することに相当する。
例えば、飛行制御部105は、経路探索アルゴリズムに基づいて、飛行禁止領域を避ける飛行ルートを決定する。飛行禁止領域を避ける飛行ルートとは、飛行ルートが飛行禁止領域に一切入らないこと、又は、飛行禁止領域に入っている部分の飛行ルートの距離、割合、若しくは飛行時間が閾値未満であること、を意味する。経路探索アルゴリズム自体は、公知の種々のアルゴリズムを適用可能であり、例えば、ダイクストラ法やエースター法などの最短経路探索アルゴリズムを用いてもよい。例えば、飛行制御部105は、これら公知の経路探索アルゴリズムにおいて、飛行禁止領域を障害物として設定し、当該障害物を避ける経路探索を実行することによって、飛行禁止領域を避ける飛行ルートを決定する。
例えば、飛行制御部105は、現在の飛行ルートと飛行禁止領域とを比較して、現在の飛行ルートが飛行禁止領域を避けるものであるかを判定するようにしてもよい。飛行制御部105は、現在の飛行ルートが飛行禁止領域を避けるものであると判定した場合、飛行ルートを変更しない。一方、飛行制御部105は、現在の飛行ルートが飛行禁止領域を避けるものではないと判定した場合、飛行禁止領域を避ける飛行ルートを新たに取得する。
図12は、飛行禁止領域を避ける飛行ルートを示す図である。図12に示すように、現在の飛行ルートR0は飛行禁止領域A92を横切っているので、飛行制御部105は、現在の飛行ルートR0は飛行禁止領域A92を避けるものでないと判定する。そして、飛行制御部105は、経路探索アルゴリズムに基づいて、飛行禁止領域A92を避ける新たな飛行ルートR1を取得する。図12の例では、新たな飛行ルートR1は、無人航空機20が目的地まで飛行禁止領域を通らずに飛行する飛行ルートとなっている。
例えば、往路であれば、飛行制御部105は、無人航空機20の現在位置又は発着所の位置を出発地点として設定し、受取所の位置を到着地点として設定し、飛行禁止領域を障害物として設定したうえで経路探索アルゴリズムを実行して、新たな飛行ルートを取得すればよい。一方、復路であれば、飛行制御部105は、無人航空機20の現在位置又は受取所の位置を出発地点として設定し、無人航空機20の発着所の位置を到着地点として設定し、飛行禁止領域を障害物として設定したうえで経路探索アルゴリズムを実行して、新たな飛行ルートを取得すればよい。
上記のように、本実施形態では、無人航空機20の目的地が定められているので、飛行制御部105は、無人航空機位置情報と目的地情報とに基づいて、無人航空機20の現在の位置から、飛行禁止領域を避けて目的地に到達するように、無人航空機20の飛行を制御することになる。また、本実施形態では、ゴルフのプレイヤが移動体である場合を説明するので、飛行制御部105は、プレイヤの現在の位置に基づいて設定された飛行禁止領域を避けるように、ゴルフ場内の所定地点に運ぶ荷物を載せた無人航空機20の飛行を制御することになる。
なお、飛行禁止領域を避ける飛行ルートの取得方法は、上記の例に限られない。例えば、飛行制御部105は、経路探索アルゴリズムによって新たな飛行ルートを計算しなおさなくても、現在の飛行ルートのうち、飛行禁止領域に含まれる部分を飛行禁止領域の外に向けて移動させることによって、新たな飛行ルートを取得してもよい。即ち、飛行制御部105は、飛行禁止領域を迂回する飛行ルートを任意の方法によって取得すればよい。
[4.無人航空機制御システムにおいて実行される処理]
図13は、無人航空機制御システム1において実行される処理の一例を示すフロー図である。図13に示す処理は、制御部11,21,31が、それぞれ記憶部12,22,32に記憶されたプログラムに従って動作することによって実行される。本実施形態では、下記に説明する処理が実行されることにより、図5に示す機能ブロックが実現される。
図13に示すように、まず、移動体端末30においては、制御部31は、表示部35に注文画面40を表示させて、プレイヤによる商品注文を受け付ける(S1)。S1においては、図3を参照して説明した流れにより注文操作が行われる。例えば、プレイヤが注文画面40Aから選択したホールが移動体端末30から管理者端末10に送信され、受取所データにおいて当該選択されたホールに関連付けられた受取所の情報が管理者端末10から移動体端末30に送信される。プレイヤが注文画面40Bの注文ボタン41を選択すると、所定の通知が移動体端末30から管理者端末10に送信され、商品データが示す商品の情報が管理者端末10から移動体端末30に送信される。プレイヤが注文画面40Cから商品を選択して所定の操作を行うと注文が確定する。
制御部31は、注文画面40Cから所定の操作が行われると、注文内容を管理者端末10に送信する(S2)。S2において送信される注文内容には、移動体端末30の識別情報及びプレイヤが注文した商品に関する情報が含まれる。管理者端末10においては、注文内容を受信すると、制御部11は、注文された商品を管理者に通知するための注文受付画面50を表示部15に表示させる(S3)。その後、管理者は、プレイヤが注文した商品を箱に入れて荷物格納部25に格納及び固定することになる。
制御部11は、管理者が配送指示ボタン51を選択すると、地図データ及び受取所データに基づいて、往路の初期飛行ルートとして受取所への最短ルートを決定し、無人航空機20に対して配送開始指示を送信する(S4)。S4においては、制御部11は、記憶部12に登録された発着所の緯度経度情報と、受取所データに格納された受取所の緯度経度情報と、を取得する。そして、制御部11は、地図データを参照して、発着所から受取所までの最短経路上の緯度経度情報を取得し、往路の初期飛行ルートとして決定する。配送開始指示には、往路の初期飛行ルートが含まれる。
無人航空機20においては、配送開始指示を受信すると、制御部21は、往路の初期飛行ルートに基づいて、飛行を開始する(S5)。なお、指定された飛行ルートに基づいて飛行する方法自体は、公知の種々の自律飛行制御を適用可能である。例えば、無人航空機20は、GPSセンサ24Bが検出した無人航空機位置情報を自機の現在位置とし、飛行ルートが示す緯度経度上を移動するように、各プロペラの回転を制御する。例えば、無人航空機20は、各プロペラの回転数が同じ又は略同じである場合は水平方向に移動せず、各プロペラの回転数が異なる場合に、回転数が相対的に少ないプロペラの方向に進むので、飛行ルートが示す飛行方向側にあるプロペラの回転数を相対的に下げるように、各プロペラの回転数を示すパラメータを決定すればよい。なお、無人航空機20は、ジャイロセンサや地磁気センサを利用して自機の姿勢や向きを特定すればよい。
無人航空機20が飛行を開始すると、管理者端末10と無人航空機20との間で、往路において無人航空機20が飛行禁止領域を避けるための飛行禁止領域回避処理が実行される(S6)。
図14は、飛行禁止領域回避処理の詳細を示す図である。図14に示すように、無人航空機20において、制御部21は、GPSセンサ24Bが検出した無人航空機位置情報を定期的に管理者端末10に対して送信する(S100)。S100においては、制御部21は、計時処理を実行し、一定時間が経過するたびに最新の無人航空機位置情報を管理者端末10に送信する。
管理者端末10においては、無人航空機位置情報を受信すると、制御部11は、無人航空機位置情報と地図データとに基づいて、無人航空機20が何れかのホールに近づいたかを判定する(S101)。地図データには、各ホールの緯度経度情報が示されているので、S101においては、制御部11は、無人航空機位置情報が示す位置と各ホールとの距離が閾値未満になったかを判定することになる。
何れかのホールに近づいたと判定されない場合(S101;N)、飛行禁止領域回避処理は終了する。この場合、無人航空機20が、コース付近を飛行しておらず、近くにプレイヤがいない蓋然性が高いため、飛行ルートを変更する必要がないものとして、現在の飛行ルートのまま飛行を継続する。
一方、何れかのホールに近づいたと判定された場合(S101;Y)、制御部11は、各移動体端末30に対して移動体位置情報の取得要求を送信して移動体位置情報を取得する(S102)。S102においては、制御部11は、注文をしたプレイヤだけでなく、ラウンド中の全てのプレイヤの移動体端末30に対して取得要求を送信して移動体位置情報を取得する。
なお、管理者端末10と各プレイヤの移動体端末30とは、予めデータ送受信可能に接続されているものとする。また、各プレイヤの移動体端末30を識別する識別情報(例えば、IPアドレスや個体識別情報)は、予め記憶部12に記憶されており、制御部11は、当該識別情報に基づいて、移動体位置情報の取得要求を送信する。各プレイヤの移動体端末30では、取得要求を受信した場合は自動的に移動体位置情報を提供する旨の設定が予めなされているものとする。
制御部11は、地図データと移動体位置情報とに基づいて、無人航空機20が近づいたホールにプレイヤがいるかを判定する(S103)。S103においては、制御部11は、無人航空機20が近づいたホール内又は当該ホールから所定距離以内の移動体位置情報が検出されたかを判定する。
プレイヤがいないと判定された場合(S103;N)、飛行禁止領域回避処理は終了する。この場合、無人航空機20が近づいたホールにプレイヤがおらず、そのまま当該ホールを横切っても差し支えないため、現在の飛行ルートのまま飛行を継続する。
一方、プレイヤがいると判定された場合(S103;Y)、制御部11は、移動体位置情報に基づいて、無人航空機20が近づいたホールに飛行禁止領域を設定する(S104)。S104においては、制御部11は、無人航空機20が近づいたホール内又は当該ホールから所定距離以内の移動体位置情報に基づいて、飛行禁止領域のサイズ及び形状を決定する。制御部11は、当該決定したサイズ及び形状の飛行禁止領域を地図データが示す地図上に設定する。
制御部11は、現在の飛行ルートがS104で設定した飛行禁止領域を横切るかを判定する(S105)。S105においては、制御部11は、飛行ルート上の緯度経度情報が飛行禁止領域に含まれるかを判定する。
飛行禁止領域を横切ると判定されない場合(S105;N)、飛行禁止領域回避処理は終了する。この場合、無人航空機20が近づいたホールにプレイヤはいるが、その付近を飛行せず、そのまま当該ホールを横切っても差し支えないため、現在の飛行ルートのまま飛行を継続する。
一方、飛行禁止領域を横切ると判定された場合(S105;Y)、制御部11は、S104で設定した飛行禁止領域を避けるように、新たな飛行ルートを決定して無人航空機20に対して送信する(S106)。S106においては、制御部11は、経路探索アルゴリズムに基づいて、最新の無人航空機位置情報から目的地(往路であれば受取所であり、復路であれば発着所である。)まで飛行禁止領域を迂回する飛行ルートを計算する。
無人航空機20においては、新たな飛行ルートを受信すると、制御部21は、当該新たな飛行ルートに変更し(S107)、飛行禁止領域回避処理は終了する。S107においては、制御部21は、自律飛行制御において参照する飛行ルートを新たな飛行ルートに切り替える。
図13に戻り、S6の飛行禁止領域回避処理が実行されると、無人航空機20においては、制御部21は、GPSセンサ24Bが検出した無人航空機位置情報に基づいて、受取所に到着したかを判定する(S7)。S7においては、制御部21は、無人航空機位置情報と、往路の飛行ルートの終点の緯度経度情報と、が一致するかを判定する。
受取所に到着したと判定されない場合(S7;N)、S6の飛行禁止領域回避処理が再び実行され、受取所に到着するまで、飛行禁止領域を避けるように飛行ルートの調整が行われる。
一方、受取所に到着したと判定された場合(S7;Y)、制御部21は、受取所に商品を配置し、所定の配送完了通知を管理者端末10に対して送信する(S8)。S8においては、制御部21は、各プロペラの回転数を落として無人航空機20の高度を低下させて地上に着陸させる。なお、着陸場所を案内するための所定のマークを受取所に配置しておき、制御部21は、カメラ24Aで当該マークを検出することによって、着陸位置の精度を高めてもよい。無人航空機20が着陸すると、制御部21は、荷物格納部25のアーム25Bが開くようにモータを制御し、荷物を数cm程度下方に落下させる。なお、制御部21は、プロペラの回転数を0にした場合に無人航空機20が着陸したと判定してもよいし、無人航空機20が地上に接する面に感圧センサを配置しておき、感圧センサの検出信号に基づいて着陸を検知してもよい。また、配送完了通知は、所定のデータ形式で行われるようにすればよい。
管理者端末10においては、配送完了通知を受信すると、制御部11は、復路の初期飛行ルートを決定して、帰還開始指示を送信する(S9)。S9においては、制御部11は、記憶部12に登録された発着所の緯度経度情報と、最新の無人航空機位置情報又は受取所の緯度経度情報と、を取得する。そして、制御部11は、地図データを参照して、無人航空機20の現在の位置又は受取所から発着所までの最短経路上の緯度経度情報を取得し、復路の初期飛行ルートとして決定する。帰還開始指示には、往路の初期飛行ルートが含まれる。
無人航空機20においては、帰還開始指示を受信すると、制御部21は、制御部21は、帰還開始指示に含まれる復路の初期飛行ルートに基づいて、発着所への帰還を開始し(S10)、管理者端末10と無人航空機20との間で、往路において無人航空機20が飛行禁止領域を避けるための飛行禁止領域回避処理が実行される(S11)。S11では、再びS100〜S107の処理が実行され、復路において、無人航空機20が何れかのホールに近づいた場合に、そのホールにいるプレイヤの近くを飛行しないように、飛行ルートの調整が行われることになる。
無人航空機20においては、制御部21は、GPSセンサ26Bが検出した無人航空機位置情報に基づいて、発着所に帰還したかを判定する(S12)。S12においては、制御部21は、無人航空機位置情報と、復路の飛行ルートの終点の緯度経度情報と、が一致するか否かを判定する。
発着所に帰還したと判定されない場合(S12;N)、S11の飛行禁止領域回避処理が再び実行され、発着所に到着するまで、飛行禁止領域を横切らないように飛行ルートの調整が行われる。一方、発着所に帰還したと判定された場合(S12;Y)、本処理は終了する。この場合、無人航空機20は発着所に着陸するように、プロペラの回転数を下げることになる。
以上説明した無人航空機制御システム1によれば、移動体位置情報に基づいて設定した飛行禁止領域を避けるように無人航空機20が飛行するので、移動体の移動に応じて変化する飛行禁止領域を避けて無人航空機20を飛行させることができる。即ち、移動体の移動に応じて飛行禁止領域が変化したとしても、当該飛行禁止領域を避けるように無人航空機を飛行させることができる。このため、無人航空機20が地上の移動体の邪魔になったり、地上の移動体が無人航空機20の邪魔になったりすることを確実に防止することができる。
また、飛行制御部105は、飛行禁止領域を避けながら受取所や発着所などの目的地までの飛行ルートを決定するので、無人航空機20の現在の位置から飛行禁止領域を避けて目的地に到達するように無人航空機20を飛行させることができる。このため、無人航空機20をより確実に目的地に到達させることができる。更に、無人航空機20が目的地までの間にある移動体の邪魔になったり、目的地までの間にある移動体が無人航空機20の邪魔になったりすることを防止することもできる。
また、領域設定部103が移動体位置情報に基づいてサイズ及び形状を決定した飛行禁止領域を避けるように無人航空機20を飛行させることができる。即ち、飛行禁止領域のサイズ及び形状を移動体位置情報に応じた最適なものとすることができるので、無人航空機20が移動体の邪魔になったり、移動体が無人航空機20の邪魔になったりすることを確実に防止することができる。
また、実施形態で説明したように、移動体位置情報がゴルフ場でプレイするプレイヤの位置を示す場合には、ゴルフ場におけるプレイヤの移動に応じて変化する飛行禁止領域を避けて無人航空機20を飛行させることができる。このため、ゴルフ場において無人航空機20が荷物を配送する場合に、無人航空機20がラウンド中のプレイヤの邪魔(例えば、視覚的又は聴覚的な邪魔になり集中力を削いだり、打球が無人航空機20に当たったりする)になったり、プレイヤが無人航空機20の配送の邪魔(例えば、打球が無人航空機20に当たる)になったりすることを確実に防止することができる。その結果、無人航空機20が荷物の配送及びクラブハウスへの帰還を確実に完了することができる。
[5.変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
図15は、変形例の機能ブロック図である。図15に示すように、下記に説明する変形例では、実施形態の機能に加えて、状況取得部106、性質取得部107、移動予測部108、情報取得部109、及び指定受付部110が実現される。ここでは、これら各機能が管理者端末10により実現される場合を説明する。
(1)例えば、プレイヤが同じ位置にいたとしても、その時の状況によっては飛行禁止領域が異なることがある。例えば、プレイヤが移動している場合は、すぐにショットするわけではなく、無人航空機20がプレイヤの視界や打球方向に入ったとしても邪魔にならない蓋然性が高いので、飛行禁止領域は狭く設定してもよい。一方、プレイヤが移動していない場合は、アドレスに入っていたりショット方向を確認したりしており、無人航空機20がプレイヤの視界や打球方向に入ると邪魔になる蓋然性が高いので、飛行禁止領域は広く設定してもよい。このため、本変形例では、プレイヤの現在の状況に応じて飛行禁止領域を設定する場合を説明する。
変形例(1)の無人航空機制御システム1は、状況取得部106を含む。状況取得部106は、制御部11を主として実現される。状況取得部106は、移動体の現在の状況に関する移動体状況情報を取得する。なお、以降の変形例では、実施形態と同様に、移動体の一例としてプレイヤを説明するので、移動体状況情報は、プレイヤの現在の状況を示すことになる。
例えば、移動体状況情報は、プレイヤの移動状況、プレイヤの動作、又はプレイヤの向きなどを示すようにしてよい。ここでは、移動体状況情報が、プレイヤの現在の移動状況に関するものである場合を説明する。移動状況は、移動中であるか否かを示してもよいし、移動方向又は移動速度を示してもよい。ここでは、移動状況が移動中であるか否かを示す場合を説明する。なお、移動中とは、単位時間あたりの移動量(移動体位置情報の変化量)が閾値以上であることを意味する。
例えば、状況取得部106は、移動体位置情報の時系列的な変化に基づいて、移動体状況情報を取得する。状況取得部106は、移動体位置情報の単位時間あたりの変化量が閾値未満であれば、移動中ではないと判定し、移動中ではない旨を示す移動体状況情報を取得する。一方、状況取得部106は、移動体位置情報の単位時間あたりの変化量が閾値以上であれば、移動中であると判定し、移動中である旨を示す移動体状況情報を取得する。
領域設定部103は、移動体状況情報に基づいて、飛行禁止領域を設定する。移動体状況情報と飛行禁止領域との関係は、プログラムに記述してもよいし、数式形式やテーブル形式のデータとしてデータ記憶部100に記憶しておいてもよい。この関係には、移動体状況情報と、飛行禁止領域の位置・サイズ・形状の少なくとも1つと、が定義されているようにしてよい。領域設定部103は、状況取得部106が取得した移動体状況情報に関連付けられた飛行禁止領域を設定する。
ここでは、移動体状況情報が移動状況を示す場合を説明するので、領域設定部103は、移動体状況情報が示す現在の移動状況に基づいて、飛行禁止領域を設定することになる。例えば、領域設定部103は、プレイヤが移動している場合と、プレイヤが移動していない場合と、で飛行禁止領域の位置、サイズ、及び形状の少なくとも1つを異ならせる。
図16は、プレイヤが移動中に設定される飛行禁止領域を示す図であり、図17は、プレイヤが停止中に設定される飛行禁止領域を示す図である。図16に示すように、領域設定部103は、移動体状況情報が移動中を示す場合には、移動体位置情報が示すプレイヤの位置M4を中心とした半径L6の円を飛行禁止領域A94として設定する。即ち、プレイヤが移動中であればすぐにショットするわけではないので、打球方向を特に考慮しない比較的小さな飛行禁止領域A94を設定してよい。
また例えば、図17に示すように、領域設定部103は、移動体状況情報が移動中ではないことを示す場合には、移動体位置情報が示すプレイヤの位置M5を所定方向に所定距離だけ移動させた位置M6を中心とした短径L7及び長径L8の楕円を飛行禁止領域A95として設定する。即ち、プレイヤが移動でなければすぐにショットする可能性があるため、打球方向を考慮した比較的大きな飛行禁止領域A95を設定してよい。
図16及び図17に示すように、例えば、領域設定部103は、プレイヤが移動していない場合の飛行禁止領域が、プレイヤが移動している場合の飛行禁止領域よりも広くなるように、飛行禁止領域を決定するようにしてよい。飛行制御部105は、領域設定部103が移動体状況情報に応じて設定した飛行禁止領域を避ける飛行ルートを決定する。飛行禁止領域を避ける飛行ルートの決定方法自体は、実施形態で説明した方法と同様であってよい。この点は、後述する変形例でも同様である。
変形例(1)によれば、移動体状況情報に応じた飛行禁止領域を避けるように無人航空機20を飛行させることができる。プレイヤのその時の状況に応じた飛行禁止領域が設定されることで、無人航空機20がプレイヤの邪魔になったり、プレイヤが無人航空機20の邪魔になったりすることを、より確実に防止することができる。更に、例えば、プレイヤのその時の状況では不要なほど大きな飛行禁止領域が設定されることも防止できるので、無人航空機20が無駄に大きく迂回することを防止することができる。その結果、無人航空機20の消費電力の低減を図るとともに、目的地への到着時間を早めることができる。
また、移動体状況情報がプレイヤの移動状況を示す場合には、プレイヤの移動状況に応じた飛行禁止領域を避けるように無人航空機20を飛行させることができる。即ち、プレイヤの移動状況に応じた最適な飛行禁止領域を設定することができる。
なお、移動体状況情報に応じてどのような飛行禁止領域を設定するかは、無人航空機制御システム1を利用する場面や移動体の種類などに応じて定めておけばよい。例えば、移動体が電車などである場合は、無人航空機20との接触を回避するための空間的な余裕を確保するために、上記説明した変形例とは逆に、領域設定部103は、移動体状況情報が移動している旨を示す場合の飛行禁止領域が、移動体状況情報が移動していない旨を示す場合の飛行禁止領域よりも広くなるように、飛行禁止領域を設定してもよい。
また例えば、先述したように、移動状況は移動方向を示してもよく、この場合は、状況取得部106は、移動体位置情報の時系列的な変化に基づいて移動方向を取得すればよい。例えば、領域設定部103は、移動体状況情報が示す移動方向側に広い飛行禁止領域を設定するようにしてよい。
また例えば、移動状況は移動速度を示してもよく、この場合は、状況取得部106は、移動体位置情報の時系列的な変化に基づいて移動速度を取得すればよい。例えば、領域設定部103は、無人航空機20との接触を回避するための空間的な余裕を確保するために、移動体状況情報が示す移動速度が速いほど飛行禁止領域を大きくし、移動速度が遅いほど飛行禁止領域を小さくしてよい。また例えば、上記とは逆に、領域設定部103は、変形例で説明したように移動速度に応じてプレイヤがアドレス中であるかを推測し、移動体状況情報が示す移動速度が速いほど飛行禁止領域を小さくし、移動速度が遅いほど飛行禁止領域を大きくしてもよい。
また例えば、先述したように、移動体状況情報は移動状況以外の状況を示してもよく、例えば、移動体状況情報が動作の種類を示す場合には、状況取得部106は、移動体位置情報の変化に基づいて動作の種類を取得してもよいし、無人航空機20のカメラ24Aが撮影した画像に基づいて動作の種類を取得してもよい。この場合、領域設定部103は、動作に応じた飛行禁止領域を設定することになる。例えば、領域設定部103は、プレイヤがアドレス動作をしている場合は、プレイヤが歩く動作をしている場合よりも飛行禁止領域を大きくしてもよい。
また例えば、移動体状況情報が向き(例えば、プレイヤの顔の向きや体の向きなど)を示す場合には、状況取得部106は、移動体位置情報の変化に基づいて向きを取得してもよいし、無人航空機20のカメラ24Aが撮影した画像に基づいて向きを取得してもよい。この場合、領域設定部103は、向きに応じた飛行禁止領域を設定することになる。例えば、領域設定部103は、プレイヤの顔の向きや体の向き方向に広くなるような飛行禁止領域を設定してよい。
(2)また例えば、実施形態では移動体が人である場合を説明したが、先述したように、移動体は、自動車、バイク、又は電車などであってもよい。人、自動車、バイク、及び電車は、それぞれ移動のしかたが互いに異なるので、移動体が何であるかに応じて飛行禁止領域を異ならせてもよい。
変形例(2)の無人航空機制御システム1は、性質取得部107を含む。性質取得部107は、制御部11を主として実現される。性質取得部107は、移動体の性質に関する移動体性質情報を取得する。性質は、移動体が何であるかを示す情報である。別の言い方をすれば、性質は、分類学的に定義された分類、移動体の種類又は使用目的、移動体の能力又は性能などであってよい。ここでは、移動体性質情報は、人、自動車、バイク、又は電車の何れであるかを示すものである場合を説明する。
例えば、性質取得部107は、移動体端末30との通信内容に基づいて、移動体性質情報を取得するようにしてよい。性質取得部107は、移動体端末30から、移動体端末30の識別情報を取得し、当該識別情報に基づいて移動体性質情報を取得する。この場合、移動体端末30の識別情報と、移動体性質情報と、の関係を示すデータは、予めデータ記憶部100に記憶されているものとする。この関係には、例えば、ある移動体端末30は人とともに移動するものであり、別の移動体端末30は自動車とともに移動するものである、のような関係が示されている。性質取得部107は、移動体端末30から取得した識別情報に関連付けられた移動体性質情報を取得することになる。これにより、無人航空機制御システム1は、移動体が何であるかを特定することができる。
なお、移動体性質情報は、操作部14,34から入力されてもよい。この場合、性質取得部107は、操作部14,34から入力された移動体性質情報を取得することになる。他にも例えば、移動体性質情報は、無人航空機20のカメラ24Aが撮影した画像に基づいて取得されるようにしてもよい。この場合、性質取得部107は、カメラ24Aが地上を撮影した撮影画像を画像解析することによって、移動体性質情報を取得すればよい。この画像解析では、人や自動車などの典型的な形状を示すテンプレート画像を利用したテンプレートマッチングが行われるようにしてよい。
領域設定部103は、移動体性質情報に基づいて、飛行禁止領域を設定する。移動体性質情報と飛行禁止領域との関係は、プログラムに記述してもよいし、数式形式やテーブル形式のデータとしてデータ記憶部100に記憶しておいてもよい。この関係には、移動体性質情報と、飛行禁止領域の位置・サイズ・形状の少なくとも1つと、が定義されているようにしてよい。領域設定部103は、性質取得部107が取得した移動体性質情報に関連付けられた飛行禁止領域を設定することになる。
例えば、領域設定部103は、移動体性質情報に関連付けられた位置に、移動体性質情報に関連付けられたサイズ及び形状の飛行禁止領域を設定するようにしてよい。別の言い方をすれば、領域設定部103は、移動体性質情報が示す性質に応じて、設定する飛行禁止領域を異ならせることになる。
例えば、領域設定部103は、移動体性質情報が自動車や電車を示す場合、移動体性質情報が人を示す場合よりも大きな飛行禁止領域を設定するようにしてよい。また例えば、自動車や電車は移動可能な方向が限られており急な方向転換ができないため、領域設定部103は、移動体性質情報が自動車や電車を示す場合、移動体性質情報が人を示す場合に比べて、移動方向側に広い飛行禁止領域を設定してもよい。
変形例(2)によれば、移動体性質情報に応じた飛行禁止領域を避けるように無人航空機20を飛行させることができる。即ち、移動体が何であるかによって飛行禁止領域が変わるので、無人航空機20が移動体の邪魔になったり、移動体が無人航空機20の邪魔になったりすることを、より確実に防止することができる。更に、例えば、移動体の性質によっては不要なほど大きな飛行禁止領域が設定されることも防止できるので、無人航空機20が無駄な迂回をすることを防止することができる。その結果、無人航空機20の消費電力の軽減を図るとともに、目的地への到着時間を早めることができる。
なお、分類学的には同じ名前の物体であったとしても、その種類によっては、飛行禁止領域を異ならせた方がよいこともある。例えば、同じ電車であったとしても、新幹線と在来線とでは移動速度が異なるので、電車の種類に応じて飛行禁止領域を異ならせてもよい。この場合、移動体性質情報は、電車の種類を示すことになり、領域設定部103は、移動体性質情報が新幹線を示す場合、移動体性質情報が在来線を示す場合よりも大きな飛行禁止領域を設定するようにしてよい。
また例えば、同じ自動車であったとしても、高速道路と一般道とでは移動速度が異なるので、自動車がどこを走るものであるかに応じて飛行禁止領域を異ならせてもよい。この場合、移動体性質情報は、どこを走行する自動車であるかを示すことになり、領域設定部103は、移動体性質情報が高速道路上の車を示す場合、移動体性質情報が一般道の車を示す場合よりも大きな飛行禁止領域を設定するようにしてよい。
また例えば、同じバスであったとしても、乗り合いバスと観光バスとでは飛行禁止領域を異ならせた方がよいこともある。例えば、乗り合いバスでは、停留所に停車して乗客を乗せた後すぐに発車することが多いが、観光バスは、その場でしばらく停車して観光が終了した後に発車することが多い。移動体性質情報は、移動体の使用目的を示すものであってもよく、領域設定部103は、移動体性質情報が示す使用目的に基づいて、飛行禁止領域を設定してもよい。例えば、領域設定部103は、乗り合いバスの場合には、観光バスよりも大きな飛行禁止領域を設定してもよい。
また例えば、プレイヤによっては、飛距離を出せるプレイヤもいれば飛距離を出せないプレイヤもいるので、プレイヤの飛距離に応じて飛行禁止領域を異ならせてもよい。この場合、移動体性質情報は、プレイヤの飛距離(即ち、プレイヤの能力)を示すことになり、領域設定部103は、領域設定部103は、移動体性質情報が示す飛距離が長いほど飛行禁止領域を広くし、移動体性質情報が示す飛距離が短いほど飛行禁止領域を狭くしてもよい。
(3)また例えば、実施形態の無人航空機制御システム1は、飛行中の無人航空機20がコースに近づいた場合に、その時のプレイヤの位置に応じて臨機応変に飛行ルートを調整する場合を説明したが、プレイヤの動きを予め予測しておいて、飛行ルートを決定するようにしてもよい。本変形例では、無人航空機制御システム1は、無人航空機20が出発する前に、各プレイヤの現在の位置からの移動を予測して、予測結果に基づく飛行禁止領域を避ける飛行ルートを取得する場合を例に挙げて説明する。
変形例(3)の無人航空機制御システム1は、移動予測部108を含む。移動予測部108は、制御部11を主として実現される。移動予測部108は、移動体位置情報に基づいて、プレイヤの現在の位置からの移動を予測する。移動予測部108は、未来の1時点におけるプレイヤの位置を予想してもよいし、未来の複数の時点におけるプレイヤの位置を時系列的に予想してもよい。ここでは、移動予測部108が時系列的にプレイヤの移動を予測する場合を説明する。
移動体位置情報と、未来の各時点におけるプレイヤの位置と、の関係は、プログラムに記述されていてもよいし、数式形式又はテーブル形式によりデータ記憶部100に予め記憶されていてもよい。この関係は、プレイヤの現在の位置と未来の位置との関係が定義するものとも言える。例えば、この関係には、プレイヤの現在の位置と、現在のn分後(nは任意の数値)の位置と、の関係が定義されているようにしてよい。未来の位置は、ゴルフ場における標準的なプレイ進行に応じて定義しておけばよい。
領域設定部103は、移動予測部108の予測結果に基づいて、飛行禁止領域を設定する。領域設定部103は、移動予測部108が予測した未来の各時点におけるプレイヤの位置に基づいて、飛行禁止領域を設定する。各時点の飛行禁止領域の設定方法自体は、実施形態や上記変形例で説明した方法と同じであってよい。即ち、領域設定部103は、現在以降の時点ごとに、実施形態で説明した方法と同様にして飛行禁止領域を設定すればよい。
図18は、変形例(3)における飛行禁止領域の設定方法を示す図である。図18に示すt軸は、時間軸である。ここでは、図18に示すように、ラウンド中のプレイヤが3組存在し、各組の移動体位置情報が示す位置を符号M7〜M9で記載している。ある時点t1における位置M7は、第3ホールH3でプレイ中のプレイヤの位置を示し、位置M8は、第4ホールでプレイ中のプレイヤの位置を示し、位置M9は、第5ホールでプレイ中のプレイヤの位置を示している。
例えば、プレイヤは、ボールがピンに近づくようにショットし、各ホールを順番にプレイするので、プレイヤの未来の位置は、現在の位置よりもピンに近い位置又は順番的に後のホール内の位置に定められているものとする。このため、時点t1よりも後の時点t2の位置M7〜M9は、時点t1の位置M7〜M9よりも、ピンに向けて移動していたり次のホールに移動していたりする。同様に、時点t2よりも後の時点t3の位置M7〜M9は、時点t2の位置M7〜M9よりも、ピンに向けて移動していたり次のホールに移動していたりする。
本変形例では、図18に示すような時系列的な移動が予測されるので、領域設定部103は、移動予測部108により予測された時点ごとに飛行禁止領域を設定する。即ち、領域設定部103は、プレイヤの位置の時系列的な変化に基づいて、飛行禁止領域の時系列的な変化を予想し、飛行制御部105は、飛行禁止領域の時系列的な変化に基づいて、無人航空機の飛行制御を行うことになる。
例えば、図18のような移動予測例において、無人航空機20が位置Pから受取所Q6まで飛行する場合、時点t1に第3ホールH3〜第5ホールH5付近を飛行しようとすると、飛行禁止領域A7〜A9が密集しているので、無人航空機20は、大きく迂回しなければならない。このため、飛行制御部105は、無人航空機20が時点t2又はt3において、第3ホールH3〜第5ホールH5を飛行するように、出発を待機したり飛行途中で待機したりする飛行ルートを取得してもよい。
変形例(3)によれば、プレイヤの現在の位置からの移動を予測し、予測結果に基づく飛行禁止領域を避けるように無人航空機20を飛行させることができるので、より確実に、無人航空機20が飛行禁止領域を避けるように飛行させることができる。プレイヤの位置を予測することで、移動体位置情報を取得する頻度を低減することができるので、通信量を削減することができる。
また、プレイヤの移動予測に基づいて時系列的に飛行禁止領域を設定する場合には、各時点に応じた詳細な移動予測をもとに最適な飛行禁止領域を設定することができる。
(4)また例えば、無人航空機制御システム1は、到着時間や移動距離を考慮して飛行ルートを決定してもよい。その際に、無人航空機20に到着時間を優先して飛行させるか、移動距離を優先して飛行させるかを、プレイヤや管理者などが指定できるようにしてもよい。
本変形例の無人航空機制御システム1は、情報取得部109及び指定受付部110を含む。これらは、制御部11を主として実現される。情報取得部109は、無人航空機が飛行禁止領域を避けて目的地に飛行する場合の到着時間に関する時間情報と移動距離に関する距離情報とを取得する。なお、飛行制御部105は複数の飛行ルートの候補を取得するようにしてもよく、この場合、情報取得部109は、飛行ルートの候補ごとに時間情報と距離情報を取得してもよい。飛行ルートの候補は、経路探索アルゴリズムに基づいて、発着所と受取所の間の最短経路、及び、最短経路との距離的な違いが閾値未満となる経路が取得されるようにすればよい。
情報取得部109は、飛行制御部105が取得した飛行ルートに基づいて、時間情報と距離情報を取得する。例えば、情報取得部109は、飛行ルート上の緯度経度情報に基づいて、総飛行距離を計算することによって距離情報を取得する。また例えば、情報取得部109は、飛行ルートの総飛行距離を所定の飛行速度で割ることによって時間情報を取得する。飛行速度は、無人航空機20の標準的な速度であり、予め指定された数値であってよい。
指定受付部110は、到着時間又は移動距離の何れを優先するかに関する指定を受け付ける。例えば、指定受付部110は、操作部14又は操作部34からの入力に基づいて、指定を受け付ける。
飛行制御部105は、時間情報と距離情報とに基づいて、無人航空機20の飛行制御を行う。例えば、飛行制御部105は、指定受付部110が受け付けた指定結果に基づいて、無人航空機20の飛行制御を行う。飛行制御部105は、到着時間を優先する旨の指定が受け付けられた場合、最も到着時間の短い飛行ルートに基づいて無人航空機20の飛行制御を行う。一方、飛行制御部105は、移動距離を優先する旨の指定が受け付けられた場合、最も移動距離の短い飛行ルートに基づいて無人航空機20の飛行制御を行う。
変形例(4)によれば、到着時間や移動距離を考慮した飛行ルートに基づいて、無人航空機20を飛行させることができる。このため、無人航空機20に無駄のない飛行をさせることができる。
また、到着時間を優先して無人航空機20を飛行させたり、移動距離を優先して無人航空機20を飛行させたりすることができる。このため、例えば、プレイヤや管理者に応じた飛行ルートで無人航空機20を飛行させることができる。
なお、飛行制御部105が時間情報と距離情報とに基づいて飛行制御を行う方法は、上記の例に限られず、特に到着時間や移動時間の優先を指定させなくてもよい。例えば、飛行制御部105は、時間情報と距離情報に基づいて所定の評価値を取得し、当該評価値に基づいて飛行ルートを決定してもよい。評価値は、時間的、距離的、消費エネルギー的なコストを示すものであってよい。例えば、評価値を算出するための数式を定義しておけばよい。この数式は、時間情報と距離情報が変数となっており、時間情報と距離情報の各々は、互いに異なる重み付けがなされていてよい。飛行制御部105は、評価値が示すコストを最小とする飛行ルートを取得するようにしてもよい。
(5)また例えば、現在の飛行ルートが飛行禁止領域を横切っていたとしても、プレイヤが移動すれば、その部分が飛行禁止領域に含まれなくなる可能性がある。このため、飛行制御部105は、無人航空機20を待機させることによって、飛行禁止領域を避けるように無人航空機20の飛行を制御するようにしてもよい。
ここでは、実施形態で説明したように、無人航空機20が近づいたコースの飛行禁止領域を避ける場合を説明する。例えば、飛行制御部105は、現在の飛行ルートが飛行禁止領域を避けるものであるかを判定し、避けるものでないと判定した場合、飛行禁止領域の直前で無人航空機20を待機させる。直前とは、飛行禁止領域から所定距離以内の場所である。
飛行制御部105が管理者端末10で実現される場合には、飛行制御部105は、所定の待機命令を無人航空機20に送信することになる。待機命令は、所定のデータ形式で送信されるようにすればよい。なお、無人航空機20がその場でホバリングすること、地上に着陸すること、又はある一定範囲内(例えば、半径5m以内の領域)を周遊して留まることが、待機することに相当する。
移動体位置取得部102は、無人航空機20が待機している間、移動体位置情報を繰り返し取得する。領域設定部103は、移動体位置情報が取得されるたびに飛行禁止領域を設定する。飛行制御部105は、最新の飛行禁止領域と飛行ルートとを比較し、飛行ルートが最新の飛行禁止領域を避けるものであるかを判定する。飛行制御部105は、飛行ルートが最新の飛行禁止領域を避けるものでないと判定された場合は、無人航空機20の待機を継続させ、飛行ルートが最新の飛行禁止領域を避けるものであると判定された場合は、所定の飛行再開指示を無人航空機20に送信する。飛行再開指示は、所定のデータ形式で送信されるようにすればよい。無人航空機20は、飛行再開指示を受信すると、待機を終了して飛行ルート上の飛行を開始することになる。
変形例(5)によれば、無人航空機20が無駄に迂回してしまうことを防止することができる。その結果、無人航空機20が目的地に早く到着したり、無人航空機20の消費電力を低減したりすることができる。
なお、無人航空機20を待機させる場所は、飛行禁止領域の直前でなくてもよい。例えば、変形例(3)のように、予め飛行禁止領域を予測する場合には、無人航空機20を発着所で待機させ、出発を遅らせるようにしてもよい。また例えば、無人航空機20の飛行中において、変形例(3)と同様の方法によって移動予測部108に飛行禁止領域の変化を予測させ、飛行制御部105は、実施形態で説明したような新たな飛行ルートで飛行させる場合の到着時間又は移動距離と、待機して現在の飛行ルートで飛行させる場合の到着時間又は移動距離と、に基づいて、無人航空機20を待機させるかを決定してもよい。この場合、到着時間や移動距離は、変形例(4)と同様の方法で取得されるようにすればよい。飛行制御部105は、待機して現在の飛行ルートで飛行した方が新たな飛行ルートよりも到着時間が早い場合に、無人航空機20を待機させてもよいし、待機して現在の飛行ルートで飛行した方が新たな飛行ルートよりも移動距離が短い場合は、無人航空機20を待機させてもよい。飛行制御部105は、到着時間と移動距離の何れを優先するかに応じて、無人航空機20を待機させるかを決定すればよい。
(6)また例えば、上記変形例(1)〜(5)の何れか2つ以上を組み合わせるようにしてもよい。
また例えば、移動体端末30は、ゴルフカート内に配置されたゴルフカート端末であってよい。この場合、移動体はゴルフカートとなる。ゴルフカート端末は、例えば、プレイヤにコースの詳細を案内するための端末であってよい。移動体位置取得部102は、ゴルフカート端末である移動体端末30のGPSセンサ36の検出信号に基づいて、ゴルフカートの現在の位置を示す移動体位置情報を取得してもよい。領域設定部103は、ゴルフカートの現在の位置に基づいて飛行禁止領域を設定し、飛行制御部105は、ゴルフカートの現在の位置に基づいて設定された飛行禁止領域を避けるように飛行することになる。
また例えば、無人航空機20が荷物を運ぶ場合を例に挙げて説明したが、移動体が移動する上空を無人航空機20が飛行する場面に無人航空機制御システム1を適用すればよい。例えば、無人航空機20が所定の場所の状況をカメラ24Aで撮影して情報提供を行うような場合にも無人航空機制御システム1を適用してもよい。
また例えば、管理者端末10、無人航空機20、及び移動体端末30が無人航空機制御システム1に含まれる場合を説明したが、無人航空機制御システム1は、1つ以上のコンピュータが含まれていればよく、他のコンピュータが含まれていてもよい。例えば、無人航空機20が移動体位置情報を検出する場合には、移動体端末30は無人航空機制御システム1に含まれていなくてもよい。更に、無人航空機20が管理者端末10の機能を備える場合には、管理者端末10は無人航空機制御システム1に含まれなくてもよい。
また例えば、上記説明した各機能は、無人航空機制御システム1の何れかのコンピュータで実現されるようにすればよく、管理者端末10で実現されるものとして説明した機能は、無人航空機20、移動体端末30、又は他のコンピュータで実現されてもよい。例えば、データ記憶部100が無人航空機20によって実現されるようにしてもよい。また例えば、移動体位置取得部102が無人航空機20によって実現される場合には、無人航空機20は、移動体端末30から直接的に移動体位置情報を取得してもよいし、自身のセンサ部24の検出内容をもとに移動体位置情報を取得してもよい。また例えば、領域設定部103が無人航空機20によって実現される場合には、無人航空機20は、地図データに基づいて飛行禁止領域を設定するようにしてよい。また、飛行制御部105が無人航空機20によって実現される場合には、無人航空機20は、自身で飛行ルートを決定してプロペラの回転を制御することによって、飛行を制御するようにしてよい。更に、上記説明した各機能のうち、移動体位置取得部102、領域設定部103、及び飛行制御部105以外の機能は省略してもよい。