(57)【要約】【課題】同一操作で異なる面を連続移動できる飛行装置、飛行装置制御方法および飛行装置制御プログラムを提供する。【解決手段】飛行装置は、判定部と、決定部と、推力制御部とを有する。判定部は、接触検知センサの信号に基づいて、飛行装置が構造体の隣接する第１の面および第２の面のうち１つ以上の面に接触しているか否かを判定する。決定部は、飛行装置を操作するコントローラから受信する前進または後退を指示する操作コマンドと、接触していると判定された面とに基づいて、同一の操作コマンドによって第１の面と第２の面とを連続して移動可能に、飛行装置の移動方向を決定する。推力制御部は、決定された移動方向に基づいて、飛行装置の推力を制御する。【選択図】図１
2018075938.tif 000002
【特許請求の範囲】
【請求項１】
接触検知センサの信号に基づいて、飛行装置が構造体の隣接する第１の面および第２の面のうち１つ以上の面に接触しているか否かを判定する判定部と、
前記飛行装置を操作するコントローラから受信する前進または後退を指示する操作コマンドと、接触していると判定された前記面とに基づいて、同一の前記操作コマンドによって前記第１の面と前記第２の面とを連続して移動可能に、前記飛行装置の移動方向を決定する決定部と、
決定された前記移動方向に基づいて、前記飛行装置の推力を制御する推力制御部と、
を有することを特徴とする飛行装置。
【請求項２】
前記決定部は、さらに、接触していると前回判定された前記面に基づいて前記移動方向を決定する、ことを特徴とする請求項１に記載の飛行装置。
【請求項３】
前記推力制御部は、前記飛行装置を上昇または下降させるアクセルスロットルと、前記飛行装置を前後に傾けさせるエレベータとを制御することで、前記飛行装置の推力を制御する、ことを特徴とする請求項１または２に記載の飛行装置。
【請求項４】
前記決定部は、前記操作コマンドを１回受信すると、前記構造体に予め定められたルートの終点まで移動するように前記移動方向を決定する、ことを特徴とする請求項１〜３のいずれか１つに記載の飛行装置。
【請求項５】
接触検知センサの信号に基づいて、飛行装置が構造体の隣接する第１の面および第２の面のうち１つ以上の面に接触しているか否かを判定し、
前記飛行装置を操作するコントローラから受信する前進または後退を指示する操作コマンドと、接触していると判定された前記面とに基づいて、同一の前記操作コマンドによって前記第１の面と前記第２の面とを連続して移動可能に、前記飛行装置の移動方向を決定し、
決定された前記移動方向に基づいて、前記飛行装置の推力を制御する、
処理をコンピュータが実行することを特徴とする飛行装置制御方法。
【請求項６】
接触検知センサの信号に基づいて、飛行装置が構造体の隣接する第１の面および第２の面のうち１つ以上の面に接触しているか否かを判定し、
前記飛行装置を操作するコントローラから受信する前進または後退を指示する操作コマンドと、接触していると判定された前記面とに基づいて、同一の前記操作コマンドによって前記第１の面と前記第２の面とを連続して移動可能に、前記飛行装置の移動方向を決定し、
決定された前記移動方向に基づいて、前記飛行装置の推力を制御する、
処理をコンピュータに実行させることを特徴とする飛行装置制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、飛行装置、飛行装置制御方法および飛行装置制御プログラムに関する。
【背景技術】
【０００２】
近年、過去に架橋された多くの橋梁が老朽化してきているが、橋梁を管理する自治体等では、橋梁の点検を行う作業員が不足している。また、橋梁の点検では、近接して目視による検査が義務付けられているため、１つの橋梁の点検にかかる工数も大きくなり、自治体等の負担となっている。このため、ラジオコントロール（無線操縦）によって飛行する無人機、いわゆるドローンを用いて橋梁を点検することが提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−０２６０９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、無人機の操縦は習熟に時間がかかるため、作業員が容易に習得することは難しい。また、無人機のラジコン操作では、機体を上昇または下降させるアクセルスロットルと、機体を左右に傾けさせるエルロンと、機体を前後に傾けさせるエレベータと、機体を左右に回転させるラダーとを操作するため、誤操作が発生する可能性がある。誤操作が発生すると、機体が墜落してしまう等の事故が発生する場合がある。
【０００５】
一つの側面では、本発明は、同一操作で異なる面を連続移動できる飛行装置、飛行装置制御方法および飛行装置制御プログラムを提供することにある。
【課題を解決するための手段】
【０００６】
一つの態様では、飛行装置は、判定部と、決定部と、推力制御部とを有する。判定部は、接触検知センサの信号に基づいて、飛行装置が構造体の隣接する第１の面および第２の面のうち１つ以上の面に接触しているか否かを判定する。決定部は、前記飛行装置を操作するコントローラから受信する前進または後退を指示する操作コマンドと、接触していると判定された前記面とに基づいて、同一の前記操作コマンドによって前記第１の面と前記第２の面とを連続して移動可能に、前記飛行装置の移動方向を決定する。推力制御部は、決定された前記移動方向に基づいて、前記飛行装置の推力を制御する。
【発明の効果】
【０００７】
同一操作で異なる面を連続移動できる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施例の制御システムの構成の一例を示すブロック図である。
【図２】図２は、飛行装置の一例を示す図である。
【図３】図３は、コントローラの一例を示す図である。
【図４】図４は、移動の一例を示す図である。
【図５】図５は、接触検知センサの一例を示す図である。
【図６】図６は、接触検知センサの他の一例を示す図である。
【図７】図７は、接触検知センサの他の一例を示す図である。
【図８】図８は、接触検知センサの他の一例を示す図である。
【図９】図９は、移動方向テーブルの一例を示す図である。
【図１０】図１０は、面の一例を示す図である。
【図１１】図１１は、推力制御テーブルの一例を示す図である。
【図１２】図１２は、面情報の一例を示す図である。
【図１３】図１３は、壁面での移動の一例を示す図である。
【図１４】図１４は、桁下面での移動の一例を示す図である。
【図１５】図１５は、壁面から桁下面への移動の一例を示す図である。
【図１６】図１６は、コントローラの操作の違いを説明する図である。
【図１７】図１７は、面から離れた場合の一例を示す図である。
【図１８】図１８は、実施例の操作処理の一例を示すフローチャートである。
【図１９】図１９は、実施例の制御処理の一例を示すフローチャートである。
【図２０】図２０は、飛行装置制御プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、図面に基づいて、本願の開示する飛行装置、飛行装置制御方法および飛行装置制御プログラムの実施例を詳細に説明する。なお、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。
【実施例】
【００１０】
図１は、実施例の制御システムの構成の一例を示すブロック図である。図１に示す制御システム１は、コントローラ１０と、飛行装置１００とを有する。コントローラ１０は、飛行装置１００を操作、すなわち飛行装置１００を操縦するための操作部である。飛行装置１００は、コントローラ１０から受信する操作コマンドに基づいて飛行する無人機である。また、飛行装置１００は、例えば、構造体の一例である橋梁の桁下面や橋脚の壁面に、これらの面との距離を保つための車輪を接触させ、面に沿って移動する。
【００１１】
飛行装置１００は、接触検知センサの信号に基づいて、飛行装置が構造体の隣接する第１の面および第２の面のうち１つ以上の面に接触しているか否かを判定する。飛行装置１００は、飛行装置１００を操作するコントローラ１０から受信する前進または後退を指示する操作コマンドと、接触していると判定された面とに基づいて、飛行装置１００の移動方向を決定する。すなわち、飛行装置１００は、同一の操作コマンドによって第１の面と第２の面とを連続して移動可能に、飛行装置１００の移動方向を決定する。飛行装置１００は、決定された移動方向に基づいて、飛行装置１００の推力を制御する。これにより、飛行装置１００は、同一操作で異なる面を連続移動できる。
【００１２】
図２は、飛行装置の一例を示す図である。図２（ａ）は飛行装置１００の上面図を示し、図２（ｂ）は飛行装置１００の側面図を示す。図２に示すように、飛行装置１００は、２つの車輪１４０と、２つの車輪を連結する車軸１４１と、本体１４２とを有する。車軸１４１は、本体１４２に回転自在に保持されている。車輪１４０は、構造体の面に接触した状態で飛行装置１００が移動すると、移動に応じて回転する。車輪１４０は、軽量化のために、例えば、樹脂や炭素繊維等を用いることができる。本体１４２は、中央部に接触検知センサ１１１を有し、四隅から延長されたブームの先それぞれにロータ１１２を有する。接触検知センサ１１１は、飛行装置１００が構造体の面に接触しているか否かを検知する。ロータ１１２は、例えば、プロペラをモータによって回転させる回転翼である。飛行装置１００は、ロータ１１２を回転させることで推力を発生させて飛行するマルチコプタである。
【００１３】
図３は、コントローラの一例を示す図である。図３に示すように、コントローラ１０は、レバー１４を有し、ユーザの操作を受け付けて、操作コマンドを飛行装置１００に対して送信する。コントローラ１０は、例えば、ラジオコントロール（無線操縦）による無人機の操作に用いられるプロポーショナル式の送信機、いわゆるプロポである。
【００１４】
図４は、移動の一例を示す図である。図４に示すように、飛行装置１００は、例えば、構造体の一例である橋梁２０の橋脚２１と桁２２と地面とに囲まれた領域を、橋脚２１の壁面と、桁２２の下面と、地面とに沿って移動する。つまり、飛行装置１００は、橋梁２０の各構造のうち、垂直面や高所の水平面等の点検し辛い箇所を移動する。
【００１５】
次に、コントローラ１０の構成について説明する。図１に示すように、コントローラ１０は、通信部１１と、操作部１２と、制御部１３とを有する。なお、コントローラ１０は、図１に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の表示デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
【００１６】
通信部１１は、例えば、４０ＭＨｚ帯、７２ＭＨｚ帯、７３ＭＨｚ帯、２．４ＧＨｚ帯の無線機等によって実現される。通信部１１は、飛行装置１００と無線で接続され、飛行装置１００との間で情報の通信を司る通信インタフェースである。通信部１１は、制御部１３から入力された操作コマンド等を飛行装置１００に向けて送信する。また、通信部１１は、飛行装置１００から送信されたテレメトリ情報等を受信して制御部１３に出力する。
【００１７】
操作部１２は、例えば、複数のレバー１４やスイッチ等を有し、ユーザによるレバー１４等の操作を受け付けて、操作情報を制御部１３に出力する。
【００１８】
制御部１３は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部１３は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されるようにしてもよい。制御部１３は、コントローラ１０全体を制御する。
【００１９】
制御部１３は、操作部１２から操作情報が入力されると、操作コマンドを生成する。制御部１３は、例えば、操作部１２からレバー１４が上方向に操作された操作情報が入力されると、操作コマンドとして前進コマンドを生成する。また、制御部１３は、例えば、操作部１２からレバー１４が下方向に操作された操作情報が入力されると、操作コマンドとして後退コマンドを生成する。制御部１３は、生成した操作コマンドを通信部１１に出力する。また、制御部１３は、通信部１１からテレメトリ情報が入力されると、テレメトリ情報を図示しない表示部に表示させるようにしてもよい。
【００２０】
続いて、飛行装置１００の構成について説明する。図１に示すように、飛行装置１００は、通信部１１０と、接触検知センサ１１１と、ロータ１１２と、カメラ１１３と、記憶部１２０と、制御部１３０とを有する。例えば、カメラ１１３、記憶部１２０および制御部１３０は、飛行装置１００の本体１４２に格納されている。なお、飛行装置１００は、図１に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の表示デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
【００２１】
通信部１１０は、例えば、４０ＭＨｚ帯、７２ＭＨｚ帯、７３ＭＨｚ帯、２．４ＧＨｚ帯の無線機等によって実現される。通信部１１０は、コントローラ１０と無線で接続され、コントローラ１０との間で情報の通信を司る通信インタフェースである。通信部１１０は、コントローラ１０から送信された操作コマンド等を受信して制御部１３０に出力する。また、通信部１１０は、制御部１３０から入力されたテレメトリ情報等をコントローラ１０に向けて送信する。
【００２２】
接触検知センサ１１１は、飛行装置１００が構造体の面に接触しているか否かを検知する。接触検知センサ１１１は、例えば、測距センサを用いて距離に応じた信号を制御部１３０に出力する。また、接触検知センサ１１１は、例えば、車軸１４１の軸受けに圧力センサを設けて車輪１４０が構造体の面に接触したことを検出した信号を制御部１３０に出力するようにしてもよい。
【００２３】
ここで、図５から図８を用いて、各種の接触検知センサ１１１について説明する。図５は、接触検知センサの一例を示す図である。図５の例では、赤外線や超音波を用いた測距センサである接触検知センサ１１１ａを、飛行装置１００の本体１４２の上下方向および前後方向の４方向に設けて、構造体の面までの距離を計測する。接触検知センサ１１１ａは、例えば、センサ番号および距離に応じた信号を制御部１３０に出力する。
【００２４】
図６は、接触検知センサの他の一例を示す図である。図６の例では、レーザレンジファインダ（ＬＲＦ：Laser  Range  Finder）等の広範囲を測距可能な測距センサである接触検知センサ１１１ｂを、飛行装置１００の本体１４２に設けて、構造体の面までの距離を計測する。接触検知センサ１１１ｂは、例えば、方向および距離に応じた信号を制御部１３０に出力する。
【００２５】
図７は、接触検知センサの他の一例を示す図である。図７の例では、車軸１４１の軸受け１４１ａに圧力センサである接触検知センサ１１１ｃを、飛行装置１００の上下方向および前後方向の４方向に設けて、車輪１４０が構造体の面に接触することで車軸１４１にかかる力を検出する。接触検知センサ１１１ｃは、例えば、センサ番号および圧力に応じた信号を制御部１３０に出力する。
【００２６】
図８は、接触検知センサの他の一例を示す図である。図８の例では、車軸１４１の車輪１４０との接続部近傍に３軸力覚センサである接触検知センサ１１１ｄを設けて、車輪１４０が構造体の面に接触することで車軸１４１にかかる力を検出する。接触検知センサ１１１ｄは、例えば、３軸方向の圧力に応じた信号を制御部１３０に出力する。
【００２７】
図１の説明に戻って、ロータ１１２は、プロペラをモータによって回転させる回転翼であり、制御部１３０からの回転制御信号に基づいて回転する。ロータ１１２は、例えば、飛行装置１００の本体１４２の四隅からブームを伸ばした先にそれぞれ設けられ、４つのロータ１１２の回転が制御される。ロータ１１２は、例えば、回転が制御されることで、飛行装置１００に上昇および下降、前後方向の傾き、左右方向の傾き、ならびに、回転等の動作をさせる。
【００２８】
カメラ１１３は、例えば、予め定められた飛行装置１００の前後方向に設けられ、構造体の面を撮像する。カメラ１１３は、例えば、撮像素子としてＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）イメージセンサまたはＣＣＤ（Charge  Coupled  Device）イメージセンサ等を用いて、画像を撮像する。カメラ１１３は、撮像素子が受光した光を光電変換しＡ／Ｄ（Analog／Digital）変換を行って画像を生成する。カメラ１１３は、生成した画像を制御部１３０に出力する。なお、カメラ１１３は、一方向に固定されていてもよいし、向きを変更できるようにしてもよい。また、カメラ１１３は、全天球カメラを用いてもよい。
【００２９】
記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部１２０は、移動方向テーブル１２１と、推力制御テーブル１２２とを有する。また、記憶部１２０は、カメラ１１３で撮像された画像や制御部１３０での処理に用いる情報を記憶する。
【００３０】
移動方向テーブル１２１は、操作コマンドと、接触中の面と、移動方向とを対応付けて記憶する。図９は、移動方向テーブルの一例を示す図である。図９に示すように、移動方向テーブル１２１は、「操作コマンド」、「面情報」、「移動方向」といった項目を有する。
【００３１】
「操作コマンド」は、コントローラ１０から受信した操作コマンドが、前進コマンドであるか後退コマンドであるかを示す情報である。「面情報」は、飛行装置１００が接触中の構造体の面を示す識別子および情報である。なお、「面情報」は、予め設定され、構造体の面を示す識別子だけとしてもよい。「移動方向」は、操作コマンドと、面情報とに応じて飛行装置１００を移動させる方向を示す情報である。図９の１行目の例では、操作コマンドが「前進」であり、面情報が「Ｆ１：地面（初期状態）」であると、飛行装置１００を移動させる方向が「水平前方」であることを示す。
【００３２】
ここで、図１０を用いて面情報について説明する。図１０は、面の一例を示す図である。図１０に示すように、構造体の一例である橋梁２０の橋脚２１の壁面と桁２２の桁下面と地面とに囲まれた空間内を飛行装置１００が各面に沿って移動するとする。まず、飛行装置１００は、初期状態の位置として地面に配置される。その後、飛行装置１００は、図中左方向に移動を開始し、橋梁２０の橋脚２１の壁面と桁２２の桁下面と地面とに囲まれた空間内を１周するとする。このとき、飛行装置１００が接触する面は、移動方向に応じて変化する。１周する経路は、飛行装置１００が接触する面が変化する箇所で区切ることができ、それぞれの区間を、例えば、面情報Ｆ１〜Ｆ８として表す。
【００３３】
面情報Ｆ１は、初期状態であり、飛行装置１００が地面と接触していることを示す。面情報Ｆ２は、飛行装置１００が、地面と、初期状態の進行方向前方の橋脚２１の壁面である前壁面とに接触していることを示す。面情報Ｆ３は、飛行装置１００が、前壁面と接触していることを示す。面情報Ｆ４は、飛行装置１００が、桁２２の桁下面と前壁面とに接触していることを示す。面情報Ｆ５は、飛行装置１００が、桁下面と接触していることを示す。面情報Ｆ６は、飛行装置１００が、桁下面と、初期状態の進行方向後方の橋脚２１の壁面である後壁面とに接触していることを示す。面情報Ｆ７は、飛行装置１００が、後壁面と接触していることを示す。面情報Ｆ８は、飛行装置１００が、地面と、後壁面とに接触していることを示す。
【００３４】
図１の説明に戻って、推力制御テーブル１２２は、移動方向と、アクセル（アクセルスロットル）指示と、エレベータ指示とを対応付けて記憶する。図１１は、推力制御テーブルの一例を示す図である。図１１に示すように、推力制御テーブル１２２は、「移動方向」、「アクセル」、「エレベータ」といった項目を有する。
【００３５】
「移動方向」は、操作コマンドと、面情報とに応じて飛行装置１００を移動させる方向を示す情報である。「アクセル」は、機体を上昇または下降させることを示す情報である。「エレベータ」は、機体を前後に傾けさせることを示す情報である。「エレベータ」は、移動方向が上方向または下方向である場合には、接触面に近い側が下になるように傾ける。また、「エレベータ」は、移動方向が水平前方または水平後方である場合には、前方または後方が下になるように傾ける。
【００３６】
図１の説明に戻って、制御部１３０は、例えば、ＣＰＵやＭＰＵ等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部１３０は、例えば、ＡＳＩＣやＦＰＧＡ等の集積回路により実現されるようにしてもよい。制御部１３０は、判定部１３１と、決定部１３２と、推力制御部１３３とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部１３０の内部構成は、図１に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【００３７】
判定部１３１は、接触検知センサ１１１から信号が入力されると、当該信号に基づいて、飛行装置１００が構造体の隣接する第１の面および第２の面のうち１つ以上の面に接触しているか否かを判定する。判定部１３１は、接触検知センサ１１１が測距センサの場合には、接触検知センサ１１１の信号に基づいて、接触検知センサ１１１から第１の面および第２の面のうち１つ以上の面までの距離を算出する。判定部１３１は、算出した距離と、車輪１４０の大きさとに基づいて、車輪１４０が面と接触しているか否かを判定する。判定部１３１は、判定結果を面情報として決定部１３２に出力する。なお、隣接する第１の面および第２の面は、図１０の例では、地面および前壁面、桁下面および前壁面、桁下面および後壁面、または、地面および後壁面である。
【００３８】
また、判定部１３１は、例えば、飛行装置１００を地面に置いた状態の接触方向、すなわち、飛行装置１００の移動開始地点における接触方向を地面として初期化する。判定部１３１は、例えば、初期化時に、カメラ１１３から入力される画像の記憶部１２０への記憶を開始する。すなわち、判定部１３１は、飛行装置１００の移動開始地点から移動終了地点までの構造体の表面を連続的に撮像する。さらに、判定部１３１は、例えば、通信部１１０から操作コマンドが１回入力されると、構造体に予め定められたルートの終点まで移動するように移動方向を決定するようにしてもよい。これにより、飛行装置１００は、より容易に構造体の検査を行うことができる。
【００３９】
判定部１３１は、接触検知センサ１１１がレーザレンジファインダである場合には、接触検知センサ１１１の信号に基づいて、接触検知センサ１１１から第１の面および第２の面のうち１つ以上の面までの方向および距離を算出する。判定部１３１は、算出した方向および距離と、車輪１４０の大きさとに基づいて、車輪１４０が面と接触しているか否かを判定する。
【００４０】
判定部１３１は、接触検知センサ１１１が圧力センサである場合には、接触検知センサ１１１の信号に基づいて、車輪１４０が構造体のどの面と接触しているか否かを判定する。また、判定部１３１は、接触検知センサ１１１が３軸力覚センサである場合には、接触検知センサ１１１の信号に基づいて、車輪１４０が構造体のどの面と接触しているか否かを判定する。
【００４１】
ここで、図１２を用いて図１０の例に対応する面情報を説明する。図１２は、面情報の一例を示す図である。図１２に示すように、判定部１３１は、判定結果が「地面」である場合には面情報Ｆ１を出力する。判定部１３１は、判定結果が「地面＋前壁面」である場合には面情報Ｆ２を出力する。判定部１３１は、判定結果が「前壁面」である場合には面情報Ｆ３を出力する。判定部１３１は、判定結果が「桁下面＋前壁面」である場合には面情報Ｆ４を出力する。判定部１３１は、判定結果が「桁下面」である場合には面情報Ｆ５を出力する。判定部１３１は、判定結果が「桁下面＋後壁面」である場合には面情報Ｆ６を出力する。判定部１３１は、判定結果が「後壁面」である場合には面情報Ｆ７を出力する。判定部１３１は、判定結果が「地面＋後壁面」である場合には面情報Ｆ８を出力する。
【００４２】
図１の説明に戻って、決定部１３２には、通信部１１０から操作コマンドが入力され、判定部１３１から面情報が入力される。決定部１３２は、操作コマンドを受信したか否かを判定する。決定部１３２は、操作コマンドを受信していない場合には、操作コマンドの受信を待機する。決定部１３２は、操作コマンドを受信した場合には、移動方向テーブル１２１を参照し、操作コマンドと、面情報とに基づいて、飛行装置１００の移動方向を決定する。すなわち、決定部１３２は、移動方向テーブル１２１を参照し、操作コマンドと、面情報とに基づいて、同一の操作コマンドによって構造体の隣接する第１の面と第２の面とを連続して移動可能に、飛行装置１００の移動方向を決定する。図９の１行目の例では、決定部１３２は、操作コマンドが「前進」であり、面情報が「Ｆ１：地面（初期状態）」であると、移動方向テーブル１２１を参照して飛行装置１００の移動方向を「水平前方」に決定する。決定部１３２は、決定した移動方向を推力制御部１３３に出力する。
【００４３】
決定部１３２は、第１の面と第２の面とに接触している旨の面情報が入力された場合には、面情報の履歴、すなわち、前回判定部１３１で判定されて入力された面情報に基づいて、移動方向を決定してもよい。例えば、決定部１３２は、飛行装置１００が図１０中の面情報Ｆ２の位置にいる場合に、飛行装置１００が前進コマンドによって、面情報Ｆ１で示す地面を左方向に移動してきたか、面情報Ｆ３で示す橋脚２１の壁面を下方向に移動してきたかが不明であると、移動方向を決定できない場合がある。決定部１３２は、このような場合において、前回判定された面情報が、例えば面情報Ｆ１であり、前進コマンドによってＦ２の位置に移動したのであれば、移動方向は橋脚２１の壁面を上方向に移動すると決定できる。
【００４４】
推力制御部１３３は、決定部１３２から移動方向が入力されると、推力制御テーブル１２２を参照し、飛行装置１００の推力を制御する。すなわち、推力制御部１３３は、各ロータ１１２に対して回転制御信号を出力して各ロータ１１２の回転を制御することで、飛行装置１００の推力を制御する。図１１の１行目の例では、推力制御部１３３は、移動方向が「上方向」であると、アクセル操作を「機体上昇」するように各ロータ１１２の回転を制御し、エレベータ操作を「接触面に近い側が下になるように傾ける」ように各ロータ１１２の回転を制御する。
【００４５】
ここで、図１３から図１５を用いて、壁面および桁下面での移動、ならびに、壁面から桁下面への移動における機体の傾きについて説明する。図１３は、壁面での移動の一例を示す図である。図１３に示すように、飛行装置１００は、壁面２３に沿って移動する場合には、機体を機体前方向、つまり壁面２３側に傾けて、壁面２３に対する押しつけ力と、上下方向の推力とに基づいて、車輪１４０が壁面２３に接触して、すなわち壁面２３に張り付いて移動する。言い換えると、飛行装置１００は、エレベータの操作で機体を前に傾けた状態にして壁面２３への押しつけ力が生じるようにした上で、アクセルの操作で上下方向の推力を調整することで上下方向に移動する。
【００４６】
図１４は、桁下面での移動の一例を示す図である。図１４に示すように、飛行装置１００は、桁下面２４に沿って移動する場合には、機体を移動方向である機体前方向に傾けて、上方向、つまり桁下面２４への押しつけ力と、機体前方向への推力とに基づいて、車輪１４０が桁下面２４に接触して、すなわち桁下面２４に張り付いて移動する。言い換えると、飛行装置１００は、アクセルの操作で桁下面２４への押しつけ力が生じるようにした上で、エレベータの操作で機体を機体前方向に傾けて機体前方向に移動する。なお、飛行装置１００は、機体後方向へ移動する場合には、機体を機体後方向に傾けることで、機体後方向に移動する。
【００４７】
図１５は、壁面から桁下面への移動の一例を示す図である。図１５に示すように、飛行装置１００は、前進コマンドを受信して、壁面２３に沿って上方向に移動すると、桁下面２４に接触する。飛行装置１００は、引き続き前進コマンドの受信を続けると、エレベータの操作を、接触面に近い側が下になるように傾けていた機体を進行方向である機体後方向側に傾ける。このとき、アクセルの操作は、機体を上昇させる方向となる。図９および図１０の例では、面情報が、面情報Ｆ３、Ｆ４、Ｆ５と変化する場合に相当する。つまり、飛行装置１００は、前進コマンドが入力され続けているので、移動方向は「上方向」、「水平後方」、「水平後方」と変化する。
【００４８】
この場合におけるコントローラ１０での操作と、従前のアクセルとエレベータとをそれぞれ操作する場合の違いを、図１６を用いて説明する。図１６は、コントローラの操作の違いを説明する図である。図１６は、本実施例のコントローラ１０と、従前のコントローラ１５とを表す。図１６に示すように、図１５の移動を行う場合のコントローラ１０での操作は、レバー１４ａを上下に倒すことで、接触面が変化しても前進および後退に対応する操作を行うだけである。これに対し、従前のコントローラ１５での操作は、アクセルに対応するレバー１６ａと、エレベータに対応するレバー１６ｂとをユーザが操作するので、接触面が変化するときに、ユーザがレバー１６ａを上昇側に操作しつつ、レバー１６ｂを、例えば、左から右にタイミングよく操作することが求められる。すなわち、本実施例にかかる飛行装置１００の操作は、同一操作で異なる面を連続移動できる。
【００４９】
次に、飛行装置１００が面に沿って移動中に、例えば突風に飛ばされて橋脚２１の壁面から離れてしまった場合について説明する。図１７は、面から離れた場合の一例を示す図である。図１７に示すように、飛行装置１００は、例えば、橋脚２１の壁面に沿って移動中に、押しつけ力を超える力の突風１５０を受けて、本来の位置１５１から飛ばされた位置１５２に移動してしまったとする。このとき、飛行装置１００は、例えば、接触検知センサ１１１の信号により接触している面がないことを検知すると、高度をゆっくり下げて軟着陸を行う。また、飛行装置１００は、例えば、図示しない加速度センサの情報に基づいて、本来の位置１５１の方向へ接触していた面を検知するまで移動する。なお、飛行装置１００は、一定時間以上移動しても接触していた面を検知できない場合には、高度をゆっくり下げて軟着陸を行う。さらに、飛行装置１００は、接触検知センサ１１１が測距可能なセンサである場合には、最寄りの面を検出し、検出した最寄りの面に接触するまで移動する。これにより、飛行装置１００は、外力によって移動ルートが逸れた場合であっても、元のルートに戻るか、または、軟着陸することができる。
【００５０】
次に、実施例の制御システム１の動作について説明する。まず、コントローラ１０の動作について説明する。図１８は、実施例の操作処理の一例を示すフローチャートである。
【００５１】
コントローラ１０の制御部１３は、例えば、コントローラ１０の電源が投入されると、通信部１１および操作部１２の設定等を初期化して（ステップＳ１）、操作部１２からの操作情報の入力の受付を開始する。制御部１３は、操作を継続するか否かを判定する（ステップＳ２）。制御部１３は、操作を継続しない場合には（ステップＳ２：否定）、操作処理を終了する。
【００５２】
制御部１３は、操作を継続する場合には（ステップＳ２：肯定）、操作部１２から操作情報が入力されたか否かを判定する（ステップＳ３）。制御部１３は、前進に対応する操作情報が入力された場合には（ステップＳ３：前進）、通信部１１を介して、前進コマンドを飛行装置１００に送信し（ステップＳ４）、ステップＳ２に戻る。制御部１３は、後退に対応する操作情報が入力された場合には（ステップＳ３：後退）、通信部１１を介して、後退コマンドを飛行装置１００に送信し（ステップＳ５）、ステップＳ２に戻る。制御部１３は、操作情報が入力されない場合には（ステップＳ３：なし）、ステップＳ２に戻る。これにより、コントローラ１０は、操作コマンドを飛行装置１００に送信できる。
【００５３】
続いて、飛行装置１００の動作について説明する。図１９は、実施例の制御処理の一例を示すフローチャートである。
【００５４】
飛行装置１００の判定部１３１は、飛行装置１００の移動開始地点における接触方向を地面として初期化する（ステップＳ１１）。また、判定部１３１は、カメラ１１３から入力される画像の記憶部１２０への記憶を開始する。判定部１３１は、制御処理を継続するか否かを判定する（ステップＳ１２）。判定部１３１は、制御処理を継続しない場合には（ステップＳ１２：否定）、制御処理を終了する。
【００５５】
判定部１３１は、制御処理を継続する場合には（ステップＳ１２：肯定）、接触検知センサ１１１の信号を取得する（ステップＳ１３）。判定部１３１は、接触検知センサ１１１の信号に基づいて、飛行装置１００が構造体の隣接する第１の面および第２の面のうち１つ以上の面に接触しているか否かを判定する（ステップＳ１４）。判定部１３１は、判定結果を面情報として決定部１３２に出力する。
【００５６】
決定部１３２は、操作コマンドを受信したか否かを判定する（ステップＳ１５）。決定部１３２は、操作コマンドを受信していない場合には（ステップＳ１５：否定）、ステップＳ１２に戻る。決定部１３２は、操作コマンドを受信した場合には（ステップＳ１５：肯定）、移動方向テーブル１２１を参照し、操作コマンドと、面情報とに基づいて、飛行装置１００の移動方向を決定する（ステップＳ１６）。決定部１３２は、決定した移動方向を推力制御部１３３に出力する。
【００５７】
推力制御部１３３は、決定部１３２から移動方向が入力されると、推力制御テーブル１２２を参照し、移動方向に応じて各ロータ１１２の回転を制御することで、飛行装置１００の推力を制御し（ステップＳ１７）、ステップＳ１２に戻る。これにより、飛行装置１００は、操作コマンドと接触している面とに基づいて移動方向を決定するので、同一操作で異なる面を連続移動できる。
【００５８】
このように、飛行装置１００は、接触検知センサ１１１の信号に基づいて、飛行装置１００が構造体の隣接する第１の面および第２の面のうち１つ以上の面に接触しているか否かを判定する。飛行装置１００は、飛行装置１００を操作するコントローラ１０から受信する前進または後退を指示する操作コマンドと、接触していると判定された面とに基づいて、同一の操作コマンドによって第１の面と第２の面とを連続して移動可能に、飛行装置１００の移動方向を決定する。飛行装置１００は、決定された移動方向に基づいて、飛行装置１００の推力を制御する。その結果、同一操作で異なる面を連続移動できる。
【００５９】
また、飛行装置１００は、さらに、接触していると前回判定された面に基づいて移動方向を決定する。その結果、構造体の異なる面の接続部分でユーザが飛行装置１００の実際の移動方向を気にすることなく、同一操作で異なる面を連続移動できる。
【００６０】
また、飛行装置１００は、飛行装置１００を上昇または下降させるアクセルスロットルと、飛行装置１００を前後に傾けさせるエレベータとを制御することで、飛行装置１００の推力を制御する。その結果、簡単な操作で異なる面を連続移動できる。
【００６１】
また、飛行装置１００は、操作コマンドを１回受信すると、構造体に予め定められたルートの終点まで移動するように移動方向を決定する。その結果、構造体の点検作業を効率的に進めることができる。
【００６２】
なお、上記実施例では、橋脚２１および桁２２の表面を帯状に連続して撮像するように飛行装置１００を移動させたが、これに限定されない。例えば、操作コマンドに左右方向のコマンドを追加して、壁面への接触時には前後進しながら左右に移動し、桁下面への接触時には水平方向に自由に移動することで撮像したい箇所に飛行装置１００を移動させるようにしてもよい。
【００６３】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、判定部１３１と決定部１３２とを統合してもよい。また、図示した各処理は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲において、同時に実施してもよく、順序を入れ替えて実施してもよい。
【００６４】
さらに、各装置で行われる各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。
【００６５】
ところで、上記の実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図２０は、飛行装置制御プログラムを実行するコンピュータの一例を示す図である。
【００６６】
図２０に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、データ入力を受け付ける入力装置２０２と、モニタ２０３とを有する。また、コンピュータ２００は、記憶媒体からプログラム等を読み取る媒体読取装置２０４と、各種装置と接続するためのインタフェース装置２０５と、他の情報処理装置等と有線または無線により接続するための通信装置２０６とを有する。また、コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０７と、フラッシュメモリ２０８とを有する。また、各装置２０１〜２０８は、バス２０９に接続される。
【００６７】
フラッシュメモリ２０８には、図１に示した判定部１３１、決定部１３２および推力制御部１３３の各処理部と同様の機能を有する飛行装置制御プログラムが記憶される。また、フラッシュメモリ２０８には、移動方向テーブル１２１、推力制御テーブル１２２、および、飛行装置制御プログラムを実現するための各種データが記憶される。入力装置２０２は、例えば、図１に示した接触検知センサ１１１と同様の機能を有する接触検知センサから信号の入力を受け付ける。モニタ２０３は、例えば、７セグメントＬＥＤ（Light  Emitting  Diode）等であり、コンピュータ２００のユーザに対して、コンピュータ２００の状態を示すコードを表示する。インタフェース装置２０５は、例えば、ロータ１１２等が接続される。通信装置２０６は、例えば、図１に示した通信部１１０と同様の機能を有しコントローラ１０と無線で接続され、コントローラ１０と操作コマンドやテレメトリ情報等の各種情報をやりとりする。
【００６８】
ＣＰＵ２０１は、フラッシュメモリ２０８に記憶された各プログラムを読み出して、ＲＡＭ２０７に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ２００を図１に示した判定部１３１、決定部１３２および推力制御部１３３として機能させることができる。
【００６９】
なお、上記の飛行装置制御プログラムは、必ずしもフラッシュメモリ２０８に記憶されている必要はない。例えば、コンピュータ２００が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ２００が読み出して実行するようにしてもよい。コンピュータ２００が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にこの飛行装置制御プログラムを記憶させておき、コンピュータ２００がこれらから飛行装置制御プログラムを読み出して実行するようにしてもよい。
【００７０】
以上、本実施例を含む実施の形態に関し、さらに以下の付記を開示する。
【００７１】
（付記１）接触検知センサの信号に基づいて、飛行装置が構造体の隣接する第１の面および第２の面のうち１つ以上の面に接触しているか否かを判定する判定部と、
前記飛行装置を操作するコントローラから受信する前進または後退を指示する操作コマンドと、接触していると判定された前記面とに基づいて、同一の前記操作コマンドによって前記第１の面と前記第２の面とを連続して移動可能に、前記飛行装置の移動方向を決定する決定部と、
決定された前記移動方向に基づいて、前記飛行装置の推力を制御する推力制御部と、
を有することを特徴とする飛行装置。
【００７２】
（付記２）前記決定部は、さらに、接触していると前回判定された前記面に基づいて前記移動方向を決定する、ことを特徴とする付記１に記載の飛行装置。
【００７３】
（付記３）前記推力制御部は、前記飛行装置を上昇または下降させるアクセルスロットルと、前記飛行装置を前後に傾けさせるエレベータとを制御することで、前記飛行装置の推力を制御する、ことを特徴とする付記１または２に記載の飛行装置。
【００７４】
（付記４）前記決定部は、前記操作コマンドを１回受信すると、前記構造体に予め定められたルートの終点まで移動するように前記移動方向を決定する、ことを特徴とする付記１〜３のいずれか１つに記載の飛行装置。
【００７５】
（付記５）接触検知センサの信号に基づいて、飛行装置が構造体の隣接する第１の面および第２の面のうち１つ以上の面に接触しているか否かを判定し、
前記飛行装置を操作するコントローラから受信する前進または後退を指示する操作コマンドと、接触していると判定された前記面とに基づいて、同一の前記操作コマンドによって前記第１の面と前記第２の面とを連続して移動可能に、前記飛行装置の移動方向を決定し、
決定された前記移動方向に基づいて、前記飛行装置の推力を制御する、
処理をコンピュータが実行することを特徴とする飛行装置制御方法。
【００７６】
（付記６）前記決定する処理は、さらに、接触していると前回判定された前記面に基づいて前記移動方向を決定する、ことを特徴とする付記５に記載の飛行装置制御方法。
【００７７】
（付記７）前記推力を制御する処理は、前記飛行装置を上昇または下降させるアクセルスロットルと、前記飛行装置を前後に傾けさせるエレベータとを制御することで、前記飛行装置の推力を制御する、ことを特徴とする付記５または６に記載の飛行装置制御方法。
【００７８】
（付記８）前記決定する処理は、前記操作コマンドを１回受信すると、前記構造体に予め定められたルートの終点まで移動するように前記移動方向を決定する、ことを特徴とする付記５〜７のいずれか１つに記載の飛行装置制御方法。
【００７９】
（付記９）接触検知センサの信号に基づいて、飛行装置が構造体の隣接する第１の面および第２の面のうち１つ以上の面に接触しているか否かを判定し、
前記飛行装置を操作するコントローラから受信する前進または後退を指示する操作コマンドと、接触していると判定された前記面とに基づいて、同一の前記操作コマンドによって前記第１の面と前記第２の面とを連続して移動可能に、前記飛行装置の移動方向を決定し、
決定された前記移動方向に基づいて、前記飛行装置の推力を制御する、
処理をコンピュータに実行させることを特徴とする飛行装置制御プログラム。
【００８０】
（付記１０）前記決定する処理は、さらに、接触していると前回判定された前記面に基づいて前記移動方向を決定する、ことを特徴とする付記９に記載の飛行装置制御プログラム。
【００８１】
（付記１１）前記推力を制御する処理は、前記飛行装置を上昇または下降させるアクセルスロットルと、前記飛行装置を前後に傾けさせるエレベータとを制御することで、前記飛行装置の推力を制御する、ことを特徴とする付記９または１０に記載の飛行装置制御プログラム。
【００８２】
（付記１２）前記決定する処理は、前記操作コマンドを１回受信すると、前記構造体に予め定められたルートの終点まで移動するように前記移動方向を決定する、ことを特徴とする付記９〜１１のいずれか１つに記載の飛行装置制御プログラム。
【符号の説明】
【００８３】
１  制御システム
１０  コントローラ
１１  通信部
１２  操作部
１３  制御部
１００  飛行装置
１１０  通信部
１１１  接触検知センサ
１１２  ロータ
１１３  カメラ
１２０  記憶部
１２１  移動方向テーブル
１２２  推力制御テーブル
１３０  制御部
１３１  判定部
１３２  決定部
１３３  推力制御部
【図１】
2018075938.tif 000003
【図２】
2018075938.tif 000004
【図３】
2018075938.tif 000005
【図４】
2018075938.tif 000006
【図５】
2018075938.tif 000007
【図６】
2018075938.tif 000008
【図７】
2018075938.tif 000009
【図８】
2018075938.tif 000010
【図９】
2018075938.tif 000011
【図１０】
2018075938.tif 000012
【図１１】
2018075938.tif 000013
【図１２】
2018075938.tif 000014
【図１３】
2018075938.tif 000015
【図１４】
2018075938.tif 000016
【図１５】
2018075938.tif 000017
【図１６】
2018075938.tif 000018
【図１７】
2018075938.tif 000019
【図１８】
2018075938.tif 000020
【図１９】
2018075938.tif 000021
【図２０】
2018075938.tif 000022