IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社小松製作所の特許一覧

<>
  • 特開-システム、方法およびプログラム 図1
  • 特開-システム、方法およびプログラム 図2
  • 特開-システム、方法およびプログラム 図3
  • 特開-システム、方法およびプログラム 図4
  • 特開-システム、方法およびプログラム 図5
  • 特開-システム、方法およびプログラム 図6
  • 特開-システム、方法およびプログラム 図7
  • 特開-システム、方法およびプログラム 図8
  • 特開-システム、方法およびプログラム 図9
  • 特開-システム、方法およびプログラム 図10
  • 特開-システム、方法およびプログラム 図11
  • 特開-システム、方法およびプログラム 図12
  • 特開-システム、方法およびプログラム 図13
  • 特開-システム、方法およびプログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024140142
(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/26 B
E02F9/24 M
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023051148
(22)【出願日】2023-03-28
(71)【出願人】
【識別番号】000001236
【氏名又は名称】株式会社小松製作所
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】日野 慎也
(72)【発明者】
【氏名】村井 正治
【テーマコード(参考)】
2D003
2D015
【Fターム(参考)】
2D003AA01
2D003AB03
2D003AB04
2D003BA07
2D003CA02
2D003DA04
2D003DB03
2D003DB04
2D015GA03
2D015GB01
2D015HA03
2D015HB00
(57)【要約】
【課題】交換可能な作業具の制御に係るパラメータを容易に決定する。
【解決手段】制御システムは、作業機械に設けられ、作業機が写る撮像データを撮像する撮像装置と、プロセッサとを備える。プロセッサは、撮像装置から撮像データを取得し、撮像データに基づいて作業具の形状を特定する。プロセッサは、形状に基づいて、作業機の侵入を禁止する面である仮想壁と作業具とが接触しないように作業機械を制御する。
【選択図】図9
【特許請求の範囲】
【請求項1】
先端に作業具を取り付け可能な作業機を備える作業機械を制御するためのシステムであって、
前記作業機械に設けられ、前記作業機が写る撮像データを撮像する撮像装置と、
プロセッサと、
を備え、
前記プロセッサは、
前記撮像装置から前記撮像データを取得し、
前記撮像データに基づいて前記作業具の形状を特定し、
前記形状に基づいて、前記作業機の侵入を禁止する面である仮想壁と前記作業具とが接触しないように前記作業機械を制御する、
システム。
【請求項2】
前記プロセッサは、
前記作業機の姿勢を特定し、
前記撮像データと前記作業機の姿勢とに基づいて前記作業具の形状を特定する
請求項1に記載のシステム。
【請求項3】
前記作業機に取り付け可能な複数の作業具のそれぞれについて、前記作業具の形状に係るデータと、前記作業機の寸法に係るデータとを記憶する記憶装置を備え、
前記形状に基づいて、前記記憶装置から前記作業具の寸法を読み出し、
前記寸法に基づいて、前記仮想壁と前記作業具とが接触しないように前記作業機械を制御する、
請求項1に記載のシステム。
【請求項4】
前記プロセッサは、
前記作業具の形状に基づいて、前記作業具の制御点を中心として前記作業具を内包するように定義される仮想球の半径を決定し、
前記制御点の位置および前記半径に基づいて、前記仮想壁と前記仮想球とが接触しないように前記作業機械を制御する
請求項1から請求項3の何れか1項に記載のシステム。
【請求項5】
先端に作業具を取り付け可能な作業機を備える作業機械を制御するための方法であって、
前記作業機械に設けられ、前記作業機が写る撮像データを撮像する撮像装置から、前記撮像データを取得するステップと、
前記撮像データに基づいて前記作業具の形状を特定するステップと、
前記形状に基づいて、前記作業機の侵入を禁止する面である仮想壁と前記作業具とが接触しないように前記作業機械を制御するステップと、
を備える方法。
【請求項6】
先端に作業具を取り付け可能な作業機を備える作業機械を制御するコンピュータに、
前記作業機械に設けられ、前記作業機が写る撮像データを撮像する撮像装置から、前記撮像データを取得するステップと、
前記撮像データに基づいて前記作業具の形状を特定するステップと、
前記形状に基づいて、前記作業機の侵入を禁止する面である仮想壁と前記作業具とが接触しないように前記作業機械を制御するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、システム、方法およびプログラムに関する。
【背景技術】
【0002】
作業機械の動作範囲を制限するために、空間に仮想壁を設定する技術が知られている。作業機械の制御装置は、仮想壁と作業機械との距離に応じて作業機械のアクチュエータの動作量を制限することで、作業機械が仮想壁を超えないよう制御することができる。
また、特許文献1には、作業具の回転軸を中心にし、作業具の先端までの半径を有する仮想円を規定し、仮想円と干渉防止領域との関係を求めることで、作業具の干渉防止領域への侵入を防止する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平9-256403号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、作業機械には、作業機の先端に様々な作業具を取り付け可能なものがある。作業具の形状は様々であるため、作業具が交換された場合、制御に係るパラメータを変更する必要がある。作業具の交換のたびにパラメータを設定することは手間である。
【0005】
本開示の目的は、交換可能な作業具の制御に係るパラメータを容易に決定することができるシステム、方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0006】
本開示の第1の態様に係るシステムは、先端に作業具を取り付け可能な作業機を備える作業機械を制御する。システムは、作業機械に設けられ、作業機が写る撮像データを撮像する撮像装置と、プロセッサとを備える。プロセッサは、撮像装置から撮像データを取得し、撮像データに基づいて作業具の形状を特定する。プロセッサは、形状に基づいて、作業機の侵入を禁止する面である仮想壁と作業具とが接触しないように作業機械を制御する。
【0007】
本開示の第2の態様に係る方法は、先端に作業具を取り付け可能な作業機を備える作業機械を制御するための方法であって、取得ステップと、特定ステップと、制御ステップとを備える。取得ステップは、作業機械に設けられ、作業機が写る撮像データを撮像する撮像装置から、撮像データを取得する。特定ステップは、撮像データに基づいて作業具の形状を特定する。制御ステップは、形状に基づいて、作業機の侵入を禁止する面である仮想壁と作業具とが接触しないように作業機械を制御する。
【0008】
本発明の第3の態様に係るプログラムは、先端に作業具を取り付け可能な作業機を備える作業機械を制御する。プログラムは、コンピュータに、取得ステップと、特定ステップと、制御ステップとを実行させる。取得ステップは、作業機械に設けられ、作業機が写る撮像データを撮像する撮像装置から、撮像データを取得する。特定ステップは、撮像データに基づいて作業具の形状を特定する。制御ステップは、形状に基づいて、作業機の侵入を禁止する面である仮想壁と作業具とが接触しないように作業機械を制御する。
【発明の効果】
【0009】
上記態様によれば、交換可能な作業具の制御に係るパラメータを容易に決定することができる。
【図面の簡単な説明】
【0010】
図1】第1の実施形態に係る作業機械の構成を示す概略図である。
図2】第1の実施形態に係る作業機械の駆動系を示す図である。
図3】第1の実施形態に係る制御装置の構成を示す概略ブロック図である。
図4】第1の実施形態における仮想球と仮想壁との関係を示す図である。
図5】第1の実施形態における仮想球とバケットの外殻との関係を示す図である。
図6】第1の実施形態における旋回体の旋回に伴う仮想壁の再設定の一例を示す図である。
図7】第1の実施形態におけるアタッチメントの形状特定処理を示すフローチャート(パート1)である。
図8】第1の実施形態におけるアタッチメントの形状特定処理を示すフローチャート(パート2)である。
図9】第1の実施形態に係る形状特定処理における画面例を示す図である。
図10】第1の実施形態において設定された仮想壁の更新および介入制御を示すフローチャート(パート1)である。
図11】第1の実施形態において設定された仮想壁の更新および介入制御を示すフローチャート(パート2)である。
図12】第2の実施形態におけるアタッチメントの形状特定処理を示すフローチャートである。
図13】第2の実施形態に係る形状特定処理における画面例を示す図である。
図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および撮像装置107を備える。
【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】
撮像装置107は、撮像範囲に作業機160が写るように旋回体140に設けられる。例えば、撮像装置107は、運転室180の天井に設けられていてもよい。撮像装置107は、撮像データを制御装置200へ出力する。撮像装置107の例としては、カメラ、ステレオカメラ、LiDAR、レーザスキャナなどが挙げられる。撮像データは、二次元の画像データであってもよいし、三次元の点群データであってもよい。
【0026】
《制御装置200の構成》
図3は、第1の実施形態に係る制御装置200の構成を示す概略ブロック図である。
制御装置200は、プロセッサ210、メインメモリ230、ストレージ250、インタフェース270を備えるコンピュータである。制御装置200は、制御システムの一例である。制御装置200は、傾斜計測器101、旋回角センサ102、ブーム角センサ103、アーム角センサ104、アタッチメント角センサ105、およびペイロードメータ106から計測値を受信する。
【0027】
ストレージ250は、一時的でない有形の記憶媒体である。ストレージ250の例としては、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ等が挙げられる。ストレージ250は、制御装置200のバスに直接接続された内部メディアであってもよいし、インタフェース270または通信回線を介して制御装置200に接続される外部メディアであってもよい。ストレージ250は、作業機械100を制御するための制御プログラムを記憶する。
【0028】
制御プログラムは、制御装置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)が挙げられる。この場合、プロセッサによって実現される機能の一部または全部が当該集積回路によって実現されてよい。
【0029】
ストレージ250には、旋回体140、ブーム161及びアーム162の寸法を表すジオメトリデータが記録される。ジオメトリデータは、所定の座標系における物体の位置を表すデータである。
【0030】
《ソフトウェア構成》
プロセッサ210は、制御プログラムを実行することで、操作量取得部211、入力部212、表示制御部213、計測値取得部214、位置特定部215、アタッチメント特定部216、生成部217、回転変換部218、介入判定部219、介入制御部220、制御信号出力部221を備える。
【0031】
操作量取得部211は、操作装置141から各アクチュエータの操作量を示す操作信号を取得する。
入力部212は、モニタ装置142からオペレータによる操作入力を受け付ける。特に、入力部212は、アタッチメント163の交換がなされたときに、オペレータからアタッチメント163の形状特定処理を実行する旨の入力を受け付け、後述するアタッチメント163の形状特定処理を開始する。
表示制御部213は、モニタ装置142に表示させる画面データをモニタ装置142へ出力する。
計測値取得部214は、傾斜計測器101、旋回角センサ102、ブーム角センサ103、アーム角センサ104、アタッチメント角センサ105、ペイロードメータ106から計測値を取得する。計測値取得部214は、撮像装置107から撮像データを取得する。
【0032】
位置特定部215は、車体座標系における作業機械100の外殻の位置を特定する。作業機械100の外殻とは、作業機械100の外形形状である。作業機械100の外殻は、例えば、旋回体140および作業機160の外形を形成する形状よって画定される。位置特定部215は、具体的には、計測値取得部214が取得した各種計測値と、ストレージ250に記録されたジオメトリデータと、アタッチメント特定部216によって特定されたデータとに基づいて、車体座標系における作業機械100の外殻の複数の点と、アタッチメント163の制御点Pの位置を特定する。位置特定部215が特定する外殻の複数の点は、アーム162のアタッチメント163側の端(アームトップ)、アーム162のブーム161側の端(アームボトム)、旋回体140のカウンターウェイトの後方の点を含む。車体座標系とは、旋回体140の代表点(例えば、旋回中心を通る点)を原点とする直交座標系である。位置特定部215の計算については後述する。なお、位置特定部215が特定する点は、これに限られない。
【0033】
アタッチメント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をイメージしやすいという利点もある。
【0034】
アタッチメント特定部216は、計測値取得部214が取得した撮像データと位置特定部215が特定したアームトップの位置とに基づいて、アタッチメント163の形状を特定し、アタッチメント163の制御点Pの位置および仮想球VSの半径を決定する。
制御点Pの位置は、ローカル座標系であるアタッチメント座標系における位置(xcp、ycp、zcp)として表される。アタッチメント座標系は、アタッチメント163とアーム162とを接続するピンの位置を基準として、先端部の方向に伸びるXat軸、ピンが伸びる方向に伸びるYat軸、Xat軸とYat軸に直交するZat軸から構成される座標系である。なお、アタッチメント座標系は予め定められた座標系であって、アタッチメント特定部216によって特定されるアタッチメント163の形状に依らない。したがって、Xat軸は必ずしも実際にアタッチメント163の先端を通るとは限らない。制御点Pは、アタッチメント163を基準とした座標系において一意に特定される点である。
【0035】
生成部217は、入力部212がオペレータから仮想壁VWの生成指示を受け付けた場合に、位置特定部215が特定したアタッチメント163の先端部の位置に基づいて仮想壁VWのパラメータを計算する。生成部217は、生成した車体座標系における仮想壁VWのパラメータをメインメモリ230に記録する。
【0036】
回転変換部218は、旋回体140の旋回に伴ってメインメモリ230に記憶された仮想壁VWのパラメータを更新する。具体的には、回転変換部218は、傾斜計測器101が計測したピッチ角、ロール角、ヨー角の変化分だけ仮想壁VWのパラメータを車体座標系の原点を中心に回転変換する。図6は、第1の実施形態における旋回体の旋回に伴う仮想壁VWの再設定の一例を示す図である。例えば、図6に示すように、仮想壁VWの設定後に旋回体140が旋回した場合、回転変換部218は、計測値取得部214が取得した傾斜計測器101の計測値を参照して旋回体140の旋回によって生じたロール角、ピッチ角、ヨー角の変化量を計算し、仮想壁VWのパラメータを車体座標系の原点を中心に回転変換する。これにより、回転変換部218は、旋回体140の旋回による仮想壁VWの回転をキャンセルすることができる。
【0037】
介入判定部219は、位置特定部215が特定した外殻の複数の点と仮想壁VWとの位置関係、およびアタッチメント163の仮想球VSと仮想壁VWとの位置関係に基づいて、旋回体140の旋回速度または作業機160の速度を制限するか否かを判定する。以下、制御装置200が旋回体140または作業機160の速度を制限することを介入制御ともいう。具体的には、介入判定部219は、仮想壁VWと外殻の複数の点の少なくとも1つが接触するまでの最小旋回角を求め、当該最小旋回角が所定角度以下である場合に、旋回体140について介入制御をすると判定する。また、介入判定部219は、仮想壁VWと作業機160との最小距離を求め、当該最小距離が所定距離以下である場合に、作業機160について介入制御をすると判定する。このとき、介入判定部219は、アタッチメント163について仮想球VSに基づいて距離を求める。介入判定部219は、計算量を減らすために、図4に示すように仮想壁VWを仮想球VSの半径rだけオフセットしたオフセット壁OWを特定する。仮想球VSと仮想壁VWとの距離d1は、制御点Pとオフセット壁OWとの距離d2と等しい。そのため、介入判定部219は、制御点Pとオフセット壁OWとの距離d2を計算することで、仮想球VSと仮想壁VWとの距離d1を求める。
【0038】
介入制御部220は、介入判定部219によって介入制御を行うと判定された場合に、操作量取得部211が取得した操作量のうち介入対象の操作量を制御する。
制御信号出力部221は、操作量取得部211が取得した操作量、または介入判定部219によって制御された操作量をコントロールバルブ113に出力する。
【0039】
《位置特定部215の計算》
ここで、位置特定部215による作業機械100の外殻の点の位置の特定方法を説明する。位置特定部215は、計測値取得部214が取得した各種計測値とストレージ250に記録されたジオメトリデータとに基づいて外殻の点の位置を特定する。ストレージ250には、旋回体140、ブーム161及びアーム162の寸法を表すジオメトリデータが記録される。また位置特定部215は、特定されたアームトップの位置と、アタッチメント特定部216によって特定されたアタッチメント163の仮想球VSの制御点Pの位置および半径を用いて、仮想球VSの位置を特定する。
【0040】
旋回体140のジオメトリデータは、ローカル座標系である車体座標系における旋回体140のブーム161を支持するピンの位置(xbm、ybm、zbm)、及び旋回体140の外殻の点の位置(xsp、ysp、zsp)を示す。旋回体140の外殻の点としては、例えばカウンターウェイトの突出点のように、旋回によって壁面と接触する可能性が高い点が挙げられる。車体座標系は、旋回体140の旋回中心を基準として前後方向に伸びるXsb軸、左右方向に伸びるYsb軸、上下方向に伸びるZsb軸から構成される座標系である。なお、旋回体140の上下方向は、必ずしも鉛直方向と一致しない。
【0041】
ブーム161のジオメトリデータは、ローカル座標系であるブーム座標系におけるブームトップの位置(xam、yam、zam)を示す。ブーム座標系は、ブーム161と旋回体140とを接続するピンの位置を基準として、長手方向に伸びるXbm軸、ピンが伸びる方向に伸びるYbm軸、Xbm軸とYbm軸に直交するZbm軸から構成される座標系である。ブームトップの位置は、ブーム161とアーム162を接続するピンの位置である。ブームトップは、作業機械100の外殻の点の一つである。
【0042】
アーム162のジオメトリデータは、ローカル座標系であるアーム座標系におけるアームトップの位置(xat、yat、zat)を示す。アーム座標系は、アーム162とブーム161とを接続するピンの位置を基準として、長手方向に伸びるXam軸、ピンが伸びる方向に伸びるYam軸、Xam軸とYam軸に直交するZam軸から構成される座標系である。アームトップの位置は、アーム162とアタッチメント163を接続するピンの位置である。アームトップは、作業機械100の外殻の点の一つである。
【0043】
位置特定部215は、計測値取得部214が取得したブーム角θbmの計測値と、旋回体140のジオメトリデータとに基づいて、下記式(1)により、ブーム座標系から車体座標系へ変換するためのブーム-車体変換行列Tbm sbを生成する。ブーム-車体変換行列Tbm sbは、Ybm軸回りにブーム角θbmだけ回転させ、かつ車体座標系の原点とブーム座標系の原点の偏差(xbm、ybm、zbm)だけ平行移動させる行列である。
また、位置特定部215は、ブーム161のジオメトリデータが示すブーム座標系におけるブームトップの位置と、ブーム-車体変換行列Tbm sbとの積を求めることで、車体座標系におけるブームトップの位置を求める。
【0044】
【数1】
【0045】
位置特定部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との積を求めることで、車体座標系におけるアームトップの位置を求める。
【0046】
【数2】
【0047】
位置特定部215は、計測値取得部214が取得したアタッチメント角θatの計測値と、アーム162のジオメトリデータとに基づいて、下記式(3)により、アタッチメント座標系からアーム座標系へ変換するためのアタッチメント-アーム変換行列Tat amを生成する。アタッチメント-アーム変換行列Tat amは、Yat軸回りにアタッチメント角θatだけ回転させ、かつアーム座標系の原点とアタッチメント座標系の原点の偏差(xat、yat、zat)だけ平行移動させる行列である。また、位置特定部215は、アーム-車体変換行列Tam sbとアタッチメント-アーム変換行列Tat amの積を求めることで、アタッチメント座標系から車体座標系へ変換するためのアタッチメント-車体変換行列Tat sbを生成する。
【0048】
【数3】
【0049】
位置特定部215は、アタッチメント特定部216によって特定されたアタッチメント163の制御点Pの位置と、アタッチメント-車体変換行列Tat sbとの積を求めることで、車体座標系におけるアタッチメント163の制御点Pの位置を求める。
【0050】
《作業機械100の制御方法》
以下、第1の実施形態に係る作業機械100の制御方法について説明する。
まず作業機械100のオペレータは、作業機160にアタッチメント163を取り付けると、モニタ装置142を操作し、アタッチメント163の形状特定処理を行う。
【0051】
《アタッチメント163の形状特定処理》
図7は、第1の実施形態におけるアタッチメント163の形状特定処理を示すフローチャート(パート1)である。図8は、第1の実施形態におけるアタッチメント163の形状特定処理を示すフローチャート(パート2)である。図9は、第1の実施形態に係る形状特定処理における画面例を示す図である。
表示制御部213は、モニタ装置142に第1指示画面D1(図9)を表示する(ステップS101)。第1指示画面D1には、アタッチメント163の形状特定処理の開始を示す「YESボタン」と、アタッチメント163の形状特定処理の不実行を示す「NOボタン」とが設けられる。オペレータは、アタッチメント163の形状特定処理を実行する場合、モニタ装置142の第1指示画面D1に表示された「YESボタン」を操作する。入力部212は、モニタ装置142からオペレータによる「YESボタン」または「NOボタン」の操作入力を受け付ける(ステップS102)。
【0052】
オペレータによる「NOボタン」の操作入力を受け付けた場合(ステップS102:NO)、プロセッサ210は、アタッチメント163の形状特定処理を終了する。この場合、前回設定されたアタッチメント163の制御点Pおよび半径rのデータが引き続いて用いられる。
【0053】
オペレータによる「YESボタン」の操作入力を受け付けた場合(ステップS102:YES)、計測値取得部214は、各種計測値および撮像データの取得を開始する(ステップS103)。また、位置特定部215は、ステップS103で取得した計測値に基づいて、車体座標系におけるアームトップの位置の算出を開始する(ステップS104)。以降、計測値取得部214および位置特定部215は、形状特定処理の実行中、継続的に各種計測値および撮像データの取得並びにアームトップの位置の算出を実行する。
【0054】
次に、表示制御部213は、第2指示画面D2をモニタ装置142に表示させる(ステップS105)。第2指示画面D2には、計測値取得部214が取得した撮像データと、フレーミング要素と、フレーミング要素にアタッチメント163が入るように作業機160を操作することを促す指示とが含まれる。フレーミング要素は、予め定められた範囲を表す枠線であり、アタッチメント163の位置決め要素を表す。
【0055】
次に、アタッチメント特定部216は、第2指示画面D2においてアタッチメント163の像がフレーミング要素内に収まっているか否かを判定する(ステップS106)。アタッチメント特定部216は、例えばステップS104で特定したアームトップの位置に基づいてアタッチメント163の像がフレーミング要素内に収まっているか否かを判定してよい。撮像装置107の位置は車体座標系において固定されているため、撮像装置107の撮像範囲は車体座標系から特定可能である。したがって、車体座標系における撮像範囲のうちフレーミング要素の上部に相当する所定の領域にとアームトップが位置しているか否かを判定することで、アタッチメント163の像がフレーミング要素内に収まっているか否かを判定できる。またアタッチメント特定部216は、ステップS103で取得した撮像データに基づいてパターンマッチングなどの手法によってアタッチメントの位置を特定してもよい。
【0056】
アタッチメント163の像がフレーミング要素内に収まっていない場合(ステップS106:NO)、ステップS105に処理を戻し、第2指示画面D2の表示を継続する。
アタッチメント163の像がフレーミング要素内に収まった場合(ステップS106:YES)、表示制御部213は、第3指示画面D3をモニタ装置142に表示させる(ステップS107)。第3指示画面D3には、計測値取得部214が取得した撮像データと、フレーミング要素と、アタッチメント163の抱え込み操作および返し操作を促す指示とが含まれる。抱え込み操作および返し操作は、アタッチメントシリンダ118の伸縮によってアタッチメント163をピン回り(Ybk軸回り)に回転させる操作である。
【0057】
アタッチメント特定部216は、撮像データから、撮像データの座標系である画像座標系(X軸およびY軸からなる二次元座標系)におけるアタッチメント163の最下点の位置を特定する(ステップS108)。画像座標系における最下点とは、撮像データにおいてアタッチメント163の像が写る領域のうち、画像座標系のY座標の値が最も大きい点である。アタッチメント特定部216は、位置特定部215が特定したアームトップの位置と、ステップS108で特定した最下点の位置とに基づいて、車体座標系におけるアタッチメント163の最下点の位置を特定する(ステップS109)。なお、画像座標系が二次元座標系であるため、撮像装置107の視線方向(奥行方向)における最下点の位置を特定することができない。ここでは、アタッチメント特定部216は、アームトップを通り撮像装置107の上下方向に伸びる軸上に最下点が存在すると仮定して位置を特定する。これは、アタッチメント163の先端部が最下点となるときに、アタッチメント163と撮像装置107とが正対することで、アームトップを通り撮像装置107の上下方向に伸びる軸上に先端部が位置することになると想定されるためである。
【0058】
アタッチメント特定部216は、最下点の位置をアタッチメント角に関連付けて一時的にメインメモリ230に記憶する(ステップS110)。アタッチメント特定部216は、メインメモリ230に記憶した最下点の位置とアタッチメント角の関係から、アタッチメント角に対する最下点の位置の極大値を特定できるか否かを判定する(ステップS111)。極大値を特定できない場合(ステップS111:NO)、アタッチメント特定部216はステップS107に処理を戻し、第3指示画面D3の表示を継続する。
【0059】
極大値を特定できる場合(ステップS111:YES)、アタッチメント特定部216は極大値に係る最下点の位置とアームトップの位置とに基づいて、アタッチメント座標系におけるアタッチメント163の制御点Pの位置を決定する(ステップS112)。具体的には、アタッチメント特定部216は、以下の手順での制御点Pの位置を決定する。アタッチメント特定部216は、極大値に係る最下点の位置をアタッチメント163の先端部の位置と推定する。アタッチメント特定部216は、極大値に係る最下点の位置と当該に対応するアタッチメント角に基づいて、アタッチメント座標系における先端部の位置を決定する。アタッチメント特定部216は、アタッチメント座標系におけるアームトップの位置(アタッチメント座標系の原点)と先端部の位置とに基づいて、アームトップと先端部との中点である制御点Pの位置を決定する。
また、アタッチメント特定部216は、アタッチメント163の先端部の位置に基づいて仮想球VSの半径rを決定する(ステップS113)。具体的には、アタッチメント特定部216は、アタッチメント163の先端部の角部(例えば刃先の右端)と制御点Pとの距離を半径rとして決定する。
アタッチメント特定部216は制御点Pの位置および半径rをメインメモリ230に記録する。
【0060】
次に、表示制御部213は、モニタ装置142に第4指示画面D4を表示する(ステップS114)。第4指示画面D4には、アタッチメント163が備えるチルト機構に係る解析の開始を示す「YESボタン」と、チルト機構の解析の不実行を示す「NOボタン」とが設けられる。入力部212は、モニタ装置142からオペレータによる「YESボタン」または「NOボタン」の操作入力を受け付ける(ステップS115)。
【0061】
オペレータによる「YESボタン」の操作入力を受け付けた場合(ステップS115:YES)、表示制御部213は、第5指示画面D5をモニタ装置142に表示させる(ステップS116)。第5指示画面D5には、計測値取得部214が取得した撮像データと、フレーミング要素と、アタッチメント163のチルト操作を促す指示とが含まれる。チルト操作は、アタッチメント163をZbk軸回りに回転させる操作である。
【0062】
アタッチメント特定部216は、物体追跡(トラッキング)技術により、撮像データにおけるアタッチメント163の先端部の位置を追跡する(ステップS117)。物体追跡技術とは、撮像データの時系列、すなわち動画像から、指定した対象が画像上でどのように移動するかを推定する技術である。具体的には、アタッチメント特定部216は、撮像データのうちステップS112で決定したアタッチメント163の先端部の周囲の部分画像を用いて、新たに取得した撮像データにおける当該部分画像の位置を推定する。
【0063】
アタッチメント特定部216は、チルト操作によって取り得る最大のチルト角時の姿勢を検出したか否かを判定する(ステップS118)。例えば、物体追跡によって特定された先端部の位置の時系列において、チルト操作の折り返しにより、先端部の高さの極大値が検出されたときに、最大のチルト角時の姿勢を検出したと判定することができる。また例えばアタッチメント特定部216は、オペレータからのモニタ装置142の操作によって最大のチルト角時の姿勢を取ったことの入力を受け付けてもよい。
【0064】
最大のチルト角時の姿勢を検出していない場合(ステップS118:NO)、アタッチメント特定部216はステップS116に処理を戻し、第5指示画面D5の表示を継続する。
最大のチルト角時の姿勢を検出した場合(ステップS118:YES)、アタッチメント特定部216は、最大のチルト角時の姿勢におけるアタッチメント163の先端部の角部と制御点Pとの距離が、仮想球VSの半径rより長いか否かを判定する(ステップS119)。制御点Pの位置はチルト操作によって変化しないため、チルト操作によって角部と制御点Pとの距離は変化する。先端部の角部と制御点Pとの距離が半径rより長い場合(ステップS119:YES)、半径rを更新する(ステップS120)。これにより、仮想球VSの半径rは、アタッチメント163のチルト操作によって取り得るすべての姿勢において制御点Pから最も遠い点までの距離となる。これにより、アタッチメント163のチルト角によらず、アタッチメント163が仮想壁VWに侵入しないように制御することができる。先端部の角部と制御点Pとの距離が半径r以下である場合(ステップS119:NO)、半径rを更新しない。
【0065】
ステップS116からステップS120の処理によりチルト機構に係る解析を終えた場合、または第4指示画面D4においてオペレータによる「NOボタン」の操作入力を受け付けた場合(ステップS115:NO)、表示制御部213は、モニタ装置142に第6指示画面D6を表示する(ステップS121)。第6指示画面D6には、アタッチメント163が備える回転機構に係る解析の開始を示す「YESボタン」と、回転機構の解析の不実行を示す「NOボタン」とが設けられる。入力部212は、モニタ装置142からオペレータによる「YESボタン」または「NOボタン」の操作入力を受け付ける(ステップS122)。
【0066】
オペレータによる「YESボタン」の操作入力を受け付けた場合(ステップS122:YES)、表示制御部213は、第7指示画面D7をモニタ装置142に表示させる(ステップS123)。第7指示画面D7には、計測値取得部214が取得した撮像データと、フレーミング要素と、アタッチメント163の回転操作を促す指示とが含まれる。回転操作は、アタッチメント163をXbk軸回りに回転させる操作である。
【0067】
アタッチメント特定部216は、撮像データにおいてアタッチメント163の側面が撮像装置107と正対しているか否かを判定する(ステップS124)。例えば、アタッチメント特定部216は、逐次取得される撮像データにおけるアタッチメント163が写っている領域の面積を計算し、アタッチメント163が正面を向いておらず、かつ面積が極小になったときに、アタッチメント163の側面が撮像装置107と正対していると判定する。また例えば、アタッチメント特定部216は、アタッチメント163の既知の側面の形状とのパターンマッチングによって、アタッチメント163の側面が撮像装置107と正対していると判定してもよい。
【0068】
アタッチメント163の側面が撮像装置107と正対していない場合(ステップS124:NO)、アタッチメント特定部216はステップS121に処理を戻し、第7指示画面D7の表示を継続する。
アタッチメント163の側面が撮像装置107と正対している場合(ステップS124:YES)、アタッチメント特定部216は、アームトップの位置と先端部との距離を算出し、アームトップと先端部との中点である制御点Pの位置を更新する(ステップS125)。これは、アタッチメント163の正面が写る画像よりアタッチメント163の側面が写る画像の方がアームトップと先端部の位置関係を正確に表すためである。
【0069】
ステップS121からステップS123の処理により回転機構に係る解析を終えた場合、または第6指示画面D6においてオペレータによる「NOボタン」の操作入力を受け付けた場合(ステップS122:NO)、表示制御部213は、モニタ装置142に確認画面D8を表示する(ステップS126)。確認画面D8には、計測値取得部214が取得した撮像データと、制御点Pを中心とする仮想球VSとが含まれる。
以上により制御装置200はアタッチメント163を包含する仮想球VSを特定し、仮想球VSのデータをメインメモリ230に記録することができる。
【0070】
《仮想壁VWの設定処理》
作業機械100のオペレータは、モニタ装置142を操作し、仮想壁VWの設定を行う。入力部212がモニタ装置142から仮想壁VWの設定指示を受け付けると、表示制御部213は、モニタ装置142に設定すべき仮想壁VWの種類の選択画面を表示させる。制御装置200が設定可能な仮想壁VWは、前壁、左壁、右壁、上壁および下壁の5種類である。前壁、左壁、右壁は鉛直方向に伸びる壁面である。上壁、下壁は水平方向に伸びる壁面である。仮想壁VWは、車体座標系で規定される、仮想壁VWの法線方向を示す法線ベクトルと、仮想壁VWが通る点の位置を示す位置ベクトルとによって表される。
【0071】
作業機械100は、旋回体140を旋回させて作業機160が届く範囲内の作業を行うことができる。そのため、通常、オペレータは、掘削などの作業を行う場合、作業機械100を旋回させる。車体座標系は、旋回体140を基準とするため、グローバル座標系の視点から見て作業機械100の旋回に追従して回転する。車体座標系に設定される仮想壁VWが作業機械100の旋回に追従して回転してしまうと、右壁および左壁は作業機械100に干渉することがなく、意味をなさない。例えば、旋回体140の右側に右壁を設定すると、旋回体140をどのように旋回させても、右壁は常に旋回体140の右側に維持され、作業機械100に干渉することがない。また、前壁は、作業機械100の旋回に追従して回転してしまうと、平面状の壁ではなく環状の壁としてふるまうため、建築物の壁面に沿った仮想壁VWとして機能しない。
そのため、第1の実施形態に係る制御装置200は、作業機械100の旋回前後でグローバル座標系における仮想壁VWの位置を維持するために、仮想壁VWの回転変換処理を行う。
【0072】
《仮想壁VWの更新および介入制御》
図10は、第1の実施形態において設定された仮想壁VWの更新および介入制御を示すフローチャート(パート1)である。図11は、第1の実施形態において設定された仮想壁VWの更新および介入制御を示すフローチャート(パート2)である。作業機械100のオペレータがモニタ装置142の操作によって少なくとも1つの仮想壁VWを設定すると、制御装置200は、以下に示す制御を開始する。
【0073】
操作量取得部211は、操作装置141からブーム161、アーム162、アタッチメント163、および旋回体140の操作信号を取得する(ステップS201)。計測値取得部214は、傾斜計測器101、旋回角センサ102、ブーム角センサ103、アーム角センサ104、アタッチメント角センサ105およびペイロードメータ106の計測値を取得する(ステップS202)。
【0074】
回転変換部218は、メインメモリ230が記憶する1つ以上の仮想壁VWそれぞれを、ステップS202で傾斜計測器101から取得した旋回体140のロール角、ピッチ角、ヨー角に基づいて回転変換し、更新する(ステップS203)。
【0075】
位置特定部215は、ステップS202で取得した計測値に基づいて車体座標系における作業機械100の外殻の複数の点とアタッチメント163の制御点Pの位置を算出する(ステップS204)。介入判定部219は、位置特定部215が特定した外殻の点を1つずつ選択し(ステップS205)、以下のステップS206からステップS212の処理を実行する。
【0076】
介入判定部219は、ステップS205で選択した点を通り、且つ、車体座標系のXsb-Ysb平面に平行な断面を特定する(ステップS206)。また、介入判定部219は、ステップS205で選択した点を通り、且つ、車体座標系のXsb-Zsb平面に平行な断面を特定する(ステップS207)。
【0077】
介入判定部219は、メインメモリ230に設定された1つ以上の仮想壁VWを1つずつ選択し(ステップS208)、以下のステップS209からステップS212の処理を実行する。
介入判定部219は、ステップS206で生成した断面とステップS208で選択した仮想壁VWとの交線を水平仮想壁線として算出する(ステップS209)。なお、ステップS206で生成した断面と仮想壁VWとの位置関係によっては水平仮想壁線が存在しない場合もある。水平仮想壁線が存在する場合、介入判定部219は、右旋回と左旋回のそれぞれについて、ステップS205で選択した点がステップS209で算出した水平仮想壁線と接触する旋回角を求める(ステップS210)。例えば、介入判定部219は、旋回中心を中心としてステップS205で選択した点を通る円と水平仮想壁線との交点を算出し、旋回中心からステップS205で選択した点へ伸びる線分と旋回中心から交点へ伸びる線分とのなす角を求める。なお、ステップS205で選択した点と水平仮想壁線との位置関係によっては交点が存在しない場合もある。
【0078】
また、介入判定部219は、ステップS207で生成した断面とステップS208で選択した仮想壁VWとの交線を鉛直仮想壁線として算出する(ステップS211)。なお、ステップS207で生成した断面と仮想壁VWとの位置関係によっては鉛直仮想壁線が存在しない場合もある。鉛直仮想壁線が存在する場合、介入判定部219は、ステップS205で選択した点とステップS211で算出した鉛直仮想壁線との距離を求める(ステップS212)。
【0079】
次に、介入判定部219は、ステップS204で特定したアタッチメント163の制御点Pについて、以下のステップS213からステップS221の処理を実行する。介入判定部219は、メインメモリ230から仮想球VSの半径rを取得する(ステップS213)。
【0080】
介入判定部219は、メインメモリ230に設定された1つ以上の仮想壁VWを1つずつ選択し(ステップS214)、以下のステップS215からステップS221の処理を実行する。
介入判定部219は、ステップS214で選択した仮想壁VWを、ステップS213で取得した半径rの長さだけ法線方向にオフセットさせたオフセット壁OWの位置を計算する(ステップS215)。すなわち介入判定部219は、ステップS214で選択した仮想壁VWを半径rの長さだけアタッチメント163の制御点Pに近づける。介入判定部219は、アタッチメント163の制御点Pを通り、且つ、車体座標系のXsb-Ysb平面に平行な断面を特定する(ステップS216)。また、介入判定部219は、アタッチメント163の制御点Pを通り、且つ、車体座標系のXsb-Zsb平面に平行な断面を特定する(ステップS217)。
【0081】
介入判定部219は、ステップS216で生成した断面とステップS215で求めたオフセット壁OWとの交線を水平仮想壁線として算出する(ステップS218)。なお、ステップS206で生成した断面とオフセット壁OWとの位置関係によっては水平仮想壁線が存在しない場合もある。水平仮想壁線が存在する場合、介入判定部219は、右旋回と左旋回のそれぞれについて、アタッチメント163の制御点PがステップS209で算出した水平仮想壁線と接触する旋回角を求める(ステップS219)。この旋回角は、仮想球VSと仮想壁VWとが接触する旋回角と等価である。例えば、介入判定部219は、旋回中心を中心としてアタッチメント163の制御点Pを通る円と水平仮想壁線との交点を算出し、旋回中心からアタッチメント163の制御点Pへ伸びる線分と旋回中心から交点へ伸びる線分とのなす角を求める。なお、アタッチメント163の制御点Pと水平仮想壁線との位置関係によっては交点が存在しない場合もある。
【0082】
また、介入判定部219は、ステップS217で生成した断面とステップS215で求めたオフセット壁OWとの交線を鉛直仮想壁線として算出する(ステップS220)。なお、ステップS217で生成した断面とオフセット壁OWとの位置関係によっては鉛直仮想壁線が存在しない場合もある。鉛直仮想壁線が存在する場合、介入判定部219は、アタッチメント163の制御点PとステップS220で算出した鉛直仮想壁線との距離を求める(ステップS221)。この距離は、仮想球VSと仮想壁VWとが接触する距離と等価である。
【0083】
介入判定部219は、ステップS210およびステップS219で求めた作業機械100上の各点および仮想球VSにおける仮想壁VWごとの旋回角に基づいて、右旋回と左旋回のそれぞれについて、複数の点および仮想球VSの少なくとも1つが少なくとも1つの仮想壁VWに接触する最小旋回角を算出する(ステップS222)。
介入判定部219は、ステップS212およびステップS221で求めた作業機械100上の各点および仮想球VSにおける仮想壁VWごとの距離に基づいて、作業機160と仮想壁VWとの最短距離を算出する(ステップS223)。
【0084】
介入判定部219は、ステップS201で取得した旋回体140の操作信号に基づいて、旋回方向および目標旋回速度を算出する(ステップS224)。介入判定部219は、操作信号が示す旋回方向についての最小旋回角が、介入開始角度より大きいか否かを判定する(ステップS225)。最小旋回角が介入開始角度より大きい場合(ステップS225:YES)、介入制御部220は旋回についての介入制御を行わない。他方、最小旋回角が介入開始角度以下である場合(ステップS225:NO)、介入制御部220は、予め定められた制限角速度テーブルに基づいて最小旋回角から制限角速度を特定し、旋回体140の目標旋回速度を制限角速度以下の値に制限する(ステップS226)。制限角速度テーブルは、最小旋回角と制限角速度との関係を示す関数であって、最小旋回角が小さいほど制限角速度が小さくなる関数である。
制限角速度テーブルは、例えば、オペレータによる旋回体140の操作感が損なわれない減速率に設定してもよい。
【0085】
介入判定部219は、ステップS201で取得したブーム161、アーム162およびアタッチメント163の操作信号に基づいて、作業機160の目標速度を算出する(ステップS227)。具体的には、介入判定部219は、ステップS201で取得したブーム161、アーム162およびアタッチメント163の操作信号に基づいて、ブーム161、アーム162およびアタッチメント163の目標速度を算出する。次に、介入判定部219は、ステップS223で算出した最短距離が、介入開始距離より長いか否かを判定する(ステップS228)。最短距離が介入開始距離より長い場合(ステップS228:YES)、介入制御部220は作業機160についての介入制御を行わない。他方、最短距離が介入開始距離以下である場合(ステップS228:NO)、介入制御部220は、作業機160の各軸を1つずつ選択し、選択した軸について、以下のステップS230からステップS231の処理を行う(ステップS229)。介入制御部220は、選択された軸の操作方向が仮想壁VWへ接近する方向の操作であるか否かを判定する(ステップS230)。選択された軸の操作方向が仮想壁VWへ接近する方向の操作ではない場合(ステップS230:NO)、介入制御部220は、選択された軸についての介入制御を行わない。他方、選択された軸の操作方向が仮想壁VWへ接近する方向の操作である場合(ステップS230:YES)、介入制御部220は、選択された軸について、予め定められた制限速度テーブルに基づいて制限速度を特定し、目標速度を制限速度以下の値に制限する(ステップS231)。
【0086】
制御信号出力部221は、ブーム161、アーム162、アタッチメント163の目標速度および旋回体140の目標角速度に基づいて制御信号を生成し、コントロールバルブ113に出力する(ステップS232)。
【0087】
《作用・効果》
このように、制御装置200は、以下の手順で作業機械100を制御する。制御装置200は、撮像装置107から撮像データを取得する。制御装置200は、撮像データに基づいてアタッチメント163の形状を特定する。制御装置200は、特定したアタッチメント163の形状に基づいて、仮想壁VWとアタッチメント163とが接触しないように作業機械100を制御する。
これにより、制御装置200は、アタッチメント163が交換された場合、撮像装置107にアタッチメント163を撮像させ、アタッチメント163の形状特定処理を実行させることで、容易にアタッチメント163のパラメータを決定することができる。
【0088】
なお、第1の実施形態に係る制御装置200は、アタッチメント163を包含する仮想球VSに基づいてアタッチメント163が仮想壁VWに接触しないように制御するが、これに限られない。例えば、他の実施形態においては、アタッチメント163の三次元形状を特定し、当該三次元形状に基づいてアタッチメント163が仮想壁VWに接触しないように制御してもよい。例えば、撮像装置107がステレオカメラやLiDARなど、撮像データとして三次元データを生成する場合、制御装置200はアタッチメント163の抱え込み操作および返し操作によって、視点を変えながらアタッチメント163の像を得ることができるため、精度よくアタッチメント163の外殻の三次元データを得ることができる。
【0089】
〈第2の実施形態〉
第1の実施形態に係る作業機械100の制御装置200は、撮像データからアタッチメント163の位置を計算して、制御に用いるパラメータを決定する。第2の実施形態に係る制御装置200は、予め作業機160に取り付け可能な複数のアタッチメント163のパラメータを記憶する。そして、制御装置200は、撮像データに基づいてアタッチメント163の種類を識別し、予め記憶されたパラメータの中から制御に用いるパラメータを決定する。
【0090】
第2の実施形態に係る制御装置200のストレージ250は、画像データの入力を受け付け、当該画像データに写るアタッチメント163の識別情報(型番など)を出力する識別モデルを記憶する。識別モデルは、例えばアタッチメント163が写る画像データと当該アタッチメント163の識別情報との組み合わせに係る学習用データセットを用いて学習された学習済みモデルであってよい。またストレージ250は、アタッチメント163ごとに、当該アタッチメント識別情報と当該アタッチメント163に係る制御点Pおよび仮想球VSの半径を関連付けて記憶する。
【0091】
図12は、第2の実施形態におけるアタッチメント163の形状特定処理を示すフローチャートである。図13は、第2の実施形態に係る形状特定処理における画面例を示す図である。
表示制御部213は、モニタ装置142に第1指示画面D11(図13)を表示する(ステップS301)。第1指示画面D11には、アタッチメント163の形状特定処理の開始を示す「YESボタン」と、アタッチメント163の形状特定処理の不実行を示す「NOボタン」とが設けられる。入力部212は、モニタ装置142からオペレータによる「YESボタン」または「NOボタン」の操作入力を受け付ける(ステップS302)。
【0092】
オペレータによる「NOボタン」の操作入力を受け付けた場合(ステップS302:NO)、形状特定処理を終了する。この場合、前回設定されたアタッチメント163の制御点Pおよび半径rのデータが引き続いて用いられる。
【0093】
オペレータによる「YESボタン」の操作入力を受け付けた場合(ステップS302:YES)、計測値取得部214は、各種計測値および撮像データの取得を開始する(ステップS303)。また、位置特定部215は、ステップS303で取得した計測値に基づいて、車体座標系におけるアームトップの位置の算出を開始する(ステップS304)。以降、計測値取得部214および位置特定部215は、形状特定処理の実行中、継続的に各種計測値および撮像データの取得並びにアームトップの位置の算出を実行する。
【0094】
次に、表示制御部213は、第2指示画面D12をモニタ装置142に表示させる(ステップS305)。第2指示画面D12には、計測値取得部214が取得した撮像データと、フレーミング要素と、フレーミング要素にアタッチメント163が入るように操作することを促す指示とが含まれる。フレーミング要素は、予め定められた範囲を表す枠線であり、アタッチメント163の位置決め要素を表す。
【0095】
次に、アタッチメント特定部216は、第2指示画面D12においてアタッチメント163の像がフレーミング要素内に収まっているか否かを判定する(ステップS306)。アタッチメント163の像がフレーミング要素内に収まっていない場合(ステップS306:NO)、ステップS305に処理を戻し、第2指示画面D12の表示を継続する。
アタッチメント163の像がフレーミング要素内に収まった場合(ステップS306:YES)、アタッチメント特定部216は、撮像データを、ストレージ250に記憶された識別モデルに入力する(ステップS307)。撮像データに写るアタッチメント163の像に基づいて、識別モデルを用いてアタッチメント163の種類を識別することは、アタッチメント163の形状を特定する処理の一例である。アタッチメント特定部216は、識別モデルから識別結果として、最も確度の高いアタッチメント163の識別情報と、その確度を取得する。アタッチメント特定部216は、確度が所定の閾値以上であるか否かを判定する(ステップS308)。
【0096】
確度が所定の閾値未満である場合(ステップS308:NO)、アタッチメント特定部216は、ステップS307に処理を戻し、再度撮像データを取得して識別を試みる。例えば、撮像データにおいてアタッチメント163の像がぶれている場合には、確度が低くなることがある。
【0097】
確度が所定の閾値以上である場合(ステップS308:YES)、アタッチメント特定部216は、ストレージ250から、識別結果に含まれる識別情報に関連付けられた制御点Pの位置および仮想球VSの半径rを取得し、メインメモリ230に記録する(ステップS309)。
その後、表示制御部213は、モニタ装置142に確認画面D13を表示する(ステップS310)。確認画面D13には、計測値取得部214が取得した撮像データと、制御点Pを中心とする仮想球VSとが含まれる。
以上により制御装置200はアタッチメント163を包含する仮想球VSを決定し、仮想球VSのデータをメインメモリ230に記録することができる。
【0098】
《作用・効果》
このように、制御装置200は、以下の手順で作業機械100を制御する。制御装置200は、撮像装置107から撮像データを取得する。制御装置200は、撮像データに基づいてアタッチメント163の形状を特定する。制御装置200は、形状に基づいて、仮想壁VWとアタッチメント163とが接触しないように作業機械100を制御する。
これにより、制御装置200は、アタッチメント163が交換された場合、撮像装置107にアタッチメント163を撮像させることで、容易にアタッチメント163のパラメータを決定することができる。
【0099】
なお、第2の実施形態に係る制御装置200は学習済みモデルを用いてアタッチメント163を特定するが、これに限られない。例えば、他の実施形態においては、制御装置200は、取り付け可能なアタッチメント163ごとにアタッチメント163の形状を表す外観画像データを記憶しておき、当該外観画像データと撮像データとのパターンマッチングによってアタッチメント163を特定してもよい。
【0100】
また第2の実施形態に係る制御装置200は、識別の角度が閾値以上になるまで繰り返し識別モデルによる識別を行うが、これに限られない。例えば、他の実施形態においては、識別に失敗した場合に、オペレータから手入力でパラメータの入力を受け付けてもよい。また他の実施形態においては、識別に失敗した場合に、第1の実施形態に係るステップS101からステップS126(図8)に示す処理によってパラメータを決定してもよい。
【0101】
〈他の実施形態〉
以上、図面を参照して一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、様々な設計変更等をすることが可能である。すなわち、他の実施形態においては、上述の処理の順序が適宜変更されてもよい。また、一部の処理が並列に実行されてもよい。
上述した実施形態に係る制御装置200は、単独のコンピュータによって構成されるものであってもよいし、制御装置200の構成を複数のコンピュータに分けて配置し、複数のコンピュータが互いに協働することで制御装置200として機能するものであってもよい。このとき、制御装置200を構成する一部のコンピュータが作業機械100の内部に搭載され、他のコンピュータが作業機械100の外部に設けられてもよい。
【0102】
上述した実施形態に係る作業機械100は、運転室180に搭乗したオペレータによって操作されるが、他の実施形態に係る作業機械100はこれに限られない。図14は、他の実施形態に係る作業システムの構成を示す図である。他の実施形態に係る作業機械100は、図14に示すように遠隔操作装置500によって操作されてもよい。遠隔操作される作業機械100の制御装置200は、撮像装置107の撮像データを遠隔操作装置500にリアルタイムに送信する。遠隔操作装置500は、運転席510、ディスプレイ520、操作装置530及び遠隔操作サーバ540を備える。遠隔操作サーバ540は、作業機械100から受信した撮像データをディスプレイ520に表示させる。これにより、オペレータは遠隔の作業機械100の周囲の状況を認識することができる。また遠隔操作サーバ540は、オペレータによる操作装置530の操作信号をネットワークを介して作業機械100に送信する。遠隔操作サーバ540は、上述の実施形態に係る制御装置200の少なくとも一部の機能を実行する。つまり、遠隔操作サーバ540を備える作業システムにおいて、制御装置200と遠隔操作サーバ540は、作業システムを構成する。
【0103】
また、上述した実施形態に係る制御装置200は、アタッチメント163の制御点Pを回転軸と先端部の中点とするが、これに限られない。例えば他の実施形態においては、制御点Pがアタッチメント163の回転軸の中心であってもよい。制御点Pをアタッチメント163の回転軸の中心とする場合、アタッチメント163の回転角によらず制御点Pが定まるため、式(3)に示すアタッチメント-車体変換行列Tat sbによる座標変換計算を省略することができる。
【0104】
また、上述した実施形態に係る制御装置200は、仮想壁VWを平面として扱うために仮想壁VWの回転変換処理を行うが、これに限られない。例えば、他の実施形態において、仮想壁VWを作業機械100を囲む環状の壁として機能させたい場合には、仮想壁VWの回転変換処理を行わなくてもよい。この場合、仮想壁VWは曲面となる。なお、他の実施形態に係る制御装置200は、曲面として定義した仮想壁VWについて回転変換処理を行ってもよい。
【符号の説明】
【0105】
100…作業機械 101…傾斜計測器 102…旋回角センサ 103…ブーム角センサ 104…アーム角センサ 105…アタッチメント角センサ 106…ペイロードメータ 107…撮像装置 111…動力源 112…油圧ポンプ 113…コントロールバルブ 114…走行モータ 115…旋回モータ 116…ブームシリンダ 117…アームシリンダ 118…アタッチメントシリンダ 120…走行体 140…旋回体 141…操作装置 142…モニタ装置 160…作業機 161…ブーム 162…アーム 163…アタッチメント 180…運転室 200…制御装置 210…プロセッサ 211…操作量取得部 212…入力部 213…表示制御部 214…計測値取得部 215…位置特定部 216…アタッチメント特定部 217…生成部 218…回転変換部 219…介入判定部 220…介入制御部 221…制御信号出力部 230…メインメモリ 250…ストレージ 270…インタフェース P…制御点 VS…仮想球 VW…仮想壁
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14