以下、発明を実施するための形態について説明する。尚、以下の説明において、同一のまたは類似する構成について共通の符号を付して説明を省略することがある。また、構成が共通する複数の装置や機能について、小文字のアルファベット等の添え字を付して夫々を区別することがある。
[第1実施形態]
図1に、第1実施形態として説明する、無人飛行体(以下、UAV(UAV:Unmanned Aerial Vehicle)と称する。)の現在位置を測定するシステム(以下、「位置測定システム1」と称する。)の概略的な構成を示している。同図に示すように、位置測定システム1は、UAV100、飛行監視制御装置(以下、「PC200」と称する。)、およびトータルステーション(以下、「TS300」と称する。)を含む。
UAV100は、空撮、測量、構造物等の状態診断、荷物の運搬等の様々な用途や業務に多目的に用いられる。UAV100の種類は限定されないが、例えば、ドローン(マルチコプタ(クアッドコプタ(quadcopter)、ヘキサコプタ(hexacopter)、オクトコプタ(octocopter)等)、回転翼航空機(ヘリコプタ)、固定翼機(飛行機)等)である。
UAV100は、GPS装置(GPS:Global Positioning System)を備えており、所定数以上のGPS衛星から送られてくる信号(以下、「GPS信号」と称する。)を受信することにより測定される自機の現在位置(以下、「現在位置(GPS)」と称する。)を利用した自律飛行を行うことができる。また、UAV100は、PC200を介して送られてくる、TS300によって測定された自機の現在位置(以下、「現在位置(TS)」と称する。)を利用して自律飛行を行うことができる。また、UAV100は、PC200や無線送信器(プロポ)から送られてくる無線信号による遠隔制御によって飛行することができる。尚、現在位置(GPS)および現在位置(TS)は、例えば、UAV100が現場の画像や映像を撮影する目的で使用される場合に撮影位置を特定する情報等として利用する等、自律飛行以外の目的にも利用される。
図2にUAV100の一例を示す。同図はUAV100を側方から眺めた図である。例示するUAV100は、その基本骨格(フレーム)として、各種装置21や各種積載物22を搭載するための台座11(荷台)、台座11から略水平方向に延出し、その端部に推力機構12(プロペラ、動力モータ等)が設けられる複数の支持アーム13、台座11から下方に延出する複数(本例では4つ)の脚部14等を有する。
UAV100の下部には、TS300から出射されるレーザ光(以下、「照射光」と称する。)を、当該照射光の入射方向に向けて反射する光反射器50が、光反射器取付部117を介して搭載されている。尚、光反射器50の搭載位置や搭載方法は必ずしも限定されない。例えば、UAV100を崖下等の主にTS300が設置される位置よりも低い空域を飛行させる場合は光反射器50をUAV100の上部に設けてもよい。
図1に戻り、PC200は、ノートブック型のコンピュータ等の情報処理装置(コンピュータ)である。PC200はUAV100と双方向の無線通信を行う。また、PC200はTS300と双方向の通信(無線通信または有線通信)を行う。
PC200は、TS300から送られてくる現在位置(TS)を受信し、受信した現在位置(TS)をUAV100に送信(転送)する。またPC200は、UAV100から送られてくる、UAV100の飛行状態に関する情報(現在位置、姿勢、速度、加速度、角速度、角加速度、ナビゲーションに用いる各種情報等。以下、「飛行状態情報」と称する。)、各構成の動作状態に関する情報(印加電圧、消費電流、バッテリ残量、エラーの有無等。以下、「動作状態情報」と称する。)等を受信し、受信した飛行状態情報および動作状態情報に基づきUAV100の監視や制御(UAV100に搭載されている機器の制御、UAV100の飛行の遠隔制御等)を行う。
TS300は、光波測距儀(electro-optical distance measuring instrument)およびセオドライト(theodolite)を備え、光波測距儀により光反射器50までの距離を、またセオドライト(theodolite)によりTS300からみた光反射器50の方向(角度)を、夫々計測することにより光反射器50の現在位置を測定する。尚、本実施形態では、TS300は、測量業務等に使用される、移動する光反射器50を自動追尾する機構(以下、「自動追尾機構」と称する。)を備えるタイプのものであるものとする。TS300は、地上の所定位置に固定して用いられる。本例では、TS300を地上に設置された三脚350に取り付けて用いる。また、TS300は、設置された自己位置(緯度、経度、高度)を取得する自己位置取得装置(GPS等)を備える。
TS300の光波測距儀は、UAV100に搭載されている光反射器50に向けて照射光を照射し、当該照射光と当該照射光が光反射器50で反射して戻ってくる反射光を受信し、照射光と反射光を干渉させることにより得られる情報(位相差、時間差等)に基づきUAV100の距離を測定する。そしてTS300は、光波測距儀により測定した距離と、セオドライトから取得される角度とに基づき、UAV100の現在位置(UAV100の緯度、経度、高度を特定可能な相対座標や絶対座標で表された位置情報)を求め、求めた現在位置(以下、「現在位置(TS)」と称する。)をPC200に送信する。
図3Aは、UAV100が備える主な構成を説明するブロック図である。同図に示すように、UAV100は、飛行制御装置111(FCS:Flight Control System、FCU:Flight Control Unit)、各種センサ112、慣性航法装置(以下、「EKF装置113」と称する。)(EKF:Extended Kalman Filter)、GPS装置114、推力発生装置115、通信装置116、光反射器取付部117、バッテリ118、および光反射器50を備える。尚、上記構成のうち、飛行制御装置111、各種センサ112、EKF装置113、GPS装置114、推力発生装置115、通信装置116、および光反射器取付部117は、内部バス等により互いに双方向通信が可能な状態で接続されている。
飛行制御装置111は、マイクロコンピュータ(マイコン)等の情報処理装置を用いて構成されており、主にUAV100の飛行や各種動作に関する制御を行う。飛行制御装置111は、各種センサ112、EKF装置113、GPS装置114、および通信装置116から入力される情報(各種計測値)に基づき推力発生装置115を制御することにより、UAV100の飛行制御や姿勢制御を行う。飛行制御装置111は、例えば、そのファームウェアを更新することにより、飛行制御や飛行制御以外にも様々な機能を実装することができる。後述する各種の機能は、例えば、上記ファームウェアを更新することにより飛行制御装置111の機能として実装される。
各種センサ112は、例えば、3軸ジャイロセンサ(角速度センサ)、3軸加速度センサ、気圧センサ、地磁気センサ(2軸、3軸)、超音波センサ等である。尚、UAV100は、必ずしも以上に示した総てのセンサを備えていなくてもよいし、更に別の種類のセンサを備えていてもよい。
EKF装置113は、各種センサ112によりリアルタイムに計測される情報(加速度、角速度等)に加え、有意な現在位置(GPS)が取得できている場合は更に現在位置(GPS)を、また、有意な現在位置(TS)が取得できている場合は更に現在位置(TS)を、所定のアルゴリズム(拡張カルマンフィルタ(EKF:Extended Kalman Filter)を用いたアルゴリズム等)に与えることにより、UAV100の現在位置(以下、「現在位置(EKF)」と称する。)を求めて出力する。
GPS装置114は、所定数以上のGPS衛星から送られてくるGPS信号を受信して現在位置(GPS)を算出し、算出した現在位置(GPS)を飛行制御装置111に入力する。
推力発生装置115は、動力モータおよびモータ制御装置(ESC:Electronic Speed Controller)を備える。モータ制御装置は、飛行制御装置111から送られてくる制御信号に応じて動力モータの回転を制御する。
通信装置116は、PC200や無線送信機(プロポ)との間での所定のプロトコルに従った双方向の無線通信を行う。無線通信の方式(変調方式、周波数、媒体(電波、光)等)は必ずしも限定されないが、例えば、2.4GHz帯や5GHz帯の周波数を用いた各種プロトコルに従ったデータ通信、映像信号/音声信号の伝送等である。
光反射器取付部117は、例えば、光反射器50のTS300から送られてくる照射光を有効に反射することが可能な領域(以下、「反射可能域」と称する。)が自機に対して所定の角度に維持されるように光反射器50を支持する。
バッテリ118は、例えば、リチウムポリマー二次電池であり、UAV100の各構成に対して夫々を駆動させるのに必要な電力を供給する。
光反射器50は、TS300から照射されるレーザ光(照射光)をTS300の方向に向けて反射する光学機器であり、例えば、360度プリズム、レトロリフレクタ、再帰反射器、再帰反射材、コーナーキューブ等である。
図3Bは、UAV100が備える主な機能を説明するブロック図である。同図に示すように、UAV100は、記憶部120、現在位置(TS)受信部130、飛行制御部140、および現在位置(EKF)送信部150の各機能を備える。これらの機能は、例えば、飛行制御装置111を構成する情報処理装置がプログラムを実行することにより実現される。
記憶部120は、前述した現在位置(TS)を示す情報である現在位置(TS)121、前述した現在位置(GPS)を示す情報である現在位置(GPS)122、および前述した現在位置(EKF)を示す情報である現在位置(EKF)123を記憶する。
現在位置(TS)受信部130は、PC200から送られてくる現在位置(TS)を受信し、受信した現在位置(TS)を現在位置(TS)121として管理する。
飛行制御部140は、EKF装置113が出力する現在位置(EKF)に基づき自機の飛行を制御する。
現在位置(EKF)送信部150は、現在位置(GPS)および現在位置(EKF)のうちの少なくともいずれかをリアルタイムにPC200に送信する。
図4Aは、PC200のハードウェア構成例を示すブロック図である。PC200は、情報処理装置(コンピュータ)を用いて構成され、プロセッサ201(CPU(Central Processing Unit)、MPU(Micro Processing Unit)等)、主記憶装置202(ROM(Read Only Memory)、RAM(Random Access Memory)、不揮発性メモリ(NVRAM(Non Volatile RAM))等)、補助記憶装置203(SSD(Solid State Drive)、ハードディスクドライブ、光学式記憶装置(CD(Compact Disc)、DVD(Digital Versatile Disc)等))、入力装置204(キーボード、マウス、タッチパネル、記録媒体の読取装置等)、出力装置205(表示装置(LCD(Liquid Crystal Display)等)、音声出力装置(スピーカ等)等)、および通信装置206を備える。
通信装置206は、例えば、無線通信モジュール(2.4GHz帯/5GHz帯無線通信モジュール、Bluetooth(登録商標)モジュール、WiFi(登録商標)モジュール等)、有線通信モジュール(有線LANモジュール、シリアル通信モジュール(USBモジュール、RS-232Cモジュール等)等を用いて構成される。通信装置206は、UAV100との間の無線通信、およびTS300との間の通信(無線通信または有線通信)を実現する。尚、PC200には、例えば、オペレーティングシステム、ファイルシステム、DBMS(DataBase Management System)、各種アプリケーションソフトウェア等が適宜導入される。
図4Bは、PC200が備える主な機能を説明するブロック図である。同図に示すように、PC200は、記憶部210、飛行管理部220、飛行監視制御部230、現在位置(TS)受信部240、現在位置(TS)UAV送信部245、現在位置(EKF)受信部250、および現在位置(EKF)TS送信部255の各機能を備える。これらの機能は、PC200のプロセッサ201が、主記憶装置202に格納されているプログラムを読み出して実行することにより、もしくは、PC200のハードウェアが本来的に備える機能によって実現される。
上記機能のうち、記憶部210は、飛行管理情報211、飛行監視情報212、現在位置(TS)213、現在位置(EKF)214、およびTS設置位置217を記憶する。飛行管理情報211は、UAV100の飛行に関する情報(飛行計画、飛行実績(飛行ログ)等)を含む。飛行監視情報212は、UAV100から送られてくる動作状態情報および飛行状態情報を含む。現在位置(TS)213は、TS300から受信し、UAV100に送信(転送)される。現在位置(EKF)214は、UAV100において取得されてUAV100から送られてくる現在位置(EKF)である。TS設置位置217は、TS300が設置されている位置(緯度、経度、高度)を示す情報を含む。TS300の設置位置は、例えば、TS300に備えられているGPS機器によって取得される。尚、TS設置位置217の内容はPC200のユーザインタフェースを介してユーザが手動で設定してもよい。
飛行管理部220は、UAV100の飛行計画、飛行ルート、飛行実績、飛行中に行う作業や業務(撮影等)に関する情報等を飛行管理情報211として管理する。飛行管理部220は、例えば、飛行計画、飛行ルート、飛行実績、飛行中にUAV100が行う作業に関する機器の制御計画等をユーザが管理(登録、編集、削除等)するためのユーザインタフェースを提供する。
飛行監視制御部230は、UAV100からテレメトリ(telemetry)方式の通信等により送られてくる前述の動作状態情報や飛行状態情報を飛行監視情報212として管理し、飛行監視情報212に基づき、UAV100の監視や制御、例えば、飛行計画に従ったUAV100の遠隔制御や飛行中の安全確保のための遠隔制御等を行う。
現在位置(TS)受信部240は、TS300から有線通信または無線通信により送られてくる現在位置(TS)をリアルタイムに受信し、現在位置(TS)213として管理する。尚、UAV100がTS300の視野外に入った場合、TS300はUAV100の現在位置を測定できないが、その場合でも、現在位置(TS)受信部240は、現在位置を測定できていないことを意味する情報(エラーコード、N/A、空白等)が設定された現在位置(TS)をTS300から受信する。
現在位置(TS)UAV送信部245は、現在位置(TS)受信部240がTS300から受信した現在位置(TS)をUAV100に送信(転送)する。尚、現在位置(TS)受信部240がTS300から現在位置(TS)を受信してから現在位置(TS)UAV送信部245がUAV100に現在位置(TS)を送信(転送)するまでの時間は、UAV100の飛行に支障が生じない程度に十分に短いものとする。
現在位置(EKF)受信部250は、UAV100から現在位置(EKF)をリアルタイムに受信し、受信した現在位置(EKF)を現在位置(EKF)214として管理する。現在位置(EKF)受信部250は、例えば、飛行監視制御部230がテレメトリ方式の通信等によってUAV100から取得する情報から現在位置(EKF)を取得してもよい。
現在位置(EKF)TS送信部255は、現在位置(EKF)受信部250がUAV100から受信した現在位置(EKF)と、当該現在位置(EKF)に基づきUAV100を追尾する旨の指示(以下、「追尾指示」と称する。)とを、TS300に送信する。追尾指示は、例えば、自動追尾停止命令、位置合わせ命令(水平、垂直方向の照射光の方向調整を指示する命令)、および自動追尾再開命令の実行を順に指示する内容を含む。現在位置(EKF)TS送信部255は、UAV100から受信した現在位置(EKF)をTS300に送信するにあたり、当該現在位置(EKF)を、TS設置位置217を用いて、TS300における(自TSが用いている)座標系で表した情報に変換する。尚、この座標変換は、TS300側で行うようにしてもよい。
図5Aに、TS300の構成を説明するブロック図を、図5Bに、TS300が備える主な機能を説明するブロック図を、図5Cに、TS300の外観の一例(TS300を正面方向から眺めた図)を示す。
図5A、図5Cに示すように、TS300は、マイコン301(CPU、MPU等)、記憶装置302(ROM、RAM、不揮発性メモリ等)、ユーザインタフェース303(キーボード、タッチパネル、表示装置(LCD(Liquid Crystal Display)等)、音声出力装置(スピーカ等)等)、通信装置304、光波測距儀305、セオドライト306(theodolite)、および自動追尾機構317を備える。
通信装置304は、無線通信モジュール(Bluetooth(登録商標)モジュール、WiFi(登録商標)モジュール等)、有線通信モジュール(有線LANモジュール、シリアル通信モジュール(USBモジュール、RS-232Cモジュール等))等を用いて構成され、飛行監視制御部230との間の通信(無線通信または有線通信)を行う。
光波測距儀305は、照射光(レーザ光)を対象物に照射して当該照射光の対象物からの反射光を受光し、照射光と反射光の位相差や時間差に基づき光反射器50までの距離を計測する。
セオドライト306は、望遠鏡や球心望遠鏡、角度表示器等を用いて構成され、対象物(光反射器50)の水平面並びに垂直面における角度を計測する。
マイコン301は、光波測距儀305により計測された対象物までの距離と、セオドライト306により計測された対象物の水平面並びに垂直面における角度に基づき対象物の現在位置(対象物の現在位置を絶対座標や相対座標で表した情報)を求める。また、マイコン301は、上記現在位置を、ユーザインタフェース303を介してユーザに提供する。
自動追尾機構317は、光波測距儀305が照射する照射光の方向(もしくは反射光の受光窓(受光レンズ)の光軸の方向が、対象物である飛行中のUAV100(光反射器50)の方向を常に向いているように制御(自動視準および自動追尾)するための回転機構(制御モータ、当該制御モータを制御する電子部品等)を含む。
図5Bに示すように、TS300は、記憶部310、現在位置(TS)生成部320、現在位置(TS)送信部325、現在位置(EKF)受信部330、および自動追尾機構制御部340の各機能を備える。これらの機能は、例えば、マイコン301が、記憶装置302に格納されているプログラムを読み出して実行することにより実現される。
同図に示すように、記憶部310は、現在位置(TS)311および現在位置(EKF)312を記憶する。
現在位置(TS)生成部320は、マイコン301が求めたUAV100の現在位置を現在位置(TS)311として管理する。
現在位置(TS)送信部325は、現在位置(TS)生成部320が取得した現在位置(TS)311を、通信装置304を介してリアルタイムにPC200に送信する。
現在位置(EKF)受信部330は、PC200からリアルタイムに送られてくる現在位置(EKF)を受信し、受信した現在位置(EKF)を現在位置(EKF)312として管理する。
自動追尾機構制御部340は、例えば、UAV100がTS300の視野外に入ることにより現在位置(TS)生成部320がUAV100の位置を測定できなくなった場合に、現在位置(EKF)受信部330がPC200から受信する現在位置(EKF)に基づきTS300の向き(照射光を照射する方向)を制御し、UAV100の追尾を継続する。これにより、UAV100がTS300の視野内に再び入った際、TS300は直ちにUAV100の位置(現在位置(TS))の測定を開始することができ、現在位置(TS)に基づくUAV100の飛行制御を直ちに再開することができる。
続いて、位置測定システム1の各構成(UAV100、PC200、TS300)の主な動作について順に説明する。
図6は、UAV100が行う主な処理(以下、「飛行制御処理S600」と称する。)を説明するフローチャートである。以下、同図とともに飛行制御処理S600について説明する。尚、飛行制御処理S600において、UAV100の現在位置(EKF)送信部150は、PC200の飛行監視制御部230による監視制御等のため、PC200に対して常に現在位置(EKF)をリアルタイムに送信しているものとする。
同図に示すように、飛行制御部140は、PC200や無線送信器(プロポ)から離陸を指示する信号(モータ駆動指令等)を受信すると、UAV100を離陸させる(S611)。
続いて、各種センサ112により取得される情報のうち、EKF装置113が現在位置の算出に利用可能な情報(3軸加速度センサや3軸ジャイロセンサ(角速度センサ)が出力する情報等)がEKF装置113に入力される(S612)。
続いて、飛行制御部140は、現在位置(TS)受信部130がPC200から有意な現在位置(TS)をリアルタイムに受信しているか否かを判定する(S613)。飛行制御部140は、上記判定を、例えば、現在、十分な受信電界強度でPC200と通信を行えているか否か、現在位置(TS)に有意な位置情報(エラーコードやN/A、空白等でない、TS300が実際に測定したUAV100の位置(緯度、経度、高度)を示す情報)が含まれているか否かを判定することにより行う。PC200から有意な現在位置(TS)をリアルタイムに受信できている場合(S613:YES)、処理はS614に進む。PC200から有意な現在位置(TS)を受信できていない場合(S613:NO)、処理はS615に進む。
S614では、飛行制御部140は、現在位置(TS)受信部130がリアルタイムに受信している有意な現在位置(TS)を、EKF装置113に入力する。
S615では、飛行制御部140は、GPS装置114が、当該UAV100の飛行制御に必要な精度の現在位置(GPS)を取得できているか否かを判定する。飛行制御部140は、上記判定を、例えば、GPS装置114が、当該UAV100の飛行制御に必要な精度を確保可能な数以上の数のGPS衛星からGPS信号を受信できているか否かに基づき行う。飛行制御部140が、GPS装置114が、当該UAV100の飛行制御に必要な精度の現在位置(GPS)を受信できていると判定した場合(S615:YES)、処理はS616に進み、受信できていないと判定した場合(S615:NO)、処理はS617に進む。
S616では、飛行制御部140は、GPS装置114が出力する現在位置(GPS)を、EKF装置113に入力する。
S617では、飛行制御部140は、EKF装置113が出力する現在位置(EKF)に基づき、UAV100の飛行制御を行う。
S618では、飛行制御部140は、飛行制御処理S600の停止を指示する操作(例えば、電源オフを指示する操作)が行われたか否かを判定する。飛行制御部140が、飛行制御処理S600の停止を指示する操作が行われていないと判定した場合(S618:NO)、処理はS612に戻る。飛行制御部140が、飛行制御処理S600の停止を指示する操作が行われたと判定した場合(S618:YES)、飛行制御部140は、自機の電源をオフする等して飛行制御処理S600を終了する。
図7は、PC200が行う主な処理(以下、「現在位置転送処理S700」と称する。)を説明するフローチャートである。以下、同図とともに現在位置転送処理S700について説明する。
同図に示すように、PC200は、所定の起動操作が行われると、現在位置転送処理S700を開始する(S711)。
続いて、PC200の現在位置(TS)受信部240が、有意な現在位置(TS)をTS300からリアルタイムに受信できているか否かを判定する(S712)。現在位置(TS)受信部240は、上記判定を、例えば、現在位置(TS)に有意な位置情報(エラーコードやN/A、空白等でない、TS300が実際に測定したUAV100の位置(緯度、経度、高度)を示す情報)が含まれているか否かを判定することにより行う。現在位置(TS)受信部240が、有意な現在位置(TS)をTS300からリアルタイムに受信できていると判定した場合(S712:YES)、処理はS713に進み、有意な現在位置(TS)をTS300からリアルタイムに受信できていないと判定した場合(S712:NO)、処理はS721に進む。
S713では、現在位置(TS)UAV送信部245が、TS300から受信した現在位置(TS)をUAV100に送信(転送)する。その後、処理はS730に進む。
S721では、現在位置(EKF)受信部250が、UAV100から有意な現在位置(EKF)をリアルタイムに受信できているか否かを判定する。現在位置(EKF)受信部250は、上記判定を、例えば、現在、十分な受信電界強度でUAV100と通信を行えているか否か、現在位置(EKF)に有意な位置情報(エラーコードやN/A、空白等でない、UAV100の位置(緯度、経度、高度)を示す情報)が含まれているか否か等を判定することにより行う。現在位置(EKF)受信部250が、UAV100から有意な現在位置(EKF)をリアルタイムに受信できていると判定した場合(S721:YES)、処理はS722に進み、有意な現在位置(EKF)をリアルタイムに受信できていないと判定した場合(S712:NO)、処理はS730に進む。
S722では、現在位置(EKF)TS送信部255が、UAV100からリアルタイムに受信している現在位置(EKF)と、当該現在位置(EKF)に基づくUAV100の追尾を指示する情報(以下、「追尾指示(EKF)」と称する。)とを、TS300に送信する。追尾指示(EKF)は、例えば、自動追尾停止命令、位置合わせ命令(水平、垂直方向の照射光の方向調整を指示する命令)、および自動追尾再開命令の実行を順に指示する内容を含む。このとき、現在位置(EKF)TS送信部255は、UAV100から受信した現在位置(EKF)をTS300に送信するにあたり、当該現在位置(EKF)を、TS設置位置217を用いて、TS300における(当該TS300が用いている)座標系で表した情報に変換する。その後、処理はS730に進む。
S730では、PC200は、現在位置転送処理S700の停止を指示する操作が行われたか否かを判定する。PC200が、現在位置転送処理S700の停止を指示する操作が行われていないと判定した場合(S730:NO)、処理はS712に戻る。PC200が、現在位置転送処理S700の停止を指示する操作が行われたと判定した場合(S730:YES)、PC200は、現在位置転送処理S700を終了する。
図8は、TS300が、UAV100を追尾しつつ、UAV100の現在位置をリアルタイムに取得(測定)してPC200に送信する処理(以下、「現在位置取得追尾処理S800」と称する。)を説明するフローチャートである。以下、同図とともに現在位置取得追尾処理S800について説明する。
同図に示すように、TS300は、所定の起動操作が行われると、現在位置取得追尾処理S800を開始する(S811)。
続いて、TS300の現在位置(TS)生成部320が、UAV100の現在位置を取得(測定)して現在位置(TS)を生成する(S812)。尚、現在位置(TS)生成部320は、UAV100がTS300の視野内に存在しているとき(UAV100から反射光を受光できているとき)は、測定した値を設定した有意な現在位置(TS)を生成し、一方、UAV100がTS300の視野外に存在しているとき(UAV100から反射光を受光できていないとき)は、エラーコード、N/A、空白等を設定した現在位置(TS)を取得(生成)する。
続いて、現在位置(TS)送信部325が、現在位置(TS)生成部320が取得(生成)した現在位置(TS)をPC200に送信する(S813)。
続いて、現在位置(EKF)受信部330が、PC200から現在位置(EKF)と追尾指示を受信しているか否かを判定する(S814)。現在位置(EKF)受信部330が、現在位置(EKF)と追尾指示(EKF)を受信していると判定した場合(S814:YES)、処理はS815に進み、現在位置(EKF)および追尾指示(EKF)を受信していないと判定した場合(S814:NO)、処理はS816に進む。
S815では、自動追尾機構制御部340が、現在位置(EKF)受信部330が受信した現在位置(EKF)に基づき、自動追尾機構317を制御(照射光の出射方向がUAV100の方向を向くよう制御)する。その後、処理はS816に進む。
S816では、TS300は、現在位置取得追尾処理S800の停止を指示する操作が行われたか否かを判定する。TS300が、現在位置取得追尾処理S800の停止を指示する操作が行われていないと判定した場合(S816:NO)、処理はS712に戻る。TS300が、現在位置取得追尾処理S800の停止を指示する操作が行われたと判定した場合(S816:YES)、TS300は現在位置取得追尾処理S800を終了する。
図9は、以上に説明した第1実施形態の位置測定システム1を橋梁の点検業務に適用した例を示す図である。
同図に示すように、この例では、UAV100は、第1橋脚911の近傍から離陸した後、橋桁910に沿って第2橋脚912まで移動する。この間、UAV100は常にTS300の視野内に存在しており、TS300から有意な現在位置(TS)がPC200からリアルタイムにUAV100に送信される(図6のS613:YES,S614、図7のS712:YES,S713、図8のS812,S813)。
続いて、UAV100は、第2橋脚912に到達し、TS300に対して第2橋脚912の裏側となる位置に進んでTS300の視野外に入る。これによりTS300からPC200に対して有意な現在位置(TS)が送信されなくなるが、PC200がUAV100から有意な現在位置(EKF)を受信できていれば、PC200は、UAV100から受信している現在位置(EKF)をTS300に送信(転送)する(図6のS617、図7のS712:NO,S721:YES,S722)。そして、TS300は、PC200から転送されてくる現在位置(EKF)に基づき、UAV100を追尾する(図8のS814:YES,S815)。
続いて、UAV100が、第2橋脚912の裏側を抜けて再びTS300の視野内に入るが、UAV100がTS300の視野外に入った後もTS300は継続して現在位置(EKF)に基づきUAV100を追尾していたので、UAV100の方向に直ちに照射光を出射することができる。そのため、UAV100は、有意な現在位置(TS)の測定を直ちに開始してUAV100への現在位置(TS)の提供を再開することができる(図6のS612:YES,S613、図7のS712:YES,S713、図8のS812,S813)。
このように、第1実施形態の位置測定システム1によれば、UAV100が飛行中にTS300の視野外に入った場合でも、TS300は、PC200を経由してUAV100から提供される現在位置(EKF)に基づきUAV100の追尾を継続するので、UAV100が再びTS300の視野内に入ったときに現在位置(TS)の測定を直ちに再開することができる。そのため、UAV100が視野外に存在する期間において現在位置(EKF)の精度が確保されている限り、UAV100がTS300の視野外に入る前の期間、視野外に存在する期間、および視野内に再び入った後の期間の各期間を通じて、UAV100を安定して継続的に飛行させることができる。
また、TS300が様々な要因(TS300と光反射器50との間を遮蔽物が通過した場合、突風によりUAV100の位置や姿勢が急に変化した場合、UAV100の移動が早い等)でUAV100をロストした場合でも、ロストしている期間において現在位置(EKF)の精度が確保されている限り、TS300はUAV100を追尾することができる。そのため、TS300はロスト後、直ちにUAVの現在位置(TS)の測定を再開することができ、UAV100を安定して継続的に飛行させることができる。
[第2実施形態]
図10に、第2実施形態の位置測定システム2の概略的な構成を示している。同図に示すように、位置測定システム2は、UAV100、2つの飛行監視制御装置(以下、夫々「PC200a」、「PC200b」と称する。)、および2つのトータルステーション(以下、夫々「TS300a」、「TS300b」と称する。)を含む。
以下の説明において、PC200aに対してTS300aのことを「自TS」と称し、PC200aに対してTS300bのことを「他TS」と称する。同様に、PC200bに対してTS300aのことを「他TS」と称し、PC200bに対してTS300bのことを「自TS」と称する。
また以下の説明において、TS300aに対してPC200aのことを「自PC」と称し、TS300aに対してPC200bのことを「他PC」と称する。同様に、TS300bに対してPC200aのことを「他PC」と称し、TS300bに対してPC200bのことを「自PC」と称する。
また以下の説明において、PC200aに対してPC200bのことを「他PC」と称し、PC200bに対してPC200aのことを「他PC」と称する。
図11Aは、第2実施形態のUAV100が備える主な構成を説明するブロック図である。第2実施形態のUAV100の基本的な構成は第1実施形態のUAV100と同様であるが、第2実施形態のUAV100の通信装置116は、PC200aおよびPC200bの双方と無線通信を行うことができる。
図11Bは、第2実施形態のUAV100が備える主な機能を説明するブロック図である。第2実施形態のUAV100の機能は第1実施形態のUAV100の機能と基本的に同様であるが、第2実施形態のUAV100の現在位置(TS)受信部130は、PC200aまたはPC200bから現在位置(TS)を受信する。また、第2実施形態のUAV100の現在位置(EKF)送信部150は、PC200aおよびPC200bに現在位置(EKF)を送信する。
図12Aは、第2実施形態のPC200a,200bが備える主な構成を説明するブロック図である。第2実施形態のPC200a,200bの基本的な構成は第1実施形態のPC200と同様であるが、第2実施形態のPC200aの通信装置206とPC200bの通信装置206は、互いに双方向通信(有線通信または無線通信)を行うことができる。
図12Bは、第2実施形態のPC200a,200bが備える主な機能を説明するブロック図である。第2実施形態のPC200a,200bの機能は第1実施形態のPC200a,200bの機能と基本的に同様であるが、第2実施形態のPC200a,200bの記憶部210は、自TSから受信した現在位置(TS)である現在位置(自TS)213aと、他TSから受信した現在位置(TS)である現在位置(他TS)213bを記憶する。
また、第2実施形態のPC200a,200bは、現在位置(TS)を自TSから受信する現在位置(自TS)受信部240aと、現在位置(TS)を他TSから受信する現在位置(他TS)受信部240bとを備える。
また、第2実施形態のPC200a,200bは、現在位置(EKF)受信部250がUAV100から受信した現在位置(EKF)と、当該現在位置(EKF)に基づきUAV100を追尾する旨の指示(以下、「追尾指示(EKF)」と称する。)とを、TS300に送信(転送)する、現在位置(EKF)自TS送信部255aを備える。追尾指示(EKF)は、例えば、自動追尾停止命令、位置合わせ命令(水平、垂直方向の照射光の方向調整を指示する命令)、および自動追尾再開命令の実行を順に指示する内容を含む。現在位置(EKF)自TS送信部255aは、UAV100から受信した現在位置(EKF)を自TSに送信するにあたり、当該現在位置(EKF)を、TS設置位置217を用いて、自TSにおける(自TSが用いている)座標系で表した情報に変換する。尚、この座標系の変換は自TS側で行ってもよい。
また、第2実施形態のPC200a,200bは、自TSから受信した現在位置(TS)である現在位置(自TS)を他のPC200に送信する、現在位置(自TS)他PC送信部260を備える。
また、第2実施形態のPC200a,200bは、他TSから受信した現在位置(TS)である現在位置(他TS)と、当該現在位置(他TS)に基づきUAV100を追尾する旨の指示(以下、「追尾指示(他TS)」と称する。)とを、自TSに送信する、現在位置(他TS)自TS送信部265とを備える。追尾指示(他TS)は、例えば、自動追尾停止命令、位置合わせ命令(水平、垂直方向の照射光の方向調整を指示する命令)、および自動追尾再開命令の実行を順に指示する内容を含む。現在位置(他TS)自TS送信部265は、他PCから受信した現在位置(他TS)を自TSに送信するにあたり、当該現在位置(他TS)を、TS設置位置217を用いて、自TSにおける(自TSが用いている)座標系で表した情報に変換する。尚、この座標系の変換は自TS側で行ってもよい。
図13Aは、第2実施形態のTS300a,300bが備える主な構成を説明するブロック図である。第2実施形態のTS300a,300bの基本的な構成は第1実施形態のTS300と同様である。
図13Bは、第2実施形態のTS300a,300bが備える主な機能を説明するブロック図である。第2実施形態のTS300a,300bの機能は第1実施形態のTS300a,300bの機能と基本的に同様であるが、第2実施形態のTS300a,300bの記憶部210は、現在位置(自TS)311aと現在位置(他TS)311bを記憶する。
また、第2実施形態のTS300a,300bは、現在位置(EKF)受信部330aおよび現在位置(他TS)受信部330bを備える。このうち現在位置(EKF)受信部330aは、自PCからリアルタイムに送られてくる現在位置(EKF)を受信し、受信した現在位置(EKF)を現在位置(EKF)312として管理する。また、現在位置(他TS)受信部330bは、自PCからリアルタイムに送られてくる現在位置(他TS)を受信し、受信した現在位置(他TS)を現在位置(他TS)311bとして管理する。
また、第2実施形態のTS300a,300bの自動追尾機構制御部340は、現在位置(EKF)受信部330aが自PCから受信する現在位置(EKF)、または、現在位置(他TS)受信部330bが自PCから受信する現在位置(他TS)に基づき、TS300の向き(照射光を照射する方向)を制御する。
図14は、第2実施形態のUAV100の主な動作(以下、「飛行制御処理S1400」と称する。)を説明するフローチャートである。以下、同図とともに飛行制御処理S1400について説明する。尚、飛行制御処理S1400において、UAV100の現在位置(EKF)送信部150は、PC200a,200bの飛行監視制御部230による監視制御等のため、PC200a,200bに対して常に現在位置(EKF)をリアルタイムに送信しているものとする。
同図に示すように、飛行制御部140は、PC200a,200bや無線送信器(プロポ)から離陸を指示する信号(モータ駆動指令等)を受信すると、UAV100を離陸させる(S1411)。
続いて、各種センサ112により取得される情報のうち、EKF装置113が現在位置の算出に利用可能な情報(3軸加速度センサや3軸ジャイロセンサ(角速度センサ)が出力する情報等)がEKF装置113に入力される(S1412)。
続いて、飛行制御部140は、現在位置(TS)受信部130が、PC200aまたはPC200bから有意な現在位置(TS)をリアルタイムに受信しているか否かを判定する(S1413)。飛行制御部140は、上記判定を、例えば、現在、十分な受信電界強度でPC200aまたはPC200bと通信を行えているか否か、現在位置(TS)に有意な位置情報(エラーコードやN/A、空白等でない、TS300aまたはTS300bが実際に測定したUAV100の位置(緯度、経度、高度)を示す情報)が含まれているか否かを判定することにより行う。飛行制御部140が、PC200aまたはPC200bから有意な現在位置(TS)をリアルタイムに受信できていると判定した場合(S1413:YES)、処理はS1414に進み、有意な現在位置(TS)を受信できていないと判定した場合(S1413:NO)、処理はS1415に進む。
S1414では、飛行制御部140は、現在位置(TS)受信部130がリアルタイムに受信している有意な現在位置(TS)を、EKF装置113に入力する。尚、PC200aおよびPC200bの双方から有意な現在位置(TS)をリアルタイムに受信できている場合、飛行制御部140は、例えば、受信電界強度の強いPC200から受信した現在位置(TS)を選択してEKF装置113に入力する。また、例えば、UAV100がFPVカメラ(FPV:First Persons View)を備えている場合、例えば、監視者や操縦者等の人が、当該FVPカメラの映像に基づきTS300a,300bの位置を把握した上で、いずれのTS300a,300bの現在位置(TS)をEKF装置113に入力するかについての指示を、PC200aまたはPC200bを介してUAV100に送信し、当該指示に応じてUAV100が現在位置(TS)を選択してEKF装置113に入力するようにしてもよい。
S1415では、飛行制御部140は、GPS装置114が、当該UAV100の飛行制御に必要な精度の現在位置(GPS)を取得できているか否かを判定する。飛行制御部140は、上記判定を、例えば、GPS装置114が、当該UAV100の飛行制御に必要な精度を確保可能な数以上の数のGPS衛星からGPS信号を受信できているか否かに基づき行う。飛行制御部140が、GPS装置114が、当該UAV100の飛行制御に必要な精度の現在位置(GPS)を受信できていると判定した場合(S1415:YES)、処理はS1416に進み、受信できていないと判定した場合(S1415:NO)、処理はS1417に進む。
S1416では、飛行制御部140は、GPS装置114が出力する現在位置(GPS)を、EKF装置113に入力する。
S1417では、飛行制御部140は、EKF装置113が出力する現在位置(EKF)に基づき、UAV100の飛行制御を行う。
図15は、PC200a,200bの主な動作(以下、「現在位置転送処理S1500」と称する。)を説明するフローチャートである。以下、同図とともに現在位置転送処理S1500について説明する。
同図に示すように、PC200a,200bは、所定の起動操作が行われると、現在位置転送処理S1500を開始する(S1511)。
続いて、PC200a,200bの現在位置(自TS)受信部240aが、有意な現在位置(自TS)を自TSからリアルタイムに受信できているか否かを判定する(S1512)。尚、現在位置(自TS)受信部240aは、上記判定を、例えば、現在位置(自TS)に有意な位置情報(エラーコードやN/A、空白等でない、TS300aまたは300bが実際に測定したUAV100の位置(緯度、経度、高度)を示す情報)が含まれているか否か等を判定することにより行う。現在位置(自TS)受信部240aが、有意な現在位置(自TS)を自TSからリアルタイムに受信できていると判定した場合(S1512:YES)、処理はS1513に進み、有意な現在位置(自TS)を自TSからリアルタイムに受信できていないと判定した場合(S1512:NO)、処理はS1521に進む。
S1513では、PC200a,200bの現在位置(TS)UAV送信部245が、自TSから受信した現在位置(自TS)をUAV100に送信(転送)する。
S1514では、PC200a,200bの現在位置(自TS)他PC送信部260が、自TSから受信した現在位置(自TS)を他PCに送信する(S1514)。その後、処理はS1540に進む。
S1521では、PC200a,200bの現在位置(他TS)受信部240bが、他PCから有意な現在位置(他TS)をリアルタイムに受信できているか否かを判定する。現在位置(他TS)受信部240bは、上記判定を、例えば、現在位置(他TS)に有意な位置情報(エラーコードやN/A、空白等でない、TS300aまたは300bが実際に測定したUAV100の位置(緯度、経度、高度)を示す情報)が含まれているか否か等を判定することにより行う。現在位置(他TS)受信部240bが、他PCから有意な現在位置(他TS)をリアルタイムに受信できていると判定した場合(S1521:YES)、処理はS1522に進み、他PCから有意な現在位置(他TS)をリアルタイムに受信できていないと判定した場合(S1521:NO)、処理はS1531に進む。
S1522では、PC200a,200bの現在位置(他TS)自TS送信部265が、他PCからリアルタイムに受信している現在位置(他TS)と、追尾指示(他TS)とを、自TSに送信する。現在位置(他TS)自TS送信部265は、他PCから受信した現在位置(他TS)を自TSに送信するにあたり、当該現在位置(他TS)を、TS設置位置217を用いて、自TSにおける(自TSが用いている)座標系で表した情報に変換する。その後、処理はS1540に進む。
S1531では、PC200a,200bの現在位置(EKF)受信部250が、UAV100から有意な現在位置(EKF)をリアルタイムに受信できているか否かを判定する。現在位置(EKF)受信部250は、上記判定を、例えば、現在、十分な受信電界強度でUAV100と通信を行えているか否か、現在位置(EKF)に有意な位置情報(エラーコードやN/A、空白等でない、UAV100の位置(緯度、経度、高度)を示す情報)が含まれているか否か等を判定することにより行う。現在位置(EKF)受信部250が、UAV100から有意な現在位置(EKF)をリアルタイムに受信できていると判定した場合(S1531:YES)、処理はS1532に進み、有意な現在位置(EKF)をリアルタイムに受信できていないと判定した場合(S1531:NO)、処理はS1540に進む。
S1532では、PC200a,200bの現在位置(EKF)自TS送信部255aが、UAV100からリアルタイムに受信している現在位置(EKF)と、追尾指示(EKF)とを、自TSに送信する。このとき、現在位置(EKF)自TS送信部255aは、UAV100から受信した現在位置(EKF)を自TSに送信するにあたり、当該現在位置(EKF)を、TS設置位置217を用いて、自TSにおける(自TSが用いている)座標系で表した情報に変換する。その後、処理はS1540に進む。
S1540では、PC200a,200bは、現在位置転送処理S1500の停止を指示する操作が行われたか否かを判定する。PC200a,200bが、現在位置転送処理S700の停止を指示する操作が行われていないと判定した場合(S1540:NO)、処理はS1512に戻る。一方、PC200a,200bが、現在位置転送処理S1500の停止を指示する操作が行われたと判定した場合(S1540:YES)、PC200a,200bは、現在位置転送処理S1500を終了する。
図16は、TS300a,300bの主な動作(以下、「現在位置取得追尾処理S1600」と称する。)を説明するフローチャートである。以下、同図とともに現在位置取得追尾処理S1600について説明する。
同図に示すように、TS300a,300bは、所定の起動操作が行われると、現在位置取得追尾処理S1600を開始する(S1611)。
続いて、TS300a,300bの現在位置(TS)生成部320が、UAV100の現在位置を取得(測定)して現在位置(TS)を生成する(S1612)。尚、現在位置(TS)生成部320は、UAV100がTS300の視野内に存在しているとき(UAV100から反射光を受光できているとき)は、測定した値を設定した有意な現在位置(TS)を生成し、UAV100がTS300の視野外に存在しているとき(UAV100から反射光を受光できていないとき)は、エラーコード、N/A、空白等を設定した現在位置(TS)を生成する。
続いて、TS300a,300bの現在位置(TS)送信部325が、現在位置(TS)生成部320が生成した現在位置(TS)をPC200に送信する(S813)。
続いて、TS300a,300bの現在位置(他TS)受信部330bが、自PCから現在位置(他TS)と追尾指示(他TS)を受信しているか否かを判定する(S1621)。現在位置(他TS)受信部330bが、現在位置(他TS)と追尾指示(他TS)を受信していると判定した場合(S1621:YES)、処理はS1622に進み、現在位置(他TS)と追尾指示(他TS)を受信していないと判定した場合(S1621:NO)、処理はS1631に進む。
S1622では、自動追尾機構制御部340が、現在位置(他TS)に基づき自動追尾機構317を制御(照射光の出射方向がUAV100の方向を向くように制御)する。その後、処理はS1640に進む。
S1631では、TS300a,300bの現在位置(EKF)受信部330aが、自PCから現在位置(EKF)および追尾指示(EKF)を受信しているか否かを判定する。現在位置(EKF)受信部330aが、現在位置(EKF)および追尾指示(EKF)を受信していると判定した場合(S1631:YES)、処理はS1632に進み、現在位置(EKF)および追尾指示(EKF)を受信していないと判定した場合(S1631:NO)、処理はS1640に進む。
S1632では、自動追尾機構制御部340が、現在位置(EKF)に基づき自動追尾機構317を制御(照射光の出射方向がUAV100の方向を向くように制御)する。その後、処理はS1640に進む。
S1640では、TS300a,300bは、現在位置取得追尾処理S1600の停止を指示する操作が行われたか否かを判定する。TS300a,300bが、現在位置取得追尾処理S1600の停止を指示する操作が行われていないと判定した場合(S1640:NO)、処理はS1612に戻る。TS300a,300bが、現在位置取得追尾処理S1600の停止を指示する操作が行われたと判定した場合(S1640:YES)、TS300a,300bは、現在位置取得追尾処理S1600を終了する。
図17は、以上に説明した第2実施形態の位置測定システム2を橋梁1700の点検業務に適用した例を示す図である。
同図に示すように、この例では、UAV100は、第1橋脚1711の近傍から離陸した後、橋桁910に沿って第2橋脚1712の方向に移動する。この間、UAV100は常にTS300aの視野内に存在しており、TS300aから有意な現在位置(自TS)がPC200aからリアルタイムにUAV100に送信され、また、PC200aから現在位置(自TS)が他PCであるPC200bに送信される(図14のS1413:YES,S1414、図15のS1512:YES,S1513,S1514)。
続いて、UAV100は、第1橋脚1711に到達すると針路を変更し、TS300aに対して第1橋脚1711の裏側になる位置に進んでTS300の視野外に入る。これによりTS300aからPC200aに有意な現在位置(自TS)が送信されなくなるが(図14のS1413:NO)、PC200bが自TSであるTS300bから有意な現在位置(自TS)を受信できていれば、当該現在位置(自TS)がPC200bからUAV100に送信され、UAV100は当該現在位置(自TS)に基づき飛行を続けることができる(図14のS1413:YES,S1414、図15のS1512:YES,S1513,S1514)。
また、PC200bは、UAV100がTS300の視野外に入る前の期間において、自TSであるTS300bから有意な現在位置(自TS)を受信できていない場合でも、PC200aから有意な現在位置(他TS)を取得できていれば(図15のS1521:YES)当該現在位置(他TS)に基づく追尾指示(他TS)を、もしくはUAV100から現在位置(EKF)を受信している場合は当該現在位置(EKF)に基づく追尾指示(EKF)を、自TSであるTS300bに送信することにより、当該自TSにUAV100を追尾させることができる(図15のS1521:YES,S1522、S1531:YES,S1532,図16のS1621:YES,S1622、S1631:YES,S1632)。
このため、UAV100がTS300の視野外に入った際に直ちに当該自TSによる位置測定を開始することができ、UAV100がTS300の視野外に入る前後の期間において連続して現在位置(TS)をUAV100に提供し続けることができる。
尚、以上では、TS300とPC200の組合せが2つである場合を例として説明したが、同様の仕組みを上記組合せが3つ以上の場合に拡張することもできる。
以上に説明したように、第2実施形態の位置測定システム2によれば、異なる位置に設置した複数のTS300の夫々によって測定された現在位置(TS)または現在位置(EKF)が、夫々に接続するPC200間で共有され適宜各TS300に提供されるので、UAV100がTS300の視野外に入った場合でも当該TS300はUAV100を追尾することができる。そのため、UAV100がTS300の視野内に戻った際、当該TS300は直ちに現在位置(TS)の測定を再開することができ、UAV100への現在位置(TS)の提供を直ちに再開することができる。このため、広い空域に亘ってUAV100の飛行を安定して継続することができる。
また、TS300が様々な要因(TS300と光反射器50との間を遮蔽物が通過した場合、突風によりUAV100の位置や姿勢が急に変化した場合、UAV100の移動が早い等)でUAV100をロストした場合でも、いずれかのTS300が追尾を継続している限り、現在位置(TS)を連続して提供し続けることができる。そのため、TS300は、UAV100が視野内に戻った際、直ちにUAVの現在位置(TS)の測定を再開することができ、広い空域に亘ってUAV100の飛行を安定して継続することができる。
以上、本発明の実施形態(第1実施形態、第2実施形態)について詳述したが、以上の説明は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明はその趣旨を逸脱することなく、変更、改良され得ると共に本発明にはその等価物が含まれることは勿論である。例えば、上記の実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また上記実施形態の構成の一部について、他の構成の追加、削除、置換をすることが可能である。
例えば、PC200が備える機能の全部または一部を、TS300により実現するようにしてもよい。
また、以上の実施形態では、現在位置(TS)を、PC200を介してUAV100に転送するようにしているが、例えば、TS300およびUAV100を通信可能に接続し、TS300からUAV100に現在位置(TS)を直接送信するようにしてもよい。
また、TS300によって測定された現在位置(TS)は、飛行制御以外の用途、例えば、UAV100が実際に飛行した経路(ルート)の履歴管理や、UAV100が何らかの作業を遂行する際に作業対象が存在する位置を精度よく特定するための情報等として用いてもよい。