(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024140777
(43)【公開日】2024-10-10
(54)【発明の名称】システム、方法およびプログラム
(51)【国際特許分類】
E02F 9/24 20060101AFI20241003BHJP
E02F 3/43 20060101ALI20241003BHJP
E02F 9/26 20060101ALI20241003BHJP
【FI】
E02F9/24 H
E02F3/43 M
E02F9/24 M
E02F9/26 B
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023052103
(22)【出願日】2023-03-28
(71)【出願人】
【識別番号】000001236
【氏名又は名称】株式会社小松製作所
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】日野 慎也
【テーマコード(参考)】
2D003
2D015
【Fターム(参考)】
2D003AA01
2D003AB03
2D003AB04
2D003BA07
2D003CA02
2D003DA04
2D003DB04
2D003DB05
2D015GA03
2D015GB01
2D015HA03
2D015HB00
(57)【要約】
【課題】少ない計算量で、仮想壁に作業具が侵入しないように作業機械の動作を制限する。
【解決手段】システムは、プロセッサを備える。プロセッサは、作業機の侵入を禁止する面である仮想壁を特定する。プロセッサは、作業機械における作業具の制御点の位置を特定する。プロセッサは、仮想壁を、仮想壁の法線方向に、制御点を中心として前記作業具を内包するように定義された仮想球の半径の長さだけ、制御点へ近づけた、オフセット壁を特定する。プロセッサは、オフセット壁と制御点とが接触しないように、作業機械を制御する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
先端に作業具を有する作業機を備える作業機械を制御するためのシステムであって、
プロセッサを備え、
前記プロセッサは、
前記作業機の侵入を禁止する面である仮想壁を特定し、
前記作業機械における前記作業具の制御点の位置を特定し、
前記仮想壁を、前記仮想壁の法線方向に、前記制御点を中心として前記作業具を内包するように定義された仮想球の半径の長さだけ、前記制御点へ近づけた、オフセット壁を特定し、
前記オフセット壁と前記制御点とが接触しないように、前記作業機械を制御する
システム。
【請求項2】
前記制御点から前記作業具の先端部までの距離は、前記作業具の回転軸から前記先端部までの距離より短い
請求項1に記載のシステム。
【請求項3】
前記制御点は、前記作業具の回転軸の中点と、前記作業具の先端部の中点とを結ぶ線分の中点である
請求項2に記載のシステム。
【請求項4】
前記仮想球の半径は、前記制御点から前記作業具の外殻の最遠点までの距離に等しい
請求項1または請求項2に記載のシステム。
【請求項5】
前記作業具は、可動部分を有し、
前記制御点は、前記可動部分の姿勢が基準姿勢であるときの前記作業具の外殻によって定まる点である
請求項1または請求項2に記載のシステム。
【請求項6】
前記仮想球は、前記可動部分がいかなる姿勢を取るときも前記作業具を内包する
請求項5に記載のシステム。
【請求項7】
前記制御点は、前記可動部分によって動かされる被駆動部分を基準とする座標系で規定され、
前記プロセッサは、前記可動部分の姿勢に基づいて前記制御点の位置を特定する
請求項5に記載のシステム。
【請求項8】
前記プロセッサは、
前記作業具の種類に関連付けて前記制御点の位置および前記仮想球の半径を特定可能なデータを記憶する記憶部から、前記作業機に取り付けられた前記作業具の種類に関連付けられた前記データを読み出して前記制御点の位置および前記仮想球の半径を特定する
請求項1または請求項2に記載のシステム。
【請求項9】
先端に作業具を有する作業機を備える作業機械を制御するための方法であって、
前記作業機の侵入を禁止する面である仮想壁を特定するステップと、
前記作業機械における前記作業具の制御点の位置を特定するステップと、
前記仮想壁を、前記仮想壁の法線方向に、前記制御点を中心として前記作業具を内包するように定義された仮想球の半径の長さだけ、前記制御点へ近づけた、オフセット壁を特定するステップと、
前記オフセット壁と前記制御点とが接触しないように、前記作業機械を制御するステップと
を備える方法。
【請求項10】
先端に作業具を有する作業機を備える作業機械を制御するコンピュータに、
前記作業機の侵入を禁止する面である仮想壁を特定するステップと、
前記作業機械における前記作業具の制御点の位置を特定するステップと、
前記仮想壁を、前記仮想壁の法線方向に、前記制御点を中心として前記作業具を内包するように定義された仮想球の半径の長さだけ、前記制御点へ近づけた、オフセット壁を特定するステップと、
前記オフセット壁と前記制御点とが接触しないように、前記作業機械を制御するステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、システム、方法およびプログラムに関する。
【背景技術】
【0002】
作業機械の動作範囲を制限するために、空間に仮想壁を設定する技術が知られている。作業機械の制御装置は、仮想壁と作業機械との距離に応じて作業機械のアクチュエータの動作量を制限することで、作業機械が仮想壁を超えないよう制御することができる。
また、特許文献1には、作業具の回転軸を中心にし、作業具の先端までの半径を有する仮想円を規定し、仮想円と干渉防止領域との関係を求めることで、作業具の干渉防止領域への侵入を防止する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、仮想壁と作業機械に設けられる作業具との最近接点は、作業具の姿勢によって変化する。そのため、厳密に仮想壁と作業具の距離を求めようとする場合、作業具の複数の輪郭点それぞれと仮想壁との距離を求める必要があり、計算量が多い。特許文献1に記載されているように、仮想円と仮想壁との関係を求めるものとしても、円と直線の関係を示す二次方程式を解く必要があり、計算量が多い。
【0005】
本開示の目的は、少ない計算量で、仮想壁に作業具が侵入しないように作業機械の動作を制限することができるシステム、方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0006】
本開示の第1の態様に係るシステムは、先端に作業具を有する作業機を備える作業機械を制御する。システムは、プロセッサを備える。プロセッサは、作業機の侵入を禁止する面である仮想壁を特定する。プロセッサは、作業機械における作業具の制御点の位置を特定する。プロセッサは、仮想壁を、仮想壁の法線方向に、制御点を中心として作業具を内包するように定義された仮想球の半径の長さだけ、制御点へ近づけた、オフセット壁を特定する。プロセッサは、オフセット壁と制御点とが接触しないように、作業機械を制御する。
【0007】
本開示の第2の態様に係る方法は、先端に作業具を有する作業機を備える作業機械を制御する方法であって、仮想壁特定ステップと、制御点特定ステップと、オフセットステップと、制御ステップとを備える。仮想壁特定ステップは、作業機の侵入を禁止する面である仮想壁を特定する。制御点特定ステップは、作業機械における作業具の制御点の位置を特定する。オフセットステップは、仮想壁を、仮想壁の法線方向に、制御点を中心として前記作業具を内包するように定義された仮想球の半径の長さだけ、制御点へ近づけた、オフセット壁を特定する。制御ステップは、オフセット壁と制御点とが接触しないように、作業機械を制御する。
【0008】
本開示の第3の態様に係るプログラムは、先端に作業具を有する作業機を備える作業機械を制御するコンピュータに、仮想壁特定ステップと、制御点特定ステップと、オフセットステップと、制御ステップとを実行させる。仮想壁特定ステップは、作業機の侵入を禁止する面である仮想壁を特定する。制御点特定ステップは、作業機械における作業具の制御点の位置を特定する。オフセットステップは、仮想壁を、仮想壁の法線方向に、制御点を中心として前記作業具を内包するように定義された仮想球の半径の長さだけ、制御点へ近づけた、オフセット壁を特定する。制御ステップは、オフセット壁と制御点とが接触しないように、作業機械を制御する。
【発明の効果】
【0009】
上記態様の少なくとも1つの態様によれば、少ない計算量で、仮想壁に作業具が侵入しないように作業機械の動作を制限することができる。
【図面の簡単な説明】
【0010】
【
図1】第1の実施形態に係る作業機械の構成を示す概略図である。
【
図2】第1の実施形態に係る作業機械の駆動系を示す図である。
【
図3】第1の実施形態に係る制御装置の構成を示す概略ブロック図である。
【
図4】第1の実施形態における仮想球と仮想壁との関係を示す図である。
【
図5】第1の実施形態における仮想球とバケットの外殻との関係を示す図である。
【
図6】第1の実施形態における旋回体の旋回に伴う仮想壁の再設定の一例を示す図である。
【
図7】第1の実施形態において設定された仮想壁の更新および介入制御を示すフローチャート(パート1)である。
【
図8】第1の実施形態において設定された仮想壁の更新および介入制御を示すフローチャート(パート2)である。
【
図9】第1の実施形態の変形例に係る制御点と仮想球の関係を示す図である。
【
図10】第2の実施形態に係るアタッチメントの構成を示す図である。
【
図11】第2の実施形態に係る制御点および仮想球の例を示す図である。
【
図12】第3の実施形態に係るアタッチメントの構成を示す図である。
【
図13】第3の実施形態に係る制御点および仮想球の例を示す図である。
【
図14】他の実施形態に係る作業システムの構成を示す図である。
【発明を実施するための形態】
【0011】
〈第1の実施形態〉
《作業機械の構成》
以下、図面を参照しながら実施形態について詳しく説明する。
図1は、第1の実施形態に係る作業機械100の構成を示す概略図である。第1の実施形態に係る作業機械100は、例えば油圧ショベルである。作業機械100は、走行体120、旋回体140、作業機160、運転室180、制御装置200を備える。第1の実施形態に係る作業機械100は、オペレータによる操作によって仮想壁VWを生成し、作業機械100が仮想壁VWに接触しないように制御される。これにより、オペレータは、進入禁止区域に侵入しないように作業機械100を操作することができる。
【0012】
走行体120は、作業機械100を走行可能に支持する。走行体120は、例えば左右1対の無限軌道である。
旋回体140は、走行体120に旋回中心回りに旋回可能に支持される。
作業機160は、旋回体140に動作可能に支持される。作業機160は、油圧により駆動する。作業機160は、ブーム161、アーム162、および作業器具であるアタッチメント163を備える。アタッチメント163は作業具の一例である。
図1に示す例におけるアタッチメント163は、バケットである。ブーム161の基端部は、旋回体140に回動可能に取り付けられる。アーム162の基端部は、ブーム161の先端部に回動可能に取り付けられる。アタッチメント163は、アーム162の先端部に回動可能に取り付けられる。ここで、旋回体140のうち作業機160が取り付けられる部分を前部という。また、旋回体140について、前部を基準に、反対側の部分を後部、左側の部分を左部、右側の部分を右部という。
【0013】
運転室180は、旋回体140の前部に設けられる。運転室180内には、オペレータが作業機械100を操作するための操作装置141、および制御装置200のマンマシンインタフェースであるモニタ装置142が設けられる。モニタ装置142は、例えばタッチパネルを備えるコンピュータによって実現される。
【0014】
制御装置200は、オペレータによる操作装置の操作に基づいて、走行体120、旋回体140、および作業機160を制御する。制御装置200は、例えば運転室180の内部に設けられる。
【0015】
《作業機械100の駆動系》
図2は、第1の実施形態に係る作業機械100の駆動系を示す図である。
作業機械100は、作業機械100を駆動するための複数のアクチュエータを備える。具体的には、作業機械100は、動力源111、油圧ポンプ112、コントロールバルブ113、一対の走行モータ114、旋回モータ115、ブームシリンダ116、アームシリンダ117、アタッチメントシリンダ118を備える。
【0016】
動力源111は、油圧ポンプ112を駆動する。動力源111は、例えばエンジンである。
油圧ポンプ112は、動力源111により駆動され、コントロールバルブ113を介して走行モータ114、旋回モータ115、ブームシリンダ116、アームシリンダ117およびアタッチメントシリンダ118に作動油を供給する。
コントロールバルブ113は、油圧ポンプ112から走行モータ114、旋回モータ115、ブームシリンダ116、アームシリンダ117およびアタッチメントシリンダ118へ供給される作動油の流量を制御する。
走行モータ114は、油圧ポンプ112から供給される作動油によって駆動され、走行体120を駆動する。
旋回モータ115は、油圧ポンプ112から供給される作動油によって駆動され、走行体120に対して旋回体140を旋回させる。
【0017】
ブームシリンダ116は、ブーム161を駆動するための油圧シリンダである。ブームシリンダ116の基端部は、旋回体140に取り付けられる。ブームシリンダ116の先端部は、ブーム161に取り付けられる。
アームシリンダ117は、アーム162を駆動するための油圧シリンダである。アームシリンダ117の基端部は、ブーム161に取り付けられる。アームシリンダ117の先端部は、アーム162に取り付けられる。
アタッチメントシリンダ118は、アタッチメント163を駆動するための油圧シリンダである。アタッチメントシリンダ118の基端部は、アーム162に取り付けられる。アタッチメントシリンダ118の先端部は、アタッチメント163に取り付けられる。
【0018】
《作業機械100の計測系》
作業機械100は、作業機械100の姿勢および位置を計測するための複数のセンサを備える。具体的には、作業機械100は、傾斜計測器101、旋回角センサ102、ブーム角センサ103、アーム角センサ104、アタッチメント角センサ105、ペイロードメータ106を備える。
【0019】
傾斜計測器101は、旋回体140の姿勢を計測する。傾斜計測器101は、水平面に対する旋回体140の傾き(例えば、ロール角、ピッチ角およびヨー角)を計測する。傾斜計測器101の例としては、IMU(Inertial Measurement Unit:慣性計測装置)が挙げられる。この場合、傾斜計測器101は、旋回体140の加速度および角速度を計測し、計測結果に基づいて水平面に対する旋回体140の傾きを算出する。傾斜計測器101は、例えば運転室180の下方に設置される。傾斜計測器101は、計測値である旋回体140の姿勢データを制御装置200へ出力する。
【0020】
旋回角センサ102は、走行体120に対する旋回体140の旋回角度を計測する。旋回角センサ102の計測値は、例えば、走行体120と旋回体140の方向が一致しているときにゼロを示す。旋回角センサ102は、例えば旋回体140の旋回中心に設置される。旋回角センサ102は、計測値である旋回角度データを制御装置200へ出力する。
【0021】
ブーム角センサ103は、旋回体140に対するブーム161の回転角であるブーム角を計測する。ブーム角センサ103は、ブーム161に取り付けられたIMUであってよい。この場合、ブーム角センサ103は、ブーム161の水平面に対する傾きと傾斜計測器101が計測した旋回体の傾きとに基づいて、ブーム角を計測する。ブーム角センサ103の計測値は、例えば、ブーム161の基端と先端とを通る直線の方向が旋回体140の前後方向と一致するときにゼロを示す。なお、他の実施形態係るブーム角センサ103は、ブームシリンダ116に取り付けられたストロークセンサであってもよい。また、他の実施形態に係るブーム角センサ103は、旋回体140とブーム161とを接続するピンに設けられた回転センサであってもよい。ブーム角センサ103は、計測値であるブーム角データを制御装置200へ出力する。
【0022】
アーム角センサ104は、ブーム161に対するアーム162の回転角であるアーム角を計測する。アーム角センサ104は、アーム162に取り付けられたIMUであってよい。この場合、アーム角センサ104は、アーム162の水平面に対する傾きとブーム角センサ103が計測したブーム角とに基づいて、アーム角を計測する。アーム角センサ104の計測値は、例えば、アーム162の基端と先端とを通る直線の方向がブーム161の基端と先端とを通る直線の方向と一致するときにゼロを示す。なお、他の実施形態に係るアーム角センサ104は、アームシリンダ117にストロークセンサを取付けて角度算出を行ってもよい。また、他の実施形態に係るアーム角センサ104は、ブーム161とアーム162とを接続するピンに設けられた回転センサであってもよい。アーム角センサ104は、計測値であるアーム角データを制御装置200へ出力する。
【0023】
アタッチメント角センサ105は、アーム162に対するアタッチメント163の回転角であるアタッチメント角を計測する。アタッチメント角センサ105は、アタッチメント163を駆動させるためのアタッチメントシリンダ118に設けられたストロークセンサであってよい。この場合、アタッチメント角センサ105は、アタッチメントシリンダ118のストローク量に基づいてアタッチメント角を計測する。アタッチメント角センサ105の計測値は、例えば、アタッチメント163の基端と先端部とを通る直線の方向がアーム162の基端と先端とを通る直線の方向と一致するときにゼロを示す。なお、他の実施形態に係るアタッチメント角センサ105は、アーム162とアタッチメント163とを接続するピンに設けられた回転センサであってもよい。また、他の実施形態に係るアタッチメント角センサ105は、アタッチメント163に取付けられたIMUであってもよい。アタッチメント角センサ105は、計測値であるアタッチメント角データを制御装置200へ出力する。
【0024】
ペイロードメータ106は、アタッチメント163に保持された積荷の重量を計測する。ペイロードメータ106は、例えばブーム161のシリンダのボトム圧を計測し、積荷の重量に換算する。また例えば、ペイロードメータ106は、ロードセルであってもよい。ペイロードメータ106は、計測値である積荷の重量データを制御装置200へ出力する。
【0025】
《制御装置200の構成》
図3は、第1の実施形態に係る制御装置200の構成を示す概略ブロック図である。
制御装置200は、プロセッサ210、メインメモリ230、ストレージ250、インタフェース270を備えるコンピュータである。制御装置200は、制御システムの一例である。制御装置200は、傾斜計測器101、旋回角センサ102、ブーム角センサ103、アーム角センサ104、アタッチメント角センサ105、およびペイロードメータ106から計測値を受信する。
【0026】
ストレージ250は、一時的でない有形の記憶媒体である。ストレージ250の例としては、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ等が挙げられる。ストレージ250は、制御装置200のバスに直接接続された内部メディアであってもよいし、インタフェース270または通信回線を介して制御装置200に接続される外部メディアであってもよい。ストレージ250は、作業機械100を制御するための制御プログラムを記憶する。
【0027】
制御プログラムは、制御装置200に発揮させる機能の一部を実現するためのものであってもよい。例えば、制御プログラムは、ストレージ250に既に記憶されている他のプログラムとの組み合わせ、または他の装置に実装された他のプログラムとの組み合わせによって機能を発揮させるものであってもよい。なお、他の実施形態においては、制御装置200は、上記構成に加えて、または上記構成に代えてPLD(Programmable Logic Device)などのカスタムLSI(Large Scale Integrated Circuit)を備えてもよい。PLDの例としては、PAL(Programmable Array Logic)、GAL(Generic Array Logic)、CPLD(Complex Programmable Logic Device)、FPGA(Field Programmable Gate Array)が挙げられる。この場合、プロセッサによって実現される機能の一部または全部が当該集積回路によって実現されてよい。
【0028】
ストレージ250には、旋回体140、ブーム161、アーム162及びアタッチメント163の寸法及び重心位置を表すジオメトリデータが記録される。ジオメトリデータは、所定の座標系における物体の位置を表すデータである。また、ストレージ250は、アタッチメント163の型番ごとに、当該型番のアタッチメント163に係るジオメトリデータを記憶する。
【0029】
《ソフトウェア構成》
プロセッサ210は、制御プログラムを実行することで、操作量取得部211、入力部212、表示制御部213、計測値取得部214、位置特定部215、生成部216、回転変換部217、介入判定部218、介入制御部219、制御信号出力部220を備える。
【0030】
操作量取得部211は、操作装置141から各アクチュエータの操作量を示す操作信号を取得する。
入力部212は、モニタ装置142からオペレータによる操作入力を受け付ける。特に、入力部212は、アタッチメント163の交換がなされたときに、当該アタッチメント163の型番の入力を受け付ける。これにより、プロセッサ210は、ストレージ250から当該型番に関連付けられたジオメトリデータを読み出す。
表示制御部213は、モニタ装置142に表示させる画面データをモニタ装置142へ出力する。
計測値取得部214は、傾斜計測器101、旋回角センサ102、ブーム角センサ103、アーム角センサ104、アタッチメント角センサ105およびペイロードメータ106から計測値を取得する。
【0031】
位置特定部215は、車体座標系における作業機械100の外殻の位置を特定する。作業機械100の外殻とは、作業機械100の外形形状である。作業機械100の外殻は、例えば、旋回体140および作業機160の外形を形成する形状よって画定される。位置特定部215は、具体的には、計測値取得部214が取得した各種計測値とストレージ250に記録されたジオメトリデータとに基づいて、車体座標系における作業機械100の外殻の複数の点と、アタッチメント163の制御点Pの位置を特定する。位置特定部215が特定する外殻の複数の点は、アーム162のアタッチメント163側の端(アームトップ)、アーム162のブーム161側の端(アームボトム)、旋回体140のカウンターウェイトの後方の点を含む。車体座標系とは、旋回体140の代表点(例えば、旋回中心を通る点)を原点とする直交座標系である。位置特定部215の計算については後述する。なお、位置特定部215が特定する点は、これに限られない。
【0032】
アタッチメント163の制御点Pは、アタッチメント163を球体(仮想球VS)とみなすときの当該仮想球VSの中心である。仮想球VSは、アタッチメント163を簡易的に表すために、制御点Pを中心としてアタッチメント163を内包するように定義される。
図4は、第1の実施形態における仮想球VSと仮想壁VWとの関係を示す図である。
図5は、第1の実施形態における仮想球VSとバケットの外殻との関係を示す図である。第1の実施形態におけるアタッチメント163はバケットであり、
図4及び
図5に示すように、制御点Pは、アーム162とバケットとを接続するピン(回転軸)の中点と、バケットの刃先(先端部)の中点とを結ぶ線分の中点である。第1の実施形態における仮想球VSの半径rは、制御点Pからバケットの外殻の最遠点までの距離に等しい。したがって、仮想球VSはバケットを内包する。
図5の例では、バケットの外殻を簡易的に表現するための点としてAP0、AP1、AP2、AP3、AP4、及びAP5が特定され、このうち制御点Pから最も離れた点がAP2である。そのため、
図5の例において半径rは、制御点Pから点AP2までの距離に等しい。
バケットの制御点Pを、バケットの回転軸の中点と、バケットの先端部の中点とを結ぶ線分の中点とすることで、バケットの底面と仮想球VSとの隙間を小さくすることができる。他方、バケットの開口面については、底面と比較して仮想球VSとの距離が大きくなるが、バックホウショベルにおいてバケットの開口面は通常作業機械100の前方を向かないため、操作性に影響を与える場面がほとんどない。また、バケットの形状は半球に近いため、制御点Pをバケットの回転軸の中点とバケットの先端部の中点とを結ぶ線分の中点とすることで、オペレータが操作時に仮想球VSをイメージしやすいという利点もある。
【0033】
生成部216は、入力部212がオペレータから仮想壁VWの生成指示を受け付けた場合に、位置特定部215が特定したアタッチメント163の先端部の位置に基づいて仮想壁VWのパラメータを計算する。生成部216は、生成した車体座標系における仮想壁VWのパラメータをメインメモリ230に記録する。
【0034】
回転変換部217は、旋回体140の旋回に伴ってメインメモリ230に記憶された仮想壁VWのパラメータを更新する。具体的には、回転変換部217は、傾斜計測器101が計測したピッチ角、ロール角、ヨー角の変化分だけ仮想壁VWのパラメータを車体座標系の原点を中心に回転変換する。
図6は、第1の実施形態における旋回体の旋回に伴う仮想壁VWの再設定の一例を示す図である。例えば、
図6に示すように、仮想壁VWの設定後に旋回体140が旋回した場合、回転変換部217は、計測値取得部214が取得した傾斜計測器101の計測値を参照して旋回体140の旋回によって生じたロール角、ピッチ角、ヨー角の変化量を計算し、仮想壁VWのパラメータを車体座標系の原点を中心に回転変換する。これにより、回転変換部217は、旋回体140の旋回による仮想壁VWの回転をキャンセルすることができる。
【0035】
介入判定部218は、位置特定部215が特定した外殻の複数の点と仮想壁VWとの位置関係、およびアタッチメント163の仮想球VSと仮想壁VWとの位置関係に基づいて、旋回体140の旋回速度または作業機160の速度を制限するか否かを判定する。以下、制御装置200が旋回体140または作業機160の速度を制限することを介入制御ともいう。具体的には、介入判定部218は、仮想壁VWと外殻の複数の点の少なくとも1つが接触するまでの最小旋回角を求め、当該最小旋回角が所定角度以下である場合に、旋回体140について介入制御をすると判定する。また、介入判定部218は、仮想壁VWと作業機160との最小距離を求め、当該最小距離が所定距離以下である場合に、作業機160について介入制御をすると判定する。このとき、介入判定部218は、アタッチメント163について仮想球VSに基づいて距離を求める。介入判定部218は、計算量を減らすために、
図4に示すように仮想壁VWを仮想球VSの半径rだけオフセットしたオフセット壁OWを特定する。仮想球VSと仮想壁VWとの距離d1は、制御点Pとオフセット壁OWとの距離d2と等しい。そのため、介入判定部218は、制御点Pとオフセット壁OWとの距離d2を計算することで、仮想球VSと仮想壁VWとの距離d1を求める。
【0036】
介入制御部219は、介入判定部218によって介入制御を行うと判定された場合に、操作量取得部211が取得した操作量のうち介入対象の操作量を制御する。
制御信号出力部220は、操作量取得部211が取得した操作量、または介入判定部218によって制御された操作量をコントロールバルブ113に出力する。
【0037】
《位置特定部215の計算》
ここで、位置特定部215による作業機械100の外殻の点の位置の特定方法を説明する。位置特定部215は、計測値取得部214が取得した各種計測値とストレージ250に記録されたジオメトリデータとに基づいて外殻の点の位置を特定する。ストレージ250には、旋回体140、ブーム161、アーム162及びアタッチメント163の寸法及び重心位置を表すジオメトリデータが記録される。
【0038】
旋回体140のジオメトリデータは、ローカル座標系である車体座標系における旋回体140のブーム161を支持するピンの位置(xbm、ybm、zbm)、及び旋回体140の外殻の点の位置(xsp、ysp、zsp)を示す。旋回体140の外殻の点としては、例えばカウンターウェイトの突出点のように、旋回によって壁面と接触する可能性が高い点が挙げられる。車体座標系は、旋回体140の旋回中心を基準として前後方向に伸びるXsb軸、左右方向に伸びるYsb軸、上下方向に伸びるZsb軸から構成される座標系である。なお、旋回体140の上下方向は、必ずしも鉛直方向と一致しない。
【0039】
ブーム161のジオメトリデータは、ローカル座標系であるブーム座標系におけるブームトップの位置(xam、yam、zam)を示す。ブーム座標系は、ブーム161と旋回体140とを接続するピンの位置を基準として、長手方向に伸びるXbm軸、ピンが伸びる方向に伸びるYbm軸、Xbm軸とYbm軸に直交するZbm軸から構成される座標系である。ブームトップの位置は、ブーム161とアーム162を接続するピンの位置である。ブームトップは、作業機械100の外殻の点の一つである。
【0040】
アーム162のジオメトリデータは、ローカル座標系であるアーム座標系におけるアームトップの位置(xat、yat、zat)を示す。アーム座標系は、アーム162とブーム161とを接続するピンの位置を基準として、長手方向に伸びるXam軸、ピンが伸びる方向に伸びるYam軸、Xam軸とYam軸に直交するZam軸から構成される座標系である。アームトップの位置は、アーム162とアタッチメント163を接続するピンの位置である。アームトップは、作業機械100の外殻の点の一つである。
【0041】
アタッチメント163のジオメトリデータは、ローカル座標系であるアタッチメント座標系におけるアタッチメント163の制御点Pの位置(xcp、ycp、zcp)を示す。アタッチメント座標系は、アタッチメント163とアーム162とを接続するピンの位置を基準として、先端部の方向に伸びるXat軸、ピンが伸びる方向に伸びるYat軸、Xat軸とYat軸に直交するZat軸から構成される座標系である。つまり、制御点Pは、アタッチメント163を基準とした座標系において一意に特定される点である。
【0042】
位置特定部215は、計測値取得部214が取得したブーム角θbmの計測値と、旋回体140のジオメトリデータとに基づいて、下記式(1)により、ブーム座標系から車体座標系へ変換するためのブーム-車体変換行列Tbm
sbを生成する。ブーム-車体変換行列Tbm
sbは、Ybm軸回りにブーム角θbmだけ回転させ、かつ車体座標系の原点とブーム座標系の原点の偏差(xbm、ybm、zbm)だけ平行移動させる行列である。
また、位置特定部215は、ブーム161のジオメトリデータが示すブーム座標系におけるブームトップの位置と、ブーム-車体変換行列Tbm
sbとの積を求めることで、車体座標系におけるブームトップの位置を求める。
【0043】
【0044】
位置特定部215は、計測値取得部214が取得したアーム角θamの計測値と、ブーム161のジオメトリデータとに基づいて、下記式(2)により、アーム座標系からブーム座標系へ変換するためのアーム-ブーム変換行列Tam
bmを生成する。アーム-ブーム変換行列Tam
bmは、Yam軸回りにアーム角θamだけ回転させ、かつブーム座標系の原点とアーム座標系の原点の偏差(xam、yam、zam)だけ平行移動させる行列である。また、位置特定部215は、ブーム-車体変換行列Tbm
sbとアーム-ブーム変換行列Tam
bmの積を求めることで、アーム座標系から車体座標系へ変換するためのアーム-車体変換行列Tam
sbを生成する。また、位置特定部215は、アーム162のジオメトリデータが示すアーム座標系におけるアームトップの位置と、アーム-車体変換行列Tam
sbとの積を求めることで、車体座標系におけるアームトップの位置を求める。
【0045】
【0046】
位置特定部215は、計測値取得部214が取得したアタッチメント角θatの計測値と、アーム162のジオメトリデータとに基づいて、下記式(3)により、アタッチメント座標系からアーム座標系へ変換するためのアタッチメント-アーム変換行列Tat
amを生成する。アタッチメント-アーム変換行列Tat
amは、Yat軸回りにアタッチメント角θatだけ回転させ、かつアーム座標系の原点とアタッチメント座標系の原点の偏差(xat、yat、zat)だけ平行移動させる行列である。また、位置特定部215は、アーム-車体変換行列Tam
sbとアタッチメント-アーム変換行列Tat
amの積を求めることで、アタッチメント座標系から車体座標系へ変換するためのアタッチメント-車体変換行列Tat
sbを生成する。
【0047】
【0048】
位置特定部215は、アタッチメント163のジオメトリデータが示すアタッチメント座標系における制御点Pの位置と、アタッチメント-車体変換行列Tat
sbとの積を求めることで、車体座標系におけるアタッチメント163の制御点Pの位置を求める。
【0049】
《作業機械100の制御方法》
以下、第1の実施形態に係る作業機械100の制御方法について説明する。
まず作業機械100のオペレータは、モニタ装置142を操作し、仮想壁VWの設定を行う。入力部212がモニタ装置142から仮想壁VWの設定指示を受け付けると、表示制御部213は、モニタ装置142に設定すべき仮想壁VWの種類の選択画面を表示させる。制御装置200が設定可能な仮想壁VWは、前壁、左壁、右壁、上壁および下壁の5種類である。前壁、左壁、右壁は鉛直方向に伸びる壁面である。上壁、下壁は水平方向に伸びる壁面である。仮想壁VWは、車体座標系で規定される、仮想壁VWの法線方向を示す法線ベクトルと、仮想壁VWが通る点の位置を示す位置ベクトルとによって表される。
【0050】
作業機械100は、旋回体140を旋回させて作業機160が届く範囲内の作業を行うことができる。そのため、通常、オペレータは、掘削などの作業を行う場合、作業機械100を旋回させる。車体座標系は、旋回体140を基準とするため、グローバル座標系の視点から見て作業機械100の旋回に追従して回転する。車体座標系に設定される仮想壁VWが作業機械100の旋回に追従して回転してしまうと、右壁および左壁は作業機械100に干渉することがなく、意味をなさない。例えば、旋回体140の右側に右壁を設定すると、旋回体140をどのように旋回させても、右壁は常に旋回体140の右側に維持され、作業機械100に干渉することがない。また、前壁は、作業機械100の旋回に追従して回転してしまうと、平面状の壁ではなく環状の壁としてふるまうため、建築物の壁面に沿った仮想壁VWとして機能しない。
そのため、第1の実施形態に係る制御装置200は、作業機械100の旋回前後でグローバル座標系における仮想壁VWの位置を維持するために、仮想壁VWの回転変換処理を行う。
【0051】
図7は、第1の実施形態において設定された仮想壁VWの更新および介入制御を示すフローチャート(パート1)である。
図8は、第1の実施形態において設定された仮想壁VWの更新および介入制御を示すフローチャート(パート2)である。作業機械100のオペレータがモニタ装置142の操作によって少なくとも1つの仮想壁VWを設定すると、制御装置200は、以下に示す制御を開始する。
【0052】
操作量取得部211は、操作装置141からブーム161、アーム162、アタッチメント163、および旋回体140の操作信号を取得する(ステップS201)。計測値取得部214は、傾斜計測器101、旋回角センサ102、ブーム角センサ103、アーム角センサ104、アタッチメント角センサ105およびペイロードメータ106の計測値を取得する(ステップS202)。
【0053】
回転変換部217は、メインメモリ230が記憶する1つ以上の仮想壁VWそれぞれを、ステップS202で傾斜計測器101から取得した旋回体140のロール角、ピッチ角、ヨー角に基づいて回転変換し、更新する(ステップS203)。
【0054】
位置特定部215は、ステップS202で取得した計測値に基づいて車体座標系における作業機械100の外殻の複数の点とアタッチメント163の制御点Pの位置を算出する(ステップS204)。介入判定部218は、位置特定部215が特定した外殻の点を1つずつ選択し(ステップS205)、以下のステップS206からステップS212の処理を実行する。
【0055】
介入判定部218は、ステップS205で選択した点を通り、且つ、車体座標系のXsb-Ysb平面に平行な断面を特定する(ステップS206)。また、介入判定部218は、ステップS205で選択した点を通り、且つ、車体座標系のXsb-Zsb平面に平行な断面を特定する(ステップS207)。
【0056】
介入判定部218は、メインメモリ230に設定された1つ以上の仮想壁VWを1つずつ選択し(ステップS208)、以下のステップS209からステップS212の処理を実行する。
介入判定部218は、ステップS206で生成した断面とステップS208で選択した仮想壁VWとの交線を水平仮想壁線として算出する(ステップS209)。なお、ステップS206で生成した断面と仮想壁VWとの位置関係によっては水平仮想壁線が存在しない場合もある。水平仮想壁線が存在する場合、介入判定部218は、右旋回と左旋回のそれぞれについて、ステップS205で選択した点がステップS209で算出した水平仮想壁線と接触する旋回角を求める(ステップS210)。例えば、介入判定部218は、旋回中心を中心としてステップS205で選択した点を通る円と水平仮想壁線との交点を算出し、旋回中心からステップS205で選択した点へ伸びる線分と旋回中心から交点へ伸びる線分とのなす角を求める。なお、ステップS205で選択した点と水平仮想壁線との位置関係によっては交点が存在しない場合もある。
【0057】
また、介入判定部218は、ステップS207で生成した断面とステップS208で選択した仮想壁VWとの交線を鉛直仮想壁線として算出する(ステップS211)。なお、ステップS207で生成した断面と仮想壁VWとの位置関係によっては鉛直仮想壁線が存在しない場合もある。鉛直仮想壁線が存在する場合、介入判定部218は、ステップS205で選択した点とステップS211で算出した鉛直仮想壁線との距離を求める(ステップS212)。
【0058】
次に、介入判定部218は、ステップS204で特定したアタッチメント163の制御点Pについて、以下のステップS213からステップS221の処理を実行する。介入判定部218は、アタッチメント163のジオメトリデータに基づいて、仮想球VSの半径rを特定する(ステップS213)。仮想球VSの半径rは、アタッチメント163のジオメトリデータに含まれていてもよいし、ジオメトリデータに示されるアタッチメント163の外殻の点と基準点との距離を計算することで求められてもよい。
【0059】
介入判定部218は、メインメモリ230に設定された1つ以上の仮想壁VWを1つずつ選択し(ステップS214)、以下のステップS215からステップS221の処理を実行する。
介入判定部218は、ステップS214で選択した仮想壁VWを、ステップS213で特定した半径rの長さだけ法線方向にオフセットさせたオフセット壁OWの位置を計算する(ステップS215)。すなわち介入判定部218は、ステップS214で選択した仮想壁VWを半径rの長さだけアタッチメント163の制御点Pに近づける。介入判定部218は、アタッチメント163の制御点Pを通り、且つ、車体座標系のXsb-Ysb平面に平行な断面を特定する(ステップS216)。また、介入判定部218は、アタッチメント163の制御点Pを通り、且つ、車体座標系のXsb-Zsb平面に平行な断面を特定する(ステップS217)。
【0060】
介入判定部218は、ステップS216で生成した断面とステップS215で求めたオフセット壁OWとの交線を水平仮想壁線として算出する(ステップS218)。なお、ステップS206で生成した断面とオフセット壁OWとの位置関係によっては水平仮想壁線が存在しない場合もある。水平仮想壁線が存在する場合、介入判定部218は、右旋回と左旋回のそれぞれについて、アタッチメント163の制御点PがステップS209で算出した水平仮想壁線と接触する旋回角を求める(ステップS219)。この旋回角は、仮想球VSと仮想壁VWとが接触する旋回角と等価である。例えば、介入判定部218は、旋回中心を中心としてアタッチメント163の制御点Pを通る円と水平仮想壁線との交点を算出し、旋回中心からアタッチメント163の制御点Pへ伸びる線分と旋回中心から交点へ伸びる線分とのなす角を求める。なお、アタッチメント163の制御点Pと水平仮想壁線との位置関係によっては交点が存在しない場合もある。
【0061】
また、介入判定部218は、ステップS217で生成した断面とステップS215で求めたオフセット壁OWとの交線を鉛直仮想壁線として算出する(ステップS220)。なお、ステップS217で生成した断面とオフセット壁OWとの位置関係によっては鉛直仮想壁線が存在しない場合もある。鉛直仮想壁線が存在する場合、介入判定部218は、アタッチメント163の制御点PとステップS220で算出した鉛直仮想壁線との距離を求める(ステップS221)。この距離は、仮想球VSと仮想壁VWとが接触する距離と等価である。
【0062】
介入判定部218は、ステップS210およびステップS219で求めた作業機械100上の各点および仮想球VSにおける仮想壁VWごとの旋回角に基づいて、右旋回と左旋回のそれぞれについて、複数の点および仮想球VSの少なくとも1つが少なくとも1つの仮想壁VWに接触する最小旋回角を算出する(ステップS222)。
介入判定部218は、ステップS212およびステップS221で求めた作業機械100上の各点および仮想球VSにおける仮想壁VWごとの距離に基づいて、作業機160と仮想壁VWとの最短距離を算出する(ステップS223)。
【0063】
介入判定部218は、ステップS201で取得した旋回体140の操作信号に基づいて、旋回方向および目標旋回速度を算出する(ステップS224)。介入判定部218は、操作信号が示す旋回方向についての最小旋回角が、介入開始角度より大きいか否かを判定する(ステップS225)。最小旋回角が介入開始角度より大きい場合(ステップS225:YES)、介入制御部219は旋回についての介入制御を行わない。他方、最小旋回角が介入開始角度以下である場合(ステップS225:NO)、介入制御部219は、予め定められた制限角速度テーブルに基づいて最小旋回角から制限角速度を特定し、旋回体140の目標旋回速度を制限角速度以下の値に制限する(ステップS226)。制限角速度テーブルは、最小旋回角と制限角速度との関係を示す関数であって、最小旋回角が小さいほど制限角速度が小さくなる関数である。
制限角速度テーブルは、例えば、オペレータによる旋回体140の操作感が損なわれない減速率に設定してもよい。
【0064】
介入判定部218は、ステップS201で取得したブーム161、アーム162およびアタッチメント163の操作信号に基づいて、作業機160の目標速度を算出する(ステップS227)。具体的には、介入判定部218は、ステップS201で取得したブーム161、アーム162およびアタッチメント163の操作信号に基づいて、ブーム161、アーム162およびアタッチメント163の目標速度を算出する。次に、介入判定部218は、ステップS223で算出した最短距離が、介入開始距離より長いか否かを判定する(ステップS228)。最短距離が介入開始距離より長い場合(ステップS228:YES)、介入制御部219は作業機160についての介入制御を行わない。他方、最短距離が介入開始距離以下である場合(ステップS228:NO)、介入制御部219は、作業機160の各軸を1つずつ選択し、選択した軸について、以下のステップS230からステップS231の処理を行う(ステップS229)。介入制御部219は、選択された軸の操作方向が仮想壁VWへ接近する方向の操作であるか否かを判定する(ステップS230)。選択された軸の操作方向が仮想壁VWへ接近する方向の操作ではない場合(ステップS230:NO)、介入制御部219は、選択された軸についての介入制御を行わない。他方、選択された軸の操作方向が仮想壁VWへ接近する方向の操作である場合(ステップS230:YES)、介入制御部219は、選択された軸について、予め定められた制限速度テーブルに基づいて制限速度を特定し、目標速度を制限速度以下の値に制限する(ステップS231)。
【0065】
制御信号出力部220は、ブーム161、アーム162、アタッチメント163の目標速度および旋回体140の目標角速度に基づいて制御信号を生成し、コントロールバルブ113に出力する(ステップS232)。
【0066】
《作用・効果》
このように、制御装置200は、以下の手順で作業機械100を制御する。制御装置200は、作業機160の侵入を禁止する面である仮想壁VWを特定する。制御装置200は、作業機械100におけるアタッチメント163の制御点Pの位置を特定する。制御装置200は、仮想壁VWを、仮想壁VWの法線方向に、アタッチメント163を内包する制御点Pを中心とする仮想球VSの半径rの長さだけ、制御点Pへ近づけた、オフセット壁OWを特定する。制御装置200は、オフセット壁OWと制御点Pとが接触しないように、作業機械100を制御する。これにより、制御装置200は、面と点による単純な計算で仮想球VSと仮想壁VWとの位置関係を計算することができる。したがって、制御装置200は、少ない計算量で、仮想壁VWにアタッチメント163が侵入しないように作業機械100の動作を制限することができる。
【0067】
また、第1の実施形態に係る制御装置200によれば、アタッチメント163の制御点Pを、アタッチメント163の回転軸の中点と、アタッチメント163の先端部の中点とを結ぶ線分の中点とする。これにより、アタッチメント163と仮想球VSとの隙間を小さくすることができ、オペレータによる作業機160の操作性を妨げない。なお、他の実施形態に係る制御点Pはこれに限られない。例えば、他の実施形態に係る制御点Pは、
図9に示すように、アタッチメント163の幾何中心であってもよいし、アタッチメント163を包含する仮想球VSが最小包含球となるような点であってもよい。
図9は、第1の実施形態の変形例に係る制御点Pと仮想球VSの関係を示す図である。なお、アタッチメント163の回転軸の中点とアタッチメント163の先端部の中点とを結ぶ線分の中点である制御点P、アタッチメント163の幾何中心である制御点P、および仮想球VSが最小包含球となるときの制御点Pのいずれも、アタッチメント163の先端部までの距離が、アタッチメント163の回転軸から先端部までの距離より短い。この場合、制御点Pを回転軸の中心(アームトップ)とする仮想球VSを用いた制御と比較して、制御性を向上させることができる。
なお、他の実施形態においては、制御点Pがアタッチメント163の回転軸の中心であってもよい。制御点Pをアタッチメント163の回転軸の中心とする場合、アタッチメント163の回転角によらず制御点Pが定まるため、式(3)に示すアタッチメント-車体変換行列T
at
sbによる座標変換計算を省略することができる。
【0068】
また、第1の実施形態に係る制御装置200のストレージ250は、アタッチメント163の型番(種類)に関連付けて制御点Pの位置および仮想球VSの半径rを特定可能なジオメトリデータを記憶する。制御装置200は、ストレージ250から、作業機160に取り付けられたアタッチメント163の型番に関連付けられたジオメトリデータを読み出して制御点Pの位置および仮想球VSの半径rを特定する。これにより、アタッチメント163の交換の度に制御点Pの位置および仮想球VSの半径rを手作業で設定する必要がなくなる。なお、制御点Pの位置および仮想球VSの半径rを特定可能なデータは、制御点Pの位置および仮想球VSの半径rを持つものであってもよいし、制御点Pおよび半径rを求めるために必要な回転軸の位置、先端部の位置、外殻の形状などのデータを持つものであってもよい。
【0069】
〈第2の実施形態〉
第1の実施形態に係る作業機械100は、アタッチメント163としてバケットを備える。これに対し、第2の実施形態に係る作業機械100は、アタッチメント163としてチルトローテータ164とバケット165とを有するチルトローテートバケットを備える。チルトローテータ164は、アタッチメント163の可動部分の一例である。
【0070】
図10は、第2の実施形態に係るアタッチメント163の構成を示す図である。
チルトローテータ164は、バケット165を支持するようにアーム162の先端に取り付けられる。チルトローテータ164は、取付部1641、チルト部1642、回転部1643を備える。取付部1641は、図示左右方向に伸びる軸回りに回転可能にアーム162の先端に取り付けられる。チルト部1642は、図示前後方向に伸びる軸回りに回転可能に取付部1641に取り付けられる。回転部1643は、図示上下方向に伸びる軸回りに回転可能にチルト部1642に取り付けられる。理想的には、取付部1641、チルト部1642、回転部1643の回転軸は互いに直交する。バケット165の基端部は、回転部1643に固定される。これにより、バケット165は、アーム162に対して互いに直交する3軸を中心に回転することができる。ただし、実際には取付部1641、チルト部1642、回転部1643の回転軸は設計誤差を含み、必ずしも直交しない可能性がある。
【0071】
図11は、第2の実施形態に係る制御点Pおよび仮想球VSの例を示す図である。
第2の実施形態に係るアタッチメント163の制御点Pは、アタッチメント163の回転軸の中点(アームトップ)と、チルト部1642の傾きがゼロであるとき(基準姿勢)におけるバケット165の刃先(先端部)の中点とを結ぶ線分の中点である。制御点Pはアタッチメント163座標系で規定される。
【0072】
第2の実施形態に係る仮想球VSの半径rは、制御点Pからバケット165の外殻の最遠点までの距離に等しい。このときの最遠点は、チルトローテータ164によって取り得るすべての姿勢において制御点Pから最も遠い点である。これにより、チルト部1642の傾きおよび回転部1643の回転角によらず、制御点Pおよび仮想球VSを特定することができる。また、チルトローテータ164がチルト部1642の傾きを計測するためのセンサや回転部1643の回転角を計測するためのセンサを備えないものであっても、チルトローテータ164を有するアタッチメント163が仮想壁VWに侵入することを防ぐことができる。第2の実施形態に係る制御装置200は、第1の実施形態と同様の計算によって、チルトローテータ164を有するアタッチメント163の制御点Pおよび仮想壁VWを求めることができる。
【0073】
このように、制御装置200は、仮想球VSの半径rを、仮想球VSが可動部分の姿勢によらずアタッチメント163を内包する長さに設定することで、アタッチメント163が可動部分を有するか否かに関わらず同じ計算によって、仮想球VSを用いた仮想壁VWの侵入防止制御を実現することができる。
【0074】
〈第3の実施形態〉
第3の実施形態に係る作業機械100は、第2の実施形態と同様にアタッチメント163としてチルトローテータ164とバケット165とを有するチルトローテートバケットを備える。他方、第3の実施形態に係る制御装置200は、第2の実施形態と制御点Pおよび仮想球VSの計算方法が第2の実施形態と異なる。
第3の実施形態に係る制御点Pは、第2の実施形態と同様にアタッチメント163の回転軸の中点(アームトップ)と、チルト部1642の傾きがゼロであるとき(基準姿勢)におけるバケット165の刃先(先端部)の中点とを結ぶ線分の中点である。一方で、第3の実施形態に係る制御点Pは、アタッチメント座標系ではなく、バケット165の回転軸の中点を基準とするバケット座標系によって規定される。そのため、チルトローテータ164の姿勢によって、アタッチメント座標系における制御点Pの位置は変化する。
【0075】
図12は、第3の実施形態に係るアタッチメント163の構成を示す図である。
第2の実施形態に係るチルトローテータ164は、チルト部1642の回転軸回りのチルト角センサ406および回転角センサ407を備える。
【0076】
チルト角センサ406は、チルトローテータ164の取付部1641に対するチルト部1642の角度であるチルト角を計測する。チルト角センサ406は、取付部1641とチルト部1642とを回転可能に接続する関節軸に設けられた回転センサであってよい。チルト角センサ406の計測値は、例えばアーム162の回転軸と回転部1643の回転軸とが直交するときにゼロを示す。なお、他の実施形態に係るチルト角センサ406は、チルトシリンダに取り付けられたストロークセンサであってストローク量を角度に換算するものであってもよい。チルト角センサ406は、計測値であるチルト角データを制御装置200へ出力する。
【0077】
回転角センサ407は、チルトローテータ164のチルト部1642に対する回転部1643の角度である回転角を計測する。回転角センサ407は、回転部1643の回転モータに設けられた回転センサであってよい。チルト角センサ406の計測値は、例えばバケット165の刃先が向く方向と作業機160の動作平面とが平行となるときにゼロを示す。回転角センサ407は、計測値である回転角データを制御装置200へ出力する。
【0078】
《位置特定部215の計算》
位置特定部215は、計測値取得部214が取得したアタッチメント角θatの計測値と、アーム162のジオメトリデータとに基づいて、下記式(4)により、第1チルトローテート座標系からアーム座標系へ変換するための第1チルト-アーム変換行列Tt1
amを生成する。第1チルト-アーム変換行列Tt1
amは、Yt1軸回りにアタッチメント角θatだけ回転させ、かつアーム座標系の原点と第1チルトローテート座標系の原点の偏差(xt1、yt1、zt1)だけ平行移動させ、さらにチルト部1642の関節軸の傾きφtだけ傾ける行列である。また、位置特定部215は、アーム-車体変換行列Tam
sbと第1チルト-アーム変換行列Tt1
amの積を求めることで、第1チルトローテート座標系から車体座標系へ変換するための第1チルト-車体変換行列Tt1
sbを生成する。アーム-車体変換行列Tam
sbの計算方法は第1の実施形態で説明したものと同じである。
【0079】
【0080】
位置特定部215は、計測値取得部214が取得したチルト角θtの計測値と、アタッチメント163のジオメトリデータとに基づいて、下記式(5)により、第1チルトローテート座標系から第2チルトローテート座標系へ変換するための第2チルト-第1チルト変換行列Tt2
t1を生成する。第2チルト-第1チルト変換行列Tt2
t1は、Xt2軸回りにチルト角θtだけ回転させ、かつ第1チルトローテート座標系の原点と第2チルトローテート座標系の原点の偏差(xt2、yt2、zt2)だけ平行移動させ、さらに回転部1643の回転軸の傾きφrだけ傾ける行列である。また、位置特定部215は、第1チルト-車体変換行列Tt1
sbと第2チルト-第1チルト変換行列Tt2
t1の積を求めることで、第2チルトローテート座標系から車体座標系へ変換するための第2チルト-車体変換行列Tt2
sbを生成する。
【0081】
【0082】
位置特定部215は、計測値取得部214が取得したローテート角θrの計測値と、アタッチメント163のジオメトリデータとに基づいて、下記式(6)により、第2チルトローテート座標系からバケット座標系へ変換するためのバケット-第2チルト変換行列T
bk
t2を生成する。バケット-第2チルト変換行列Tbk
t2は、Zbk軸回りに回転角θrだけ回転させ、かつ第2チルトローテート座標系の原点とバケット座標系の原点の偏差(xbk、ybk、zbk)だけ平行移動させる行列である。また、位置特定部215は、第2チルト-車体変換行列Tt2
sbとバケット-第2チルト変換行列Tbk
t2の積を求めることで、バケット座標系から車体座標系へ変換するためのバケット-車体変換行列Tbk
sbを生成する。
【0083】
【0084】
位置特定部215は、アタッチメント163のジオメトリデータが示す制御点Pの位置と、バケット-車体変換行列Tbk
sbとの積を求めることで、車体座標系におけるアタッチメント163の制御点Pの位置を求めることができる。
【0085】
なお、アタッチメント163がチルトローテータ164を備えない場合、制御装置200にはチルト角θtおよびローテート角θrの計測値が入力されない。この場合、位置特定部215は、チルト角θtおよびローテート角θrをゼロとして(基準姿勢として)扱う。これにより、位置特定部215は、チルトローテータ164の有無によらず同じ計算方法で、アタッチメント163の制御点Pの位置を特定することができる。
【0086】
図13は、第3の実施形態に係る制御点Pおよび仮想球VSの例を示す図である。第3の実施形態に係る制御点Pは、バケット座標系で規定される。そのため、制御点Pからバケット165の外殻までの長さは、チルトローテータ164の姿勢によらずに定まる。したがって、第3の実施形態に係る制御装置200は、仮想球VSの半径rを第2の実施形態に係る仮想球VSの半径rより短くすることができる。これにより、第3の実施形態に係る制御装置200は、第2の実施形態と比較して、制御性を向上させることができる。
【0087】
〈他の実施形態〉
以上、図面を参照して一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、様々な設計変更等をすることが可能である。すなわち、他の実施形態においては、上述の処理の順序が適宜変更されてもよい。また、一部の処理が並列に実行されてもよい。
上述した実施形態に係る制御装置200は、単独のコンピュータによって構成されるものであってもよいし、制御装置200の構成を複数のコンピュータに分けて配置し、複数のコンピュータが互いに協働することで制御装置200として機能するものであってもよい。このとき、制御装置200を構成する一部のコンピュータが作業機械100の内部に搭載され、他のコンピュータが作業機械100の外部に設けられてもよい。
【0088】
上述した実施形態に係る作業機械100は、運転室180に搭乗したオペレータによって操作されるが、他の実施形態に係る作業機械100はこれに限られない。
図14は、他の実施形態に係る作業システムの構成を示す図である。他の実施形態に係る作業機械100は、
図14に示すように遠隔操作装置500によって操作されてもよい。遠隔操作される作業機械100は、上述の実施形態の構成に加え、さらに撮像装置119を備え、制御装置200は、撮像装置119が撮像した画像を遠隔操作装置500にリアルタイムに送信する。遠隔操作装置500は、運転席510、ディスプレイ520、操作装置530及び遠隔操作サーバ540を備える。遠隔操作サーバ540は、作業機械100から受信した画像をディスプレイ520に表示させる。これにより、オペレータは遠隔の作業機械100の周囲の状況を認識することができる。また遠隔操作サーバ540は、オペレータによる操作装置530の操作信号をネットワークを介して作業機械100に送信する。遠隔操作サーバ540は、上述の実施形態に係る制御装置200の少なくとも一部の機能を実行する。つまり、遠隔操作サーバ540を備える作業システムにおいて、制御装置200と遠隔操作サーバ540は、作業システムを構成する。
【0089】
また、上述した実施形態に係る制御装置200は、仮想壁VWを平面として扱うために仮想壁VWの回転変換処理を行うが、これに限られない。例えば、他の実施形態において、仮想壁VWを作業機械100を囲む環状の壁として機能させたい場合には、仮想壁VWの回転変換処理を行わなくてもよい。この場合、仮想壁VWは曲面となる。なお、他の実施形態に係る制御装置200は、曲面として定義した仮想壁VWについて回転変換処理を行ってもよい。
【符号の説明】
【0090】
100…作業機械 101…傾斜計測器 102…旋回角センサ 103…ブーム角センサ 104…アーム角センサ 105…アタッチメント角センサ 106…ペイロードメータ 111…動力源 112…油圧ポンプ 113…コントロールバルブ 114…走行モータ 115…旋回モータ 116…ブームシリンダ 117…アームシリンダ 118…アタッチメントシリンダ 120…走行体 140…旋回体 141…操作装置 142…モニタ装置 160…作業機 161…ブーム 162…アーム 163…アタッチメント 164…チルトローテータ 1641…取付部 1642…チルト部 1643…回転部 165…バケット 180…運転室 200…制御装置 210…プロセッサ 211…操作量取得部 212…入力部 213…表示制御部 214…計測値取得部 215…位置特定部 216…生成部 217…回転変換部 218…介入判定部 219…介入制御部 220…制御信号出力部 230…メインメモリ 250…ストレージ 270…インタフェース 406…チルト角センサ 407…回転角センサ OW…オフセット壁 P…制御点 VS…仮想球 VW…仮想壁