(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-16
(45)【発行日】2022-09-28
(54)【発明の名称】作業機械
(51)【国際特許分類】
E02F 9/20 20060101AFI20220920BHJP
E02F 9/26 20060101ALI20220920BHJP
【FI】
E02F9/20 N
E02F9/26 A
(21)【出願番号】P 2019113974
(22)【出願日】2019-06-19
【審査請求日】2021-12-03
(73)【特許権者】
【識別番号】000005522
【氏名又は名称】日立建機株式会社
(74)【代理人】
【識別番号】110001829
【氏名又は名称】弁理士法人開知
(72)【発明者】
【氏名】西澤 匡士
(72)【発明者】
【氏名】水落 麻里子
(72)【発明者】
【氏名】坂本 博史
【審査官】彦田 克文
(56)【参考文献】
【文献】特開2013-217138(JP,A)
【文献】特開2020-117982(JP,A)
【文献】特開2012-233404(JP,A)
【文献】特開2017-115491(JP,A)
【文献】特開2008-88803(JP,A)
【文献】特開2018-16974(JP,A)
【文献】特開昭63-135815(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
E02F 9/20
E02F 9/26
(57)【特許請求の範囲】
【請求項1】
車体に取り付けられた作業装置と、
複数の測位衛星からの信号に基づいて前記車体の位置を計測する測位装置と、
運転室に搭載されたモニタと、
施工現場の地形データが記憶された不揮発性記憶装置と、
前記不揮発性記憶装置に記憶された前記地形データを一時的に保存する揮発性記憶装置を有し、前記測位装置による前記車体の計測位置と、前記揮発性記憶装置に保存された前記地形データとを利用して、前記作業装置の動作及び前記モニタの画面の少なくとも一方を制御する地形データ利用処理を実行するコントローラとを備えた作業機械において、
前記コントローラは、
前記不揮発性記憶装置から読み出した前記地形データを複数のブロックに分割することで前記地形データを複数の地形ブロックデータに変換して前記不揮発性記憶装置に記憶し、
前記不揮発性記憶装置に記憶された前記複数の地形ブロックデータのうち、前記車体が位置するブロックを含む複数のブロックによって定義されたデータ保持領域に属する複数の地形ブロックデータを前記揮発性記憶装置に記憶し、
前記揮発性記憶装置に記憶された前記複数の地形ブロックデータのうち、前記車体が位置するブロックを含み前記データ保持領域に内包された複数のブロックによって定義されたデータ出力領域に属する地形ブロックデータを利用して前記地形データ利用処理を実行することを特徴とする作業機械。
【請求項2】
請求項1の作業機械であって、
前記作業装置の姿勢を検出する姿勢検出器をさらに備え、
前記コントローラは、
前記姿勢検出器によって検出された前記作業装置の姿勢と前記測位装置による前記車体の計測位置とに基づいて、前記車体が位置するブロックと前記作業装置の先端が位置するブロックとを特定し、
特定された前記車体が位置するブロックと前記作業装置の先端が位置するブロックとの位置関係に基づいて前記データ出力領域を変更することを特徴とする作業機械。
【請求項3】
請求項2の作業機械であって、
前記データ出力領域には、特定された前記車体が位置するブロックと前記作業装置の先端が位置するブロックとが少なくとも含まれていることを特徴とする作業機械。
【請求項4】
請求項2の作業機械であって、
前記データ出力領域はさらに、地形ブロックデータを利用して実行されるアプリケーションの種類によって異なることを特徴とする作業機械。
【請求項5】
請求項1の作業機械であって、
前記作業装置の姿勢を検出する姿勢検出器をさらに備え、
前記コントローラは、
前記姿勢検出器によって検出された前記作業装置の姿勢に基づいて前記作業機械が作業中であるか否かを判定し、
前記作業機械が作業中でないと判定された場合、前記揮発性記憶装置に記憶されている地形ブロックデータを消去し、
前記作業機械が作業中であると判定された場合、前記測位装置による前記車体の計測位置に基づいて前記車体が位置するブロックが変化したか否かを判定し、
前記車体が位置するブロックが変化したと判定された場合、前記車体が位置するブロックを基準として前記データ保持領域を変更し、前記不揮発性記憶装置に記憶された前記複数の地形ブロックデータのうち、変更後の前記データ保持領域に属する地形ブロックデータを前記揮発性記憶装置に記憶することを特徴とする作業機械。
【請求項6】
請求項1の作業機械であって、
前記コントローラは、
前記測位装置による前記車体の計測位置に基づいて前記車体が位置するブロックが変化したか否かを判定し、
前記車体が位置するブロックが変化したと判定された場合、前記車体が位置するブロックを基準として前記データ保持領域を変更し、
前記不揮発性記憶装置に記憶された前記複数の地形ブロックデータのうち、変更後の前記データ保持領域に属する地形ブロックデータを前記揮発性記憶装置に記憶することを特徴とする作業機械。
【請求項7】
請求項1の作業機械であって、
前記コントローラは、
前記測位装置による前記車体の計測位置に基づいて前記車体が位置するブロックが変化したか否かを判定し、
前記車体が位置するブロックが変化したと判定された場合、かつ、変化前のブロックから前記車体までの距離が所定値を超えた場合、前記車体が位置するブロックを基準として前記データ保持領域を変更し、
前記不揮発性記憶装置に記憶された前記複数の地形ブロックデータのうち、変更後の前記データ保持領域に属する地形ブロックデータを前記揮発性記憶装置に記憶することを特徴とする作業機械。
【請求項8】
請求項1の作業機械であって、
前記データ出力領域は、前記作業機械の車体パラメータに基づいて設定された第1データ出力領域と、前記モニタを介して任意に設定された第2データ出力領域とのいずれかであることを特徴とする作業機械。
【請求項9】
請求項1の作業機械であって、
前記コントローラがサーバと双方向通信するための通信装置をさらに備え、
前記コントローラは、
前記施工現場内で作業機械ごとに設定された作業領域を前記通信装置を介して前記サーバから入力し、
前記不揮発性記憶装置に記憶された前記複数の地形ブロックデータのうち前記作業領域と前記データ保持領域の双方に属する地形ブロックデータを前記揮発性記憶装置に記憶することを特徴とする作業機械。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は施工に用いる地形データの管理を行うコントローラを備える作業機械に関する。
【背景技術】
【0002】
油圧ショベルを含む作業機械の分野では、地形データを用いてリアルタイムに車体を制御することで、効率の良い施工を行う技術が注目されている。ここで地形データとは、例えば、3次元のメッシュで形成される施工現場の設計データや、ステレオカメラやレーザースキャナ等の計測装置を用いて計測された施工現場の現況地形データなど、施工現場の地形を表す情報のことを指す。地形データを用いて作業機械の作業を支援する機能としては、3次元の設計データに沿って作業装置(バケット爪先)を移動させながら掘削を行う領域制限制御による作業支援機能や、車体周囲の地形データを用いて掘削作業と積込作業を自動的に行う自動掘削積み込み機能等が挙げられる。
【0003】
この種の技術の一例として、特許文献1では、「掘削対象の目標形状を示す設計地形データを格納する設計地形データ格納部と、前記バケットの現在位置を示すバケット位置データを生成するバケット位置データ生成部と、前記設計地形データと前記バケット位置データとに基づいて、前記バケット上の規定された位置に応じた主設計面を示す主設計面データと、前記主設計面に連なる複数の従設計面を示す従設計面データとを生成し、前記主設計面データ及び前記従設計面データに基づいて、前記主設計面及び前記複数の従設計面の形状を示す形状データを生成する設計面データ生成部と、前記形状データと前記バケット位置データとに基づいて、前記主設計面及び前記複数の従設計面に対する前記バケットの位置を自動調整する掘削制限制御部と、を備える油圧ショベルの掘削制御システム」が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1のように作業機械が地形データ(設計地形データ)を用いた処理を行う場合、作業機械に搭載されたコントローラ上で地形データを処理する必要がある。施工現場の拡大や地形データの高精細化により地形データのデータ量は容易に増大し、そのデータ量の増大に伴ってコントローラでの地形データの処理時間やメモリ消費量も増大する傾向がある。コントローラで実行されるアプリケーションには、地形データのリアルタイム処理を要求するものも登場しており、地形データの処理時間やメモリ消費量を低減可能な地形データ管理技術が従前にも増して重要となっている。
【0006】
特許文献1に開示の技術では、作業エリア内の設計地形データからその断面形状である設計面データを算出しているが、表示コントローラ内の設計地形データ格納部に保持しておくべき設計地形データの範囲について具体的な記述がない。そのため、施工現場が広範囲に渡り表示コントローラの扱う設計地形データのデータ量が増大すると、表示コントローラによる設計地形データの処理時間(例えば、設計地形データから設計面データを生成する際に必要な時間)が長くなり、その後に続くバケットの位置制御の円滑な実行を阻害して応答性遅れが発生する恐れもある。
【0007】
本発明は上記事項に鑑みてなされたもので、その目的は、施工現場の地形データが広範囲に渡ってデータ量が増加しても、コントローラによる地形データの処理時間の増加を抑制できる作業機械を提供することにある。
【課題を解決するための手段】
【0008】
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、車体に取り付けられた作業装置と、複数の測位衛星からの信号に基づいて前記車体の位置を計測する測位装置と、運転室に搭載されたモニタと、施工現場の地形データが記憶された不揮発性記憶装置と、前記不揮発性記憶装置に記憶された前記地形データを一時的に保存する揮発性記憶装置を有し、前記揮発性記憶装置に保存された前記地形データを出力する第1コントローラと、前記測位装置による前記車体の計測位置と、前記第1コントローラから出力される前記地形データとを利用して、前記作業装置の動作及び前記モニタの画面の少なくとも一方を制御する第2コントローラとを備えた作業機械において、前記第1コントローラは、前記不揮発性記憶装置から読み出した前記地形データを複数のブロックに分割することで前記地形データを複数の地形ブロックデータに変換して前記不揮発性記憶装置に記憶し、前記不揮発性記憶装置に記憶された前記複数の地形ブロックデータのうち、前記車体が位置するブロックを含む複数のブロックによって定義されたデータ保持領域に属する複数の地形ブロックデータを前記揮発性記憶装置に記憶し、前記揮発性記憶装置に記憶された前記複数の地形ブロックデータのうち、前記車体が位置するブロックを含み前記データ保持領域に内包された複数のブロックによって定義されたデータ出力領域に属する地形ブロックデータを前記第2コントローラに出力することとする。
【発明の効果】
【0009】
本発明によれば、コントローラによる地形データの処理時間やメモリ消費量の増加を抑制できるので、コントローラが実行するアプリケーションが地形データの処理にリアルタイム性を要求しても当該アプリケーションを滞りなく実行できる。
【図面の簡単な説明】
【0010】
【
図2】油圧ショベルの制御システムの一例を示す図。
【
図4】車体座標系、センサ座標系およびサイト座標系の関係を説明する図。
【
図6】第1実施形態の情報コントローラ161の機能ブロック図。
【
図7】メッシュ形式の地形データについて説明する図。
【
図8】グリッド形式の地形データについて説明する図。
【
図9】ポイント形式の地形データについて説明する図。
【
図10】地形データの変換処理について説明する図。
【
図11】データ出力領域の設定方法について説明する図。
【
図12】モニタを用いたデータ出力領域の設定方法の一例を示す図。
【
図14】地形ブロックデータへの作業領域の割り当て方法を示す図。
【
図17】地形データ抽出部の処理のフローチャート。
【
図18】ステップ1704の移動判定処理を説明する図。
【
図19】地形ブロックデータの更新処理を説明する図。
【
図21】地形データ出力結果のモニタへの表示例を示す図。
【
図22】地形データを利用するアプリケーションの例を説明する図。
【
図23】第2実施形態の情報コントローラ161の機能ブロック図。
【
図24】作業判定部で行われる作業判定処理を説明する図。
【
図26】作業機械が非作業中である場合の移動判定処理を説明する図。
【
図27】作業機械が作業中である場合の移動判定処理を説明する図。
【
図28】第3実施形態の情報コントローラ161の機能ブロック図。
【
図29】地形データ出力部の処理のフローチャート。
【
図30】ブロック管理テーブルおよび出力ブロック参照テーブルの例を示す図。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について図面を用いて説明する。以下では、本発明が適用対象とする作業機械の具体例として油圧ショベルを挙げて説明するが、作業装置を備え地形データを利用するものであれば例えばホイールローダ等の他の作業機械にも適用可能である。
【0012】
(第1実施形態)
[構成]
まず、作業機械の一例として、本実施形態における油圧ショベル100の概略構成を説明する。
図1は、本実施形態の油圧ショベル100の概観を示す斜視図であり、
図2は油圧ショベル100に搭載された制御システムの一例を示す図である。
【0013】
図1において、油圧ショベル100は、車体130と、車体130に取り付けられた多関節型のフロント作業装置110とを備える。車体130は、下部走行体132と、下部走行体132の上部に旋回可能に取り付けられた上部旋回体131とを備える。上部旋回体131は、旋回モータ124の駆動により左右方向に旋回し、下部走行体132は、右走行モータ125および左走行モータ126の駆動により下部走行体132の前後方向に走行する。フロント作業装置110は、基端が上部旋回体131に俯仰可能に連結されたブーム111と、ブーム111の先端に揺動可能に連結されたアーム112と、アーム112の先端に揺動可能に連結されたバケット113とを備える。ブーム111とアーム112とバケット113とは、それぞれ、ブームシリンダ121とアームシリンダ122とバケットシリンダ123との各アクチュエータにより駆動され、それによりフロント作業装置110により掘削および土砂の運搬等が行われる。
【0014】
また上部旋回体131は、運転室151を備える。運転室151には、操作レバー152、タッチパネルが表層に形成されているモニタ(表示操作装置)153(いずれも
図2参照)が搭載される。モニタ153は、タッチパネルの機能によりオペレータからの入力を受け付けるとともに、オペレータに情報を通知する。
【0015】
ブーム111、アーム112、バケット113、および上部旋回体131は、それぞれの重力方向に対する傾斜角度、すなわち姿勢を検出するブーム角度検出器181、アーム角度検出器182、バケット角度検出器183、および旋回体角度検出器184を備える。これら各種角度検出器181~184としては、例えば慣性計測装置(IMU:Inertial Measurement Unit)が利用できる。本稿では角度検出器181~184を、フロント作業装置110及び上部旋回体131の姿勢を検出する姿勢検出器と称することがある。
【0016】
油圧ショベル100は、車体周囲の地形を検知して現況地形データ(後述の地形点群データ700)を生成する地形計測装置170を備えることができる。地形計測装置170は、例えば、ステレオカメラ、レーザースキャナ、ミリ波レーダ等の外界センサであり、油圧ショベル100の周囲の地形を計測することが可能である。
【0017】
また油圧ショベル100は、上部旋回体131の上面に設置された右アンテナと接続された右GNSS(Global Navigation Satellite System)受信機171と、同じく上部旋回体131の上面に設置された左アンテナと接続された左GNSS受信機172とを備える。右GNSS受信機171および左GNSS受信機172は、油圧ショベル100のはるか上空を飛行している複数のGNSS衛星(測位衛星)から出力される測位信号を受信することで、油圧ショベル100の位置を計測する測位装置である。
【0018】
[制御システム]
次に、本実施形態の油圧ショベル100に搭載された制御システムの概要を説明する。
図2は、油圧ショベル100の制御システムの一例を示す図である。
【0019】
油圧ショベル100は、エンジン143と、エンジン143によって駆動される油圧ポンプ142と、油圧ポンプ142から吐出された作動油の流量及び流通方向を操作レバー152の操作に応じて油圧アクチュエータごとに制御する複数のコントロールバルブ141と、地形データ(設計データ、現況地形データ、地形ブロックデータ等)を処理して出力する機能を有する情報コントローラ(第1コントローラ)161と、情報コントローラ161から出力される地形データを利用してフロント作業装置110の動作を制御する機能を有するメインコントローラ(第2コントローラ)162とを備える。オペレータが操作レバー152を操作すると、その操作情報はメインコントローラ162で制御信号に変換されて出力される。出力された制御信号は、油圧ポンプ142と、コントロールバルブ141を制御するパイロットバルブ(電磁比例弁)144と、エンジン143に適宜送られる。これら制御信号により、コントロールバルブ141を介して作動油が循環し、旋回モータ124と、右走行モータ125と、左走行モータ126と、ブームシリンダ121と、アームシリンダ122と、バケットシリンダ123とが駆動する。
【0020】
情報コントローラ(第1コントローラ)161は、処理装置であるCPU(Central Processing Unit)1611と、揮発性記憶装置であるRAM(Random Access Memory)1612と、ROM(Read Only Memory)1613と、外部インターフェース(外部I/Fと称することがある)1614などが、バス1615により互いに接続されたコンピュータである。外部I/F1614には、メインコントローラ162、モニタ153の画面を制御するモニタコントローラ156、地形データが記憶された不揮発性記憶装置155(ハードディスクドライブ(HDD)や大容量フラッシュメモリなどのストレージ)、管制センタ等に設置されたサーバ(図示せず)と双方向通信するための無線通信装置157、GNSS受信機171,172、角度検出器181~184、及び地形計測装置170が接続される。
【0021】
情報コントローラ161は、記憶装置(不揮発性記憶装置)155に記憶された地形データをRAM(揮発性記憶装置)1612に一時的に保存し、そのRAM(揮発性記憶装置)1612に保存された地形データを処理してメインコントローラ162やモニタコントローラ156(第2コントローラ)に出力する。記憶装置(不揮発性記憶装置)155には、設計データや現況地形データである地形データファイル300(
図6参照)と、地形データファイル300(地形データ)を所定のブロック単位で分割することで得られる複数の地形ブロックデータが格納される地形データベース158(以下、地形DB158と表記)と、車体パラメータ159とが記憶されている。地形DB158は、複数の地形データ形式(例えば後述するメッシュ形式、グリッド形式及びポイント形式)のうち予め定められた形式で定義された地形データと、それを変換したテーブル形式の地形データ(後述の
図7~9)を保持する。車体パラメータ159としては、ブーム111の長さ、アーム112の長さ、バケット113の大きさなどの油圧ショベル100に関する寸法値や、油圧ショベル100の最大旋回半径で定義される最大作業範囲等が保持されている。
【0022】
無線通信装置157は、無線LAN、Wi-Fi、Bluetooth(登録商標)、携帯電話回線などと接続する通信機器である。無線通信装置157、メインコントローラ162およびモニタコントローラ156は、情報コントローラ161から地形データが出力される複数の出力装置に相当する。
【0023】
メインコントローラ(第2コントローラ)162は、情報コントローラ161と同様のハードウェア構成(
図2参照)を備えたコンピュータであり、例えば、GNSS受信機(測位装置)171,172による上部旋回体131(車体)の計測位置と、情報コントローラ(第1コントローラ)162から出力される地形データ(複数の地形ブロックデータ)とを利用して、フロント作業装置110の動作を制御する機能を有する。本稿では当該機能による処理を地形データ利用処理と称することがある。
【0024】
例えばメインコントローラ162は、操作レバー152が操作されている間、フロント作業装置110(より具体的にはバケット113の爪先)が設計データで規定される設計面の上またはその上方に位置するように油圧シリンダ121,122,123を制御する領域制限制御(マシンコントロールとも称する)を実行する機能を有する。具体的には、メインコントローラ162は、操作レバー152の操作量からフロント作業装置110を駆動する油圧シリンダ121,122,123の動作速度を推定し、その推定速度に基づいてフロント作業装置110の先端に位置するバケット爪先の速度ベクトルを演算する。この速度ベクトルには、バケット爪先と設計面との距離がゼロに近づくほど、設計面に鉛直な方向における速度成分(垂直成分)がゼロになるような速度制限が設定されている。操作レバー152の操作量から推定されるバケット爪先の速度ベクトルの垂直成分がこの制限速度を超える場合には、メインコントローラ162は、ブームシリンダ121を制御するコントロールバルブ141を駆動するパイロットバルブ(電磁比例弁)144に対して制御信号を出力し、ブームシリンダ121のボトム側に作動油が供給されるようにすることで強制的(自動的)にブーム上げ動作を発動させ、実際のバケット爪先の速度ベクトルの垂直成分を制限速度に一致させる。これによりオペレータによってバケット爪先が設計面の下方に侵入するような操作が操作レバー152に入力された場合であっても、バケット爪先が設計面の下方に侵入することが防止され、バケット爪先を設計面に沿って移動させることができる。このようにメインコントローラ162では、地形データ(設計データ)はバケット爪先の速度ベクトルの垂直成分の制限値(制限速度)を演算する際に利用される。なお、上記ではバケット爪先の速度ベクトルが制限速度を超える場合にブーム上げ動作を強制的に発動させたが、設計面の下方へのバケット爪先の侵入を防止するようにバケットやアームの動作を強制的に発動させても良い。
【0025】
モニタコントローラ(第2コントローラ)156は、情報コントローラ161と同様のハードウェア構成を備えたコンピュータであり、例えば、GNSS受信機(測位装置)171,172による上部旋回体131(車体)の計測位置と、情報コントローラ(第1コントローラ)162から出力される地形データ(複数の地形ブロックデータ)とを利用してモニタ153の画面を制御する機能を有する。既述の通り、本稿では当該機能による処理を地形データ利用処理と称することがある。そして、地形データ利用処理を実行するコントローラ(メインコントローラ162及びモニタコントローラ156)を第2コントローラと称することがある。
【0026】
例えばモニタコントローラ156は、フロント作業装置110の姿勢と、油圧ショベル100の位置(車体位置)と、油圧ショベル100と設計面の位置関係と、フロント作業装置110の近傍における設計面の形状等をモニタ153に表示するガイダンス機能を有する。例えば、フロント作業装置110の姿勢は角度検出器181~184の検出値を情報コントローラ161から入力することで演算できる。油圧ショベル100の位置は受信機(測位装置)171,172の測位結果(演算結果)を情報コントローラ161から入力することで演算できる。フロント作業装置110の近傍における設計面の形状(断面形状)は、受信機171,172が演算した油圧ショベル100の位置と方位に基づいてフロント作業装置110の動作平面を演算し、その動作平面で情報コントローラ161から出力される地形ブロックデータを切断することで得られる。モニタ153には現況地形データを利用して現況地形の形状を表示しても良い。
【0027】
なお、本実施形態では、メインコントローラ162とモニタコントローラ156を個別に搭載したシステムを例示したが、メインコントローラ162とモニタコントローラ156の両者の機能を併有する単一のコントローラを利用しても良いし、その単一のコントローラに情報コントローラ161の機能をさらに追加しても良い。
【0028】
本実施形態の情報コントローラ161の機能の説明に先立ち、本実施形態で用いる座標系と、本実施形態の情報コントローラ161の動作概要を説明する。
【0029】
[座標系]
まず、本実施形態で用いる座標系について
図3、
図4を参照して説明する。
図3は、本実施形態で用いる車体座標系900の説明図である。また
図4は、車体座標系900、センサ座標系910およびサイト座標系(現場座標系)930の関係の説明図である。
【0030】
本実施形態では、
図3に示す下部走行体132に固定された車体座標系900、および
図4に示す、地形計測装置170に固定されたセンサ座標系910、および施工現場内に設けられた基準点を原点としたサイト座標系930を用いる。本実施形態においては、各座標系で示される物体の座標値は、最終的にはサイト座標系930に変換されるものとする。
【0031】
図3に示す車体座標系900は、下部走行体132が地面と接触する面と、油圧ショベル100の旋回中心軸とが交わる点を原点とし、水平面上にX軸とY軸とを取り、鉛直方向にZ軸を取る直交座標系である。本実施形態では、下部走行体132が進行する方向(Y軸)に対して左右にX軸をとり、水平面上でX軸に直交する方向をY軸とする。
【0032】
次に
図4を参照し、車体座標系900、センサ座標系910およびサイト座標系930の関係について説明する。
【0033】
まず、センサ座標系910と車体座標系900の関係について説明する。
図4において、任意の計測点920は、センサ座標系910上でPs(xs、ys、zs)と表され、車体座標系900上ではPv(xv、yv、zy)と表される。このときの関係式は、例えば以下の(式1)に表される。
【0034】
【0035】
Rsvはセンサ座標系910から車体座標系900への回転行列であり、αs、βs、γsは、それぞれセンサ座標系910と車体座標系900のX軸同士、Y軸同士、Z軸同士がなす角である。地形計測装置170が油圧ショベル100に固定されている場合、これらのなす角は、例えば、予め車体座標系900における地形計測装置170の姿勢を測定しておき、記憶装置155に事前に保存される。また、地形計測装置170が油圧ショベル100に対して姿勢を変化させながら地形計測を行う場合、地形計測装置170に姿勢計測センサを備え付けるなどして、姿勢計測センサが検出した角度を用いて座標変換行列を算出してもよい。
【0036】
Tsvは車体座標系900の原点からセンサ座標系910への並進ベクトルである。xt、yt、ztは、車体座標系900からみたセンサ座標系910の原点座標に等しい。地形計測装置170の取り付け位置は、油圧ショベル100に対して固定されている場合が多い。このことから、本実施形態では、予め地形計測装置170の油圧ショベル100への取り付け位置を計測しておき、この計測値を記憶装置155に事前に保存しておく。
【0037】
次に、車体座標系900とサイト座標系930への関係について説明する。
図4において、計測点920は、車体座標系900上でPv(xv、yv、zv)と表され、サイト座標系930上ではPg(xg、yg、zg)と表される。このときの関係式は、例えば下記の(式2)の通りに表される。
【0038】
【0039】
Rvgは車体座標系900からサイト座標系930への回転行列であり、θr、θp、θyは、それぞれ車体座標系900とサイト座標系930のX軸同士、Y軸同士、Z軸同士がなす角である。θrおよびθpは、例えば、上部旋回体131に備え付けられた旋回体角度検出器184が出力した、上部旋回体131の姿勢情報を用いる。また、θyは上部旋回体131に備え付けられた右GNSS受信機171および左GNSS受信機172が演算した測位データから算出される油圧ショベル100の方位を用いてもよい。油圧ショベル100の方位は、例えば、右GNSS受信機171の計測位置から左GNSS受信機172の計測位置に向かうベクトルから演算可能である。
【0040】
また、Tvgはサイト座標系930の原点から車体座標系900の原点へのベクトルである。x0、y0、z0はサイト座標系930からみた車体座標系900の原点座標に等しい。これらの値には、例えば、右GNSS受信機171および左GNSS受信機172が受信した測位データから算出した油圧ショベル100の位置を用いる。
【0041】
[概要]
次に、本実施形態の情報コントローラ161の動作概要および効果について説明する。ここでは、地形データ(地形データファイル300)を用いた処理(地形データ利用処理)が実行されるメインコントローラ162のアプリケーションの例として、3次元の設計データ(地形データ)を用いた領域制限制御による作業支援機能について説明する。まず、GNSS受信機171、172、及び角度検出器181~184から、油圧ショベル100のサイト座標系930での位置および姿勢を算出する。そして、算出された位置および姿勢からフロント作業装置110の動作平面を算出し、その動作平面と設計データの交線判定(動作平面による設計データの切断処理)を行うことでフロント作業装置110を領域制限制御するための目標となる設計データ(設計面)の断面形状を算出する。この時、断面形状を算出するためには、設計データから車体周囲のデータを抽出しない限り、設計データのすべてのメッシュデータに対して動作平面との交線判定を行う必要がある。そのため、設計データが広範囲にわたる場合、設計データのデータ量が増加するため、情報コントローラ161上での設計データの処理負荷が増大する。
【0042】
多くの場合、地形データをリアルタイムに処理するアプリケーションは、その作業機械の周辺の地形データがあれば十分である。一方で、各アプリケーションが施工現場全体の地形データから車体周囲のデータを抽出すると、各アプリケーションが同じ処理を行うため、複数のアプリケーションが搭載されている場合は情報コントローラ全体として非効率な地形データの処理となる。ゆえに、メインコントローラ162やモニタコントローラ156等で実行される様々なアプリケーションが車体周囲の地形データを要求する前に、情報コントローラ161内で予めデータ加工しておき、加工後のデータを各アプリケーションで共用できるような仕組みがあることが望ましい。
【0043】
そこで本実施形態では、油圧ショベル100の制御システムに搭載された各コントローラ161,156,162が地形データを用いてリアルタイムな処理(地形データ利用処理)を行う際に、情報コントローラ161が施工現場全体の地形データから車体周囲の地形データのみを抽出しておくことで、油圧ショベル100の制御システムにおける地形データの処理効率を向上させる。
【0044】
図5は第1の実施形態の概要を示した説明図である。この図に示すように、本実施形態では、情報コントローラ161は、地形データファイル300として記憶装置155に格納されている施工現場全体の地形データ500を、サイト座標系930に設定した格子領域600のブロックに基づいて格子状に分割して複数の地形ブロックデータに変換し、それを地形DB158に格納する。そして、サイト座標系930における油圧ショベル100の位置情報をもとに、車体位置及びその周囲に位置する複数の地形ブロックデータを地形DB158(不揮発性記憶装置)からデータ読込が速いRAM1612(揮発性記憶装置)上へデータを抽出する。この操作を作業機械の作業支援機能などのアプリケーションが地形データを要求する前に行うことで、施工現場全体に渡る地形データ500を保持している際も、無駄な領域の地形データに対して処理を行うことがなくなり、情報コントローラ161上での地形データの処理効率が向上する。
【0045】
格子領域600を構成する最小単位(ブロック単位)は四角形(正方形)状の格子であり、本稿ではこれをブロックと称することがある。ただし、ブロックの形状は図示した四角形に限らず三角形や六角形等も利用できる。各ブロックは、油圧ショベル100の最大作業範囲に包含され得る大きさ、かつ、車体130(下部走行体132及び上部旋回体131)を包含し得る大きさで定義されている。最大作業範囲は、フロント作業装置110を最大限伸ばした状態で上部旋回体131を旋回したときにフロント作業装置110の先端が描く円によって定義される領域である。なお、最大作業範囲の半径が油圧ショベル110の最大旋回半径となる。各ブロックのサイズは同一にしても良いし、異ならせても良い。
【0046】
[データ出力領域310,データ保持領域320]
本実施形態では、ストレージ155等の不揮発性記憶装置に記憶された施工現場全体の地形データ500のうち、地形データを利用するアプリケーションを実行するコントローラ(例えば,メインコントローラ162やモニタコントローラ156)に出力される地形ブロックデータの範囲を示す領域を「データ出力領域310」と称する。データ出力領域310は、車体130が位置するブロック(格子領域600の最小単位)を含み、後述のデータ保持領域320に内包された複数のブロックによって定義された所定の領域である。データ出力領域310は、車体130が位置するブロックを基準とした複数のブロックの配置パターンによって定義されている。本実施形態では、データ出力領域310を適切に設定することで、メインコントローラ162やモニタコントローラ156が油圧ショベル100の車体周囲の地形データを効率よく取得することが可能である。
【0047】
また、ストレージ155等の不揮発性記憶装置に記憶された施工現場全体の地形データ500のうち、情報コントローラ161内のRAM1612(揮発性記憶装置)に保存される地形ブロックデータの範囲を示す領域を「データ保持領域320」と称する。データ保持領域320は、車体130が位置するブロックを含む複数のブロックによって定義された所定の領域であり、データ出力領域310を内包している。すなわち、データ保持領域320の面積(ブロック数)はデータ出力領域310の面積(ブロック数)よりも広い(多い)。
【0048】
[情報コントローラ161]
以下、上記のような地形データ管理を実現する第1の実施形態の情報コントローラ161について説明する。
図6は第1の実施形態の情報コントローラ161の機能ブロック図である。情報コントローラ161は、ROM1613やストレージ155等の記憶装置に記憶されたプログラムをCPU1611がRAM1612にロードして実行することで、地形データ変換部210、領域算出部220、機械状態取得部230、地形データ出力部260および地形データ抽出部270として機能する。情報コントローラ161は、地形DB158に格納されている地形ブロックデータと、サイト座標系930における油圧ショベル100(車体130)の位置情報とから、車体周囲の地形データをメインコントローラ162、モニタコントローラ156や無線通信装置157(サーバ)に出力する。なお、情報コントローラ161が、ASIC(Application Specific Integrated Circuit)、FPGA(field-programmable gate array)などの集積回路を有している場合、
図6に示す一部または全部の機能は、これら集積回路によって実現されてもよい。また、各部の処理に用いる各種のデータ、および処理中に生成される各種のデータは、RAM1612または記憶装置155に格納される。
【0049】
[機械状態取得部230]
機械状態取得部230は、サイト座標系930における車体130(上部旋回体131)の位置及び方位と、フロント作業装置110を含む油圧ショベル100のサイト座標系930における姿勢と、サイト座標系930におけるフロント作業装置110の先端(バケット爪先)の位置を算出する部分である。本稿では、これら車体130(上部旋回体131)の位置及び方位と、油圧ショベルの姿勢と、バケット爪先位置とを機械状態と称することがある。車体130(上部旋回体131)の位置及び方位は、GNSS受信機(測位装置)171,172の測位結果から演算可能である。また、油圧ショベル100の姿勢は、ブーム角度検出器181、アーム角度検出器182、バケット角度検出器183、および旋回体角度検出器184の検出値から演算可能である。バケット爪先位置は、車体130の位置及び方位と、フロント作業装置110を含む油圧ショベル100の姿勢とを組み合わせることで演算可能である。機械状態取得部230による演算結果は、記憶装置155又はRMA1612に保存され、地形データ抽出部270をはじめとする各所に出力され得る。機械状態取得部230の処理は、例えば、GNSS受信機171および172から測位結果が入力された際に開始できる。
【0050】
[データ形式]
次に、
図7~9を用いて情報コントローラ161で扱われ得る地形データ(地形データファイル)の形式について説明する。本実施形態では、地形データの具体例としてメッシュ形式の地形データ、グリッド形式の地形データ、ポイント形式の地形データについて述べる。
【0051】
図7はメッシュ形式の地形データの例を示した説明図である。本実施形態においてメッシュ形式(三角メッシュ形式)の地形データは
図7(a)が示すように、頂点を線でつないだ三角形の面として保持する形式を指す。この様なメッシュデータは
図7(b)が示すように、X、Y、Z座標値(例えば、x(1),y(1),z(1))および点番号(例えば、1,2,3)からなる点情報と、面をなす3つの点番号(例えば、v1(1),v2(1),v3(1))の組み合わせと要素番号(例えば、1,2,3)からなる要素情報で構成される形式で表すことができる。本実施形態では、後述する地形データ変換部210の処理によって、このメッシュ形式の地形データファイル520を
図7(c)に示すようなメッシュ形式の地形データテーブル530に変換し地形データ管理を行う。メッシュ形式の地形データのデータテーブルは、例えば、三角形要素を構成する3点のサイト座標系930の座標値である(X1、Y1、Z1)、(X2、Y2、Z2)、(X3、Y3、Z3)、格子領域600において三角形要素が属するブロックの識別子(ブロック識別子)IDxとIDy、および三角形要素が後述する作業領域350に含まれるか否かの判定に用いるFlag情報を一行のデータとして管理する。なお、Flag情報が1の場合には該当する三角形要素は作業領域350に含まれ、0の場合には作業領域350に含まれない。
【0052】
図8はグリッド形式の地形データの例を示した説明図である。本実施形態においてグリッド形式の地形データは、
図8(a)が示すような格子状に分割された各領域に対して、その領域の高さの代表値を保持する形式を指す。この様なグリッド形式のデータでは、
図8(b)が示すように、予め大きさが規定された正方形の格子で格子領域600の1ブロックをさらに分割しており、格子領域600の1ブロックに含まれる複数の格子(
図8の場合はn×n個)をひとまとまりとしてデータを管理している。本実施形態では、後述する地形データ変換部210の処理によって、このグリッド形式の地形データファイル550を
図8(c)に示すようなグリッド形式の地形データテーブル560に変換し地形データ管理を行う。グリッド形式の地形データのデータテーブルは、例えば、n×nのグリッドのそれぞれの高さ、n×nのグリッドが属する格子領域600のブロックの識別子IDxおよびIDyと、作業領域350に含まれているか否かの判別に用いるFlag情報を付与し、一行のデータとして管理する。
【0053】
図9はポイント形式の地形データの例を示した説明図である。本実施形態において、ポイント形式の地形データは
図9(a)に示すような複数の点の集合データを指す。この様なポイント形式の地形データは
図9(b)に示すように、各点のX、Y、Z座標値(例えば、x(1),y(1),z(1))および点番号(例えば、v1(1),v2(1),v3(1))からなる点情報で構成される形式で表すことができる。本実施形態では、後述する地形データ変換部210の処理によって、このポイント形式の地形データ580を
図9(c)に示すようなポイント形式の地形データテーブル590に変換し地形データ管理を行う。ポイント形式の地形データのデータテーブルは、例えば、各ポイントの座標値(X、Y、Z)、格子領域600において各ポイントが属するブロックの識別子IDxおよびIDy、および各ポイントが作業領域350に含まれるか否かの判別に用いるFlag情報を一行のデータとして管理する。
【0054】
なお、地形データの形式は上記の3つに限られず、後述される情報コントローラ161の処理は、様々な地形データ形式に適応可能である。
【0055】
[地形データ変換部210]
地形データ変換部210は、記憶装置155(不揮発性記憶装置)から地形データファイル300(地形データ)を読み出し、その読み出した地形データファイル300(地形データ)を所定のブロック単位(格子領域600の最小単位)で分割することで複数の地形ブロックデータに変換し、その変換後の複数の地形ブロックデータを記憶装置155(不揮発性記憶装置)内の地形DB158に記憶する。地形データ変換部210は、
図7~
図9で示したような地形データ形式で表される地形データファイル300を各々の形式に応じたテーブル形式の地形ブロックデータに変換し、地形DB158に保存する。地形データ変換部210の処理は、例えば、新しい地形データファイル300が、無線通信や、外部記憶装置を通じて情報コントローラ上に入力された際や、オペレータがこれから作業に用いる地形データを選択した際に開始する。
【0056】
以下、
図10を用いて上記3つ形式(メッシュ形式、グリッド形式、ポイント形式)の地形データを複数の地形ブロックデータに変換する方法について述べる。
図10は地形データ変換処理の概要を示す説明図である。
【0057】
まず、メッシュ形式の地形データ510の変換方法について述べる。
図7(b)に示されるメッシュ形式の地形データファイル520は、
図7(c)に示されるようなメッシュ形式の地形データテーブル530に変換される。データテーブルへの変換は次のようにして行う。まず
図10(a)に示されるようにメッシュ形式の地形データ520全体を覆うようなブロックの一辺がLの格子領域600を設定する。この時の格子領域600の範囲は、例えば、メッシュ形式の地形データのX、Yの座標値の最大および最小値を用いて設定する。本実施形態では、また、格子領域600を構成するブロックの一辺の長さLはメッシュ形式の地形データ520の各要素(三角形)の大きさを考慮し、ブロックの大きさがメッシュ形式の地形データの各要素よりも大きくなるように設定することが望ましい。格子領域600の各ブロックには固有の識別子(ブロック識別子)を付与する。本実施形態では、ブロックに対してサイト座標系930におけるX方向、Y方向に対応した識別子IDxおよびIDyを付与し、2つの識別子を用いてブロックを特定することとする。IDxおよびIDyの算出方法は特に指定しないが、本実施形態では、識別子をブロックの左上の座標値(Xleft、Yup)の値で定義することとする。すなわち下記(式3)の通りである。
【0058】
【0059】
そして、メッシュの要素毎に格子領域600のどのブロックに属するかを判別する。メッシュ形式の地形データの各要素のブロックへの割り当ては、例えば、三角形の重心が位置するブロックに対して行う。
図10(a)の左上に1つのブロックに対応するメッシュ形式の地形ブロックデータの一例を示す。
【0060】
次に、グリッド形式の地形データ540のデータテーブルへの変換方法について述べる。
図8(b)に示されるグリッド形式の地形データ550は、
図8(c)に示されるようなグリッド形式の地形データテーブル560に変換される。グリッド形式の地形データは
図8(b)に示した画像のような矩形のデータとして保持できる。格子領域600のブロックの一辺の長さLと各ブロックの一辺に含まれるデータの数nは、地形データを活用するアプリケーションが要求する地形データへの分解能に応じて設定することが望ましい。また、各ブロックへの割り当てはこのn×n個のデータ毎に行う。
図10(b)の左上に1つのブロックに対応するグリッド形式の地形ブロックデータの一例を示す。
【0061】
次にポイント形式の地形データ570のデータテーブルへの変換方法について述べる。
図9(b)に示されるポイント形式の地形データ570は
図9(c)に示されるようなポイント形式のデータテーブル590に変換される。ブロックの一辺の長さLは、例えば、油圧ショベル100の作業範囲の大きさを考慮して決定する。また、各ポイントのブロックへの割り当ては、
図10(c)に示されるように各ポイントが内包されるブロックに対して行う。
図10(c)の左上に1つのブロックに対応するポイント形式の地形ブロックデータの一例を示す。
【0062】
以下では、地形データの形式が
図7や
図10(a)に示したメッシュ形式の場合を例に説明する。
【0063】
[領域算出部220]
領域算出部220は、データ出力領域310と、作業領域350と、データ保持領域320の算出(設定)を行う。領域算出部220による領域算出処理は、例えば、油圧ショベル100の電源が起動された際や、特定の作業支援機能を使用し始める際に開始できる。次に、
図11~14を用いて領域算出部220の処理について述べる。
【0064】
・データ出力領域310と作業領域350の設定
図11を用いて、(a),(b)データ出力領域310の設定と、(c)作業領域350が設定されている場合のデータ出力領域310とについて説明する。本実施形態では、データ出力領域310の設定方法として複数の方法を選択でき、具体的には
図11(a)に示した油圧ショベル100の車体パラメータ159を用いて設定する方法と、同(b)に示したモニタ153を介してオペレータが任意に設定する方法がある。
【0065】
(a)車体パラメータ159を用いてデータ出力領域310を設定する方法では、記憶装置155に保存されている車体パラメータ159を用いてデータ出力領域(第1データ出力領域)310を設定する。データ出力領域310の大きさは、例えば、
図11(a)に示すように油圧ショベル100の静止状態での作業可能な範囲を考慮して、最大作業範囲370を包含可能な大きさを設定する。なお最大作業範囲370は車体パラメータ159として記憶されている最大作業半径から演算可能である。なお、データ出力領域310の一辺の大きさは、後述するデータ管理をするうえで、格子領域600のブロックの一辺の大きさLの奇数倍とすることが望ましい。この様に設定することで、情報コントローラ161は、油圧ショベル100の掘削可能範囲の地形データを効率よく出力することが出来る。
【0066】
(b)モニタ153を介してオペレータがデータ出力領域310を設定する方法では、油圧ショベル100のオペレータが、運転室151内に設置されたモニタ153を介してデータ出力領域(第2データ出力領域)310を設定する。
図12にモニタ153を介してデータ出力領域310を設定する際のモニタ画面例を示す。モニタ153を介したデータ出力領域310の設定は、例えば、
図12に示すように、データ出力領域310の縦、横方向の長さを入力して行う。なお、データ出力領域310の一辺の大きさは、後述するデータ管理方法の都合上、格子領域600のブロックの一辺の大きさLの奇数倍となることが望ましい。また、入力値がLの整数倍とならない場合は、入力値と一番近い値でLの整数倍になるよう調整を行う等の処置をとることができる。この設定方法は、例えば、道路の側溝の形成など一方向に長い領域で作業を行う際に適している。ショベルの移動方向に沿って細長くデータ出力領域を設定することで、情報コントローラ161は、作業に合った最適な範囲の地形データを出力できる。
【0067】
次に(c)無線通信装置157を介して施工管理者(サーバ)が作業領域350を設定している場合のデータ出力領域について説明する。作業領域350は、施工現場内で作業機械ごとに設定される所定の領域であり、施工現場全体の地形データ500の一部に対して設定され得る。
図13に無線通信装置157を介してサーバから送信される作業領域350のデータ形式の一例を示す。作業領域350の輪郭380は、例えば
図13(a)に示すような複数の点で定義できる。輪郭380は、
図13(b)に示す作業領域データテーブル360のように、輪郭380を構成する各点のサイト座標系930での座標値(Xw、Yw、Zw)と点番号Noで構成される。作業領域350は、施工現場に複数台の作業機械が稼働する場合、各々の機械に対して設定することが出来る。作業機械に作業領域350を設定することで、情報コントローラ161は、
図11(c)の右側に示すように、(a)または(b)の方法で設定したデータ出力領域310と作業領域350の共通部分となる斜線領域に属する地形ブロックデータを最終的に出力できる。例えば、同じ施工現場で稼働する複数の作業機械に互いに異なる作業領域350を設定すれば、各作業機械の作業領域が明確になり、他の作業機械に割り当てられた作業領域で作業することが回避できる。
【0068】
作業領域350が設定された際、領域算出部220は、地形DB158に格納されている地形データテーブル530,560,590(
図7,8,9)に対してFlag情報を付加する。
図14を用いて作業領域350が設定された際の地形データテーブルへのFlag情報の割り当て方法について示す。
図14はFlag情報による作業領域350の割り当て方法を説明する図である。作業領域350が設定された際、地形データ500において作業領域350と共通部分を持つすべてのブロックを探索する。そして、地形データテーブル内で、そのブロックの識別子を持つ地形データの要素のFlag情報を1に設定し、作業領域350が含まれない領域を0と設定し、作業領域350の割り当てを行う。この処理の結果、
図14の下に示したような作業領域350に設定された格子領域350Aが作成される。
【0069】
次に、
図15を用いて、領域算出部220が実行するデータ出力領域310及び作業領域350の設定処理の流れについて述べる。
図15は領域算出部220が実行するデータ出力領域310及び作業領域350の設定処理のフローチャートである。
【0070】
<ステップ1501>
まず、領域算出部220は、モニタ153を介してオペレータからデータ出力領域310の入力があるか否かを判定する。入力があると判定された場合、ステップ1502に進む。モニタ153からの入力がない場合、領域算出部220は、ステップ1503に進む。
【0071】
<ステップ1502>
領域算出部220は、モニタ153より入力された値に基づいてデータ出力領域310を設定し、ステップ1504に進む。
【0072】
<ステップ1503>
領域算出部220は、車体パラメータ159(最大作業範囲)を用いてデータ出力領域310を設定し、ステップ1504に進む。
【0073】
<ステップ1504>
領域算出部220は、無線通信装置157を介した作業領域350の設定指示の入力が有るか否かを判定する。作業領域350の設定指示の入力がある場合、ステップ1505に進む。作業領域350の設定指示の入力が無い場合、処理を終了する。
【0074】
<ステップ1505>
領域算出部220は、入力した設定指示に基づいて作業領域350の地形データテーブルへの割り付け(Flag情報の割り付け)を行い、処理を終了する。
【0075】
・データ保持領域320の設定
領域算出部220は、地形ブロックデータを管理するために、後述する
図16(a)に示すように、
図15で設定したデータ出力領域310の上下左右に1ブロックずつ加えた領域をデータ保持領域320として設定する。データ保持領域320の設定処理は、
図15においてデータ出力領域310を設定するステップ1502,1503で実行しても良い。
【0076】
[地形データ抽出部270]
地形データ抽出部270は、領域算出部220で算出されたデータ保持領域320と、機械状態取得部230で取得された車体130の位置とに基づいて、記憶装置(不揮発性記憶装置)155内の地形DB158に記憶された複数の地形ブロックデータのうち、車体130の位置を基準としたデータ保持領域320に属する地形ブロックデータをRAM1612(揮発性記憶装置)に記憶する処理を行う部分である。
【0077】
図16~19を用いて地形データ抽出部270の処理について説明する。
図16は情報コントローラ161における地形ブロックデータの管理方法について説明する図である。
図16(a)のデータ保持領域320は5×5のブロック610で規定されている。ここではデータ保持領域320に含まれる25個の地形ブロックデータ(ブロック)の位置(アドレス)を、Y方向に設定した5つのアルファベット(A,B,C,D,E)と、X方向に設定した5つの数字(1,2,3,4,5)の組合せで特定する。地形データ抽出部270は、データ保持領域320に属する25個の地形ブロックデータを記憶装置155からRAM1612上に出力する。このようにデータ保持領域320をRAM1612上で管理すると、例えば後述する
図17のステップ1705の処理中(すなわち油圧ショベル100によるブロックの移動が生じた場合)に、地形データを必要とするアプリケーションがデータ出力領域310に属する地形ブロックデータを要求した際、すでにRAM1612上に存在する地形ブロックデータを出力することが出来るので、アプリケーションの地形データ要求に対して高速にデータを出力できる。
【0078】
地形データ抽出部270によってRAM1612に保存されたデータ保持領域320内のデータは、
図16(b)に示すようなブロック管理テーブル620によって管理される。ブロック管理テーブル620は、データ保持領域320と同数の行数、列数を有するデータテーブルであり、テーブル内の各セルには該当するブロックの地形ブロックデータが保持されているRMA1612のアドレス情報が格納されている。例えば、データ保持領域320の左上に位置するA1の地形ブロックデータは、RAM1612内で1番(/mem_1)のメモリアドレスに格納されている。すなわちブロック管理テーブル620は、データ保持領域320に属する地形ブロックデータがRAM1612内のどのメモリアドレスに格納されているかを対応づける役割、換言すれば、RAM1612の各メモリアドレスに格納された地形ブロックデータがデータ保持領域320内のどのブロックのものであるかを対応づける役割を有する。以降では、
図16が示す様に、データ出力領域310が3行3列、データ保持領域320が5行5列であるとして説明する。
【0079】
地形データ抽出部270では、サイト座標系における油圧ショベル100の位置を、ブロックの識別子(ブロック識別子:IDxおよびIDy)によって管理しており、油圧ショベル100が位置するブロック識別子を記憶装置155やRAM1612等に保存する。そして、油圧ショベル100の位置を示すブロック識別子が変更される度に、油圧ショベル100の移動方向に応じて、RAM1612内の地形ブロックデータの更新およびブロック管理テーブル620の更新を行う。なお、本実施形態では、地形データ抽出部270の処理は、機械状態取得部230からの入力があった際に行うものとする。
【0080】
次に、
図17を用いて地形データ抽出部270の処理の流れについて説明する。
図17は地形データ抽出部270のフローチャートである。
【0081】
<ステップ1701>
まず、地形データ抽出部270は、格子領域600における油圧ショベル100の位置を示すブロックの識別子データ(ブロック識別子データ)がRAM1612上に存在するか否かを判定する。ブロック識別子データとは、1サイクル前のステップS1702の処理において、機械状態取得部230が出力した油圧ショベル100のサイト座標系930での位置情報を、対応するブロックの識別子IDx,IDyに変換したものである。このブロック識別子は、後述するステップ1706において、現在のサイクルにおけるブロック識別子情報に更新されてRAM1612上に保存される。ブロック識別子がRAM1612上に存在している場合、地形データ抽出部270はステップ1702に進む。ブロック識別子がRAM1612上に存在しない場合、地形データ抽出部270はステップ1703に進む。
【0082】
<ステップ1702>
地形データ抽出部270は、油圧ショベル100のブロック識別子データIDx,IDyをRAM1612から読み込みステップ1704に進む。
【0083】
<ステップ1703>
地形データ抽出部270は、機械状態取得部230から現在の車体位置を取得し、その車体位置を基準としたデータ保持領域320の範囲に属する地形ブロックデータを地形DB158から抽出してRAM1612上に保存する。また、
図16(b)の示すような、RAM1612上に保存した地形ブロックデータのメモリアドレスを格納したブロック管理テーブル620を作成してRAM1612上に保存し、ステップ1706に進む。
【0084】
<ステップ1704>
地形データ抽出部270は、ステップ1702で読み込んだ1サイクル前のブロック識別子IDxおよびIDyの値をもとに油圧ショベル100の移動判定を行う。すなわち、油圧ショベル100の車体130が位置するブロックが変化したか否かを判定する処理を行う。
図18を用いて移動判定処理について説明する。
図18はステップ1704の移動判定の処理を説明する図である。
【0085】
油圧ショベル100の移動判定には、ステップ1702で取得した1ステップ前で作業機械が存在したブロック識別子と、機械状態取得部230が算出した現在の油圧ショベル100の位置座標(Xpos、Ypos)とを用いる。まず、上記の(式3)を利用して、ブロック識別子からブロックの左上の頂点座標(Xleft、Yup)を算出する。そして(Xpos、Ypos)と(Xleft、Yup)の位置関係により移動方向を算出する。
【0086】
(1)(Xpos、Ypos)と(Xleft、Yup)の位置関係がXleft ≦ Xpos < Xleft+LかつYup-L < Ypos ≦ Yupである場合、地形データ抽出部270は、油圧ショベル100のブロックの移動は無いと判定し、ステップ1706に進む。
【0087】
(2)(Xpos、Ypos)と(Xleft、Yup)の位置関係がXleft+L<Xposである場合、地形データ抽出部270は、油圧ショベル100はX軸正方向にブロックを移動したと判定してステップ1705に進む。
【0088】
(3)(Xpos、Ypos)と(Xleft、Yup)の位置関係がXlef-Lt≧Xposである場合、地形データ抽出部270は、油圧ショベル100はX軸負方向にブロックを移動したと判定してステップ1705に進む。
【0089】
(4)(Xpos、Ypos)と(Xleft、Yup)の位置関係がYup+L<Yposである場合、地形データ抽出部270は、油圧ショベル100はY軸正方向にブロックを移動したと判定してステップ1705に進む。
【0090】
(5)(Xpos、Ypos)と(Xleft、Yup)の位置関係がYup-L≧Yposである場合、地形データ抽出部270は、油圧ショベル100はY軸負方向にブロックを移動したと判定してステップ1705に進む。
【0091】
<ステップ1705>
地形データ抽出部270は、ステップ1704で車体130が位置するブロックが変化したと判定された場合、ステップ1704の際に車体130が位置するブロックを基準としてデータ保持領域320を変更し、その変更後のデータ保持領域320に属する地形ブロックデータをRAM1612に記憶する。具体的には、地形データ抽出部270は、ステップ1704で判定した移動方向に応じてRAM1612上に保存されている地形ブロックデータおよびブロック管理テーブル620の更新を行う。ここでは一例として、ステップ1704において、油圧ショベル100が右方向に1ブロック移動した場合の更新処理について説明する。
【0092】
図19はステップ1705の地形データ更新処理を説明する図である。ここでは、現在の地形データ抽出部270の処理をt=tn、1サイクル前の地形データ抽出部270の処理をt=tn-1として説明する。油圧ショベル100がt=tn-1からt=tnにかけて右方向(X軸正方向)へ1ブロック移動した場合、t=tn-1におけるデータ保持領域320の1列目(1Aから1E)の地形ブロックデータが不要となり、t=tnにおけるデータ保持領域320において着色した5列目(5Aから5E)の地形ブロックデータを地形DB158から新たに抽出する必要がある。そこで、t=tn-1におけるブロック管理テーブル620の1列目(1Aから1E)の5つのメモリアドレス(/mem_1,6,11,16,21)に格納されている地形ブロックデータをt=tnにおいて新たに必要となるデータ保持領域320の5列目(5Aから5E)の地形ブロックデータに更新する。さらに、1ブロック移動後のt=tnのブロック配置に対応するように、ブロック管理データ620に格納されているメモリアドレスの配置を変更する。具体的には、
図19中の矢印が示すように、t=tn-1におけるブロック管理テーブル620の1列目(1Aから1E)の5つのメモリアドレス(/mem_1,6,11,16,21)をt=tnのブロック管理テーブル620における5列目(5Aから5E)に格納し、t=tn-1における2~5列目(2Aから2E,3Aから3E,4Aから4E,5Aから5E)に格納されているメモリアドレスをt=tnのブロック管理テーブルの1~4列目に格納する。すなわち、油圧ショベル100が右側に1ブロック移動しても、t=tn-1におけるデータ保持領域320の2~5列目の地形ブロックデータについては、地形ブロックデータを改めて地形DBからRAM1612に読み込むことなく、ブロック管理テーブル620のメモリアドレスを変更するだけで対応でき、情報コントローラ161の処理効率を向上できる。
【0093】
油圧ショベル100がX軸の負方向、Y軸の正方向及び負方向に移動した際も同様な処理を行うことで地形データ更新処理を行う。以上のデータ更新処理を行った後、地形データ抽出部270はステップ1706に進む。
【0094】
<ステップ1706>
地形データ抽出部250は、ステップ1702で呼び出した1サイクル前の油圧ショベル100の位置を示すブロック識別子情報を、ステップ1703または1704で機械状態取得部230から取得した現在の車体位置を示すブロック識別子情報に更新し、地形データ抽出部270の処理を終了する。
【0095】
[地形データ出力部260]
地形データ出力部260は、地形データ抽出部270によってRAM1612(揮発性記憶装置)に記憶された地形ブロックデータのうちデータ出力領域310に属する地形ブロックデータをモニタコントローラ156やメインコントローラ162等の地形データを利用するアプリケーションが実行されるコントローラに出力する部分である。
【0096】
図20を用いて、地形データ出力部260の処理について述べる。地形データ出力部260は、地形データ抽出部270がRAM1612上に保存したデータ保持領域320内の地形データおよびブロック管理テーブル620を呼出し、その内のデータ出力領域310のデータのみを抽出し、モニタコントローラ156やメインコントローラ162に出力する。
図20は地形データ出力部260のフローチャートである。
【0097】
<ステップ2001>
まず、地形データ出力部260は、RAM1612からブロック管理テーブル620を呼出し、ステップ2002に進む。
【0098】
<ステップ2002>
地形データ出力部260は、ステップ2001で読み出したブロック管理テーブル620からデータ出力領域310に割り当てられているブロックのメモリアドレスを抽出する。
図16(b)で示されたブロック管理テーブル620の場合、データ出力領域310に割り当てられているブロックの地形ブロックデータは2B~2D、3B~3D、4B~4Dに格納された9個のメモリアドレスに存在する。
【0099】
<ステップ2003>
地形データ出力部260は、ステップ2002で読み出したメモリアドレスに格納されている地形ブロックデータを読み出し、モニタコントローラ156やメインコントローラ162に出力して処理を終了する。
【0100】
[作業領域350]
作業領域350の設定に伴う地形データの処理効率の向上効果について説明する。
【0101】
作業領域350が設定されている場合の地形データの取り扱いとして、地形データ抽出部270がデータ保持領域320に属する地形ブロックデータをRAM1612に保存する際、地形データテーブルのFlag情報を参照しながらRAM1612への保存対象を作業領域350に含まれる地形ブロックデータのみに限定する方法がある。すなわちこの方法は、領域算出部220が、施工現場内で作業機械ごとに設定された作業領域350を無線通信装置157を介してサーバから入力した場合には、地形データ抽出部270は、記憶装置155(不揮発性記憶装置)に記憶された複数の地形ブロックデータのうち作業領域350とデータ保持領域320の双方に属する地形ブロックデータをRAM1612(揮発性記憶装置)に記憶する方法である。このようにRAM1612に記憶する地形ブロックデータを作業領域350とデータ保持領域320の双方に属するものに限定すると、RAM1612のメモリ消費量を抑制でき、情報コントローラ161における地形データの処理効率を向上できる。
【0102】
また、作業領域350が設定されている場合の地形データの他の取り扱いとして、地形データ出力部260がRAM1612に保存されているデータ保持領域320に属する地形ブロックデータを情報コントローラ161の外部に出力する際、その出力対象を作業領域350に含まれる地形ブロックデータのみに限定する方法がある。すなわちこの方法は、領域算出部220が、作業領域350を無線通信装置157を介してサーバから入力した場合には、地形データ出力部260は、RAM1612(揮発性記憶装置)に記憶された複数の地形ブロックデータのうち作業領域350とデータ出力領域310の双方に属する地形ブロックデータをメインコントローラ162やモニタコントローラ156(第2コントローラ)に出力する方法である。
【0103】
[地形データの利用例]
図21は、情報コントローラ161から出力された地形ブロックデータを利用して、モニタコントローラ156が油圧ショベル100と設計面の位置関係をモニタ153に出力した結果(表示画面)の例を示す図である。
図21(a)はメッシュ形式の地形データを表示した場合を、
図21(b)はグリッド形式の地形データを表示した場合を、
図21(C)はポイント形式の地形データを表示した場合を示している。
【0104】
また、本実施形態は、次のようなアプリケーションのデータ処理効率を向上できる。
図22に本実施形態を用いたアプリケーション例を示す。
図22(a)はメッシュ形式の地形データを用いたアプリケーション例を、
図22(b)はグリッドまたはポイント形式の地形データを用いたアプリケーションの例を示す。
【0105】
メッシュ形式の地形データを用いたアプリケーションとして、
図22(a)に示すような、メインコントローラ162で実行される領域制限制御を用いた作業支援機能が挙げられる。この機能では、地形データから、油圧ショベル100のフロント作業装置110の中心を通る動作平面に沿った断面を生成し、この断面に沿ってフロント作業装置110の動作制御を行うことで、効率よい施工を行うことが出来る。この地形データから断面データ460を生成する際に、本発明を用いることで、施工現場全体から断面を探索する代わりに、車体周囲の地形データのみから断面算出する事が可能となるため、メインコントローラ162による地形データの処理効率が向上する。
【0106】
また、
図22(b)が示すようにカメラを取り付けた無人航空機(UAV:Unmanned Aerial Vehicle)950や、油圧ショベル100に搭載したステレオカメラやレーザースキャナ(地形計測装置170)を用いて計測した施工現場の現況地形をグリッド形式またはポイント形式のデータの地形データとして保持している場合、本実施形態を適用すれば、車体周囲の現況地形のみを抽出する事が可能となり、例えば、油圧ショベル100を自動掘削・積み込みさせる際の自律移動用の経路生成を情報コントローラ161内で効率よく行うことが可能となる。
【0107】
[効果]
上記のように構成した情報コントローラ161によれば、サイト全体にわたる地形データから、車体130の周囲に設定されたデータ出力領域310に属する地形ブロックデータのみが抽出されてモニタコントローラ156に出力されるので、モニタコントローラ156はデータ出力領域310に属する地形データのみを利用してモニタ153の表示画面を生成できる(地形データ利用処理を実行できる)。地形データをリアルタイムに処理する際に、本実施形態のように施工現場の地形データ(地形ブロックデータに変換する前の地形データ)からデータ出力領域310に属する地形ブロックデータのみを抽出して処理対象の地形データを車体周囲のみに限定すると、情報コントローラ161上での地形データの処理効率が向上する。
【0108】
また、情報コントローラ161のRAM1612上にデータ保持領域320に属する地形データのみを保存しておくことで、単一のアプリケーションだけでなく、複数のアプリケーションが車体周囲の地形データのみを取り込むことが出来るようになるため、情報コントローラ161内に複数のアプリケーションが実装されている際も、情報コントローラ161内の地形データ処理効率が向上する。特に、本実施形態のデータ保持領域320は、データ出力領域310を上下左右に1ブロックずつ拡大したものに相当し、油圧ショベル100が1ブロック分移動した場合にもデータ出力領域310に含まれる地形データは全てRAM1612に保存されているため、油圧ショベル100の移動により必要になった地形ブロックデータを速やかに出力できる点もメリットである。
【0109】
また、地形データの出力先のコントローラ(地形データ利用処理が行われるモニタコントローラ156及びメインコントローラ162)においても、処理対象の地形データの範囲が限定されるので地形データの処理効率が向上する。
【0110】
(第2実施形態)
次に本発明の第2の実施形態について説明する。本実施形態の情報コントローラ161は油圧ショベル100の作業状態に応じて地形データ管理方法を変更する点に特徴がある。以下では、第1の実施形態との相違点について、具体的には、油圧ショベル100の作業状態を考慮した際の機能ブロック図、作業判定部240の処理、および作業判定部240から出力される作業判定情報を用いた地形データ抽出部270による地形データ抽出方法について述べる。
【0111】
[機能ブロック]
図23に第2実施形態に係る情報コントローラ161の機能ブロックを示す。実施形態2における情報コントローラ161は、地形データ変換部210、領域算出部220、機械状態取得部230、地形データ出力部260、及び地形データ抽出部270に加え、作業判定部240として機能する。
【0112】
以下、第2実施形態において新たに追加された作業判定部240の機能、および作業判定部240の出力結果を用いた地形データ抽出部270の処理について述べる。
【0113】
[作業判定部240]
作業判定部240は、角度検出器(姿勢検出器)181~184によって検出され、機械状態取得部230が取得したフロント作業装置110の姿勢に基づいて、油圧ショベル(作業機械)100が作業中であるか否かを判定する。
【0114】
図24を用いて作業判定部240の処理の内容について述べる。
図24はフロント作業装置110の関節角度変化を用いた作業判定の例を示す図である。作業判定部240は、機械状態取得部230が出力した、サイト座標系930での車体の位置情報およびフロント作業装置110の姿勢情報を用いて、油圧ショベル100の稼働状況を判別する。作業の判定には、フロント作業装置110の姿勢変化を用いる。予め定めたデータ保持区間(
図24参照)の間、ブーム111,アーム112,バケット113の角度情報を保持しておき、各角度情報の変化量が所定値以内に収まって一定時間姿勢が変化しないと判定される場合には非作業中であると判定する。一方、データ保持区間中における角度情報の変化量が当該所定値を超えて姿勢変化が生じていると判定される場合は作業中であると判定する。なお、作業判別方法はこれに限らず、例えば、作業機械に応じて走行姿勢と呼ばれる姿勢を予め設定しておき、その走行姿勢が検出された場合には非作業中であると判定してもよい。
【0115】
[地形データ抽出部270]
図25~27を用いて、第2実施形態における地形データ抽出部270の処理について説明する。地形データ抽出部270では、作業判定部240から出力される油圧ショベル100の作業状態に応じて移動判定処理の方法を変更する。これにより無駄な地形データ更新が行われるのが抑制され、情報コントローラ161上での地形データの処理効率が向上する。
【0116】
第2実施形態における地形データ抽出部270の処理の流れについて説明する。
図25は第2実施形態における地形データ抽出部270のフローチャートである。
図17の第1実施形態の地形データ抽出部270のフローチャートと同じ処理については説明を簡略化することがある。
【0117】
<ステップ2501>
まず、地形データ抽出部270は作業判定を行う。作業判定には、作業判定部240の出力結果を用いる。作業判定部240の出力が、作業中の判定であった場合、地形データ抽出部270はステップ2502に進む。作業判定部240の出力が非作業中であった場合、地形データ270はステップ2503に進む。
【0118】
<ステップ2502>
地形データ抽出部270は、格子領域600における油圧ショベル100の位置を示すブロックの識別子データ(ブロック識別子データ)がRAM1612上に存在するか否かを判定する。
【0119】
<ステップ2503>
地形データ抽出部270は、RAM1612に記憶されている地形ブロックデータの初期化(例えば消去)を行う。
【0120】
油圧ショベル100が移動中である場合、フロント作業装置110は静止しており掘削作業が行われないため、RAM1612上の地形データ更新をしても地形データを用いるアプリケーションが地形データを要求しない場合が多いと想定される。
図26は油圧ショベル100が非作業中である場合の移動判定処理の動作を説明する図である。
図26が示すように、フロント作業装置110を動作することなく油圧ショベル100が(I)から(II)に移動した際(図中の左方向に移動した場合)、作業判定部240が非作業中であると判定した場合には、実際の油圧ショベル100の移動の有無に関わらず地形データ抽出部270はRAM1612上の地形ブロックデータを消去する。この際、RAM1612上のブロック管理テーブルやブロック識別子データも消去することができる。これにより次サイクルのステップ2501の作業判定で作業中と判定された際にステップ2505に進むので、油圧ショベル100の新たな位置における車体周囲の地形データが新規にRAM1612上に抽出される。このような処置をすることで、作業を伴わない移動中において、アプリケーションが地形データを要求してこない際に、無駄な地形データ更新を行わないようにする。なお、地形データの初期化方法は消去に限らず、例えば、アプリケーションの仕様によっては、RAM1612上からブロック識別子のみを消去することとし、地形ブロックデータは残してもよい。これにより、モニタ153には、最後に地形データを更新した際の表示が残るような設定にできる。
【0121】
<ステップ2504>
地形データ抽出部270は、油圧ショベル100のブロック識別子データIDx,IDyをRAM1612から読み込みステップ2506に進む。
【0122】
<ステップ2505>
地形データ抽出部270は、機械状態取得部230から現在の車体位置を取得し、その車体位置を基準としたデータ保持領域320の範囲に属する地形ブロックデータ(
図16(a)参照)を地形DB158から抽出してRAM1612上に保存する。また、
図16(b)の示すような、RAM1612上に保存した地形ブロックデータのメモリアドレスを格納したブロック管理テーブル620を作成してRAM1612上に保存し、ステップ2508に進む。
【0123】
<ステップ2506>
地形データ抽出部270は、ステップ2504で読み込んだ1サイクル前のブロック識別子IDxおよびIDyの値をもとに油圧ショベル100の移動判定を行う。すなわち、油圧ショベル100の車体130が位置するブロックが変化したか否かを判定する処理を行う。
【0124】
地形データ抽出部270の処理において、作業中の移動判定を行う場合、ブロックの境界近くで油圧ショベル100が作業していると、油圧ショベル100がブロックを移動したという判定が頻繁に生じる恐れがある。
図27は油圧ショベル100が作業中である場合の移動判定処理を説明する図である。
図27(a)ではブロックの境界付近で油圧ショベル100が掘削作業をしている。
図27(a)が示すように(I)と(II)の間でのブロック移動を繰り返すと、データ保持領域320もブロックの移動に追従して変更されるためデータ更新が頻繁に生じる。したがって、作業判定部240が作業中と判定している際の移動判定は、第1実施形態
図18で説明した方法に加えて、
図27(b)が示すように予め設定されたヒステリシス係数αを用いることが好ましい。このヒステリシス係数αは、移動前のブロック(例えば(I)から(II)に移動した
図26の場合では、移動前の(I)のときに油圧ショベル100が位置するブロック)から車体130までの距離に関する閾値(所定値)と言い換えることができる。
【0125】
(1)機械状態取得部230が算出した現在の油圧ショベル100の位置座標(Xpos、Ypos)と、ブロック識別子から算出されるブロックの左上の頂点座標(Xleft、Yup)の位置関係が、Xleft-α ≦ Xpos < Xleft+L+αかつYup-L-α < Ypos ≦ Yup+αである場合、地形データ抽出部270は、油圧ショベル100のブロックの移動は無いと判定し、ステップ2508に進む。
【0126】
(2)(Xpos、Ypos)と(Xleft、Yup)の位置関係がXleft+L+α<Xposである場合、地形データ抽出部270は、油圧ショベル100はX軸正方向にブロックを移動したと判定してステップ2507に進む。
【0127】
(3)(Xpos、Ypos)と(Xleft、Yup)の位置関係がXlef-L-α≧Xposである場合、地形データ抽出部270は、油圧ショベル100はX軸負方向にブロックを移動したと判定してステップ2507に進む。
【0128】
(4)(Xpos、Ypos)と(Xleft、Yup)の位置関係がYup+L+α<Yposである場合、地形データ抽出部270は、油圧ショベル100はY軸正方向にブロックを移動したと判定してステップ2507に進む。
【0129】
(5)(Xpos、Ypos)と(Xleft、Yup)の位置関係がYup-L-α≧Yposである場合、地形データ抽出部270は、油圧ショベル100はY軸負方向にブロックを移動したと判定してステップ2507に進む。
【0130】
このように、作業中の移動判定にヒステリシスを設けることで、データ更新の頻度を抑えることができる。なお、ステップ2506は第1実施形態のステップ1704と同じ処理(すなわちヒステリシスを利用しない移動判定処理)を行っても良い。
【0131】
<ステップ2507>
地形データ抽出部270は、ステップ2506で車体130が位置するブロックが変化したと判定された場合、ステップ2506の際に車体130が位置するブロックを基準としてデータ保持領域320を変更し、その変更後のデータ保持領域320に属する地形ブロックデータをRAM1612に記憶する。具体的な処理は第1実施形態の
図17におけるステップ1705の処理と同じである。
【0132】
以上のステップ2506から2507までの一連の処理は、ステップ2506の移動判定で車体の位置するブロックが変化したと判定された場合、かつ、その変化前のブロック(1サイクル前に車体が位置していたブロック)からステップ2506時の車体までの距離(垂直方向距離または水平方向距離)がヒステリシス係数αを超えた場合に、データ保持領域320を変更する処理であると換言できる。
【0133】
<ステップ2508>
地形データ抽出部250は、ステップ2504で呼び出した1サイクル前の油圧ショベル100の位置を示すブロック識別子情報を、ステップ2505または2506で機械状態取得部230から取得した現在の車体位置を示すブロック識別子情報に更新し、地形データ抽出部270の処理を終了する。
【0134】
以上に述べたとおり、油圧ショベル100の作業状態を加味して地形データ抽出部270の移動判定処理の判定基準を変更することで、非作業中の油圧ショベル100の移動中や、ブロックの境界付近で油圧ショベル100が作業を行っている際に、情報コントローラ161内の地形データ更新に伴うデータ処理を抑制することができ、情報コントローラ161内の地形データ処理の効率が向上する。
【0135】
(第3実施形態)
次に本発明の第3の実施形態を説明する。本実施形態は、情報コントローラ161が、車体130が位置するブロックとフロント作業装置110の先端(例えばバケット爪先)が位置するブロックとの位置関係に基づいて、データ保持領域320に属するブロックの範囲内でデータ出力領域310を変更する点に特徴がある。以下では第1の実施形態との相違点である、車体130に対するフロント作業装置110の位置を考慮する場合の機能ブロック図と、地形データ出力部260の処理について述べ、その他の点については第1実施形態と同じであるものとする。
【0136】
[機能ブロック]
図28に第3実施形態に係る情報コントローラ161の機能ブロック図を示す。情報コントローラ161は、第1実施形態と同様に、地形データ変換部210、領域算出部220、機械状態取得部230、地形データ出力部260、地形データ抽出部270を有する。ただし、第3実施形態では、地形データ出力部260が機械状態取得部230から機械状態を取得して地形データ出力処理を行う。
【0137】
以下、第3実施形態において、機械状態取得部230の出力結果を用いた地形データ出力部260の処理について述べる。
【0138】
[地形データ出力部260]
地形データ出力部260は、角度検出器(姿勢検出器)181-184によって検出された機械状態取得部230で取得されたフロント作業装置110の姿勢と、GNSS受信機(測位装置)171,172により演算され機械状態取得部230で取得された車体130の計測位置とに基づいて、車体130が位置するブロックとフロント作業装置110の先端が位置するブロックとを特定し、その特定された車体130が位置するブロックとフロント作業装置110の先端が位置するブロックとの位置関係に基づいてデータ出力領域310を変更する。
【0139】
図28、29を用いて地形データ出力部260の処理について述べる。第3実施形態の地形データ出力部260は、地形データ抽出部270がRAM1612上に保存したデータ保持領域320内の地形ブロックデータおよびブロック管理テーブル620を呼出し、機械状態取得部230の出力結果を用いて、車体130が位置するブロックとフロント作業装置110の先端が位置するブロックとの位置関係に基づいてデータ出力領域310を変更する。そして、その変更後のデータ出力領域310に属する地形ブロックデータをモニタコントローラ156やメインコントローラ162に出力する。例えば、変更後のデータ出力領域310は、少なくともフロント作業装置110の先端が位置するブロックに属する地形ブロックデータが含まれるようにデータ出力領域310の範囲を第1実施形態の場合と比較して縮小したものである。この処理について
図29に示す地形データ出力部260のフローチャートを用いて説明する。
【0140】
<ステップ3001>
図29の処理を開始すると、地形データ出力部260は、まず、RAM1612からブロック管理テーブル620(例えば
図16(b)参照)を読み出し、ステップ3002に進む。
【0141】
<ステップ3002>
地形データ出力部260は、機械状態取得部230の出力結果からサイト座標系930におけるフロント作業装置110の先端の位置を演算し、ステップ3001で読み出したブロック管理テーブル620からフロント作業装置110の先端が位置するブロックのメモリアドレスを抽出する。以下に、フロント作業装置110の先端が位置するブロックに応じてデータ出力領域310を変更する方法について述べる。
【0142】
油圧ショベル100のフロント作業装置110の先端(フロント先端部)が位置するブロックを算出するために、地形データ出力部260は、機械状態取得部230が取得した機械状態のうち、油圧ショベル100の本体130の位置情報(Xpos、Ypos)と、油圧ショベル100のフロント先端部の位置情報(Xtip、Ytip)とを用いる。まず、油圧ショベル100のフロント先端部が存在するブロックと、油圧ショベル100の本体130が存在するブロックとの相対位置を算出する。格子領域600を構成するブロックのアドレスを
図16等と同様に設定した場合、本体130が位置するブロックは常に3Cとなるが、フロント先端部が位置するブロックは3Cとその周囲に位置する8つのブロック(すなわち、B2,3B,4B,2C,3C,4C,2D,3D,4Dの9つのブロック)のいずれかになる。そして、地形データ出力部260は、フロント先端部のブロック位置とデータ出力領域310との関係を予め定義した出力ブロック参照テーブル1800(
図30参照)を参照して、フロント先端部が位置するブロックに応じてデータ出力領域310を決定する。
【0143】
図30に出力ブロック参照テーブル1800とブロック管理テーブル620の一例を示す。
図30(a)は出力ブロック参照テーブル1800の一例を示し、
図30(a)は地形データ出力部260がステップ3001において呼び出したブロック管理テーブル620の一例を示す。
【0144】
図30(a)の出力ブロック参照テーブル1800は、油圧ショベル100の位置(Xpos、Ypos)がブロック管理テーブル620で管理されるA1~E5の25個のブロックの中央のブロックであるC3に位置すると定めた場合に、フロント先端部が位置するブロックに応じて決定されるデータ出力領域310を定めたものである。この例では、フロント先端部がどのブロックに位置するかに関わらず、いずれのデータ出力領域310にも車体130が位置するブロック(C3)とフロント先端部110が位置するブロックが少なくとも含まれている。例えば、フロント先端部の位置(Xtip、Ytip)がB2に存在する場合、地形データ出力部260はデータ出力領域310をB2,B3,C2,C3の4つのブロック(
図30(a)の網掛け部分参照)に決定し、ブロック管理テーブル620のB2,B3,C2,C3に割り当てられているメモリアドレス(
図30(b)の網掛け部分参照)に格納された地形ブロックデータを出力する。
【0145】
なお、
図30(a)に示した出力ブロック参照テーブル1800は、フロント先端部が位置するブロックとデータ出力領域310との対応関係を複数パターン(具体的には第1パターンと第2パターンの2パターン)有しており、状況に応じて利用するパターンを異ならせることができる。パターンを異ならせる方法としては、例えば、地形ブロックデータを利用して実行されるアプリケーションの種類に応じて、使用するパターンを異ならせるものがある。
【0146】
例えば、アプリケーションとして領域制限制御を実行中の油圧ショベルが、領域制限制御中の作業モードとして、バケット爪先の制御精度よりもフロント作業装置110の操作性を優先させる粗掘削モードと、同操作正よりも同制御精度を優先させる仕上げモードとを備えている場合、粗掘削モードが選択されている場合は
図30(a)の第1パターンが、仕上げモードが選択されている場合は
図30(a)の第2パターンが選択されるように構成しても良い。後述する
図31に示すように、フロント先端部の位置が同じ場合で比較すると、第2パターンは第1パターンよりもデータ出力領域310の面積が縮小される傾向があるが、仕上げモードが選択される場面ではバケット爪先は設計面の近傍に位置することが想定され上部旋回体の旋回操作は行われる可能性が低いので、主にフロント先端部と車体が位置するブロックに属する地形ブロックデータをデータ出力領域310に設定する第2パターンを利用すれば充分である。このようにすれば、仕上げモード選択時には、情報コントローラ161からメインコントローラ162に出力される地形データのデータ量を必要最小限に抑制できるので、メインコントローラ162のデータ処理効率を向上し得る。
【0147】
なお、
図30(a)の例では1つのテーブル内でデータ出力領域310のパターンを2つ定義したが、パターンごとに異なるテーブルを利用するように構成しても良い。また、パターン数は例示した2つに限られないことは言うまでもない。
【0148】
<ステップ3003>
地形データ出力部260は、ステップ3002で決定したデータ出力領域310のメモリアドレスに格納されている地形ブロックデータを読み出し、モニタコントローラ156やメインコントローラ162に出力して処理を終了する。
【0149】
[効果・補足]
次に
図31を用いて第3本実形態の効果について述べる。
図31は第3実施形態の地形データ出力部260から出力されるデータ出力領域310の例を示した図である。図中の(i)第1パターンと(ii)第2パターンはそれぞれ
図30(a)の出力ブロック参照テーブル1800中の2つのパターンに対応する。
【0150】
例えば、
図30(a)に示すように油圧ショベル100のフロント先端部がB2ブロックに位置すると判定された場合、第1パターンと第2パターンのいずれの場合もデータ出力領域310は
図30(a)(i)中の斜線部の4ブロック分となり、第1実施形態および第2実施形態で出力される9ブロック分のデータ出力領域(太線の内側の9ブロック)と比べて5ブロック少なくなり、アプリケーションが使用する地形ブロックデータの範囲が小さくなることで処理効率が向上する。
【0151】
また、
図30(b)に示すように油圧ショベル100のフロント先端部がB3ブロックに位置すると判定された場合、(i)第1パターンのテーブルに従えばデータ出力領域310は斜線部の6ブロック分の地形ブロックデータを出力することとなり、(ii)第2パターンのテーブルに従えばデータ出力領域310は2ブロック分の地形ブロックデータのみを出力することとなる。この様にアプリケーションによって出力ブロック参照テーブル1800のパターンを変更することで、出力される地形ブロックデータの範囲を細かく指定することが可能となり、情報コントローラ161内での地形データの処理効率が向上する。
【0152】
以上に述べたとおり、油圧ショベル100のフロント先端部が位置するブロックを加味してデータ出力領域310を変更することで、地形ブロックデータを処理するアプリケーションが使用する地形ブロックデータの範囲が限定され、情報コントローラ161及び地形ブロックデータの出力先のコントローラ162,156における地形データ処理の効率が向上する。
【0153】
なお、上記では、油圧ショベル100に搭載されたコントローラは、情報コントローラ161、メインコントローラ162およびモニタコントローラ156の3つであったが、これらの3つの機能を適宜1つまたは2つのコントローラに統合しても良い。逆に3つのコントローラの機能を4つ以上のコントローラに分散することも可能である。
【0154】
本発明は上記の実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【符号の説明】
【0155】
100…油圧ショベル(作業機械),110…フロント作業装置,111…ブーム,112…アーム,113…バケット,121…ブームシリンダ,122…アームシリンダ,123…バケットシリンダ,130…車体,131…上部旋回体,132…下部走行体,141…コントロールバルブ,142…油圧ポンプ,143…エンジン,144…パイロットバルブ(電磁比例弁),151…運転室,152…操作レバー,153…モニタ,155…記憶装置(不揮発性記憶装置),156…モニタコントローラ(第2コントローラ),157…無線通信装置,158…地形データベース,159…車体パラメータ,161…情報コントローラ(第1コントローラ),162…メインコントローラ(第2コントローラ),170…地形計測装置,171…右GNSS受信機(測位装置),172…左GNSS受信機(測位装置),181-184…角度検出器(姿勢検出器),210…地形データ変換部,220…領域算出部,230…機械状態取得部,240…作業判定部,250…地形データ抽出部,260…地形データ出力部,270…地形データ抽出部,300…地形データファイル,310…データ出力領域,320…データ保持領域,350…作業領域,370…最大作業範囲,380…作業領域輪郭,600…格子領域,610…ブロック,620…ブロック管理テーブル,900…車体座標系,910…センサ座標系,920…計測点,930…サイト座標系,1800…出力ブロック参照テーブル