以下、図面に基づいて、本願の開示する飛行装置、飛行装置制御方法および飛行装置制御プログラムの実施例を詳細に説明する。なお、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。
図1は、実施例の制御システムの構成の一例を示すブロック図である。図1に示す制御システム1は、コントローラ10と、飛行装置100とを有する。コントローラ10は、飛行装置100を操作、すなわち飛行装置100を操縦するための操作部である。飛行装置100は、コントローラ10から受信する操作コマンドに基づいて飛行する無人機である。また、飛行装置100は、例えば、構造体の一例である橋梁の桁下面や橋脚の壁面に、これらの面との距離を保つための車輪を接触させ、面に沿って移動する。
飛行装置100は、接触検知センサの信号に基づいて、飛行装置が構造体の隣接する第1の面および第2の面のうち1つ以上の面に接触しているか否かを判定する。飛行装置100は、飛行装置100を操作するコントローラ10から受信する前進または後退を指示する操作コマンドと、接触していると判定された面とに基づいて、飛行装置100の移動方向を決定する。すなわち、飛行装置100は、同一の操作コマンドによって第1の面と第2の面とを連続して移動可能に、飛行装置100の移動方向を決定する。飛行装置100は、決定された移動方向に基づいて、飛行装置100の推力を制御する。これにより、飛行装置100は、同一操作で異なる面を連続移動できる。
図2は、飛行装置の一例を示す図である。図2(a)は飛行装置100の上面図を示し、図2(b)は飛行装置100の側面図を示す。図2に示すように、飛行装置100は、2つの車輪140と、2つの車輪を連結する車軸141と、本体142とを有する。車軸141は、本体142に回転自在に保持されている。車輪140は、構造体の面に接触した状態で飛行装置100が移動すると、移動に応じて回転する。車輪140は、軽量化のために、例えば、樹脂や炭素繊維等を用いることができる。本体142は、中央部に接触検知センサ111を有し、四隅から延長されたブームの先それぞれにロータ112を有する。接触検知センサ111は、飛行装置100が構造体の面に接触しているか否かを検知する。ロータ112は、例えば、プロペラをモータによって回転させる回転翼である。飛行装置100は、ロータ112を回転させることで推力を発生させて飛行するマルチコプタである。
図3は、コントローラの一例を示す図である。図3に示すように、コントローラ10は、レバー14を有し、ユーザの操作を受け付けて、操作コマンドを飛行装置100に対して送信する。コントローラ10は、例えば、ラジオコントロール(無線操縦)による無人機の操作に用いられるプロポーショナル式の送信機、いわゆるプロポである。
図4は、移動の一例を示す図である。図4に示すように、飛行装置100は、例えば、構造体の一例である橋梁20の橋脚21と桁22と地面とに囲まれた領域を、橋脚21の壁面と、桁22の下面と、地面とに沿って移動する。つまり、飛行装置100は、橋梁20の各構造のうち、垂直面や高所の水平面等の点検し辛い箇所を移動する。
次に、コントローラ10の構成について説明する。図1に示すように、コントローラ10は、通信部11と、操作部12と、制御部13とを有する。なお、コントローラ10は、図1に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の表示デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
通信部11は、例えば、40MHz帯、72MHz帯、73MHz帯、2.4GHz帯の無線機等によって実現される。通信部11は、飛行装置100と無線で接続され、飛行装置100との間で情報の通信を司る通信インタフェースである。通信部11は、制御部13から入力された操作コマンド等を飛行装置100に向けて送信する。また、通信部11は、飛行装置100から送信されたテレメトリ情報等を受信して制御部13に出力する。
操作部12は、例えば、複数のレバー14やスイッチ等を有し、ユーザによるレバー14等の操作を受け付けて、操作情報を制御部13に出力する。
制御部13は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部13は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されるようにしてもよい。制御部13は、コントローラ10全体を制御する。
制御部13は、操作部12から操作情報が入力されると、操作コマンドを生成する。制御部13は、例えば、操作部12からレバー14が上方向に操作された操作情報が入力されると、操作コマンドとして前進コマンドを生成する。また、制御部13は、例えば、操作部12からレバー14が下方向に操作された操作情報が入力されると、操作コマンドとして後退コマンドを生成する。制御部13は、生成した操作コマンドを通信部11に出力する。また、制御部13は、通信部11からテレメトリ情報が入力されると、テレメトリ情報を図示しない表示部に表示させるようにしてもよい。
続いて、飛行装置100の構成について説明する。図1に示すように、飛行装置100は、通信部110と、接触検知センサ111と、ロータ112と、カメラ113と、記憶部120と、制御部130とを有する。例えば、カメラ113、記憶部120および制御部130は、飛行装置100の本体142に格納されている。なお、飛行装置100は、図1に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の表示デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
通信部110は、例えば、40MHz帯、72MHz帯、73MHz帯、2.4GHz帯の無線機等によって実現される。通信部110は、コントローラ10と無線で接続され、コントローラ10との間で情報の通信を司る通信インタフェースである。通信部110は、コントローラ10から送信された操作コマンド等を受信して制御部130に出力する。また、通信部110は、制御部130から入力されたテレメトリ情報等をコントローラ10に向けて送信する。
接触検知センサ111は、飛行装置100が構造体の面に接触しているか否かを検知する。接触検知センサ111は、例えば、測距センサを用いて距離に応じた信号を制御部130に出力する。また、接触検知センサ111は、例えば、車軸141の軸受けに圧力センサを設けて車輪140が構造体の面に接触したことを検出した信号を制御部130に出力するようにしてもよい。
ここで、図5から図8を用いて、各種の接触検知センサ111について説明する。図5は、接触検知センサの一例を示す図である。図5の例では、赤外線や超音波を用いた測距センサである接触検知センサ111aを、飛行装置100の本体142の上下方向および前後方向の4方向に設けて、構造体の面までの距離を計測する。接触検知センサ111aは、例えば、センサ番号および距離に応じた信号を制御部130に出力する。
図6は、接触検知センサの他の一例を示す図である。図6の例では、レーザレンジファインダ(LRF:Laser Range Finder)等の広範囲を測距可能な測距センサである接触検知センサ111bを、飛行装置100の本体142に設けて、構造体の面までの距離を計測する。接触検知センサ111bは、例えば、方向および距離に応じた信号を制御部130に出力する。
図7は、接触検知センサの他の一例を示す図である。図7の例では、車軸141の軸受け141aに圧力センサである接触検知センサ111cを、飛行装置100の上下方向および前後方向の4方向に設けて、車輪140が構造体の面に接触することで車軸141にかかる力を検出する。接触検知センサ111cは、例えば、センサ番号および圧力に応じた信号を制御部130に出力する。
図8は、接触検知センサの他の一例を示す図である。図8の例では、車軸141の車輪140との接続部近傍に3軸力覚センサである接触検知センサ111dを設けて、車輪140が構造体の面に接触することで車軸141にかかる力を検出する。接触検知センサ111dは、例えば、3軸方向の圧力に応じた信号を制御部130に出力する。
図1の説明に戻って、ロータ112は、プロペラをモータによって回転させる回転翼であり、制御部130からの回転制御信号に基づいて回転する。ロータ112は、例えば、飛行装置100の本体142の四隅からブームを伸ばした先にそれぞれ設けられ、4つのロータ112の回転が制御される。ロータ112は、例えば、回転が制御されることで、飛行装置100に上昇および下降、前後方向の傾き、左右方向の傾き、ならびに、回転等の動作をさせる。
カメラ113は、例えば、予め定められた飛行装置100の前後方向に設けられ、構造体の面を撮像する。カメラ113は、例えば、撮像素子としてCMOS(Complementary Metal Oxide Semiconductor)イメージセンサまたはCCD(Charge Coupled Device)イメージセンサ等を用いて、画像を撮像する。カメラ113は、撮像素子が受光した光を光電変換しA/D(Analog/Digital)変換を行って画像を生成する。カメラ113は、生成した画像を制御部130に出力する。なお、カメラ113は、一方向に固定されていてもよいし、向きを変更できるようにしてもよい。また、カメラ113は、全天球カメラを用いてもよい。
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部120は、移動方向テーブル121と、推力制御テーブル122とを有する。また、記憶部120は、カメラ113で撮像された画像や制御部130での処理に用いる情報を記憶する。
移動方向テーブル121は、操作コマンドと、接触中の面と、移動方向とを対応付けて記憶する。図9は、移動方向テーブルの一例を示す図である。図9に示すように、移動方向テーブル121は、「操作コマンド」、「面情報」、「移動方向」といった項目を有する。
「操作コマンド」は、コントローラ10から受信した操作コマンドが、前進コマンドであるか後退コマンドであるかを示す情報である。「面情報」は、飛行装置100が接触中の構造体の面を示す識別子および情報である。なお、「面情報」は、予め設定され、構造体の面を示す識別子だけとしてもよい。「移動方向」は、操作コマンドと、面情報とに応じて飛行装置100を移動させる方向を示す情報である。図9の1行目の例では、操作コマンドが「前進」であり、面情報が「F1:地面(初期状態)」であると、飛行装置100を移動させる方向が「水平前方」であることを示す。
ここで、図10を用いて面情報について説明する。図10は、面の一例を示す図である。図10に示すように、構造体の一例である橋梁20の橋脚21の壁面と桁22の桁下面と地面とに囲まれた空間内を飛行装置100が各面に沿って移動するとする。まず、飛行装置100は、初期状態の位置として地面に配置される。その後、飛行装置100は、図中左方向に移動を開始し、橋梁20の橋脚21の壁面と桁22の桁下面と地面とに囲まれた空間内を1周するとする。このとき、飛行装置100が接触する面は、移動方向に応じて変化する。1周する経路は、飛行装置100が接触する面が変化する箇所で区切ることができ、それぞれの区間を、例えば、面情報F1〜F8として表す。
面情報F1は、初期状態であり、飛行装置100が地面と接触していることを示す。面情報F2は、飛行装置100が、地面と、初期状態の進行方向前方の橋脚21の壁面である前壁面とに接触していることを示す。面情報F3は、飛行装置100が、前壁面と接触していることを示す。面情報F4は、飛行装置100が、桁22の桁下面と前壁面とに接触していることを示す。面情報F5は、飛行装置100が、桁下面と接触していることを示す。面情報F6は、飛行装置100が、桁下面と、初期状態の進行方向後方の橋脚21の壁面である後壁面とに接触していることを示す。面情報F7は、飛行装置100が、後壁面と接触していることを示す。面情報F8は、飛行装置100が、地面と、後壁面とに接触していることを示す。
図1の説明に戻って、推力制御テーブル122は、移動方向と、アクセル(アクセルスロットル)指示と、エレベータ指示とを対応付けて記憶する。図11は、推力制御テーブルの一例を示す図である。図11に示すように、推力制御テーブル122は、「移動方向」、「アクセル」、「エレベータ」といった項目を有する。
「移動方向」は、操作コマンドと、面情報とに応じて飛行装置100を移動させる方向を示す情報である。「アクセル」は、機体を上昇または下降させることを示す情報である。「エレベータ」は、機体を前後に傾けさせることを示す情報である。「エレベータ」は、移動方向が上方向または下方向である場合には、接触面に近い側が下になるように傾ける。また、「エレベータ」は、移動方向が水平前方または水平後方である場合には、前方または後方が下になるように傾ける。
図1の説明に戻って、制御部130は、例えば、CPUやMPU等によって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部130は、例えば、ASICやFPGA等の集積回路により実現されるようにしてもよい。制御部130は、判定部131と、決定部132と、推力制御部133とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図1に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
判定部131は、接触検知センサ111から信号が入力されると、当該信号に基づいて、飛行装置100が構造体の隣接する第1の面および第2の面のうち1つ以上の面に接触しているか否かを判定する。判定部131は、接触検知センサ111が測距センサの場合には、接触検知センサ111の信号に基づいて、接触検知センサ111から第1の面および第2の面のうち1つ以上の面までの距離を算出する。判定部131は、算出した距離と、車輪140の大きさとに基づいて、車輪140が面と接触しているか否かを判定する。判定部131は、判定結果を面情報として決定部132に出力する。なお、隣接する第1の面および第2の面は、図10の例では、地面および前壁面、桁下面および前壁面、桁下面および後壁面、または、地面および後壁面である。
また、判定部131は、例えば、飛行装置100を地面に置いた状態の接触方向、すなわち、飛行装置100の移動開始地点における接触方向を地面として初期化する。判定部131は、例えば、初期化時に、カメラ113から入力される画像の記憶部120への記憶を開始する。すなわち、判定部131は、飛行装置100の移動開始地点から移動終了地点までの構造体の表面を連続的に撮像する。さらに、判定部131は、例えば、通信部110から操作コマンドが1回入力されると、構造体に予め定められたルートの終点まで移動するように移動方向を決定するようにしてもよい。これにより、飛行装置100は、より容易に構造体の検査を行うことができる。
判定部131は、接触検知センサ111がレーザレンジファインダである場合には、接触検知センサ111の信号に基づいて、接触検知センサ111から第1の面および第2の面のうち1つ以上の面までの方向および距離を算出する。判定部131は、算出した方向および距離と、車輪140の大きさとに基づいて、車輪140が面と接触しているか否かを判定する。
判定部131は、接触検知センサ111が圧力センサである場合には、接触検知センサ111の信号に基づいて、車輪140が構造体のどの面と接触しているか否かを判定する。また、判定部131は、接触検知センサ111が3軸力覚センサである場合には、接触検知センサ111の信号に基づいて、車輪140が構造体のどの面と接触しているか否かを判定する。
ここで、図12を用いて図10の例に対応する面情報を説明する。図12は、面情報の一例を示す図である。図12に示すように、判定部131は、判定結果が「地面」である場合には面情報F1を出力する。判定部131は、判定結果が「地面+前壁面」である場合には面情報F2を出力する。判定部131は、判定結果が「前壁面」である場合には面情報F3を出力する。判定部131は、判定結果が「桁下面+前壁面」である場合には面情報F4を出力する。判定部131は、判定結果が「桁下面」である場合には面情報F5を出力する。判定部131は、判定結果が「桁下面+後壁面」である場合には面情報F6を出力する。判定部131は、判定結果が「後壁面」である場合には面情報F7を出力する。判定部131は、判定結果が「地面+後壁面」である場合には面情報F8を出力する。
図1の説明に戻って、決定部132には、通信部110から操作コマンドが入力され、判定部131から面情報が入力される。決定部132は、操作コマンドを受信したか否かを判定する。決定部132は、操作コマンドを受信していない場合には、操作コマンドの受信を待機する。決定部132は、操作コマンドを受信した場合には、移動方向テーブル121を参照し、操作コマンドと、面情報とに基づいて、飛行装置100の移動方向を決定する。すなわち、決定部132は、移動方向テーブル121を参照し、操作コマンドと、面情報とに基づいて、同一の操作コマンドによって構造体の隣接する第1の面と第2の面とを連続して移動可能に、飛行装置100の移動方向を決定する。図9の1行目の例では、決定部132は、操作コマンドが「前進」であり、面情報が「F1:地面(初期状態)」であると、移動方向テーブル121を参照して飛行装置100の移動方向を「水平前方」に決定する。決定部132は、決定した移動方向を推力制御部133に出力する。
決定部132は、第1の面と第2の面とに接触している旨の面情報が入力された場合には、面情報の履歴、すなわち、前回判定部131で判定されて入力された面情報に基づいて、移動方向を決定してもよい。例えば、決定部132は、飛行装置100が図10中の面情報F2の位置にいる場合に、飛行装置100が前進コマンドによって、面情報F1で示す地面を左方向に移動してきたか、面情報F3で示す橋脚21の壁面を下方向に移動してきたかが不明であると、移動方向を決定できない場合がある。決定部132は、このような場合において、前回判定された面情報が、例えば面情報F1であり、前進コマンドによってF2の位置に移動したのであれば、移動方向は橋脚21の壁面を上方向に移動すると決定できる。
推力制御部133は、決定部132から移動方向が入力されると、推力制御テーブル122を参照し、飛行装置100の推力を制御する。すなわち、推力制御部133は、各ロータ112に対して回転制御信号を出力して各ロータ112の回転を制御することで、飛行装置100の推力を制御する。図11の1行目の例では、推力制御部133は、移動方向が「上方向」であると、アクセル操作を「機体上昇」するように各ロータ112の回転を制御し、エレベータ操作を「接触面に近い側が下になるように傾ける」ように各ロータ112の回転を制御する。
ここで、図13から図15を用いて、壁面および桁下面での移動、ならびに、壁面から桁下面への移動における機体の傾きについて説明する。図13は、壁面での移動の一例を示す図である。図13に示すように、飛行装置100は、壁面23に沿って移動する場合には、機体を機体前方向、つまり壁面23側に傾けて、壁面23に対する押しつけ力と、上下方向の推力とに基づいて、車輪140が壁面23に接触して、すなわち壁面23に張り付いて移動する。言い換えると、飛行装置100は、エレベータの操作で機体を前に傾けた状態にして壁面23への押しつけ力が生じるようにした上で、アクセルの操作で上下方向の推力を調整することで上下方向に移動する。
図14は、桁下面での移動の一例を示す図である。図14に示すように、飛行装置100は、桁下面24に沿って移動する場合には、機体を移動方向である機体前方向に傾けて、上方向、つまり桁下面24への押しつけ力と、機体前方向への推力とに基づいて、車輪140が桁下面24に接触して、すなわち桁下面24に張り付いて移動する。言い換えると、飛行装置100は、アクセルの操作で桁下面24への押しつけ力が生じるようにした上で、エレベータの操作で機体を機体前方向に傾けて機体前方向に移動する。なお、飛行装置100は、機体後方向へ移動する場合には、機体を機体後方向に傾けることで、機体後方向に移動する。
図15は、壁面から桁下面への移動の一例を示す図である。図15に示すように、飛行装置100は、前進コマンドを受信して、壁面23に沿って上方向に移動すると、桁下面24に接触する。飛行装置100は、引き続き前進コマンドの受信を続けると、エレベータの操作を、接触面に近い側が下になるように傾けていた機体を進行方向である機体後方向側に傾ける。このとき、アクセルの操作は、機体を上昇させる方向となる。図9および図10の例では、面情報が、面情報F3、F4、F5と変化する場合に相当する。つまり、飛行装置100は、前進コマンドが入力され続けているので、移動方向は「上方向」、「水平後方」、「水平後方」と変化する。
この場合におけるコントローラ10での操作と、従前のアクセルとエレベータとをそれぞれ操作する場合の違いを、図16を用いて説明する。図16は、コントローラの操作の違いを説明する図である。図16は、本実施例のコントローラ10と、従前のコントローラ15とを表す。図16に示すように、図15の移動を行う場合のコントローラ10での操作は、レバー14aを上下に倒すことで、接触面が変化しても前進および後退に対応する操作を行うだけである。これに対し、従前のコントローラ15での操作は、アクセルに対応するレバー16aと、エレベータに対応するレバー16bとをユーザが操作するので、接触面が変化するときに、ユーザがレバー16aを上昇側に操作しつつ、レバー16bを、例えば、左から右にタイミングよく操作することが求められる。すなわち、本実施例にかかる飛行装置100の操作は、同一操作で異なる面を連続移動できる。
次に、飛行装置100が面に沿って移動中に、例えば突風に飛ばされて橋脚21の壁面から離れてしまった場合について説明する。図17は、面から離れた場合の一例を示す図である。図17に示すように、飛行装置100は、例えば、橋脚21の壁面に沿って移動中に、押しつけ力を超える力の突風150を受けて、本来の位置151から飛ばされた位置152に移動してしまったとする。このとき、飛行装置100は、例えば、接触検知センサ111の信号により接触している面がないことを検知すると、高度をゆっくり下げて軟着陸を行う。また、飛行装置100は、例えば、図示しない加速度センサの情報に基づいて、本来の位置151の方向へ接触していた面を検知するまで移動する。なお、飛行装置100は、一定時間以上移動しても接触していた面を検知できない場合には、高度をゆっくり下げて軟着陸を行う。さらに、飛行装置100は、接触検知センサ111が測距可能なセンサである場合には、最寄りの面を検出し、検出した最寄りの面に接触するまで移動する。これにより、飛行装置100は、外力によって移動ルートが逸れた場合であっても、元のルートに戻るか、または、軟着陸することができる。
次に、実施例の制御システム1の動作について説明する。まず、コントローラ10の動作について説明する。図18は、実施例の操作処理の一例を示すフローチャートである。
コントローラ10の制御部13は、例えば、コントローラ10の電源が投入されると、通信部11および操作部12の設定等を初期化して(ステップS1)、操作部12からの操作情報の入力の受付を開始する。制御部13は、操作を継続するか否かを判定する(ステップS2)。制御部13は、操作を継続しない場合には(ステップS2:否定)、操作処理を終了する。
制御部13は、操作を継続する場合には(ステップS2:肯定)、操作部12から操作情報が入力されたか否かを判定する(ステップS3)。制御部13は、前進に対応する操作情報が入力された場合には(ステップS3:前進)、通信部11を介して、前進コマンドを飛行装置100に送信し(ステップS4)、ステップS2に戻る。制御部13は、後退に対応する操作情報が入力された場合には(ステップS3:後退)、通信部11を介して、後退コマンドを飛行装置100に送信し(ステップS5)、ステップS2に戻る。制御部13は、操作情報が入力されない場合には(ステップS3:なし)、ステップS2に戻る。これにより、コントローラ10は、操作コマンドを飛行装置100に送信できる。
続いて、飛行装置100の動作について説明する。図19は、実施例の制御処理の一例を示すフローチャートである。
飛行装置100の判定部131は、飛行装置100の移動開始地点における接触方向を地面として初期化する(ステップS11)。また、判定部131は、カメラ113から入力される画像の記憶部120への記憶を開始する。判定部131は、制御処理を継続するか否かを判定する(ステップS12)。判定部131は、制御処理を継続しない場合には(ステップS12:否定)、制御処理を終了する。
判定部131は、制御処理を継続する場合には(ステップS12:肯定)、接触検知センサ111の信号を取得する(ステップS13)。判定部131は、接触検知センサ111の信号に基づいて、飛行装置100が構造体の隣接する第1の面および第2の面のうち1つ以上の面に接触しているか否かを判定する(ステップS14)。判定部131は、判定結果を面情報として決定部132に出力する。
決定部132は、操作コマンドを受信したか否かを判定する(ステップS15)。決定部132は、操作コマンドを受信していない場合には(ステップS15:否定)、ステップS12に戻る。決定部132は、操作コマンドを受信した場合には(ステップS15:肯定)、移動方向テーブル121を参照し、操作コマンドと、面情報とに基づいて、飛行装置100の移動方向を決定する(ステップS16)。決定部132は、決定した移動方向を推力制御部133に出力する。
推力制御部133は、決定部132から移動方向が入力されると、推力制御テーブル122を参照し、移動方向に応じて各ロータ112の回転を制御することで、飛行装置100の推力を制御し(ステップS17)、ステップS12に戻る。これにより、飛行装置100は、操作コマンドと接触している面とに基づいて移動方向を決定するので、同一操作で異なる面を連続移動できる。
このように、飛行装置100は、接触検知センサ111の信号に基づいて、飛行装置100が構造体の隣接する第1の面および第2の面のうち1つ以上の面に接触しているか否かを判定する。飛行装置100は、飛行装置100を操作するコントローラ10から受信する前進または後退を指示する操作コマンドと、接触していると判定された面とに基づいて、同一の操作コマンドによって第1の面と第2の面とを連続して移動可能に、飛行装置100の移動方向を決定する。飛行装置100は、決定された移動方向に基づいて、飛行装置100の推力を制御する。その結果、同一操作で異なる面を連続移動できる。
また、飛行装置100は、さらに、接触していると前回判定された面に基づいて移動方向を決定する。その結果、構造体の異なる面の接続部分でユーザが飛行装置100の実際の移動方向を気にすることなく、同一操作で異なる面を連続移動できる。
また、飛行装置100は、飛行装置100を上昇または下降させるアクセルスロットルと、飛行装置100を前後に傾けさせるエレベータとを制御することで、飛行装置100の推力を制御する。その結果、簡単な操作で異なる面を連続移動できる。
また、飛行装置100は、操作コマンドを1回受信すると、構造体に予め定められたルートの終点まで移動するように移動方向を決定する。その結果、構造体の点検作業を効率的に進めることができる。
なお、上記実施例では、橋脚21および桁22の表面を帯状に連続して撮像するように飛行装置100を移動させたが、これに限定されない。例えば、操作コマンドに左右方向のコマンドを追加して、壁面への接触時には前後進しながら左右に移動し、桁下面への接触時には水平方向に自由に移動することで撮像したい箇所に飛行装置100を移動させるようにしてもよい。
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、判定部131と決定部132とを統合してもよい。また、図示した各処理は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲において、同時に実施してもよく、順序を入れ替えて実施してもよい。
さらに、各装置で行われる各種処理機能は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。
ところで、上記の実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図20は、飛行装置制御プログラムを実行するコンピュータの一例を示す図である。
図20に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、データ入力を受け付ける入力装置202と、モニタ203とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読み取る媒体読取装置204と、各種装置と接続するためのインタフェース装置205と、他の情報処理装置等と有線または無線により接続するための通信装置206とを有する。また、コンピュータ200は、各種情報を一時記憶するRAM207と、フラッシュメモリ208とを有する。また、各装置201〜208は、バス209に接続される。
フラッシュメモリ208には、図1に示した判定部131、決定部132および推力制御部133の各処理部と同様の機能を有する飛行装置制御プログラムが記憶される。また、フラッシュメモリ208には、移動方向テーブル121、推力制御テーブル122、および、飛行装置制御プログラムを実現するための各種データが記憶される。入力装置202は、例えば、図1に示した接触検知センサ111と同様の機能を有する接触検知センサから信号の入力を受け付ける。モニタ203は、例えば、7セグメントLED(Light Emitting Diode)等であり、コンピュータ200のユーザに対して、コンピュータ200の状態を示すコードを表示する。インタフェース装置205は、例えば、ロータ112等が接続される。通信装置206は、例えば、図1に示した通信部110と同様の機能を有しコントローラ10と無線で接続され、コントローラ10と操作コマンドやテレメトリ情報等の各種情報をやりとりする。
CPU201は、フラッシュメモリ208に記憶された各プログラムを読み出して、RAM207に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ200を図1に示した判定部131、決定部132および推力制御部133として機能させることができる。
なお、上記の飛行装置制御プログラムは、必ずしもフラッシュメモリ208に記憶されている必要はない。例えば、コンピュータ200が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ200が読み出して実行するようにしてもよい。コンピュータ200が読み取り可能な記憶媒体は、例えば、CD−ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にこの飛行装置制御プログラムを記憶させておき、コンピュータ200がこれらから飛行装置制御プログラムを読み出して実行するようにしてもよい。
以上、本実施例を含む実施の形態に関し、さらに以下の付記を開示する。
(付記1)接触検知センサの信号に基づいて、飛行装置が構造体の隣接する第1の面および第2の面のうち1つ以上の面に接触しているか否かを判定する判定部と、
前記飛行装置を操作するコントローラから受信する前進または後退を指示する操作コマンドと、接触していると判定された前記面とに基づいて、同一の前記操作コマンドによって前記第1の面と前記第2の面とを連続して移動可能に、前記飛行装置の移動方向を決定する決定部と、
決定された前記移動方向に基づいて、前記飛行装置の推力を制御する推力制御部と、
を有することを特徴とする飛行装置。
(付記2)前記決定部は、さらに、接触していると前回判定された前記面に基づいて前記移動方向を決定する、ことを特徴とする付記1に記載の飛行装置。
(付記3)前記推力制御部は、前記飛行装置を上昇または下降させるアクセルスロットルと、前記飛行装置を前後に傾けさせるエレベータとを制御することで、前記飛行装置の推力を制御する、ことを特徴とする付記1または2に記載の飛行装置。
(付記4)前記決定部は、前記操作コマンドを1回受信すると、前記構造体に予め定められたルートの終点まで移動するように前記移動方向を決定する、ことを特徴とする付記1〜3のいずれか1つに記載の飛行装置。
(付記5)接触検知センサの信号に基づいて、飛行装置が構造体の隣接する第1の面および第2の面のうち1つ以上の面に接触しているか否かを判定し、
前記飛行装置を操作するコントローラから受信する前進または後退を指示する操作コマンドと、接触していると判定された前記面とに基づいて、同一の前記操作コマンドによって前記第1の面と前記第2の面とを連続して移動可能に、前記飛行装置の移動方向を決定し、
決定された前記移動方向に基づいて、前記飛行装置の推力を制御する、
処理をコンピュータが実行することを特徴とする飛行装置制御方法。
(付記6)前記決定する処理は、さらに、接触していると前回判定された前記面に基づいて前記移動方向を決定する、ことを特徴とする付記5に記載の飛行装置制御方法。
(付記7)前記推力を制御する処理は、前記飛行装置を上昇または下降させるアクセルスロットルと、前記飛行装置を前後に傾けさせるエレベータとを制御することで、前記飛行装置の推力を制御する、ことを特徴とする付記5または6に記載の飛行装置制御方法。
(付記8)前記決定する処理は、前記操作コマンドを1回受信すると、前記構造体に予め定められたルートの終点まで移動するように前記移動方向を決定する、ことを特徴とする付記5〜7のいずれか1つに記載の飛行装置制御方法。
(付記9)接触検知センサの信号に基づいて、飛行装置が構造体の隣接する第1の面および第2の面のうち1つ以上の面に接触しているか否かを判定し、
前記飛行装置を操作するコントローラから受信する前進または後退を指示する操作コマンドと、接触していると判定された前記面とに基づいて、同一の前記操作コマンドによって前記第1の面と前記第2の面とを連続して移動可能に、前記飛行装置の移動方向を決定し、
決定された前記移動方向に基づいて、前記飛行装置の推力を制御する、
処理をコンピュータに実行させることを特徴とする飛行装置制御プログラム。
(付記10)前記決定する処理は、さらに、接触していると前回判定された前記面に基づいて前記移動方向を決定する、ことを特徴とする付記9に記載の飛行装置制御プログラム。
(付記11)前記推力を制御する処理は、前記飛行装置を上昇または下降させるアクセルスロットルと、前記飛行装置を前後に傾けさせるエレベータとを制御することで、前記飛行装置の推力を制御する、ことを特徴とする付記9または10に記載の飛行装置制御プログラム。
(付記12)前記決定する処理は、前記操作コマンドを1回受信すると、前記構造体に予め定められたルートの終点まで移動するように前記移動方向を決定する、ことを特徴とする付記9〜11のいずれか1つに記載の飛行装置制御プログラム。