(57)【要約】      （修正有）【課題】能力をより簡便に向上させることができるロボット装置を提供する。【解決手段】ロボット装置（２００）は、第１作業を行う指針となる第１教示情報を記憶する記憶部（２５０）と、前記第１作業と類似または関連する第２作業を行う指針となる第２教示情報を、前記第２教示情報を有する他の装置から取得する取得部（２２４）と、前記記憶部に記憶された第１教示情報に基づく前記第１作業および前記取得部により取得された前記第２教示情報に基づく前記第２作業を行う駆動制御部（２３０）とを備える。【選択図】図４
2020082249.tif 000002
【特許請求の範囲】
【請求項１】
第１作業を行う指針となる第１教示情報を記憶する記憶部と、
前記第１作業と類似または関連する第２作業を行う指針となる第２教示情報を、前記第２教示情報を有する他の装置から取得する取得部と、
前記記憶部に記憶された第１教示情報に基づく前記第１作業および前記取得部により取得された前記第２教示情報に基づく前記第２作業を行う作業制御部と、
を備えるロボット装置。
【請求項２】
第３作業を行う指針を学習する学習部と、
前記学習部が前記第３作業を行う指針を学習した場合に、前記第３作業を行う指針を学習したことを示す情報を他の装置に通知する情報提供部と、を更に備える、
請求項１に記載のロボット装置。
【請求項３】
人物に対して作業を教授する教授部と、
前記教授部が人物に対して所定の作業を教授している場合に、前記教授できない作業が発生した際に、新たに取得した前記教授できない作業を教授するための教授情報に基づいて前記教授できない作業に対する対応方法を学習する学習部と、を更に備え、
前記教授部は、前記学習部の学習結果に基づいて、前記教授できない作業について人物に対して教授する、
請求項１または２に記載のロボット装置。
【請求項４】
請求項３に記載のロボット装置と、
所定の環境において、前記教授できない作業が発生する頻度に基づいて、前記ロボット装置の技能の習得度合を推定する推定部を更に備える、
ロボットシステム。
【請求項５】
請求項１から３のうちいずれか１項に記載のロボット装置と、
前記ロボット装置により送信された作業を行う指針である教示情報が、機密情報であるか否かを判定する機密判定部と、
前記機密判定部により前記教示情報が機密情報でないと判定された場合、他の装置の要求に応じて前記教示情報を前記他の装置に提供し、前記機密判定部により前記教示情報が機密情報であると判定された場合、他の装置から要求があっても前記教示情報を前記他の装置に提供しない提供部と、
を備えるロボットシステム。
【請求項６】
前記機密判定部は、前記ロボット装置により送信された情報と合致する情報が公開されているか否かを判定し、前記ロボット装置により送信された情報が公開されていると判定した場合、前記教示情報は機密情報でないと判定する、
請求項５に記載のロボットシステム。
【請求項７】
ロボット装置のコンピュータが、
第１作業と類似または関連する第２作業を行う指針となる第２教示情報を、前記第２教示情報を有する他の装置から取得し、
前記第１作業を行う指針となる第１教示情報を記憶する記憶部に記憶された第１教示情報に基づく前記第１作業および前記取得された前記第２教示情報に基づく前記第２作業を行う、
ロボット制御方法。
【請求項８】
ロボット装置のコンピュータに、
第１作業と類似または関連する第２作業を行う指針となる第２教示情報を、前記第２教示情報を有する他の装置から取得させ、
前記第１作業を行う指針となる第１教示情報を記憶する記憶部に記憶された第１教示情報に基づく前記第１作業および前記取得された前記第２教示情報に基づく前記第２作業を行わせる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット装置、ロボットシステム、ロボット制御方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、ロボットの操作部が人に加えられた力に基づいて移動した移動軌跡を教示データとして保持するロボット装置が開示されている（例えば特許文献１）。このロボット装置は、動作の再生時に保持した教示データの移動軌跡を再現する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−７１２３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、複数の上記のロボット装置が、それぞれ動作を学習する場合、それぞれのロボットの操作部に対して人が移動に関する教示を行う必要があるため、種々の問題が発生する。例えば、教示する人によってロボットの作業性に差が生じる場合があった。また、個々のロボット装置のそれぞれに教示を行う必要があるため、教示を行う負荷が掛かる場合があった。
【０００５】
本発明は、このような事情を考慮してなされたものであり、能力をより簡便に向上させることができるロボット装置、ロボットシステム、ロボット制御方法、およびプログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【０００６】
この発明に係るロボット装置は、以下の構成を採用した。
（１）：この発明の一態様に係るロボット装置は、第１作業を行う指針となる第１教示情報を記憶する記憶部と、前記第１作業と類似または関連する第２作業を行う指針となる第２教示情報を、前記第２教示情報を有する他の装置から取得する取得部と、前記記憶部に記憶された第１教示情報に基づく前記第１作業および前記取得部により取得された前記第２教示情報に基づく前記第２作業を行う作業制御部とを備える。
【０００７】
（２）：上記（１）の態様において、ロボット装置は、第３作業を行う指針を学習する学習部と、前記学習部が前記第３作業を行う指針を学習した場合に、前記第３作業を行う指針を学習したことを示す情報を他の装置に通知する情報提供部と、を更に備える。
【０００８】
（３）：上記（１）または（２）の態様において、ロボット装置は、人物に対して作業を教授する教授部と、前記教授部が人物に対して所定の作業を教授している場合に、前記教授できない作業が発生した際に、新たに取得した前記教授できない作業を教授するための教授情報に基づいて前記教授できない作業に対する対応方法を学習する学習部と、を更に備え、前記教授部は、前記学習部の学習結果に基づいて、前記教授できない作業について人物に対して教授するものである。
【０００９】
（４）：上記（３）のロボット装置と、所定の環境において、前記教授できない作業が発生する頻度に基づいて、前記ロボット装置の技能の習得度合を推定する推定部を更に備えるロボットシステムである。
【００１０】
（５）：上記（１）から（３）のいずれかのロボット装置と、前記ロボット装置により送信された作業を行う指針である教示情報が、機密情報であるか否かを判定する機密判定部と、前記機密判定部により前記教示情報が機密情報でないと判定された場合、他の装置の要求に応じて前記教示情報を前記他の装置に提供し、前記機密判定部により前記教示情報が機密情報であると判定された場合、他の装置から要求があっても前記教示情報を前記他の装置に提供しない提供部とを備えるロボットシステムである。
【００１１】
（６）：上記（５）のいずれかのロボット装置と、前記機密判定部は、前記ロボット装置により送信された情報と合致する情報が公開されているか否かを判定し、前記ロボット装置により送信された情報が公開されていると判定した場合、前記教示情報は機密情報でないと判定するロボットシステムである。
【００１２】
（７）：この発明の他の一態様に係るロボット方法は、ロボット装置のコンピュータが、第１作業と類似または関連する第２作業を行う指針となる第２教示情報を、前記第２教示情報を有する他の装置から取得し、前記第１作業を行う指針となる第１教示情報を記憶する記憶部に記憶された第１教示情報に基づく前記第１作業および前記取得された前記第２教示情報に基づく前記第２作業を行う。
【００１３】
（８）：この発明の他の一態様に係るプログラムは、ロボット装置のコンピュータに、第１作業と類似または関連する第２作業を行う指針となる第２教示情報を、前記第２教示情報を有する他の装置から取得させ、前記第１作業を行う指針となる第１教示情報を記憶する記憶部に記憶された第１教示情報に基づく前記第１作業および前記取得された前記第２教示情報に基づく前記第２作業を行わせる。
【発明の効果】
【００１４】
（１）、（２）、（７）、（８）によれば、ロボット装置の能力をより簡便に向上させることができる。
【００１５】
（３）によれば、人物に作業を教授するため、人の能力をより簡便に向上させることができる。
【００１６】
（４）によれば、ロボット装置の技能の習得度合をより容易に認識することができる。
【００１７】
（５）、（６）によれば、公にすべきでない情報を、より容易に管理することができる。
【図面の簡単な説明】
【００１８】
【図１】ロボットシステム１の構成の一例を示す図である。
【図２】センターサーバ装置１０の機能構成の一例を示す図である。
【図３】エッジサーバ装置１００の機能構成の一例を示す図である。
【図４】ロボット装置２００の機能構成の一例を示す図である。
【図５】人がはんだ付けを行う様子が撮像された作業画像の一例を示す図である。
【図６】第１作業画像および第２作業画像に基づく作業の習得について説明するための図である。
【図７】ロボット装置２００により実行される処理の流れを示すフローチャートである。
【図８】第１教示情報２６６Ａの内容の一例を示す図である。
【図９】第１教示情報２６６Ｂが生成される場面の一例を示す図である。
【図１０】ロボット装置２００が技能を習得する処理の流れの一例を示すフローチャートである。
【図１１】管理者が行う処理の流れの一例を示すフローチャートである。
【図１２】ロボット装置２００が対応できない周辺環境が発生した場合に実行される処理の流れの一例を示すフローチャートである。
【図１３】エッジサーバ装置１００により実行される技能向上のための情報を提供する際に行われる処理の流れの一例を示すフローチャートである。
【図１４】管理情報１３０の内容の一例を示す図である。
【図１５】センターサーバ装置１０により実行される技能向上のための情報を提供する際に行われる処理の流れの一例を示すフローチャートである。
【図１６】第２実施形態のロボット装置２００がティーチングを行う場面の一例を示す図である。
【図１７】第２実施形態のロボット装置２００Ａの機能構成の一例を示す図である。
【図１８】第２実施形態のロボット装置２００Ａにより実行される処理の流れの一例を示すフローチャートである。
【図１９】第２実施形態のロボット装置２００Ａにより実行される処理の流れの他の一例を示すフローチャートである。
【図２０】ロボット装置２００が、習得した技能に基づいて部品を作成する場面の一例を示す図である。
【図２１】エッジサーバ装置１００により実行される処理の流れの一例を示すフローチャートである。
【図２２】実施形態のロボット装置２００のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照し、本発明のロボット装置、ロボットシステム、ロボット制御方法、およびプログラムの実施形態について説明する。
【００２０】
＜第１実施形態＞
図１は、ロボットシステム１の構成の一例を示す図である。ロボットシステム１は、例えば、一以上のセンターサーバ装置１０と、一以上のエッジサーバ装置１００（例えば１００Ａ、１００Ｂ）と、一以上のロボット装置（２００Ａ−１〜２００Ａ−３、２００Ｂ−１〜２００Ｂ−３）とを備える。
【００２１】
センターサーバ装置１０と、エッジサーバ装置１００とは、ネットワークＮＷを介して互いに通信する。ネットワークＮＷは、例えば、インターネット、ＷＡＮ（Wide Area Network）、ＬＡＮ（Local Area Network）、プロバイダ装置、無線基地局などを含む。
【００２２】
エッジサーバ装置１００Ａ、およびロボット装置２００Ａ−１〜２００Ａ−３は、施設Ｆ１に設けられている。エッジサーバ装置１００Ａと、ロボット装置２００Ａ−１〜２００Ａ−３とは、例えば、無線通信を行う。また、ロボット装置２００Ａ−１〜２００Ａ−３のそれぞれは、互いに無線通信を行う。
【００２３】
エッジサーバ装置１００Ｂ、およびロボット装置２００Ｂ−１〜２００Ｂ−３は、施設Ｆ２に設けられている。エッジサーバ装置１００Ｂと、ロボット装置２００Ｂ−１〜２００Ｂ−３とは、例えば、無線通信を行う。また、ロボット装置２００Ｂ−１〜２００Ｂ−３のそれぞれは、互いに無線通信を行う。
【００２４】
以下、エッジサーバ装置１００Ａと、エッジサーバ装置１００Ｂとを区別しない場合は、単に「エッジサーバ装置１００」と称し、ロボット装置２００Ａ−１〜２００Ａ−３と、ロボット装置２００Ｂ−１〜２００Ｂ−３とを区別しない場合は、単に「ロボット装置２００」と称する。
【００２５】
［センターサーバ装置］
図２は、センターサーバ装置１０の機能構成の一例を示す図である。センターサーバ装置１０は、例えば、センター側通信部１２と、センター側取得部１４と、センター側情報処理部１６と、センター側画像処理部１８と、センター側情報通知部２０と、記憶部３０とを備える。センター側取得部１４、センター側情報処理部１６、センター側画像処理部１８、およびセンター側情報通知部２０は、例えば、ＣＰＵ（Central Processing Unit）などのハードウェアプロセッサがプログラム（ソフトウェア）を実行することにより実現される。これらの構成要素のうち一部または全部は、ＬＳＩ（Large Scale Integration）やＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programmable Gate Array）、ＧＰＵ（Graphics Processing Unit）などのハードウェア（回路部；circuitryを含む）によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。プログラムは、予めＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの記憶装置（非一過性記憶媒体）に格納されていてもよいし、ＤＶＤやＣＤ−ＲＯＭなどの着脱可能な記憶媒体（非一過性記憶媒体）に格納されており、記憶媒体がドライブ装置に装着されることでインストールされてもよい。
【００２６】
記憶部３０は、例えば、ＨＤＤ、フラッシュメモリ、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）、ＲＯＭ（Read Only Memory）、またはＲＡＭ（Random Access Memory）等により実現される。
【００２７】
センター側通信部１２は、ネットワークＮＷを介してエッジサーバ装置１００と通信する通信ユニットである。
【００２８】
センター側取得部１４は、センター側通信部１２がエッジサーバ装置１００と通信して得られた情報を取得する。
【００２９】
センター側情報処理部１６は、エッジサーバ装置１００が取得した情報や生成した情報を管理する。
【００３０】
センター側情報通知部２０は、後述するロボット装置２００が所定の作業を行う指針を学習した場合に、所定の作業を行う指針を学習したことを示す情報をエッジサーバ装置１００に通知する。指針とは、ロボット装置２００が作業を行う際に用いる情報であって、例えば動作に関する情報である。
【００３１】
記憶部３０は、例えば、エッジサーバ装置１００により提供された情報（例えば第１教示情報３２、・・・第１０教示情報３４、・・・第２０教示情報３６）、および管理情報４０（詳細は後述）が記憶されている。
【００３２】
［エッジサーバ装置］
図３は、エッジサーバ装置１００の機能構成の一例を示す図である。エッジサーバ装置１００は、例えば、エッジ側通信部１０２と、エッジ側取得部１０４と、エッジ側情報処理部１０６と、エッジ側画像処理部１０８と、エッジ側情報要求部１１０と、エッジ側情報通知部１１２と、記憶部１２０とを備える。
【００３３】
エッジ側取得部１０４、エッジ側情報処理部１０６、エッジ側画像処理部１０８、エッジ側情報要求部１１０、およびエッジ側情報通知部１１２は、ＣＰＵなどのハードウェアプロセッサがプログラム（ソフトウェア）を実行することにより実現される。これらの構成要素のうち一部または全部は、ＬＳＩやＡＳＩＣ、ＦＰＧＡ、ＧＰＵなどのハードウェア（回路部）によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。プログラムは、予めＨＤＤやフラッシュメモリなどの記憶装置（非一過性記憶媒体）に格納されていてもよいし、ＤＶＤやＣＤ−ＲＯＭなどの着脱可能な記憶媒体（非一過性記憶媒体）に格納されており、記憶媒体がドライブ装置に装着されることでインストールされてもよい。
【００３４】
記憶部１２０は、例えば、ＨＤＤ、フラッシュメモリ、ＥＥＰＲＯＭ、ＲＯＭ、またはＲＡＭ等により実現される。
【００３５】
エッジ側通信部１０２は、無線通信を行って、ロボット装置２００と通信したり、ネットワークＮＷを介してセンターサーバ装置１０と通信したりする通信ユニットである。
【００３６】
エッジ側取得部１０４は、エッジ側通信部１０２がロボット装置２００またはセンターサーバ装置１０と通信して得られた情報を取得する。
【００３７】
エッジ側情報処理部１０６は、エッジサーバ装置１００が取得した情報や生成した情報を管理する。
【００３８】
エッジ側画像処理部１０８は、撮像部２０２により撮像された画像に対する所定の処理を行う。
【００３９】
エッジ側情報要求部１１０と、ロボット装置２００が対応できない作業が発生した場合に、その作業に対応するために用いる情報の提供をセンターサーバ装置１０または他のロボット装置２００に要求する。
【００４０】
エッジ側情報通知部１１２は、ロボット装置２００が所定の作業を行う指針を学習した場合に、所定の作業を行う指針を学習したことを示す情報をセンターサーバ装置１０または他のロボット装置２００に通知する。
【００４１】
記憶部１２０は、例えば、ロボット装置２００により提供された情報（例えば第１教示情報１２２、第２教示情報１２４、第３教示情報１２６）、および管理情報１３０（詳細は後述）が記憶されている。
【００４２】
［ロボット装置］
図４は、ロボット装置２００の機能構成の一例を示す図である。ロボット装置２００は、例えば、撮像部２０２と、右アーム部２０４と、左アーム部２０６と、移動用駆動部２０８と、制御装置２２０と、記憶部２５０とを備える。
【００４３】
撮像部２０２は、例えば、ＣＣＤ（Charge Coupled Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）等の固体撮像素子を利用したデジタルカメラである。撮像部２０２は、例えば、所定のタイミングでロボット装置２００の周辺を撮像する。撮像部２０２は、一台に限らず、複数台がロボット装置２００に設けられてもよい。
【００４４】
右アーム部２０４は、例えば、ロボット装置の右側付近に第１端部が接続された多関節ロボットアームである。左アーム部２０６は、例えば、ロボット装置の左側付近に第１端部が接続された多関節ロボットアームである。以下、右アーム部２０４と左アーム部２０６とを区別しない場合は、単に「アーム部」と称する。アーム部の第２端部は、所定の物を把持可能に構成されている。アーム部は、制御装置２２０の制御に基づいて駆動する。アーム部は、人の腕の動きと同等の動きが可能である。
【００４５】
移動用駆動部２０８は、ロボット装置２００が床面や地面を移動するための駆動部である。移動用駆動部２０８は、例えば、２つの脚部であってもよいし、タイヤやローラであってもよい。例えば、移動用駆動部２０８が脚部の場合、脚部は、制御装置２２０の制御に基づいて、ロボット装置２００を歩行させるように動作する。これによりロボット装置２００は、所望の方向に移動可能である。
【００４６】
制御装置２２０は、例えば、通信部２２２と、取得部２２４と、情報処理部２２６と、画像処理部２２８と、駆動制御部２３０と、学習部２３２と、情報要求部２３４とを備える。取得部２２４、情報処理部２２６、画像処理部２２８、駆動制御部２３０、学習部２３２、および情報要求部２３４は、例えば、ＣＰＵなどのハードウェアプロセッサがプログラム（ソフトウェア）を実行することにより実現される。これらの構成要素のうち一部または全部は、ＬＳＩやＡＳＩＣ、ＦＰＧＡ、ＧＰＵなどのハードウェア（回路部）によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。プログラムは、予めＨＤＤやフラッシュメモリなどの記憶装置（非一過性記憶媒体）に格納されていてもよいし、ＤＶＤやＣＤ−ＲＯＭなどの着脱可能な記憶媒体（非一過性記憶媒体）に格納されており、記憶媒体がドライブ装置に装着されることでインストールされてもよい。
【００４７】
記憶部２５０は、例えば、ＨＤＤ、フラッシュメモリ、ＥＥＰＲＯＭ、ＲＯＭ、またはＲＡＭ等により実現される。
【００４８】
通信部２２２は、例えば、無線通信を行って、他のロボット装置２００やエッジサーバ装置１００と通信する通信ユニットである。
【００４９】
取得部２２４は、第１作業と類似または関連する第２作業を行う指針となる第２教示情報を、第２教示情報を有する他の装置（ロボット装置２００、エッジサーバ装置１００、またはセンターサーバ装置１０）から取得する。
【００５０】
情報処理部２２６は、ロボット装置２００が取得した情報や生成した情報を管理する。
【００５１】
画像処理部２２８は、撮像部２０２により撮像された画像に対して所定の画像処理を行う。例えば、画像処理部２２８は、撮像部２０２により撮像された画像と、他の画像とが類似するか否かを判定する。画像処理部２２８や、他の機能部の処理の詳細については後述する。
【００５２】
駆動制御部２３０は、記憶部２５０に記憶された第１教示情報に基づいて第１作業および取得部２２４により取得された第２教示情報に基づいて第２作業を行う。
【００５３】
学習部２３２は、所定の作業を行う指針を学習する。
【００５４】
情報要求部２３４は、自装置が対応できない作業が発生した場合に、その作業に対応するために用いる情報の提供を他の装置に要求する。
【００５５】
情報提供部２３６は、学習部２３２が所定の作業を行う指針を学習した場合に、所定の作業を行う指針を学習したことを示す情報を他の装置に通知する。
【００５６】
記憶部２５０には、例えば、物体環境情報２６０や、学習対象情報２６２、基本動作情報２６４、第１教示情報２６６が記憶されている。これらの情報の詳細については後述する。
【００５７】
上記のロボット装置２００、エッジサーバ装置１００、センターサーバ装置１０の処理の一部または全部は、ＡＩ（Artificial Intelligence）技術によって実現されてもよい。また、ロボット装置２００、エッジサーバ装置１００、またはセンターサーバ装置１０に含まれる機能部または記憶部に記憶される情報のうち、一部または全部の機能部または情報は、他の装置に含まれてもよい。
【００５８】
［ロボット装置の動作］
以下のように、ロボット装置２００は、第１教示情報２６６を生成する。一例として、ロボット装置２００が、はんだ付けを行う作業を習得する例について説明する。
【００５９】
［画像の取得］
図５は、人がはんだ付けを行う様子が撮像された作業画像の一例を示す図である。ロボット装置２００は、センターサーバ装置１０や他の装置から作業画像を取得したり、自装置に接続された記憶媒体から作業画像を取得したりする。そして、ロボット装置２００は、取得した画像に基づいて作業を習得する。
【００６０】
まず、ロボット装置２００の画像処理部２２８が、パターンマッチング等の手法を用いて、作業画像に含まれる環境や物体等を認識する。画像処理部２２８は、例えば、物体環境情報２６０を参照して、作業画像に含まれる環境や物体等を認識する。物体環境情報２６０には、例えば、所定の環境や物体が撮像された画像から抽出された特徴量を含む。特徴量とは、画像の画素または画素群ごとの輝度に基づく情報である。
【００６１】
例えば、画像処理部２２８は、図５の上側の作業画像（ＩＭ１）において、人が、第１座標（例えばＸ１，Ｙ１，Ｚ１）において右手にはんだこてを持ち、第２座標において左手にはんだを持っていることを認識する。画像処理部２２８は、図５の下側の作業画像（ＩＭ２）において、人が、第３座標にはんだこてを移動させ、第４座標にはんだを移動させたことを認識する。
【００６２】
その後、画像処理部２２８は、不図示の作業画像において、はんだこての先端と、はんだの先端とを接触させて、はんだが部品Ｘの所定位置に溶着したことを認識する。そして、画像処理部２２８は、部品Ｘの所定位置の状態が所定の状態（例えば、はんだが適切に付与された状態）になった場合に、その部品に対する作業が終了したことを認識する。
【００６３】
例えば、画像処理部２２８は、第１作業画像における環境や、物体、物体の状態等（以下、周辺環境）、および第１作業画像の次のタイミングで撮像された第２作業画像における周辺環境を認識する。第１作業画像と第２作業画像とは、作業に関する技能を習得する際に用いられる学習対象情報２６２に含まれる画像である。
【００６４】
［技能の習得手法１］
図６は、第１作業画像および第２作業画像に基づく作業の習得について説明するための図である。ロボット装置２００は、第１作業画像および第２作業画像と、実際に撮像部２０２により撮像された画像とを用いて作業に関する技能を習得する。図６の画像ＩＭ１１Ａ、ＩＭ１１Ｂ、ＩＭ１３Ａ、ＩＭ１３Ｂは、学習対象情報２６２に含まれる画像であり、図６の画像ＩＭ１２Ａ、ＩＭ１２Ｂ、ＩＭ１４Ａ、ＩＭ１４Ｂは、撮像部２０２により撮像された画像である。
【００６５】
例えば、ロボット装置２００は、図６の上図に示すように、アーム部が駆動する前の駆動前の画像ＩＭ１２Ａを取得した場面において、この画像ＩＭ１２Ａに類似する画像ＩＭ１１Ａを特定し、特定した画像ＩＭ１１Ａに対応付けられた画像ＩＭ１１Ｂのようにはんだ付けを行うようにアーム部の駆動を制御するための駆動指令値を探索する。そして、ロボット装置２００は、探索結果に基づいて、画像ＩＭ１２Ａを取得した場面におけるアーム部を駆動させるための駆動力指令値を取得する。
【００６６】
これにより、ロボット装置２００は、例えば、画像ＩＭ１２Ａを取得した場合に、アーム部を駆動させて、はんだが不十分な領域に、はんだを付与することができる。画像ＩＭ１２Ｂはアーム部によりはんだが付与された状態の画像である。このように、ロボット装置２００は、所定の場面におけるはんだ付けの作業を習得する。
【００６７】
同様に、例えば、ロボット装置２００は、図６の下図に示すように、アーム部が駆動する前の駆動前の画像ＩＭ１４Ａを取得した場面において、この画像ＩＭ１４Ａに類似する画像ＩＭ１３Ａを特定し、特定した画像ＩＭ１３Ａに対応付けられた画像ＩＭ１３Ｂのようにはんだ付けを行うようにアーム部の駆動を制御するための駆動指令値を探索し、探索結果に基づいて、画像ＩＭ１４Ａを取得した場面におけるアーム部を駆動させるための駆動力指令値を取得する。
【００６８】
［フローチャート］
図７は、ロボット装置２００により実行される処理の流れを示すフローチャートである。まず、情報処理部２２６が、学習対象情報２６２を取得する（ステップＳ１００）。すなわち情報処理部２２６が、複数の、第１作業画像と第２作業画像との組み合わせを取得する。
【００６９】
次に、画像処理部２２８は、撮像部２０２により撮像された画像（以下、駆動前の画像）を取得する（ステップＳ１０２）。次に、画像処理部２２８は、基本動作情報２６４を参照して、取得した駆動前の画像が分類されるパターンに対応付けられた駆動指令値（駆動前の画像に応じた指令値）を取得する（ステップＳ１０４）。
【００７０】
基本動作情報２６４には、複数の画像を所定のパターンに分類したパターン１〜Ｎ（「Ｎ」は任意の自然数）と、パターン１〜Ｎのそれぞれに対応付けられたアーム部を動作させるための駆動指令値１〜ｎ（「ｎ」は任意の自然数）とが互いに対応付けられている。駆動制御部２３０は、例えば、画像がパターン１に該当すると判定した場合、パターン１に対応付けらえた駆動指令値１に基づいてアーム部を駆動させる。基本動作情報２６４は、習得手法１、または後述する習得手法２〜４のいずれかの手法に基づいて習得された情報であってもよいし、予め取得された情報であってもよい。
【００７１】
次に、駆動制御部２３０が、取得した駆動指令値に基づいてアーム部を駆動させる（ステップＳ１０６）。次に、画像処理部２２８が、撮像部２０２により撮像された駆動後の画像を取得する（ステップＳ１０８）。次に、画像処理部２２８は、駆動前の画像に類似する第１作業画像を取得し、第１作業画像に対応付けられた第２作業画像を取得する（ステップＳ１１０）。次に、画像処理部２２８は、ステップＳ１０８の駆動画像とステップＳ１１０の第２作業画像とが合致するか否かを判定する（ステップＳ１１２）。
【００７２】
ステップＳ１０８の駆動画像とステップＳ１１０の第２作業画像とが合致する場合、学習部２３２が、駆動前の画像、駆動後の画像、および駆動指令値を互いに対応付けた第１教示情報２６６を記憶部２５０に記憶させる（ステップＳ１１４）。
【００７３】
ステップＳ１１２で駆動画像と第２作業画像とが合致しない場合、駆動制御部２３０は、所定の基準に基づいて駆動指令値を変更して、アーム部を駆動させる（ステップＳ１１６）。なお、ステップＳ１１６でアーム部を駆動させる前に、ステップＳ１０６の処理前と同様の環境（はんだ対象物体の状態）が再現されるものとする。その後、ステップＳ１０８の処理に戻る。
【００７４】
また、ステップＳ１１２でステップＳ１０８の駆動画像とステップＳ１１０の第２作業画像とが合致しない場合、ステップ１０２の処理が行われてもよい。これにより、ステップ１０６の処理でアーム部が駆動し、物体が変化した後の物体に対して、上述したような処理が行われる。
【００７５】
ステップＳ１１４の処理後、情報処理部２２６が、所定度合の第１教示情報２６６が記憶部２５０に記憶されたか否かを判定する（ステップＳ１１８）。所定度合とは、例えば駆動前の画像、駆動後の画像、および駆動指令値の組み合わせの数が所定数であることである。
【００７６】
所定度合の第１教示情報２６６が記憶部２５０に記憶されていない場合、ステップＳ１０２の処理に進む。所定度合の第１教示情報２６６が記憶部２５０に記憶された場合、情報提供部２３６が、他のロボット装置２００またはエッジサーバ装置１００に教示情報がアップデートされたことを通知する（ステップＳ１２０）。
【００７７】
次に、情報提供部２３６が、他のロボット装置２００から所定時間以内に第１教示情報の提供の要求が送信されたか否かを判定する（ステップＳ１２２）。他のロボット装置２００から所定時間以内に第１教示情報２６６の提供の要求が送信された場合、情報提供部２３６が、第１教示情報２６６を要求元に送信する（ステップＳ１２４）。これにより、本フローチャートの１ルーチンは終了する。
【００７８】
上述したように、ロボット装置２００は、新たな技能を習得することができる。また、ロボット装置２００は、新たな習得した技能を他の装置に提供することができる。このように、ロボット装置２００は、能力をより簡便に向上させることができる。そして、ロボット装置２００は、習得した技能を用いて自律的に作業を行うことができる。なお、上記例では、はんだづけに関する技能の習得について説明したが、上記の例に限られず、例えば配線や組み立てに関する技能の習得、知識を教授する技法の習得、その他の技能の習得する際に上述した例が適用されてもよい。
【００７９】
また、作業に関する技能の習得は、以下のようにされてもよい。
［技能の習得手法２］
例えば、ロボット装置２００は、周辺環境と駆動指令値のシナリオとが対応付けられた第１教示情報２６６Ａを取得することで作業に関する技能を習得してもよい。図８は、第１教示情報２６６Ａの内容の一例を示す図である。第１教示情報２６６Ａは、周辺環境を示す画像と、その周辺環境におけるアーム部の動作に応じた駆動指令値のシナリオとが互いに対応付けられた情報である。例えば、ロボット装置２００は、例えば、前述した図６の画像ＩＭ１２Ａに応じた周辺環境において、第１教示情報２６６Ａに対応付けられた画像ＩＭ１２Ａに類似する画像ＩＭ１１Ａを特定する。そして、ロボット装置２００は、特定した画像に対応付けられた駆動指令値のシナリオに従って動作することで、はんだづけを完成させることができる。
【００８０】
［技能の習得手法３］
例えば、ロボット装置２００は、人がアーム部に対して行った動作と、そのときの周辺環境が撮像された画像とを対応付けた情報（ダイレクトティーチングに基づく教示情報）を第１教示情報２６６Ｂとして記憶部２５０に記憶させてもよい。
【００８１】
図９は、第１教示情報２６６Ｂが生成される場面の一例を示す図である。例えば、人が、そのときの周辺環境において最適なアーム部の動作をガイドする。学習部２３２が、ガイドされた際にアーム部に加えられた力およびその方向に基づく駆動指令値と、ガイドされた際の周辺環境を含む画像とを対応付けた情報を第１教示情報２６６Ｂとして記憶部２５０に記憶させる。これにより、ロボット装置２００は、第１教示情報２６６Ｂに基づいて、所定の周辺環境における駆動指令値を取得することができる。
【００８２】
なお、人は、アーム部に力を加えてガイドすることに代えて、声でロボット装置２００に指示して、第１教示情報２６６Ｂを生成させてもよい。この場合、ロボット装置２００の記憶部２５０には、音声とアーム部の動作とが対応付けられた対応情報が記憶される。ロボット装置２００は、人の音声がマイクに入力されると、対応情報を参照して、入力された音声をアーム部の駆動指令値に変換し、変換した駆動指令値に基づいてアーム部を駆動させる。そして、ロボット装置２００は、周辺環境と、その周辺環境における駆動指令値との関係を学習する。
【００８３】
［技能の習得手法４］
ロボット装置２００は、他のロボット装置２００またはエッジサーバ装置１００により取得された情報に基づいて、新たな技能を習得してもよい。図１０は、ロボット装置２００が技能を習得する処理の流れの一例を示すフローチャートである。
【００８４】
まず、情報処理部２２６が、他のロボット装置２００からアップデート通知を取得したか否かを判定する（ステップＳ１５０）。アップデート通知を取得した場合、情報処理部２２６は、アップデート条件を満たすか否かを判定する（ステップＳ１５２）。アップデート条件とは、アップデートに要すると推定される時間が確保できること（例えばアップデートに要すると推定される時間の間、作業を中断することができること）や、アップデートに関する技能が必要であると推定されること等である。
【００８５】
例えば、情報処理部２２６は、アップデート通知に含まれる技能の種別や識別情報を取得し、取得した種別や識別情報と、自装置の記憶部２５０に記憶されている種別や識別情報とを比較し、これらが類似または関連している場合、アップデートに関する技能が必要であると判定する。類似または関連するとは、例えば、行う作業の種類が同じであることや、異なる作業であるが、所定の商品の製造に関するなど関連性が高いことである。
【００８６】
アップデート条件を満たす場合、情報要求部２３４が、アップデートされた技能を向上させるための情報の送信を要求し、アップデート通知元から要求した情報を取得する（ステップＳ１５４）。技能を向上させるための情報とは、例えば、第１作業画像、第２作業画像、および駆動指令値の組み合わせである。この駆動指令値は、第１作業画像が取得された際に第２作業画像に含まれる周辺環境の状態になるようにロボット装置２００に作業をさせるためにアーム部を駆動させる指令値である。アップデート条件を満たさない場合、情報要求部２３４は、アップデートされた技能を向上させるための情報の送信を要求しない（ステップＳ１５６）。この場合、情報要求部２３４は、後にアップデート通知元から技能を向上させるための情報を取得してもよい。これにより、本フローチャートの１ルーチンの処理は終了する。
【００８７】
例えば、ロボット装置２００が、ダイレクトティーチングに基づく教示情報を基本動作情報（基準情報）として記憶部２５０に記憶し、この基準情報に基づいて作業を行う。また、アップデート通知は、他のロボット装置２００においてダイレクトティーチングに基づく教示情報が更新されたことを示す通知である。ロボット装置２００が、ダイレクトティーチングに基づく教示情報が更新されたことを示すアップデート通知を取得した場合、取得したアップデート通知に対応するダイレクトティーチングに基づく教示情報を、他のロボット装置２００またはエッジサーバ装置２００から取得し、取得したダイレクトティーチングに基づく教示情報を基準情報に対する追加情報とし、教示情報を更新する。
【００８８】
上述した処理により、ロボット装置２００は、種々の方法に基づいて、新たな技能を習得することができる。この結果、ロボット装置２００は、能力をより簡便に向上させることができる。
【００８９】
［管理者による処理］
ロボット装置２００の管理者は、ロボット装置２００に技能（または作業）を習得させた後、習得レベルをチェックし、更に技能を改善させてもよい。図１１は、管理者が行う処理の流れの一例を示すフローチャートである。まず、管理者は、ロボット装置２００に習得させる技能（または仕事）を設定する（ステップＳ２００）。次に、管理者は、設定した技能（または技能に含まれる要素）をロボット装置２００に習得させる（ステップＳ２０２）。次に、管理者は、習得させた技能の習得レベルをチェックする（ステップＳ２０４）。例えば、管理者は、ロボット装置２００が行った作業結果に基づいて習得レベルをチェックする。
【００９０】
次に、管理者は、習得レベルのチェック結果に基づいて、作業に関するフィードバックを行う（ステップＳ２０６）。ここで、フィードバックとは、例えば、習得できていない状況（対応不十分な環境）を抽出し、その抽出した状況における動作を習得させることである。例えば、前述した図６を例とすると、画像ＩＭ１２Ａの周辺環境においては、はんだつけがうまくできるが、画像ＩＭ１４Ａの周辺環境においては、はんだつけがうまくできない場合、管理者は、画像ＩＭ１４Ａの周辺環境におけるアーム部の動作をロボット装置２００に学習させる。
【００９１】
［対応できない周辺環境が発生した場合の処理］
図１２は、ロボット装置２００が対応できない周辺環境が発生した場合に実行される処理の流れの一例を示すフローチャートである。以下、ロボット装置２００が、作業（例えば、はんだ付け）を行う場合の処理の一例について説明する。
【００９２】
まず、ロボット装置２００の画像処理部２２８が、画像ＩＭ１５Ａを取得し、第１教示情報２６６において、画像ＩＭ１５Ａに類似する画像を特定する（ステップＳ３００）。次に、駆動制御部２３０は、第１教示情報２６６を参照して、特定された特定画像に対応付けられた駆動力指令値を取得し、取得した駆動力指令値に基づいてアーム部を駆動させる（ステップＳ３０２）。これにより、作業が行われ画像ＩＭ１５Ｂのような結果に至る。
【００９３】
次に、画像処理部２２８が、画像ＩＭ１６Ｘを取得し、第１教示情報２６６において、画像ＩＭ１６Ｘに類似する特定画像を特定することを試行する（ステップＳ３０４）。しかしながら、画像処理部２２８は、画像ＩＭ１６Ｘに類似する画像を特定することができなかったものとする。すなわち、ロボット装置２００は、画像ＩＭ１６Ｘに対応する周辺環境における動作については習得していないものとする。この場合、周辺環境に対応できないため、情報要求部２３４は、画像ＩＭ１６Ｘに対応する周辺環境に対応するための駆動指令値などの動作に関する情報（技能向上のための情報）の提供を他の装置に要求する。
【００９４】
まず、情報要求部２３４は、他のロボット装置２００に画像ＩＭ１６Ｘの周辺環境に対応するための情報（技能向上に関する情報）を保持しているか否かを問い合わせる（ステップＳ３０６）。次に、情報要求部２３４が、他のロボット装置２００から問い合わせ結果を取得する（ステップＳ３０８）。次に、情報要求部２３４が、問い合わせ結果に基づいて、他のロボット装置２００が画像ＩＭ１６Ｘの周辺環境に対応するための情報を保持していたか否かを判定する（ステップＳ３１０）。
【００９５】
画像ＩＭ１６Ｘの周辺環境に対応するための情報を保持していないと判定した場合、情報要求部２３４は、エッジサーバ装置１００に画像ＩＭ１６Ｘの周辺環境に対応するための情報を保持しているか否かを問い合わせる（ステップＳ３１２）。次に、情報要求部２３４が、エッジサーバ装置１００から問い合わせ結果を取得する（ステップＳ３１４）。ここでは、情報要求部２３４が、画像ＩＭ１６Ｘの周辺環境に対応するための情報を取得したものとする。取得した画像ＩＭ１６Ｘの周辺環境に対応するための情報とは、例えば、画像ＩＭ１１Ｘにおける周辺環境においてアーム部を動作させるための駆動指令値または駆動指令値のシナリオである。次に、駆動制御部２３０が、画像ＩＭ１６Ｘの周辺環境に対応するための情報に基づいて、アーム部を駆動させる（ステップＳ３１６）。これにより、作業が行われ画像ＩＭ１６ＸＸに示すように作業が完了する。
【００９６】
例えば、ロボット装置２００が、ダイレクトティーチングに基づく教示情報を基本動作情報（基準情報）として記憶部２５０に記憶しているものとする。そして、ロボット装置２００が、この基準情報に基づいて作業を行っている際に、対応できない事象が発生した場合、上記のフローチャートの処理のように、他のロボット装置２００やエッジサーバ装置１００に問い合わせを行い、対応できない事象に対して対応するための教示情報を取得する。例えば、この教示情報は、他のロボット装置２００が、取得したダイレクトティーチングに基づく情報である。そして、ロボット装置２００は、取得した対応できない事象に対して対応するための教示情報を基準情報に対する追加情報とし、教示情報を更新する。
【００９７】
上述したように、ロボット装置２００は、未習得の技能が必要な場合であっても、他の装置から技能を向上させるための情報を取得し、取得した情報に基づいて周辺環境に応じた動作を行うことができる。なお、ロボット装置２００は、対応できない作業について、近くの人に問い合わせてもよい。そして、人による言葉のアドレスや身振りによるアドバイス、ガイドにより、ロボット装置２００は、対応できない作業について対応してもよい。
【００９８】
［エッジサーバ装置における技能の向上のための情報の提供］
図１３は、エッジサーバ装置１００により実行される技能向上のための情報を提供する際に行われる処理の流れの一例を示すフローチャートである。まず、エッジ側取得部１０４が、ロボット装置２００から技能向上のための情報に関する問い合わせを取得したか否かを判定する（ステップＳ４００）。
【００９９】
ロボット装置２００から技能向上のための情報に関する問い合わせを取得した場合、エッジ側情報処理部１０６が、問い合わせのあった技能向上のための情報を保持しているか否かを判定する（ステップＳ４０２）。例えば、エッジ側情報処理部１０６は、ロボット装置２００から対応したい周辺環境の画像、およびロボット装置２００の識別情報を取得する。エッジ側画像処理部１０８が、管理情報１３０を参照して、ロボット装置２００から取得した周辺環境の画像に類似する画像を特定することができるか否かを判定する。エッジ側情報処理部１０６は、ロボット装置２００から取得した周辺環境の画像に類似する画像を特定することができると判定した場合、問い合わせのあった技能向上のための情報を保持していると判定する。
【０１００】
図１４は、管理情報１３０の内容の一例を示す図である。管理情報１３０は、例えば、周辺環境の画像と、駆動指令値と、開示範囲とが互いに対応付けられた情報である。開示範囲とは、開示範囲に制限がないことや、権限Ａを有する装置に開示可能であることなどである。
【０１０１】
ステップＳ４０２において技能向上のための情報を保持していると判定した場合、エッジ側情報処理部１０６は、管理情報１３０を参照して、問い合わせ先のロボット装置２００が技能向上のための情報を得る権限を有するか否かを判定する（ステップＳ４０４）。エッジ側情報処理部１０６は、エッジ側画像処理部１０８により特定された管理情報１３０の周辺環境の画像に対応付けられた駆動指令値と開示範囲とを特定する。エッジ側情報処理部１０６は、不図示の権限情報を参照して、問い合わせを行ったロボット装置２００が技能向上のための情報を開示対象であるか否かを判定する。権限情報とは、ロボット装置２００の識別情報と、権限とが互いに対応付けられた情報である。
【０１０２】
問い合わせを行ったロボット装置２００が技能向上のための情報が開示される権限を有すると判定した場合（機密情報でないと判定した場合）、エッジ側情報処理部１０６は、問い合わせに応じた駆動指令値をロボット装置２００に送信する（ステップＳ４０６）。
【０１０３】
問い合わせを行ったロボット装置２００が技能向上のための情報が開示される権限を有さないと判定した場合、エッジ側情報処理部１０６は、技能向上のための情報を取得する権限を有さないことを示す情報をロボット装置２００に送信する（ステップＳ４０８）。
【０１０４】
ステップＳ４０２において問い合わせのあった技能向上のための情報を保持していないと判定した場合、エッジ側情報要求部１１０は、ロボット装置２００から問い合わせがあった技能向上のための情報を保持しているか他の装置（他のエッジサーバ装置１００、センターサーバ装置１０）に問い合わせる（ステップＳ４１０）。エッジ側情報要求部１１０は、問い合わせ結果を取得したか否かを判定する（ステップＳ４１２）。
【０１０５】
問い合わせ結果を取得した場合、エッジ側情報通知部１１２は、問い合わせ結果をロボット装置２００に送信する（ステップＳ４１４）。例えば、技能向上のための情報を取得した場合は、この情報がロボット装置２００に送信され、技能向上のための情報を取得しなかった場合は、技能向上のための情報が取得されなかったことがロボット装置２００に送信される。これにより、本フローチャートの１ルーチンの処理は終了する。
【０１０６】
上述した処理により、エッジサーバ装置１００が、センターサーバ装置１０に技能向上のための情報を有しているか否かを問い合わせる。そして、センターサーバ装置１０が、その情報を有している場合は、エッジサーバ装置１００は、ロボット装置２００にセンターサーバ装置１０から取得した情報を送信する。これにより、ロボット装置２００は、能力をより簡便に向上させることができる。
【０１０７】
［センターサーバ装置における技能の向上のための情報の提供］
図１５は、センターサーバ装置１０により実行される技能向上のための情報を提供する際に行われる処理の流れの一例を示すフローチャートである。まず、センター側取得部１４が、エッジサーバ装置１００から技能向上のための情報に関する問い合わせを取得したか否かを判定する（ステップＳ５００）。
【０１０８】
エッジサーバ装置１００から技能向上のための情報に関する問い合わせを取得した場合、センター側情報処理部１６が、問い合わせのあった技能向上のための情報を保持しているか否かを判定する（ステップＳ５０２）。例えば、センター側情報処理部１６は、エッジサーバ装置１００から対応したい周辺環境の画像、およびエッジサーバ装置１００（または問い合わせを行ったロボット装置２００）の識別情報を取得する。センター側画像処理部１８が、管理情報４０を参照して、エッジサーバ装置１００から取得した周辺環境の画像に類似する画像を特定することができるか否かを判定する。管理情報４０は、例えば、周辺環境の画像と、駆動指令値と、開示範囲とが互いに対応付けられた情報である。開示範囲は、エッジサーバ装置１００の識別情報またはロボット装置２００の識別情報ごとに設定されている。
【０１０９】
センター側情報処理部１６は、エッジサーバ装置１００から取得した周辺環境の画像に類似する画像を特定することができると判定した場合、問い合わせのあった技能向上のための情報を保持していると判定する。ステップＳ５０４において、エッジ側情報処理部１０６は、管理情報４０を参照して、問い合わせ先のエッジサーバ装置１００（または問い合わせを行ったロボット装置２００）が技能向上のための情報を得る権限を有するか否かを判定する（ステップＳ５０４）。
【０１１０】
センター側情報処理部１６は、センター側画像処理部１８により特定された管理情報４０の周辺環境の画像に対応付けられた駆動指令値と開示範囲とを特定する。センター側情報処理部１６は、不図示の権限情報を参照して、問い合わせを行ったエッジサーバ装置１００（または問い合わせを行ったロボット装置２００）が技能向上のための情報を開示対象であるか否かを判定する。権限情報とは、センターサーバ装置１０（またはロボット装置２００）の識別情報と、権限とが互いに対応付けられた情報である。
【０１１１】
問い合わせを行ったエッジサーバ装置１００（またはロボット装置２００）が技能向上のための情報が開示される権限を有すると判定した場合、センター側情報処理部１６は、問い合わせに応じた駆動指令値をエッジサーバ装置１００に送信する（ステップＳ５０６）。
【０１１２】
問い合わせを行ったロボット装置２００が技能向上のための情報が開示される権限を有さないと判定した場合、センター側情報処理部１６は、技能向上のための情報を取得する権限を有さないことを示す情報をエッジサーバ装置１００に送信する（ステップＳ５０８）。
【０１１３】
ステップＳ５０２において問い合わせのあった技能向上のための情報を保持していないと判定した場合、センター側情報処理部１６は、問い合わせがあった技能向上のための情報を保持していないことを示す情報をエッジサーバ装置１００に送信する（ステップＳ５１０）。これにより、本フローチャートの１ルーチンの処理は終了する。
【０１１４】
上述した処理により、ロボット装置２００は、センターサーバ装置１０から技能向上のための情報を取得することができるため、能力をより簡便に向上させることができる。
【０１１５】
なお、上記例では、ロボット装置２００が、画像を他のロボット装置２００やエッジサーバ装置１００に送信して、技能向上のための情報を取得したが、これに代えて、音声やテキストで技能向上のための情報を有しているかを問い合わせてもよい。例えば、複数の部品を組み合わせて、製品を作成する場合、ロボット装置２００は、部品Ａと部品Ｂとは、「どうやって接続すればいい？」と問い合わせ、問い合わせ結果を他の装置から取得する。例えば、ロボット装置２００が、「部品ＡのＡコネクタと部品ＢのＢコネクタとを接続し、・・・する」との回答を得た場合、ロボット装置２００は、その回答の意味を理解して作業を行う。
【０１１６】
また、本実施形態では、ロボット装置２００は、対応できない作業が生じた場合に、他の装置に対応方法を問い合わせる。例えば、各ロボット装置２００が、ロボット装置２００またはエッジサーバ装置１００が保持する技能に関する情報を共有することもできるが、これにより（１）不用意な機密情報の漏洩に繋がったり、（２）ロボット装置２００の記憶容量の増大に繋がったりすることがある。
【０１１７】
これに対し本実施形態では、ロボット装置２００が、すべての情報を共有せずに、対応できない周辺環境に遭遇した場合に、対応方法について確認を行う。これにより、不用意な機密情報の漏洩を防止し、更に記憶容量の増大を抑制することができる。但し、本実施形態では、同じ施設や、同じ事業所、同じ作業場に属するロボット装置２００が有する情報は共有されてもよい。この場合、不用意な機密情報の漏洩を防止し、更に記憶容量の増大を抑制しつつ、自装置が行う作業に対する適用力を向上させることができる。
【０１１８】
以上説明した第１実施形態によれば、ロボット装置２００は、第１作業と類似または関連する第２作業を行う指針となる第２教示情報を、第２教示情報を有する他の装置から取得し、記憶部２５０に記憶された第１教示情報に基づいて第１作業および取得された第２教示情報に基づいて前記第２作業を行う。これにより、ロボット装置２００は、能力をより簡便に向上させることができる。
【０１１９】
＜第２実施形態＞
以下、第２実施形態について説明する。第２実施形態では、ロボット装置２００が人に作業に関してティーチングを行う。以下、第１実施形態との相違点を中心について説明する。
【０１２０】
図１６は、第２実施形態のロボット装置２００がティーチングを行う場面の一例を示す図である。例えば、ロボット装置２００は、所定の作業が完了するようにアーム部で人の腕をガイドして、人に対するティーチングを行う。例えば、ロボット装置２００が、人にはんだ付けをティーチングする場合、部品にはんだが所定の状態で付与されるように、はんだこてを持った人の右腕と、はんだを持った人の左腕とをアーム部でガイドして、はんだこての先端とはんだの先端とを、所定時間、接触させてはんだが適切に部品に付与されるようにティーチングを行う。ティーチングは、例えば、第１実施形態の技能の習得する処理を応用した処理である。
【０１２１】
例えば、ロボット装置２００は、現在の周辺環境の画像を取得し、取得した画像に類似する第１作業画像を特定する。ロボット装置２００は、特定した第１作業画像に対応する第２作業画像を取得し、人の腕や人が保持している道具等が、第２作業画像に合致するように人の腕等をガイドする。例えば、ロボット装置２００は、後述する第１ティーチング情報に基づいて、はんだこての先端とはんだの先端とを近づかせ、先端同士が接触するようにアーム部を動作させ人の腕を動かす。
【０１２２】
この際、ロボット装置２００は、第１ティーチング情報の駆動指令値に基づいてアーム部を動作させた時の人の腕の移動量や移動方向を導出し、上記の移動量や移動方向に基づいて、次の処理で用いる第２駆動指令値を導出し、導出した第２駆動指令値に基づいてアーム部を動作させる。これにより、ロボット装置２００は、人の腕が想定した動作に合致するように人の特性に合わせガイド量を変更する。これを繰り返すことで、人がはんだ付けの作業を完了できるようにティーチングが行われる。
【０１２３】
なお、ロボット装置２００は、音声によるガイドや、ロボット装置２００に設けられた表示部（不図示）に作業の見本となる画像を表示させることでティーチングを行ってもよい。
【０１２４】
図１７は、第２実施形態のロボット装置２００Ａの機能構成の一例を示す図である。ロボット装置２００Ａは、第１実施形態のロボット装置２００の学習部２３２、および記憶部２５０に代えて、学習部２３２Ａ、および記憶部２５０Ａを備える。記憶部２５０Ａは、記憶部２５０に記憶された情報に加え、第１ティーチング情報２８０が記憶される。この第１ティーチング情報２８０は、学習部２３２Ａにより生成される。
【０１２５】
学習部２３２Ａは、第１作業画像および第２作業画像における人の動きを学習し、学習結果に基づいて第１ティーチング情報２８０を生成する。例えば、学習部２３２Ａは、第１作業画像における人が持っているはんだこてとはんだとの位置と、第２作業画像における人が持っているはんだこてとはんだとの位置とに基づいて、はんだこてとはんだとの移動量および移動方向とを導出する。また、学習部２３２Ａは、所定のアルゴリズムに基づいて、導出した移動量および移動方向に対するアーム部を動作させるための駆動指令値（例えばアーム部に人の腕をガイドさせるための駆動指令値）を導出する。そして、学習部２３２Ａは、導出した移動量および移動方向と駆動指令値とを第１作業画像および第２作業画像に対応付けた情報を第１ティーチング情報２８０として記憶部２５０Ａに記憶させる。
【０１２６】
また、ロボット装置２００Ａは、更に教授部２３３を備える。教授部２３３は、第１ティーチング情報２８０に基づいて、人に技能をティーチングする。例えば、教授部２３３は、人の腕をガイドして適切に作業を行わせるように、駆動制御部２３０を介して、アーム部を制御する。
【０１２７】
［人に技能を習得させる処理］
図１８は、第２実施形態のロボット装置２００Ａにより実行される処理の流れの一例を示すフローチャートである。本フローチャートの処理は、図１６のようにロボット装置２００が人にティーチングを行っている際に実行される。
【０１２８】
まず、ロボット装置２００の画像処理部２２８が、画像ＩＭ２１Ａを取得し、第１ティーチング情報２８０において、画像ＩＭ２１Ａに類似する特定画像を特定する（ステップＳ６００）。画像ＩＭ２１Ａは、ロボット装置２００の撮像部２０２により撮像された、現在の周辺環境が撮像された画像である。
【０１２９】
次に、駆動制御部２３０は、第１ティーチング情報２８０を参照して、特定画像に対応付けられた駆動力指令値を取得し、取得した駆動力指令値に基づいてアーム部を駆動させる（ステップＳ６０２）。例えば、駆動制御部２３０は、アーム部が人の腕をつかんだ状態でアーム部を駆動させ、人の腕をガイドする。これにより、人により作業が行われ画像ＩＭ２１Ｂに示すように作業が完成する。
【０１３０】
次に、画像処理部２２８が、画像ＩＭ２１Ｘを取得し、第１ティーチング情報２８０において、画像ＩＭ２１Ｘに類似する特定画像を特定することを試行する（ステップＳ６０４）。しかしながら、画像処理部２２８は、画像ＩＭ２１Ｘに類似する特定画像を特定することができなかったものとする。すなわち、ロボット装置２００は、画像ＩＭ２１Ｘに対応する周辺環境における動作についてはティーチング情報を有していないものとする。この場合、周辺環境に対応できないため、情報要求部２３４は、画像ＩＭ２１Ｘに対応する周辺環境に対応するための駆動指令値などのティーチングに関する情報の提供を他の装置に要求する。
【０１３１】
まず、情報要求部２３４は、他のロボット装置２００にティーチングための情報を保持しているか否かを問い合わせる（ステップＳ６０６）。すなわち、情報要求部２３４は、教授できない作業に対する対応方法を確認する。次に、情報要求部２３４が、他のロボット装置２００から問い合わせ結果を取得する（ステップＳ６０８）。次に、情報要求部２３４が、問い合わせ結果に基づいて、他のロボット装置２００がティーチングのための情報を保持していたか否かを判定する（ステップＳ６１０）。
【０１３２】
ティーチングのための情報を保持していないと判定した場合、情報要求部２３４は、エッジサーバ装置１００にティーチングのための情報を保持しているか否かを問い合わせる（ステップＳ６１２）。次に、情報要求部２３４が、エッジサーバ装置１００から問い合わせ結果を取得する（ステップＳ６１４）。ここでは、情報要求部２３４が、ティーチングのための情報を取得したものとする。取得したティーチングのための情報（新たに取得した教授できない作業を教授するための教授情報）とは、例えば、画像ＩＭ２１Ｘにおける周辺環境においてアーム部を動作させて、人の腕をガイドするための駆動指令値または駆動指令値のシナリオである。学習部２３２Ａは、駆動指令値または駆動指令値のシナリオを取得し、教授できない作業に対する対応方法を学習する。学習とは、例えば、学習部２３２Ａが、取得したシナリオをティーチング情報として記憶部２５０Ａに記憶させることである。
【０１３３】
次に、教授部２３３が、ティーチングのための情報に基づいて、アーム部を駆動させ人の腕をガイドする（ステップＳ６１６）。すなわち、教授部２３３が、学習部２３２Ａにより学習された対応方法（新たに取得した教授できない作業を教授するための教授情報）に基づいて教授できない作業について人物に対して教授する。これにより、作業が行われ画像ＩＭ２１ＸＸに示すように作業が完成する。
【０１３４】
ロボット装置２００またはエッジサーバ装置１００は、上記の処理を繰り返し、所定の環境において、人に教授できない作業が発生する頻度に基づいて、ロボット装置２００の技能の習得度合を推定してもよい。例えば、エッジサーバ装置１００のエッジ側情報処理部（「推定部」の一例）１０６は、ロボット装置２００からの問い合わせ結果に基づいて、人に教授できない作業が発生する頻度が閾値以下であると判定した場合、ロボット装置２００の技能の習得度合は高いと推定する。これにより、ロボット装置２００は、技能の習得度合をより容易に認識することができる。
【０１３５】
上述したように、ロボット装置２００Ａは、作業に関する技能を有していない人にティーチングを行って技能を習得させることができる。更に、ロボット装置２００Ａは、ティーチングのための情報を有していない場合であっても、ティーチングのための情報を他の装置から取得し、取得したティーチングのための情報を用いて人に技能を習得させることができる。
【０１３６】
なお、上記の例では、他の装置から教授できない作業に関する対応方法に関する情報を取得したが、これに代えて、人から対応方法に関する情報を取得してもよい。この場合、例えば、人がロボット装置２００に対して、対応方法を声や身振り、手ぶりで教授したり、アーム部をガイドして教授したりしてもよい。そして、ロボット装置２００は、人により教授された情報（新たに取得した教授できない作業を教授するための教授情報）に基づいて、教授できなかった作業に関する対応方法を学習してもよい。
【０１３７】
［人が技能を習得したか否かを判定する処理］
図１９は、第２実施形態のロボット装置２００Ａにより実行される処理の流れの他の一例を示すフローチャートである。本フローチャートの処理は、ロボット装置２００Ａが、人にティーチングを行った後に、ロボット装置２００が、人が行う作業を監視して、人が技能を習得したか否かを判定する処理である。
【０１３８】
まず、ロボット装置２００の画像処理部２２８が、第１タイミングで撮像された第１撮像画像を取得する（ステップＳ７００）。次に、画像処理部２２８が、第１ティーチング情報２８０を参照して、第１撮像画像に類似する第１作業画像を特定する（ステップＳ７０２）。次に、画像処理部２２８が、第１作業画像に対応する第２作業画像を取得する（ステップＳ７０４）。次に、画像処理部２２８は、第２タイミングで撮像された第２撮像画像を取得する（ステップＳ７０６）。
【０１３９】
次に、画像処理部２２８が、取得した第２作業画像と、第２タイミングで撮像した第２撮像画像とが合致したか否かを判定する（ステップＳ７０８）。取得した第２作業画像と、第２タイミングで撮像した画像とが合致した場合、所定の基準を満たす作業が人により行われたとみなし、情報処理部２２６は、所定回数、取得した第２作業画像と、第２タイミングで撮像した画像とが合致したか否かを判定する（ステップＳ７１０）。ステップＳ７１０の処理で、所定回数、合致していないと判定した場合、ステップＳ７００に戻る。
【０１４０】
ステップＳ７１０の処理で、所定回数、合致したと判定した場合、情報処理部２２６は、人は技能を習得したと判定する（ステップＳ７１２）。情報処理部２２６は、人が技能を習得したと判定した場合、ロボット装置２００は、自装置が技能を習得したと判定してもよい。このように、情報処理部２２６は、所定の作業を教授した人の作業の習得度合に基づいて、自装置の技能の習得度を判定してもよい。例えば、ロボット装置２００Ａは、対象の人が技能を習得した場合、他の人にティーチングを行う。
【０１４１】
取得した第２作業画像と、第２タイミングで撮像した画像とが合致しなかった場合、所定の基準を満たす作業が人により行われなかったとみなし、情報処理部２２６は、所定回数、取得した第２作業画像と、第２タイミングで撮像した画像とが合致していなかったか否かを判定する（ステップＳ７１４）。ステップＳ７１４の処理で、所定回数、合致しないと判定されていない場合、ステップＳ７００に戻る。ステップＳ７１４の処理で、所定回数、合致しなかったと判定した場合、情報処理部２２６は、人は技能を習得していないと判定して、再度、その人にティーチングを行う（ステップＳ７１６）。これにより、本フローチャートの１ルーチンの処理は終了する。
【０１４２】
上述したように、ロボット装置２００Ａは、作業に関する技能を習得していない人が技能を習得したか否かを判定することができる。そして、ロボット装置２００Ａは、技能が習得されていない場合、技能が向上するように、ティーチングを行うことができる。
【０１４３】
以上説明した第２実施形態によれば、ロボット装置２００は、学習部２３２Ａの学習結果に基づいて、教授できない作業について人物に対して教授することができる。また、ロボット装置２００は、教授できない作業が発生した際でも、新たに取得した教授できない作業を教授するための教授情報に基づいて教授できない作業に対する対応方法を学習し学習結果に基づいて、教授できない作業について人物に対して教授することができる。このように、ロボット装置２００は、教授能力をより簡便に向上させることができる。
【０１４４】
＜第３実施形態＞
以下、第３実施形態について説明する。第３実施形態では、エッジサーバ装置１００が、ロボット装置２００により習得された技能について、その情報の特性に応じてセンターサーバ装置１０に提供するか否かを判定する。以下、第１実施形態または第２実施形態との相違点について説明する。
【０１４５】
図２０は、ロボット装置２００が、習得した技能に基づいて部品を作成する場面の一例を示す図である。（１）ロボット装置２００が、基板Ａを所定の位置に配置し、（２）その基板Ａ上の、第１所定位置に部品ａを配置し、（３）第２所定位置に部品ｂを配置する。（４）ロボット装置２００が、部品ａと部品ｂとを結ぶ配線を配置して、（５）第３所定位置にはんだを付与して、（６）第４所定位置にはんだを付与し、部品ａ、ｂ、配線とを覆うようにカバーＡを被せる。（７）これにより、部品Ａが完成する。このような技能をロボット装置２００が習得した場合、取得した技能をエッジサーバ装置１００にアップロードする。
【０１４６】
図２１は、エッジサーバ装置１００により実行される処理の流れの一例を示すフローチャートである。エッジ側取得部１０４が、ロボット装置２００によりアップロードされた技能に関する情報を取得する（ステップＳ８００）。次に、エッジ側情報処理部（「機密判定部」の一例）１０６が、取得したアップロードされた技能に関する情報に基づいて、ウエブ検索を行う（ステップＳ８０２）。次に、エッジ側情報処理部１０６は、ウエブ検索において、アップロードされた技能に関する情報と関連度が高い情報が検索されたか否かを判定する（ステップＳ８０４）。
【０１４７】
例えば、エッジ側情報処理部１０６は、所定の基準に従ってクエリを生成し、生成したクエリを用いた検索を不図示の検索エンジンに実行させる。そして、エッジ側情報処理部１０６は、検索結果を取得する。例えば、エッジ側情報処理部１０６は、クエリ「部品Ａ」に関連する情報を収集し、予め定められたアルゴリズムに基づいて、収集した情報のうちから部品Ａの内部や作成手法等と関連度が高い情報（関連度が閾値以上の情報）を抽出する。関連度が高い情報とは、例えば、部品Ａの作成過程の画像と類似する画像や、部品Ａの生成過程や内部構造の記載などの情報である。予め定められたアルゴリズムとは、例えば、画像が示す情報を文章に変換するアルゴリズムや、記載された文章や画像の意味を解釈するアルゴリズムである。
【０１４８】
例えば、エッジ側情報処理部１０６は、部品Ａの画像が示す情報を文章に変換して、変換した文章の意味を抽出する。また、エッジ側情報処理部１０６は、ウエブページにおける画像や文章の意味を抽出する。エッジ側情報処理部１０６は、これらの意味を比較して関連度が高い情報を特定する。
【０１４９】
ステップＳ８０４において関連度が高い情報が検索された場合、エッジ側情報処理部１０６は、技能に関する情報は機密情報でないと判定し（ステップＳ８０６）、その情報をセンターサーバ装置１０に送信する（ステップＳ８０８）。センターサーバ装置１０は、エッジサーバ装置１００により送信された情報を取得し、取得した情報を記憶部５０に記憶させる。そして、センターサーバ装置１０は、記憶された情報の送信要求があった場合、送信要求に応じて記憶部５０に記憶させた情報を要求元に送信する。ステップＳ８０４において関連度が高い情報が検索されなかった場合、エッジ側情報処理部１０６は、技能に関する情報は機密情報であると判定し、その情報の送信は行わない（ステップＳ８１０）。これにより本フローチャートの１ルーチンの処理は終了する。
【０１５０】
以上説明した第３実施形態によれば、エッジサーバ装置１００は、ロボット装置２００により送信された特定情報が公開されていないと判定した場合（社会一般に公開されていないと判定した場合）、その情報は機密情報であると判定し、公開しない。この結果、機密情報を公開せずに内部の資産として管理することができる。
【０１５１】
また、機密情報（ロボット装置２００により取得された情報）の取り扱いは、以下のようにされてもよい。例えば、ロボット装置２００は、所定の基準に基づいて、対象の情報が機密情報であるか否かを判定してもよい。また、エッジサーバ装置１００は、取得した情報に類似する情報を、所定期間ごとに検索し、検索結果を分析してもよい。これにより、取得した情報（例えば技能）に関連する情報の変化を管理者に認識させるための情報を提供することができる。エッジサーバ装置１００は、定期的に取得した情報を集計し、集計結果を管理者に通知し、管理者の指示に基づいて、その情報を公開するか否かを判定してもよい。
【０１５２】
なお、本実施形態におけるフローチャートの処理の一部は省略されてもよいし、処理の順序は入れ替えられてもよい。また、本実施形態における各実施形態の内容の全部または一部は組み合わされて実施されてもよい。
【０１５３】
［ハードウェア構成］
図２２は、実施形態のロボット装置２００のハードウェア構成の一例を示す図である。図示するように、ロボット装置２００は、通信コントローラ２００−１、ＣＰＵ２００−２、ワーキングメモリとして使用されるＲＡＭ（Random Access Memory）２００−３、ブートプログラムなどを格納するＲＯＭ（Read Only Memory）２００−４、フラッシュメモリやＨＤＤ（Hard Disk Drive）などの記憶装置２００−５、ドライブ装置２００−６などが、内部バスあるいは専用通信線によって相互に接続された構成となっている。通信コントローラ２００−１は、ロボット装置２００以外の構成要素との通信を行う。記憶装置２００−５には、ＣＰＵ２００−２が実行するプログラム２００−５ａが格納されている。このプログラムは、ＤＭＡ（Direct Memory Access）コントローラ（不図示）などによってＲＡＭ２００−３に展開されて、ＣＰＵ２００−２によって実行される。これによって、取得部２２４、情報処理部２２６、画像処理部２２８、駆動制御部２３０、学習部２３２、情報要求部２３４、および情報提供部２３６のうち一部または全部が実現される。
【０１５４】
上記説明した実施形態は、以下のように表現することができる。
プログラムおよび第１作業を行う指針となる第１教示情報を記憶した記憶装置と、
ハードウェアプロセッサと、を備え、
前記ハードウェアプロセッサは、前記記憶装置に記憶されたプログラムを実行することにより、
前記第１作業と類似または関連する第２作業を行う指針となる第２教示情報を、前記第２教示情報を有する他の装置から取得し、
前記記憶装置に記憶された第１教示情報に基づいて前記第１作業および前記取得された前記第２教示情報に基づいて前記第２作業を行う、
ように構成されている、ロボット装置。
【０１５５】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【０１５６】
１‥ロボットシステム、１０‥センターサーバ装置、１００、１００Ａ、１００Ｂ‥エッジサーバ装置、１０６‥エッジ側情報処理部、１０８‥エッジ側画像処理部、２００、２００Ａ‥ロボット装置、２０２‥撮像部、２０４‥右アーム部、２０６‥左アーム部、２０８‥移動用駆動部、２２０‥制御装置、２２２‥通信部、２２４‥取得部、２２６‥情報処理部、２２８‥画像処理部、２３０‥駆動制御部、２３２、２３２Ａ‥学習部、２３３‥教授部、２３４‥情報要求部、２３６‥情報提供部、２５０、２５０Ａ‥記憶部、２６０‥物体環境情報、２６２‥学習対象情報、２６４‥基本動作情報、２６６‥第１教示情報、２８０‥第１ティーチング情報
【図１】
2020082249.tif 000003
【図２】
2020082249.tif 000004
【図３】
2020082249.tif 000005
【図４】
2020082249.tif 000006
【図５】
2020082249.tif 000007
【図６】
2020082249.tif 000008
【図７】
2020082249.tif 000009
【図８】
2020082249.tif 000010
【図９】
2020082249.tif 000011
【図１０】
2020082249.tif 000012
【図１１】
2020082249.tif 000013
【図１２】
2020082249.tif 000014
【図１３】
2020082249.tif 000015
【図１４】
2020082249.tif 000016
【図１５】
2020082249.tif 000017
【図１６】
2020082249.tif 000018
【図１７】
2020082249.tif 000019
【図１８】
2020082249.tif 000020
【図１９】
2020082249.tif 000021
【図２０】
2020082249.tif 000022
【図２１】
2020082249.tif 000023
【図２２】
2020082249.tif 000024