JP2022077226A - 機器制御プログラム、機器制御方法および機器制御装置 - Google Patents

機器制御プログラム、機器制御方法および機器制御装置 Download PDF

Info

Publication number
JP2022077226A
JP2022077226A JP2020187979A JP2020187979A JP2022077226A JP 2022077226 A JP2022077226 A JP 2022077226A JP 2020187979 A JP2020187979 A JP 2020187979A JP 2020187979 A JP2020187979 A JP 2020187979A JP 2022077226 A JP2022077226 A JP 2022077226A
Authority
JP
Japan
Prior art keywords
timing
information
operation information
machine learning
environment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2020187979A
Other languages
English (en)
Inventor
泰斗 横田
Yasuto Yokota
彼方 鈴木
Kanata Suzuki
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2020187979A priority Critical patent/JP2022077226A/ja
Priority to US17/513,914 priority patent/US20220143824A1/en
Publication of JP2022077226A publication Critical patent/JP2022077226A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Manipulator (AREA)
  • Feedback Control In General (AREA)
  • Control Of Position Or Direction (AREA)

Abstract

【課題】安定した機器の動作を実現する。【解決手段】実施形態の機器制御プログラムは、生成する処理と、制御する処理とをコンピュータに実行させる。生成する処理は、第1のタイミングの第1の環境情報および第1の動作情報とに基づいて、第1の機械学習モデルを用いて、第2の動作情報を生成する。また、生成する処理は、第2のタイミングの第2の環境情報および第3の動作情報とに基づいて、第2の機械学習モデルを用いて、第4の動作情報を生成する。また、生成する処理は、第3のタイミングにおいて第2の動作情報に基づいて機器の動作を制御し、第3のタイミングの第3の環境情報と、第2の動作情報とに基づいて、第1の機械学習モデルを用いて、第5の動作情報を生成する。制御する処理は、第4のタイミングにおいて、第4の動作情報に基づいて機器の動作を制御し、第5のタイミングにおいて、第5の動作情報に基づいて、機器の動作を制御する。【選択図】図1

Description

