(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-06
(45)【発行日】2023-09-14
(54)【発明の名称】機械学習データ生成装置、機械学習装置、機械学習データ生成方法及びコンピュータプログラム
(51)【国際特許分類】
B25J 9/22 20060101AFI20230907BHJP
B25J 13/00 20060101ALI20230907BHJP
【FI】
B25J9/22 A
B25J13/00 Z
(21)【出願番号】P 2021553585
(86)(22)【出願日】2020-10-23
(86)【国際出願番号】 JP2020040002
(87)【国際公開番号】W WO2021085345
(87)【国際公開日】2021-05-06
【審査請求日】2022-01-21
(31)【優先権主張番号】PCT/JP2019/042216
(32)【優先日】2019-10-28
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】太刀掛 浩貴
【審査官】國武 史帆
(56)【参考文献】
【文献】国際公開第2019/172101(WO,A1)
【文献】特開2017-185577(JP,A)
【文献】特開2017-102755(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
仮想空間において、ロボットのピックアップ作業の対象となる複数の対象物の仮想モデルである仮想対象物モデルをばら積みの状態で配置する仮想モデル生成部と、
複数の前記対象物に対するセンサによるセンシングの結果として得るセンサ入力を仮想的に生成したものである、仮想センサ入力を、ばら積みの状態で配置された複数の前記仮想対象物モデルに基づいて生成する仮想センサ入力生成部と、
前記対象物に対して与えられた前記ロボットの動作の目標値範囲及び、ばら積み状態で配置された複数の前記仮想対象物モデルの一又は複数に基づいて、前記ロボットに対する動作指令を仮想的に生成したものである、仮想動作指令の目標値範囲を生成する仮想動作指令生成部と、
前記仮想空間において、前記仮想動作指令による前記ロボットのピックアップ作業の成否を評価する仮想動作成否評価部と、
前記仮想センサ入力を問題データとし、前記仮想動作指令の目標値範囲に前記ロボットのピックアップ作業の成否を加味して得る解答データと対にすることにより、機械学習データを生成する機械学習データ生成部と、
を有する機械学習データ生成装置。
【請求項2】
前記対象物は、突出部を有する機械部品である、
請求項1に記載の機械学習データ生成装置。
【請求項3】
前記動作の目標値範囲には、前記ロボットのエンドエフェクタが成功裏に前記対象物をピックアップできる位置範囲が含まれる、
請求項1に記載の機械学習データ生成装置。
【請求項4】
前記動作の目標値範囲には、前記ロボットのエンドエフェクタが成功裏に前記対象物をピックアップできる角度範囲が含まれる、
請求項1に記載の機械学習データ生成装置。
【請求項5】
前記動作の目標値範囲を、ユーザが前記仮想対象物モデルに対する相対的な範囲として指定する、
請求項1に記載の機械学習データ生成装置。
【請求項6】
前記仮想動作成否評価部は、前記仮想空間において、前記仮想動作指令の目標値範囲内の目標値により示された位置及び姿勢の前記ロボットのエンドエフェクタと、ばら積み状態で配置された複数の前記仮想対象物モデルとの干渉の有無を評価する、
請求項1に記載の機械学習データ生成装置。
【請求項7】
前記機械学習データ生成部は、ばら積み状態で配置された複数の前記仮想対象物モデルそれぞれについて生成された前記仮想動作指令の目標値範囲から、前記干渉によって前記ロボットのピックアップ作業が実行不能である部分を削除することによって前記解答データを得る、
請求項6に記載の機械学習データ生成装置。
【請求項8】
前記機械学習データ生成部は、さらに、ばら積み状態で配置された複数の前記仮想対象物モデルそれぞれについて得られた、前記仮想動作指令の目標値範囲から、前記ロボットのピックアップ作業が実行不能である部分を削除することによって得られた範囲の和集合として前記解答データを得る、
請求項7に記載の機会学習データ生成装置。
【請求項9】
仮想空間において、ロボットのピックアップ作業の対象となる複数の対象物の仮想モデルである仮想対象物モデルをばら積みの状態で配置し、
複数の前記対象物に対するセンサによるセンシングの結果として得るセンサ入力を仮想的に生成したものである、仮想センサ入力を、ばら積みの状態で配置された複数の前記仮想対象物モデルに基づいて生成し、
前記対象物に対して与えられた前記ロボットの動作の目標値範囲及び、ばら積み状態で配置された複数の前記仮想対象物モデルの一又は複数に基づいて、前記ロボットに対する動作指令を仮想的に生成したものである、仮想動作指令の目標値範囲を生成し、
前記仮想空間において、前記仮想動作指令による前記ロボットのピックアップ作業の成否を評価し、
前記仮想センサ入力を問題データとし、前記仮想動作指令の目標値範囲に前記ロボットのピックアップ作業の成否を加味して得る解答データと対にすることにより、機械学習データを生成する、
機械学習データ生成方法。
【請求項10】
コンピュータを、
仮想空間において、ロボットのピックアップ作業の対象となる複数の対象物の仮想モデルである仮想対象物モデルをばら積みの状態で配置する仮想モデル生成部と、
複数の前記対象物に対するセンサによるセンシングの結果として得るセンサ入力を仮想的に生成したものである、仮想センサ入力を、ばら積みの状態で配置された複数の前記仮想対象物モデルに基づいて生成する仮想センサ入力生成部と、
前記対象物に対して与えられた前記ロボットの動作の目標値範囲及び、ばら積み状態で配置された複数の前記仮想対象物モデルの一又は複数に基づいて、前記ロボットに対する動作指令を仮想的に生成したものである、仮想動作指令の目標値範囲を生成する仮想動作指令生成部と、
前記仮想空間において、前記仮想動作指令による前記ロボットのピックアップ作業の成否を評価する仮想動作成否評価部と、
前記仮想センサ入力を問題データとし、前記仮想動作指令の目標値範囲に前記ロボットのピックアップ作業の成否を加味して得る解答データと対にすることにより、機械学習データを生成する機械学習データ生成部と、
を有する機械学習データ生成装置として動作させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習データ生成装置、機械学習装置、作業システム、コンピュータプログラム、機械学習データ生成方法及び作業機械の製造方法に関する。
【背景技術】
【0002】
特許文献1には、三次元計測機により撮影した深度画像に基づいて、機械学習装置が制御指令を出力し、当該制御指令に基づくシミュレーションの実行結果に問題がなければ、当該制御指令に基づいてロボットが作業を行い、問題があれば、ロボットに対する制御指令の入力を停止し、結果ラベルを訓練データとして機械学習器に与えてさらなる学習を行うように構成された機械学習装置が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
対象物に反復・継続的に物理的作業を行う自動機械である作業機械において、機械学習を用いて対象物に応じた動作をさせるためには、対象物の種々の現実に起こり得る態様に即した機械学習データにより機械学習を行う必要がある。しかしながら、対象物と、対象物に対して想定される動作からは、その物理的作業の成否が自明でない場合には、種々の対象物を現実に用意し、実機を実際に動作させて機械学習をさせなければならず、多大な労力と時間を要する場合があった。
【0005】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、現実の物理的作業を要さずに、物理的作業の成否を反映した機械学習データを得ることである。
【課題を解決するための手段】
【0006】
本発明の一側面に係る機械学習データ生成装置は、仮想空間において、ロボットのピックアップ作業の対象となる複数の対象物の仮想モデルである仮想対象物モデルをばら積みの状態で配置する仮想モデル生成部と、複数の前記対象物に対するセンサによるセンシングの結果として得るセンサ入力を仮想的に生成したものである、仮想センサ入力を、ばら積みの状態で配置された複数の前記仮想対象物モデルに基づいて生成する仮想センサ入力生成部と、前記対象物に対して与えられた前記ロボットの動作の目標値範囲 及び、ばら積み状態で配置された複数の前記仮想対象物モデルの一又は複数に基づいて、前記ロボットに対する動作指令を仮想的に生成したものである、仮想動作指令の目標値範囲を生成する仮想動作指令生成部と、前記仮想空間において、前記仮想動作指令による前記ロボットのピックアップ作業の成否を評価する仮想動作成否評価部と、前記仮想センサ入力を問題データとし、前記仮想動作指令の目標値範囲に前記ロボットのピックアップ作業の成否を加味して得る解答データと対にすることにより、機械学習データを生成する機械学習データ生成部と、を有する。
【0007】
本発明の一側面に係る機械学習データ生成装置では、さらに、前記対象物は、突出部を有する機械部品であってよい。
【0008】
本発明の一側面に係る機械学習データ生成装置では、さらに、前記動作の目標値範囲には、前記ロボットのエンドエフェクタが成功裏に前記対象物をピックアップできる位置範囲が含まれてよい。
【0009】
本発明の一側面に係る機械学習データ生成装置では、さらに、前記動作の目標値範囲には、前記ロボットのエンドエフェクタが成功裏に前記対象物をピックアップできる角度範囲が含まれてよい。
【0010】
本発明の一側面に係る機械学習データ生成装置では、さらに、前記動作の目標値範囲を、ユーザが前記仮想対象物モデルに対する相対的な範囲として指定してよい。
【0011】
本発明の一側面に係る機械学習データ生成装置では、さらに、前記仮想動作成否評価部は、前記仮想空間において、前記仮想動作指令の目標値範囲内の目標値により示された位置及び姿勢の前記ロボットのエンドエフェクタと、ばら積み状態で配置された複数の前記仮想対象物モデルとの干渉の有無を評価してよい。
【0012】
本発明の一側面に係る機械学習データ生成装置では、さらに、前記機械学習データ生成部は、ばら積み状態で配置された複数の前記仮想対象物モデルそれぞれについて生成された前記仮想動作指令の目標値範囲から、前記干渉によって前記ロボットのピックアップ作業が実行不能である部分を削除することによって前記解答データを得てよい。
【0013】
本発明の一側面に係る機械学習データ生成装置では、さらに、前記機械学習データ生成部は、ばら積み状態で配置された複数の前記仮想対象物モデルそれぞれについて得られた、前記仮想動作指令の目標値範囲から、前記ロボットのピックアップ作業が実行不能である部分を削除することによって得られた範囲の和集合として前記解答データを得てよい。
【0017】
本発明の一側面に係る機械学習データ生成方法は、仮想空間において、ロボットのピックアップ作業の対象となる複数の対象物の仮想モデルである仮想対象物モデルをばら積みの状態で配置し、複数の前記対象物に対するセンサによるセンシングの結果として得るセンサ入力を仮想的に生成したものである、仮想センサ入力を、ばら積みの状態で配置された複数の前記仮想対象物モデルに基づいて生成し、前記対象物に対して与えられた前記ロボットの動作の目標値範囲及び、ばら積み状態で配置された複数の前記仮想対象物モデルの一又は複数に基づいて、前記ロボットに対する動作指令を仮想的に生成したものである、仮想動作指令の目標値範囲を生成し、前記仮想空間において、前記仮想動作指令による前記ロボットのピックアップ作業の成否を評価し、前記仮想センサ入力を問題データとし、前記仮想動作指令の目標値範囲に前記ロボットのピックアップ作業の成否を加味して得る解答データと対にすることにより、機械学習データを生成する。
【0018】
本発明の一側面に係るコンピュータプログラムは、コンピュータを、仮想空間において、ロボットのピックアップ作業の対象となる複数の対象物の仮想モデルである仮想対象物モデルをばら積みの状態で配置する仮想モデル生成部と、複数の前記対象物に対するセンサによるセンシングの結果として得るセンサ入力を仮想的に生成したものである、仮想センサ入力を、ばら積みの状態で配置された複数の前記仮想対象物モデルに基づいて生成する仮想センサ入力生成部と、前記対象物に対して与えられた前記ロボットの動作の目標値範囲及び、ばら積み状態で配置された複数の前記仮想対象物モデルの一又は複数に基づいて、前記ロボットに対する動作指令を仮想的に生成したものである、仮想動作指令の目標値範囲を生成する仮想動作指令生成部と、前記仮想空間において、前記仮想動作指令による前記ロボットのピックアップ作業の成否を評価する仮想動作成否評価部と、前記仮想センサ入力を問題データとし、前記仮想動作指令の目標値範囲に前記ロボットのピックアップ作業の成否を加味して得る解答データと対にすることにより、機械学習データを生成する機械学習データ生成部と、を有する機械学習データ生成装置として動作させる。
【図面の簡単な説明】
【0022】
【
図1】本発明の各実施形態に共通する概念に係る機械学習データ生成装置を含む機械学習装置の全体の構成を示す機能ブロック図である。
【
図2】本発明の第1の実施形態に係る機械学習データ生成装置を含む機械学習装置の全体の構成を示す機能ブロック図である。
【
図3】機械学習データ生成装置及び機械学習装置のハードウェア構成の一例を示す図である。
【
図4】本実施形態に係る機械学習データ生成装置及び機械学習装置において想定される作業機械の例を示す外観図である。
【
図5】
図4に示した作業機械の機能的構成を示す構成図である。
【
図6】本発明の第1の実施形態に係る仮想モデル生成部の一例の詳細な構成を示す構成図である。
【
図8】本発明の第1の実施形態に係る仮想センサ入力生成部の一例の構成を示す構成図である。
【
図10】機械学習データ生成装置により生成される機械学習データの構成の一例を示す図である。
【
図12】フィルタの種々の形状の例を示す図である。
【
図13】本発明の第1の実施形態に係る機械学習データ生成装置及び機械学習装置による、機械学習データ生成方法及び機械学習方法のフロー図である。
【
図14】本発明の第2の実施形態に係る機械学習データ生成装置を含む機械学習装置の全体の構成を示す機能ブロック図である。
【
図15】本発明の第3の実施形態に係る機械学習データ生成装置を含む機械学習装置の全体の構成を示す機能ブロック図である。
【
図16】本発明の第3の実施形態に係る機械学習データ生成装置を含む機械学習装置に係る物理的作業の具体を示す図である。
【
図17】仮想動作指令生成部に対して与える目標値の例である。
【
図18】生成された仮想動作指令である目標値の例を示す図である。
【
図19】仮想空間中における干渉の有無の評価を評価している様子を説明する図である。
【
図20】目標値に評価が加味されることにより得られた解答データの例を模式的に示す図である。
【
図21】干渉の有無を2つの断面を用いて評価する方法を示す図である。
【
図22】作業機械の製造工程を示すフロー図である。
【発明を実施するための形態】
【0023】
本発明には種々の実施の態様が想定され、以下それらの態様に応じた実施形態を例示しつつ説明を行うが、まず、各実施形態に共通する概念についての大枠の説明を行う。
【0024】
図1は、本発明の各実施形態に共通する概念に係る機械学習データ生成装置1を含む機械学習装置2の全体の構成を示す機能ブロック図である。
【0025】
機械学習装置1は、作業機械のオペレーティングマシンによる物理的作業の対象となるばら積みの複数の対象物の仮想対象物モデルを生成する仮想モデル生成部101、作業機械のセンサによるセンシングの結果として得るセンサ入力を仮想的に生成したものである、仮想センサ入力を、仮想対象物モデルに基づいて生成する仮想センサ入力生成部102、産業機器のオペレーティングマシンに対する動作指令を仮想的に生成したものである、仮想動作指令を仮想対象物モデル及び仮想センサ入力の少なくともいずれかに応じて生成する仮想動作指令生成部103、仮想空間において、仮想動作指令による作業機械のオペレーティングマシンによる物理的作業の成否を評価する仮想動作成否評価部116及び、仮想センサ入力と、仮想動作指令と、仮想動作成否評価116の評価に基づいて機械学習データを生成する機械学習データ生成部106と、を有する。
【0026】
また、機械学習装置2は、上述の機械学習データ生成装置1に加え、学習部201を有する。
【0027】
以上機能ブロックにて示した機械学習装置2の各機能の詳細は、以下の各実施形態の説明にて明らかとなる。
【0028】
続いて、本発明の第1の実施形態に係る機械学習データ生成装置、機械学習装置、コンピュータプログラム及び機械学習データ生成方法を、
図2~13を参照して説明する。
【0029】
図2は、本発明の第1の実施形態に係る機械学習データ生成装置1を含む機械学習装置2の全体の構成を示す機能ブロック図である。ここで、「機械学習データ生成装置」とは、教師あり学習がなされる機械学習モデルにおける学習に用いられる教師データである、機械学習データを生成する装置を指し、「機械学習装置」とは、機械学習データを用いて、機械学習モデルの学習を実行する装置を指す。
【0030】
機械学習データ生成装置1及び機械学習装置2は、物理的には、それぞれ単独の装置として用意されてもよいが、これに限られず、他の機械や装置の一部として組み込まれていてもよく、または必要に応じて他の機械や装置の物理的構成を用いて適宜構成されるものであってもよい。より具体的には、機械学習データ生成装置1及び機械学習装置2は、一般的なコンピュータを用いて、ソフトウェアにより実装されてよく、また、コンピュータを機械学習データ生成装置1及び機械学習装置2として動作させるコンピュータプログラムは、一体のものであってもよいし、それぞれ単独で実行されるものであってもよく、さらには、モジュールとして他のソフトウェアに組み込まれるものであってもよい。また、機械学習データ生成装置1及び機械学習装置2を、いわゆるサーバコンピュータ上に構築し、インターネットなどの公衆電気通信回線を経由してその機能のみを遠隔地に提供するようにしてもよい。
【0031】
図3は、機械学習データ生成装置1及び機械学習装置2のハードウェア構成の一例を示す図である。同図に示されているのは、一般的なコンピュータ3であり、プロセッサであるCPU(Central Processing Unit)301、メモリであるRAM(Random Access Memory)302、外部記憶装置303、GC(Graphics Controller)304、入力デバイス305及びI/O(Inpur/Output)306がデータバス307により相互に電気信号のやり取りができるよう接続されている。なお、ここで示したコンピュータ3のハードウェア構成は一例であり、これ以外の構成のものであってもよい。
【0032】
外部記憶装置303はHDD(Hard Disk Drive)やSSD(Solid State Drive)等の静的に情報を記録できる装置である。またGC304からの信号はCRT(Cathode Ray Tube)やいわゆるフラットパネルディスプレイ等の、使用者が視覚的に画像を認識するモニタ308に出力され、画像として表示される。入力デバイス305はキーボードやマウス、タッチパネル等の、ユーザが情報を入力するための一又は複数の機器であり、I/O306はコンピュータ3が外部の機器と情報をやり取りするための一又は複数のインタフェースである。I/O306には、有線接続するための各種ポート及び、無線接続のためのコントローラが含まれていてよい。
【0033】
コンピュータ3を機械学習データ生成装置1及び機械学習装置2として機能させるためのコンピュータプログラムは外部記憶装置303に記憶され、必要に応じてRAM302に読みだされてCPU301により実行される。すなわち、RAM302には、CPU301により実行されることにより、
図2に機能ブロックとして示した各種機能を実現させるためのコードが記憶されることとなる。かかるコンピュータプログラムは、適宜の光ディスク、光磁気ディスク、フラッシュメモリ等の適宜のコンピュータ可読情報記録媒体に記録されて提供されても、I/O306を介して外部のインターネット等の情報通信回線を介して提供されてもよい。
【0034】
図2に戻り、機械学習データ生成装置1は、その機能的構成として、仮想モデル生成部101、仮想センサ入力生成部102、仮想動作指令生成部103、シミュレータ104、達成状況評価部105、及び、機械学習データ生成部106を有している。さらに、機械学習装置2は、機械学習データ生成装置1及び学習部201を有している。
【0035】
機械学習データ生成装置1は、物理的作業を行う特定の作業機械に即して用意されるものであり、その有する各機能は、当該作業機械と密接に関連している。また、機械学習装置2は、かかる作業機械が使用する機械学習モデルへの学習を行うものである。
【0036】
ここで、本明細書に言う「物理的作業」は、対象物に対し、何らかの物理的な作用を及ぼす作業を指す。例えば、部品やパーツのピックアップ、部品の取りつけ(例えば、ベアリングのハウジングへの嵌め込みや、ねじの締結など)、梱包(菓子などの食品の箱詰めなど)、各種加工(バリ取りや研磨などの金属加工、食品などの柔軟物の成型や切断、樹脂成型やレーザー加工など)、塗装及び洗浄といった様々な作業が物理的作業には含まれる。また、「作業機械」は、同等又は類似の物理的作業を反復・継続的に行う自動機械を指す。
【0037】
本実施形態に係る機械学習データ生成装置1及び機械学習装置2は、ある特定の物理的作業を行う作業機械に具体的に即したものとして構築される。物理的作業がどのようなものであり、作業機械の用途がなんであるかは特段限定されるものではないが、以降の理解を容易とする目的で、本実施形態に係る機械学習データ生成装置1及び機械学習装置2において想定される作業機械の例を
図4に示す。
【0038】
図3は、本実施形態に係る機械学習データ生成装置1及び機械学習装置2において想定される作業機械4の例を示す外観図である。本例では、作業機械4は、トレイである架台401に入れられた調理済みの唐揚げである対象物402を、ロボットであるオペレーティングマシン403により把持し、図示しない別の工程(例えば、容器への梱包)に移送する機械設備である。対象物402の位置や形状は、映像撮影装置であるセンサ404により画像データとして取り込まれ、かかる画像データに基づいて、コントローラ405によりオペレーティングマシン403の動作が制御される。
【0039】
本明細書において、「対象物」は、物理的作業の対象となる物理的実体を指す。また、対象物402が載置される架台401は、トレイに限らず、コンベアやホッパ、自動万力や自律走行車など、その物理的作業や対象物402に応じた任意のものであってよい。センサ404は、対象物402に対し何らかのセンシングを行い、オペレーティングマシン403が物理的作業を実行するために必要な情報であるセンサ入力を得るために設けられる。センサ404もまた、その物理的作業や対象物に応じた任意のものであってよく、必ずしも本例のように画像データをセンサ入力とするものではなくともよい。オペレーティングマシン403は、対象物402に物理的作業を行う際に、対象物に物理的作用を及ぼす作用端を持つ機械であり、物理的作業に応じたものが用意される。
図3に示した例では、汎用の縦型多関節ロボットがオペレーティングマシン403として示されているが、オペレーティングマシン403は、必ずしもいわゆる産業用ロボットを使用するものでなくともよい。
【0040】
図5は、
図4に示した作業機械4の機能的構成を示す構成図である。同図では、対象物402は作業機械4を構成する要素ではないので破線で示している。
図5に示されるように、センサ404は、架台401上の対象物402に対してセンシングを行い、その結果得られるセンサ入力をコントローラ405に入力する。また、オペレーティングマシン403は、対象物402に対して物理的作業を行う。
【0041】
コントローラ405は、センサ入力に基づいて、オペレーティングマシン403に物理的作業を行わせるよう制御するために必要な種々の機能を有しており、
図5では、それらの機能のうち、オペレーティングマシン403に対する動作指令を生成する機能を有する部分を動作指令生成部406、オペレーティングマシン403に適切な動力その他を供給して制御する機能を有する部分をオペレーティングマシン制御部408として示した。
【0042】
動作指令は、センサ404により検出された対象物402の状態に応じて変化するオペレーティングマシン403への動作の指令を意味している。本例のように、対象物402が不定形でなおかつ柔軟な唐揚げであれば、動作指令は、オペレーティングマシン403による把持の目標座標(ロボットハンドの目標位置及び目標角度)、把持力(及び/又はロボットハンドの挟み込み量)であってよく、さらに、ロボットハンドの移動経路やその他の指令を含むものであってもよい。オペレーティングマシン制御部408は、本例では、いわゆるロボットコントローラに該当する機能を有する部分であり、動作指令に従ってオペレーティングマシン403を動作させるために必要な動力の供給や帰還制御を行う。
【0043】
すなわち、ここでいう動作指令は、必ずしも、オペレーティングマシン制御部408がオペレーティングマシン403を動作させるために実行する命令そのものを指すものでなくともよく、かかる命令を生成するための間接的な指令であってよい。上に示した目標座標はその典型的な例である。
【0044】
本例のように、対象物402が、架台401上でのその位置及び姿勢が不定であるだけでなく、その形状も不定形であり、さらに柔軟性も有する場合には、決定的アルゴリズムによっては適切な動作指令を得ることがむつかしい。一般に、決定的アルゴリズムにより適切な解を得ることが困難な問題に対しては、機械学習を用い、適切に設計された機械学習モデルに対し、適切な機械学習データにより学習をさせることにより、高い確度で適切な解が得られる場合があることが知られている。そこで、本例の動作指令生成部406は、機械学習モデルである、ニューラルネットワークモデル407を有しており、センサ入力を必要に応じて適切な前処理を施した上でニューラルネットワークモデル407に入力し、出力として、動作指令を得るものとなっている。ニューラルネットワークモデル407は、いわゆる深層学習の手法により学習されたものであってよい。
【0045】
このように、作業機械4では、適切に学習されたニューラルネットワークモデル407を有する動作指令生成部406により動作指令を生成することで、決定的アルゴリズムによっては適切な動作指令を得ることがむつかしい対象物402に対して、物理的作業をするための動作指令を高い確度で得るようにしている。
【0046】
ところが、本例に示す唐揚げの例でも容易に理解できるように、動作指令生成部406のニューラルネットワークモデル407を十分に学習させるための、十分な数の適切な機械学習データを現実に用意することは容易ではない。なぜなら、本例に即していえば、機械学習データを現実に用意することとは、機械学習のために種々の形状や大きさを持つ対象物402、すなわち、調理済みの唐揚げを十分な数用意することに他ならないからである。また、仮に対象物402を用意したとしても、その対象物402に対する適切な動作指令は決定的アルゴリズムによっては得られないか、得るのがむつかしいため、対象物402に対して逐一オペレーティングマシン403を動作させて、その結果を評価して機械学習データとしなければならないが、そのような機械学習データを十分な数得るには、あまりに多大な時間とコストを要するため、現実的ではない。
【0047】
本実施形態に係る機械学習データ生成装置1は、上述した作業機械4による対象物402に対する物理的作業を仮想的に実行することで、ニューラルネットワークモデルに対する十分な数の機械学習データを現実的な時間及びコストで生成するものである。また、本実施形態に係る機械学習装置2は、そのようにして生成された機械学習データによりニューラルネットワークモデルを学習させるものである。
【0048】
再度
図2に戻り、機械学習データ生成装置1及び機械学習装置2の各機能ブロックを詳細に説明する。
【0049】
まず、仮想モデル生成部101は、対象物402の複数のバリエーションについての仮想対象物モデルを生成する部分である。ここで、対象物402は、先に説明したとおりの想定される物理的作業の対象となる物理的実体であり、その形状や大きさ、物理的性状は必ずしも一定ではなく、ある程度のばらつきがある。仮想モデル生成部101は、そのようなばらつきにより生じる多数の対象物102のバリエーションを、現実に作成することなく、仮想モデルとして生成する。以降、生成された対象物402の仮想モデルを、仮想対象物モデルと称する。仮想対象物モデルは、後ほど説明するシミュレータ104におけるシミュレーションに使用されるため、かかるシミュレーションを行うために必要な情報を持つモデルである必要がある。本例では、仮想対象物モデルは、その形状や大きさが特定される三次元モデルであり、さらに、重量(比重)、弾性率、摩擦係数といった物理的性状が設定されている。
【0050】
図6は、本実施形態に係る仮想モデル生成部101の一例の詳細な構成を示す構成図である。本例では、仮想モデル生成部101は、VAE(Variational Autoencoder)として知られる技術を用いている。そのため、仮想モデル生成部101は、VAEにより得られるデコーダ107を備えている。
【0051】
デコーダ107には、潜在変数生成部108により生成された潜在変数zが入力される。潜在変数zはベクトル量であり、その次元数は、対象物402の複雑さに依存するものの、数十~数百次元としてよい。本例の潜在変数生成部108は、正規分布Nに従って、潜在変数zを確率的に生成するものとなっている。
【0052】
【0053】
【0054】
ここで、
図7を参照して、VAEについて簡単に説明する。VAE自体は既知のものであるから、説明は最小限のものにとどめる。
【0055】
VAE5は、
図7に示した構成をしており、エンコーダ501及びデコーダ502と称される2つのニューラルネットワークを有している。エンコーダ501は、データXの入力を受け、潜在変数zを出力する。換言すれば、情報量の多いデータXを、その本質的な特徴に着目して、次元数の低い潜在変数zに圧縮しているといえる。そして、潜在変数zは、VAEでは、正規分布Nに従うように設計される。
【0056】
【0057】
【0058】
図2に戻り、仮想センサ入力生成部102は、仮想対象物モデルに基づいて仮想センサ入力を生成する。ここで、センサ入力は、
図4を参照して説明したとおり、対象物402をセンサ404によりセンシングして得られる情報であり、仮想センサ入力は、かかるセンサ入力に相当するものとして仮想的に生成された情報のことである。すなわち、仮想センサ入力とは、仮想対象物モデルが、現実に存在する対象物402であった場合に、センサ404により得られるであろうセンサ入力を、仮想的に実現したものということもできる。
【0059】
図8は、本実施形態に係る仮想センサ入力生成部102の一例の構成を示す構成図である。本例では、仮想センサ入力生成部102は、GAN(Generative Adversarial Network)として知られる技術を用いている。そのため、仮想センサ入力生成部102は、GANにより得られるジェネレータ111を備えている。
【0060】
【0061】
【0062】
また、背景画像生成部113により、背景画像が別途生成される。背景画像生成部113は、作業機械4において現実的に有り得る背景画像を生成するものであり、その方法の一例として、作業機械4の架台401の複数の実際の写真から一枚を確率的に選択することが挙げられる。得られた平面投影画像および合成画像は、合成部114により合成され、合成画像とされる。
【0063】
合成画像は、ジェネレータ111に入力される。ジェネレータ111は、入力された合成画像から、あたかも本物のセンサ404により得られたセンサ入力であるかのごとき仮想センサ入力を出力するニューラルネットワークである。これにより、確率的に生成された仮想対象物モデルに基づいて、本物のセンサ入力と区別のつきがたい仮想センサ入力が得られることになる。
【0064】
ここで、
図9を参照して、GANについて簡単に説明する。GAN自体もまた既知のものであるから、説明は最小限のものにとどめる。
【0065】
GAN6は、
図9に示した構成をしており、ジェネレータ601及びディスクリミネータ602と称される2つのニューラルネットワークを有している。ジェネレータ601は、上述したように、合成画像の入力を受け、仮想センサ入力を出力する。一方、ディスクリミネータ602には、ジェネレータ601により生成された仮想センサ入力と、現実のセンサ404により得られた実センサ入力の両方が入力される。この時、ディスクリミネータ602には、入力されたデータが仮想センサ入力と実センサ入力のいずれであるかは知らされない。
【0066】
ディスクリミネータ602の出力は、入力データが仮想センサ入力と実センサ入力のいずれであるかを判別するものである。そして、GAN6では、あらかじめ用意したいくつかの仮想センサ入力と実センサ入力について、ディスクリミネータ602ではこの両者を正しく判別するように、また、ジェネレータ601では、ディスクリミネータ602においてこの両者が判別できないように繰り返し強化学習を行う。
【0067】
この結果、最終的にはディスクリミネータ602においてこの両者が判別できない(例えば、仮想センサ入力と実センサ入力を同数用意した場合には、正答率が50%となるなど)状態となり、かかる状態においては、ジェネレータ601は、合成画像に基づいて、実センサ入力と区別のつかない、あたかも現実のセンサ入力であるかのごとき仮想センサ入力を出力するものと考えられる。したがって、
図8に示した仮想センサ入力生成部102では、このようにして学習させたジェネレータ111を用い、仮想センサ入力が生成されることになる。
【0068】
なお、以上説明した仮想モデル生成部101及び仮想センサ入力生成部102の構成は一例であり、機械学習データ生成装置1及び機械学習装置2が想定する作業機械4に応じた適宜の構成としてよい。例えば、仮想モデル生成部101は、VAEを使用したものでなく、単に乱数で定めたパラメータに基づいて、所定のアルゴリズムにより仮想対象物モデルを生成するものであってもよい。また、仮想センサ入力生成部102は、GANを使用したものでなく、レイトレーシングやフォトリアリスティックレンダリングといった既知のコンピュータグラフィクスの手法を用いて仮想センサ入力を生成するものであってもよい。さらには、想定される対象物402やセンサ404が異なれば、当然にそれらに適した構成の仮想モデル生成部101及び仮想センサ入力生成部102の構成を採用すべきである。本実施形態で説明した仮想モデル生成部101及び仮想センサ入力生成部102の構成は、対象物402が不揃いな三次元プロファイルを有し、センサ404が映像撮影装置である場合に特に有効である。
【0069】
図2に戻り、仮想動作指令生成部103は、仮想対象物モデル及び仮想センサ入力の少なくともいずれかに応じて仮想動作指令を生成する。ここで、動作指令は、すでに説明したとおり、作業機械4において、センサ404により検出された対象物402の状態に応じて変化するオペレーティングマシン403への動作の指令であり、仮想動作指令は、かかる動作指令を仮想的に生成したものである。
【0070】
仮想動作指令生成部103において生成される仮想動作指令は、作業機械4の動作指令生成部406と異なり、決定的アルゴリズムによって生成されるものであってもよい。仮想動作指令に要求されるものは、仮想対象物モデルが現実の対象物402であったとしたならば、かかる対象物402に対して物理的作業を実行可能である蓋然性が高いことである。なお、仮想動作指令によって、実際に、あるいは後述するように、シミュレーション上で、物理的作業が成功裏に実行されることは必ずしも必要ではない。
【0071】
本例では、仮想動作指令生成部103は、仮想対象物モデル及び仮想センサ入力の両方を用い、仮想対象物モデル101からその重心位置と単軸方向及び単軸方向長さを演算して求め、仮想センサ入力から、かかる重心位置、単軸方向をオペレーティングマシン403の座標に変換して目標位置とし、単軸方向長さからロボットハンドの把持力を算出する。このように、仮想対象物モデルを利用すると、成功裏に物理的作業を実行可能である蓋然性の高い仮想動作指令が、比較的容易にかつ一意に生成される。
【0072】
もちろん、仮想動作指令を生成する方法は上述べた方法に限られず、他の方法であってもよい。他の方法は、例示したものと同様に、決定的アルゴリズムを用いるものであってもよいし、後ほど説明するように、非決定的アルゴリズムによるものであってもよい。
【0073】
さらには、オペレータ(人)が補助するものであってもよい。例えば、仮想センサ入力が画像である場合、当該画像をオペレータに提示し、仮想動作指令を生成するうえで目標となるポイントをオペレータに指示させるなど、仮想動作指令生成部103が、仮想対象物モデル及び仮想センサ入力の少なくともいずれかに応じて仮想動作指令を生成する際に、オペレータが介在する方法も選択できる。かかる方法では、人であるオペレータの経験や判断が簡易な方法により、仮想動作指令に反映される。いずれにせよ、仮想動作指令を生成する方法は対象物402や、センサ404等の性質に応じて適切なものを選択すればよい。
【0074】
本実施形態に係る機械学習データ生成装置1は、さらに、シミュレータ104及び達成状況評価部105を有している。このシミュレータ104及び達成状況評価部105が、
図1に示した仮想動作成否評価部116に該当している。
【0075】
シミュレータ104は、物理的作業の物理シミュレーションを実行する。すなわち、シミュレータ104には、現実の作業機械4のオペレーティングマシン403の仮想モデルである仮想オペレーティングマシンモデルがあらかじめ用意されており、シミュレータ104の仮想空間上にかかる仮想オペレーティングマシンモデルと、仮想対象物モデルを配置し、仮想オペレーティングマシンモデルを仮想動作指令に従って動作させることにより、作業機械4が行う物理的作業を仮想空間上でシミュレートする。仮想オペレーティングマシンモデルと仮想対象物モデルの仮想空間上における配置は、当然に、仮想センサ入力生成部102において仮想センサ入力が生成された際の状況を再現したものとする。
【0076】
物理シミュレーションに使用される物理演算エンジンは、想定している物理的作業に応じたものを用いればよい。本例のように、対象物402の把持を想定している場合には、衝突判定及びダイナミックシミュレーションを実行可能な物理演算エンジンを選択もしくは構築すればよいし、物理的作業が異なれば、当然に、流体シミュレーションや破壊シミュレーション、その他あらゆる物理現象をシミュレートする物理演算エンジンを適宜選択するか、構築することになる。
【0077】
シミュレータ104におけるシミュレーションが完了すると、シミュレーションの結果は、達成状況評価部105によりその達成状況が評価される。ここで、「達成状況」とは、物理的作業の目的が達成された度合いを評価する指標である。この指標は、2値のものであってもよいし、連続的評価、段階的評価であってもよい。本例の場合であれば、把持に成功したか、失敗したかの2値評価を行えばよい。それ以外では、例えば、対象物2が不定形の肉塊であり、物理的作業がこの肉塊をn等分に切断することであれば、切断後の各肉片の重量のばらつきを達成状況としてよく、あるいはそのばらつきの程度や目的の達成に応じた段階的評価としてもよい。段階的評価としては、肉片の重量のばらつきの大きさにより、達成状況を不可、可、良の3段階評価としたり、切断に失敗した、切断には成功したが各肉片のばらつきが許容範囲外、切断に成功しかつ各肉片のばらつきが許容範囲内、といった、質的に異なる多段階評価としたりしてもよい。
【0078】
すでに述べたとおり、シミュレータ104におけるシミュレーションの際には、物理演算エンジンを使用するため、複数のバリエーションに係る仮想対象物モデル、例えば唐揚げ、が上で例示したようにばら積みにされているようなケースでは、物理的作業の対象として選択された仮想対象物モデルと仮想オペレーティングマシンモデルとの相互作用のみならず、物理的作業の対象として選択されなかった他の仮想対象物モデルと仮想オペレーティングマシンモデルとの相互作用、例えば衝突による干渉についても達成状況に反映される。すなわち、単独の仮想対象物モデルに対してはその物理的性状のバリエーションを加味してなお成功裏に物理的作業が遂行できたであろうと考えられる仮想動作指令であっても、複数の仮想対象物モデルがばら積みされていることによる影響によりその作業が不成功となるケースも考えられるところ、本実施形態に係る機械学習データ生成装置1では、あたかも現実の物理的作業であるかのように、仮想空間における物理的作業の達成状況が正しく評価される。
【0079】
最後に、機械学習データ生成部106において、仮想センサ入力生成部102により生成された仮想センサ入力と、仮想動作指令生成部103により生成された仮想動作指令と、達成状況評価部105により評価された達成状況を互いに紐づけ、機械学習データとする。
【0080】
機械学習データ生成装置1では、仮想モデル生成部101により生成された、対象物402の複数のバリエーションについての仮想対象物モデルごとに1又は複数の機械学習データを生成することができ、多数の互いに異なる機械学習データが容易に、かつ、実用的な時間及びコストの範囲で得られる。そして、対象物402と、対象物402に対して想定される動作、すなわち、動作指令からは、成否が自明でない物理的作業の場合であっても、シミュレータ104による物理シミュレーションによって、その物理的作業の成否が高い確度で推定され、その評価結果が機械学習データに反映されることとなる。
【0081】
そして、機械学習装置2は、上述の機械学習データ生成装置1及び学習部201を備えており、機械学習データ生成装置1により生成された機械学習データを用いて、作業機械4の動作指令生成部406において用いられるべきニューラルネットワークモデル407の学習を行う。学習部201は、機械学習データに基づいて、センサ入力を入力とし、動作指令を出力とするニューラルネットワークである、ニューラルネットワークモデルを、前記達成状況に応じて学習させる。したがって、機械学習装置2では、現実の物理的作業を必ずしも要することなく、実用的な時間及びコストの範囲で、物理的作業の成否を反映した機械学習がなされる。
【0082】
図10は、機械学習データ生成装置1により生成される機械学習データの構成の一例を示す図である。同図に示す一つ一つのレコードが一個の機械学習データに相当しており、各レコードには、仮想センサ入力、仮想動作指令及び、達成状況がふくまれる。以降の説明では、必要に応じ、同一のレコードに属する仮想センサ入力及び仮想動作指令には、レコード番号を末尾につけて区別する。
【0083】
図11は、学習部201の構成を示す構成図である。学習部201には、ニューラルネットワークモデル202が記憶されている。ニューラルネットワークモデル202は、学習が完了したのち、将来的に作業機械4の動作指令生成部406におけるニューラルネットワークモデル407としての使用が予定されているモデルである。
【0084】
学習部201には、機械学習データが入力される。
図11では、機械学習データとしてレコードnが入力された状態を示しており、レコードnのうち、仮想センサ入力nはニューラルネットワークモデル202への設問、仮想指令nは、かかる設問に対する解答として、ニューラルネットワークモデル202の学習が行われる。この時、レコードnの達成状況は、フィルタ203により係数kへと変換され、ニューラルネットワークモデル202の学習に用いられる。
【0085】
係数kは、レコードnの機械学習データによるニューラルネットワークモデル202の学習の可否、学習の方向の正負あるいはその強度を示すものである。したがって、学習部201は、ニューラルネットワークモデル202を、達成状況に応じて学習させているといえる。
【0086】
学習時における具体的なkの利用方法は必ずしも限定されない。一例として、学習部201が正方向の学習と、負方向の学習の両方を行うものである場合、それぞれの方向の学習を行うコードを別々に用意しておき、kの値に応じて、例えばk>0であれば正の方向の学習用コードを実行し、k<0であれば負の方向の学習用コードを実行することが考えられる。なおこのケースにおいて、k=0の場合には、正負いずれの学習を行うかを任意に定めておいてもよいし、当該レコードによっては学習を行わないものとしてもよい。
【0087】
あるいは、ニューラルネットワークモデル202の学習の際の(確率的)勾配降下法における学習率をηとした際に、既定の学習率をη0として、
【0088】
【数1】
としてもよい。この場合、kを正とすると正の方向の学習が、kを負とすると負の方向の学習が行われ、k=0の場合には学習が行われないことになる。このような方法を用いると、フィルタ203の形状を適切に設計することにより、中間的な強度の学習を含め、学習の有無、正負及びその強度が自由に設計できる。
【0089】
図12は、フィルタ203の種々の形状の例を示す図である。同図に示す、(A)のフィルタは、達成状況が「良」を示す場合には、正の方向の学習を行い、達成状況が「負」を示す場合には、負の方向の学習を行うものである。このように、kが正となる領域と、負となる領域の両方が含まれている場合、フィルタ203は、達成状況に応じて、機械学習データによる学習を正の方向の学習とするか負の方向の学習とするかを定める学習方向決定部として機能しているということができる。
【0090】
(B)のフィルタは、達成状況が「良」を示す場合に限り、正の方向の学習のみを行うというものである。このように、k=0となる領域が含まれている場合、フィルタ203は、達成状況に応じて、機械学習データによる学習の可否を決定する学習可否決定部として機能しているということができる。
【0091】
(C)のフィルタは、達成状況に応じて、係数kが連続的に変化するというものである。このように、kの値が中間的な値(1、0、-1でない値)となる領域が含まれている場合、フィルタ203は、達成状況に応じて、機械学習データによる学習の強度を定める学習強度決定部として機能としているということができる。また、このフィルタは同時に、kが正となる領域と負となる領域の両方を含んでおり、かつ、k=0となる領域もまた含んでいるため、フィルタ203は、学習方向決定部及び学習可否決定部としても同時に機能しているということができる。
【0092】
(D)のフィルタは、達成状況に応じて、係数kが段階的に変化するというものである。この場合においても、(C)のフィルタと同様に、フィルタ203は、学習強度決定部、学習方向決定部及び学習可否決定部として同時に機能しているということができる。
【0093】
なお、(C)及び(D)のフィルタにみられるように、達成状況が「良」でも「不良」でもないかその区別が明確でない場合に、kの値を0か、その付近の絶対値の小さい値とすることにより、学習精度を高めることに寄与しないかその寄与が少ない機械学習データにより無駄な学習がなされ、かえってニューラルネットワークモデル202の学習の妨げとなる事態が防止される。
【0094】
以上説明したように、フィルタ203を適切に設計し、機械学習データに含まれる達成状況に応じて、学習の可否、方向及び強度の少なくともいずれかを定めることにより、シミュレータ104におけるシミュレーションの結果をニューラルネットワークモデル202の学習に適切に反映することができ、学習の効率化・収束の高速化が期待される。また、フィルタ203を用いて学習の可否や方向を定めるようにすると、学習の可否や方向ごとにコードを用意する必要がなく、機械学習装置2の生産性がよい。
【0095】
なお、フィルタ203は学習部201において必ずしも必須の構成ではなく、達成状況をそのままニューラルネットワークモデル202の学習に用いるようにしてもよい。その場合には、フィルタ203として「1」が設けられているとみなすことができる。
【0096】
図13は、本実施形態に係る機械学習データ生成装置1及び機械学習装置2による、機械学習データ生成方法及び機械学習方法のフロー図である。同図に示したフローのうち、(1)の部分(ST11~ST17)が機械学習データ生成方法に該当し、(2)の部分(ST11~ST18)が機械学習方法に該当する。
【0097】
まず、ST11にて、仮想モデル生成部101により、対象物402の複数のバリエーションについての仮想対象物モデルを生成する。続くST12では、仮想センサ入力生成部102により、仮想対象物モデルに基づいて仮想センサ入力を生成する。さらに、ST13では、仮想動作指令生成部103により、仮想対象物モデル及び仮想センサ入力の少なくともいずれかに基づいて仮想動作指令を生成する。
【0098】
ST14では、シミュレータ104により、仮想オペレーティングマシンモデルと、仮想対象物モデルを用いて、仮想動作指令に基づいて物理的作業のコンピュータシミュレーションを実行する。そしてST15にて、達成状況評価部105により、コンピュータシミュレーションの結果による物理的作業の目的の達成状況を評価する。ST16へと進み、機械学習データ生成部106により、仮想センサ入力と、仮想動作指令と、達成状況に基づいて機械学習データを生成する。
【0099】
生成された機械学習データはレコードとして蓄積される。ST17において、レコード数、すなわち、蓄積された機械学習データの数が十分であるか否かを判断し、十分でなければ(ST17:N)、ST11へと戻り、繰り返し機械学習データの生成を行う。レコード数が十分であれば(ST17:Y)、ST18へと進む。必要なレコード数は、あらかじめ目標数を定めておいてよい。あるいは、ST18での機械学習の結果を評価し、学習が十分でない場合には、ST11~ST17を改めて実行し、機械学習データを追加で生成するようにしてもよい。機械学習の結果の評価は、学習部201におけるニューラルネットワークモデル202の内部状態の収束を評価することにより行ってもよいし、かかるニューラルネットワークモデル202にテストデータを入力し、得られた出力の正解率により行ってもよい。
【0100】
ST18では、学習部201により、生成された機械学習データに基づいて、ニューラルネットワークモデル202を、達成状況に応じて学習させる。このようにして、本実施形態では、作業機械4に適した、学習済みのニューラルネットワークモデル202を得る。
【0101】
以上説明した本発明の第1の実施形態に係る機械学習データ生成装置1及び機械学習装置2では、仮想動作指令生成部103による仮想動作指令の生成方法として、仮想対象物モデル及び仮想センサ入力の両方を用いる決定的アルゴリズムを使用する方法を説明した。以下では、本発明の第2の実施形態に係る機械学習データ生成装置1及び機械学習装置2として、仮想動作指令生成部103による仮想動作指令の生成方法として、非決定的アルゴリズムを用いた一例を説明する。
【0102】
図14は、本発明の第2の実施形態に係る機械学習データ生成装置1を含む機械学習装置2の全体の構成を示す機能ブロック図である。なお、本実施形態の説明を容易とするため、先の実施形態と同一又は対応する構成には同一の符号を付し、重複する説明についてはこれを省略するものとする。
【0103】
本実施形態に係る仮想動作指令生成部103は、ニューラルネットワークモデル115を有している。このニューラルネットワークモデル115は、学習部201が有しており、学習の対象となるニューラルネットワークモデル202と同様に、センサ入力(又は仮想センサ入力)を入力とし、動作指令(又は仮想動作指令)を出力とするものである。ニューラルネットワークモデル115とニューラルネットワークモデル202との関係は後述する。
【0104】
ニューラルネットワークモデル115は、あらかじめある程度の学習が進められている。すなわち、何らかのセンサ入力または仮想センサ入力を入力すると、それなりの動作指令又は仮想動作指定を出力することができる。ここで、「それなり」という語は、ニューラルネットワークモデル115から出力された動作指令により作業機械4のオペレーティングマシン403を動作させ、あるいはニューラルネットワークモデル115から出力された仮想動作指令によりシミュレータ104によるシミュレーションを実行すると、物理的作業の目的を達成するか、達成するに至らなくとも、達成に近いと考えられる程度の結果が得られることを意味するものとして使用されている。
【0105】
ニューラルネットワークモデル115を用いた推論は非決定的アルゴリズムであるから、本例は、非決定的アルゴリズムを用いた仮想動作指令生成部103による仮想動作指令の生成方法の一例を示している。決定的アルゴリズムにより、学習に用い得る程度にそれなりの仮想動作指令を得ることが困難又は難しい場合には、このような方法が有効である。
【0106】
そして、仮想動作指令生成部103において用いられるニューラルネットワークモデル115と、学習部201において学習対象となるニューラルネットワークモデル202とは、本実施形態における機械学習データの生成及び機械学習の当初においては、同じものを用いてよい。例えば、作業機械4の実機を用い、数は必ずしも多くないものの、いくばくかの実物の対象物402を用いて学習させたニューラルネットワークモデル(
図4にて示したニューラルネットワークモデル407であってよい)を初期モデルとして用いてよい。または、全く未学習のニューラルネットワークモデルを初期モデルとしてもよく、さらに、人為的に作成した機械学習データにより学習をある程度進めたニューラルネットワークモデルをこれらの初期モデルとしてもよい。
【0107】
このようなニューラルネットワークモデル115を含む仮想動作指令生成部103を有する機械学習データ生成装置1を用いて機械学習データを生成し、さらに機械学習装置2によりかかる機械学習データを用いて機械学習を進めると、学習部201において、ニューラルネットワークモデル202の学習が進み、ニューラルネットワークモデル202により得られる動作指令又は仮想動作指令の精度、すなわち、かかる動作指令又は仮想動作指令を用いた時の物理的作業の目的が達成される見込み、は向上していくと考えられる。
【0108】
そのようにニューラルネットワークモデル202の学習が進んだ段階で、複写部204は、ニューラルネットワークモデル202によってニューラルネットワークモデル115を上書きして更新する。これにより、仮想動作指令生成部103により生成される仮想動作指令の精度が漸増していくため、ニューラルネットワークモデル202の学習がより効率的に進み、収束が早くなるものと期待される。
【0109】
複写部204によるニューラルネットワークモデル115の更新は、適宜のタイミングで行われてよい。例えば、一定のレコード数の機械学習データによる学習が行われるごとのタイミングとしてもよいし、ニューラルネットワークモデル202の学習の進み具合をモニタしておき、何らかの指標、例えば、収束率に基づくタイミングとしてもよい。
【0110】
あるいは、1レコードごと、すなわち、一件の機械学習データによる学習が学習部201により行われるごとに、ニューラルネットワークモデル115を更新してもよい。その場合には、
図13に示した構成でなく、複写部204を設けずに、仮想動作指令生成部103及び学習部201が、メモリ上の共通のニューラルネットワークモデル115,202を直接参照する構成としてもよい。
【0111】
以上説明した第1及び第2の実施形態においては、物理的作業としてオペレーティングマシン403による把持を例として説明したため、仮想センサ入力生成部102は、仮想対象物モデルの平面投影画像から仮想センサ入力を生成するものであったが、仮想センサ入力は、仮想対象物モデルに基づく限り、その生成手法に限定はなく、対象物402や物理的作業に応じた適切なものを選択し又は設計してよい。
【0112】
一例として、物理的作業が金属部品のバリ取りのための研磨作業であり、得るべき動作指令が、バリの形状に応じた砥石の押し付け力の時間プロファイルである場合には、仮想センサ入力生成部102は、シミュレータ104を用いて、仮の動作指令により仮想対象物モデルに対するシミュレーションを行い、得られた加工反力の時間プロファイルを仮想センサ入力とするものであってもよい。これは、この例における作業機械4の実機がバリ取りを行う際に、所定の押し付け力による仮研磨を行い、その際の反力に基づいて仕上げ研磨の押し付け力の時間プロファイルを設定するものであることに対応している。
【0113】
図15は、本発明の第3の実施形態に係る機械学習データ生成装置1を含む機械学習装置2の全体の構成を示す機能ブロック図である。なお、本実施形態においても、先の実施形態と同一又は対応する構成には同一の符号を付し、重複する説明についてはこれを省略するものとする。
【0114】
本実施形態における機械学習データ生成装置1では、
図1に示した仮想動作成否評価部116が、干渉評価部117となっている点が、先に説明した第1及び第2の実施形態と相違している。
【0115】
干渉評価部117は、仮想動作指令生成部103により生成された仮想動作指令に基づいてなされるオペレーティングマシン403による物理的作業の動作の成否を、仮想空間において、物理的作業の実行時における、オペレーティングマシン403と、仮想対象物モデルとの干渉の有無を評価することによって行う。
【0116】
すなわち、仮想対象物モデルの物理的性状のばらつきが、例えば、前述の唐揚げの例のように大きくないケースも考えられ、物理的作業の性質によっては、単独の仮想対象物モデルに対する指令が正しくなされていれば、その結果の予測可能性が高い場合も想定されるところ、かかる物理的作業については、物理シミュレーションを用いてその達成状況を評価する必要性は乏しいと考えられる。
【0117】
しかしながら、複数の仮想対象物モデルがばら積みの状態にあると、単独の仮想対象物モデルに対してはその物理的作業が成功裏に実行されることが期待される仮想動作指令であっても、隣接する複数の仮想対象物モデルが存在することによって、物理的作業が失敗するケースが生じる。具体的には、オペレーティングマシン403と、その物理的作業の対象となっていない他の仮想対象物モデルが干渉して作業が失敗し得る。
【0118】
物理的作業が上述のような性質を持っていると考えられる場合には、機械学習データを生成するにあたって、仮想動作指令による物理的作業の成否の評価は依然として必要である一方、オペレーティングマシン403による物理的作業全体の物理シミュレーションまでは必要でないと考えられる。したがって、仮想動作成否評価部116として、干渉評価部117を用い、必要な時点におけるオペレーティングマシン403と、仮想対象物モデルとの干渉の有無を評価することによって、現実の物理的作業を要さずに、成否が自明でない物理的作業の成否を反映した機械学習データが得られるとともに、物理シミュレーションを行う場合に比して、その計算負荷及び所要時間を大幅に削減することが期待できる。
【0119】
そのため、干渉評価部117は、物理的作業の実行時における、オペレーティングマシン403と、仮想対象物モデルとの干渉の有無を評価する。ここでいう物理的作業の実行時とは、仮想空間において物理的作業が実行される期間を意味しており、この期間におけるいずれか一又は複数の時点における干渉の有無が評価されることとなる。この時点をどの時点とするかは、物理的作業の性質によって定めるべきものであり、例えば、この後例示するように、鉛直上方からのピックアップ作業であれば、仮想対象物モデルを把持しようとする時点であるし、干渉が生じやすいタイミングが複数存在する物理的作業に対しては、それぞれのタイミングを干渉の有無を評価する時点とすればよい。
【0120】
本実施形態に係る機械学習データ生成装置1を含む機械学習装置2に係る物理的作業の具体例として、
図16に示すような、架台401上にばら積みにされた複数の部品409を対象物402として、平行グリッパをエンドエフェクタとして搭載した産業用ロボットをオペレーティングマシン403として用い、ピックアップを行う場合を考える。同図は、
図15の仮想モデル生成部101により生成された仮想対象物モデルを図示したものである。
【0121】
部品409は機械部品などの剛性品を想定しており、ここでは、T字状の金属部材を例示している。そして、平行グリッパにより、T字の縦棒に相当する突出部を把持位置として、ピックアップ作業を行うものとする。このとき、部品409は架台401上に不規則に重なり合あって積まれているため、把持位置が他の部品409の下側に入り込んでいたり、下方向を向いていたり、隣接する部品409が邪魔となり、平行グリッパに干渉するため、ピックアップ作業を成功裏に実行できない態様で積まれている部品409が相当数存在することになる。
【0122】
図15の仮想動作指令生成部103に対しては、あらかじめ、単独の部品409の仮想対象物モデルに対して、物理的作業を実行できると考えられるオペレーティングマシン403の目標値を与えておく。
図17は、本例における、仮想動作指令生成部103に対して与える目標値の例である。同図に示すように、部品409に対して、オペレーティングマシン403の座標、すなわち、エンドエフェクタである平行グリッパの空間内での位置範囲410の中にあり、なおかつ、平行グリッパの姿勢、すなわち、空間内での角度が部品409に対して角度範囲411の中にあるならば、オペレーティングマシン403は、部品409を成功裏にピックアップできると考えられる。
【0123】
なお、この目標値、すなわち、位置範囲410及び角度範囲411は本例では単純に、対象となる仮想対象物モデルに対する相対範囲として与えているが、この目標値の範囲の与え方は任意でよく、他の方式を用いてもよい。一例として、ユーザが適宜のGUI(グラフィカルユーザインタフェース)を用いて、
図17に示したような仮想対象物モデルに対する相対的な位置範囲410及び角度範囲411をあらかじめ指定するだけでなく、かかる位置範囲410及び角度範囲411からなる集合に対して、力学解析を行うことによって得られた位置及び角度の範囲からなる集合と、平行グリッパと単独のモデルが干渉しない把持位置及び姿勢の範囲からなる集合のいずれか又は両方との積集合を目標値とするなどしてもよい。
【0124】
ただし、この位置範囲410及び角度範囲411は、対象となる部品409を単独のものと考えて設定されるものであるため、
図16のように複数の部品509がばら積みされている状況では、特定の部品409について得られる位置範囲410及び角度範囲411の一部または全てについて、物理的作業が実行できないものが含まれる。他の部品409との干渉を考慮しないとしても、平行グリッパの姿勢が、オペレーティングマシン403の機構上実現不能な場合、例えば、架台409の下から部品409にアプローチするような姿勢や、オペレーティングマシン403の可動範囲外となる姿勢は、その目標値を仮想動作指令から除外される。
【0125】
その結果、仮想動作指令生成部103により、仮想モデル生成部101により生成された部品409の仮想対象物モデルそれぞれについて、
図18に示すように、一又は複数の、仮想動作指令である目標値A
1・・・A
nが生成される。
【0126】
ここで、nは仮想モデル生成部101により生成された仮想対象物モデルの個数であり、目標値Aに付された添字は、生成された仮想対象物モデルを識別する番号である。従って、目標値A1は、1番目の仮想対象物モデルについて生成された仮想動作指令を示しており、2番目以降n番目まで以下同様である。
【0127】
本実施形態では、目標値Aは、オペレーティングマシン403に対する動作指令が取り得る値の範囲を示す動作指令値空間(x,θ)における正解範囲を示すものとなっている。ここで、x,θはオペレーティングマシン403によりエンドエフェクタが取り得る位置及び姿勢を示すベクトルであり、xはここでは三次元直交座標x,y,zを、θはオイラー角α,β,γを示すものとする。したがって、目標値Aは、6次元空間において分布する値をマッピングする多次元行列である。
【0128】
具体的には、
図18中の目標値A
1、目標値A
2、目標値A
3について斜線を施した領域として模式的に示した動作指令値空間(x,θ)の特定の領域412が正解範囲を示す。すなわち、オペレーティングマシン403の移動先位置及び姿勢として、この斜線で示した領域412に座標x,y,z,α,β,γが入っていれば、目標となった仮想対象物モデルに対しては物理的作業が可能、すなわち、平行グリッパによるピックアップが可能と考えられる。
【0129】
領域412は、仮想モデル生成部101により生成された仮想対象物モデルの仮想空間中の座標に基づいて、
図17に示した目標値の範囲を定めることにより得られる。そして、目標値Aの具体的な構造は種々のものが考えられるが、ここでは、動作指令値空間(x,θ)を所定の分解能で区分し、それぞれの区分が、領域412に該当する場合には「1」を、領域412の外である場合には「0」を与えるなどするとよい。領域412の境界に位置する区分は、「1」又は「0」のいずれかとするか、あるいは当該区分に含まれる領域412の体積に応じて、0~1の間の値を与える。
【0130】
このようにして仮想動作指令生成部103により生成された特定の仮想対象物モデルについての目標値Aは、他の仮想対象物モデルとの干渉による影響を考慮したものではない。そこで、本実施形態では、さらに、干渉評価部117によりオペレーティングマシン403と、仮想対象物モデルとの干渉の有無を評価する。
【0131】
干渉の有無の評価は、仮想空間中の特定の仮想対象物モデルに対して、オペレーティングマシン403を配置した時点での、オブジェクト同士の重なりが生じるか否かを判別することにより行う。
図19は、仮想空間中における干渉の有無の評価を評価している様子を説明する図である。同図は、ある特定の仮想対象物モデルである部品409に対し、オペレーティングマシン403の3Dモデル、ここではその先端に設けられた平行グリッパであるエンドエフェクタ413が配置されている様子を模式的に示している。なお、部品409とエンドエフェクタ413との位置関係がわかりやすいように、同図ではエンドエフェクタ413はワイヤフレームモデルとして示されている。
【0132】
ここで、エンドエフェクタ413は、特定の目標値Aにより示された位置及び姿勢に配置される。そして、この状態において、エンドエフェクタ413を構成する3Dオブジェクトと、図示されていない他の部品409を含めた部品409の3Dオブジェクトとの積集合を求め、結果が空集合でないなら干渉が生じており、この目標値Aに含まれる位置及び姿勢による物理的作業は実行できないことがわかる。
【0133】
かかる干渉の有無の評価を得られた目標値Aの全てに対して行う。その結果、評価を加味した仮想動作指令、すなわち、得ようとする機械学習データを構成する解答データが生成される。
図20は、目標値Aに評価が加味されることにより得られた解答データの例を模式的に示す図である。
【0134】
図20に示した解答データは、
図18に示された目標値に干渉の有無の評価を加味したものである。より具体的には、仮想動作指令生成部103により生成された目標値Aに含まれる目標値の範囲である領域412のうち、干渉によって物理的作業が実行不能である部分を削除することによって得られたものである。
【0135】
図20の例では、目標値A
1については、干渉によって物理的作業が実行不能である部分が存在しないため、その領域412に変化はない。これに対し、目標値A
2は、一部干渉が生じる部分が存在したため、領域412は部分的に削除されて小さくなっている。目標値A
3は、その領域全てが干渉を生じるため、領域412は削除されもはや存在しない。同様に、得られた目標値Aの全てに対して干渉を加味して領域412を修正する。
【0136】
図15に戻り、機械学習データ生成部106は、仮想センサ入力生成部102により生成された仮想センサ入力を問題データとし、干渉評価部117から得られた解答データと対にすることにより機械学習データを生成する。したがって、学習部201により学習を受ける機械学習モデルは、現実のセンサ入力を入力されると、
図20に示したと類似の目標値Aを出力するように学習がなされるから、出力された目標値Aに基づいて現実のオペレーティングマシン403を動作させることにより、干渉を生じることなく物理的作業、すなわち、物品409のピックアップが実行できるものと期待できる。
【0137】
なお、上の説明では、ある特定の目標値Aにおいて、その領域412に部分的に干渉が生じる部分があると評価された場合には、領域412から該当する部分を削除して解答データを作成しるものとしたが、一部分、又はある一定割合以上領域412に干渉が生じる部分がある場合には、領域412全てを削除する対応としてもよい。また、解答データとしては、少なくとも領域412が残存する目標値Aのみを用い、領域412が存在しない目標値A(例えば、
図20の目標値A
3)は用いないものとしてもよい。あるいは、領域412が存在しない目標値Aをも解答データとして用いてもよいし、目標値A
1~A
nの和集合を解答データとして用いてもよい。
【0138】
また、上の説明では、3Dオブジェクト間の論理演算を用いて干渉の有無を評価していたが、これ以外の方法、例えば、より簡易な方法を用いてもよい。例えば、1又は複数の所定の断面における干渉の有無を評価する方法を用いてもよい。
【0139】
一例として、
図19に示したP-P断面及びQ-Q断面の2つの断面を用いて評価する方法を
図21を参照して説明する。
図21に示したP-P断面において、部品409が存在する領域に対して、斜線を施して示した領域が、オペレーティングマシン403のエンドエフェクタ413が存在する領域である。
【0140】
従って、この斜線を施した領域に、他の部品409が存在していなければ、P-P断面において干渉は生じていないと評価できる。同様に、Q-Q断面においても、斜線を施して示したエンドエフェクタ413が存在する領域に、他の部品409が存在していなければ、Q-Q断面において干渉は生じていないと評価できるから、P-P断面とQ-Q断面の双方において干渉が生じていなければ、干渉は生じないと評価する。
【0141】
評価する断面の数およびその位置や向きは任意であり、部品409やオペレーティングマシン403の形状に応じて適宜定めてよい。このように、断面における干渉の有無を評価する方法は、2次元平面における干渉の有無の判別により全体の干渉の評価ができるため、3次元空間における干渉の有無の判別に比して情報処理の負荷を低く抑えることができる。一方で、複雑な形状をもつ部品409やオペレーティングマシン403に対しては、先に説明した3次元空間における干渉の有無の判別を行う方法の方が、正確に干渉の有無を評価できる。
【0142】
以上本実施形態において説明したように、仮想動作指令として、オペレーティングマシン403の動作指令値空間における領域412を示す目標値を用いることで、仮想対象物モデル毎に目標値を生成でき、また干渉の有無の評価を加味して容易に機械学習データを構成する解答データが得られる。
【0143】
以上説明した機械学習装置2により得られた学習済みのニューラルネットワークモデル202を搭載することにより、高い確度で目的を達成する作業機械4が得られる。
図22は、かかる作業機械4の製造工程を示すフロー図である。
【0144】
まず、ST21にて、架台401、オペレーティングマシン403、センサ404、コントローラ405と、その他、作業機械4を構成するにあたって必要な機器を用意する。この際、各機器の接続や接合、配線など作業機械4を物理的に構成する際に必要な作業を行う。
【0145】
続いて、ST22にて、
図13の(2)に示したフローに従い、機械学習データを生成し、かかる機械学習データに基づいて機械学習を行い、学習済みのニューラルネットワークモデル202を得る。
【0146】
最後に、ST23にて、得られたニューラルネットワークモデル202を作業機械4の動作指令部406に複写してニューラルネットワークモデル407とする。このような方法により、現実の物理的作業による学習を行うことなく、または現実の物理的作業による学習を低減して、対象物と、対象物に対して想定される動作からは、その物理的作業の成否が自明でない物理的作業を行う作業機械4が製造される。
【0147】
そして、
図2に示した機械学習装置2と、
図4及び
図5に示した作業機械4を含む作業システムを観念すると、かかる作業システムにおいては、機械学習装置2により、現実の物理的作業による学習を行うことなく、または現実の物理的作業による学習を低減して、物理的作業についての機械学習がなされ、作業機械4においては、かかる機械学習の成果を反映した物理的作業がなされる。したがって、かかる作業システムを用いることにより、現実的なコスト及び時間の範囲内において、対象物と、対象物に対して想定される動作からは、その物理的作業の成否が自明でない物理的作業が自動かつ高精度に実行される。
【0148】
また、以上説明した第1~第3の各実施形態に係る機械学習装置2においては、機械学習データ生成装置1により生成された機械学習データに基づいて、学習部201においてセンサ入力を入力とし動作指令を出力とするニューラルネットワークの学習を行うものとして説明したが、機械学習データ生成装置1により生成される機械学習データの使用方法は必ずしも上述のものに限定されない。例えば、機械学習データ生成装置1により生成された機械学習データに含まれる仮想センサ入力から仮想動作指令を一又は複数生成し、生成された仮想動作指令を、同機械学習データに含まれる解答データに基づいて選択しあるいは評価するニューラルネットワークモデルの学習に用いてもよい。同様に、同機械学習データに含まれる解答データをそのままの形でニューラルネットワークモデルの学習に用いるのではなく、解答データを別の形に変換し若しくは解答データから別のデータを生成してニューラルネットワークモデルの学習に用いるなどしてもよい。