(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-16
(45)【発行日】2024-10-24
(54)【発明の名称】作業機械の制御システム
(51)【国際特許分類】
E02F 9/20 20060101AFI20241017BHJP
【FI】
E02F9/20 Q
E02F9/20 N
(21)【出願番号】P 2024510907
(86)(22)【出願日】2022-03-30
(86)【国際出願番号】 JP2022016064
(87)【国際公開番号】W WO2023188132
(87)【国際公開日】2023-10-05
【審査請求日】2023-12-12
(73)【特許権者】
【識別番号】000005522
【氏名又は名称】日立建機株式会社
(74)【代理人】
【識別番号】110002572
【氏名又は名称】弁理士法人平木国際特許事務所
(72)【発明者】
【氏名】森木 秀一
(72)【発明者】
【氏名】関根 和也
(72)【発明者】
【氏名】堤 芳明
【審査官】湯本 照基
(56)【参考文献】
【文献】米国特許出願公開第2017/0314232(US,A1)
【文献】特開2018-039192(JP,A)
【文献】特開平11-158934(JP,A)
【文献】特開2021-051650(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
E02F 9/20
(57)【特許請求の範囲】
【請求項1】
作業機械に対する一連の作業指示を取得する作業指示取得部と、
前記作業指示取得部により取得された前記作業指示に含まれる各タスクを実行するように前記作業機械の動作を制御する動作制御部と、
を備える作業機械の制御システムであって、
前記作業機械が対象物を積載しているか否かを判定する積載判定部を備え、
前記動作制御部は、前記作業指示に含まれる複数のタスクのうち、優先して実行する割込タスクと該割込タスクを除いた非割込タスクとが含まれる場合であって、
前記積載判定部により前記作業機械が前記対象物を積載していると判定された場合には、実行中のタスクで指示された前記作業機械の動作を行った後に前記割込タスクを実行し、
前記積載判定部により前記作業機械が前記対象物を積載していないと判定された場合には、実行中のタスクで指示された前記作業機械の動作が完了する前に前記割込タスクを実行することを特徴とする作業機械の制御システム。
【請求項2】
前記動作制御部は、
前記作業指示取得部により取得された前記作業指示に含まれる複数のタスクを、前記割込タスクと前記非割込タスクとに分けるタスク入力処理部と、
前記割込タスクを格納する割込タスクバッファと、
前記非割込タスクを前記作業指示に指示された順序に従って格納するキューと、
実行中のタスクを格納するカレントタスクバッファと、
前記カレントタスクバッファに格納される実行中のタスクと、前記作業指示に含まれるマップデータと、前記作業機械の位置情報と、前記作業機械に積載される対象物の荷重情報とに基づき、前記作業機械の動作モード及び目標位置を設定するとともに、実行中のタスクが完了した場合にタスク完了フラグを出力するタスク実行処理部と、
前記タスク実行処理部により出力されるタスク完了フラグの有無と、前記キューに格納される前記非割込タスクと、前記割込タスクバッファに格納される前記割込タスクとに基づいて、前記カレントタスクバッファのタスクを更新するタスク更新処理部と、
を備え、
前記タスク更新処理部は、前記キューに格納される前記非割込タスクよりも前記割込タスクバッファに格納される前記割込タスクを優先して前記カレントタスクバッファに移し替えることで、前記カレントタスクバッファのタスクを更新する請求項1に記載の作業機械の制御システム。
【請求項3】
前記積載判定部は、
前記作業機械に積載される対象物の荷重情報と、前記タスク実行処理部により設定された動作モードとに基づき、前記作業機械が対象物を積載しているか否かを判定し、判定した結果を前記タスク更新処理部に出力し、
前記タスク更新処理部は、前記作業機械が対象物を積載していないと判定されて且つ前記割込タスクバッファに前記割込タスクが格納された場合、前記割込タスクバッファに格納される前記割込タスクを前記カレントタスクバッファに移し替える請求項2に記載の作業機械の制御システム。
【請求項5】
前記作業指示には作業量又は作業回数の指示が含まれ、
前記タスク実行処理部は、実行中のタスクの途中で前記割込タスクを実行してから元のタスクを再開する場合、元のタスクに対し、既に終わった作業量又は作業回数を反映した残りの作業量又は作業回数を設定する請求項2~4のいずれか一項に記載の作業機械の制御システム。
【請求項6】
前記作業機械の動作は積込動作を含み、
前記動作制御部は、実行中のタスクで指示された前記作業機械の積込動作を行った後に前記割込タスクを実行する請求項1~5のいずれか一項に記載の作業機械の制御システム。
【請求項7】
前記作業指示取得部及び前記動作制御部は、前記作業機械に設けられ、又は前記作業機械と通信可能な外部サーバ装置に設けられている請求項1~6のいずれか一項に記載の作業機械の制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、作業機械の制御システムに関する。
【背景技術】
【0002】
従来から、対象物を自動的に掘削し、掘削した対象物を所定の位置に自動的に積込む作業機械の制御システムが提案されている。例えば、特許文献1に記載された作業機械の制御システムは、掘削目標位置を演算する掘削目標位置演算手段と、積込目標位置を演算する積込目標位置演算手段と、演算された掘削目標位置及び積込目標位置に作業機械を自動位置決めする自動位置決め手段と、掘削目標位置で対象物を自動掘削する自動掘削制御手段と、積込目標位置で対象物を自動積込する自動積込制御手段とを備えている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載された作業機械の制御システムでは、優先して実行する割込タスクのような突発的な作業指示があった場合、現場環境と作業機械の設定をやり直す必要があるので、割込タスクに対応し難いという問題があった。
【0005】
本発明は、上記課題に鑑みてなされたものであり、その目的は割込タスクに容易に対応できる作業機械の制御システムを提供することにある。
【課題を解決するための手段】
【0006】
本発明に係る作業機械の制御システムは、作業機械に対する一連の作業指示を取得する作業指示取得部と、前記作業指示取得部により取得された前記作業指示に含まれる各タスクを実行するように前記作業機械の動作を制御する動作制御部と、を備える作業機械の制御システムであって、前記動作制御部は、前記作業指示に含まれる複数のタスクのうち、優先して実行する割込タスクと該割込タスクを除いた非割込タスクとが含まれる場合、実行中のタスクで指示された前記作業機械の動作を行った後に前記割込タスクを実行することを特徴としている。
【0007】
本発明に係る作業機械の制御システムでは、動作制御部は、作業指示に含まれる複数のタスクのうち、優先して実行する割込タスクと該割込タスクを除いた非割込タスクとが含まれる場合、実行中のタスクで指示された前記作業機械の動作を行った後に前記割込タスクを実行するので、割込タスクに容易に対応することができる。
【発明の効果】
【0008】
本発明によれば、割込タスクに容易に対応することができる。
【図面の簡単な説明】
【0009】
【
図3】作業機械の自動運転制御装置を示す機能ブロック図である。
【
図4】作業指示に含まれるマップデータの一例である。
【
図5】作業指示に含まれるタスクデータの一例である。
【
図6】作業指示に含まれる割込タスクの一例である。
【
図7】第1実施形態に係る作業機械の制御システムを示す機能ブロック図である。
【
図8】タスク入力処理部で行う処理を示すフローチャートである。
【
図9】タスク更新処理部で行う処理を示すフローチャートである。
【
図10】タスク実行処理部で行う処理を示すフローチャートである。
【
図11】タスク実行処理部で行う積込タスクの処理を示すフローチャートである。
【
図12】第2実施形態に係る作業機械の制御システムを示す機能ブロック図である。
【
図13】第2実施形態に係る作業機械の制御システムのタスク更新処理部で行う処理を示すフローチャートである。
【
図14】第2実施形態に係る作業機械の制御システムの積載判定部で行う処理を示すフローチャートである。
【
図15】第3実施形態に係る作業機械の制御システムのタスク更新処理部で行う処理を示すフローチャートである。
【
図16】第4実施形態に係る作業機械の制御システムの作業指示に含まれるタスクデータの一例である。
【
図17】第4実施形態に係る作業機械の制御システムの作業指示に含まれる割込タスクの一例である。
【
図18】第4実施形態に係る作業機械の制御システムのタスク実行処理部で行う積込タスクの処理を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、図面を参照して本発明に係る作業機械の制御システムの実施形態について説明する。図面の説明において同一の要素には同一符号を付し、重複説明は省略する。また、以下の説明において、作業機械がホイールローダである例を挙げて説明するが、本発明の作業機械はホイールローダに限定されず、油圧ショベル等の作業機械であってもよい。更に、以下の説明において、上下、左右、前後の方向及び位置は、作業機械の運転席から見た方向を基準とする。
【0011】
また、本発明に係る作業機械の制御システムは、作業機械に設けられてもよく(すなわち、作業機械に搭載される)、制御システムの一部又は全部が作業機械と通信可能な外部サーバ装置に設けられてもよいが、ここでは作業機械に搭載される例を挙げて説明する。
【0012】
[第1実施形態]
本実施形態に係る作業機械の制御システム200は、作業機械1に対する作業指示に基づき作業機械1の動作を制御するためのシステムであって、主に、後述する通信インタフェース18及び動作制御部110を備えている。そして、通信インタフェース18及び動作制御部110は、それぞれ作業機械1に設けられている。
【0013】
図1は作業機械を示す斜視図であり、
図2は作業機械を示す模式図である。
図1に示すように、作業機械1は、例えば電動駆動式のホイールローダであって、作業機械1の前方に配置されたバケット(作業具ともいう)2と、バケット2を回動可能に支持する左右一対のリフトアーム3を備えている。リフトアーム3は、作業機械1の車体に回動可能に支持されている。リフトアーム3が回動すると、バケット2が上下動する。また、リフトアーム3は、ベルクランク4を回動可能に支持している。ベルクランク4が回動すると、バケットリンク5を介してバケット2もリフトアーム3に対して回動するようになっている。
【0014】
作業機械1は、前方左タイヤ6FL、前方右タイヤ6FR、後方左タイヤ6RL、及び後方右タイヤ6RRを備えており、これらのタイヤを駆動することで走行する。また、作業機械1は、アーティキュレート型の操舵機構を備え、車体鉛直方向を軸として車体前方と車体後方とに角度差を生じさせることで旋回する。
【0015】
図2に示すように、作業機械1は、動力源としてエンジン7を備えている。エンジン7は、油圧ポンプ8及び駆動力伝達装置9を駆動する。駆動力伝達装置9は、センタジョイント10及びフロント差動装置11Fとリア差動装置11Rを介して、それぞれ前方左タイヤ6FLと前方右タイヤ6FR、後方左タイヤ6RLと後方右タイヤ6RRにエンジン7の駆動力を伝達し、作業機械1を加速走行させる。
【0016】
一方、油圧ポンプ8は、エンジン7の駆動によってコントロールバルブ12に作動油を供給する。作動油は、コントロールバルブ12により分配され、ステアシリンダ13、リフトシリンダ14、バケットシリンダ15、ブレーキ16F,16Rにそれぞれ供給される。ステアシリンダ13、リフトシリンダ14、及びバケットシリンダ15は、供給される作動油によってそれぞれ伸縮し、これによって、車体前方と車体後方との角度、車体に対するリフトアーム3の角度、バケット2の角度がそれぞれ変化する。また、ブレーキ16F,16Rは、供給される作動油で閉じることにより、前方左タイヤ6FL、前方右タイヤ6FR、後方左タイヤ6RL、後方右タイヤ6RRの回転を抑制し、これによって作業機械1が減速停止する。
【0017】
更に、作業機械1は、測位装置17、通信インタフェース18、圧力センサ19、エンジン制御装置20、油圧制御装置21、走行制御装置22、及び自動運転制御装置100を備えている。測位装置17は、例えば測位衛星からの信号を受信して位置を測定する2つのGNSS(Global Navigation Satellite System)受信機(
図1参照)により構成され、測定した作業機械1の位置情報を自動運転制御装置100に出力する。なお、測位装置17は、GNSS受信機に限定されるものではなく、カメラやLiDARを用いた公知のSLAM(Simultaneous Localization and Mapping)を採用してもよい。
【0018】
通信インタフェース18は、特許請求の範囲に記載された「作業指示取得部」に相当するものであり、作業機械1に対する一連の作業指示を工程管理端末30から取得し、取得した作業指示を自動運転制御装置100に出力する。後述するが、作業指示には作業に関するタスクデータ及びマップデータなどが含まれている。なお、作業指示取得部は、工程管理端末30から作業指示を取得できるものであればよく、通信インタフェース18の他に無線通信器等であってもよい。
【0019】
圧力センサ19は、リフトシリンダ14の油圧又はリフトシリンダ14の応力に基づいて作業機械1に積載される対象物(すなわち、バケット2に収容される対象物)の荷重情報を検出し、検出した荷重情報を自動運転制御装置100に出力する。
【0020】
自動運転制御装置100は、例えば、演算を実行するCPU(Central Processing Unit)と、演算のためのプログラムを記録した二次記憶装置としてのROM(Read Only Memory)と、演算経過の保存や一時的な制御変数を保存する一時記憶装置としてのRAM(Random Access Memory)とを組み合わせてなるマイクロコンピュータにより構成されており、記憶されたプログラムの実行によって作業機械1の自動運転に関する各演算、設定、判定、及び生成などの処理を行う。
【0021】
例えば、自動運転制御装置100は、通信インタフェース18を介して取得した工程管理端末30からの作業指示と、測位装置17により測定された作業機械1の位置情報と、圧力センサ19により検出された荷重情報とに基づいて、エンジン制御信号、油圧制御信号、及び走行制御信号をそれぞれ生成し、生成したエンジン制御信号をエンジン制御装置20に、油圧制御信号を油圧制御装置21に、走行制御信号を走行制御装置23にそれぞれ出力する。
【0022】
エンジン制御装置20は、自動運転制御装置100からのエンジン制御信号に基づいてエンジン7の回転数を制御する。油圧制御装置21は、自動運転制御装置100からの油圧制御信号に基づいてコントロールバルブ12の開閉度合を制御する。走行制御装置22は、自動運転制御装置100からの走行制御信号に基づいて駆動力伝達装置9の変速比と回転方向を制御する。
【0023】
工程管理端末30は、現場に稼働する各作業機械1に作業指示を送信するための端末であり、現場管理者等が手動で作業指示を作成して送信するものであってもよく、センサ等で現場全体の作業の進捗情報を自動的に取得して作業指示を自動的に生成して送信するものであってもよい。
【0024】
次に、
図3を基に自動運転制御装置100を詳細に説明する。
図3は作業機械の自動運転制御装置を示す機能ブロック図である。
図3に示すように、自動運転制御装置100は、動作制御部110、経路計画部120及び動作生成部130を備えている。
【0025】
動作制御部110は、演算を実行するCPUと、演算のためのプログラムを記録した二次記憶装置としてのROMと、演算経過の保存や一時的な制御変数を保存する一時記憶装置としてのRAMとを組み合わせてなるマイクロコンピュータにより構成され、通信インタフェース18により取得された作業指示に含まれる各タスクを実行するように作業機械1の動作を制御する。
【0026】
例えば動作制御部110は、通信インタフェース18を介して取得した工程管理端末30からの作業指示と、測位装置17により測定された作業機械1の位置情報と、圧力センサ19により検出された荷重情報とに基づいて、作業機械1の動作モード及び目標位置を設定する。また、動作制御部110は、設定した動作モードを動作生成部130に、設定した目標位置を経路計画部120にそれぞれ出力する。なお、動作制御部110に関する詳細説明は後述する。
【0027】
動作モードとしては、例えば走行モード、掘削モード、積込モード等が挙げられる。また、本実施形態でいう「積込」は、作業機械1が対象物を運搬用車両の荷台に積込むこと、及び、掘削した対象物を目的地まで運搬して放土することを含む。従って、本実施形態でいう「積込動作」には、作業機械1が対象物を運搬用車両の荷台に積込む動作と、掘削した対象物を目的地まで運搬して放土する動作とが含まれる。
【0028】
経路計画部120は、通信インタフェース18を介して取得した工程管理端末30からの作業指示と、測位装置17により測定された作業機械1の位置情報と、動作制御部110により設定された目標位置とに基づいて、目標経路を設定する。具体的には、経路計画部120は、作業指示に含まれるマップデータを用いて、作業機械1の現在位置から目標位置までの目標経路を設定する。また、経路計画部120は、設定した目標経路を動作生成部130に出力する。
【0029】
動作生成部130は、動作制御部110により設定された動作モードと、経路計画部120により設定された目標経路と、測位装置17により測定された作業機械1の位置情報とに基づいて、エンジン制御装置20、油圧制御装置21及び走行制御装置22を制御するための動作を生成する。具体的には、動作生成部130は、経路計画部120により設定された目標経路と、測位装置17により測定された作業機械1の位置情報とに基づいて、作業機械1の現在位置から目標経路に沿うように作業機械1を走行させるための走行動作を生成する。また、動作生成部130は、動作制御部110により設定された動作モードに基づいて掘削や積込等のバケット2の作業動作を生成する。
【0030】
そして、動作生成部130は、生成した走行動作を走行制御信号として走行制御装置22に、生成した作業動作を油圧制御信号として油圧制御装置21にそれぞれ出力する。走行制御信号は、例えば従来の手動操作と同様に、アクセルとブレーキのペダル操作量および前後進スイッチの切替信号としてもよい。油圧制御信号は、例えば従来の手動操作と同様に、リフトアーム3とバケット2のレバー操作量としてもよい。更に、動作生成部130は、生成した走行動作と作業動作とに基づいて必要なエンジン回転数を演算し、演算した結果をエンジン制御信号としてエンジン制御装置20に出力する。
【0031】
次に、
図4~
図6を基に作業指示に含まれるマップデータ及びタスクデータを説明する。作業指示には、作業に関するマップデータとタスクデータとがそれぞれ含まれている。タスクデータは、優先して実行する割込タスクと該割込タスクを除いた非割込タスクとを含むものである。割込タスクは、非割込タスクよりも優先して行うタスクを指し、例えば後述する処理方法が数字「2」で示すタスクのことである。一方、非割込タスクは、優先度の区別がない通常のタスク(例えば後述する処理方法が数字「0」、「1」で示すタスク)を指し、タスク指示リストに記載された順に従って順次に行うタスクのことである。
【0032】
図4は作業指示に含まれるマップデータの一例である。
図4に示すように、マップデータは、複数の座標点(p0~p9)とそれらを接続する線分として与えられる。
図4中のQ1及びQ2は掘削位置、R1及びR2は積込位置、O1は障害物をそれぞれ示す。これらの掘削位置、積込位置及び障害物は、座標と紐づいた属性情報が与えられている。
【0033】
図5は作業指示に含まれるタスクデータの一例である。
図5に示すように、タスクデータは、対象物、掘削位置、積込位置をセットとしたタスク指示リストである。例えば、M1積込タスクでは、作業機械1が対象物M1を掘削位置Q1で掘削し、積込位置R1へ積込み、積込位置R1への積込が終了したら、該M1積込タスクを完了とし、次のM2積込タスクに移行する。M2積込タスクでは、作業機械1が対象物M2を掘削位置Q2で掘削し、積込位置R2へ積込み、M2積込タスクが完了したら、タスク指示リストに記載された順に従って次のタスクに移行する。そして、タスク指示リストに記載された最後のタスクでは、作業機械1が待機位置に待機する。
【0034】
また
図5に示すように、タスクデータでは、タスク毎に処理方法が指定されている。この処理方法は例えば「0」、「1」、「2」といった数字で示されている。本実施形態では、例えば「0」は取得済のタスクを破棄する処理方法を示し、「1」はタスク指示リストに記載された順に従ってタスクを順次に実行する処理方法を示す。一方、「2」は「1」よりも優先度の高い処理方法を示し、すなわち「1」よりも優先して実行する割込タスクを示す。
【0035】
図6は作業指示に含まれる割込タスクの一例である。ここでは、処理方法を数字の「2」とすることで割込タスクとして指定している。なお、割込タスクは、一時的な(言い換えれば、突発的な)割込処理を行わせるためのものであり、取得済のタスクに対して複数のタスクを優先して実行させたい場合は、取得済のタスクを破棄してから割込タスクを行うことが望ましい。例えば上述したように、処理方法を数字の「0」とすることで取得済のタスクを破棄してから数字の「2」の割込タスクを実行する。
【0036】
図7は第1実施形態に係る作業機械の制御システムを示す機能ブロック図である。
図7に示すように、作業機械の制御システム200の動作制御部110は、マップデータ入力処理部111と、タスク入力処理部112と、タスク更新処理部113と、タスク実行処理部114と、マップメモリ116と、キュー117、割込タスクバッファ118、及びカレントタスクバッファ119とを備えている。
【0037】
図7に示すように、動作制御部110に接続された通信インタフェース18は、工程管理端末30から取得した作業指示に含まれたマップデータとタスクデータとをそれぞれ抽出し、抽出したマップデータをマップデータ入力処理部111に、抽出したタスクデータをタスク入力処理部112にそれぞれ出力する。
【0038】
マップデータ入力処理部111は、通信インタフェース18を介して取得したマップデータをマップメモリ116に記憶させる。
【0039】
タスク入力処理部112は、通信インタフェース18を介して取得したタスクデータを、割込タスクと非割込タスクとに分けるとともに、割込タスクを割込タスクバッファ118に、非割込タスクをキュー117にそれぞれ格納する。具体的には、タスク入力処理部112は、タスクデータに含まれた処理方法の数字に基づいて、取得したタスクを割込タスク(例えば処理方法の数字が「2」であるタスク)と非割込タスク(例えば処理方法の数字が「1」であるタスク)とに分けて、割込タスクを割込タスクバッファ118に格納し、非割込タスクをキュー117に格納する。
【0040】
なお、以下の説明において、キュー117、割込タスクバッファ118及びカレントタスクバッファ119にそれぞれ格納されるタスクを区別するために、キュー117に格納されるタスクを「キュー内のタスク」、割込タスクバッファ118に格納されるタスクを「割込タスク」、カレントタスクバッファ119に格納されるタスクを「カレントタスク」又は「実行中のタスク」とそれぞれ呼ぶ場合がある。そして、「キュー内のタスク」は非割込タスクでしかなく、「カレントタスク」又は「実行中のタスク」は割込タスクである場合もあるし、非割込タスクである場合もがある。
【0041】
タスク実行処理部114は、カレントタスクバッファ119に格納されるカレントタスク(すなわち、実行中のタスク)と、マップメモリ116に記憶されたマップデータと、測位装置17により測定された作業機械1の位置情報と、圧力センサ19により検出された荷重情報とに基づいて、作業機械1の動作モード及び目標位置を設定する。また、タスク実行処理部114は、設定した動作モードを動作生成部130に、設定した目標位置を経路計画部120にそれぞれ出力する。更に、タスク実行処理部114は、カレントタスク(実行中のタスク)が完了したと判定した場合、タスク完了フラグをタスク更新処理部113に出力する。なお、タスク実行処理部114については、後述する。
【0042】
タスク更新処理部113は、タスク実行処理部114により出力されるタスク完了フラグの有無と、キュー117に格納されるタスク(キュー内のタスク)と、割込タスクバッファ118に格納される割込タスクとに基づいて、カレントタスクバッファ119のタスクを更新する。
【0043】
次に、
図8~
図11を基に動作制御部110で行う各処理を詳細に説明する。なお、動作制御部110で行う各処理は非同期で周期的に行われている。以下では、タスク入力処理部112、タスク更新処理部113、タスク実行処理部114の順に説明する。
【0044】
図8はタスク入力処理部で行う処理を示すフローチャートである。
図8に示すように、ステップS1121では、タスク入力処理部112は、通信インタフェース18からのタスクデータの有無に基づき、作業指示を取得したか否かを判定する。タスクデータがあった場合、作業指示を取得したと判定されて、処理はステップS1122に進む。
【0045】
ステップS1122では、タスク入力処理部112は、取得したタスクデータの中に割込タスクがあるか否かを判定する。このとき、タスク入力処理部112は、上述したように、取得したタスクを割込タスクと非割込タスクとに分けて、その結果に基づき割込タスクの有無を判定する。
【0046】
割込タスクがないと判定された場合(言い換えれば、全て非割込タスクの場合)、処理はステップS1123に進む。ステップS1123では、タスク入力処理部112は、作業指示に含まれるタスクを順にキュー117に格納する。このとき、タスク入力処理部112は、上記タスク指示リストに記載された順に従って各タスクをキュー117に格納する。一方、割込タスクがあると判定された場合、処理はステップS1124に進む。ステップS1124では、タスク入力処理部112は、割込タスクを割込タスクバッファ118に格納する。
【0047】
図9はタスク更新処理部で行う処理を示すフローチャートである。
図9に示すように、ステップS1131では、タスク更新処理部113は、カレントタスクバッファ119にカレントタスク(すなわち、実行中のタスク)があるか否かを判定する。カレントタスクがあると判定された場合、処理はステップS1132に進む。一方、カレントタスクがないと判定された場合、処理はステップS1134に進む。
【0048】
ステップS1132では、タスク更新処理部113は、タスク実行処理部114により出力されるタスク完了フラグの有無に基づき、カレントタスクが完了した否かを判定する。タスク完了フラグがあった場合、カレントタスクが完了したと判定されて、処理はステップS1133に進む。ステップS1133では、タスク更新処理部113は、完了したカレントタスクを破棄する。一方、タスク完了フラグがない場合、カレントタスクが完了していないと判定されて、処理は「RETURN」になる。
【0049】
ステップS1134では、タスク更新処理部113は、割込タスクバッファ118に割込タスクがあるか否かを判定する。割込タスクがあると判定された場合、処理はステップS1135に進む。
【0050】
ステップS1135では、タスク更新処理部113は、割込タスクバッファ118に格納されている割込タスクをカレントタスクバッファ119に移し替えることで、カレントタスクバッファ119のタスクを更新する。このようにすれば、割込タスクバッファ118に格納されている割込タスクを、キュー117に格納されているタスク(すなわち、非割込タスク)よりも優先してカレントタスクバッファ119に移し替えることができ、非割込タスクよりも優先して実行することができる。
【0051】
一方、ステップS1134において割込タスクがないと判定された場合、処理はステップS1136に進む。ステップS1136では、タスク更新処理部113は、キュー117にタスク(すなわち、非割込タスク)があるか否かを判定する。キュー117にタスクがあると判定された場合、処理はステップS1137に進む。
【0052】
ステップS1137では、タスク更新処理部113は、キュー内のタスクをカレントタスクバッファ119に移し替える。例えば、タスク更新処理部113は、キュー117に格納された複数のタスクの中から最も先に格納されたタスク(言い換えれば、タスク指示リストに一番上に記載されたタスク)をカレントタスクバッファ119に移し替えることで、カレントタスクバッファ119のタスクを更新する。このようにすれば、キュー117に格納されているタスクが順次にカレントタスクバッファ119に移し替えられ、順に実行される。
【0053】
図10はタスク実行処理部で行う処理を示すフローチャートである。
図10に示すように、ステップS1141では、タスク実行処理部114は、カレントタスクバッファ119に格納されているカレントタスクを参照する。
【0054】
ステップS1141に続くステップS1142では、タスク実行処理部114は、カレントタスクバッファ119に格納されるカレントタスクが更新されたか否かを判定する。カレントタスクが更新されたか否かの判定は、例えばカレントタスクの内容が変化したか否かに基づいて行われる。カレントタスクが更新されていないと判定された場合、処理はステップS1143に進む。ステップS1143では、タスク実行処理部114は、現在実行中のタスクの処理を継続する。
【0055】
一方、カレントタスクが更新されたと判定された場合、処理はステップS1144に進む。ステップS1144では、タスク実行処理部114は、タスク実行処理を初期化する。例えば後述する
図11に示す積込タスクの処理の場合、タスク実行処理部114は最初(START)から処理を開始する。また、タスクにおいて初期位置が指定されている場合、タスク実行処理部114は作業機械1が初期位置に戻るような初期化を行ってもよい。
【0056】
図11はタスク実行処理部で行う積込タスクの処理を示すフローチャートである。ここでは、
図5に示すM1積込タスク(作業機械1が掘削位置Q1で掘削し、積込位置R1へ積込み、積込位置R1への積込が終了したら該M1積込タスクを完了とするタスク)を挙げて説明する。ステップS1001では、タスク実行処理部114は、タスクデータ(より具体的には、カレントタスク)に記載された掘削位置を目標位置に設定し、設定した目標位置を経路計画部120へ出力する。具体的には、タスク実行処理部114は、カレントタスクに記載された掘削位置Q1とマップメモリ116に記憶されたマップデータとに基づいて、該掘削位置Q1を目標位置として設定する。設定した目標位置は、例えばQ1の座標である。
【0057】
ステップS1001に続くステップS1002では、現在位置から掘削位置Q1まで走行するために、タスク実行処理部114は作業機械1の動作モードを走行モードに設定し、設定した動作モードを動作生成部130に出力する。
【0058】
ステップS1002に続くステップS1003では、タスク実行処理部114は、ステップS1001で設定した目標位置と測位装置17により測定された作業機械1の位置情報とに基づいて、作業機械1が掘削位置Q1(すなわち目標位置)に到達したか否かを判定する。掘削位置Q1に到達していないと判定された場合、処理はステップS1002に戻る。一方、掘削位置Q1に到達したと判定された場合、処理はステップS1004に進む。
【0059】
ステップS1004では、タスク実行処理部114は、カレントタスクに記載された順序に従い、作業機械1の動作モードを掘削モードに設定し、設定した動作モードを動作生成部130に出力する。
【0060】
ステップS1004に続くステップS1005では、タスク実行処理部114は、圧力センサ19により検出された荷重情報に基づいて、掘削モードにおける掘削動作が終了したか否かを判定する。掘削動作が終了していないと判定された場合、処理はステップS1004に戻る。一方、掘削動作が終了したと判定された場合、処理はステップS1006に進む。なお、掘削動作の終了判定は、荷重情報の他に、バケット2の高さや姿勢に関する情報に基づいて行われてもよい。
【0061】
ステップS1006では、タスク実行処理部114は、カレントタスクに記載された積込位置R1とマップメモリ116に記憶されたマップデータとに基づいて、該積込位置R1を目標位置に設定し、設定した目標位置を経路計画部120に出力する。設定した目標位置は、例えばR1の座標である。
【0062】
ステップS1006に続くステップS1007では、現在位置(ここでは、掘削位置Q1)から積込位置R1まで走行するために、タスク実行処理部114は作業機械1の動作モードを走行モードに設定し、設定した動作モードを動作生成部130に出力する。
【0063】
ステップS1007に続くステップS1008は、タスク実行処理部114は、ステップS1006で設定した目標位置と測位装置17により測定された作業機械1の位置情報とに基づいて、作業機械1が積込位置R1(すなわち目標位置)に到達したか否かを判定する。積込位置R1に到達していないと判定された場合、処理はステップS1007に戻る。一方、積込位置R1に到達したと判定された場合、処理はステップS1009に進む。
【0064】
ステップS1009では、タスク実行処理部114は、カレントタスクに記載された順序に従って、作業機械1の動作モードを積込モードに設定し、設定した動作モードを動作生成部130に出力する。
【0065】
ステップS1009に続くステップS1010では、タスク実行処理部114は、圧力センサ19により検出された荷重情報に基づいて、積込モードにおける積込動作が終了したか否かを判定する。積込動作が終了していないと判定された場合、処理はステップS1009に戻る。一方、積込動作が終了したと判定された場合、処理はステップS1011に進む。なお、積込動作の終了判定は、荷重情報の他に、バケット2の高さや姿勢に関する情報に基づいて行われてもよい。
【0066】
ステップS1011では、タスク実行処理部114は、カレントタスクに記載されたM1積込タスクが完了したと判定し、タスク完了フラグをタスク更新処理部113に出力する。
【0067】
本実施形態に係る作業機械の制御システム200では、工程管理端末30からの作業指示に含まれる複数のタスクのうち、割込タスクと非割込タスクとが含まれる場合、動作制御部110のタスク入力処理部112はその割込タスクを割込タスクバッファ118に格納し、タスク更新処理部113は割込タスクバッファ118に格納される割込タスクをカレントタスクバッファ119に移し替える。これによって、実行中のタスクで指示された作業機械1の動作(例えば積込動作)を行った後に、非割込タスクよりも優先して割込タスクを実行することができるので、割込タスクに容易に対応することができる。特に、実行中のタスクで指示された作業機械1の積込動作を行った後に、作業機械1が無積載状態であるので、割込タスクをより容易に実行することができる。
【0068】
[第2実施形態]
次に、
図12~
図14を参照して作業機械の制御システムの第2実施形態を説明する。本実施形態に係る作業機械の制御システム200Aは、動作制御部110Aが積載判定部115を更に備える点と、タスク更新処理部113Aの処理内容において上記第1実施形態と相違している。以下では、その相違点のみを説明する。
【0069】
図12は第2実施形態に係る作業機械の制御システムを示す機能ブロック図である。
図12に示すように、作業機械の制御システム200Aの動作制御部110Aは、更に積載判定部115を備えている。積載判定部115は、圧力センサ19により検出された荷重情報と、タスク実行処理部114により設定された動作モードとに基づき、作業機械1が対象物を積載しているか否か(言い換えれば、積載あり又は積載なし)を判定し、判定した結果をタスク更新処理部113Aに出力する。積載判定部115で行う処理は後述する。
【0070】
一方、タスク更新処理部113Aは、タスク実行処理部114により出力されるタスク完了フラグの有無と、キュー117に格納されるタスクと、割込タスクバッファ118に格納される割込タスクと、積載判定部115により判定された結果とに基づいて、カレントタスクバッファ119のタスクを更新する。
【0071】
図13は第2実施形態に係る作業機械の制御システムのタスク更新処理部で行う処理を示すフローチャートである。
図13に示す処理は、第1実施形態のタスク更新処理部で行う処理(
図9参照)に対してステップS1138及びステップS1139を更に追加したものである。ここでは、追加したステップS1138及びステップS1139のみを説明する。
【0072】
具体的には、ステップS1132においてカレントタスクが完了していないと判定された場合、処理はステップS1138に進む。ステップS1138では、タスク更新処理部113Aは、割込タスクバッファ118に格納された割込タスクの有無と積載判定部115の判定結果とに基づき、作業機械1が「割込タスクあり且つ積載なし」であるか否かを判定する。
【0073】
例えば割込タスク及び積載が両方ある場合、割込タスク及び積載が両方ない場合、あるいは割込タスクがないが積載がある場合、「割込タスクあり且つ積載なし」でないと判定されて、処理は「RETURN」になる。一方、「割込タスクあり且つ積載なし」であると判定された場合、処理はステップS1139に進む。
【0074】
ステップS1139では、タスク更新処理部113Aは、割込タスクバッファ118に格納されている割込タスクをカレントタスクバッファ119に移し替えることで、カレントタスクバッファ119のタスクを更新する。このようにすれば、カレントタスクが完了していなくても、積載がない場合には、割込タスクバッファ118に格納されている割込タスクをカレントタスクバッファ119に移し替えて、割込タスクをカレントタスクとして直ちに実行することができる。また、逆に積載がある状態で割込タスクを実行させないことにより、既に進行中の動作を中断させることを防止できる。
【0075】
図14は第2実施形態に係る作業機械の制御システムの積載判定部で行う処理を示すフローチャートである。
図14に示すように、ステップS1151では、積載判定部115は、タスク実行処理部114により設定された動作モードが掘削モードであるか否かを判定する。掘削モードであると判定された場合、処理はステップS1155に進む。一方、掘削モードでないと判定された場合、処理はステップS1152に進む。
【0076】
ステップS1152では、積載判定部115は、タスク実行処理部114により設定された動作モードが積込モードであるか否かを判定する。積込モードであると判定された場合、処理はステップS1155に進む。一方、積込モードでないと判定された場合、処理はステップS1153に進む。
【0077】
ステップS1153では、積載判定部115は、圧力センサ19により検出された荷重情報に基づき、荷重が予め設定された所定値以上であるか否かを判定する。荷重が所定値以上であると判定された場合、処理はステップS1155に進む。一方、荷重が所定値以上でないと判定された場合、処理はステップS1154に進む。
【0078】
ステップS1154では、積載判定部115は積載なしと判定するとともに、その判定結果をタスク更新処理部113Aに出力する。ステップS1155では、積載判定部115は積載ありと判定するするとともに、その判定結果をタスク更新処理部113Aに出力する。以上のようにすれば、例えば掘削作業中又は積込作業中において積載ありと判定することで、積載の状態が変化している最中にタスク更新処理部113Aによるタスクの更新を防ぐことができる。
【0079】
[第3実施形態]
次に、
図15を参照して作業機械の制御システムの第3実施形態を説明する。本実施形態に係る作業機械の制御システムは、タスク更新処理部113Aの処理内容において上記第2実施形態と相違している。以下では、その相違点のみを説明する。
【0080】
図15は第3実施形態に係る作業機械の制御システムのタスク更新処理部で行う処理を示すフローチャートである。
図15に示す処理は、第2実施形態のタスク更新処理部113Aの処理(
図13参照)のステップS1139をステップS1139’に置き換えるものである。
【0081】
具体的には、ステップS1138において「割込タスクあり且つ積載なし」であると判定された場合、処理はステップS1139’に進む。ステップS1139’では、タスク更新処理部は、割込タスクバッファ118に格納されている割込タスクとカレントタスクバッファ119に格納されているカレントタスクを入れ替える。すなわち、割込タスクバッファ118に格納されている割込タスクをカレントタスクバッファ119に移し替えるとともに、実行中のタスクをカレントタスクバッファ119から割込タスクバッファ118に移し替える。
【0082】
このようにすれば、現在実行中のカレントタスクが完了していなくても、積載がない場合には、割込タスクバッファ118に格納されている割込タスクをカレントタスクとして直ちに実行することができる。また、実行中であったタスクを割込タスクバッファ118に移し替えることで、割込タスクの完了後に該タスクをカレントタスクバッファ119に移し替えて、再開することができる。
【0083】
[第4実施形態]
次に、
図16~
図18を参照して作業機械の制御システムの第4実施形態を説明する。本実施形態に係る作業機械の制御システムは、タスクデータに作業回数に関する指示が追加される点と、タスク実行処理部114の処理内容において上記第1実施形態と相違している。以下では、その相違点のみを説明する。
【0084】
図16は第4実施形態に係る作業機械の制御システムの作業指示に含まれるタスクデータの一例であり、
図17は第4実施形態に係る作業機械の制御システムの作業指示に含まれる割込タスクの一例である。
図16に示すように、本実施形態の作業指示に含まれるタスクデータは、第1実施形態の作業指示に含まれるタスクデータ(
図5参照)と比べて、「作業回数」という項目が追加されている。また、
図17に示すように、本実施形態の割込タスクデータは、第1実施形態の割込タスク(
図6参照)と比べて、「作業回数」という項目も追加されている。「作業回数」は、例えば積込回数を示す。
【0085】
これによって、M1積込タスクという作業指示では、作業機械1が対象物M1を掘削位置Q1で掘削し、積込位置R1へ積込み、積込回数がN1に達したら、該M1積込タスクを完了とし、次のM2積込タスクに移行する。また、割込タスクにおいても同様である。このように積込回数が指定されている場合には、指定された積込回数に達するまでタスクが実行される。なお、「作業回数」に代えて、「作業量」(例えば積込量)を指定してもよい。
【0086】
図18は第4実施形態に係る作業機械の制御システムのタスク実行処理部で行う積込タスクの処理を示すフローチャートである。
図18に示すように、本実施形態のタスク実行処理部114で行う積込タスクの処理は、第1実施形態の積込タスクの処理(
図11参照)に対してステップS1010-1及びS1010-2を更に追加したものである。
【0087】
ステップS1010-1及びS1010-2は、ステップS1010とS1011との間に追加されている。具体的には、ステップS1010において積込動作が終了したと判定された場合、処理はステップS1010-1に進む。ステップS1010-1では、タスク実行処理部114は、実行中のタスクの積込回数を減算する。このとき、タスク実行処理部114は、タスクデータ(より具体的には、カレントタスク)に含まれた作業回数(ここでは積込回数)から、終了した積込動作の積込回数を減算する。
【0088】
ステップS1010-1に続くステップS1010-2では、タスク実行処理部114は、減算で得られた差分が0(ゼロ)より大きいか否かを判定する。差分が0より大きいと判定された場合、処理はステップS1001へ戻る。一方、差分が0以下であると判定された場合、処理はステップS1011に進む。ステップS1011では、タスク実行処理部114はタスク完了フラグを出力する。
【0089】
本実施形態に係る作業機械の制御システムでは、タスク実行処理部114がタスクデータに含まれた作業回数(積込回数)から終了した積込動作の積込回数を減算しておくことで、実行中のタスクの途中で割込タスクを実行してから元のタスクを再開する場合、元のタスクに対し、既に終わった積込回数を反映した積込回数を設定することができる。例えばM1積込タスク(例えば積込回数N1=5)の途中(例えば、終了した積込動作の積込回数が3回である時点)で割込タスクを優先して実行し、割込タスクの実行後に元のM1積込タスクを再開する場合、タスク実行処理部114は、再開するM1積込タスクに対し残り2回(N1-3=5-3=2)の積込動作を行うように作業機械1を制御する。なお、積込回数に代えて積込量を用いた場合、掘削動作の終了後から積込動作の開始前に対象物の量を計測し、積込回数と同様に積込量を減算すればよい。
【0090】
上述した実施形態では、作業機械の制御システム200,200Aが作業機械1に搭載される例を挙げて説明したが、例えば通信インタフェース18及び動作制御部110,110Aを、工程管理端末30及び作業機械1とそれぞれ通信可能に構成された外部サーバ装置等に設けてもよく、あるいは動作制御部110,110Aのみを外部サーバ装置等に設けてもよい。このようなバリエーションをもつことで、状況に応じて作業機械の制御システム200,200Aの設置を変えることができるので、作業機械の制御システム200,200Aの汎用性を高めることできる。
【0091】
以上、本発明の実施の形態について詳述したが、本発明は、上述した実施の形態に限定されるものではなく、特許請求の範囲に記載された本発明の精神を逸脱しない範囲で、種々の設計変更を行うことができるものである。また、上述した実施の形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
【符号の説明】
【0092】
1:作業機械、2:バケット、3:リフトアーム、4:ベルクランク、5:バケットリンク、7:エンジン、8:油圧ポンプ、9:駆動力伝達装置、10:センタジョイント、12:コントロールバルブ、13:ステアシリンダ、14:リフトシリンダ、15:バケットシリンダ、17:測位装置、18:通信インタフェース、19:圧力センサ、20:エンジン制御装置、21:油圧制御装置、22:走行制御装置、30:工程管理端末、100:自動運転制御装置、110,110A:動作制御部、111:マップデータ入力処理部、112:タスク入力処理部、113:タスク更新処理部、114:タスク実行処理部、115:積載判定部、116:マップメモリ、117:キュー、118:割込タスクバッファ、119:カレントタスクバッファ、120:経路計画部、130:動作生成部、200,200A:作業機械の制御システム