本発明の実施形態は、機器制御プログラム、機器制御方法および機器制御装置に関する。
近年、産業用の機械やロボットアームにおける制御においては、ティーチング作業を減らすためにRNN(Recurrent Neural Network)やLSTM(Long Short-Term Memory)などの回帰型ニューラルネットワークの導入が進んでいる。
この回帰型ニューラルネットワークを用いた機器制御においては、LSTMを用いて現在の入力から1ステップ後のロボットアームの姿勢に関する姿勢情報を予測し、予測した姿勢情報を用いてロボットアームを動作させる従来技術が知られている。
K Suzuki, H Mori and T Ogata, "Undefined-behavior guarantee by switching to model-based controller according to the embedded dynamics in Recurrent Neural Network", arXiv:2003.04862 . https://arxiv.org/abs/2003.04862
しかしながら、上記の従来技術では、姿勢情報を予測する各ステップの処理時間がボトルネックとなり、例えば動作速度が早くなると各ステップにおける姿勢の変化量が大きくなる。このように、各ステップにおける姿勢の変化量が大きくなると、機器の動作がコマ送りのように不安定になるという問題がある。
1つの側面では、安定した機器の動作を実現できる機器制御プログラム、機器制御方法および機器制御装置を提供することを目的とする。
第1の案では、機器制御プログラムは、生成する処理と、制御する処理とをコンピュータに実行させる。生成する処理は、第1のタイミングの機器の動作環境を表す第1の環境情報と、第1のタイミングの機器の動作状態を表す第1の動作情報とに基づいて、第1の機械学習モデルを用いて、第2の動作情報を生成する。また、生成する処理は、第1のタイミングの後の第2のタイミングの機器の動作環境を表す第2の環境情報と、第2のタイミングの機器の動作状態を表す第3の動作情報とに基づいて、第2の機械学習モデルを用いて、第4の動作情報を生成する。また、生成する処理は、第2のタイミングより後の第3のタイミングにおいて第2の動作情報に基づいて機器の動作を制御し、第3のタイミングの機器の動作環境を表す第3の環境情報と、第2の動作情報とに基づいて、第1の機械学習モデルを用いて、第5の動作情報を生成する。制御する処理は、第3のタイミングより後の第4のタイミングにおいて、第4の動作情報に基づいて機器の動作を制御し、第4のタイミングより後の第5のタイミングにおいて、第5の動作情報に基づいて、機器の動作を制御する。
安定した機器の動作を実現できる。
図1は、実施形態の概要を説明する説明図である。 図2は、ロボットアームの一例を説明する説明図である。 図3は、実施形態にかかる機器制御装置の機能構成例を示すブロック図である。 図4は、実施形態にかかる機器制御装置の事前作業の一例を示すフローチャートである。 図5は、実施形態にかかる機器制御装置の動作例を示すフローチャートである。 図6は、n=3の場合の動作の概要を説明する説明図である。 図7は、コンピュータ構成の一例を説明する説明図である。
以下、図面を参照して、実施形態にかかる機器制御プログラム、機器制御方法および機器制御装置を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明する…装置およびプログラムは、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
図1は、実施形態の概要を説明する説明図である。図1に示すように、本実施形態では、機器の一例としてのロボットアーム100における制御を、RNNやLSTMなどの回帰型ニューラルネットワークである機械学習モデルM1を用いて行う。なお、制御の対象とする機器は、ロボットアーム100に限定しない。例えば、自動旋盤における制御軸の位置、加工物の送り速度、加工速度などの制御を機械学習モデルM1を用いて行ってもよい。
図2は、ロボットアーム100の一例を説明する説明図である。図2に示すように、ロボットアーム100は、軸J1~J6の自由度を有する産業用ロボットアームである。このように、自由度の高いロボットアーム100は、アーム先端位置の空間座標では姿勢が一意に定まらない。このため、事前に動作ごとにアームの軌道を決定した上で、その動作状態を実現する動作情報としてロボットアーム100の姿勢(軸J1~J6それぞれの角度の変化)を示す姿勢情報を予測する機械学習モデルM1が機械学習によって作成される。
具体的には、現在時刻をtとしたとき、時刻tにおけるロボットアーム100を含む周囲の外観を撮像した画像D1より、オートエンコーダ(AE:AutoEncoder)などがロボットアーム100の動作環境を表す特徴量(f)を抽出する(S1)。例えば、オートエンコーダを用いる場合は、画像D1をオートエンコーダに入力して中間層から得られた値(潜在変数)を特徴量(f)とする(任意の時刻である場合は添字のtは省略する)。この特徴量fは、時刻t(現在)におけるロボットアーム100の動作環境を表す環境情報の一例である。
なお、特徴量fについては、ロボットアーム100を撮像した画像D1から抽出するものに限定するものではない。例えば、特徴量fは、ロボットアーム100に設置されたカメラで撮像した画像、すなわちロボットアーム100からの視点で撮像した画像から抽出してもよい。また、特徴量fは、ロボットアーム100に設置された位置センサ、加速度センサなどの各種センサのセンサデータまたはこのセンサデータからAE等を介して抽出したデータであってもよい。
事前学習では、ロボットアーム100の現在の姿勢情報(m)と、特徴量(f)とを機械学習モデルM1に入力する。ついで、事前学習では、処理のタイミング(ステップ)において1ステップ(t+1)後の機械学習モデルM1の推定値(出力)が、その時点の姿勢情報(mt+1)と、特徴量(ft+1)となるように機械学習モデルM1のパラメータを設定する(S2)。
この機械学習モデルM1については、機械学習モデルM1が推定(出力)した1ステップ後(t+1)の推定値(ft+1,mt+1)を自身の入力とし、さらに次のステップ(t+2)の推定値(ft+2,mt+2)を出力するようにする。また、機械学習モデルM1については、このループ処理を複数回(例えばn回)繰り返すことで、複数ステップ後(t+n)の推定値(ft+n,mt+n)を出力するようにする(S3)。このようにループ処理を行うことで、機械学習モデルM1では、例えば1ステップ前の姿勢情報および特徴量の取得(入力)を待たずに、数ステップ前に取得したデータから複数ステップ先の推定を行うことができる。
本実施形態では、この機械学習モデルM1を例えば複製して複数(少なくとも2つ以上)のインスタンスを並列化しておく。そして、本実施形態では、現時点のステップで取得した情報(姿勢情報および特徴量)を複数用意した機械学習モデルM1の1つに入力する。ついで、本実施形態では、次のステップでは取得した情報を別の機械学習モデルM1に入力するように、1ステップずつずらして機械学習モデルM1に入力する。これにより、本実施形態では、制御に用いる動作情報(m)が得られる時間間隔を機械学習モデルM1の個数に応じて短くすることができる。
例えば、本実施形態では、nステップ後を予測する機械学習モデルM1を、n個並列化することで、複数(n)ステップ先までの各ステップにおける動作情報(mt+1、…mt+n-1)を予測することができる。
一例として、3ステップ後を推定する2つの機械学習モデルM1を用いる場合、本実施形態では、第1のタイミング(例えばt)における動作環境を表す特徴量(f)と、姿勢情報(m)とに基づいて、一方の機械学習モデルM1を用いて、姿勢情報(ft+3)を生成する。ついで、本実施形態では、第2のタイミング(例えばt+1)における動作環境を表す特徴量(ft+1)と、姿勢情報(mt+1)とに基づいて、他方の機械学習モデルM1を用いて、姿勢情報(ft+4)を生成する。ついで、本実施形態では、第3のタイミング(例えばt+2)において機械学習モデルM1が推定した姿勢情報(ft+3)に基づいてロボットアーム100の動作を制御する。また、本実施形態では、第3のタイミング(t+2)における動作環境を表す特徴量(ft+2)と、姿勢情報(mt+2)とに基づいて、推定が完了した機械学習モデルM1を用いて、姿勢情報(mt+5)を生成する。
以後は、機械学習モデルM1を用いた推定と、その推定により得られた姿勢情報に基づく制御を繰り返す。例えば、第4のタイミング(例えばt+3)では、第2のタイミングの情報に基づき機械学習モデルM1が推定した姿勢情報(ft+4)に基づいてロボットアーム100の動作を制御する。また、第5のタイミング(例えばt+4)では、第3のタイミングの情報に基づき機械学習モデルM1が推定した姿勢情報(ft+5)に基づいてロボットアーム100の動作を制御する。
図3は、実施形態にかかる機器制御装置の機能構成例を示すブロック図である。図3に示すように、機器制御装置1は、ロボットアーム100の動作を制御する情報処理装置であり、取得部10、生成部20および機器制御部30を有する。
取得部10は、ロボットアーム100の動作環境を表す特徴量(f)およびロボットアーム100の動作状態を示す姿勢情報(m)を取得する処理部である。具体的には、取得部10は、ロボットアーム100を撮像するカメラ101の画像をAE102に入力して得られた画像の特徴量(f)を取得する。また、取得部10は、ロボットアーム100の軸J1~J6に対応して設けられたセンサ(例えばエンコーダ)からの出力をもとに、各軸の姿勢情報(m)を取得する。取得部10は、取得した特徴量(f)および姿勢情報(m)を生成部20へ出力する。
生成部20は、取得部10が取得した特徴量(f)および姿勢情報(m)より、ロボットアーム100の動作の制御に用いる取得時より数ステップ後(例えばnステップ後)の姿勢情報(m)を生成する処理部である。具体的には、生成部20は、特徴量(f)および姿勢情報(m)の入力に対してnステップ後の特徴量(f)および姿勢情報(m)を推定する機械学習モデルM1に対応するLSTM21を複数(例えばn個)有する。各LSTM21は、特徴量(f)および姿勢情報(m)の入力に対し、1ステップ後の特徴量(f)および姿勢情報(m)の推定値を入力に回すループを繰り返すことで、nステップ後の特徴量(f)および姿勢情報(m)を推定する。
生成部20は、特定のステップで取得部10が取得した特徴量(f)および姿勢情報(m)を複数用意したLSTM21の1つに入力する。ついで、生成部20は、その次のステップでは取得部10が取得した特徴量(f)および姿勢情報(m)を別のLSTM21に入力するように、1ステップずつずらしてLSTM21に入力する。このように、生成部20は、複数のLSTM21を用いて得られた姿勢情報(m)を機器制御部30へ出力する。
機器制御部30は、生成部20が生成した姿勢情報(m)をもとにロボットアーム100の動作を制御する処理部である。具体的には、機器制御部30は、生成部20が生成した姿勢情報(m)を目標値としてロボットアーム100の動作を制御する。
図4は、実施形態にかかる機器制御装置1の事前作業の一例を示すフローチャートである。図4に示すように、事前作業においては、まず、ロボットアーム100に動作として学習させたい動作パターンを十数例程度、手動で操作する。機器制御装置1では、この操作時におけるカメラ101の画像D1およびロボットアーム100の姿勢情報(m)をセットにして教示データを作成する(S10)。
例えば、ホームポジション→テーブルの上のボルトを把持→脇の箱の中にボルトを置く→ホームポジションとする1つの動作パターンについて、20セット手動で操作する。これにより、機器制御装置1は、20セット(1セットあたり約500ステップ)=10000ステップ分の教示データを生成する。
ついで、事前作業では、教示データに含まれる画像D1をもとに、AE102の学習を行う(S11)。具体的には、S10で作成した教示データの画像D1をAE102の入力し、AE102の入力と出力との誤差が小さくなるように(AE102の出力が入力した画像D1と同じになるように)学習する。
例えば、10000ステップ分の教示データに含まれる10000枚の画像D1について、300×300pixに解像度を落としたもので、訓練数を300エポックとしてAE102を学習する。
機器制御装置1では、S11による学習後のAE102における中間層の値(潜在変数)をLSTM21に入力する特徴量(f)とする。
ついで、事前作業では、教示データに含まれる画像D1の特徴量(f)と、ロボットアーム100の姿勢情報(m)とをもとにLSTM21の学習を行う(S12)。
具体的には、時刻(t)のステップの教示データを使って、時刻(t+1)のステップの教示データの値を予測できるようにLSTM21を学習する。このとき、教示データの画像D1についてはAE102に入力し、AE102から抽出した特徴量(f)をLSTM21の入力とする。また、対応する教示データの姿勢情報(m)は、直接LSTM21に入力する。正解は、1ステップ後の教示データ(姿勢情報(m)および特徴量(f))とする。
ついで、事前作業では、学習完了したLSTM21のパラメータをコピーし、同一のパラメータを持つn個のLSTM21のインスタンスを作成(複製)する(S13)。このLSTM21の個数(n)は、ユーザが予め設定してもよい。
図5は、実施形態にかかる機器制御装置1の動作例を示すフローチャートである。図5に示すように、処理が開始されると、取得部10は、現在の画像D1をAE102に入力して得られた特徴量(f)と、現在のロボットアーム100の姿勢情報(m)とを取得する(S20)。
ついで、生成部20は、複数のLSTM21の中から、予測が完了して処理待ちのLSTM21に対して、S20で取得した特徴量(f)および姿勢情報(m)を入力する(S21)。
特徴量(f)および姿勢情報(m)の入力を受けたLSTM21では、出力(1ステップ先の推定値)を自身の入力として繰り返すループ処理により、nステップ先の姿勢情報(m)を予測する(S22)。
このように、生成部20では、開始ステップが1つずつずれた状態でn個のLSTM21が並行して予測処理を実行する(S23)。生成部20は、nステップ先の予測が完了したLSTM21より得られたnステップ先の姿勢情報(m)を機器制御部30へ出力する。
ついで、機器制御部30は、生成部20により予測された姿勢情報(m)に基づきロボットアーム100の動作を制御する(S24)。ついで、機器制御部30は、ロボットアーム100の動作が終了位置まで到達したか否かなどの終了条件を満たすか否かを判定する(S25)。
終了条件を満たさない場合(S25:No)、機器制御部30は、S20へ処理を戻し、ロボットアーム100の動作制御に関する処理を継続する。終了条件を満たす場合(S25:Yes)、機器制御部30は、ロボットアーム100の動作制御に関する処理を終了する。
図6は、n=3の場合の動作の概要を説明する説明図である。具体的には、図6の例は、それぞれが入力に対して1ステップの処理時間で3ステップ先を予測するLSTM21~23の3つのLSTMを用いてロボットアーム100を制御するケースの一例である。なお、図示例では、特徴量(f)および姿勢情報(m)を取得してLSTM21~23へ入力に至るまで1ステップ分の時間(受信時間)を要するものとする。同様に、LSTM21~23が推定した特徴量(f)および姿勢情報(m)をロボットアーム100に送信するまでに1ステップ分の時間(送信時間)を要するものとする。
図6に示すように、時刻tでは、1ステップ前(t-1)の情報(ft-1,mt-1)がLSTM21に入力される(S30)。LSTM21は、1ステップ後に3ステップ先の情報(ft+2,mt+2)を予測し、姿勢情報(mt+2)をロボットアーム100へ送信する。これにより、ロボットアーム100では、2ステップ後の(時刻t+2)にその姿勢情報(mt+2)を得ることができる。
同様に、時刻t+1では、1ステップ前(t)の情報(f,m)がLSTM22に入力される(S31)。LSTM22は、1ステップ後に3ステップ先の情報(ft+3,mt+3)を予測し、姿勢情報(mt+3)をロボットアーム100へ送信する。これにより、ロボットアーム100では、2ステップ後の(時刻t+3)にその姿勢情報(mt+3)を得ることができる。
同様に、時刻t+2では、1ステップ前(t+1)の情報(ft+1,mt+1)がLSTM23に入力される(S32)。LSTM23は、1ステップ後に3ステップ先の情報(ft+4,mt+4)を予測し、姿勢情報(mt+4)をロボットアーム100へ送信する。これにより、ロボットアーム100では、2ステップ後の(時刻t+4)にその姿勢情報(mt+4)を得ることができる。
時刻t+3では、1ステップ前(t+2)の情報(ft+2,mt+2)が処理待ちのLSTM21に入力される(S33)。これにより、LSTM21は、1ステップ後に3ステップ先の情報(ft+5,mt+5)を予測し、姿勢情報(mt+5)をロボットアーム100へ送信する。
以下、同様の処理が繰り返されることで、機器制御装置1では、1ステップごとの姿勢情報(m)を例えば目標値としてロボットアーム100に送信することで、ロボットアーム100の動作を制御することができる。このように、データの送受信に時間を要する場合であっても、制御に用いる動作情報が得られる時間間隔を短くすることで、機器制御装置1は、ロボットアーム100を高速、かつ、滑らかに動作させることができる。
以上のように、機器制御装置1の生成部20は、第1のタイミングの機器の動作環境を表す第1の環境情報と、第1のタイミングの第1の動作情報とに基づいて、LSTM21を用いて、第2の動作情報を生成する。また、生成部20は、第1のタイミングの後の第2のタイミングの機器の動作環境を表す第2の環境情報と、第2のタイミングの第3の動作情報とに基づいて、LSTM22を用いて、第4の動作情報を生成する。機器制御装置1の機器制御部30は、第2のタイミングより後の第3のタイミングにおいて第2の動作情報に基づいて機器の動作を制御する。また、生成部20は、第3のタイミングの機器の動作環境を表す第3の環境情報と、第2の動作情報とに基づいて、LSTM21を用いて、第5の動作情報を生成する。また、機器制御部30は、第3のタイミングより後の第4のタイミングにおいて、第4の動作情報に基づいて機器の動作を制御し、第4のタイミングより後の第5のタイミングにおいて、第5の動作情報に基づいて機器の動作を制御する。
このように、機器制御装置1では、例えば2つのLSTM21、22を用いて各タイミングで得られた動作情報に基づいて機器の動作を制御するので、1つのLSTM21を用いる場合よりも、制御に用いる動作情報が得られる時間間隔を短くできる。したがって、機器制御装置1は、機器の動作速度が早くなる場合でも、制御に用いる動作情報の変化量を小さく抑えて、機器の動きを滑らかなものとすることができ、安定した機器の動作を実現できる。
また、機器制御装置1では、各タイミングにおける環境情報のそれぞれは、それぞれのタイミングにおける機器の動作環境を撮像した画像から抽出する。このように、機器制御装置1は、各タイミングおいて、機器の動作環境を撮像した画像より環境情報を取得してもよい。
また、機器制御装置1では、例えばLSTM21を用いて、第1のタイミングより後の第2のタイミングに関する第2の環境情報の推定値と、第3の動作情報の推定値とを生成し、この生成した推定値に基づき第2のタイミングより後の第3のタイミングの制御に用いる第2の動作情報を生成する。このように、機器制御装置1は、1つ後のタイミングの動作情報を推定するLSTM21を用いて、さらに1つ先のタイミングの動作情報を推定してもよい。
また、機器制御装置1の20は、i番目(iは自然数)のタイミングの機器の動作環境を表すi番の環境情報と、i番目のタイミングの機器の動作状態を表すi番の動作情報とに基づいて、m個(mは2以上の自然数)の機械学習モデルM1の一つを用いて、i+n番目(n=m-1)のタイミングの動作情報を生成する。機器制御装置1の機器制御部30は、i番目より後のタイミング(i+n番目のタイミング)において、生成部20が生成したi+n番目のタイミングの動作情報に基づいて機器の動作を制御する。
このように、機器制御装置1では、例えばm個の機械学習モデルM1を用いて得られた動作情報に基づいて機器の動作を制御するので、1つの機械学習モデルM1を用いる場合よりも、制御に用いる動作情報が得られる時間間隔を機械学習モデルM1の個数に応じて短くできる。例えば、n=m-1とすると、各タイミングで得られた動作情報に基づいて機器の動作を制御することができる。したがって、機器制御装置1は、機器の動作速度が早くなる場合でも、制御に用いる動作情報の変化量を小さく抑えて、機器の動きを滑らかなものとすることができ、安定した機器の動作を実現できる。
例えば、ロボットアーム100の姿勢情報(m)の取得に2秒、ロボットアーム100が次のステップの姿勢に移動するまで1秒、機械学習モデルM1の予測に1秒要するものとする。1つの機械学習モデルM1を用いる場合は、次のとおりであり、動作情報(姿勢情報)を予測して機器を動作する処理が一巡するのに最短で4秒かかる。
1秒目:時刻tの姿勢情報(m)から機械学習モデルM1が時刻t+1の姿勢情報(mt+1)を予測
2秒目:ロボットアーム100が時刻t+1の姿勢に移動
3秒目:時刻t+1のロボットアーム100の姿勢情報を取得(1秒目)
4秒目:時刻t+1のロボットアーム100の姿勢情報を取得(2秒目)
5秒目:時刻t+1の姿勢情報(mt+1)から機械学習モデルM1が時刻t+2の姿勢情報(mt+w)を予測
これに対し、上記の条件で機械学習モデルM1の個数を4とする場合は、次のとおりであり、処理が一巡するのに最短で1秒で済む。
1秒目:時刻t-2の姿勢情報(mt-2)から機械学習モデルM1が時刻t+2の姿勢を予測、ロボットアーム100が時刻t+1の姿勢に移動、時刻tのロボットアーム100の姿勢情報を取得(1秒目)
2秒目:時刻t-1の姿勢情報(mt-1)から機械学習モデルM1が時刻t+3の姿勢を予測、ロボットアーム100が時刻t+2の姿勢に移動、時刻t+1のロボットアーム100の姿勢情報を取得(1秒目)、時刻tのロボットアーム100の姿勢情報を取得(2秒目)
3秒目:時刻tの姿勢情報(m)から機械学習モデルM1が時刻t+4の姿勢を予測、ロボットアーム100が時刻t+3の姿勢に移動、時刻t+2のロボットアーム100の姿勢情報を取得(1秒目)、時刻t+1のロボットアーム100の姿勢情報を取得(2秒目)
4秒目:時刻t+1の姿勢情報(mt+1)から機械学習モデルM1が時刻t+5の姿勢を予測、ロボットアーム100が時刻t+4の姿勢に移動、時刻t+3のロボットアーム100の姿勢情報を取得(1秒目)、時刻t+2のロボットアーム100の姿勢情報を取得(2秒目)
なお、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、機器制御装置1で行われる取得部10、生成部20および機器制御部30の各種処理機能は、制御部の一例としてのCPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウエア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。また、機器制御装置1で行われる各種処理機能は、クラウドコンピューティングにより、複数のコンピュータが協働して実行してもよい。
ところで、上記の実施形態で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施形態と同様の機能を有するプログラムを実行するコンピュータ構成(ハードウエア)の一例を説明する。図7は、コンピュータ構成の一例を説明位する説明図である。
図7に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、データ入力を受け付ける入力装置202と、モニタ203と、スピーカー204とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読み取る媒体読取装置205と、各種装置と接続するためのインタフェース装置206と、有線または無線により外部機器と通信接続するための通信装置207とを有する。また、機器制御装置1は、各種情報を一時記憶するRAM208と、ハードディスク装置209とを有する。また、コンピュータ200内の各部(201~209)は、バス210に接続される。
ハードディスク装置209には、上記の実施形態で説明した機能構成(例えば取得部10、生成部20および機器制御部30)における各種の処理を実行するためのプログラム211が記憶される。また、ハードディスク装置209には、プログラム211が参照する各種データ212が記憶される。入力装置202は、例えば、操作者から操作情報の入力を受け付ける。モニタ203は、例えば、操作者が操作する各種画面を表示する。インタフェース装置206は、例えば印刷装置等が接続される。通信装置207は、LAN(Local Area Network)等の通信ネットワークと接続され、通信ネットワークを介した外部機器との間で各種情報をやりとりする。
CPU201は、ハードディスク装置209に記憶されたプログラム211を読み出して、RAM208に展開して実行することで、上記の機能構成(例えば取得部10、生成部20および機器制御部30)に関する各種の処理を行う。なお、プログラム211は、ハードディスク装置209に記憶されていなくてもよい。例えば、コンピュータ200が読み取り可能な記憶媒体に記憶されたプログラム211を読み出して実行するようにしてもよい。コンピュータ200が読み取り可能な記憶媒体は、例えば、CD-ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にこのプログラム211を記憶させておき、コンピュータ200がこれらからプログラム211を読み出して実行するようにしてもよい。
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)第1のタイミングの機器の動作環境を表す第1の環境情報と、前記第1のタイミングの前記機器の動作状態を表す第1の動作情報とに基づいて、第1の機械学習モデルを用いて、第2の動作情報を生成し、
前記第1のタイミングの後の第2のタイミングの機器の動作環境を表す第2の環境情報と、前記第2のタイミングの前記機器の動作状態を表す第3の動作情報とに基づいて、第2の機械学習モデルを用いて、第4の動作情報を生成し、
前記第2のタイミングより後の第3のタイミングにおいて前記第2の動作情報に基づいて前記機器の動作を制御し、前記第3のタイミングの機器の動作環境を表す第3の環境情報と、前記第2の動作情報とに基づいて、前記第1の機械学習モデルを用いて、第5の動作情報を生成し、
前記第3のタイミングより後の第4のタイミングにおいて、前記第4の動作情報に基づいて前記機器の動作を制御し、
前記第4のタイミングより後の第5のタイミングにおいて、前記第5の動作情報に基づいて、前記機器の動作を制御する、
処理をコンピュータに実行させることを特徴とする機器制御プログラム。
(付記2)前記第1の環境情報は、前記第1のタイミングにおける前記機器の動作環境を撮像した画像から抽出される、
ことを特徴とする付記1に記載の機器制御プログラム。
(付記3)前記第2の動作情報を生成する処理は、前記第1の機械学習モデルを用いて、前記第2のタイミングに関する前記第2の環境情報の推定値と、前記第3の動作情報の推定値とを生成し、前記第2の環境情報の推定値と前記第3の動作情報の推定値に基づき前記第2の動作情報を生成する処理を含む、
ことを特徴とする付記1または2に記載の機器制御プログラム。
(付記4)i番目(iは自然数)のタイミングの機器の動作環境を表すi番の環境情報と、前記i番目のタイミングの前記機器の動作状態を表すi番の動作情報とに基づいて、m個(mは2以上の自然数)の機械学習モデルの一つを用いて、i+n番目(n=m-1)のタイミングの動作情報を生成し、
前記i+n番目のタイミングにおいて、生成した前記i+n番目のタイミングの動作情報に基づいて前記機器の動作を制御する、
処理をコンピュータに実行させることを特徴とする機器制御プログラム。
(付記5)第1のタイミングの機器の動作環境を表す第1の環境情報と、前記第1のタイミングの前記機器の動作状態を表す第1の動作情報とに基づいて、第1の機械学習モデルを用いて、第2の動作情報を生成し、
前記第1のタイミングの後の第2のタイミングの機器の動作環境を表す第2の環境情報と、前記第2のタイミングの前記機器の動作状態を表す第3の動作情報とに基づいて、第2の機械学習モデルを用いて、第4の動作情報を生成し、
前記第2のタイミングより後の第3のタイミングにおいて前記第2の動作情報に基づいて前記機器の動作を制御し、前記第3のタイミングの機器の動作環境を表す第3の環境情報と、前記第2の動作情報とに基づいて、前記第1の機械学習モデルを用いて、第5の動作情報を生成し、
前記第3のタイミングより後の第4のタイミングにおいて、前記第4の動作情報に基づいて前記機器の動作を制御し、
前記第4のタイミングより後の第5のタイミングにおいて、前記第5の動作情報に基づいて、前記機器の動作を制御する、
処理をコンピュータが実行することを特徴とする機器制御方法。
(付記6)前記第1の環境情報は、前記第1のタイミングにおける前記機器の動作環境を撮像した画像から抽出される、
ことを特徴とする付記5に記載の機器制御方法。
(付記7)前記第2の動作情報を生成する処理は、前記第1の機械学習モデルを用いて、前記第2のタイミングに関する前記第2の環境情報の推定値と、前記第3の動作情報の推定値とを生成し、前記第2の環境情報の推定値と前記第3の動作情報の推定値に基づき前記第2の動作情報を生成する処理を含む、
ことを特徴とする付記5または6に記載の機器制御方法。
(付記8)i番目(iは自然数)のタイミングの機器の動作環境を表すi番の環境情報と、前記i番目のタイミングの前記機器の動作状態を表すi番の動作情報とに基づいて、m個(mは2以上の自然数)の機械学習モデルの一つを用いて、i+n番目(n=m-1)のタイミングの動作情報を生成し、
前記i+n番目のタイミングにおいて、生成した前記i+n番目のタイミングの動作情報に基づいて前記機器の動作を制御する、
処理をコンピュータが実行することを特徴とする機器制御方法。
(付記9)第1のタイミングの機器の動作環境を表す第1の環境情報と、前記第1のタイミングの前記機器の動作状態を表す第1の動作情報とに基づいて、第1の機械学習モデルを用いて、第2の動作情報を生成し、
前記第1のタイミングの後の第2のタイミングの機器の動作環境を表す第2の環境情報と、前記第2のタイミングの前記機器の動作状態を表す第3の動作情報とに基づいて、第2の機械学習モデルを用いて、第4の動作情報を生成し、
前記第2のタイミングより後の第3のタイミングにおいて前記第2の動作情報に基づいて前記機器の動作を制御し、前記第3のタイミングの機器の動作環境を表す第3の環境情報と、前記第2の動作情報とに基づいて、前記第1の機械学習モデルを用いて、第5の動作情報を生成し、
前記第3のタイミングより後の第4のタイミングにおいて、前記第4の動作情報に基づいて前記機器の動作を制御し、
前記第4のタイミングより後の第5のタイミングにおいて、前記第5の動作情報に基づいて、前記機器の動作を制御する、
処理を実行する制御部を含むことを特徴とする機器制御装置。
(付記10)前記第1の環境情報は、前記第1のタイミングにおける前記機器の動作環境を撮像した画像から抽出される、
ことを特徴とする付記9に記載の機器制御装置。
(付記11)前記第2の動作情報を生成する処理は、前記第1の機械学習モデルを用いて、前記第2のタイミングに関する前記第2の環境情報の推定値と、前記第3の動作情報の推定値とを生成し、前記第2の環境情報の推定値と前記第3の動作情報の推定値に基づき前記第2の動作情報を生成する処理を含む、
ことを特徴とする付記9または10に記載の機器制御装置。
(付記12)i番目(iは自然数)のタイミングの機器の動作環境を表すi番の環境情報と、前記i番目のタイミングの前記機器の動作状態を表すi番の動作情報とに基づいて、m個(mは2以上の自然数)の機械学習モデルの一つを用いて、i+n番目(n=m-1)のタイミングの動作情報を生成し、
前記i+n番目のタイミングにおいて、生成した前記i+n番目のタイミングの動作情報に基づいて前記機器の動作を制御する、
処理を実行する制御部を含むことを特徴とする機器制御装置。
1…機器制御装置
10…取得部
20…生成部
21~23…LSTM
30…機器制御部
100…ロボットアーム
101…カメラ
102…AE
200…コンピュータ
201…CPU
202…入力装置
203…モニタ
204…スピーカー
205…媒体読取装置
206…インタフェース装置
207…通信装置
208…RAM
209…ハードディスク装置
210…バス
211…プログラム
212…各種データ
D1…画像
J1~J6…軸
M1…機械学習モデル

