以下、添付図面を参照しながら各実施例について詳細に説明する。
[実施例1]
図1は、一実施例による作業機械1及び無人飛行機40の構成に関する説明図である。なお、図1には、作業機械1及び無人飛行機40に加えて、飛行制御装置50(作業支援装置の一例)と遠隔操作装置52が図示されている。
作業機械1は、無人飛行機40と連携しながら所定の作業を遂行する。作業機械1は、例えば解体作業等に好適な破砕機145を備えた建設機械であり、クローラ式の下部走行体110と、下部走行体110に旋回機構130を介して旋回可能に搭載される上部旋回体120と、作業機構140と、を備えている。上部旋回体120の前方左側部にはキャブ(運転室)122が設けられる。上部旋回体120の前方中央部には作業機構140が設けられ、作業機構140の先端に破砕機145が設けられる。なお、作業機械1は、無人飛行機40が発着するベースメントを備えてもよい。
作業機構140は、上部旋回体120に起伏可能に装着されるブーム141と、ブーム141の先端に回動可能に連結されるアーム143と、アーム143の先端に取り付けられた破砕機145と、を備えている。作業機構140には、伸縮可能な油圧シリンダにより形成されるブームシリンダ142、アームシリンダ144及びバケットシリンダ146が装着される。破砕機145に代えてバケットなどの他の先端アタッチメントがアーム143の先端部に取り付けられていてもよい。
ブームシリンダ142は、作動油の供給を受けることにより伸縮してブーム141を起伏方向に回動させるようにブーム141と上部旋回体120との間に介在する。アームシリンダ144は、作動油の供給を受けることにより伸縮してアーム143をブーム141に対して水平軸回りに回動させるようにアーム143とブーム141との間に介在する。バケットシリンダ146は、作動油の供給を受けることにより伸縮して破砕機145をアーム143に対して水平軸回りに回動させるように破砕機145とアーム143との間に介在する。破砕機用シリンダ147は、作動油の供給を受けることにより伸縮して破砕機145を開閉させるように破砕機145に設けられる。
無人飛行機40は、回転翼機であり、複数(例えば、4、6又は8)の羽根、当該複数の羽根を回転させるための電動モータ(アクチュエータ)等に電力を供給するバッテリなどを備える。なお、かかるバッテリに代えて又は加えて、無人飛行機40は、地上から電力供給線に接続されてもよい。
無人飛行機40は、制御装置400と、撮像装置410とを備える。
制御装置400は、後述する飛行制御装置50からの制御情報(指令)や遠隔操作装置52からの操作情報に応じて、無人飛行機40の各種飛行状態(前進状態、後退状態、上昇状態、下降状態、ホバリング等)を実現する。また、制御装置400は、撮像装置410で取得される画像(前方環境画像)を作業機械1に送信する。
撮像装置410は、カメラを含む。カメラの種類等は任意であり、例えば広角カメラであってもよい。撮像装置410は、取り外し可能に無人飛行機40に取り付けられてもよいし、無人飛行機40に強固に固定されてもよい。撮像装置410は、CCD(charge-coupled device)やCMOS(complementary metal oxide semiconductor)等の撮像素子により、無人飛行機40の機体前方の前方環境画像を取得する。撮像装置410は、例えば、リアルタイムに前方環境画像を取得し、所定のフレーム周期のストリーム形式で制御装置400に供給するものであってよい。
撮像装置410は、好ましくは、ジンバル(図示せず)を備える。ジンバルは、無人飛行機40の姿勢が変化しても、撮像装置410の光軸が一定の向き(例えば水平面内の所定方向)に保つように機能する。
飛行制御装置50は、無人飛行機40の各種制御を実行する。一実施例では、飛行制御装置50は、サーバ(サーバコンピュータ)より実現され、この場合、飛行制御装置50は、ネットワーク(図示せず)を介して作業機械1及び無人飛行機40に接続される。この場合、ネットワークは、無線通信網や、インターネット、VPN(Virtual Private Network)、WAN(Wide Area Network)、有線ネットワーク、又はこれらの任意の組み合わせ等を含んでもよい。他の実施例では、飛行制御装置50は、作業機械1の制御装置10により実現されてもよい。また、他の実施例では、飛行制御装置50は、無人飛行機40の制御装置400により実現されてもよい。あるいは、他の実施例では、飛行制御装置50の機能は、サーバ、制御装置10、及び制御装置400のうちの、いずれか2つの組み合わせ又はすべてにより協動して実現されてもよい。飛行制御装置50の詳細は後述する。
遠隔操作装置52は、例えばリモートコントローラの形態であり、ユーザ(例えば、作業機械1の操作者又は操作者とは異なる作業者)により操作されてよい。なお、ユーザが、作業機械1の操作者である場合、遠隔操作装置52は、キャブ122内に持ち込まれうる。遠隔操作装置52は、無人飛行機40と無線通信可能であり、ユーザの操作に応じた操作信号を無人飛行機40に向けて送信する。この場合、無人飛行機40は遠隔操作装置52からの操作情報を受信すると、無人飛行機40の制御装置400は、操作情報に応じた無人飛行機40の動き(前進、後退、昇降等)を実現する。なお、変形例では、遠隔操作装置52は省略されてもよい。また、遠隔操作装置52は、スマートフォン等により実現されてもよい。
図2は、作業機械1の制御系に係るハードウェア構成の一例を示す図である。
作業機械1は、図2に示すように、電装系装置8と、制御装置10とを備える。
電装系装置8は、作業機械1に搭載される電子制御可能な機器や各種センサ等である。電装系装置8は、例えば、画像出力装置80(表示装置の一例)や、ブザー、音声出力装置(図示せず)、旋回機構130、作業機構140や下部走行体110等を作動させる油圧発生装置(図2A参照)、各種操作部材の操作状態を検出する各種センサ類82等を含んでよい。なお、電装系装置8(特に各種センサ類82)は、基本的には、上部旋回体120に設けられる。これは、下部走行体110は、上部旋回体120よりも外部環境に晒されやすいためである。
なお、油圧発生装置は、エンジン及び/又は電動モータにより駆動される油圧ポンプ(図2Aのメインポンプ914参照)を含んでよい。電動モータにより駆動される油圧ポンプを利用する場合、油圧発生装置は、電動モータを駆動するためのインバータを更に含んでよい。各種センサ類82は、ジャイロセンサや、GPS(Global Positioning System)センサ、各種の角度センサ、加速度センサ(傾斜センサ)、油圧発生装置により付与される油圧ライン(図2Aの高圧油圧ライン916参照)の所定箇所の油圧を検出する油圧センサ(図2Aの圧力センサ929参照)等を含んでよい。
画像出力装置80は、作業機械1の操作者が視認できるようにキャブ122内に設けられる。画像出力装置80は、任意であるが、例えば液晶ディスプレイや、有機EL(Electro-Luminescence)ディスプレイ等であってよい。なお、変形例では、画像出力装置80は、作業機械1の操作者によりキャブ122に持ち込まれうる携帯型の装置(例えばタブレット端末等)であってもよい。
制御装置10は、バス19で接続されたCPU(Central Processing Unit)11、RAM(Random Access Memory)12、ROM(Read Only Memory)13、補助記憶装置14、ドライブ装置15、及び通信インターフェース17、並びに、通信インターフェース17に接続された有線送受信部25及び無線送受信部26を含む。
補助記憶装置14は、例えばHDD(Hard Disk Drive)や、SSD(Solid State Drive)などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
有線送受信部25は、有線ネットワークを利用して通信可能な送受信部を含む。有線送受信部25には、電装系装置8が接続される。ただし、電装系装置8の一部又は全部は、バス19に接続されてもよいし、無線送受信部26に接続されてもよい。
無線送受信部26は、無線ネットワークを利用して通信可能な送受信部である。無線ネットワークは、携帯電話の無線通信網や、インターネット、VPN、WAN等を含んでよい。また、無線送受信部26は、近距離無線通信(NFC:Near Field Communication)部、ブルートゥース(Bluetooth、登録商標)通信部、Wi-Fi(Wireless-Fidelity)送受信部、赤外線送受信部などを含んでもよい。例えば、無線送受信部26は、サーバの形態の飛行制御装置50との間で通信を実現できる。
なお、制御装置10は、記録媒体16と接続可能であってもよい。記録媒体16は、所定のプログラムを格納する。この記録媒体16に格納されたプログラムは、ドライブ装置15を介して制御装置10の補助記憶装置14等にインストールされる。インストールされた所定のプログラムは、制御装置10のCPU11により実行可能となる。例えば、記録媒体16は、CD(Compact Disc)-ROM、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する記録媒体、ROM、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等であってよい。なお、記録媒体16には、搬送波は含まれない。
ここでは、図2を参照して、作業機械1の制御系について説明したが、無人飛行機40についても、電装系装置8に係る構成を除いて、実質的に同様であってよい。例えば、無人飛行機40の制御系の場合、制御装置400のハードウェア構成は、制御装置10と同様であってよい。また、電装系装置8に対応する電装系装置は、撮像装置410(図1参照)や各種センサ類を含む。
また、飛行制御装置50のハードウェア構成についても、図2に示す制御装置10のハードウェア構成と実質的に同様であってよい。
図2Aは、作業機械1の操作系に係る概略的な説明図である。図2Aでは、高圧油圧ラインを実線、パイロットラインを破線、電気駆動・制御系を一点鎖線でそれぞれ示す。
メインポンプ914は、コントロールバルブ917に供給するための油圧を発生するポンプである。この油圧は、コントロールバルブ917を介して油圧モータ110A、110B、ブームシリンダ142、アームシリンダ144、及びシリンダ146の各々を駆動するために供給される。
パイロットポンプ915は、油圧操作系に必要なパイロット圧を発生するポンプである。
操作装置926には、油圧ライン927及び928を介して、コントロールバルブ917及び圧力センサ929がそれぞれ接続される。この圧力センサ929には、作業機械1の電気系の駆動制御を行う上述した制御装置10が接続される。
コントロールバルブ917には、下部走行体110用の油圧モータ110A(右用)及び110B(左用)、ブームシリンダ142、アームシリンダ144、及びシリンダ146が高圧油圧ライン916を介して接続される。
コントロールバルブ917は、高圧油圧ライン916を介して接続される下部走行体110用の油圧モータ110A、110B、ブームシリンダ142、アームシリンダ144、及びシリンダ146の各々に供給する油圧を運転者の操作入力に応じて制御する。
操作装置926は、下部走行体110、ブーム141、アーム143、及び破砕機145を操作するための操作装置である。操作装置926は、レバー926A及び926Bとレバー926Cを含む。レバー926Aは、アーム143を操作するためのレバーであり、レバー926Bは、ブーム141及び破砕機145を操作するためのレバーである。また、レバー926Cは、下部走行体110を操作するための一対のレバーである。具体的には、レバー926Cは、左側のクローラを駆動回転させる左側レバーと、右側のクローラを駆動回転させる右側レバーとを含む。なお、レバー926Cは、運転席の足下に設けられる対のペダルの形態であってもよい。
操作装置926は、パイロットライン925を通じて供給される油圧(1次側の油圧)を運転者の操作量に応じた油圧(2次側の油圧)に変換して出力する。操作装置926から出力される2次側の油圧は、油圧ライン927を通じてコントロールバルブ917に供給されるとともに、圧力センサ929によって検出される。
レバー926A及び926Bとレバー926Cの各々が操作されると、油圧ライン927を通じてコントロールバルブ917が駆動され、これにより、油圧モータ110A、110B、ブームシリンダ142、アームシリンダ144、及びシリンダ146内の油圧が制御されることによって、下部走行体110、ブーム141、アーム143、及び破砕機145が駆動される。
なお、油圧ライン927は、油圧モータ110A及び110B、ブームシリンダ142、アームシリンダ144、及びシリンダ146の駆動に必要な油圧をコントロールバルブ917に供給する。
圧力センサ929は、レバー926Cの操作による油圧ライン928内の油圧の変化を検出する。圧力センサ929は、油圧ライン928内の油圧を表す電気信号を出力する。この電気信号は、レバー926Cの操作態様(左側レバー及び右側レバーのそれぞれの操作量と方向)を表す信号を含み、制御装置10に入力される。なお、レバー926Cの操作態様は、磁気的に又は光学的に検出されてもよい。
次に、図3以降を参照して、制御装置10及び制御装置400とともに、飛行制御装置50を詳説する。
図3は、制御装置10、制御装置400、及び飛行制御装置50により実現される機能を説明する図である。図3では、主に、後述するホバリング維持制御に関連する機能について図示されている。従って、制御装置10等は、図示以外の他の機能を適宜備えてよい。
制御装置10は、図3に示すように、位置情報取得部150と、姿勢情報取得部151と、向き情報取得部152と、通信処理部153と、画像出力処理部154と、操作情報取得部155と、アクチュエータ制御部156と、を含む。位置情報取得部150のような各機能部は、図2に示したCPU11が、図2に示したROM13のような記憶装置内のプログラムを実行することで、実現できる。
位置情報取得部150は、センサ類82のうちの、GPSセンサ(図示せず)から、作業機械1の位置情報を取得する。作業機械1の位置情報は、緯度、経度、及び高度で表現される。なお、GPSセンサは、GPS受信機を含み、衛星から電波に基づいて、干渉測位等により、緯度、経度、及び高度を算出する。
姿勢情報取得部151は、センサ類82のうちの、作業機械1の姿勢に係るパラメータを取得する各種センサに基づいて、作業機械1の姿勢情報を取得する。この場合、姿勢に係るパラメータを取得する各種センサは、例えば、ブーム角度センサや、アーム角度センサ、バケット角度センサ、機体傾斜センサ等であってよい。なお、ブーム角度センサは、ブーム角度を取得するセンサであり、例えば、ブームフートピンの回転角度を検出する回転角センサ、ブームシリンダ142のストローク量を検出するストロークセンサ、ブーム141の傾斜角度を検出する傾斜(加速度)センサ等を含む。また、アーム角度センサ及びバケット角度センサについても同様である。機体傾斜センサは、機体傾斜角度を取得するセンサであり、例えば、水平面に対する上部旋回体120の傾斜角度を検出する。
向き情報取得部152は、センサ類82のうちの、下部走行体110に対する上部旋回体120の向き(以下、単に「上部旋回体120の向き」とも称する)に係るパラメータを取得する各種センサに基づいて、上部旋回体120の向きを表す向き情報を取得する。この場合、上部旋回体120の向きに係るパラメータを取得する各種センサは、例えば、地磁気センサや、旋回機構130の旋回軸まわりの旋回角度を検出する回転角センサ(例えばレゾルバ等)、ジャイロセンサ等であってよい。
通信処理部153は、位置情報取得部150、姿勢情報取得部151、及び向き情報取得部152により取得される各種情報等を、飛行制御装置50に送信する。例えば、通信処理部153は、飛行制御装置50からの要求に応じて、所定周期ごとに最新の情報を飛行制御装置50に送信してもよい。
また、通信処理部153は、無人飛行機40から画像データを受信する。画像データは、撮像装置410により撮像される前方環境画像のデータである。
画像出力処理部154は、通信処理部153により取得される画像データに基づいて、画像出力装置80上に前方環境画像を出力する。これにより、作業機械1の操作者は、画像出力装置80上の前方環境画像から、例えば直視では見えない作業現場の状況等を把握できる。
操作情報取得部155は、操作装置926を介して入力される各種の操作情報(操作入力)を取得する。
アクチュエータ制御部156は、操作装置926を介して入力される各種の操作情報に基づいて、各種の指令値を発生する。例えば、アクチュエータ制御部156は、操作装置926を介して入力される各種の操作情報に基づいて、メインポンプ914からの吐出圧や吐出量等を制御してよい。
制御装置400は、図3に示すように、機体情報取得部401と、目標飛行状態設定部402と、機体制御部403と、通信処理部404とを含む。機体情報取得部401のような各機能部は、図2に示したCPU11のようなCPUが、図2に示したROM13のような記憶装置内のプログラムを実行することで、実現できる。
機体情報取得部401は、無人飛行機40の機体に係る各種状態を表す機体情報を取得する。機体情報は、無人飛行機40の位置情報や、無人飛行機40の姿勢情報等を含んでよい。無人飛行機40の位置情報は、例えば、緯度、経度、及び高度で表現されてよい。なお、このような無人飛行機40の位置情報は、GPSセンサから取得可能である。無人飛行機40の姿勢情報は、無人飛行機40のヨー軸、ロール軸、及びピッチ軸の各軸まわりの回転に関する情報を含んでよい。なお、このような無人飛行機40の姿勢情報は、無人飛行機40に搭載される慣性計測装置(IMU:Inertial Measurement Unit)のようなセンサから取得可能である。
目標飛行状態設定部402は、飛行制御装置50からの制御情報(指令)に基づいて、無人飛行機40の目標飛行状態を設定する。目標飛行状態は、目標飛行位置と目標飛行姿勢とを含む。なお、制御情報が目標飛行位置と目標飛行姿勢とを含む場合は、目標飛行状態設定部402は、当該目標飛行位置と目標飛行姿勢をそのまま利用してもよい。
目標飛行位置は、例えば、緯度、経度、及び高度で表現されてよい。
この場合、目標飛行位置に係る緯度及び経度は、例えば、作業機械1の下部走行体110の前後軸上の位置であって、作業機械1の下部走行体110の後部に対して所定距離D1だけ後方に設定されてよい。所定距離D1は、例えば20m程度であってよい。また、所定距離D1は、ユーザにより可変とされてもよい。また、所定距離D1は、作業モード等に応じて自動的に変化されてもよい。また、目標飛行位置に係る緯度及び経度は、作業機械1の下部走行体110の前後軸に対して横方向に所定距離D2だけオフセットするように設定されてもよい。所定距離D2は、例えば作業機械1に対して目標飛行位置が後方45度程度になるように、例えば20m程度であってもよい。この場合も、所定距離D2は、ユーザにより可変とされてもよいし、作業モード等に応じて自動的に変化されてもよい。
また、目標飛行位置に係る高度は、一定(例えば30mから40mの範囲内)であってもよい。ただし、目標飛行位置に係る高度は、同様に、ユーザにより可変とされてもよいし、作業モード等に応じて自動的に変化されてもよい。
目標飛行姿勢は、例えば、ヨー軸、ロール軸、及びピッチ軸の各軸まわりの回転に関するパラメータで表現されてよい。目標飛行姿勢は、例えば、無人飛行機40の機体の前後軸が作業機械1の下部走行体110の前後軸に対して平行となり、かつ、無人飛行機40の機体の前後軸が水平面内に位置するように設定されてもよい。同様に、目標飛行姿勢に係るパラメータは、ユーザにより可変とされてもよいし、作業モード等に応じて自動的に変化されてもよい。あるいは、目標飛行姿勢は、例えば、無人飛行機40の機体の前後軸がアーム143の延在方向に対して平行となり、かつ、無人飛行機40の機体の前後軸が水平面内に位置するように設定されてもよい。
機体制御部403は、機体情報取得部401により取得される機体情報に基づいて、目標飛行状態設定部402により設定される目標飛行状態が実現されるように、無人飛行機40を制御する。なお、無人飛行機40の制御方法は、任意であり、例えばPID(Proportional Integral Differential)制御等により実現されてもよい。
通信処理部404は、機体情報取得部401により取得される機体情報等を、飛行制御装置50に送信する。例えば、通信処理部404は、飛行制御装置50からの要求に応じて、所定周期ごとに最新の機体情報を飛行制御装置50に送信してもよい。
また、通信処理部404は、撮像装置410により撮像される前方環境画像のデータを、作業機械1に送信する。例えば、通信処理部404は、作業機械1からの要求に応じて、所定周期ごとに前方環境画像のデータを飛行制御装置50に送信してもよい。
飛行制御装置50は、図3に示すように、情報取得部510と、相対位置関係判定部512と、飛行制御部514とを含む。情報取得部510のような各機能部は、図2に示したCPU11のようなCPUが、図2に示したROM13のような記憶装置内のプログラムを実行することで、実現できる。
情報取得部510は、飛行制御部514の各種制御に必要な各種情報を取得する。本実施例では、一例として、情報取得部510は、作業機械1の位置情報、姿勢情報、及び向き情報と、無人飛行機40の機体情報とを取得する。また、情報取得部510は、作業機械1の操作情報(特にレバー926Cに係る操作情報)を適宜取得する。なお、作業機械1の位置情報、姿勢情報、及び向き情報は、作業機械1の制御装置10の通信処理部153から通信により取得できる。また、無人飛行機40の機体情報は、無人飛行機40の制御装置400の通信処理部404から取得できる。
相対位置関係判定部512は、情報取得部510により取得された作業機械1の位置情報及び無人飛行機40の位置情報(機体情報の一部)に基づいて、作業機械1に対する無人飛行機40の相対位置関係を把握(判定)する。作業機械1に対する無人飛行機40の相対位置関係は、高度を考慮した位置関係(すなわち3次元の位置関係)であってもよいし、高度を考慮しない位置関係であってもよい。高度を考慮しない位置関係としては、例えば、所定の基準平面(例えば地表面)に投影したときの位置関係であってよい。
また、作業機械1に対する無人飛行機40の相対位置関係は、作業機械1の所定部位に対する無人飛行機40の相対位置関係であってよい。この場合、所定部位は、作業機械1の下部走行体110の部位(例えば重心付近の部位)であってもよいし、上部旋回体120の部位であってもよいし、旋回機構130の部位(例えば破砕機145)であってもよい。また、所定部位は、作業モード等に応じて自動的に変化されてもよい。なお、以下では、作業機械1に対する無人飛行機40の相対位置関係は、単に「相対位置関係」とも称する。
飛行制御部514は、情報取得部510により取得された各種情報に基づいて、無人飛行機40に送信する制御情報(指令)を生成する。制御情報は、上述したように、無人飛行機40の目標飛行状態設定部402に目標飛行状態を設定させるための情報である。
飛行制御部514は、ホバリング開始条件が成立すると、無人飛行機40のホバリングが開始されるように、制御情報を生成する。ホバリング開始条件は、例えば、無人飛行機40の位置が目標飛行位置に到達した場合に満たされてよい。なお、無人飛行機40の位置が目標飛行位置に到達した否かは、例えば、情報取得部510により取得される機体情報に基づいて判断できる。
飛行制御部514は、例えば、制御情報を変化させないことで(これに伴い無人飛行機40の目標飛行位置を変化させないことで)、制御装置400にホバリングを開始させてもよい。あるいは、飛行制御部514は、ホバリングを開始させる指令(例えば、ホバリングモードのようなモードを指示する制御情報)を無人飛行機40に送信することで、制御装置400にホバリングを開始させてもよい。
本実施例では、飛行制御部514は、無人飛行機40のホバリング中、相対位置関係が基準の相対位置関係から変化した場合でも、基準の相対位置関係からの変化量が所定閾値Th1以下である場合は、無人飛行機40のホバリングを維持するためのホバリング維持制御を実行する。この場合、基準の相対位置関係は、無人飛行機40が目標飛行位置に到達した時点又はその前後の相対位置関係であってよく、例えば、ホバリングが開始されたときの相対位置関係であってよい。あるいは、基準の相対位置関係は、ユーザにより設定されてもよい。この場合、例えば、基準の相対位置関係は、ユーザにより所定入力がなされた時点の相対位置関係であってよい。なお、無人飛行機40がホバリング中であるか否かは、例えば、情報取得部510により取得される機体情報に基づいて判断できる。
なお、飛行制御部514は、例えば、制御情報を変化させないことで(これに伴い無人飛行機40の目標飛行位置を変化させないことで)、ホバリング維持制御を実現してもよい。あるいは、飛行制御部514は、ホバリングを維持させる指令(例えば、ホバリングモードのようなモードを指示する制御情報)を無人飛行機40に送信することで、ホバリング維持制御を実現してもよい。
以下、このようなホバリング維持制御との対比として、相対位置関係の変化に追従して無人飛行機40の目標飛行位置を動的に変化させる制御を、「位置追従制御」とも称する。
図4は、本実施例の効果の説明図であり、作業機械1に対する無人飛行機40の相対位置関係を側面視で概略的に示す図である。
ところで、作業機械1は、作業内容に依存して動きが多様となりうるが、比較的狭い移動範囲内で所定の動き(例えば前進と後退)を繰り返す(図4の矢印R1参照)場合がある。かかる場合に、位置追従制御を実行すると、制御装置400が同様に比較的狭い移動範囲内で無人飛行機40の同様の動き(例えば前進と後退)を繰り返す(図4の矢印R2参照)こととなる。このような動きは、無人飛行機40の機体に比較的大きい加速度を生みやすい。無人飛行機40の機体に比較的大きい加速度が生じると、撮像装置410に係る撮像範囲に変化(揺れ)が生じ、前方環境画像の視認性が低下しやすくなる。
これに対して、本実施例によれば、相対位置関係の変化量が所定閾値Th1以下である期間中は、相対位置関係が変化した場合でも、無人飛行機40のホバリングが維持される。これにより、相対位置関係の変化量が所定閾値Th1以下である期間中に位置追従制御を実行する場合に比べて、ホバリングの期間を長くすることができる。この結果、無人飛行機40の機体に比較的大きい加速度が生じる頻度を低減し、前方環境画像の視認性の低下を抑制できる。
ここで、ホバリング維持制御で用いる所定閾値Th1は、任意であるが、所定閾値Th1が大きいほど、ホバリングの期間が長くなりやすい。ホバリングの場合は、例えば前進と後退を交互に繰り返す場合に比べて、無人飛行機40の機体に比較的大きい加速度が生じる頻度を低減できる。他方、所定閾値Th1が過度に大きい場合は、相対位置関係が基準の相対位置関係から乖離することで、前方環境画像の有用性(画像から得られるユーザにとっての有用な情報量)が低下しやすくなる。従って、所定閾値Th1は、これらの背反を考慮して適合されてもよい。なお、所定閾値Th1は、上述した所定距離D1との関係では、所定距離D1よりも有意に小さくてよい(例えば所定距離D1の半分以下であってよい)。また、所定閾値Th1は、ユーザにより可変とされてもよいし、作業モード等に応じて自動的に変化されてもよい。
ところで、相対位置関係の変化速度(すなわち一定時間あたりの変化量)が略一定である場合は、位置追従制御のほうが、ホバリング維持制御よりも、無人飛行機40の機体に比較的大きい加速度が生じる頻度を低減できうる。この場合、ホバリング維持制御では、相対位置関係の変化量が所定閾値Th1を超えた際に解消されることで、それに応じて、無人飛行機40の機体に比較的大きい加速度が生じやすくなるためである。
従って、本実施例において、ホバリング維持制御は、作業機械1により特定の作業が実行されている場合にのみ、実現されてもよい。この場合、特定の作業は、作業機械1の比較的狭い移動範囲内で実現できるような作業であってよい。なお、特定の作業は、複数種類の作業であってよく、事前に設定されてもよい。
また、この場合、飛行制御部514は、情報取得部510により取得された情報に基づいて、作業機械1が特定の作業を実行しているか否かを判定してもよい。例えば、飛行制御部514は、例えば以下の条件要素(1)から(3)のいずれか1つ又は2つ以上が満たされた場合に、作業機械1が特定の作業を実行していると判定してもよい。
条件要素(1)相対位置関係の変化速度(すなわち一定時間あたりの変化量)が略一定でない。
条件要素(2)相対位置関係の変化方向が比較的頻繁に変化する。
条件要素(3)位置追従制御の実行状態において無人飛行機40の機体に発生する加速度が所定閾値Th2を超える。
この場合、条件要素(1)を利用することで、例えば作業機械1が一定速度で走行する走行状態において、ホバリング維持制御が実行される可能性を低減できる。また、条件要素(2)を利用することで、例えば作業機械1が短時間で前進と後退を交互に繰り返すような状況下でホバリング維持制御を効果的に実行できる。また、条件要素(3)を利用することで、無人飛行機40の機体に比較的大きい加速度が生じやすい状況下でホバリング維持制御を効果的に実行できる。
次に、図5以降を参照して、飛行制御装置50の動作例について説明する。なお、以降の処理フロー図(フローチャート)においては、各ステップの入力と出力の関係を損なわない限り、各ステップの処理順序を入れ替えてもよい。
図5は、飛行制御装置50により実行される処理の一例を示す概略フローチャートである。図5に示す処理は、例えば所定周期ごとに繰り返し実行されてよい。
ステップS30では、飛行制御装置50は、制御用の各種情報(例えば、作業機械1の位置情報、姿勢情報、及び向き情報と、無人飛行機40の機体情報)を取得する。制御用の各種情報の取得方法は、上述したとおりである。
ステップS32では、飛行制御装置50は、ホバリング維持制御の実行条件を満たすか否かを判定する。ホバリング維持制御の実行条件は、任意であるが、例えば、作業機械1が特定の作業を実行していると判定した場合に満たされる。特定の作業は、上述のとおりであってよい。判定結果が“YES”の場合、ステップS34に進み、それ以外の場合は、ステップS33Aに進む。
ステップS33Aでは、飛行制御装置50は、ホバリング中フラグが“0”であるか否かを判定する。ホバリング中フラグが“0”である状態は、ホバリングを実現又は維持するための制御の非実行状態に対応する。ホバリング中フラグの初期値は、“0”である。判定結果が“YES”の場合、ステップS33Cに進み、それ以外の場合は、ステップS33Bに進む。
ステップS33Bでは、飛行制御装置50は、ホバリング中フラグを“0”にリセットする。
ステップS33Cでは、飛行制御装置50は、位置追従制御を実行する。具体的には、飛行制御装置50は、ステップS30で得た各種情報に基づいて目標飛行状態(目標飛行位置を含む)を決定し、当該目標飛行状態を表す制御情報(指令)を生成する。そして、飛行制御装置50は、生成した制御情報を無人飛行機40に送信する。この場合、無人飛行機40の制御装置400は、かかる制御情報を受信すると、当該制御情報に係る目標飛行状態が実現されるように無人飛行機40を制御する。
ステップS34では、飛行制御装置50は、ホバリング中フラグが“1”であるか否かを判定する。ホバリング中フラグが“1”である状態は、ホバリングを実現又は維持するための制御の実行状態に対応する。判定結果が“YES”の場合、ステップS35に進み、それ以外の場合は、ステップS42に進む。
ステップS35では、飛行制御装置50は、ステップS30で得た各種情報に基づいて、現時点の相対位置関係を算出する。相対位置関係は、上述のとおりである。
ステップS36では、飛行制御装置50は、基準の相対位置関係と、ステップS35で算出した現時点の相対位置関係との差分(すなわち、基準の相対位置関係からの変化量)が、所定閾値Th1以下であるか否かを判定する。判定結果が“YES”の場合、ステップS38に進み、それ以外の場合は、ステップS40に進む。
ステップS38では、飛行制御装置50は、ホバリングを実現させるための制御情報を生成し、生成した制御情報を無人飛行機40に送信する。この場合、無人飛行機40の制御装置400は、かかる制御情報を受信すると、当該制御情報に係るホバリングが実現又は維持されるように無人飛行機40を制御する。ホバリングを実現させるための制御情報は、例えば、前回周期の制御情報と同じ情報であってもよいし、その旨を表す情報であってもよい。
ステップS40では、飛行制御装置50は、ホバリング中フラグを“0”にリセットする。
ステップS42では、飛行制御装置50は、現時点の作業機械1の位置に基づいて、基準の相対位置関係が実現される目標飛行位置を算出する。すなわち、飛行制御装置50は、位置追従制御の場合と同様、現時点の作業機械1の位置に応じた目標飛行位置を算出する。
ステップS44では、飛行制御装置50は、ステップS42で算出した目標飛行位置の算出値を含む制御情報(指令)を生成し、生成した制御情報を無人飛行機40に送信する。この場合、無人飛行機40の制御装置400は、かかる制御情報を受信すると、当該制御情報に係る目標飛行状態が実現されるように無人飛行機40を制御する。
ステップS46では、飛行制御装置50は、ステップS30で得た各種情報に基づいて、目標飛行位置(前回周期のステップS42で算出した目標飛行位置の算出値)に無人飛行機40が到達したか否かを判定する。例えば、飛行制御装置50は、無人飛行機40の位置情報が、前回周期のステップS42で算出した目標飛行位置の算出値と略一致する場合は、目標飛行位置に無人飛行機40が到達したと判定する。判定結果が“YES”の場合、ステップS48に進み、それ以外の場合は、今回周期の処理は終了する。
ステップS48では、飛行制御装置50は、ホバリングを開始させるための制御情報を生成し、生成した制御情報を無人飛行機40に送信する。この場合、無人飛行機40の制御装置400は、かかる制御情報を受信すると、当該制御情報に係るホバリングが実現されるように無人飛行機40を制御する。ホバリングを開始させるための制御情報は、例えば、前回周期の制御情報と同じ情報であってもよいし、その旨を表す情報であってもよい。
ステップS50では、飛行制御装置50は、ホバリング中フラグを“1”にセットする。
図5に示す処理によれば、ホバリング維持制御の実行条件が満たされると、ステップS34からステップS38によりホバリング維持制御が実行される。また、図5に示す処理によれば、ホバリングが開始されると、そのときの相対位置関係が基準の相対位置関係に設定される。そして、その後、基準の相対位置関係からの相対位置関係の変化量が所定閾値Th1以下である間は、ホバリングが継続される。また、基準の相対位置関係からの相対位置関係の変化量が所定閾値Th1を超えると、新たな目標飛行位置に向けて無人飛行機40が移動されたあと、再度、ホバリングが開始され、そのときの相対位置関係が基準の相対位置関係に設定される。そして、その後、基準の相対位置関係からの相対位置関係の変化量が所定閾値Th1以下である間は、ホバリングが継続される。このようにして、基準の相対位置関係を更新しつつホバリング維持制御が継続されるので、その間、撮像装置410により取得される前方環境画像の視認性の低下を抑制できる。
ここで、無人飛行機40のホバリング中、無人飛行機40の位置が実質的に変化しないので、相対位置関係の変化は、作業機械1の位置の変化に依存する。従って、飛行制御装置50は、無人飛行機40のホバリング中、基準の位置からの作業機械1の位置の変化量に基づいて、相対位置関係の変化量(基準の相対位置関係からの変化量)を把握してもよい。すなわち、無人飛行機40のホバリング中、飛行制御装置50(飛行制御部514)は、相対位置関係の変化量が所定閾値Th1以下であるか否かを、基準の位置からの作業機械1の位置の変化量に基づいて判定してもよい。具体的には、飛行制御装置50(飛行制御部514)は、基準の位置からの作業機械1の位置の変化量が、所定閾値Th1以下である場合に、相対位置関係の変化量が所定閾値Th1以下であると判定してもよい。この場合、基準の位置は、基準の相対位置関係と同様の態様で設定されてよい。例えば、基準の位置は、無人飛行機40が目標飛行位置に到達した時点又はその前後の、作業機械1の位置であってよく、例えば、ホバリングが開始されたときの、作業機械1の位置であってもよい。従って、この場合、図5に示す処理では、ステップS50において、飛行制御装置50は、ホバリング中フラグを“1”にセットするとともに、現時点の作業機械1の位置を、基準の位置に設定してよい。すなわち、飛行制御装置50は、ホバリング中フラグを“1”にセットするごとに、現時点の作業機械1の位置に基づいて基準の位置を更新してよい。
図6は、飛行制御装置50により実行される処理の他の一例を示す概略フローチャートである。図6に示す処理は、上述した図5に示した処理に替えて実行されてよい。
図6に示す処理は、上述した図5に示した処理に対して、ステップS35及びステップS36が、ステップS35A及びステップS36Aで置換された点が主に異なる。
ステップS35Aでは、飛行制御装置50は、操作入力判定処理を実行する。操作入力判定処理の一例は、図7を参照して後述する。
ステップS36Aでは、飛行制御装置50は、ステップS35Aの操作入力判定処理の結果に基づいて、基準の相対位置関係と現時点の相対位置関係との差分(すなわち、基準の相対位置関係からの変化量)が、所定閾値Th1以下であるか否かを判定する。本実施例では、ステップS35Aの操作入力判定処理の結果に基づいて、後述するホバリング解除フラグが“0”である場合は、当該差分が所定閾値Th1以下であると判定し、後述するホバリング解除フラグが“1”である場合は、当該差分が所定閾値Th1以下でないと判定する。判定結果が“YES”の場合、ステップS38に進み、それ以外の場合は、ステップS40に進む。
図7は、図6のステップS35Aの操作入力判定処理の一例を示す概略フローチャートである。図8は、図7の操作入力判定処理に係る説明図である。図8には、横軸に、レバー926Cに係るレバー操作量(ストローク)を取り、縦軸に指令値(例えば当該レバー操作量に応じた油圧の指令値)を取り、当該レバー操作量と当該指令値の関係の一例が示される。
ステップS700では、飛行制御装置50は、操作装置926からの操作情報を取得する。
ステップS701では、飛行制御装置50は、操作装置926において操作入力があったか否かを判定する。判定結果が“YES”の場合、ステップS702に進み、それ以外の場合は、今回周期の処理を終了する。
ステップS702では、飛行制御装置50は、レバー926Cの左右のいずれかのレバーが操作されたか否かを判定する。すなわち、レバー926Cの対のレバーのうちの一方だけが操作されたか否かを判定する。判定結果が“YES”の場合、ステップS704に進み、それ以外の場合は、ステップS710に進む。
ステップS704では、飛行制御装置50は、レバー926Cのレバー操作量が所定量α以上であるか否かを判定する。所定量αは、下部走行体110が比較的大きい移動(すなわち基準の相対位置関係からの変化量が、所定閾値Th1を超えるような移動)を検出できるように適合されてよい。なお、所定量αは、図8に模式的に示すように、僅かな操作に係るレバー操作量α0よりも有意に大きい。なお、図8には、フルストロークに対応するレバー操作量α1が併せて示されている。
ステップS706では、飛行制御装置50は、ホバリング解除フラグを“1”に設定する。ホバリング解除フラグの初期値は“0”であり、例えば、ステップS50でホバリング中フラグが“1”にセットされる際に、初期化されてよい。ホバリング解除フラグが“1”に設定されると、上述したように、図6のステップS36Aでの判定結果が“NO”となり、ホバリング中フラグが“0”にリセットされる(図6のステップS40参照)。すなわち、ホバリングを実現又は維持するための制御の非実行状態に遷移する。
ステップS708では、飛行制御装置50は、ホバリング解除フラグを“0”に維持する。この場合、図6のステップS36Aでの判定結果が“YES”となり、ホバリング中フラグが“0”にリセットされることはない。すなわち、ホバリングを維持するための制御の実行状態が維持される(図6のステップS38参照)。
ステップS710では、飛行制御装置50は、レバー926Cの左右が同一方向に操作されたか否かを判定する。レバー926Cの左右が同一方向に操作されると、左右のクローラに取り付けられた油圧モータ110A、110Bがそれぞれ逆向きに回転される。この結果、下部走行体110は、その場でターンをする、いわゆる“スピンターン”の動きとなる。判定結果が“YES”の場合、ステップS712に進む。他方、判定結果が“NO”の場合は、ステップS708に進む。判定結果が“NO”の場合は、レバー926Cの左右が逆方向に操作された場合に対応する。この場合、左右どちらかのクローラだけを動かして行うターン、いわゆる“ピポットターン”が実現される。なお、ピポットターンは、旋回半径がスピンターンより大きくなる傾向となる。従って、変形例では、判定結果が“NO”の場合は、レバー操作量が所定量(例えば所定量α)以上であることを条件に、ステップS708に代えてステップS706に進むこととしてもよい。
ステップS712では、飛行制御装置50は、レバー926Cの左右のレバー操作量の差(それぞれのレバー操作量の大きさの差)が所定値以上であるか否かを判定する。所定値は任意であるが、ピポットターンに近い動きを検出できるように適合されてもよい。判定結果が“YES”の場合、ステップS706に進み、それ以外の場合は、ステップS708に進む。
このようにして図6及び図7に示す処理によれば、操作装置926からの操作情報(特にレバー926Cに係る操作情報)に基づいて、ホバリングを実現又は維持するための制御が非実行状態へと遷移(ホバリングが解除)される。これにより、作業機械1に対する無人飛行機40の相対位置関係を直接的に利用することなく、比較的低い処理負荷で図5に示した処理と同様の効果を得ることができる。
[実施例2]
上述した実施例1では、飛行制御部514は、無人飛行機40のホバリング中、相対位置関係が基準の相対位置関係から変化した場合でも、基準の相対位置関係からの変化量が所定閾値Th1以下である場合は、ホバリング維持制御を実行する。
これに対して、本実施例2では、これに代えて又は加えて、飛行制御部514は、無人飛行機40のホバリング中、上部旋回体120の向きが基準の向きから変化した場合でも、基準の向きからの変化量が所定閾値Th3以下である場合は、ホバリング維持制御を実行してもよい。
以下、このようなホバリング維持制御との対比として、上部旋回体120の向きの変化に追従して無人飛行機40の目標飛行姿勢を動的に変化させる制御を、「姿勢追従制御」とも称する。ここでは、一例として、無人飛行機40の目標飛行姿勢は、無人飛行機40の機体の前後軸がアーム143の延在方向に対して平行となり、かつ、無人飛行機40の機体の前後軸が水平面内又は水平面に対して所定角度だけ下向きになるように、設定されるものとする。この場合、破砕機145の位置に対して一定の向きから環境を捕捉した前方環境画像が得られるので、作業性が良好となる。
ところで、作業機械1は、作業内容に依存して動きが多様となりうるが、上部旋回体120の一方向の旋回と他方向の旋回とを繰り返す場合がある。かかる場合に、姿勢追従制御を実行すると、制御装置400が同様の動き(例えば左右方向の向きの変更)を繰り返すこととなる。このような動きは、無人飛行機40の機体に比較的大きい加速度を生みやすい。無人飛行機40の機体に比較的大きい加速度が生じると、撮像装置410に係る撮像範囲に変化(揺れ)が生じ、前方環境画像の視認性が低下しやすくなる。
これに対して、本実施例によれば、上部旋回体120の向きの変化量が所定閾値Th3以下である期間中は、上部旋回体120の向きが変化した場合でも、無人飛行機40のホバリングが維持される。これにより、上部旋回体120の向きの変化量が所定閾値Th3以下である期間中に姿勢追従制御を実行する場合に比べて、ホバリングの期間を長くすることができる。この結果、無人飛行機40の機体に比較的大きい加速度が生じる頻度を低減し、前方環境画像の視認性の低下を抑制できる。
ここで、ホバリング維持制御で用いる所定閾値Th3は、任意であるが、所定閾値Th3が大きいほど、ホバリングの期間が長くなりやすい。ホバリングの場合は、例えば前進と後退を交互に繰り返す場合に比べて、無人飛行機40の機体に比較的大きい加速度が生じる頻度を低減できる。他方、所定閾値Th3が過度に大きい場合は、上部旋回体120の向きが基準の上部旋回体120の向きから乖離することで、前方環境画像の有用性(画像から得られるユーザにとっての有用な情報量)が低下しやすくなる。従って、所定閾値Th3は、これらの背反を考慮して適合されてもよい。また、所定閾値Th3は、ユーザにより可変とされてもよいし、作業モード等に応じて自動的に変化されてもよい。
なお、本実施例において、ホバリング維持制御は、作業機械1により特定の作業が実行されている場合にのみ、実現されてもよい。この場合、特定の作業は、作業機械1の比較的狭い移動範囲内で実現できるような作業であってよい。なお、特定の作業は、複数種類の作業であってよく、事前に設定されてもよい。
また、この場合、飛行制御部514は、情報取得部510により取得された情報に基づいて、作業機械1が特定の作業を実行しているか否かを判定してもよい。例えば、飛行制御部514は、例えば以下の条件要素(5)から(6)のいずれか1つ又は2つが満たされた場合に、作業機械1が特定の作業を実行していると判定してもよい。
条件要素(5)上部旋回体120の向きの変化方向が比較的頻繁に変化する。
条件要素(6)姿勢追従制御の実行状態において無人飛行機40の機体に発生する加速度が所定閾値Th4を超える。
この場合、条件要素(5)を利用することで、例えば作業機械1が短時間で上部旋回体120の左旋回と右旋回を交互に繰り返すような状況下でホバリング維持制御を効果的に実行できる。また、条件要素(6)を利用することで、無人飛行機40の機体に比較的大きい加速度が生じやすい状況下でホバリング維持制御を効果的に実行できる。
次に、図9を参照して、本実施例による飛行制御装置50Aの動作例について説明する。なお、飛行制御装置50Aは、上述した実施例1による飛行制御装置50とハードウェア構成等は同様であってよく、機能のみが異なってよい。
図9は、飛行制御装置50Aにより実行される処理の一例を示す概略フローチャートである。図9に示す処理は、例えば所定周期ごとに繰り返し実行されてよい。
ステップS130では、飛行制御装置50Aは、制御用の各種情報(例えば、作業機械1の位置情報、姿勢情報、及び向き情報と、無人飛行機40の機体情報)を取得する。制御用の各種情報の取得方法は、上述した実施例1と同様であってよい。
ステップS132では、飛行制御装置50Aは、ホバリング維持制御の実行条件を満たすか否かを判定する。ホバリング維持制御の実行条件は、任意であるが、例えば、作業機械1が特定の作業を実行していると判定した場合に満たされる。特定の作業は、上述のとおりであってよい。判定結果が“YES”の場合、ステップS134に進み、それ以外の場合は、ステップS133Aに進む。
ステップS133Aでは、飛行制御装置50は、ホバリング中フラグが“0”であるか否かを判定する。判定結果が“YES”の場合、ステップS133Cに進み、それ以外の場合は、ステップS133Bに進む。
ステップS133Bでは、飛行制御装置50は、ホバリング中フラグを“0”にリセットする。
ステップS133Cでは、飛行制御装置50Aは、姿勢追従制御を実行する。具体的には、飛行制御装置50Aは、ステップS130で得た各種情報に基づいて目標飛行状態(目標飛行姿勢を含む)を決定し、当該目標飛行状態を表す制御情報(指令)を生成する。そして、飛行制御装置50Aは、生成した制御情報を無人飛行機40に送信する。この場合、無人飛行機40の制御装置400は、かかる制御情報を受信すると、当該制御情報に係る目標飛行状態が実現されるように無人飛行機40を制御する。
ステップS134では、飛行制御装置50Aは、ホバリング中フラグが“1”であるか否かを判定する。判定結果が“YES”の場合、ステップS135に進み、それ以外の場合は、ステップS142に進む。
ステップS135では、飛行制御装置50Aは、ステップS130で得た各種情報(向き情報)に基づいて、現時点の上部旋回体120の向きを取得(把握)する。上部旋回体120の向きは、上述のとおりである。
ステップS136では、飛行制御装置50Aは、基準の上部旋回体120の向きと、ステップS135で算出した現時点の上部旋回体120の向きとの差分(すなわち、基準のの向きからの変化量)が、所定閾値Th3以下であるか否かを判定する。判定結果が“YES”の場合、ステップS138に進み、それ以外の場合は、ステップS140に進む。
ステップS138では、飛行制御装置50Aは、ホバリングを実現させるための制御情報を生成し、生成した制御情報を無人飛行機40に送信する。
ステップS140では、飛行制御装置50Aは、ホバリング中フラグを“0”にリセットする。
ステップS142では、飛行制御装置50Aは、現時点の作業機械1の向きに基づいて、目標飛行姿勢を算出する。すなわち、飛行制御装置50Aは、姿勢追従制御の場合と同様、現時点の作業機械1の向きに応じた目標飛行姿勢を算出する。
ステップS144では、飛行制御装置50Aは、ステップS142で算出した目標飛行姿勢の算出値を含む制御情報(指令)を生成し、生成した制御情報を無人飛行機40に送信する。
ステップS146では、飛行制御装置50Aは、ステップS130で得た各種情報に基づいて、目標飛行姿勢(前回周期のステップS142で算出した目標飛行姿勢の算出値)が無人飛行機40により実現されたか否かを判定する。例えば、飛行制御装置50Aは、無人飛行機40の向き情報が、前回周期のステップS142で算出した目標飛行姿勢の算出値と略一致する場合は、目標飛行姿勢が無人飛行機40により実現されたと判定する。判定結果が“YES”の場合、ステップS148に進み、それ以外の場合は、今回周期の処理は終了する。
ステップS148では、飛行制御装置50Aは、ホバリングを開始させるための制御情報を生成し、生成した制御情報を無人飛行機40に送信する。
ステップS150では、飛行制御装置50Aは、ホバリング中フラグを“1”にセットするとともに、現時点の上部旋回体120の向きを、基準の向きに設定する。すなわち、飛行制御装置50は、ホバリング中フラグを“1”にセットするごとに、現時点の上部旋回体120の向きに基づいて基準の向きを更新する。
図9に示す処理によれば、ホバリング維持制御の実行条件が満たされると、ステップS134からステップS138によりホバリング維持制御が実行される。図9に示す処理によれば、ホバリングが開始されると、そのときの上部旋回体120の向きが基準の上部旋回体120の向きに設定される。そして、その後、基準の上部旋回体120の向きからの上部旋回体120の向きの変化量が所定閾値Th3以下である間は、ホバリングが継続される。また、基準の上部旋回体120の向きからの上部旋回体120の向きの変化量が所定閾値Th3を超えると、新たな目標飛行姿勢に向けて無人飛行機40が移動されたあと、再度、ホバリングが開始され、そのときの上部旋回体120の向きが基準の上部旋回体120の向きに設定される。そして、その後、基準の上部旋回体120の向きからの上部旋回体120の向きの変化量が所定閾値Th3以下である間は、ホバリングが継続される。このようにして、基準の上部旋回体120の向きを更新しつつホバリング維持制御が継続されるので、その間、撮像装置410により取得される前方環境画像の視認性の低下を抑制できる。
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した実施例の構成要素を全部又は複数を組み合わせることも可能である。