(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-25
(45)【発行日】2023-02-02
(54)【発明の名称】現場監視装置、現場監視方法及び現場監視プログラム
(51)【国際特許分類】
B25J 13/08 20060101AFI20230126BHJP
H04N 7/18 20060101ALI20230126BHJP
【FI】
B25J13/08 A
H04N7/18 D
H04N7/18 K
(21)【出願番号】P 2019160333
(22)【出願日】2019-09-03
【審査請求日】2021-12-13
(73)【特許権者】
【識別番号】507250427
【氏名又は名称】日立GEニュークリア・エナジー株式会社
(74)【代理人】
【識別番号】110001807
【氏名又は名称】弁理士法人磯野国際特許商標事務所
(72)【発明者】
【氏名】関 洋
(72)【発明者】
【氏名】平野 克彦
【審査官】杉山 悟史
(56)【参考文献】
【文献】特開2018-158439(JP,A)
【文献】特表2013-521137(JP,A)
【文献】特表2013-543764(JP,A)
【文献】特開2014-079824(JP,A)
【文献】特開2017-042853(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ~ 21/02
H04N 7/18
(57)【特許請求の範囲】
【請求項1】
多関節ロボットが現場に投入される前に、前記多関節ロボットを操作するためのロボットパラメータ及び前記多関節ロボットを撮像するカメラを操作するためのカメラパラメータを学習する準備処理部と、
前記多関節ロボットが現場に投入されている間に前記多関節ロボットに対する障害物を検知した場合、前記学習したロボットパラメータ及び前記学習したカメラパラメータの将来部分を更新する現場処理部と、
を備え
、
前記現場処理部は、
前記カメラの視野において前記多関節ロボットの関節が前記障害物に隠蔽されており、かつ、前記カメラが移動可能である場合、
対角線を境界として前記視野を分割した4つの領域であって、予め左右上下のいずれか1つの移動方向が関連付けられている領域のうち、前記障害物が存在する領域を特定し、前記特定した領域に関連付けられている前記移動方向に前記カメラが移動するように、前記カメラパラメータの将来部分を更新すること、
を特徴とする現場監視装置。
【請求項2】
前記準備処理部は、
仮想空間内で前記ロボットパラメータ及び前記カメラパラメータを学習し、
前記現場処理部は、
実際の作業環境と、正常状態にある前記作業環境のサンプルとを比較することによって、前記障害物を検知すること、
を特徴とする請求項1に記載の現場監視装置。
【請求項3】
前記準備処理部は、
前記多関節ロボットが行う作業の種類、又は、前記多関節ロボットが行う作業の対象となる物体の種類ごとに、前記ロボットパラメータ及び前記カメラパラメータを学習すること、
を特徴とする請求項
2に記載の現場監視装置。
【請求項4】
前記現場処理部は、
前記カメラが、前記多関節ロボットの関節及び前記多関節ロボットの作業対象である物体を同一画面で撮像できるように、前記学習したカメラパラメータの将来部分を更新すること、
を特徴とする請求項
3に記載の現場監視装置。
【請求項5】
前記現場処理部は、
3次元の点群又は3次元のメッシュとして前記実際の作業環境を取得すること、
を特徴とする請求項
4に記載の現場監視装置。
【請求項6】
現場監視装置の準備処理部は、
多関節ロボットが現場に投入される前に、前記多関節ロボットを操作するためのロボットパラメータ及び前記多関節ロボットを撮像するカメラを操作するためのカメラパラメータを学習し、
前記現場監視装置の現場処理部は、
前記多関節ロボットが現場に投入されている間に前記多関節ロボットに対する障害物を検知した場合、前記学習したロボットパラメータ及び前記学習したカメラパラメータの将来部分を更新する
とともに、
前記カメラの視野において前記多関節ロボットの関節が前記障害物に隠蔽されており、かつ、前記カメラが移動可能である場合、
対角線を境界として前記視野を分割した4つの領域であって、予め左右上下のいずれか1つの移動方向が関連付けられている領域のうち、前記障害物が存在する領域を特定し、前記特定した領域に関連付けられている前記移動方向に前記カメラが移動するように、前記カメラパラメータの将来部分を更新すること、
を特徴とする現場監視装置の現場監視方法。
【請求項7】
現場監視装置の準備処理部に対し、
多関節ロボットが現場に投入される前に、前記多関節ロボットを操作するためのロボットパラメータ及び前記多関節ロボットを撮像するカメラを操作するためのカメラパラメータを学習する処理を実行させ、
前記現場監視装置の現場処理部に対し、
前記多関節ロボットが現場に投入されている間に前記多関節ロボットに対する障害物を検知した場合、前記学習したロボットパラメータ及び前記学習したカメラパラメータの将来部分を更新する
とともに、
前記カメラの視野において前記多関節ロボットの関節が前記障害物に隠蔽されており、かつ、前記カメラが移動可能である場合、
対角線を境界として前記視野を分割した4つの領域であって、予め左右上下のいずれか1つの移動方向が関連付けられている領域のうち、前記障害物が存在する領域を特定し、前記特定した領域に関連付けられている前記移動方向に前記カメラが移動するように、前記カメラパラメータの将来部分を更新する処理を実行させること、
を特徴とする現場監視装置を機能させるための現場監視プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、現場監視装置、現場監視方法及び現場監視プログラムに関する。
【背景技術】
【0002】
近時、ロボットが作業現場において使用されることが多い。ロボットの使用は、単に不足しがちな労働力確保の観点だけではなく、作業の精度を向上するという品質面、及び、危険な場所への人員派遣を避けるという安全面でも有利である。
【0003】
特許文献1のロボットシステムは、外科医が患者の手術を行うのを支援する。複数の多関節アームを有するロボットは、外科医の実演動作を学習する。ロボットは、その後、外科医の監督下で学習結果に基づき自律的に作業(患部の縫合等)するステップと、外科医の指示に基づき外科医の道具となって作業するステップとを途切れなく繰り返す。ロボットシステムは、作業の間、患部の拡張現実(AR)を外科医の視野に提供する。
【0004】
特許文献2の作業画面表示装置は、多関節アームを有するロボットが作業している様子を撮像する。作業箇所がロボットのアームによって隠蔽された場合、作業画面表示装置は、隠蔽箇所の画像を削除し、予め撮像しておいた完全な画像のうち視点位置が合致するものを、隠蔽箇所に貼り付ける。
【0005】
特許文献3の作業支援システムは、作業周辺環境、作業内容及び制約条件に基づいて、作業を行う作業装置の構成を決定する。作業装置は、複数のモジュール(腕、関節)を有する。仮に作業周辺環境が変化した場合でも、作業支援システムは、その変化に応じて、作業装置の構成を見直すことができる。
【先行技術文献】
【特許文献】
【0006】
【文献】特表2013-543764号公報
【文献】特開2014-79824号公報
【文献】特開2017-42853号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ロボットに現場作業をさせる場合、オペレータの詳細な指示を受けるまでもなく作業内容を簡便に決定するとともに、必要に応じて作業内容を部分的に見直し、さらに、作業の様子をカメラ等で監視することが求められている。特に、災害後の現場では、環境が時々刻々と変化し、予想外のタイミングに予想外の位置に予想外の障害物が出現する場合が多い。すると、その都度、作業内容の見直し及びカメラ位置の見直しが必要になる。しかしながら、引用文献1~3は、このような場合における作業内容の見直し及びカメラ位置の見直しには言及していない。
そこで、本発明は、作業現場の予想外の変化に応じ、ロボットの作業内容及びロボットを監視するカメラの位置を簡便に見直すことを目的とする。
【課題を解決するための手段】
【0008】
本発明の現場監視装置は、多関節ロボットが現場に投入される前に、前記多関節ロボットを操作するためのロボットパラメータ及び前記多関節ロボットを撮像するカメラを操作するためのカメラパラメータを学習する準備処理部と、前記多関節ロボットが現場に投入されている間に前記多関節ロボットに対する障害物を検知した場合、前記学習したロボットパラメータ及び前記学習したカメラパラメータの将来部分を更新する現場処理部と、を備え、前記現場処理部は、前記カメラの視野において前記多関節ロボットの関節が前記障害物に隠蔽されており、かつ、前記カメラが移動可能である場合、対角線を境界として前記視野を分割した4つの領域であって、予め左右上下のいずれか1つの移動方向が関連付けられている領域のうち、前記障害物が存在する領域を特定し、前記特定した領域に関連付けられている前記移動方向に前記カメラが移動するように、前記カメラパラメータの将来部分を更新すること、を特徴とする。
その他の手段については、発明を実施するための形態のなかで説明する。
【発明の効果】
【0009】
本発明によれば、作業現場の予想外の変化に応じ、ロボットの作業内容及びロボットを監視するカメラの位置を簡便に見直すことができる。
【図面の簡単な説明】
【0010】
【
図4】障害物出現時のカメラパラメータの見直しを説明する図である。
【
図7】現場処理手順のステップS206の詳細フローチャートである。
【発明を実施するための形態】
【0011】
以降、本発明を実施するための形態(以降“本実施形態”とも呼ぶ)を、図等を参照しつつ詳細に説明する。本実施形態は、多関節ロボットが発電所等の現場で作業する例である。しかしながら、多関節ロボットの周辺に予想外の有体物が近づく可能性のある現場に対し、本発明は広く適用可能である。
【0012】
(現場監視装置)
図1は、現場監視装置1の構成等を説明する図である。現場監視装置1は、一般的なコンピュータであり、中央制御装置11、マウス、キーボード等の入力装置12、ディスプレイ等の出力装置13、主記憶装置14、補助記憶装置15及び通信装置16を備える。これらは、バスで相互に接続されている。補助記憶装置15は、ロボットパラメータ31、カメラパラメータ32及び環境モデル33(詳細後記)を記憶している。
【0013】
主記憶装置14における準備処理部21及び現場処理部22は、プログラムである。中央制御装置11は、これらのプログラムを補助記憶装置15から読み出し主記憶装置14にロードすることによって、それぞれのプログラムの機能(詳細後記)を実現する。現場2には、多関節ロボット3、固定カメラ4及び移動カメラ5が配置されている。多関節ロボット3、固定カメラ4及び移動カメラ5は、ネットワーク6を介して現場監視装置1に接続されており、画像、信号等のデータを現場監視装置1との間でリアルタイムに通信可能である。
【0014】
多関節ロボット3は、走行機構7、複数のセグメント8(8a~8f)、複数の関節9(9a~9f)、手40及び手先カメラ41を有する。セグメント8及び関節9は、集合的に腕と呼ばれる。走行機構7は、現場2内の任意の位置に移動することができる。関節9のそれぞれは、3つの軸を有しており(自由度=3)、その末端側にあるセグメント8を回転させることができる。この結果、腕の末端にある手40は、関節9aを中心とし、半径が“腕の長さ-セグメント8aの長さ”である球のうち、現場2の床(地面)上の空間内の任意の位置に届く。
【0015】
手40は、例えば、現場2に存在する物体42を把持し、容器43内に格納することができる。手先カメラ41は、手40の周辺を撮像する。手先カメラ41は、360度のパン及びチルト並びに所定範囲のズームが可能である。固定カメラ4は、固定台44に固定されている。固定カメラ4もまた、360度のパン及びチルト並びに所定範囲のズームが可能である。移動カメラ5は、走行機構45に高さの調節が可能な柱46を介して固定されている。移動カメラ5もまた、360度のパン及びチルト並びに所定範囲のズームが可能である。障害物74については後記する。
【0016】
(ロボットパラメータ)
現場監視装置1は、多関節ロボット3に対してロボットパラメータRtを設定する。ロボットパラメータRtは、以下のような“3+3×i”次元の時系列データである。
Rt=[(xt,yt,zt),Jit(θit,φit,ψit)]
【0017】
ここで、“t”は、時刻である。“(x
t,y
t,z
t)”は、走行機構7の3次元空間における位置座標である。“i”は、関節の番号であり、走行機構7に近いほうからi=1、2、3、・・・である。なお、
図1のように、多関節ロボット3の走行機構7が現場2の床面上のみを走行する場合、z
tは“0”に固定される。走行機構7が床面から離れたガイド路面(図示せず)を走行する場合、z
tは、正値を有することになる。“J
it(θ
it,φ
it,ψ
it)”は、i番目の関節9の軸の回転角度である。説明の単純化のため、前記したように、すべての関節の自由度は“3”であるとする。関節9間の各セグメント8の長さは、既知である。
【0018】
(カメラパラメータ)
現場監視装置1は、移動カメラ5及び固定カメラ4に対してカメラパラメータCtを設定する。移動カメラ5は、現場2の3次元空間内の任意の位置に移動することができる。カメラパラメータCtは、以下のような6次元の時系列データである。カメラパラメータCtは、移動カメラ5及び固定カメラ4のそれぞれについて定義される。
Ct=[(xt,yt,zt),(αt,βt,γt)]
【0019】
ここで、“t”は、時刻である。“(xt,yt,zt)”は、移動カメラ5及び固定カメラ4のカメラ本体の3次元空間における位置座標である。“(αt,βt,γt)”のうち、“αt”は、左右方向の角度(パン)である。“βt”は、上下方向の角度(チルト)である。“γt”は、画角(ズーム比)である。結局、“(αt,βt,γt)”は、カメラの可視範囲を決定する。固定カメラ4のカメラパラメータCtの“(xt,yt,zt)”が定数であるのに対して、移動カメラ5のカメラパラメータCtの“(xt,yt,zt)”は、変数である。
【0020】
(環境モデル)
環境モデル33は、多関節ロボット3が作業する現場2の3次元の地図である。環境モデル33は、建物の構造物(床面、壁面、柱及び天井面)、設備、配管等を記載している。そして、環境モデル33は、建物の竣工時に初期作成される。設備の増設・除去がある都度、環境モデル33が更新されるのが理想である。しかしながら、災害直後の設備の変化(設備の破片が床面に飛散する等)は、そもそも予測することが困難であり、環境モデル33は、簡単には更新され得ない。そこで、ロボットパラメータ及びカメラパラメータが環境モデル33に基づいて一旦学習された後、多関節ロボットが現場2に投入された時点で、ロボットパラメータRt及びカメラパラメータCtを現状に即して修正する必要性が生じる。
【0021】
(既存の制御例)
図2は、既存の制御例を説明する図である。任意の位置に設置されているカメラ(
図1の例では、固定カメラ4又は移動カメラ5)は、ロボットの作業対象となる物体42及び多関節ロボットの手40を撮像することによって、物体と手との位置関係を検知する(符号51)。既存の現場監視装置は、カメラから物体と手との位置関係を受信する(符号52)。現場監視装置は、位置関係に基づき、その時点におけるロボットパラメータの変化量及びカメラパラメータの変化量を決定する(符号53)。
【0022】
現場監視装置は、決定したロボットパラメータの変化量を多関節ロボットに送信し、決定したカメラパラメータの変化量をカメラに送信する(符号54)。すると、多関節ロボットは、受信したロボットパラメータの変化量に従い走行機構及び関節を動かす。カメラは、受信したカメラパラメータの変化量に従い走行機構(移動カメラの場合)を動かし、パン、チルト及び画角を変化させ、多関節ロボットを画面上で追跡する。このような一連の動作が時点t1において終了した後、カメラは、新たな位置から新たなパン等の値で、物体及び手を撮像することによって、物体と手との位置関係を検知する。その後、同様の処理が繰り返される(時点t2、t3、t4、・・・)ことになる。
【0023】
結局、カメラが物体と手との位置関係を現場監視装置に送信する“フィードバック”、及び、現場監視装置がパラメータの変化量を多関節ロボット及びカメラに送信する“フィードフォワード”が交互かつ連鎖的に繰り返されることになる。ここでカメラが物体と手との位置関係を撮像する例を記述したのは、通常、多関節ロボットは手を使用して物体に働きかけるからである。
図2の全期間において現場監視装置は、カメラが撮像した多関節ロボットと物体以外の周辺環境(他設備、天井面、壁面、障害物等)との位置関係に基づいて、多関節ロボットが周辺環境と接触しないようにロボットパラメータを決定する。
【0024】
(本願の制御例)
図3は、本実施形態の制御例を説明する図である。本実施形態の現場監視装置は、カメラが障害物を検知するまでの正常期間61においては、カメラ及び多関節ロボットとの間で、フィードバック及びフィードフォワードの繰り返し処理を実行しない。ここでのカメラは、固定カメラ4及び移動カメラ5を総括する概念である。
【0025】
現場監視装置は、時点t1において、3次元教師付き学習データを使用して、仮想空間において時系列のロボットパラメータ及びカメラパラメータを学習する(符号62)。ここでの学習データは、作業前の3次元画像及び作業後の3次元画像の組合せである。多関節ロボットが行うべき作業が、物体を容器に格納する作業である場合、作業前の3次元画像には、作業空間を画定する壁面、床面に転がっている作業対象の物体、及び、床面に置かれた空の容器が写り込んでいる。作業後の3次元画像には、作業空間を画定する壁面、及び、床面に置かれ、作業対象の物体を格納した容器が写り込んでいる。
【0026】
現場監視装置は、例えば、ニューラルネットワークの入力層に作業前の3次元画像を入力し、ニューラルネットワークの中間層に無作為に作成した重み(時系列のロボットパラメータ及びカメラパラメータに相当する)を入力する。そして、現場監視装置は、ニューラルネットワークの出力層の出力結果と、作業後の3次元画像との差分を算出する。現場監視装置は、当該処理を繰り返し、最も差分が小さくなる重みを、時系列のロボットパラメータ及びカメラパラメータとする。現場監視装置は、ニューラルネットワークを使用する代わりに、多関節ロボット自体を仮想空間内で模擬運転してもよい。
【0027】
現場監視装置は、学習済みの時系列のロボットパラメータ及びカメラパラメータを多関節ロボット及びカメラに送信する(符号63)。多関節ロボットは、時系列のロボットパラメータのうちその時点の変化量を“小出し”にして、関節及び走行機構を動かす(符号64)。カメラについても同様である。
【0028】
正常期間61において、カメラは、時々刻々と変化する作業環境を撮像するとともに、撮像した作業環境を現場監視装置に送信する(符号65)。ここでの撮像は、専ら障害物の検知を目的としており、
図2のようにロボットパラメータ及びカメラパラメータの決定を目的としたものではない。現場監視装置は、受信した作業環境と環境モデル33(正常状態にある作業環境のサンプル)とを比較し(符号66)、予想外の障害物が存在していることを検知する(符号67)。
【0029】
ここでの作業環境とは、多関節ロボットが作業する現場の現況である。ここでの障害物とは、学習済の時系列のロボットパラメータRt又はカメラパラメータCtの将来部分の変更を余儀なくさせる異物であり、例えば、災害後の現場における天井からの落下物である。落下物は、例えば多関節ロボットの腕の動きを妨害し、カメラが多関節ロボットの関節等を撮像する視野を遮る。
【0030】
正常期間61においてカメラが作業環境を撮像している(符号65)とき、そのカメラに設定されているカメラパラメータは、時点t1においてカメラが現場監視装置から受信(符号63)した学習済のものである。したがって、正常期間61においてカメラは、多関節ロボットの作業と全く無関係な作業環境を撮像することはない。つまり、カメラは、あらゆる障害物を検知するのではなく、多関節ロボットの作業に直接関係のある位置に出現した障害物のみを検知する。
【0031】
(作業環境を撮像するカメラの型式)
作業環境を撮像するカメラは、
図1の移動カメラ5であってもよいし、固定カメラ4であってもよいし、その他のカメラであってもよい。作業環境を撮像するカメラの型式は、ステレオカメラ、3次元レーザカメラ等を含む。作業監視装置は、ステレオカメラ又は3次元レーザカメラが取得した現場の現況を示す3次元点群モデル又は3次元メッシュモデルと、環境モデル33とを比較してもよい
【0032】
作業監視装置は、障害物を検知する(符号67)と、学習済の時系列のロボットパラメータR
tを廃棄し、以降は、その都度送信されるロボットパラメータR
tに従う旨の指示を多関節ロボットに送信する(符号68)。同時に、作業監視装置は、学習済の時系列のカメラパラメータC
tを廃棄し、以降は、その都度送信されるカメラパラメータC
tに従うとともに、物体及び手の位置関係を撮像する旨の指示をカメラに送信する(符号68)。これらの指示は、“シーケンス組み換え指示”と呼ばれる。その後の期間は、“異常期間69”となり、
図2の処理が繰り返される。つまり、現場監視装置は、カメラが撮像した多関節ロボットと物体以外の周辺環境(他設備、天井面、壁面、障害物等)との位置関係に基づいて、多関節ロボットが周辺環境と接触しないようにロボットパラメータを決定する。
【0033】
図2に比して
図3の正常期間61は、現場監視装置、多関節ロボット及びカメラが負担すべき情報処理量が少なくなる。例えば、多関節ロボットが現場内のほぼ同じ位置でほぼ同じ作業を毎日繰り返す(1分×10回/日=10分/日)場合、予想外の障害物が出現しない限り、現場監視装置が多関節ロボットに送信する時系列のロボットパラメータR
tは、ほぼ同じものとなる。時系列のカメラパラメータC
tについても同様である。よって、現場監視装置は、フィードバック及びフィードフォワードの繰り返し処理を省略し、正常期間61の処理負担を軽減する。一方、障害物が出現すると、現場監視装置は、本来のフィードバック及びフィードフォワードの繰り返し処理を行う。
【0034】
(パラメータの学習)
ロボットパラメータRtが決まれば、多関節ロボット3の手40の軌跡は一意に決まる。しかしながら、手40の軌跡が決まっても、時系列パラメータRtは、一意に決まらない。同じ手40の軌跡を実現する“Jit”の組合せが多く存在するからである(逆運動学)。そこで、多くの組合せの候補から、適当なものを選択する必要性が生じる。選択条件の例は、以下の通りである。
【0035】
〈経済面〉
・関節を回転させるアクチュエータの消費電力が小さい。
・走行機構の移動距離が短い。
〈安全面〉
・多関節ロボットの重心が低い。
・多関節ロボットの重心移動が小さい。
・多関節ロボットの床投影面に重心が収まる。
・多関節ロボットと周辺環境(他設備、壁面、天井面等)との距離が小さい。
【0036】
多くの時系列のロボットパラメータRtの過去例から、所定の選択条件に基づき、今次作業用の時系列のロボットパラメータRtを選択することを、ロボットパラメータの“学習”と呼ぶ。同様に、多くの時系列のカメラパラメータCtの過去例から、所定の選択条件に基づき、今次作業用の時系列のカメラパラメータCtを選択することを、カメラパラメータの“学習”と呼ぶ。カメラ用の選択条件も、前記した多関節ロボット用の選択条件に準ずる。
【0037】
過去例の十分な蓄積がない場合、作業監視装置1は、環境モデル33を使用したシミュレーションによって、今次作業用の時系列のロボットパラメータRt及び時系列のカメラパラメータCtを作成することができる。例えば、作業監視装置1は、出力装置13に、環境モデル33を仮想空間として表示する。そして、作業監視装置1は、ユーザが特定の作業を想像しながら仮想空間内において、多関節ロボット3の手40の軌跡及び移動カメラ5の軌跡及び光軸の向きを、入力装置12を介して描画するのを受け付ける。このようにして作業監視装置1が今次作業用の時系列のロボットパラメータRt及びカメラパラメータCtを作成することも“学習”と呼ぶ。
【0038】
作業監視装置1は、前記したように、過去の画像を学習データとして、今次作業用の時系列のロボットパラメータRtを機械学習してもよい。学習データとは、例えば、作業前の作業対象の物体の画像、及び、作業後の当該物体の画像である。学習データの収集はユーザが行うが、時系列のロボットパラメータRtそのものは、作業監視装置1によって出力される。時系列のカメラパラメータCtについても同様である。以上から明らかなように、本実施形態では、現場に予想外の障害物が存在しない、すなわち、環境モデル33がそのまま使用できることを前提として時系列のロボットパラメータRt及び時系列のカメラパラメータCtを作成することを、広く“学習”と呼んでいる。
【0039】
(障害物検知時のカメラパラメータの見直し)
図4は、障害物検知時のカメラパラメータの見直しを説明する図である。まず、ケース1に注目する。俯瞰
図71は、移動カメラ5が関節9を撮像している様子を真上から見下ろすように俯瞰した図である。付近には、移動カメラ5の視野を遮る障害物は存在しない。このとき、現場監視装置は、カメラパラメータC
tのうち、“(α
t,β
t,γ
t)”を僅かに変化させる。
【0040】
すると、移動カメラ5は、関節9の最大拡大画像を画面72の中央に捉える。“±Δα”は、パンの値を大きく又は小さくすることによって、カメラの光軸を右方向又は左方向にずらすことを意味する。“±Δβ”は、チルトの値を大きく又は小さくすることによって、カメラの光軸を上方向又は下方向にずらすことを意味する。“-Δγ”は、画角を最小にする(最大限度に拡大する)ことを意味する。
【0041】
次に、ケース2に注目する。俯瞰
図73は、移動カメラ5が関節9を撮像している様子を真上から見下ろすように俯瞰した図である。移動カメラ5と関節9との間に、移動カメラ5の視野の一部を遮る障害物74が存在する。ケース1と同様に、移動カメラ5は、関節9の最大拡大画像を画面75の中央に捉えようとしている。なぜならば、他のカメラからのデータにより、当該移動カメラ5は、関節9の位置を知り得るからである。しかしながら、障害物74が関節9を隠蔽している。
【0042】
このとき、現場監視装置は、カメラパラメータCtのうち、“xt”を僅かに変化させる。すると、移動カメラ5は、障害物74を回避して関節9を画面76の中央に捉える。“+Δx”は、カメラ本体の位置を、x軸の正方向(右方向)にずらすことによって、カメラの光軸が障害物74の右側に逸れることを意味する。このとき現場監視装置がカメラパラメータCtのうち“xt”を正方向にずらしたのは、障害物74の画面上の重心が画面の重心79を基準として左側の象限80aにあるからである。因みに、このとき、現場監視装置がカメラパラメータCtのうち“(αt,βt,γt)”をどのように変化させても、関節9は隠蔽されたままである。
【0043】
同様に、ケース2において、移動カメラ5は、関節9の最大拡大画像を画面77の中央に捉えようとしている。しかしながら、障害物74が関節9を隠蔽している。ただし、画面77における障害物74の位置は、画面75における障害物74の位置とは僅かに異なる。
【0044】
このとき、現場監視装置は、カメラパラメータCtのうち、“zt”を僅かに変化させる。すると、移動カメラ5は、障害物74を回避して関節9を画面78の中央に捉える。“+Δz”は、カメラ本体の位置を、z軸の正方向(上方向)にずらすことによって、カメラの光軸が障害物74の上側に逸れることを意味する。このとき現場監視装置がカメラパラメータCtのうち“zt”を正方向にずらしたのは、障害物74の画面上の重心が画面の重心79を基準として下側の象限80bにあるからである。因みに、このとき、現場監視装置がカメラパラメータCtのうち、“(αt,βt,γt)”をどのように変化させても、関節9は隠蔽されたままである。
【0045】
(処理手順)
以降において、処理手順を説明する。処理手順は2つ存在し、それらは、準備処理手順及び現場処理手順である。現場処理手順の開始は、準備処理手順の終了が前提となる。
【0046】
(準備処理手順)
図5は、準備処理手順のフローチャートである。
ステップS101において、作業監視装置1の準備処理部21は、パラメータの過去例の組を作業種類ごとに分類する。具体的には、第1に、準備処理部21は、時系列のロボットパラメータR
tの過去例及びそのロボットパラメータと同期して使用された時系列のカメラパラメータC
tの過去例を取得する。補助記憶装置15は、これらの過去例を記憶しているものとする。
【0047】
第2に、準備処理部21は、パラメータの組を作業種類ごとに分類する。具体的には、準備処理部21は、ステップS101の“第1”において取得した組を、その作業種類ごとに分類する。作業種類は、例えば“切断”、“移動”、“把持”等である。
【0048】
ここで作業種類ごとに分類することとしたのは、あくまでも一例である。準備処理部21は、作業対象の物体42の種類(個体、液体、粉末等)、多関節ロボットの種類等を分類基準としてもよいし、それらの組合せを分類基準としてもよい。当然のことながら、現場が異なれば、作業内容は異なり、ロボットパラメータ及びカメラパラメータの時系列変化も異なる。よって、適当な検索キーを使用すれば候補となる過去例が絞り込める程度に分類の細かさを決めることが望ましい。ロボットパラメータ及びカメラパラメータは多次元ベクトルであるので、多次元空間における“k平均法”を使用してこれらの組を分類するのも有効である。
【0049】
ステップS102において、準備処理部21は、仮想空間においてパラメータの組を学習する。具体的には、第1に、準備処理部21は、出力装置13に環境モデル33を表示する。
第2に、準備処理部21は、ユーザが環境モデル33の仮想空間において、多関節ロボット3の手40の軌跡、並びに、移動カメラ5の軌跡及び光軸の方向を、入力装置12を介して描画するのを受け付ける。
【0050】
第3に、準備処理部21は、ステップS102の“第2”における描画の結果に対して、ユーザが作業種類を関連付けるのを受け付ける。ユーザは、前記したように、作業種類以外にも、作業対象の物体の種類、多関節ロボットの種類等を又はそれらの組合せを描画の結果に関連付けてもよい。
【0051】
ステップS103において、準備処理部21は、パラメータの組を機械学習によって取得する。具体的には、第1に、準備処理部21は、ある作業種別の作業前の3次元画像及び作業後の3次元画像をユーザが入力装置12を介して入力するのを受け付ける。前記したように、作業前の3次元画像は、作業前における作業対象の物体42を撮像したものである。作業後の3次元画像は、作業後における作業対象の物体42を撮像したものである。
第2に、準備処理部21は、ステップS103の“第1”において受け付けた3次元画像を学習データとしてロボットパラメータ及びカメラパラメータを、作成(学習)する。
【0052】
第3に、準備処理部21は、ステップS103の“第2”において作成されたロボットパラメータ及びカメラパラメータの組に対して、ユーザが作業種類を関連付けるのを受け付ける。ユーザは、前記したように、作業種類以外にも、作業対象の物体の種類、多関節ロボットの種類等を又はそれらの組合せをロボットパラメータ及びカメラパラメータの組に対して関連付けてもよい。
その後、準備処理手順を終了する。
【0053】
準備処理部21は、ステップS101、S102及びS103のすべてを実行する必要はなく、このうちの少なくとも1つを実行すれば十分である。準備処理手順を終了した段階で、準備処理部21は、作業種類等のラベルが付された、ロボットパラメータ及びカメラパラメータの多くの組を補助記憶装置15に記憶していることになる。換言すれば、準備処理部21は、多関節ロボットが行う作業の種類、又は、多関節ロボットが行う作業の対象となる物体の種類ごとに、ロボットパラメータ及びカメラパラメータを学習していることになる。
【0054】
(現場処理手順)
図6は、現場処理手順のフローチャートである。
ステップS201において、作業監視装置1の準備処理部21は、作業種類等を受け付ける。具体的には、準備処理部21は、ユーザが入力装置12を介して作業種類、作業対象の物体の種類、多関節ロボットの種類、又は、それらの組合せを入力するのを受け付ける。説明の便宜上、ここでは作業種類“移動”が入力されたとする。
【0055】
ステップS202において、準備処理部21は、適当なパラメータの組を取得する。具体的には、第1に、準備処理部21は、補助記憶装置15に記憶されている時系列のロボットパラメータ及び時系列のカメラパラメータの組のうちから、ラベル“移動”が付されている組を取得する。
【0056】
第2に、準備処理部21は、ユーザが選択条件を、入力装置12を介して入力するのを受け付ける。説明の便宜上、ここでは以下の選択条件1~3が入力されたとする。
〈選択条件1〉多関節ロボットの関節を回転させるアクチュエータの消費電力が小さい。
〈選択条件2〉多関節ロボットの重心移動が小さい。
〈選択条件3〉移動カメラの走行機構の移動距離が短い。
【0057】
第3に、準備処理部21は、ステップS202の“第2”において受け付けた選択条件に従って、ステップS202の“第1”において取得した組のうちから、1つの組を抽出する。ここで抽出された組に属する時系列のロボットパラメータ及び時系列のカメラパラメータは、それぞれ“運用ロボットパラメータ”及び“運用カメラパラメータ”と呼ばれる。この段階で、準備処理部21が主体となってロボットパラメータ及びカメラパラメータを学習する処理は終了し、その後の処理の主体は現場処理部22となる。
【0058】
ステップS203において、現場監視装置1の現場処理部22は、現場作業の開始を指示する。具体的には、現場処理部22は、多関節ロボット3に対し作業開始の指示、及び、運用ロボットパラメータを送信し、多関節ロボット3を現場に投入する。
ステップS204において、現場処理部22は、作業環境の撮像を指示する。具体的には、現場処理部22は、移動カメラ5及び固定カメラ4に対し、障害物の検知を目的とする作業環境の撮像の指示、及び、運用カメラパラメータを送信する。ステップS204の段階で、
図3の正常期間61が開始されることになる。
【0059】
ステップS205において、現場処理部22は、障害物を検知したか否かを判断する。具体的には、現場処理部22は、カメラから受信した作業環境と、環境モデル33との差分を監視することによって障害物を検知した場合(ステップS205“Yes”)、ステップS206に進む。現場処理部22は、それ以外の場合(ステップS205“No”)、ステップS207に進む。
ステップS206において、現場処理部22は、パラメータを更新する。ここで説明を一旦
図7に移す。
【0060】
図7は、現場処理手順のステップS206の詳細フローチャートである。
ステップS301において、現場処理部22は、ロボットパラメータを更新する。具体的には、現場処理部22は、運用ロボットパラメータのうち将来部分を修正し、修正後の運用ロボットパラメータを多関節ロボット3に送信する。当該処理は、
図3の時点t5以降の処理に相当する。例えば障害物が多関節ロボット3と作業対象の物体とを結ぶ線分上にある場合、現場処理部22は、運用ロボットパラメータのうち“(x
t,y
t,z
t)”を将来的に修正する。例えば障害物が当該線分の右側の至近距離内にある場合、現場処理部22は、運用ロボットパラメータのうち“J
it(θ
it,φ
it,ψ
it)”を将来的に修正し、腕が当該線分の左側を通過するようにする。
【0061】
ステップS302において、現場処理部22は、未処理の関節を特定する。具体的には、現場処理部22は、多関節ロボットの関節9のうち未処理の任意の1つ(例えば最も走行機構7に近い関節9a)を特定する。ここで特定された関節は、“対象関節”と呼ばれる。
【0062】
ステップS303において、現場処理部22は、未処理のカメラを特定する。具体的には、現場処理部22は、移動カメラ5及び固定カメラ4のうち未処理の任意の1つを特定する。ここで特定されたカメラは、“対象カメラ”と呼ばれる。
【0063】
ステップS304において、現場処理部22は、処理中のカメラに処理中の関節の撮像を指示する。具体的には、現場処理部22は、対象カメラに対して対象関節の最大拡大画像を撮像するように指示する。すると、対象カメラは自律的に
図4の符号75のような画像を取得する。運用カメラパラメータが十分学習されたものであれば、この段階で対象カメラの画角は、対象関節を捉えているはずである。なお、現場処理部22が、対象カメラに対して、対象関節に加えて作業対象の物体42を同じ画像で撮像する旨を指示する例を変形例として後記する。
【0064】
ステップS305において、現場処理部22は、関節が障害物に隠蔽されているか否かを判断する。具体的には、現場処理部22は、対象カメラの画像内で対象関節が障害物によって隠蔽されている場合(ステップS305“Yes”)、ステップS306に進み、それ以外の場合(ステップS305“No”)、ステップS308に進む。
【0065】
ステップS306において、現場処理部22は、処理中のカメラは移動カメラ5であるか否かを判断する。具体的には、現場処理部22は、対象カメラが移動カメラ5である場合(ステップS306Yes”)、ステップS307に進み、それ以外の場合(ステップS306“No”)、所定の時間だけ待機した後ステップS305に戻る。
【0066】
ステップS307において、現場処理部22は、処理中のカメラのパラメータを更新する。具体的には、現場処理部22は、対象カメラの運用カメラパラメータのうち将来部分の“(x
t,y
t,z
t)”を所定の変化幅だけ修正し、修正後の運用カメラパラメータを対象カメラに送信する。ここでの変化幅は、予めユーザが設置したΔx(左右方向)又はΔz(上下方向)である。現場処理部22は、画像内における障害物の重心の位置に応じて、+Δx(右方向)、-Δx(左方向)、+Δz(上方向)又は-Δz(下方向)のうちのいずれかを選択する(
図4参照)。その後、現場処理部22は、ステップS305に戻る。
【0067】
ステップS308において、現場処理部22は、利用可能カメラとして登録する。具体的には、第1に、現場処理部22は、対象カメラのうちステップS305“No”を経由したものを取得する。ここで取得された対象カメラは、“利用可能カメラ”と呼ばれる。対象カメラが固定カメラであって、障害物が対象関節を隠蔽している場合、その対象カメラは、その対象関節についての利用可能カメラとはならない。つまり、図示しないが、現場処理部22は、ステップS305及びS306を所定の回数以上繰り返した場合、ステップS303に戻る。
【0068】
第2に、現場処理部22は、利用可能カメラの画像に捉えられた対象関節の面積が大きい順に、利用可能カメラを順序付ける。そして、現場処理部22は、その順序に関連付けて利用可能カメラを特定する情報(カメラの識別子等)を補助記憶装置15に記憶する。
【0069】
ステップS309において、現場処理部22は、未処理のカメラがあるか否かを判断する。具体的には、現場処理部22は、未処理の対象カメラが残っている場合(ステップS309“Yes”)、ステップS303に戻り、それ以外の場合(ステップS309“No”)、ステップS310に進む。
【0070】
ステップS310において、現場処理部22は、未処理の関節があるか否かを判断する。具体的には、現場処理部22は、未処理の対象関節が残っている場合(ステップS310“Yes”)、ステップS302に戻り、それ以外の場合(ステップS310“No”)、ステップS206を終了する。
【0071】
ステップS302~S310の繰り返し処理が終了した段階で、補助記憶装置15は、関節ごとに、その関節を撮像可能な複数のカメラの識別子のリストを記憶していることになる。さらに、その識別子は、関節の画像が大きい順に並んでいる。関節の数に比してカメラの数が少ない場合、ある特定のカメラの識別子が、複数のリストの先頭に位置する場合もある。説明を
図6のステップS207に戻す。
【0072】
ステップS207において、現場処理部22は、関節の画像を表示する。具体的には、現場処理部22は、出力装置13に監視画面91(
図8)を表示する。監視画面91は、俯瞰図欄92、操作欄93及び監視画像欄94を有する。俯瞰図欄92は、多関節ロボット3、移動カメラ5a及び5b、固定カメラ4並びに作業対象の物体42を表示している。当該表示は、例えば現場の天井に設置されたカメラが撮像した現在画像であってもよいし、コンピュータグラフィックによる模式図であってもよい。
【0073】
操作欄93は、カメラ選択ボタン95、ジョイスティックを図案化したカメラ操作欄96、関節選択ボタン97及び被選択関節欄98を有する。ユーザがカメラ選択ボタン95を押下すると、カメラ4→カメラ5a→カメラ5b→カメラ4→・・・のように、複数あるカメラのそれぞれがローテーション式に選択される。
図8では、カメラ5aが選択されている。ユーザが関節選択ボタン97を押下すると、関節9a→関節9b→関節9c→関節9a→・・・のように、複数ある関節のそれぞれがローテーション式に選択される。
図8では、関節9bが選択されている(被選択関節欄98)。
【0074】
カメラ及び関節が選択されると、現場処理部22は、監視画像欄94に、カメラ5aが撮像した関節9bの画像を表示する。このとき、ユーザがカメラ操作欄96の〇を上側に操作すると選択されたカメラのカメラパラメータのうち“βt”が変化しカメラの光軸が上方向へ動く(チルト)。すると、画像欄94の画像が変化する。ユーザがカメラ操作欄96の〇を右側に操作すると選択されたカメラのカメラパラメータのうち“αt”が変化しカメラの光軸が右側に動く(パン)。すると、画像欄94の画像が変化する。
【0075】
前記の例では、カメラ操作欄96は、カメラのパン及びチルトを変化させている。しかしながら、選択されたカメラが移動カメラである場合、カメラ操作欄96は、そのカメラの位置座標“(xt,yt,zt)”のうちのいずれか2つを変化させてもよい。
ステップS207の後、現場処理手順を終了する。
【0076】
(変形例)
移動カメラ5又は固定カメラ4が撮像する画像中に、対象関節及び作業対象の物体42が同時に写り込んでいると、ユーザは作業の様子を容易に視認できる。そこで、ステップS304において、現場処理部22は、対象カメラに対して、対象関節に加えて作業対象の物体42を同じ画像で撮像する旨を指示してもよい。すると、対象カメラは、対象関節を画面の中心に捉えながら、物体42が写り込むまで画角を徐々に大きくして行く。現場処理部22は、例えば、腕の末端に近い対象関節についてのみ、このような指示を行ってもよい。
【0077】
(本実施形態の効果)
本実施形態の現場監視装置の効果は以下の通りである。
(1)現場監視装置は、一旦学習したロボットパラメータ及びカメラパラメータの一部を、障害物の出現を契機として更新することができる。
(2)現場監視装置は、仮想空間において容易にパラメータを学習し、かつ、正常状態の作業環境にはなかった障害物を確実に検知することができる。
(3)現場監視装置は、多関節ロボットの関節を確実に監視することができる。
【0078】
(4)現場監視装置は、実際の作業種類等に適合するパラメータを的確に学習することができる。
(5)現場監視装置は、カメラに多関節ロボットの関節及び作業対象の物体を同時に撮像させることができる。
(6)現場監視装置は、3次元点群又は3次元メッシュとして表現された実際の作業環境を、あるべき環境モデルと正確に比較することができる。
【0079】
なお、本発明は前記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、前記した実施例は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0080】
また、前記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウエアで実現してもよい。また、前記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウエアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0081】
1 現場監視装置
2 現場
3 多関節ロボット
4 固定カメラ(カメラ)
5 移動カメラ(カメラ)
6 ネットワーク
9 関節
11 中央制御装置
12 入力装置
13 出力装置
14 主記憶装置
15 補助記憶装置
16 通信装置
21 準備処理部
22 現場処理部
31 ロボットパラメータ
32 カメラパラメータ
33 環境モデル
42 物体
74 障害物
91 監視画面