Claims (6)

  1. 第1のタイミングの機器の動作環境を表す第1の環境情報と、前記第1のタイミングの前記機器の動作状態を表す第1の動作情報とに基づいて、第1の機械学習モデルを用いて、第2の動作情報を生成し、
    前記第1のタイミングの後の第2のタイミングの機器の動作環境を表す第2の環境情報と、前記第2のタイミングの前記機器の動作状態を表す第3の動作情報とに基づいて、第2の機械学習モデルを用いて、第4の動作情報を生成し、
    前記第2のタイミングより後の第3のタイミングにおいて前記第2の動作情報に基づいて前記機器の動作を制御し、前記第3のタイミングの機器の動作環境を表す第3の環境情報と、前記第2の動作情報とに基づいて、前記第1の機械学習モデルを用いて、第5の動作情報を生成し、
    前記第3のタイミングより後の第4のタイミングにおいて、前記第4の動作情報に基づいて前記機器の動作を制御し、
    前記第4のタイミングより後の第5のタイミングにおいて、前記第5の動作情報に基づいて、前記機器の動作を制御する、
    処理をコンピュータに実行させることを特徴とする機器制御プログラム。
  2. 前記第1の環境情報は、前記第1のタイミングにおける前記機器の動作環境を撮像した画像から抽出される、
    ことを特徴とする請求項1に記載の機器制御プログラム。
  3. 前記第2の動作情報を生成する処理は、前記第1の機械学習モデルを用いて、前記第2のタイミングに関する前記第2の環境情報の推定値と、前記第3の動作情報の推定値とを生成し、前記第2の環境情報の推定値と前記第3の動作情報の推定値に基づき前記第2の動作情報を生成する処理を含む、
    ことを特徴とする請求項1または2に記載の機器制御プログラム。
  4. i番目(iは自然数)のタイミングの機器の動作環境を表すi番の環境情報と、前記i番目のタイミングの前記機器の動作状態を表すi番の動作情報とに基づいて、m個(mは2以上の自然数)の機械学習モデルの一つを用いて、i+n番目(n=m-1)のタイミングの動作情報を生成し、
    前記i+n番目のタイミングにおいて、生成した前記i+n番目のタイミングの動作情報に基づいて前記機器の動作を制御する、
    処理をコンピュータに実行させることを特徴とする機器制御プログラム。
  5. 第1のタイミングの機器の動作環境を表す第1の環境情報と、前記第1のタイミングの前記機器の動作状態を表す第1の動作情報とに基づいて、第1の機械学習モデルを用いて、第2の動作情報を生成し、
    前記第1のタイミングの後の第2のタイミングの機器の動作環境を表す第2の環境情報と、前記第2のタイミングの前記機器の動作状態を表す第3の動作情報とに基づいて、第2の機械学習モデルを用いて、第4の動作情報を生成し、
    前記第2のタイミングより後の第3のタイミングにおいて前記第2の動作情報に基づいて前記機器の動作を制御し、前記第3のタイミングの機器の動作環境を表す第3の環境情報と、前記第2の動作情報とに基づいて、前記第1の機械学習モデルを用いて、第5の動作情報を生成し、
    前記第3のタイミングより後の第4のタイミングにおいて、前記第4の動作情報に基づいて前記機器の動作を制御し、
    前記第4のタイミングより後の第5のタイミングにおいて、前記第5の動作情報に基づいて、前記機器の動作を制御する、
    処理をコンピュータが実行することを特徴とする機器制御方法。
  6. 第1のタイミングの機器の動作環境を表す第1の環境情報と、前記第1のタイミングの前記機器の動作状態を表す第1の動作情報とに基づいて、第1の機械学習モデルを用いて、第2の動作情報を生成し、
    前記第1のタイミングの後の第2のタイミングの機器の動作環境を表す第2の環境情報と、前記第2のタイミングの前記機器の動作状態を表す第3の動作情報とに基づいて、第2の機械学習モデルを用いて、第4の動作情報を生成し、
    前記第2のタイミングより後の第3のタイミングにおいて前記第2の動作情報に基づいて前記機器の動作を制御し、前記第3のタイミングの機器の動作環境を表す第3の環境情報と、前記第2の動作情報とに基づいて、前記第1の機械学習モデルを用いて、第5の動作情報を生成し、
    前記第3のタイミングより後の第4のタイミングにおいて、前記第4の動作情報に基づいて前記機器の動作を制御し、
    前記第4のタイミングより後の第5のタイミングにおいて、前記第5の動作情報に基づいて、前記機器の動作を制御する、
    処理を実行する制御部を含むことを特徴とする機器制御装置。
