(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-22
(45)【発行日】2024-03-04
(54)【発明の名称】学習モデル生成方法、学習モデル生成プログラム、学習モデル生成装置、学習用データ生成方法、学習用データ生成プログラム、学習用データ生成装置、推論方法、推論プログラム、推論装置、秤量方法、及び秤量システム
(51)【国際特許分類】
B25J 13/00 20060101AFI20240226BHJP
G06N 3/02 20060101ALI20240226BHJP
G06N 20/00 20190101ALI20240226BHJP
【FI】
B25J13/00 Z
G06N3/02
G06N20/00
(21)【出願番号】P 2022103527
(22)【出願日】2022-06-28
【審査請求日】2022-06-28
(32)【優先日】2022-02-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】501428545
【氏名又は名称】株式会社デンソーウェーブ
(73)【特許権者】
【識別番号】522259119
【氏名又は名称】インテグラル エーアイ インク
【氏名又は名称原語表記】INTEGRAL AI INC.
(74)【代理人】
【識別番号】110000567
【氏名又は名称】弁理士法人サトー
(72)【発明者】
【氏名】山本 洋介
(72)【発明者】
【氏名】ジャド タリフィ
【審査官】杉山 悟史
(56)【参考文献】
【文献】特許第6717493(JP,B1)
【文献】国際公開第2018/159341(WO,A1)
【文献】特開2021-164980(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ~ 21/02
G06N 3/02
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
対象流体を収容した第1容器を保持して前記第1容器から第2容器に前記対象流体を注ぐ際の
ロボットアームの各軸の回転角度の集合によって構成される前記ロボットアームの姿勢に関する時系列の情報と、前記第2容器の時系列の重量と、を含む学習用データを複数取得し、
前記学習用データを用いて、第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力とし、第2時刻における前記ロボットアームの姿勢に関する情報を出力とする学習モデルを生成する、
学習モデル生成方法。
【請求項2】
前記学習用データは、前記ロボットアームに作用する負荷に関する情報を含んでいる、
請求項1に記載の学習モデル生成方法。
【請求項3】
前記学習用データは、前記ロボットアームに作用する負荷に関する情報として、前記ロボットアームの各軸のモータの電流値を含んでいる、
請求項2に記載の学習モデル生成方法。
【請求項4】
コンピュータに、
対象流体を収容した第1容器を保持して前記第1容器から第2容器に前記対象流体を注ぐ際の
ロボットアームの各軸の回転角度の集合によって構成される前記ロボットアームの姿勢に関する時系列の情報と、前記第2容器の時系列の重量と、を含む学習用データを複数取得する処理と、
前記学習用データを用いて、第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力とし、第2時刻における前記ロボットアームの姿勢に関する情報を出力とする学習モデルを生成する処理と、
を実行させるための学習モデル生成プログラム。
【請求項5】
対象流体を収容した第1容器を保持して前記第1容器から第2容器に前記対象流体を注ぐ際の
ロボットアームの各軸の回転角度の集合によって構成される前記ロボットアームの姿勢に関する時系列の情報と、前記第2容器の時系列の重量と、を含む学習用データを複数取得する学習用データ取得部と、
前記学習用データを用いて、第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力とし、第2時刻における前記ロボットアームの姿勢に関する情報を出力とする学習モデルを生成する学習処理部と、
を備える学習モデル生成装置。
【請求項6】
対象流体を収容した第1容器を保持して前記第1容器から第2容器に前記対象流体を注ぐ際の
ロボットアームの各軸の回転角度の集合によって構成される前記ロボットアームの姿勢に関する時系列の情報を取得する処理と、
前記第2容器の時系列の重量を取得する処理と、
前記ロボットアームの姿勢に関する時系列の情報と前記第2容器の時系列の重量とを対応付ける処理と、
を含む学習用データ生成方法。
【請求項7】
コンピュータに、
対象流体を収容した第1容器を保持して前記第1容器から第2容器に前記対象流体を注ぐ際の
ロボットアームの各軸の回転角度の集合によって構成される前記ロボットアームの姿勢に関する時系列の情報と、前記第2容器の時系列の重量と、を取得する処理と、
前記ロボットアームの姿勢に関する情報と前記第2容器の重量とを取得時刻で対応付けた学習用データを生成する処理と、
を実行させるための学習用データ生成プログラム。
【請求項8】
対象流体を収容した第1容器を保持して前記第1容器から第2容器に前記対象流体を注ぐ際の
ロボットアームの各軸の回転角度の集合によって構成される前記ロボットアームの姿勢に関する情報と、前記第2容器の重量とを取得する状態データ取得部と、
前記ロボットアームの姿勢に関する情報と前記第2容器の重量とを取得時刻で対応付けた学習用データを生成する学習用データ生成処理部と、
を備える学習用データ生成装置。
【請求項9】
対象流体を収容した第1容器をロボットアームが保持して前記第1容器から第2容器に前記対象流体を注ぐ場合に、
第1時刻における
前記ロボットアームの各軸の回転角度の集合によって構成される前記ロボットアームの姿勢に関する情報を取得し、
前記第1時刻における前記第2容器の重量を取得し、
前記第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力とし、第2時刻における前記ロボットアームの姿勢に関する情報を出力とする学習用データを用いて学習させた学習モデルに、取得した前記第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力して、前記第2時刻における前記ロボットアームの姿勢に関する情報を出力する、
推論方法。
【請求項10】
対象流体を収容した第1容器をロボットアームが保持して前記第1容器から第2容器に前記対象流体を注ぐ場合に、
コンピュータに、
第1時刻における
前記ロボットアームの各軸の回転角度の集合によって構成される前記ロボットアームの姿勢に関する情報を取得する処理と、
前記第1時刻における前記第2容器の重量を取得する処理と、
前記第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力とし、第2時刻における前記ロボットアームの姿勢に関する情報を出力とする学習用データを用いて学習させた学習モデルに、取得した前記第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力して、前記第2時刻における前記ロボットアームの姿勢に関する情報を出力する処理と、
を実行させるための推論プログラム。
【請求項11】
対象流体を収容した第1容器をロボットアームが保持して前記第1容器から第2容器に前記対象流体を注ぐ場合において、
第1時刻における
前記ロボットアームの各軸の回転角度の集合によって構成される前記ロボットアームの姿勢に関する情報と、前記第1時刻における前記第2容器の重量と、を取得する状態データ取得部と、
前記第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力とし、第2時刻における前記ロボットアームの姿勢に関する情報を出力とする学習用データを用いて学習させた学習モデルに、取得した前記第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力して、前記第2時刻における前記ロボットアームの姿勢に関する情報を出力する推論処理部と、
を備える推論装置。
【請求項12】
対象流体を収容した第1容器をロボットアームが保持して前記第1容器から第2容器に前記対象流体を注ぐ方法であって、
第1時刻における
前記ロボットアームの各軸の回転角度の集合によって構成される前記ロボットアームの姿勢に関する情報を取得し、
前記第1時刻における前記第2容器の重量を取得し、
前記第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力とし、第2時刻における前記ロボットアームの姿勢に関する情報を出力とする学習用データを用いて学習させた学習モデルに、取得した前記第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力して、前記第2時刻における前記ロボットアームの姿勢に関する情報を出力し、
前記第2時刻における前記ロボットアームの姿勢に関する情報に基づいて前記ロボットアームの動作を制御する、
秤量方法。
【請求項13】
対象流体を収容した第1容器を保持して前記第1容器から第2容器に前記対象流体を注ぐ際の
ロボットアームの各軸の回転角度の集合によって構成される前記ロボットアームの姿勢に関する情報と、前記第2容器の重量とを取得する状態データ取得部と、
第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力とし、第2時刻における前記ロボットアームの姿勢に関する情報を出力とする学習用データを用いて学習させた学習モデルに、取得した前記第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力して、前記第2時刻における前記ロボットアームの姿勢に関する情報を出力する学習処理部と、
前記第2時刻における前記ロボットアームの姿勢に関する情報に基づいて前記ロボットアームの動作を制御する制御装置と、
を備える秤量システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、学習モデル生成方法、学習モデル生成プログラム、学習モデル生成装置、学習用データ生成方法、学習用データ生成プログラム、学習用データ生成装置、推論方法、推論プログラム、推論装置、秤量方法、及び秤量システムに関する。
【背景技術】
【0002】
従来では人が行っていた作業をロボットに代わりに行わせる技術の開発が近年行われている。そのような技術に、例えば容器に入った液体を指定された量だけ他の容器に移し替えるといった秤量処理を、ロボットアームと機械学習を用いて自動で行うものがある。しかしながら、従来構成においては、機械学習の手法等に関して未だ改善の余地がある。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示の目的は、ロボットアームで液体を含む流体を秤量する際の制御に機械学習を取り入れたものにおいて機械学習の手法に関して改善を図った、学習モデル生成方法、学習モデル生成プログラム、学習モデル生成装置、学習用データ生成方法、学習用データ生成プログラム、学習用データ生成装置、推論方法、推論プログラム、推論装置、秤量方法、及び秤量システムを提供することにある。
【課題を解決するための手段】
【0005】
実施形態による学習モデル生成方法は、対象流体を収容した第1容器を保持して前記第1容器から第2容器に前記対象流体を注ぐ際のロボットアームの姿勢に関する時系列の情報と、前記第2容器の時系列の重量と、を含む学習用データを複数取得し、前記学習用データを用いて、第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力とし、第2時刻における前記ロボットアームの姿勢に関する情報を出力とする学習モデルを生成する。
【0006】
実施形態による学習モデル生成プログラムは、コンピュータに、対象流体を収容した第1容器を保持して前記第1容器から第2容器に前記対象流体を注ぐ際のロボットアームの姿勢に関する時系列の情報と、前記第2容器の時系列の重量と、を含む学習用データを複数取得する処理と、前記学習用データを用いて、第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力とし、第2時刻における前記ロボットアームの姿勢に関する情報を出力とする学習モデルを生成する処理と、を実行させる。
【0007】
実施形態による学習モデル生成装置は、対象流体を収容した第1容器を保持して前記第1容器から第2容器に前記対象流体を注ぐ際のロボットアームの姿勢に関する時系列の情報と、前記第2容器の時系列の重量と、を含む学習用データを複数取得する学習用データ取得部と、前記学習用データを用いて、第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力とし、第2時刻における前記ロボットアームの姿勢に関する情報を出力とする学習モデルを生成する学習処理部と、を備える。
【0008】
実施形態による学習用データ生成方法は、対象流体を収容した第1容器を保持して前記第1容器から第2容器に前記対象流体を注ぐ際のロボットアームの姿勢に関する時系列の情報を取得する処理と、前記第2容器の時系列の重量を取得する処理と、前記ロボットアームの姿勢に関する時系列の情報と前記第2容器の時系列の重量とを対応付ける処理と、を含む。
【0009】
実施形態による学習用データ生成プログラムは、コンピュータに、対象流体を収容した第1容器を保持して前記第1容器から第2容器に前記対象流体を注ぐ際のロボットアームの姿勢に関する時系列の情報と、前記第2容器の時系列の重量と、を取得する処理と、前記ロボットアームの姿勢に関する情報と前記第2容器の重量とを取得時刻で対応付けた学習用データを生成する処理と、を実行させる。
【0010】
実施形態による学習用データ生成装置は、対象流体を収容した第1容器を保持して前記第1容器から第2容器に前記対象流体を注ぐ際のロボットアームの姿勢に関する情報と、前記第2容器の重量とを取得する状態データ取得部と、前記ロボットアームの姿勢に関する情報と前記第2容器の重量とを取得時刻で対応付けた学習用データを生成する学習用データ生成処理部と、を備える。
【0011】
実施形態による推論方法は、対象流体を収容した第1容器をロボットアームが保持して前記第1容器から第2容器に前記対象流体を注ぐ場合に、第1時刻における前記ロボットアームの姿勢に関する情報を取得し、前記第1時刻における前記第2容器の重量を取得し、前記第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力とし、第2時刻における前記ロボットアームの姿勢に関する情報を出力とする学習用データを用いて学習させた学習モデルに、取得した前記第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力して、前記第2時刻における前記ロボットアームの姿勢に関する情報を出力する。
【0012】
実施形態による推論プログラムは、対象流体を収容した第1容器をロボットアームが保持して前記第1容器から第2容器に前記対象流体を注ぐ場合に、コンピュータに、第1時刻における前記ロボットアームの姿勢に関する情報を取得する処理と、前記第1時刻における前記第2容器の重量を取得する処理と、前記第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力とし、第2時刻における前記ロボットアームの姿勢に関する情報を出力とする学習用データを用いて学習させた学習モデルに、取得した前記第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力して、前記第2時刻における前記ロボットアームの姿勢に関する情報を出力する処理と、を実行させる。
【0013】
実施形態による推論装置は、対象流体を収容した第1容器をロボットアームが保持して前記第1容器から第2容器に前記対象流体を注ぐ場合において、第1時刻における前記ロボットアームの姿勢に関する情報と、前記第1時刻における前記第2容器の重量と、を取得する状態データ取得部と、前記第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力とし、第2時刻における前記ロボットアームの姿勢に関する情報を出力とする学習用データを用いて学習させた学習モデルに、取得した前記第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力して、前記第2時刻における前記ロボットアームの姿勢に関する情報を出力する推論処理部と、を備える。
【0014】
実施形態による秤量方法は、対象流体を収容した第1容器をロボットアームが保持して前記第1容器から第2容器に前記対象流体を注ぐ方法であって、第1時刻における前記ロボットアームの姿勢に関する情報を取得し、前記第1時刻における前記第2容器の重量を取得し、前記第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力とし、第2時刻における前記ロボットアームの姿勢に関する情報を出力とする学習用データを用いて学習させた学習モデルに、取得した前記第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力して、前記第2時刻における前記ロボットアームの姿勢に関する情報を出力し、前記第2時刻における前記ロボットアームの姿勢に関する情報に基づいて前記ロボットアームの動作を制御する。
【0015】
実施形態による秤量システムは、対象流体を収容した第1容器を保持して前記第1容器から第2容器に前記対象流体を注ぐ際のロボットアームの姿勢に関する情報と、前記第2容器の重量とを取得する状態データ取得部と、第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力とし、第2時刻における前記ロボットアームの姿勢に関する情報を出力とする学習用データを用いて学習させた学習モデルに、取得した前記第1時刻における前記ロボットアームの姿勢に関する情報及び前記第2容器の重量を入力して、前記第2時刻における前記ロボットアームの姿勢に関する情報を出力する学習処理部と、前記第2時刻における前記ロボットアームの姿勢に関する情報に基づいて前記ロボットアームの動作を制御する制御装置と、を備える。
【図面の簡単な説明】
【0016】
【
図1】一実施形態による秤量システムの構成の一例を概念的に示す図
【
図2】一実施形態によるロボットアームの構成の一例を概念的に示す図
【
図3】一実施形態による秤量システムの構成の一例を機能ブロックを用いて概念的に示す図
【
図4】一実施形態による情報処理装置のハードウェア構成の一例を概念的に示す図
【
図5】一実施形態における学習用データの一例を概念的に示す図
【
図6】一実施形態において学習用データを生成するための制御内容の一例を示すフローチャート
【
図7】一実施形態における学習モデルの一例を概念的に示す図
【
図8】一実施形態において秤量処理を実行するための制御内容の一例を示すフローチャート
【発明を実施するための形態】
【0017】
以下、一実施形態について図面を参照しながら説明する。
本実施形態の秤量システム1は、機械学習に基づいてロボットアーム10の制御することで、第1容器91から第2容器92に指定量の流体を注ぎ移し替える秤量処理を実行可能なシステムである。本実施形態の秤量システム1は、第1容器91の内容物を注ぐ際のロボットアーム10の動作と、そのロボットアーム10の動作により変化する第2容器92の重量つまり第2容器92に注がれる流体の重量との関係を機械学習し、その機械学習で得られた学習モデルを用いて、例えばユーザが指定した目標とする秤量値となるようにロボットアーム10を自動で動作させるものである。
【0018】
ロボットアーム10は、第1容器91を例えば把持などして保持可能に構成されている。そして、ロボットアーム10は、保持した第1容器91を第2容器92の近傍まで搬送し、第2容器92に対して第1容器91を傾けることで、第1容器91内に収容されている流体を第2容器92内に注いで移し替える。これにより、秤量システム1は、第1容器91内に収容されている流体の所定量の秤量を行う。
【0019】
なお、本明細書において、第1容器91及び第2容器92の形状、サイズ、色、及び重量は、特定の構成に限定されない。秤量システム1が秤量の対象とする流体は、液体に限られず、流動性を有する粉体や粒体であっても良い。液体を秤量の対象とする場合、液体の色や粘度は特に限定されない。秤量を行う時点で第1容器91及び第2容器92内に収容されている流体の量も特に限定されない。また、本明細書において、第1容器91又は第2容器92の重量という場合は、第1容器91又は第2容器92内に収容されている流体の重量も含むものとする。
【0020】
秤量システム1は、
図1に示すように、ロボットアーム10、制御装置20、計量器30、及び情報処理装置40を備える。なお、本実施形態の秤量システム1は、ロボットアーム10の制御及び機械学習に画像又は映像情報を利用しない。そのため、本実施形態の秤量システム1は、カメラ等の光学機器を含まずに構成することができる。また、ロボットアーム10は、第1容器91を保持して傾けることで第1容器91内に収容されている流体を第2容器92内に注ぐことができるものであれば良い。ロボットアーム10は、例えば水平多関節型のロボットアームやパラレルリンク側のロボットアーム、直交型のロボットアーム等であっても良い。
【0021】
ロボットアーム10は、
図2に示すように、例えば6軸を有する垂直多関節ロボットで構成することができる。ロボットアーム10は、ベース11と、複数この場合6つのアーム121~126と、を有している。各アーム121~126は、ベース11上に順に設けられている。本実施形態の場合、ベース11側から順に、第1アーム121、第2アーム122、第3アーム123、第4アーム124、第5アーム125、及び第6アーム126と称する。
【0022】
各アーム121~126は、それぞれ複数の軸J1~J6を介して回転可能に連結されている。この場合、ベース11側から順に、第1軸J1、第2軸J2、第3軸J3、第4軸J4、第5軸J5、及び第6軸J6と称する。なお、各軸J1~J6を特定しない場合は、各軸J1~J6を総称して単に軸Jと称する。各軸J1~J6は、それぞれ個別に例えばサーボモータにより回転駆動することができる。なお、本実施形態において、ロボットアーム10の姿勢に関する情報とは、各軸Jnの回転角度θnの集合によって構成されるロボットアーム10の状態を意味する。この場合の「n」は、各軸J1~J6に対応する整数を意味する。例えば角度θ1とした場合、第1軸J1の角度を意味する。なお、本明細書では、第n軸の回転角度θnを第n軸角度θnと称することがある。
【0023】
ここで、第1容器91内の流体を注ぐ際に、第6軸J6のみを回転させて第1容器91を傾けようとすると、第1容器91の注ぎ口つまり第1容器91から流体が流出する部分の位置が、上下方向及び水平方向に移動してしまう。このため、通常、人が秤量を行う際は、容器の注ぎ口周辺を支点に容器の底部分を持ち上げるようにして容器を傾ける。このため、本実施形態では、ロボットアーム10の姿勢に関する情報に用いる軸Jnは、第1容器91の回転角度に影響する軸この場合第6軸J6だけでなく、第1容器91の注ぎ口の位置すなわち流体の流出位置に影響する全ての軸を含んでいる。これにより、秤量システム1は、人の動作をより正確に学習し模倣することができる。
【0024】
第6アーム126はロボットアーム10の手先部分であり、例えばフランジ形状に構成されている。第6アーム126の先端部分にはツール部13が着脱可能に装着される。ツール部13は、例えばチャックやグリッパと称されるものである。本実施形態の場合、ツール部13は、第1容器91を保持することができる。また、ロボットアーム10は、詳細は図示しないが、各軸J1~J6を駆動するためのサーボモータ、各軸J1~J6の回転数及び位置を検出するためのエンコーダ、及び各軸J1~J6の動作を停止させるためのブレーキ等を有している。
【0025】
制御装置20は、いわゆるロボットコントローラと称するものであり、ロボットアーム10の動作を制御する機能を有する。ロボットアーム10と制御装置20とは、有線または無線により相互通信可能に構成される。また、制御装置20は、パソコンや、スマートフォンなどの携帯端末など、その他の外部の装置に有線または無線により相互通信可能に接続されていても良い。制御装置20は、ロボットアーム10に内蔵した形態としても良いし、サーバ等によって実現されて遠隔でロボットアーム10の制御を行う構成であっても良い。また、制御装置20は、情報処理装置40と同一又は共通するハードウェアで構成しても良い。
【0026】
制御装置20は、
図1に示すように、例えばCPU21、記憶部22、駆動部23、及び位置検出部24を有して構成することができる。記憶部22は、例えばROM、RAM、及び書き換え可能なフラッシュメモリなどの記憶領域で構成されており、ロボットアーム10の動作を制御するコンピュータプログラムを記憶している。駆動部23は、例えばインバータ回路を含んで構成されており、ロボットアーム10の各軸J1~J6のモータに対する電流を制御することで、各軸J1~J6の動作を制御することができる。制御装置20は、情報処理装置40から受信するロボットアーム10の姿勢に関する情報に基づいてロボットアーム10の動作を制御する。
【0027】
位置検出部24は、例えば各軸J1~J6に対応して設けられたエンコーダ等を含んで構成されており、各軸J1~J6の回転角度θnすなわち各モータの回転角度を検出することができる。制御装置20は、位置検出部24で検出した各軸J1~J6の位置に基づいて例えばフィードバック制御によりそれぞれのモータを駆動する。制御装置20は、位置検出部24で検出した各軸J1~J6の位置つまり各モータの回転角度を、取得した時刻と共に情報処理装置40に送信する。
【0028】
計量器30は、例えば電子秤等で構成することができる。第2容器92は、計量器30に載置されている。計量器30は、第2容器92の重量を所定間隔で計測し、その計測結果を、取得時刻と共に情報処理装置40へ送信する。
【0029】
情報処理装置40は、
図3に示すように、学習用データ生成装置401、学習モデル生成装置402、及び推論装置403を含んで構成されている。学習用データ生成装置401、学習モデル生成装置402、及び推論装置403は、例えばCPUにおいてコンピュータプログラムを実行することにより仮想的に実現される機能部で構成することができる。なお、学習用データ生成装置401、学習モデル生成装置402、及び推論装置403は、同一又は共通するハードウェアで構成することもできるし、異なるハードウェアで構成することもできる。
【0030】
情報処理装置40のハードウェア構成は、
図4に示すように、CPU51、主記憶装置52、補助記憶装置53、及びインタフェース54を含んで構成することができる。補助記憶装置53は、学習用データ生成装置401、学習モデル生成装置402、及び推論装置403をコンピュータ上で仮想的に実現するための各コンピュータプログラム61、62、63を記憶している。情報処理装置40は、CPU51が各プログラム61、62、63を補助記憶装置53から読み出して主記憶装置52に展開し実行することで、学習用データ生成装置401、学習モデル生成装置402、及び推論装置403をそれぞれコンピュータ上で仮想的に実現することができる。
【0031】
CPU51は、プログラムに従って、学習用データ生成装置401で生成された複数の学習用データ64及び学習モデル生成装置402で生成された学習モデル65を主記憶装置52又は補助記憶装置53に記憶させる。本実施形態において、CPU51は、複数の学習用データ64をコンピュータで利用可能にまとめたもて学習用データ群640として主記憶装置52又は補助記憶装置53に記憶させることができる。なお、
図4に示す学習用データ群640に含まれる学習用データ64は、それぞれ具体的な内容が異なるものであるが、便宜的に同一の符号を付している。
【0032】
補助記憶装置53は、有形かつ非一時的なコンピュータ可読媒体で構成される。補助記憶装置53の例としては、HDD(Hard Disk Drive)、SSD(Solid State Drive)、磁気ディスク、光磁気ディスク、CD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)、半導体メモリ等が挙げられる。補助記憶装置53は、情報処理装置40を構成するコンピュータのバスに直接接続された内部メディアであってもよいし、インタフェース54または通信回線を介して情報処理装置40に接続される外部メディアであってもよい。また、各プログラム61、62、63が通信回線によって情報処理装置40に配信される場合、配信を受けた情報処理装置40が当該プログラムを主記憶装置52に展開し実行することで、上記各装置401、402、403が実現される。
【0033】
なお、各装置401、402、403の実現は、上記したハードウェアとプログラムの組み合わせに限らず、装置401、402、403にプログラムをインプリメントした集積回路のようなハードウェア単体で実現するようにしてもよいし、一部の機能を専用のハードウェアで実現し、一部を情報処理装置40とプログラムの組み合わせで実現するようにしてもよい。
【0034】
学習用データ生成装置401は、学習モデル生成装置402で用いるための学習用データを生成する機能を有する。学習用データ生成装置401は、状態データ取得部41及び学習用データ生成処理部42を有している。状態データ取得部41は、状態データ取得処理を実行可能である。状態データ取得処理は、学習用データすなわち教師データとして、ロボットアーム10に秤量処理の見本動作を実行させた際のロボットアーム10及び第2容器92の状態データを取得する機能を有する処理を含む。
【0035】
状態データ取得部41は、ロボットアーム10に見本動作をさせている間に、制御装置20及び計量器30から、ロボットアーム10及び第2容器92の現時刻における状態データを逐次取得する。見本動作は、ロボットアーム10が第1容器91を傾けて所定量の流体を第2容器92に注いだ後、第1容器91の傾きを復帰させるまでにおけるロボットアーム10の一連の動作を含んでいる。また、見本動作は、ロボットアーム10が第1容器91の把持を開始した時点からの動作を含むものであっても良い。
【0036】
制御装置20から取得するロボットアーム10の状態データには、現時刻(t)におけるロボットアーム10の各軸J1~J6の角度θn(t)と、現時刻(t)における各軸J1~J6のモータの電流値In(t)と、が含まれる。なお、本実施形態において、電流値Inにおける「n」は、角度θnの場合と同様に、各軸J1~J6に対応する整数を意味する。例えば電流値I1とした場合、第1軸J1に対応したモータの電流値を意味する。
【0037】
また、本明細書では、第n軸のモータの電流値Inを第n軸電流値Inと称することがある。各軸J1~J6の電流値Inは、各軸J1~J6のモータに作用する負荷によって変化するため、各軸J1~J6に作用する負荷に関する情報つまり負荷量として扱うことができる。そして、ロボットアーム10が第1容器91を保持している場合、各軸J1~J6に作用する負荷は第1容器91の重量に応じて変化するため、各軸J1~J6の電流値Inは、第1容器91の重量に関する情報として扱うことができる。
【0038】
学習用データ生成処理部42は、学習用データ生成処理を実行可能である。学習用データ生成処理は、状態データ取得部41で取得した状態データから学習用データを生成する処理である。学習用データ生成処理は、ロボットアーム10の状態データすなわち各時刻における各軸J1~J6の角度θn(t)及び各時刻における各軸J1~J6のモータの電流値In(t)と、各時刻における第2容器92の重量w(t)とを、取得時刻で対応づけることで学習用データを生成する。
【0039】
すなわち、学習用データは、例えば
図5に一例を示すように、各軸J1~J6の角度θn(t)、各軸J1~J6のモータの電流値In(t)、及び第2容器92の重量w(t)の時系列的なデータである。なお、学習用データには、少なくとも各軸J1~J6の角度θn(t)及び第2容器92の重量w(t)が含まれている必要があるが、各軸J1~J6のモータの電流値In(t)を含めることで、学習モデルの速度及び精度の向上が見込まれる。この場合、学習用データは、ロボットアーム10の制御装置20及び計量器30から直接入手可能な情報のみで構成されており、制御装置20及び計量器30以外の装置を用いて入手する情報は含まれていない。学習用データ生成装置401は、生成した学習用データを学習モデル生成装置402に渡す、又は
図4に示す補助記憶装置53に記憶する。
【0040】
学習用データ生成装置401は、例えば
図6に示す一連の処理を実行することで、1つの見本動作に基づく学習用データを生成する。そして、学習用データ生成装置401は、例えば
図6の処理を見本動作の条件を変えて複数回実行することで、条件の異なる複数の見本動作に基づく学習用データを生成する。この場合、変更する見本動作の条件は、第1容器91及び第2容器92の形状や重量、第1容器91及び第2容器92に予め収容されている初期の流体量、秤量の目標値、流体の種類、及びロボットアーム10の動作速度、及びロボットアーム10の動作軌跡等がある。
【0041】
学習用データ生成装置401は、まずステップS11において、制御装置20を介してロボットアーム10を動作させて秤量の見本動作の実行を開始する。次に、学習用データ生成装置401は、ステップS12において状態データ取得部41の機能によりロボットアーム10及び計量器30の現在の状態データを取得する。そして、学習用データ生成装置401は、取得した状態データを、ステップS13において主記憶装置52又は補助記憶装置53に取得時刻とともに記憶させて時系列的に蓄積する。
【0042】
次に、学習用データ生成装置401は、ステップS14において、見本動作が終了したか否かを判断する。見本動作が終了してない場合(ステップS14でNO)、学習用データ生成装置401は、見本動作が終了するまでステップS12~S14を繰り返す。学習用データ生成装置401は、例えばロボットアーム10が停止してから所定期間経過した場合又は作業者から終了を示す入力操作があった場合等に見本動作が終了したと判断することができる。そして、見本動作が終了すると(ステップS14でYES)、学習用データ生成装置401は、ステップS15に処理を移行し、学習用データ生成処理部42の機能により学習用データを生成する。その後、学習用データ生成装置401は、一連の処理を終了させる(エンド)。
【0043】
学習モデル生成装置402は、複数の学習用データ64を用いて機械学習することにより、例えば
図7に例示する学習モデル65を生成する機能を有する。学習モデル65は、第1時刻(t)におけるロボットアーム10の姿勢に関する情報すなわち各軸J1~J6の回転角度θn及び第2容器92の重量w(t)を入力とし、第2時刻(t+1)におけるロボットアーム10の姿勢に関する情報を出力とするニューラルネットワークである。
【0044】
本実施形態の場合、学習モデル65は、
図7に示すように、第1時刻(t)における秤量の目標値D及び第2容器の重量w(t)、ロボットアーム10の各軸J1~J6の回転角度θn(t)に加えて、各軸J1~J6のモータの電流値I(t)も入力としている。また、学習モデル65は、第2時刻(t+1)のロボットアーム10の各軸J1~J6の回転角度θn(t+1)を出力としている。なお、第2時刻(t+1)は、第1時刻(t)よりも後の時刻であり、第1時刻(t)と第2時刻(t+1)との間隔はデータ量や精度等を考慮して任意に設定することができる。
【0045】
学習モデル65には、例えばRNN(Recurrent Neural Network)、MTRNN(Multi Timescale RNN)、LSTM(Long Short Term Memory)、ARIMA(Auto Regressive Integrated Moving Average)、又は1次元CNN(Convolutional Neural Network)等の時系列データを処理可能なニューラルネットワークを用いることができる。
【0046】
学習モデル生成装置402は、
図3に示すように、学習用データ取得部43及び学習処理部44を有している。学習用データ取得部43は、学習用データ生成装置401又は補助記憶装置53から複数の学習用データ64を取得する処理を実行可能である。学習処理部44は、学習用データ取得部43が取得した学習用データを用いて機械学習を行い、
図7に例示する学習モデル65を生成する。
【0047】
推論装置403は、対象流体を収容した第1容器91をロボットアーム10が保持して第1容器91から第2容器92に対象流体を注ぐ場合、すなわち秤量処理を実行する際に、学習モデル65を用いてロボットアーム10の姿勢に関する情報を出力する機能を有する。推論装置403は、状態データ取得部41及び推論処理部45を有している。本実施形態の場合、状態データ取得部41は、学習用データ生成装置401と推論装置403とで共用しているが、共用しない構成であっても良い。
【0048】
推論処理部45は、学習モデル65に第1時刻(t)におけるロボットアーム10の姿勢に関する情報θn(t)及び第2容器92の重量w(t)を入力して、第2時刻(t+1)におけるロボットアーム10の姿勢に関する情報θ(t+1)を出力する処理を実行可能である。本実施形態の場合、推論処理部45は、学習モデル65に第1時刻(t)におけるロボットアーム10の姿勢に関する情報θn(t)及び第2容器92の重量w(t)に加えて、ロボットアーム10の力に関する情報つまり各軸J1~J6のモータの電流値In(t)も入力する。推論処理部45は、
図3に示すように、出力した第2時刻(t+1)における姿勢に関する情報θn(t+1)を制御装置20に受け渡す。
【0049】
秤量処理において、計量器30は、現時刻(t)における第2容器92の重量w(t)を計測しその計測結果を推論装置403に逐次渡すとともに、制御装置20は、現時刻(t)におけるロボットアーム10の各軸J1~J6の角度θn(t)を取得して推論装置403に逐次渡す。すなわち、推論装置403は、制御装置20及び計量器30から現時刻(t)におけるロボットアーム10及び第2容器92の状態データを取得する。そして、制御装置20は、推論装置403から出力された次の時刻(t+1)におけるロボットアーム10の各軸J1~J6の角度θn(t)となるようにロボットアーム10の動作を制御する。
【0050】
秤量システム1は、
図8に例示するフローに基づいて秤量処理を実行することができる。本実施形態の場合、
図1に示すように、第1容器91及び第2容器92は、それぞれ容器置き場931、932に置かれている。ユーザは、秤量処理の実行に先立って目標値Dを入力する。秤量システム1は、
図8のステップS21において、目標値Dを設定する。次に、秤量システム1は、制御装置20によってロボットアーム10を動作させて、容器置き場931に置かれている第1容器91を取りに行かせ、第1容器91を取得した後、第1容器91を第2容器92の上方まで移動させる。
【0051】
次に、秤量システム1は、ステップS23~ステップS26を繰り返すことで、第1容器91を傾けて第2容器92に流体を目標量注ぎ込む動作すなわち秤量を実行する。秤量システム1は、ステップS23において、推論装置403の機能によりロボットアーム10及び第2容器92の現時刻(t)における状態データを取得する。次に、秤量システム1は、ステップS24において、推論装置403の機能により次の時刻(t+1)におけるロボットアーム10の姿勢に関する情報すなわち各軸角度θn(t+1)を算出する。
【0052】
次に、秤量システム1は、ステップS25において、制御装置20の機能により、ステップS24で算出した各軸角度θn(t+1)となるように、ロボットアーム10を動作させる。そして、秤量システム1は、ステップS26において、秤量が終了したか否かを判断し、終了していない場合(ステップS26でNO)はステップS23に処理を戻し、終了した場合(ステップS26でYES)はステップS27に処理を移行する。なお、秤量が終了したか否は、例えば第1容器91の傾きが初期状態すなわちステップS22の状態に戻ったことや、第2容器92の重量変化が所定期間生じていなことなどを基準として判断することができる。その後、秤量システム1は、第1容器91を元の容器置き場931に戻す等して、一連の秤量処理を終了する。
【0053】
以上説明した一実施形態によれば、学習モデル65の生成方法は、まず、学習用データ64を取得する。学習用データ64は、対象流体を収容した第1容器91を保持して第1容器91から第2容器92に対象流体を注ぐ際のロボットアーム10の姿勢に関する時系列の情報θnと、第2容器92の時系列の重量wと、を含む学習用データを複数有している。次に、学習用データ64に含まれる学習用データを用いて、第1時刻(t)におけるロボットアーム10の姿勢に関する情報θn(t)及び第2容器92の重量w(t)を入力とし、第2時刻(t+1)におけるロボットアーム10の姿勢に関する情報θn(t+1)を出力とする学習モデル65を生成する。
【0054】
また、本実施形態の学習用データ生成方法は、対象流体を収容した第1容器91を保持して第1容器91から第2容器92に対象流体を注ぐ際のロボットアーム10の姿勢に関する時系列の情報θnを取得する処理と、第2容器92の時系列の重量wを取得する処理と、ロボットアーム10の姿勢に関する時系列の情報θnと第2容器92の時系列の重量wとを対応付ける処理と、を含む。
【0055】
また、本実施形態の推論方法は、対象流体を収容した第1容器91をロボットアーム10が保持して第1容器91から第2容器92に対象流体を注ぐ場合に、第1時刻(t)におけるロボットアーム10の姿勢に関する情報θn(t)を取得し、第1時刻tにおける第2容器92の重量w(t)を取得し、第1時刻(t)におけるロボットアーム10の姿勢に関する情報θn(t)及び第2容器92の重量w(t)を入力とし、第2時刻(t+1)におけるロボットアーム10の姿勢に関する情報θn(t+1)を出力とする学習用データ64を用いて学習させた学習モデル65に、取得した第1時刻(t)におけるロボットアーム10の姿勢に関する情報θn(t)及び第2容器92の重量w(t)を入力して、第2時刻(t+2)におけるロボットアーム10の姿勢に関する情報θn(t+1)を出力する。
【0056】
そして、本実施形態の秤量方法は、対象流体を収容した第1容器91をロボットアーム10が保持して第1容器91から第2容器92に対象流体を注ぐ方法である。秤量方法は、第1時刻(t)におけるロボットアーム10の姿勢に関する情報θn(t)を取得するステップと、第1時刻(t)における第2容器の重量を取得するステップと、取得した第1時刻(t)におけるロボットアーム10の姿勢に関する情報θn(t)及び第2容器92の重量w(t)を入力して、第2時刻(t+1)におけるロボットアーム10の姿勢に関する情報θn(t+1)を出力するステップと、第2時刻(t+1)におけるロボットアーム10の姿勢に関する情報θn(t+1)に基づいてロボットアーム10の動作を制御するステップと、を含む。学習モデル65は、第1時刻(t)におけるロボットアーム10の姿勢に関する情報θn(t)及び第2容器92の重量w(t)を入力とし、第2時刻(t+2)におけるロボットアーム10の姿勢に関する情報θn(t+1)を出力とする学習用データ64を用いて学習させたものである。
【0057】
ここで、機械学習を用いずに秤量処理を行うとすると、第1容器91に収容されている流体の粘性や、第1容器91及び第2容器92に予め収容されている流体の量、及び目標とする秤量値のパラメータによって、ロボットアーム10の動作を変更する必要があるため、ロボットアーム10の制御プログラムも変更する必要がある。この場合、目標とする秤量値と計量器30の値との差を基にロボットアーム10の動作を変化させることが必要となるが、入力データの量や判断項目が多すぎるため、全てのパターンに対応した制御プログラムを準備することは極めて難しい。
【0058】
これに対し、本実施形態によれば、機械学習によって得られた学習モデル65に基づいてロボットアーム10を動作させるため、第1容器91に収容されている流体の粘性や、第1容器91及び第2容器92に予め収容されている流体の量、及び目標とする秤量値のパラメータに応じるために多数の制御プログラムを準備する必要がない。その結果、ロボットアーム10を用いて流体を秤量する構成において、第1容器91の形状や流体の種類等の変化に柔軟に対応することができる。
【0059】
また、本実施形態によれば、従来の機械学習を用いて行う秤量に対して以下のような改善を図ることができる。まず、本願発明者は、秤量のための機会学習の入力データとして、第1容器91の角度と第1容器91の画像又は映像と第2容器92の重量との3つの情報を利用しなくても、第1容器91を保持するロボットアーム10の姿勢に関する情報と第2容器92の重量との2つの情報を用いることで、上記した3つの情報を用いた場合と同等かそれ以上の精度及び期間で秤量を行えることを見出した。
【0060】
そして、本実施形態の秤量システム1は、ロボットアーム10の動作の機械学習及び動作の制御に第1容器91の画像又は映像等を利用しないため、カメラ等の光学機器を含まない簡単な構成とすることができる。また、画像や映像は、ロボットアーム10の姿勢に関する情報θnや第2容器92の重量に比べてデータ容量が極めて大きい。そのため、秤量システム1は、ロボットアーム10の制御及び機械学習に第1容器91の画像又は映像等を利用しないことにより、情報処理装置40で処理すべきデータ容量を低減し、これにより、秤量処理の速度を向上させることができる。
【0061】
更に、本実施形態の秤量システム1は、ロボットアーム10の動作の機械学習及び動作の制御にロボットアーム10の姿勢に関する情報θnを用いる。これによれば、秤量処理時において第1容器91の画像又は映像を用いなくても、高精度でかつ高速に秤量処理を行うことができる。
【0062】
また、学習用データ64は、ロボットアーム10に作用する負荷に関する情報、この場合、各軸J1~J6のモータの電流値Inを含んでいる。これによれば、学習モデル65を、ロボットアーム10の各軸J1~J6に作用する負荷すなわち第1容器91の重量の要素を含めたものとすることができる。これにより、学習モデル65の精度を更に向上させることができ、その結果、更に高精度でかつ高速に秤量処理を実行することができる。
【0063】
なお、上記説明した各実施形態は、上記し且つ図面に記載した各実施形態に限定されるものではなく、発明の要旨を逸脱しない範囲において適宜変更することができる。
【符号の説明】
【0064】
1…秤量システム、10…ロボットアーム、20…制御装置、41…状態データ取得部、42…学習用データ生成処理部、43…学習用データ取得部、44…学習処理部、45…推論処理部、64…学習用データ、65…学習モデル、91…第1容器、92…第2容器、401…学習用データ生成装置、402…学習モデル生成装置、403…推論装置