以下、図面を参照して本発明の実施形態について説明する。なお、各図において同一または対応する構成には同一の符号を用いて説明を適宜省略する。
図1は、本発明の一実施形態に係る掘削計画作成装置100の構成例を示すブロック図である。図2は、図1に示す掘削計画作成装置100を搭載する作業機械としての油圧ショベル1の構成例を示す斜視図である。
図1に示す掘削計画作成装置100は、例えば、マイクロコンピュータ、FPGA(Field Programmable Gate Array)等のコンピュータ、または、コンピュータとその周辺回路あるいは周辺装置等を用いて構成することができる。そして、掘削計画作成装置100は、コンピュータ、周辺回路、周辺装置等のハードウェアと、コンピュータが実行するプログラム等のソフトウェアとの組み合わせから構成される機能的構成として、土質推定部101と、地形情報推定部102と、地形情報取得部103と、計画値算出部104と、記憶部105を備える。本実施形態の掘削計画作成装置100は、例えば図2に示すように油圧ショベル1等の作業機械(掘削機械)に搭載される。油圧ショベル1は、図1に示す、掘削計画作成装置100と、地形情報を計測する地形計測部110と、油圧ショベル1の各部を制御する制御部120を備える。
図2に示す油圧ショベル1は、本体部としての車両本体1Bと作業機2とを有する。車両本体1Bは、旋回体である上部旋回体3と走行体としての走行装置5とを有する。上部旋回体3は、機関室3EGの内部に、動力発生装置であるエンジンおよび油圧ポンプ等の装置を収容している。実施形態において、油圧ショベル1は、動力発生装置であるエンジンに、例えばディーゼルエンジン等の内燃機関が用いられるが、動力発生装置は内燃機関に限定されない。油圧ショベル1の動力発生装置は、例えば、内燃機関と発電電動機と蓄電装置とを組み合わせた、いわゆるハイブリッド方式の装置であってもよい。また、油圧ショベル1の動力発生装置は、内燃機関を有さず、蓄電装置と発電電動機とを組み合わせた装置であってもよい。
上部旋回体3は、運転室4を有する。図2に示す例において、運転室4は、上部旋回体3の機関室3EGが配置されている側とは反対の側に設置されている。ただし、運転室4と機関室3EGの位置関係はこの例に限定されない。上部旋回体3の上方には、手すり9が取り付けられている。
走行装置5は、上部旋回体3を搭載する。走行装置5は、履帯5a、5bを有している。走行装置5は、左右に設けられた油圧モータ5cの一方または両方が駆動する。走行装置5の履帯5a、5bが回転することにより、油圧ショベル1を走行させる。作業機2は、上部旋回体3の運転室4の側方側に取り付けられている。
油圧ショベル1は、履帯5a、5bの代わりにタイヤを備え、エンジンの駆動力を、トランスミッションを介してタイヤへ伝達して走行が可能な走行装置を備えたものであってもよい。このような形態の油圧ショベル1としては、例えば、ホイール式油圧ショベルがある。また、油圧ショベル1は、このようなタイヤを有した走行装置を備え、さらに車両本体(本体部)に作業機が取り付けられ、図2に示すような上部旋回体3およびその旋回機構を備えていない構造を有する、例えばバックホウローダであってもよい。すなわち、バックホウローダは、車両本体に作業機が取り付けられ、車両本体の一部を構成する走行装置を備えたものである。
上部旋回体3は、作業機2および運転室4が配置されている側が前であり、機関室3EGが配置されている側が後である。上部旋回体3の前後方向がy方向である。前に向かって左側が上部旋回体3の左であり、前に向かって右側が上部旋回体3の右である。上部旋回体3の左右方向は、幅方向またはx方向ともいう。油圧ショベル1または車両本体1Bは、上部旋回体3を基準として走行装置5側が下であり、走行装置5を基準として上部旋回体3側が上である。上部旋回体3の上下方向がz方向である。油圧ショベル1が水平面に設置されている場合、下は鉛直方向、すなわち重力の作用方向側であり、上は鉛直方向とは反対側である。
作業機2は、ブーム6とアーム7と作業具であるバケット8とブームシリンダ10とアームシリンダ11とバケットシリンダ12とを有する。ブーム6の基端部は、ブームピン13を介して車両本体1Bの前部に回動可能に取り付けられている。アーム7の基端部は、アームピン14を介してブーム6の先端部に回動可能に取り付けられている。アーム7の先端部には、バケットピン15を介してバケット8が取り付けられている。バケット8は、バケットピン15を中心として回動する。バケット8は、バケットピン15とは反対側に複数の刃8Bが取り付けられている。刃先8Tは、刃8Bの先端である。
バケット8は、複数の刃8Bを有していなくてもよい。つまり、図2に示されるような刃8Bを有しておらず、刃先が鋼板によってストレート形状に形成されたようなバケットであってもよい。作業機2は、例えば、単数の刃を有するチルトバケットを備えていてもよい。チルトバケットとは、バケットチルトシリンダを備え、バケットが左右にチルト傾斜することで油圧ショベルが傾斜地にあっても、斜面、平地を自由な形に成形したり、整地したりすることができ、底板プレートによる転圧作業もできるバケットである。この他にも、作業機2は、バケット8の代わりに、法面バケットまたは削岩用のチップを備えた削岩用のアタッチメント等を作業具として備えていてもよい。
図2に示されるブームシリンダ10とアームシリンダ11とバケットシリンダ12とは、それぞれ油圧ポンプから吐出される作動油の圧力によって駆動される油圧シリンダである。ブームシリンダ10はブーム6を駆動して、昇降させる。アームシリンダ11は、アーム7を駆動して、アームピン14の周りを回動させる。バケットシリンダ12は、バケット8を駆動して、バケットピン15の周りを回動させる。
また、作業機2は、図示していない第1ストロークセンサ、第2ストロークセンサおよび第3ストロークセンサを備えている。第1ストロークセンサはブームシリンダ10に、第2ストロークセンサはアームシリンダ11に、第3ストロークセンサはバケットシリンダ12に、それぞれ設けられる。第1ストロークセンサは、ブームシリンダ10の長さであるブームシリンダ長を検出して制御部120に出力する。第2ストロークセンサは、アームシリンダ11の長さであるアームシリンダ長を検出して制御部120に出力する。第3ストロークセンサは、バケットシリンダ12の長さであるバケットシリンダ長を検出して制御部120に出力する。
ブームシリンダ長、アームシリンダ長及びバケットシリンダ長が決定されれば、作業機2の姿勢が決定される。したがって、これらを検出する第1ストロークセンサ、第2ストロークセンサおよび第3ストロークセンサは、作業機2の姿勢を検出する姿勢検出装置に相当する。姿勢検出装置は、第1ストロークセンサ、第2ストロークセンサおよび第3ストロークセンサに限定されるものではなく、角度検出器であってもよい。
制御部120は、第1ストロークセンサが検出したブームシリンダ長から、油圧ショベル1の座標系であるローカル座標系における水平面と直交する方向(z軸方向)に対するブーム6の傾斜角を算出する。制御部120は、また、第2ストロークセンサが検出したアームシリンダ長から、ブーム6に対するアーム7の傾斜角を算出する。制御部120は、また、第3ストロークセンサが検出したバケットシリンダ長から、アーム7に対するバケット8の傾斜角を算出する。ブーム6、アーム7およびバケット8の傾斜角は、作業機2の姿勢を示す情報である。
上部旋回体3の上部には、アンテナ21、22が取り付けられている。アンテナ21、22は、油圧ショベル1の現在位置を検出するために用いられる。アンテナ21、22は、制御部120(またはその周辺回路)に接続されている。制御部120(またはその周辺回路)は、アンテナ21、22を用いて、RTK−GNSS(Real Time Kinematic − Global Navigation Satellite Systems、GNSSは全地球航法衛星システムをいう)による電波を受信し、油圧ショベル1の現在位置を検出する。アンテナ21、22が受信したGNSS電波に応じた信号は、制御部120に入力され、グローバル座標系におけるアンテナ21、22の設置位置が算出される。全地球航法衛星システムの一例としては、GPS(Global Positioning System)が挙げられるが、全地球航法衛星システムは、これに限定されるものではない。
アンテナ21、22は、図2に示されるように、上部旋回体3の上であって、油圧ショベル1の左右方向、すなわち幅方向に離れた両端位置に設置されることが好ましい。実施形態において、アンテナ21、22は、上部旋回体3の幅方向両側にそれぞれ取り付けられた手すり9に取り付けられる。アンテナ21、22が上部旋回体3に取り付けられる位置は手すり9に限定されるものではないが、アンテナ21、22は、可能な限り離れた位置に設置される方が、油圧ショベル1の現在位置の検出精度は向上するので好ましい。また、アンテナ21、22は、オペレータの視界を極力妨げない位置に設置されることが好ましい。
また、油圧ショベル1は、撮像装置19を備える。撮像装置19は、例えば、ステレオカメラであり、例えば油圧ショベル1の作業対象の領域を撮像し、撮像した画像を撮像装置19が備える地形計測部110に出力する。地形計測部110は、撮像装置19が撮影した視差画像に基づき、3次元の地形情報を作成して計測地形情報として掘削計画作成装置100へ出力する。撮像装置19は、例えば、上部旋回体3の運転室4の上方に設置される。ただし、撮像装置19が設置される場所は運転席4の上方に限定されるものではない。例えば、撮像装置19は、運転室4の内部かつ上方に設置されてもよい。なお、地形計測部110は、撮像装置19に代えて、あるいは、とともに、三次元レーザーレンジファインダ、三次元レーザースキャナ、三次元距離センサ等を用いて地形情報を作成してもよい。
図1に戻り、地形計測部110は、3次元の地形情報を表す計測地形情報を作成して、掘削計画作成装置100へ例えば所定周期毎に出力する。
また、制御部120は、掘削計画作成装置100から掘削計画に基づく計画値を入力して作業機2と上部旋回体3を制御するとともに、刃先8Tの位置(3次元位置)と作業機2の負荷を表す時系列データを掘削計画作成装置100へ出力する。ここで作業機2の負荷は、一般的にシリンダ圧やポンプ圧により計測される。本実施形態においては、作業機2の負荷は、例えば各シリンダ10〜12の負荷圧等で表すことができ、掘削時の負荷(掘削負荷)と非掘削時(旋回時等)の負荷とを含む。また、掘削負荷は掘削抵抗を指す。掘削計画は、例えば、図7に示すに一定範囲内A100を目標土量や目標地形となるまで掘削する計画であり、計画値は掘削軌跡と旋回方向を表す情報であり、例えば目標軌跡、掘削開始点等のデータからなる旋回分を含む3次元情報である。図7は、図2に示す油圧ショベル1の動作例(一定範囲内A100を掘削し、掘削物をダンプトラック400に積み込む際の動作例)を模式的に示す平面図である。
土質推定部101は、制御部120から入力した刃先位置と負荷を表す時系列データと、後述する計画値算出部104が算出した計画値とを入力し、計画値が指示する刃先位置の軌跡(計画軌跡という)と実際の刃先の軌跡のずれに基づいて土質を推定する。本実施形態において計画値は、土質の推定結果に基づいて算出される。したがって、推定している土質と実際の土質とに差がある場合、計画軌跡と実際の軌跡とのずれが大きくなる傾向がある。例えば図4に示すように、計画軌跡201と実際の軌跡203のずれが、計画軌跡201と実際の軌跡204のずれより大きい場合、実際の軌跡203が得られたときの土質の推定結果は、実際の軌跡204が得られたときの土質の推定結果より、推定値と実際の値との差が大きかったということが分かる。そこで、土質推定部101は、計画軌跡と実際の刃先位置の軌跡のずれに基づいて、例えば、計画値より実際の軌跡が浅い場合には実際の土質は推定土質より掘削抵抗が大きい土質であると推定することができ、計画値と実際の軌跡の差が小さい場合には実際の土質は推定土質に近い土質であると推定することができる。なお、土質は、例えば、土、砂、粘土等の種別で表されていてもよいし、掘削抵抗や水分の含有量等の値あるいは値に基づく指標値などで表されていてもよい。なお、図4は、図1に示す土質推定部101の動作例を説明するための模式図であり、掘削面200と計画軌跡201と実際の軌跡(の例)203および204の断面図を模式的に示す。
地形情報推定部102は、制御部120から入力した刃先位置と負荷を表す時系列データと、土質推定部101が推定した土質とを入力し、3次元の地形情報を推定して、推定地形情報として地形情報取得部103へ出力する。地形情報推定部102は、例えば、地形情報計測部110が取得した計測地形情報を初期値(あるいは基準値)として、制御部120から入力した刃先位置を表す時系列データと、土質推定部101が推定した土質に基づいて、地形情報を推定する。あるいは、地形情報推定部102は、例えば、事前の空撮画像等に基づき作成された地形情報を初期値(あるいは基準値)としてもよい。この場合、例えば、地形計測部110を省略することができる。地形情報推定部102は、例えば、図5に示すように、掘削前の掘削面211に対して、掘削時の実際の刃先の軌跡が軌跡212として得られた場合、掘削後地形が掘削軌跡212に等しいものと仮定する(掘削軌跡212より上にある土が無くなる)。次に、地形情報推定部102は、バケットからのこぼれ土量の推定値を軌跡212に基づく現況地形に加算して加算後の地形213を求める。次に、地形情報推定部102は、くずれ量を想定して、移動平均によるスムージングを掛けて地形214を算出する。なお、こぼれ土量やくずれ量は、例えば切り取り土量の一定割合とすることができ、また、こぼれ土量やくずれ量は土質に応じて変化させることができる。また、移動平均は土の変化があった周辺のみとすることができる。なお、地形情報は、3次元情報として算出されるので、例えばガウシアンフィルタ等を用いてスムージング処理を行ってもよい。なお、図5は、図1に示す地形情報推定部102の動作例を説明するための模式図であり、掘削面211と実際の軌跡(の例)212と推定された地形213および214の断面図を模式的に示す。
地形情報取得部103は、計測地形情報と推定地形情報を入力(取得)し、計測地形情報が地形計測部110から正常に取得できる場合には計測地形情報を選択して地形情報として計画値算出部104へ出力する。また、地形情報取得部103は、計測地形情報が地形計測部110から正常に取得できない場合には推定地形情報を選択して地形情報として計画値算出部104へ出力する。
一方、記憶部105は、計画モデル106を複数、記憶する。複数の計画モデル106は、例えば作業機械1を基準とする一定の範囲内で目標土量や目標地形(例えば掘削後の斜面形状)となるまでの掘削計画を作成する際に、地形情報を入力し、掘削軌跡と旋回方向の計画値を出力する機械学習モデルであって、掘削効率を評価値として土質に係るパラメータをそれぞれ異ならせて機械学習された機械学習モデルである。計画モデル106は、例えば、ニューラルネットワークを要素とする学習済みモデルであり、入力される多数のデータに対して求める解が出力されるよう、機械学習によりニューラルネットワークの各層のニューロン間の重み付け係数が最適化されている。計画モデル106は、例えば、入力から出力までの演算を行うプログラムと当該演算に用いられる重み付け係数(パラメータ)の組合せで構成される。ここで、図6を参照して、計画モデル106の学習の仕方について説明する。
図6は、図1に示す計画モデル106の学習の仕方の一例を示す模式図である。図6に示す例では、計画モデル106は、強化学習によって機械学習される。計画モデル106は、掘削シミュレータ301で生成された地形情報(掘削後地形302)を入力し、出力した掘削軌跡および旋回方向303を掘削シミュレータ301へ入力する。掘削シミュレータ301は、地形モデル305と、車体モデルおよび制御モデル307を含む。地形モデル305はパラメータとして土質304を入力するとともに刃先通過軌跡308を入力し、掘削後地形302と掘削抵抗306と掘削土量310を出力する。車体モデルおよび制御モデル307は、掘削軌跡および旋回方向303と掘削抵抗306を入力し、刃先通過軌跡308と掘削時間および旋回時間309を出力する。強化学習アルゴリズム312は、評価311において算出した掘削作業の効率を評価値として、既存の強化学習アルゴリズムの手法によって計画モデル106をアップデートする。なお、掘削作業の効率は、例えば、掘削土量を作業時間(=掘削時間+旋回時間)で除することで求めることができる。また、評価311においては、掘削計画における目標地形(例えば掘削範囲と掘削形状の目標値)に適合する掘削に対して評価値を高め、目標地形に適合しない掘削に対して評価値を低める処理を行う。例えば、目標地形として、掘削範囲外の掘削は禁止(マス堀り)、かつ、手前に60度の斜面をなるべく残すという条件が与えられた場合、範囲外の掘削には報酬を与えず、60度の斜面を崩す掘削には範囲内の掘削に対する報酬の数〜数十分の一の報酬を与えるといった評価を行って、報酬(評価値)を算出する。なお、地形モデル305は、土質304が変化した場合に、掘削後地形302と掘削抵抗306と掘削土量310の少なくとも1つが変化するモデルとする。1つの計画モデル106の機械学習では、土質304の値は固定とする。この場合、各計画モデル106は、土質304の値に対応するモデルとなる。
また、計画値算出部104は、土質推定部101が推定した土質に基づき計画モデル106を選択し、選択した計画モデル106に、地形情報取得部103が取得(出力)した地形情報を入力し、計画モデル106の出力として計画値を算出する。その際、計画値算出部104は、例えばオペレータが設定した掘削計画(目標土量や目標形状)と、学習時の掘削計画(目標土量や目標形状)の設定とが等しい計画モデル106を選択する。
次に、図3を参照して、図1に示す掘削計画作成装置100の動作例について説明する。図3は、図1に示す掘削計画作成装置100の動作例を示すフローチャートである。
例えば、油圧ショベル1のオペレータが、油圧ショベル1を掘削の開始位置まで移動させ、掘削方向を所定の方向に調整した後、自動掘削の開始を指示すると、掘削計画作成装置100は、以後、自動掘削の終了条件が成立するまで(ステップS6で「YES」になるまで)、ステップ2〜ステップS6の処理を所定の周期で繰り返し実行する(「開始」〜ステップS1で「YES」)。ステップS2では、地形情報取得部103が、地形計測部110が出力した計測地形情報または地形情報推定部102が出力した推定地形情報の一方を、地形情報として取得して計画値算出部104へ出力する。次に、土質推定部101が土質を推定する(ステップS3)。次に、計画値算出部104が土質とオペレータが設定した掘削計画(目標土量や目標形状)に基づき、記憶部105から計画モデル106を選択する(ステップS4)。次に、計画値算出部104が、選択した計画モデル106に地形形状を入力し、計画モデル106の出力として計画値を算出する(ステップS5)。次に、掘削計画作成装置100(例えば計画値算出部104)が、終了条件を満たすか否か(例えば掘削計画が完了したか否か)を判定する(ステップS6)。
以上の処理によって、掘削計画作成装置100は、掘削計画に基づき油圧ショベル1を自動制御することができる。その際、土質に合わせて計画モデル106が選択されるので、掘削計画作成装置100は、掘削計画を作成する(掘削計画に基づき計画値を算出する)際に、土質の影響を適切に考慮することができる。
以上、この発明の実施形態について図面を参照して説明してきたが、具体的な構成は上記実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、計画モデル106を作成する際には、土質に加えて、例えば、掘削深さの制限値をパラメータとして車体モデルおよび制御モデル307に対して入力するようにしてもよい。例えば、土質を土と砂の2種類、掘削深さの制限値を1m、80cm、60cmの3種類に変化させて、強化学習を行えば、6種類の計画モデル106を作成することができる。また、機械学習の仕方は、強化学習に限定されず、例えば、教師あり学習としてもよい。また、計画値算出部104が算出した計画値は、制御部120へ出力するのに代えて、オペレータが目標値として視認できる表示形態で所定の表示部に出力するようにしてもよい。
また、上記実施形態でコンピュータが実行するプログラムの一部または全部は、コンピュータ読取可能な記録媒体や通信回線を介して頒布することができる。