JP2020187979A 2020-11-11 2020-11-11 機器制御プログラム、機器制御方法および機器制御装置 Pending JP2022077226A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020187979A JP2022077226A (ja) 2020-11-11 2020-11-11 機器制御プログラム、機器制御方法および機器制御装置
US17/513,914 US20220143824A1 (en) 2020-11-11 2021-10-29 Computer-readable recording medium having stored therein apparatus control program, apparatus control method, and apparatus control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020187979A JP2022077226A (ja) 2020-11-11 2020-11-11 機器制御プログラム、機器制御方法および機器制御装置

Publications (1)

Publication Number Publication Date
JP2022077226A true JP2022077226A (ja) 2022-05-23

Family

ID=81454220

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020187979A Pending JP2022077226A (ja) 2020-11-11 2020-11-11 機器制御プログラム、機器制御方法および機器制御装置

Country Status (2)

Country Link
US (1) US20220143824A1 (ja)
JP (1) JP2022077226A (ja)

Also Published As

Publication number Publication date
US20220143824A1 (en) 2022-05-12

Similar Documents

Publication Publication Date Title
CN110573308B (zh) 用于机器人设备的空间编程的基于计算机的方法及系统
JP6411964B2 (ja) 工作機械とロボットのリアルタイム干渉確認システム
JP7387920B2 (ja) ロボットを制御するための方法及びロボットコントローラ
WO2019116891A1 (ja) ロボットシステム及びロボット制御方法
JP2018180764A (ja) 調整装置及び調整方法
JP2023526962A (ja) ロボットデモンストレーション学習用スキルテンプレート
US20220063091A1 (en) Robot control device, robot system and robot control method
EP3911478A1 (en) System for emulating remote control of a physical robot
JP2007265345A (ja) 情報処理装置および方法、学習装置および方法、並びにプログラム
CN114516060A (zh) 用于控制机器人装置的设备和方法
JP2019038089A (ja) ロボットシステム
CN114932555A (zh) 机械臂协同作业系统及机械臂控制方法
US20220066401A1 (en) Machine control system
JP2023526211A (ja) 分散型ロボット実証学習
JP2022077226A (ja) 機器制御プログラム、機器制御方法および機器制御装置
US20200368901A1 (en) Arithmetic device, control program, machine learner, grasping apparatus, and control method
US20220143833A1 (en) Computer-readable recording medium storing abnormality determination program, abnormality determination method, and abnormality determination apparatus
JP2004025428A (ja) ロボット制御装置の通信方法およびロボット制御装置
JP2023023193A (ja) 制御システム及び制御方法
WO2022158079A1 (ja) 制御装置及び自動作業方法
US20230249347A1 (en) Path planning during execution of robot control
US20240054393A1 (en) Learning Device, Learning Method, Recording Medium Storing Learning Program, Control Program, Control Device, Control Method, and Recording Medium Storing Control Program
CN114080304B (zh) 控制装置、控制方法及控制程序
WO2023067972A1 (ja) 動作指令生成装置および動作指令生成方法
US20230339107A1 (en) Online augmentation of learned grasping

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230707