以下、添付図面を参照しながら各実施例について詳細に説明する。
図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(図2参照)により実現されてもよい。また、他の実施例では、飛行制御装置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は、ジャイロセンサや、各種の角度センサ、加速度センサ(傾斜センサ)、油圧発生装置により付与される油圧ライン(図2Aの高圧油圧ライン916参照)の所定箇所の油圧を検出する油圧センサ(図2Aの圧力センサ929参照)等を含んでよい。
本実施例では、特に、センサ類82は、作業機械1の位置及び向きを検出する検出手段としてのGPS(Global Positioning System)コンパス821(衛星電波受信機の一例)を含む。GPSコンパス821は、上部旋回体120に設けられる2つのアンテナ(図示せず)を含み、2つのアンテナは、互いに離れた位置に設けられ、それぞれ、衛星から電波を受信する。2つのアンテナのそれぞれで受信された衛星信号は、それぞれ、例えば干渉測位法等により測位処理されることで、位置情報(測位情報)に変換される。そして、各アンテナの位置情報に基づいて方位が算出される。このようにして、GPSコンパス821は、当該2つのアンテナの相対的な位置関係に基づいて、向き(方位)を算出する。なお、GPSコンパス821に代えて、GNSS(Global Navigation Satellite System)のうちの、GPS以外を利用する同様のコンパスが利用されてもよい。また、アンテナは、2つ以上、上部旋回体120に設けられてもよい。
画像出力装置80(図1参照)は、作業機械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等は、図示以外の他の機能を適宜備えてよい。図4は、下部走行体110の向きの算出方法の説明図であり、上部旋回体120及び下部走行体110を上面視で概略的に示す図である。図4には、左側に、上部旋回体120が旋回していない状態(以下、「中立状態」と称する)が示され、右側に、上部旋回体120が、時計まわりに角度αだけ旋回した状態(以下、「旋回状態」と称する)が示されている。
制御装置10は、図3に示すように、位置情報取得部150と、姿勢情報取得部151と、向き情報取得部152と、通信処理部153と、画像出力処理部154と、操作情報取得部155と、アクチュエータ制御部156と、を含む。位置情報取得部150のような各機能部は、図2に示したCPU11が、図2に示したROM13のような記憶装置内のプログラムを実行することで、実現できる。
位置情報取得部150は、センサ類82のうちの、GPSコンパス821から、作業機械1の位置情報を取得する。作業機械1の位置情報は、緯度、経度、及び高度で表現される。なお、GPSセンサは、GPS受信機を含み、衛星から電波に基づいて、干渉測位等により、緯度、経度、及び高度を算出する。
姿勢情報取得部151は、センサ類82のうちの、作業機械1の姿勢に係るパラメータを取得する各種センサに基づいて、作業機械1の姿勢情報を取得する。この場合、姿勢に係るパラメータを取得する各種センサは、例えば、ブーム角度センサや、アーム角度センサ、バケット角度センサ、機体傾斜センサ等であってよい。なお、ブーム角度センサは、ブーム角度を取得するセンサであり、例えば、ブームフートピンの回転角を検出する回転角センサ、ブームシリンダ142のストローク量を検出するストロークセンサ、ブーム141の傾斜角度を検出する傾斜(加速度)センサ等を含む。また、アーム角度センサ及びバケット角度センサについても同様である。機体傾斜センサは、機体傾斜角度を取得するセンサであり、例えば、水平面に対する上部旋回体120の傾斜角度を検出する。
向き情報取得部152は、作業機械1の向き(鉛直軸まわりの向き)に関する情報を取得する。本実施例では、向き情報取得部152は、上部旋回体向き算出部1520と、下部走行体向き算出部1521と、を含む。
上部旋回体向き算出部1520は、センサ類82のうちの、GPSコンパス821から得た向きの計算結果に基づいて、上部旋回体120の向きを算出する。なお、GPSコンパス821は、上述したように上部旋回体120に設けられるので、上部旋回体120とともに旋回する。従って、GPSコンパス821により検出される向き(方位)は、上部旋回体120の向きに相関する。なお、本実施例では、一例として、GPSコンパス821は、上部旋回体120の向きとして、ブーム141を基準とした上部旋回体120の中心軸L0(図4参照)に沿った前方の方位を算出する。すなわち、中心軸L0が基線の方向である。なお、上部旋回体向き算出部1520の算出機能は、GPSコンパス821により実現されてもよい。
下部走行体向き算出部1521は、センサ類82のうちの、回転角センサ822からの回転角情報に基づいて、下部走行体110の向きを算出する。なお、回転角センサ822は、旋回機構130の旋回軸まわりの回転角(上部旋回体120と下部走行体110との間の旋回軸まわりの相対的な回転角)を検出する。ここで、回転角センサ822が検出する回転角は、所定の基準位置(ゼロ点)からの回転角である。本実施例では、一例として、所定の基準位置は、上部旋回体120の中心軸L0と、下部走行体110の中心軸L1とが重なる位置である。なお、下部走行体110の中心軸L1は、左右のクローラの回転軸に直交する関係である。例えば、図4の右側の状態では、上部旋回体120の中心軸L0が下部走行体110の中心軸L1に対して、0度より大きい角度αをなしている。この場合、回転角センサ822は、係る角度αを検出する。以下、旋回機構130の旋回軸まわりの回転角とは、中心軸L1に対する中心軸L0のなす角度αを表すものとする。
下部走行体向き算出部1521は、上部旋回体120の向きを、旋回機構130の旋回軸まわりの回転角に対応した分だけ補正することで、下部走行体110の向きを算出する。例えば、図4の右側の状態では、上部旋回体120の中心軸L0が下部走行体110の中心軸L1に対して角度αをなしている。この場合、上部旋回体120の向き(方位)が真北であるとき、下部走行体110の向きは、角度αに対応する方位分だけ西方向に算出(補正)される。
このようにして、本実施例では、向き情報取得部152により取得される向き情報は、上部旋回体向き算出部1520により算出される上部旋回体120の向きを表す情報と、下部走行体向き算出部1521により算出される下部走行体110の向きを表す情報(以下、「下部走行体向き情報」とも称する)と、を含む。
通信処理部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は、当該目標飛行位置と目標飛行姿勢をそのまま利用してよい。ただし、変形例では、上述したように、目標飛行状態設定部402は、飛行制御装置50に代えて、目標飛行位置及び目標飛行姿勢のうちの少なくとも一方を算出してもよい。
機体制御部403は、目標飛行状態設定部402により設定された目標飛行状態が実現されるように無人飛行機40の各種アクチュエータ(図示せず)を制御する。なお、無人飛行機40の各種アクチュエータは、複数の羽根を回転させるための電動モータ等を含む。
通信処理部404は、機体情報取得部401により取得される機体情報等を、飛行制御装置50に送信する。例えば、通信処理部404は、飛行制御装置50からの要求に応じて、所定周期ごとに最新の機体情報を飛行制御装置50に送信してもよい。
また、通信処理部404は、撮像装置410により撮像される前方環境画像のデータを、作業機械1に送信する。例えば、通信処理部404は、飛行制御装置50からの要求に応じて、所定周期ごとに前方環境画像のデータを飛行制御装置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により取得される機体情報に基づいて判断できる。
以下、このようなホバリング維持制御との対比として、相対位置関係の変化に追従して無人飛行機40の目標飛行位置を動的に変化させる制御を、「位置追従制御」とも称する。
本実施例では、飛行制御部514は、目標飛行位置算出部5141(後方位置算出部の一例)と、目標飛行姿勢算出部5142とを含む。飛行制御部514は、目標飛行位置算出部5141により算出される目標飛行位置と、目標飛行姿勢算出部5142により算出される目標飛行姿勢とに基づいて、これらを含む制御情報を生成する。
本実施例では、目標飛行位置は、下部走行体110の後方位置に設定される。なお、目標飛行位置は、例えば、緯度、経度、及び高度で表現されてよい。
この場合、目標飛行位置に係る緯度及び経度は、例えば、作業機械1の下部走行体110の前後軸上の位置であって、作業機械1の下部走行体110の後部に対して所定距離D1だけ後方に設定される。下部走行体110の前後軸上の位置は、上面視で、上述した下部走行体110の中心軸L1上の位置に対応する。従って、下部走行体110の前後軸は、上述した向き情報のうちの、上述した下部走行体向き情報から特定可能である。所定距離D1は、例えば20m程度であってよい。また、所定距離D1は、ユーザにより可変とされてもよい。また、所定距離D1は、作業モード等に応じて自動的に変化されてもよい。また、目標飛行位置に係る緯度及び経度は、作業機械1の下部走行体110の前後軸に対して横方向に所定距離D2だけオフセットするように設定されてもよい。所定距離D2は、例えば作業機械1に対して目標飛行位置が後方45度程度になるように、例えば20m程度であってもよい。この場合も、所定距離D2は、ユーザにより可変とされてもよいし、作業モード等に応じて自動的に変化されてもよい。
また、目標飛行位置に係る高度は、一定(例えば30mから40mの範囲内)であってもよい。ただし、目標飛行位置に係る高度は、同様に、ユーザにより可変とされてもよいし、作業モード等に応じて自動的に変化されてもよい。
目標飛行姿勢は、例えば、ヨー軸、ロール軸、及びピッチ軸の各軸まわりの回転に関するパラメータで表現されてよい。目標飛行姿勢は、例えば、無人飛行機40の機体の前後軸が作業機械1の下部走行体110の前後軸に対して平行となり、かつ、無人飛行機40の機体の前後軸が水平面内に位置するように設定されてもよい。同様に、目標飛行姿勢に係るパラメータは、ユーザにより可変とされてもよいし、作業モード等に応じて自動的に変化されてもよい。あるいは、目標飛行姿勢は、例えば、無人飛行機40の機体の前後軸がアーム143の延在方向に対して平行となり、かつ、無人飛行機40の機体の前後軸が水平面内に位置するように設定されてもよい。
次に、図5A及び図5Bを参照して、本実施例の効果について説明する。
図5A及び図5Bは、本実施例の効果の説明図であり、図5Aは、作業機械1に対する無人飛行機40の目標飛行位置の関係を上面視で概略的に示す図であり、図5Bは、作業機械1の動きを概略的に説明する側面図である。
本実施例では、目標飛行位置に係る緯度及び経度は、上述したように、作業機械1の下部走行体110の後方に設定される。従って、図5Aの左側に示す中立状態のように、上部旋回体120の中心軸L0と下部走行体110の中心軸L1が一致する場合であっても、図5Aの右側に示す旋回状態のように、上部旋回体120の中心軸L0と下部走行体110の中心軸L1が一致しない場合であっても、目標飛行位置に係る緯度及び経度は、同じように下部走行体110の後方に対応する。
このようにして、本実施例では、上述したように、目標飛行位置に係る緯度及び経度を作業機械1の下部走行体110の後方に設定するので、下部走行体110の中心軸L1上の後方からの前方環境画像(無人飛行機40の撮像装置410からの前方環境画像)を、無人飛行機40から安定的に提供できる。
ここで、本実施例とは異なり、上部旋回体120の向きに応じて目標飛行位置に係る緯度及び経度が設定される比較例では、旋回状態で作業機械1を走行させると、無人飛行機40の撮像装置410により提供される前方環境画像は、当該作業機械1の走行動作に追従したものとならない。
この点、本実施例によれば、上述したように、作業機械1の下部走行体110の向きに応じて目標飛行位置に係る緯度及び経度が設定されるので、旋回状態で作業機械1を走行させると(図5Bの矢印R2参照)、無人飛行機40の撮像装置410により提供される前方環境画像は、当該作業機械1の走行動作に追従したものとなる。これにより、無人飛行機40の撮像装置410により提供される前方環境画像の有用性(ユーザにとっての有用性)を効果的に高めることができる。
ところで、下部走行体110は、上部旋回体120に比べて、外部環境(例えば作業現場の地面)に近く、粉塵や砂、泥(例えば泥はね時の泥)などが付着しやすい。従って、GPSコンパス821を下部走行体110に取り付けることは、GPSコンパス821の耐久性を高める観点からは難しい。
この点、本実施例では、GPSコンパス821を上部旋回体120に取り付けるので、GPSコンパス821を下部走行体110に取り付ける場合に比べて、GPSコンパス821を適切に保護できる。この結果、GPSコンパス821の耐久性を高めることができる。
その反面、GPSコンパス821を上部旋回体120に取り付ける場合は、GPSコンパス821を下部走行体110に取り付ける場合とは異なり、下部走行体110の向きを直接的に算出できない。
この点、本実施例によれば、上述したように、下部走行体110の向きは、GPSコンパス821と回転角センサ822とに基づいて算出するので、下部走行体110の向きを比較的精度良く算出できる。
このようにして、本実施例によれば、GPSコンパス821を上部旋回体120に取り付けることで、GPSコンパス821を適切に保護しつつ、下部走行体110の向きを精度良く算出できる。これにより、図5A及び図5Bに示したような、無人飛行機40を下部走行体110の後方に位置付ける制御について、その信頼性を高めることができる。
ところで、作業機械1は、作業内容に依存して動きが多様となりうるが、比較的狭い移動範囲内で所定の動き(例えば上部旋回体120の正逆交互の細かい旋回)を繰り返す場合がある。かかる場合に、位置追従制御を実行すると、制御装置400が同様に比較的狭い移動範囲内で無人飛行機40の同様の動きを繰り返すこととなる。このような動きは、無人飛行機40の機体に比較的大きい加速度を生みやすい。無人飛行機40の機体に比較的大きい加速度が生じると、撮像装置410に係る撮像範囲に変化(揺れ)が生じ、前方環境画像の視認性が低下しやすくなる。
これに対して、本実施例によれば、相対位置関係の変化量が所定閾値Th1以下である期間中は、相対位置関係が変化した場合でも、無人飛行機40のホバリングが維持される。すなわち、上部旋回体120が旋回した場合と(図5Bの矢印R1参照)でも、ホバリングが維持される。これにより、相対位置関係の変化量が所定閾値Th1以下である期間中に、上部旋回体120の旋回に伴って位置追従制御を実行する場合に比べて、ホバリングの期間を長くすることができる。この結果、無人飛行機40の機体に比較的大きい加速度が生じる頻度を低減し、前方環境画像の視認性の低下を抑制できる。ただし、変形例では、上部旋回体120が所定角度以上旋回した場合や、作業監視モードが選択された場合等には、上部旋回体120が旋回した場合に、上部旋回体120の旋回に伴って位置追従制御を実行してもよい。例えば、作業監視モードでは、無人飛行機40は、破砕機145の位置に応じた目標飛行位置に位置付けられてもよい。
また、変形例では、作業機械1が後退する場合は、目標飛行位置が前後反転されてもよい。すなわち、下部走行体110の後方とは、作業機械1の進行方向を基準としてもよい。この場合、例えば、作業機械1が後退する場合は、下部走行体110の進行方向の後方の上空で無人飛行機40がホバリングするように、目標飛行位置が切り替えられてよい。これにより、作業機械1の操作者に進行方向前方の視界を、撮像装置410による前方環境画像により提供できる。
次に、図6を参照して、下部走行体向き情報の算出に関連した制御装置10の処理例について概説する。
図6は、下部走行体向き情報の算出に関連して制御装置10により実行される処理の一例を示す概略フローチャートである。図6に示す処理は、例えば所定周期ごとに繰り返し実行されてよい。なお、図6の処理フロー図(フローチャート)においては、各ステップの入力と出力の関係を損なわない限り、各ステップの処理順序を入れ替えてもよい。
ステップS30では、制御装置10は、GPSコンパス821から向きの算出結果を取得する。
ステップS32では、制御装置10は、ステップS30で得た算出結果に基づいて、上部旋回体120の向きを算出する。
ステップS34は、制御装置10は、回転角センサ822から回転角情報を取得する。
ステップS36では、飛行制御装置50は、ステップS32で得た上部旋回体120の向きと、ステップS34で得た回転角情報とに基づいて、下部走行体110の向きを算出する。下部走行体110の向きの算出方法は、図4等を参照して上述したとおりである。
ステップS38では、飛行制御装置50は、ステップS36で算出した下部走行体110の向きを表す下部走行体向き情報を、飛行制御装置50に送信する。この場合、飛行制御装置50は、下部走行体向き情報を受信すると、上述したように、下部走行体向き情報に基づいて、下部走行体110の後方に目標飛行位置に係る緯度及び経度を設定する。
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した実施例の構成要素を全部又は複数を組み合わせることも可能である。