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

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

▶ 富士通株式会社の特許一覧

特許7463946動作制御プログラム、動作制御方法、および動作制御装置
<>
  • 特許-動作制御プログラム、動作制御方法、および動作制御装置 図1
  • 特許-動作制御プログラム、動作制御方法、および動作制御装置 図2
  • 特許-動作制御プログラム、動作制御方法、および動作制御装置 図3
  • 特許-動作制御プログラム、動作制御方法、および動作制御装置 図4
  • 特許-動作制御プログラム、動作制御方法、および動作制御装置 図5
  • 特許-動作制御プログラム、動作制御方法、および動作制御装置 図6
  • 特許-動作制御プログラム、動作制御方法、および動作制御装置 図7
  • 特許-動作制御プログラム、動作制御方法、および動作制御装置 図8
  • 特許-動作制御プログラム、動作制御方法、および動作制御装置 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-01
(45)【発行日】2024-04-09
(54)【発明の名称】動作制御プログラム、動作制御方法、および動作制御装置
(51)【国際特許分類】
   B25J 19/06 20060101AFI20240402BHJP
【FI】
B25J19/06
【請求項の数】 8
(21)【出願番号】P 2020187981
(22)【出願日】2020-11-11
(65)【公開番号】P2022077228
(43)【公開日】2022-05-23
【審査請求日】2023-07-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】横田 泰斗
(72)【発明者】
【氏名】鈴木 彼方
【審査官】神山 貴行
(56)【参考文献】
【文献】特開2018-12159(JP,A)
【文献】特開平11-33961(JP,A)
【文献】国際公開第2018/143003(WO,A1)
【文献】特開2019-202354(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
(57)【特許請求の範囲】
【請求項1】
第1のタイミングにおける機器の動作環境を撮像した第1の画像における対象物の領域を特定し、
前記第1のタイミングの機器の動作状態を表す第1の動作情報に基づいて、第1の機械学習モデルを用いて、前記第1のタイミングより後の第2のタイミングの前記機器の動作状態を表す第2の動作情報を生成し、
前記第2の動作情報に基づいて、第2の機械学習モデルを用いて、前記機器の動作環境を表す第2の画像における前記機器の領域を特定し、
前記機器の領域と、前記対象物の領域とを比較し、
前記比較する処理の結果に基づいて、前記機器の回避動作を実行する、
処理をコンピュータに実行させることを特徴とする動作制御プログラム。
【請求項2】
前記機器の領域を特定する処理は、前記第2の機械学習モデルに前記第2の動作情報を入力することにより出力される、前記第1の画像より解像度の低い前記第2の画像から前記機器の領域を特定する処理を含むことを特徴とする請求項1に記載の動作制御プログラム。
【請求項3】
前記機器の領域を特定する処理は、前記第2の機械学習モデルに前記第2の動作情報を入力することにより出力される、前記機器を示す画素と前記機器以外を示す画素とが2値化された、前記第2の画像から前記機器の領域を特定する処理を含むことを特徴とする請求項2に記載の動作制御プログラム。
【請求項4】
前記機器の領域と、前記対象物の領域とを比較する処理は、前記第2の画像における前記機器の領域の位置と前記第1の画像における前記対象物の領域の位置との重なりの有無を判定する処理を含み、
前記機器の回避動作を実行する処理は、前記重なりが有ると判定した場合、前記機器の回避動作を実行する処理を含む、
ことを特徴とする請求項1に記載の動作制御プログラム。
【請求項5】
前記機器の領域と、前記対象物の領域とを比較する処理は、前記第2の画像における前記機器の領域の位置と前記第1の画像における前記対象物の領域の位置との最短距離を測定する処理を含み、
前記機器の回避動作を実行する処理は、前記最短距離が所定の閾値以下の場合、前記機器の回避動作を実行する処理を含む、
ことを特徴とする請求項1に記載の動作制御プログラム。
【請求項6】
前記対象物の領域を特定する処理は、それぞれが異なる複数の方向から前記機器の動作環境を撮像した複数の前記第1の画像における前記対象物の領域を特定する処理を含み、
前記機器の領域を特定する処理は、それぞれが前記複数の方向から前記機器の動作環境を表す複数の前記第2の画像における前記機器の領域を特定する処理を含むことを特徴とする請求項1に記載の動作制御プログラム。
【請求項7】
第1のタイミングにおける機器の動作環境を撮像した第1の画像における対象物の領域を特定し、
前記第1のタイミングの機器の動作状態を表す第1の動作情報に基づいて、第1の機械学習モデルを用いて、前記第1のタイミングより後の第2のタイミングの前記機器の動作状態を表す第2の動作情報を生成し、
前記第2の動作情報に基づいて、第2の機械学習モデルを用いて、前記機器の動作環境を表す第2の画像における前記機器の領域を特定し、
前記機器の領域と、前記対象物の領域とを比較し、
前記比較する処理の結果に基づいて、前記機器の回避動作を実行する、
処理をコンピュータが実行することを特徴とする動作制御方法。
【請求項8】
第1のタイミングにおける機器の動作環境を撮像した第1の画像における対象物の領域を特定し、
前記第1のタイミングの機器の動作状態を表す第1の動作情報に基づいて、第1の機械学習モデルを用いて、前記第1のタイミングより後の第2のタイミングの前記機器の動作状態を表す第2の動作情報を生成し、
前記第2の動作情報に基づいて、第2の機械学習モデルを用いて、前記機器の動作環境を表す第2の画像における前記機器の領域を特定し、
前記機器の領域と、前記対象物の領域とを比較し、
前記比較する処理の結果に基づいて、前記機器の回避動作を実行する、
処理を実行する制御部を有することを特徴とする動作制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動作制御技術に関する。
【背景技術】
【0002】
近年、産業用ロボットアームに動作を教えるティーチング作業を減らすために、ロボットアームの姿勢制御に、深層強化学習や回帰型ニューラルネットワークなどの機械学習技術を適用して自動化する研究が進んでいる。深層強化学習では訓練に大きなコスト(多数の試行)や長い時間がかかる。そのため、コストや訓練時間に制約がある場合は、Recurrent Neural Network(RNN)やLong Short-Term Memory(LSTM)などの回帰型ニューラルネットワークを用いた手法が利用されている。
【0003】
一方、人間との協働を想定したロボットアームの開発が進んでおり、ロボットアームと他の物体との衝突を防ぐ技術が必要となっている。そこで、カメラ画像やセンサーにより、障害物を検知して3次元位置座標(x,y,z)を特定し、ロボットアームと障害物との衝突を防ぐ技術がある。
【先行技術文献】
【特許文献】
【0004】
【文献】特許第6647640号公報
【文献】米国特許出願公開第2019/0143517号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、3次元位置座標(x,y,z)では、ロボットアームの姿勢が一意に定まらないため、障害物の位置がロボットアームの軌道上に重なっているか判定できない。そのため、障害物検知時は一律にロボットアームの動作を緊急停止せざるを得ず、不必要な再稼働のための作業負担や時間がかかってしまう問題がある。
【0006】
1つの側面では、ロボットアームと障害物との接近や衝突を未然に防ぐことができる動作制御プログラム、動作制御方法、および動作制御装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
1つの態様において、動作制御プログラムは、コンピュータに、第1のタイミングにおける機器の動作環境を撮像した第1の画像における対象物の領域を特定し、第1のタイミングの機器の動作状態を表す第1の動作情報に基づいて、第1の機械学習モデルを用いて、第1のタイミングより後の第2のタイミングの機器の動作状態を表す第2の動作情報を生成し、第2の動作情報に基づいて、第2の機械学習モデルを用いて、機器の動作環境を表す第2の画像における機器の領域を特定し、機器の領域と、対象物の領域とを比較し、比較する処理の結果に基づいて、機器の回避動作を実行する処理を実行させる。
【発明の効果】
【0008】
1つの側面では、ロボットアームと障害物との接近や衝突を未然に防ぐことができる。
【図面の簡単な説明】
【0009】
図1図1は、動作制御システムの構成例を示す図である。
図2図2は、6軸ロボットアームの一例を示す図である。
図3図3は、動作制御装置の構成例を示す図である。
図4図4は、対象物の領域特定の一例を示す図である。
図5図5は、ロボットアームの領域特定の一例を示す図である。
図6図6は、ロボットアームの領域特定NN生成の一例を示す図である。
図7図7は、時間ごとの衝突判定の一例を示す図である。
図8図8は、動作制御処理の流れを示すフローチャートである。
図9図9は、ハードウェア構成例を説明する図である。
【発明を実施するための形態】
【0010】
以下に、本実施形態に係る動作制御プログラム、動作制御方法、および動作制御装置の実施例を図面に基づいて詳細に説明する。なお、この実施例により本実施形態が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【0011】
まず、本実施形態を実施するための動作制御システムについて説明する。図1は、動作制御システムの構成例を示す図である。図1に示すように、動作制御システム1は、動作制御装置10と、ロボットアーム100およびカメラ装置200とが相互に通信可能に接続されるシステムである。なお、各装置の通信は、通信ケーブルを介して行われてもよいし、イントラネットなどの各種通信網を介して行われてもよい。また、通信方式は、有線および無線のいずれであってもよい。
【0012】
動作制御装置10は、例えば、ロボットアーム100を管理する管理者によって使用されるデスクトップPC(Personal Computer)やノートPC、またはサーバコンピュータなどの情報処理装置である。動作制御装置10は、ロボットアーム100の動作環境の撮像画像から対象物を特定し、ロボットアーム100の軌道を予測し、ロボットアーム100が対象物と衝突する可能性がある場合にロボットアーム100の回避動作を実行する。なお、ロボットアーム100の動作環境の撮像画像から特定される対象物を、実際にロボットアーム100と衝突する可能性があるか否かに関わらず障害物と表現する場合がある。
【0013】
また、図1では、動作制御装置10を1台のコンピュータとして示しているが、複数台のコンピュータで構成される分散型コンピューティングシステムであってもよい。また、動作制御装置10は、クラウドコンピューティングサービスを提供するサービス提供者によって管理されるクラウドサーバ装置であってもよい。
【0014】
ロボットアーム100は、例えば、産業用のロボットアームであり、より具体的には、工場や倉庫などで物品をピックアップ(把持)して移動させるピッキングロボットである。しかしながら、産業用に限定されず、医療用などのロボットアームであってもよい。図2は、6軸ロボットアームの一例を示す図である。図2の例では、ロボットアーム100は、J1~J6の6つの関節を持ち、各関節のJ1~J6軸を中心に回転動作する。ロボットアーム100は、動作制御装置10によって、時間ごとの各関節の姿勢情報、すなわち、各関節の軸の角度の変化が入力されることで、アームの軌道が決定され、所定の動作をするように制御される。なお、ロボットアーム100の軸数は、6軸に限定されず、5軸や7軸など、6軸よりも少なくても多くてもよい。
【0015】
カメラ装置200は、ロボットアーム100の動作環境、すなわち、ロボットアーム100が動作し得る範囲を、ロボットアーム100の側面や上部から撮像する。カメラ装置200は、ロボットアーム100の稼働中、リアルタイムで動作環境を撮像し、撮像された画像は、動作制御装置10に送信される。なお、図1では、カメラ装置200は1台しか示されていないが、複数のカメラ装置200によって、ロボットアーム100の側面および上部などの複数の方向から動作環境が撮像されてもよい。
【0016】
[動作制御装置10の機能構成]
次に、図1に示した動作制御装置10の機能構成について説明する。図3は、動作制御装置の構成例を示す図である。図3に示すように、動作制御装置10は、通信部20、記憶部30、および制御部40を有する。
【0017】
通信部20は、ロボットアーム100やカメラ装置200など、他の装置との間の通信を制御する処理部であり、例えば、USB(Universal Serial Bus)インタフェースや、ネットワークインタフェースカードなどの通信インタフェースである。
【0018】
記憶部30は、各種データや、制御部40が実行するプログラムを記憶する記憶装置の一例であり、例えば、メモリやハードディスクなどである。記憶部30は、姿勢情報31、画像DB32、および機械学習モデルDB33などを記憶する。
【0019】
姿勢情報31は、ロボットアーム100の動作を制御するための情報であり、例えば、ロボットアーム100の各関節の軸の角度を示す情報を記憶する。姿勢情報31は、例えば、図2に示す6軸ロボットアームの場合、各関節のJ1~J6軸の各角度をm1~m6によって示す。
【0020】
画像DB32は、カメラ装置200によって撮像されたロボットアーム100の動作環境の撮像画像を記憶する。また、画像DB32は、当該撮像画像を物体検出器に入力することで出力される、障害物の領域を示すマスク画像を記憶する。また、画像DB32は、姿勢情報31をニューラルネットワーク(NN)に入力することで出力される、ロボットアーム100の領域を示すマスク画像を記憶する。
【0021】
機械学習モデルDB33は、例えば、ロボットアーム100の動作環境の撮像画像を特徴量とし、障害物の領域を示すマスク画像を正解ラベルとして機械学習により生成された物体検出器を構築するためのモデルパラメータや物体検出器のための訓練データを記憶する。
【0022】
また、機械学習モデルDB33は、例えば、姿勢情報31を特徴量とし、ロボットアーム100の領域を示すマスク画像を正解ラベルとして機械学習により生成されたNNを構築するためのモデルパラメータや、当該NNのための訓練データを記憶する。
【0023】
また、機械学習モデルDB33は、例えば、現在の姿勢情報31を特徴量とし、未来の姿勢情報31を正解ラベルとして機械学習により生成されたRNNを構築するためのモデルパラメータや、当該RNNのための訓練データを記憶する。
【0024】
なお、記憶部30に記憶される上記情報はあくまでも一例であり、記憶部30は、上記情報以外にも様々な情報を記憶できる。
【0025】
制御部40は、動作制御装置10全体を司る処理部であり、例えば、プロセッサなどである。制御部40は、特定部41、生成部42、比較部43、および実行部44を備える。なお、各処理部は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【0026】
特定部41は、第1のタイミングにおけるロボットアーム100などの機器の動作環境を撮像した画像における対象物の領域を特定する。第1のタイミングとは、例えば、現在である。なお、複数のカメラ装置200によって、機器の側面および上部などの複数の方向から動作環境を撮像でき、この場合、特定部41は、それぞれの方向から撮像した各画像において対象物の領域を特定する。
【0027】
また、特定部41は、第1のタイミングより後の第2のタイミングの機器の動作状態を表す動作情報に基づいて、機械学習モデルを用いて、第2のタイミングの機器の動作環境を表す画像における機器の領域を特定する。当該機械学習モデルは、例えば、ロボットアーム100などの機器の動作状態を表す動作情報である姿勢情報31を特徴量とし、機器の領域を示すマスク画像を正解ラベルとして機械学習により生成されたNNである。
【0028】
なお、機械学習モデルにより出力されるマスク画像は、それぞれが機器の側面および上部などの複数の方向から機器の動作環境を表す複数の画像であってよい。この場合、特定部41は、各マスク画像に対して機器の領域を特定する。
【0029】
また、機械学習モデルにより出力されるマスク画像の解像度は、カメラ装置200による撮像画像の解像度より下げることができる。また、当該マスク画像において、例えば、機器の画素を黒色、それ以外の画素を白色で表すことで2値化することもできる。これにより、マスク画像に対する動作制御装置10の処理負荷を軽減させることができる。
【0030】
生成部42は、例えば、現在である第1のタイミングの機器の動作状態を表す第1の動作情報に基づいて、機械学習モデルを用いて、第1のタイミングより後の第2のタイミングの機器の動作状態を表す第2の動作情報を生成する。より具体的には、生成部42は、例えば、ロボットアーム100の現在の姿勢情報31に基づいて、機械学習モデルを用いて、ロボットアーム100の未来の姿勢情報31を生成する。当該機械学習モデルは、例えば、ロボットアーム100の所定の時刻t時の姿勢情報31を特徴量とし、時刻t時より後のt+1の姿勢情報31を正解ラベルとして機械学習により生成されたRNNである。当該RNNに、現在時刻t時の姿勢情報31を入力することで、未来の時刻t+1時の姿勢情報31が出力される。さらに、生成部42は、未来の時刻t+1時の姿勢情報31を、当該RNNに入力することで、さらに未来の時刻t+2時の姿勢情報31を生成でき、これを繰り返すことにより、未来の時刻t+3時、t+4時、・・・t+n時(nは任意の整数)の姿勢情報31を生成できる。
【0031】
このようにして、生成部42は、機器の現在の姿勢情報31に基づいて、未来の姿勢情報31を予測する。しかしながら、機器の一連の動作を制御する姿勢情報31が予め作成されている場合、動作制御装置10は、予め作成された姿勢情報31から、未来の姿勢情報31を取得できる。この場合、動作制御装置10は、生成部42を備えなくてもよい。
【0032】
比較部43は、特定部41によって特定された、ロボットアーム100などの機器の領域と、対象物の領域とを比較する。当該比較は、例えば、機器の領域が特定されたマスク画像と、対象物の領域が特定された撮像画像との解像度を合わせて合成画像を生成し、機器の領域と対象物の領域との画像上での重なりの有無、すなわち機器と対象物との衝突の有無を判定する。または、当該比較は、当該合成画像上での機器の領域と対象物の領域との最短距離を測定し、すなわち機器と対象物との接近および衝突を判定する。このように距離を測定する理由は、両領域が重なっていなくても、機器と対象物とが接近している場合は、衝突の可能性があるため、機器と対象物との所定距離内の接近を検知するためである。
【0033】
実行部44は、比較部43による機器の領域と対象物の領域との比較処理の結果に基づいて、機器の回避動作を実行する。より具体的には、実行部44は、例えば、比較部43によって、機器の領域と対象物の領域との画像上での重なりが有ると判定された場合、機器の回避動作を実行する。または、実行部44は、例えば、比較部43によって測定された、機器の領域と対象物の領域との画像上の最短距離が所定の閾値以下の場合、機器の回避動作を実行する。なお、当該閾値は、現実の距離で約10センチメートルに相当する5画素など任意設定できるが、対象物が動く可能性の有無や、合成画像の解像度の粒度によって、より大きく、または小さく設定できる。また、機器の回避動作とは、例えば、機器の緊急停止のみならず、機器の軌道修正による対象物の回避動作も含む。
【0034】
[機能詳細]
次に、各機能を図4~7を用いて詳細に説明する。まず、特定部41による、ロボットアーム100などの機器の動作環境を撮像した画像における対象物の領域特定について説明する。図4は、対象物の領域特定の一例を示す図である。撮像画像300は、ロボットアーム100の動作環境をロボットアーム100の側面からカメラ装置200で撮像した画像である。撮像画像300には、ロボットアーム100の他、障害物となり得る対象物150が写っている。
【0035】
図4に示す物体検出器50は、ロボットアーム100の動作環境の撮像画像を特徴量とし、対象物の領域を示すマスク画像を正解ラベルとして機械学習により生成されたものある。物体検出器50は、例えば、物体検出アルゴリズムのSSD(Single Shot multibox Detector)を用いて、画像から対象物を検出する。
【0036】
図4では、撮像画像300を物体検出器50に入力することで、出力されるマスク画像310を取得する。マスク画像310は、例えば、対象物150の画素150´と、それ以外の画素を2値化表現したものであり、これにより特定部41は、対象物150を特定できる。また、図4に示すように、マスク画像310の解像度を撮像画像300の解像度より下げることで、マスク画像310に対する動作制御装置10の処理負荷を軽減させることができる。
【0037】
次に、特定部41による、ロボットアーム100などの機器の領域特定について説明する。図5は、ロボットアームの領域特定の一例を示す図である。図5に示すNN60は、ロボットアーム100の姿勢情報31を特徴量とし、ロボットアーム100の領域を示すマスク画像を正解ラベルとして機械学習により生成されたものである。NN60には、例えば、RNNやLSTMなどの回帰型NNを用いることができる。
【0038】
図5では、ロボットアーム100の姿勢情報31をNN60に入力することで、マスク画像320を取得する。マスク画像320は、例えば、ロボットアーム100の画素100´と、それ以外の画素を2値化表現したものであり、これにより特定部41は、ロボットアーム100を特定することができる。また、マスク画像320も、マスク画像310同様、解像度を下げることにより、マスク画像320に対する動作制御装置10の処理負荷を軽減させることができる。
【0039】
ここで、ロボットアーム100の領域特定に用いるNN60の生成方法について説明する。図6は、ロボットアームの領域特定NN生成の一例を示す図である。まず、図6に示すように、ロボットアーム100を側面からカメラ装置200で撮像した撮像画像330において、背景画像との差分から、ロボットアーム100の画素を抽出したマスク画像340が生成される。そして、マスク画像340の解像度を下げて、ロボットアーム100の画素100´と、それ以外の画素を2値化表現したマスク画像350が生成される。
【0040】
そして、撮像画像330を撮像した際の姿勢情報31を入力、マスク画像350が出力の正解となるデータセット70が生成され、データセット70を用いて、NN60が訓練される。これをロボットアーム100がとり得る様々な姿勢を制御するための複数の姿勢情報31を用いて、ロボットアーム100の姿勢を変えて複数のマスク画像350およびデータセット70を生成し、NN60を訓練する。
【0041】
なお、図6の例では、ロボットアーム100を側面から撮像した画像を用いて、ロボットアーム100を側面から見た場合のロボットアーム100の領域を特定するNN60の生成について説明した。同様に、例えば、ロボットアーム100を上部から撮像した画像を用いて、ロボットアーム100の姿勢情報31から、ロボットアーム100を上部から見た場合のロボットアーム100の領域を特定するNN60を生成できる。
【0042】
次に、比較部43による衝突判定について説明する。図7は、時間ごとの衝突判定の一例を示す図である。図7に示す合成画像400~430は、物体検出器50により出力され、対象物150の画素150´が特定されたマスク画像310と、NN60により出力され、ロボットアーム100の画素100´が特定されたマスク画像320とを重ね合わせた画像である。合成画像400~430間では、ロボットアーム100の動作環境における時刻が異なる。図7の例では、合成画像400~430の順に動作環境の時刻が時刻t~t+3時と時間が経過していることを示している。
【0043】
また、図7の例では、まず、時刻t時の姿勢情報31を用いてロボットアーム100が制御され、時間経過と共に、徐々にロボットアーム100が対象物150に接近している様子が、合成画像400~430によって示されている。特に、合成画像430では、ロボットアーム100の画素100´と対象物150の画素150´とが重なっており、時刻t+3時の姿勢情報31を用いたロボットアーム100の制御によってロボットアーム100と対象物150とが衝突することが示されている。
【0044】
このように、時間ごとの姿勢情報31を用いて、ロボットアーム100などの機器と対象物との合成画像を生成し、合成画像上での画素の重なりや画素間の距離に基づいて、機器の軌道上に対象物があるか判定し、機器と対象物との接近や衝突を未然に回避できる。なお、時間ごとの姿勢情報31は、上述したように、動作制御装置10によって生成、または取得される。
【0045】
[処理の流れ]
次に、動作制御装置10によって実行されるロボットアーム100などの機器の動作制御処理の流れを説明する。図8は、動作制御処理の流れを示すフローチャートである。図8に示す動作制御処理は、動作制御装置10が実行主体であり、機器と対象物150との接近や衝突を未然に回避するために、機器の稼働中、リアルタイムに実行される。そのため、カメラ装置200によって稼働中の機器の動作環境が常時撮像され、撮像された画像は、動作制御装置10に送信される。
【0046】
まず、図8に示すように、動作制御装置10は、物体検出器50を用いて、稼働中の機器の動作環境が撮像された撮像画像における対象物150の領域を特定する(ステップS101)。当該撮像画像は、カメラ装置200から送信された最新、すなわち、現在時刻t時の撮像画像である。また、撮像画像が機器の側面や上部など複数の方向から撮像され複数ある場合、動作制御装置10は、各画像において対象物150の領域を特定する。
【0047】
次に、動作制御装置10は、現在時刻t時の機器の姿勢情報31に基づいて、機械学習モデルを用いて、機器の未来時刻t+1時の動作情報、すなわち未来の姿勢情報31を生成する(ステップS102)。ここで、未来時刻t+1時とは、例えば、現在時刻t時から数秒経過後である。また、ステップS102で用いる機械学習モデルは、例えば、現在時刻t時の姿勢情報31を特徴量とし、未来時刻t+1時の姿勢情報31を正解ラベルとして機械学習により生成されたRNNである。当該RNNに、現在時刻t時の機器の姿勢情報31を入力することで、未来時刻t+1時の姿勢情報31が出力される。
【0048】
なお、機器の一連の動作を制御する姿勢情報31が予め作成されている場合、動作制御装置10は、予め作成された姿勢情報31から、未来の姿勢情報31を取得することもできる。この場合、ステップS102では、未来の姿勢情報31の生成に代えて、動作制御装置10は、記憶部30に予め記憶されている姿勢情報31から、未来の姿勢情報31を取得する。
【0049】
また、動作制御装置10は、生成された未来時刻t+1時の姿勢情報31をRNNに入力することで、さらに未来時刻t+2時の姿勢情報31を生成でき、これを所定回数繰り返すことで時間経過ごとの未来時刻t+3~t+n時の姿勢情報31を生成できる。
【0050】
次に、動作制御装置10は、ステップS102で生成または取得された未来の姿勢情報31をNN60に入力し、出力されたマスク画像320から、機器の未来の領域を特定する(ステップS103)。未来の姿勢情報31が、未来時刻t+1~t+n時分、複数ある場合、動作制御装置10は、それぞれの時刻での機器の領域を特定する。さらに、ステップS101で用いた撮像画像が機器の側面や上部など複数の方向から撮像され複数ある場合、動作制御装置10は、各方向から見た複数のマスク画像320のそれぞれから、機器の未来の領域を特定する。
【0051】
次に、動作制御装置10は、ステップS101で特定された対象物150の領域と、ステップS103で特定された機器の未来の領域とを比較し、対象物150と機器との距離が所定の閾値以下か否かを判定する(ステップS104)。距離が所定の閾値より大きい場合(ステップS104:No)、対象物150と機器との接近や衝突の可能性はないものと判断して、図8に示す動作制御処理は終了する。なお、その後、例えば、未来t+1時が現在時刻になるなど、時間経過により、ステップS101から動作制御処理を繰り返し実行し、機器の稼働中、対象物150と機器との接近や衝突の判定を繰り返す。
【0052】
一方、距離が所定の閾値以下の場合(ステップS104:Yes)、対象物150と機器との接近や衝突の可能性があるものと判断して、動作制御装置10は、機器の回避動作を実行する(ステップS105)。なお、機器の回避動作とは、例えば、機器の緊急停止や、機器の軌道修正による対象物の回避動作である。ステップS105の実行後、図8に示す動作制御処理は終了する。
【0053】
なお、ステップS101で用いた撮像画像や、ステップS103で用いたマスク画像320が機器の各方向用に複数ある場合、ステップS104では、各方向用の画像上で対象物150と機器との距離が所定の閾値以下か否かを判定する。その結果、各方向用の全ての画像上の対象物150と機器との距離が所定の閾値以下の場合、対象物150と機器との接近や衝突の可能性があるものと判断して、動作制御装置10は、機器の回避動作を実行する(ステップS105)。これは、一部の画像上でのみ、対象物150と機器との距離が所定の閾値以下であっても、対象物150と機器との接近や衝突の可能性はないものと判断できるためである。
【0054】
また、ステップS104の判定は、対象物150の領域と、機器の未来の領域との画像上での重なりが有るか無いかを判定してもよい。重なりがある場合、対象物150と機器との接近や衝突の可能性があるものとして、動作制御装置10は、機器の回避動作を実行する(ステップS105)。
【0055】
[効果]
上述したように、動作制御装置10は、第1のタイミングにおける機器の動作環境を撮像した第1の画像における対象物の領域を特定し、第1のタイミングの機器の動作状態を表す第1の動作情報に基づいて、第1の機械学習モデルを用いて、第1のタイミングより後の第2のタイミングの機器の動作状態を表す第2の動作情報を生成し、第2の動作情報に基づいて、第2の機械学習モデルを用いて、機器の動作環境を表す第2の画像における機器の領域を特定し、機器の領域と、対象物の領域とを比較し、比較する処理の結果に基づいて、機器の回避動作を実行する。
【0056】
動作制御装置10は、ロボットアーム100などの機器の動作環境の撮像画像300から対象物150の領域を特定し、機器の姿勢情報31から機械学習を用いて機器の未来の領域を特定し、両領域の比較結果に基づいて、機器の回避動作を実行する。これにより、動作制御装置10は、機器と対象物150との接近や衝突を未然に防ぐことができる。
【0057】
また、動作制御装置10によって実行される、機器の領域を特定する処理は、第2の機械学習モデルに第2の動作情報を入力することにより出力される、第1の画像より解像度の低い第2の画像から機器の領域を特定する処理を含む。
【0058】
これにより、第2の画像であるマスク画像320に対する動作制御装置10の処理負荷を軽減させることができる。
【0059】
また、動作制御装置10によって実行される、機器の領域を特定する処理は、第2の機械学習モデルに第2の動作情報を入力することにより出力される、機器を示す画素と機器以外を示す画素とが2値化された、第2の画像から機器の領域を特定する処理を含む。
【0060】
これにより、第2の画像であるマスク画像320に対する動作制御装置10の処理負荷を軽減させることができる。
【0061】
また、動作制御装置10によって実行される、機器の領域と、対象物の領域とを比較する処理は、第1の画像および第2の画像の解像度を合わせ、機器の領域と対象物の領域との画像上での重なりの有無を判定する処理を含み、機器の回避動作を実行する処理は、重なりが有ると判定した場合、機器の回避動作を実行する処理を含む。
【0062】
これにより、動作制御装置10は、機器と対象物150との接近や衝突をより正確に判定できる。
【0063】
また、動作制御装置10によって実行される、機器の領域と、対象物の領域とを比較する処理は、第1の画像および第2の画像の解像度を合わせ、機器の領域と対象物の領域との画像上での最短距離を測定する処理を含み、機器の回避動作を実行する処理は、最短距離が所定の閾値以下の場合、機器の回避動作を実行する処理を含む。
【0064】
これにより、動作制御装置10は、機器と対象物150との接近や衝突をより正確に判定できる。
【0065】
また、動作制御装置10によって実行される、対象物の領域を特定する処理は、それぞれが異なる複数の方向から機器の動作環境を撮像した複数の第1の画像における対象物の領域を特定する処理を含み、機器の領域を特定する処理は、それぞれが複数の方向から機器の動作環境を表す複数の第2の画像における機器の領域を特定する処理を含む。
【0066】
これにより、動作制御装置10は、複数の方向から機器と対象物150との接近や衝突を判定できる。
【0067】
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更できる。また、実施例で説明した具体例、分布、数値などは、あくまで一例であり、任意に変更できる。
【0068】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成できる。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0069】
[ハードウェア]
図9は、ハードウェア構成例を説明する図である。図9に示すように、動作制御装置10は、通信インタフェース10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、図9に示した各部は、バスなどで相互に接続される。
【0070】
通信インタフェース10aは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。HDD10bは、図3に示した機能を動作させるプログラムやDBを記憶する。
【0071】
プロセッサ10dは、図3に示した各処理部と同様の処理を実行するプログラムをHDD10bなどから読み出してメモリ10cに展開することで、図3などで説明した各機能を実行するプロセスを動作させるハードウェア回路である。すなわち、このプロセスは、動作制御装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、特定部41、生成部42、比較部43、および実行部44などと同様の機能を有するプログラムをHDD10bなどから読み出す。そして、プロセッサ10dは、特定部41、生成部42、比較部43、および実行部44などと同様の処理を実行するプロセスを実行する。
【0072】
このように動作制御装置10は、図3に示した各処理部と同様の処理を実行するプログラムを読み出して実行することで動作制御処理を実行する情報処理装置として動作する。また、動作制御装置10は、媒体読取装置によって記録媒体からプログラムを読み出し、読み出されたプログラムを実行することで上述した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、動作制御装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本実施形態を同様に適用できる。
【0073】
また、図3に示した各処理部と同様の処理を実行するプログラムは、インターネットなどのネットワークを介して配布できる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行できる。
【0074】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0075】
(付記1)第1のタイミングにおける機器の動作環境を撮像した第1の画像における対象物の領域を特定し、
第1のタイミングの機器の動作状態を表す第1の動作情報に基づいて、第1の機械学習モデルを用いて、第1のタイミングより後の第2のタイミングの機器の動作状態を表す第2の動作情報を生成し、
第2の動作情報に基づいて、第2の機械学習モデルを用いて、機器の動作環境を表す第2の画像における機器の領域を特定し、
機器の領域と、対象物の領域とを比較し、
比較する処理の結果に基づいて、機器の回避動作を実行する、
処理をコンピュータに実行させることを特徴とする動作制御プログラム。
【0076】
(付記2)機器の領域を特定する処理は、第2の機械学習モデルに第2の動作情報を入力することにより出力される、第1の画像より解像度の低い第2の画像から機器の領域を特定する処理を含むことを特徴とする付記1に記載の動作制御プログラム。
【0077】
(付記3)機器の領域を特定する処理は、第2の機械学習モデルに第2の動作情報を入力することにより出力される、機器を示す画素と機器以外を示す画素とが2値化された、第2の画像から機器の領域を特定する処理を含むことを特徴とする付記2に記載の動作制御プログラム。
【0078】
(付記4)機器の領域と、対象物の領域とを比較する処理は、第2の画像における機器の領域の位置と第1の画像における対象物の領域の位置との重なりの有無を判定する処理を含み、
機器の回避動作を実行する処理は、重なりが有ると判定した場合、機器の回避動作を実行する処理を含む、
ことを特徴とする付記1に記載の動作制御プログラム。
【0079】
(付記5)機器の領域と、対象物の領域とを比較する処理は、第2の画像における機器の領域の位置と第1の画像における対象物の領域の位置との最短距離を測定する処理を含み、
機器の回避動作を実行する処理は、最短距離が所定の閾値以下の場合、機器の回避動作を実行する処理を含む、
ことを特徴とする付記1に記載の動作制御プログラム。
【0080】
(付記6)対象物の領域を特定する処理は、それぞれが異なる複数の方向から機器の動作環境を撮像した複数の第1の画像における対象物の領域を特定する処理を含み、
機器の領域を特定する処理は、それぞれが複数の方向から機器の動作環境を表す複数の第2の画像における機器の領域を特定する処理を含むことを特徴とする付記1に記載の動作制御プログラム。
【0081】
(付記7)第1のタイミングにおける機器の動作環境を撮像した第1の画像における対象物の領域を特定し、
第1のタイミングの機器の動作状態を表す第1の動作情報に基づいて、第1の機械学習モデルを用いて、第1のタイミングより後の第2のタイミングの機器の動作状態を表す第2の動作情報を生成し、
第2の動作情報に基づいて、第2の機械学習モデルを用いて、機器の動作環境を表す第2の画像における機器の領域を特定し、
機器の領域と、対象物の領域とを比較し、
比較する処理の結果に基づいて、機器の回避動作を実行する、
処理をコンピュータが実行することを特徴とする動作制御方法。
【0082】
(付記8)機器の領域を特定する処理は、第2の機械学習モデルに第2の動作情報を入力することにより出力される、第1の画像より解像度の低い第2の画像から機器の領域を特定する処理を含むことを特徴とする付記7に記載の動作制御方法。
【0083】
(付記9)機器の領域を特定する処理は、第2の機械学習モデルに第2の動作情報を入力することにより出力される、機器を示す画素と機器以外を示す画素とが2値化された、第2の画像から機器の領域を特定する処理を含むことを特徴とする付記8に記載の動作制御方法。
【0084】
(付記10)機器の領域と、対象物の領域とを比較する処理は、第2の画像における機器の領域の位置と第1の画像における対象物の領域の位置との重なりの有無を判定する処理を含み、
機器の回避動作を実行する処理は、重なりが有ると判定した場合、機器の回避動作を実行する処理を含む、
ことを特徴とする付記7に記載の動作制御方法。
【0085】
(付記11)機器の領域と、対象物の領域とを比較する処理は、第2の画像における機器の領域の位置と第1の画像における対象物の領域の位置との最短距離を測定する処理を含み、
機器の回避動作を実行する処理は、最短距離が所定の閾値以下の場合、機器の回避動作を実行する処理を含む、
ことを特徴とする付記7に記載の動作制御方法。
【0086】
(付記12)対象物の領域を特定する処理は、それぞれが異なる複数の方向から機器の動作環境を撮像した複数の第1の画像における対象物の領域を特定する処理を含み、
機器の領域を特定する処理は、それぞれが複数の方向から機器の動作環境を表す複数の第2の画像における機器の領域を特定する処理を含むことを特徴とする付記7に記載の動作制御方法。
【0087】
(付記13)第1のタイミングにおける機器の動作環境を撮像した第1の画像における対象物の領域を特定し、
第1のタイミングの機器の動作状態を表す第1の動作情報に基づいて、第1の機械学習モデルを用いて、第1のタイミングより後の第2のタイミングの機器の動作状態を表す第2の動作情報を生成し、
第2の動作情報に基づいて、第2の機械学習モデルを用いて、機器の動作環境を表す第2の画像における機器の領域を特定し、
機器の領域と、対象物の領域とを比較し、
比較する処理の結果に基づいて、機器の回避動作を実行する、
処理を実行する制御部を有することを特徴とする動作制御装置。
【0088】
(付記14)機器の領域を特定する処理は、第2の機械学習モデルに第2の動作情報を入力することにより出力される、第1の画像より解像度の低い第2の画像から機器の領域を特定する処理を含むことを特徴とする付記13に記載の動作制御装置。
【0089】
(付記15)機器の領域を特定する処理は、第2の機械学習モデルに第2の動作情報を入力することにより出力される、機器を示す画素と機器以外を示す画素とが2値化された、第2の画像から機器の領域を特定する処理を含むことを特徴とする付記14に記載の動作制御装置。
【0090】
(付記16)機器の領域と、対象物の領域とを比較する処理は、第2の画像における機器の領域の位置と第1の画像における対象物の領域の位置との重なりの有無を判定する処理を含み、
機器の回避動作を実行する処理は、重なりが有ると判定した場合、機器の回避動作を実行する処理を含む、
ことを特徴とする付記13に記載の動作制御装置。
【0091】
(付記17)機器の領域と、対象物の領域とを比較する処理は、第2の画像における機器の領域の位置と第1の画像における対象物の領域の位置との最短距離を測定する処理を含み、
機器の回避動作を実行する処理は、最短距離が所定の閾値以下の場合、機器の回避動作を実行する処理を含む、
ことを特徴とする付記13に記載の動作制御装置。
【0092】
(付記18)対象物の領域を特定する処理は、それぞれが異なる複数の方向から機器の動作環境を撮像した複数の第1の画像における対象物の領域を特定する処理を含み、
機器の領域を特定する処理は、それぞれが複数の方向から機器の動作環境を表す複数の第2の画像における機器の領域を特定する処理を含むことを特徴とする付記13に記載の動作制御装置。
【0093】
(付記19)プロセッサと、
プロセッサに動作可能に接続されたメモリと
を備えた動作制御装置であって、プロセッサは、
第1のタイミングにおける機器の動作環境を撮像した第1の画像における対象物の領域を特定する第1の特定部と、
第1のタイミングの機器の動作状態を表す第1の動作情報に基づいて、第1の機械学習モデルを用いて、第1のタイミングより後の第2のタイミングの機器の動作状態を表す第2の動作情報を生成する生成部と、
第2の動作情報に基づいて、第2の機械学習モデルを用いて、機器の動作環境を表す第2の画像における機器の領域を特定する第2の特定部と、
機器の領域と、対象物の領域とを比較する比較部と、
比較する処理の結果に基づいて、機器の回避動作を実行する実行部と
を有することを特徴とする動作制御装置。
【符号の説明】
【0094】
1 動作制御システム
10 動作制御装置
20 通信部
30 記憶部
31 姿勢情報
32 画像DB
33 機械学習モデルDB
40 制御部
41 特定部
42 生成部
43 比較部
44 実行部
50 物体検出器
60 ニューラルネットワーク
70 データセット
100 ロボットアーム
150 対象物
200 カメラ装置
300、330 撮像画像
310、320、340、350 マスク画像
400~430 合成画像
図1
図2
図3
図4
図5
図6
図7
図8
図9