(57)【要約】【課題】  オペレータがロボットに作業の動作を見せることで、オペレータと異なる機構を持つロボットが、教示時と異なる環境であっても、オペレータの意図する動作を実現する方法を提供する。【解決手段】  本発明の一実施形態に係るロボットシステムは、ロボットの動作情報と対象物の情報の組であるシーンを複数種類記憶するとともに、シーンから派生した複数の派生シーンを、シーンに対応付けて記憶している。計測部により計測されたオペレータの教示動作に従ってロボットを動作させる際、まず、複数種類のシーンの中から、オペレータの教示動作及び対象物の種類から成る教示情報との類似度が最も高いシーンを選択する。続いて選択したシーンから派生した派生シーンのうち、計測された対象物の位置・大きさと類似度が最も高いものを選択する。そして選択された派生シーンに含まれている動作情報に基づいて、ロボットを動作させる。【選択図】  図１
2018051652.tif 000002
【特許請求の範囲】
【請求項１】
オペレータの教示動作に従ってロボットを動作させるロボットシステムであって、
前記ロボットシステムは、
前記オペレータの教示動作を計測する動作計測部と、
前記オペレータまたは前記ロボットが操作する対象物の種類、位置、大きさを計測する対象物計測部と、
前記ロボットの動作情報と前記対象物の情報の組であるシーンを複数種類記憶したシーン記憶部と、
前記シーンから派生した複数の派生シーンを、前記シーンに対応付けて記憶した派生シーン記憶部と、
前記シーン記憶部の中から１つの前記シーンを取得するシーン選択部と、
前記派生シーン記憶部の中から１つの前記派生シーンを取得する派生シーン選択部と、
前記派生シーンに含まれている前記動作情報に基づいて前記ロボットを動作させるロボット動作実行部と、
を有し、
前記派生シーンに含まれる前記対象物の情報は、前記派生シーンの対応付けられている前記シーンに含まれる前記対象物の位置や大きさを変化させたもので、前記派生シーンに含まれるロボットの動作情報は、前記派生シーンに含まれる前記対象物を操作するための動作情報であって、
前記シーン選択部は、前記シーン記憶部に記憶された複数の前記シーンの中から、前記動作計測部によって計測された前記オペレータの教示動作及び前記対象物計測部によって計測された前記対象物の種類から成る教示情報との類似度が最も高いシーンを選択し、
前記派生シーン選択部は、前記シーン選択部が選択したシーンから派生した前記派生シーンのうち、計測された前記対象物の位置・大きさと類似度が最も高い派生シーンを選択し、
前記ロボット動作実行部は、前記派生シーン選択部が選択した前記派生シーンに含まれている前記動作情報に基づいて、前記ロボットを動作させる、
ことを特徴とするロボットシステム。
【請求項２】
前記ロボットシステムはさらに、
前記オペレータの教示動作と前記対象物の情報を、前記シーンに含まれる情報に変換する学習部を有し、
前記シーン選択部は前記学習部を用いて、前記教示情報を前記シーンに含まれる情報に変換することで、前記教示情報と前記シーン記憶部に記憶された複数の前記シーンとの類似度を求める、
請求項１に記載のロボットシステム。
【請求項３】
前記ロボットシステムはさらに、
前記ロボットの周囲の存在物を計測する環境計測部を有し、
前記ロボットを動作させる際、前記環境計測部で計測された前記存在物に衝突しないように、前記ロボットの動作を修正する、
ことを特徴とする、請求項１に記載のロボットシステム。
【請求項４】
前記派生シーンには、複数種類の前記動作情報が含まれており、
前記ロボットを動作させる際、選択された前記派生シーンの中から、所定の基準に応じて前記動作情報を１つ選択し、選択された前記動作情報に基づいて、前記ロボットを動作させる、
ことを特徴とする、請求項１に記載のロボットシステム。
【請求項５】
前記ロボットシステムは、
計測された前記対象物の位置・大きさと、派生シーンに記憶された対象物の位置・大きさに差異がある場合、前記派生シーンに含まれる前記動作情報を修正する動作修正部を備える、
ことを特徴とする、請求項１に記載のロボットシステム。
【請求項６】
前記動作修正部によって修正された前記ロボットの動作情報を用いて、前記派生シーン記憶部に記憶されている前記派生シーンを更新する動作更新部を備える、
ことを特徴とする、請求項５に記載のロボットシステム。
【請求項７】
前記ロボットシステムは、前記オペレータが、
前記シーン記憶部に前記シーンを、前記派生シーン記憶部に前記派生シーンを、
追加可能に構成されている、
ことを特徴とする、請求項１に記載のロボットシステム。
【請求項８】
前記学習部は、前記教示情報と前記教示情報に対応するシーンとからなる学習情報を複数用いて学習を行うことで、前記教示情報を前記シーンに含まれる情報に変換するルールを決定するよう構成されている、
ことを特徴とする、請求項２に記載のロボットシステム。
【請求項９】
前記ロボットシステムは、ネットワークに接続するための通信インタフェースを有し、
前記ロボットシステムはさらに、
前記通信インタフェースを介して、前記シーンと前記派生シーンを前記ネットワーク上の記憶手段に格納するアップロード部と、
前記通信インタフェースを介して、他のロボットシステムによって前記ネットワーク上の記憶手段に格納された前記シーンと前記派生シーンを取得するダウンロード部と、
を有することを特徴とする、請求項１に記載のロボットシステム。
【請求項１０】
オペレータの教示動作を計測する動作計測部と、
前記オペレータまたはロボットが操作する対象物の種類と位置と大きさを計測する対象物計測部と、
ロボットの動作情報と前記対象物の情報の組であるシーンを複数種類記憶したシーン記憶部と、
前記シーンから派生した複数の派生シーンを、前記シーンに対応付けて記憶した派生シーン記憶部と、
前記シーン記憶部の中から１つの前記シーンを取得するシーン選択部と、
前記派生シーン記憶部の中から１つの前記派生シーンを取得する派生シーン選択部と、
前記派生シーンに含まれている前記動作情報に基づいて前記ロボットを動作させるロボット動作実行部と、
を有するロボットシステムによる、ロボット制御方法であって、
前記派生シーンに含まれる前記対象物の情報は、前記派生シーンの対応付けられている前記シーンに含まれる前記対象物の位置や大きさを変化させたもので、前記派生シーンに含まれるロボットの動作情報は、前記派生シーンに含まれる前記対象物を操作するための動作情報であって、
前記動作計測部によって前記オペレータの教示動作を計測し、前記対象物計測部によって前記対象物の情報を計測する、第１の工程と、
前記シーン選択部によって、前記シーン記憶部に記憶された複数の前記シーンのうち、前記第１の工程で得られた、前記オペレータの教示動作及び前記対象物の種類から成る教示情報との類似度が最も高いシーンを選択する、第２の工程と、
前記派生シーン選択部によって、前記第２の工程で選択されたたシーンから派生した前記派生シーンのうち、前記第１の工程で計測された前記対象物の位置・大きさと類似度が最も高い派生シーンを選択する、第３の工程と、
前記ロボット動作実行部によって、前記第３の工程で選択された前記派生シーンに含まれている前記動作情報に基づいて、前記ロボットを動作させる、第４の工程と、
を実行することを特徴とする、ロボット制御方法。
【請求項１１】
前記ロボットシステムはさらに、
前記オペレータの教示動作と前記対象物の情報を、前記シーンに含まれる情報に変換する学習部を有し、
前記第２の工程では、前記教示情報を前記学習部によって、前記シーンに含まれる情報に変換することで、前記教示情報と前記シーン記憶部に記憶された複数の前記シーンとの類似度を求める、
ことを特徴とする、請求項１０に記載のロボット制御方法。
【請求項１２】
前記学習部は、前記教示情報と前記教示情報に対応するシーンとからなる学習情報を複数用いて学習を行うことで、前記教示情報を前記シーンに含まれる情報に変換するルールを決定するよう構成されている、
ことを特徴とする、請求項１１に記載のロボット制御方法。
【請求項１３】
前記第４の工程は、計測された前記対象物の位置・大きさと、派生シーンに記憶された対象物の位置・大きさに差異がある場合、前記派生シーンに含まれる前記動作情報を修正する動作修正工程を含む、
ことを特徴とする、請求項１１に記載のロボット制御方法。
【請求項１４】
前記第４の工程は、前記第３の工程が実行された後、前記オペレータからの指示があった時点で実行される、
ことを特徴とする、請求項１１に記載のロボット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットにオペレータのタスクを教示するためのシステム及び方法に関する。
【背景技術】
【０００２】
ロボットによる自動化は製造・搬送など広い分野で行われている。ロボットで所定の作業を自動化する場合は、その動作の手順をロボットに教示する作業が必要であり、これは通常はオペレータによって事前に行われている。
【０００３】
ロボットに動作を教示する方法として、ティーチングプレイバックによる方法がある。ティーチングプレイバックとは、ロボットの各関節角度の動作手順を予めオペレータが教えておき、ロボットは自動動作時に、その手順を再現するものである。しかしながら、ティーチングプレイバックでの教示は、各関節の動作を一つ一つ入力する事となり、教示のコストが高い。
【０００４】
これに対し、特許文献１に、オペレータの動作と同様の動作をロボットに簡易に教示できる方法が開示されている。特許文献１に記載のロボット制御システムは、カメラ等の教示情報取得手段を用いてオペレータの動作を取得し、取得した手指の位置（座標）情報をロボットハンドの関節角度情報に変換することで、ロボットハンド教示データを作成する。そして作成されたロボットハンド教示データに基づいて、ロボットハンドを駆動する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開2011-110620号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示されている方法によれば、ロボットとオペレータの機構が異なっていても、オペレータの動作を正しくロボットに伝えることができる。ただし、ロボットが取り扱う作業対象物の位置や大きさが変化した場合には、それに合わせてロボット動作を変更する必要がある。
【０００７】
そのため、対象物の位置や大きさが変わるたびに、変更された対象物に対するオペレータの動作をロボットに教示する必要があるので、非常に多くの種類のオペレータ動作を教示させる必要が出る。
【０００８】
本発明の目的は、教示時と異なる環境であっても、オペレータの意図する動作をロボットに実現させる方法を提供する事にある。
【課題を解決するための手段】
【０００９】
本発明の一実施形態に係るロボットシステムは、オペレータの教示動作を計測する動作計測部と、オペレータまたはロボットが操作する対象物の種類、位置、大きさを計測する対象物計測部と、ロボットの動作情報と対象物の情報の組であるシーンを複数種類記憶したシーン記憶部と、シーンから派生した複数の派生シーンを、シーンに対応付けて記憶した派生シーン記憶部と、シーン記憶部の中から１つのシーンを取得するシーン選択部と、派生シーン記憶部の中から１つの派生シーンを取得する派生シーン選択部と、派生シーンに含まれている動作情報に基づいて前記ロボットを動作させるロボット動作実行部とを有する。ここで、派生シーンに含まれる対象物の情報は、派生シーンの対応付けられているシーンに含まれる対象物の位置や大きさを変化させたもので、派生シーンに含まれるロボットの動作情報は、派生シーンに含まれる対象物を操作するための動作情報である。
【００１０】
オペレータの教示動作に従ってロボットを動作させる際、シーン選択部がシーン記憶部に記憶された複数のシーンの中から、オペレータの教示動作及び対象物の種類から成る教示情報との類似度が最も高いシーンを選択する。そして派生シーン選択部が、シーン選択部が選択したシーンから派生した派生シーンのうち、計測された前記対象物の位置・大きさと類似度が最も高い派生シーンを選択する。そして選択された派生シーンに含まれている動作情報に基づいて、ロボット動作実行部はロボットを動作させる。
【発明の効果】
【００１１】
本発明によれば、オペレータがロボットに作業の動作を見せることで、オペレータと異なる機構を持つロボットが、教示時と異なる環境であっても、オペレータの意図する動作を実現することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】実施例１に係るロボットシステムの機能構成図である。
【図２】ロボットシステムの物理的な構成を示す図である。
【図３】ロボットを動作させる際の手順の概要を説明する図である。
【図４】計測部の説明図である。
【図５】シーン選択部の概要を説明する図である。
【図６】派生シーン作成部の概要を説明する図である。
【図７】派生シーン選択部の概要を説明する図である。
【図８】シーン追加部が提供するインタフェースの例である。
【図９】ロボット動作選択部の概要を説明する図である。
【図１０】動作修正部の概要を説明する図である。
【図１１】動作修正部によるロボット動作の修正方法の例である。
【図１２】衝突回避部の概要を説明する図である。
【図１３】動作更新部の概要を説明する図である。
【図１４】実施例２に係るロボットシステムの機能構成図である。
【図１５】実施例３に係るロボットシステムの機能構成図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について説明するが、最初に本発明の概要を説明する。本発明の一実施形態に係るロボットシステムは、予めロボットの動作に関する情報をデータベースに登録しておき、オペレータの動作をロボットに教示する際に、データベースからオペレータの動作と最も近いロボット動作を選択する事で、一度の教示のみで、オペレータと同様の動作をロボットに実行させる。
【００１４】
ここで、教示したオペレータ動作に最も近いデータベース上のロボット動作の情報を選択する際には、オペレータ動作とロボット動作がどの程度似ているか、という類似性を求める必要がある。しかし、オペレータ動作とロボット動作は、形状や機構の違う異質のものであるため、直接両者の類似性を計算する事はできない。これに対し、従来の機械学習方法を用い、上記対応関係の事例のサンプルを事前に与える事により、類似度の計算方法を推定することができ、新たなオペレータ動作が教示情報として入力されたときにも、データベースから最も近いデータを選択することが可能となる。
【００１５】
ただし、機械学習で、上記対応関係を推定するためには十分な数のサンプルを収集する必要があるが、多種多様な動作を教示可能とするためには、ロボット動作の種類・対象物・大きさ・位置など様々な条件を全てデータベースに登録しておき、それらを網羅できる程の大量の対応関係の事例サンプルを作っておく必要がある。一般には、人動作サンプルを集めるのは大きなコストがかかり、また、あらゆる環境の状態を事前に用意しておくのは難しい。すなわち、オペレータ動作とロボット動作の対応関係を機械学習で推定し対象物の形状と操作方法を認識したうえで、対象物の操作方法が既知であれば多少の環境変化が起きても動作を修正する等の動作修正手法を用いるのみでは、あらゆる形状・位置・大きさの対象物に関するサンプルを収集する必要がありコストが大きいという課題がある。
【００１６】
本発明の一実施形態に係るロボットシステムは、オペレータ動作とロボット動作の対応付けは、ロボット動作・作業対象物に関する代表的な事例（本明細書においては、これを「シーン」と呼ぶ）についてのみ行うこととし、シーンに対して対象物の位置や大きさなどの詳しい情報を追加した、より具体的な事例（本明細書においてはこれを「派生シーン」と呼ぶ）はシミュレーションで作成しておき、環境の状態に応じて選択することとする。
【００１７】
例えば、把持を対象とした場合には、シーンに関するデータベースには、対象物の掴み方（上から掴む、横から掴む、両手で掴む等）、対象物の形状の種類（角柱、球体、円柱等）に関する情報のみがあらかじめ登録される。ただし、対象物の形状の種類が少ない場合など、学習コストが大きくならない場合は、位置や大きさの情報がシーンに追加されていても良い。シーンに位置・大きさの情報も追加すると、当該シーンと後に示す派生シーンとの差異が少なくなるため、派生シーンにおけるロボット動作の計算が容易になる。
【００１８】
派生シーンに関するデータベースには、上記シーンに対し対象物の位置や大きさも含んだ情報、それに応じたロボットの動作手順が登録される。このようにすることで、前述のオペレータ動作とロボット動作の対応関係を算出するために必要な事例のサンプルは、掴み方と形状の種類に関する２条件のみとなり、サンプル収集コストは少なくて済む。また、条件数が減ることにより類似度の算出精度も高くなる。さらに派生シーンは、環境の状態に応じ、対象物の位置・大きさの差異に基づき選択される。ここで、実際にロボットの動作する環境内における対象物の位置や大きさなどの情報と、派生シーンに記録されている情報との類似度は、ともに空間内における形状の一致度を求めればよく、容易に計算が可能である。
【００１９】
本発明の一実施形態に係るロボットシステムは、オペレータによる教示動作と類似したロボット動作を選択するために、ロボット動作・作業対象物の代表的な事例（シーン）と、その具体的な事例（派生シーン）を別々にデータベースに登録しておき、選択処理を、オペレータ動作と最も近いシーンの選択、実環境と最も近い派生シーンの選択に分けることとした。これにより、オペレータの動作とロボットの動作という質の異なる動作の類似度の計算処理と、計算の容易な対象物の位置・大きさの比較という形状に関する一致度の比較の処理を分けることができ、人動作とロボット動作の対応関係の算出のために必要となる事例サンプル数を抑えつつ、あらゆる状況下でのロボット動作が可能となる。
【実施例１】
【００２０】
以下、図面を用いて本発明の一実施例について説明する。
【００２１】
図１は、実施例１に係るロボットシステムの機能構成図である。まず、動作計測部１００はオペレータの動作を計測するためのもので、対象物計測部１０１は操作対象となる物品を計測するためのものである。そして環境計測部１０２はロボットの動作時に、周囲の状況を計測するためのものである。
【００２２】
シーン記憶部１０３には、予めロボット動作・作業対象物の代表的な事例（シーン）を記憶しておく。本実施例における一例においては、対象物をどのように把持するかなどの操作方法の情報と操作対象物の形状事例を記録しておく。形状の事例はロボットの操作方法に関わる形状の種類で分類すれば良い。例えば、形状の種類に応じて３種類の握り方がある場合は、３種類のシーンを用意しておけばよい。
【００２３】
シーン選択部１０４は、シーン記憶部１０３に格納されているシーンの中から、動作計測部１００の計測したオペレータ動作と対象物計測部１０１の計測した対象物の種類との組み合わせ（これを「教示情報」と呼ぶ）と最も類似するシーンを選択する。シーンに記録されている情報はロボットの操作方法（ロボット動作）についての情報であるため、シーン選択部１０４は、オペレータ動作とロボット動作という、異なる種類の情報の類似性を求める必要がある。そのため本実施例に係るロボットシステムでは、オペレータ動作とロボット動作の対応関係を学習部１１５によってあらかじめ学習させておき、シーン選択部１０４はそれに基づいてシーンの選択を行う。詳細は後述する。
【００２４】
派生シーン作成部１０５は、シーン記憶部１０３に記憶されたシーンの派生シーンを作成するための機能ブロックである。通常、１つのシーンに対して複数の派生シーンが作成される。「派生シーン」とは、元のシーンに記録されている対象物の位置や大きさを変化させたものである。また派生シーンには、位置や大きさを変化させた対象物を適切に操作できるためのロボット動作方法が対応付けられている。作成された派生シーンは、派生シーン記憶部１０６に記憶される。
【００２５】
派生シーン選択部１０８は、対象物計測部１０１で計測した対象物の形状と、派生シーン記憶部１０６に記憶されている対象物の形状を比較することで、ロボットが実際に動作する環境（以下ではこれを「実環境」と呼ぶ）に最も近い派生シーンを選択する。
【００２６】
本実施例に係るロボットシステムは、派生シーン選択部１０８によって選択された派生シーンに基づいて、ロボット動作実行部１１２がロボットの手や指を駆動させることで、オペレータの教示した動作通りに、ロボットを動作させる。なお、オペレータが教示動作を行った環境と、ロボットの置かれている環境は必ずしも一致しないこともある。その場合派生シーンに記録されているロボット動作の修正を行う必要があるため、ロボットシステムは以下に説明するロボット動作選択部１０９、動作修正部１１０、衝突回避部１１１を有していてもよい。
【００２７】
ロボット動作選択部１０９は、派生シーン選択部１０８によって選択された派生シーンに２種類以上のロボット動作が対応付けられて記録されていた場合に、環境全体の状況からどちらの動作が適切かを選択する。選択基準として、より安定動作する関節角や、より短い軌跡を選択するなどが挙げられる。
【００２８】
動作修正部１１０は、実環境下の対象物の位置・大きさと、派生シーンに記憶されている対象物の位置が異なっていた場合に、実環境下の対象物の位置・大きさに合わせてロボット動作を修正する。修正方法としては、上述の線形補間などが用いられると良い。
【００２９】
衝突回避部１１１は、環境計測部１０２の計測した周囲の環境の状態から、ロボットが周囲の存在物に衝突しないように動作の軌跡を変更する。たとえば衝突回避部１１１はロボットの手を対象物に到達させるまでの経路および、手先以外の腕の形状を変更する。ロボット動作実行部１１２は、ロボット動作選択部１０９、動作修正部１１０、衝突回避部１１１によって修正されたロボット動作情報に基づいて、ロボットを制御する。たとえばロボット動作実行部１１２はロボットに対し、各関節の角度を変更する命令群を発行し、ロボットはこれを受けて動作する。
【００３０】
シーン追加部１０７・派生シーン追加部１１３は、シーン・派生シーンを作成し、作成されたシーン・派生シーンをシーン記憶部１０３・派生シーン記憶部１０６に追加するための機能ブロックである。たとえば、新たな種類の動作を記録したシーンを追加したい場合や、ロボット動作の結果として未学習の状況が発生した場合に用いられる。本実施例では、シーン（派生シーン）の作成（追加）は、ロボットシステムのユーザ（オペレータ）によって行われるため、シーン追加部１０７（派生シーン追加部１１３）は、オペレータがシーンを構成する情報を作成するために用いるユーザインタフェース（たとえばグラフィカルユーザインタフェース）をオペレータに提供する。
【００３１】
ロボットシステムのユーザはシーン追加部１０７を用いて、作成対象のロボット動作の情報及びその動作によって操作される対象物品の情報を作成し、シーン記憶部１０３に記憶する。対象の物品はＣＡＤツール等によって作成され、それに対するロボットの動作についての情報は、ロボットシミュレーターのツールを用いて設定される。また、ロボットの動作の設定後、ロボットシステムのユーザは作成したシーンに対し、このシーンに対応するオペレータ動作の情報（教示情報）を対応付け、対応付けたシーンと教示情報の組を対応記憶部１１４に記憶させ、対応記憶部１１４に記憶した全学習データについて、再度機械学習を行わせる。
【００３２】
派生シーン追加部１１３は、所定のシーンに対して、新たな対象物の位置・大きさとなる派生シーンを追加する。追加の際は、対象物の位置・大きさ情報を入力とし、派生シーン作成部１０５に渡すことで、派生シーン作成部１０５は、当該対象物に対するロボット動作を算出することで派生シーンを作成し、派生シーン記憶部１０６に追加する。
【００３３】
図２は本実施例のロボットシステムの物理的な構成を示す図である。本実施例のロボットシステムは、プロセッサ１４００、メモリ１４０１、補助記憶装置１４０２、通信インタフェース１４０３、入力インタフェース１４０４、出力インタフェース１４０５を有する計算機１４１０と、センシングデバイス１４０６を有する。なお、図２では「インタフェース」を「Ｉ／Ｆ」と略記している。また本明細書においても、「インタフェース」を「Ｉ／Ｆ」と略記することがある。
【００３４】
プロセッサ１４００は、メモリ１４０１に格納されたプログラムを実行する。メモリ１４０１は不揮発性の記憶装置であるＲＯＭおよび揮発性のＲＡＭを含む。ＲＯＭは、不変のプログラム（例えばＢＩＯＳ）などを格納する。ＲＡＭは、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような揮発性の記憶装置であり、プロセッサ１４００が実行するプログラム及びプログラムの実行時に使用するデータを一時的に格納する。
【００３５】
補助記憶装置１４０２は、大容量かつ不揮発性の記憶装置であり、プロセッサ１４００が実行するプログラム及びプログラムの実行時に使用されるデータ（例えば、シーンや派生シーンなど）を格納する。すなわち、プログラムは、補助記憶装置１４０２から読み出されて、メモリ１４０１にロードされて、プロセッサ１４００によって実行される。補助記憶装置１４０２には例えば、ハードディスクドライブ（ＨＤＤ）等の磁気記憶デバイス、あるいはＳｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ（ＳＳＤ）等の不揮発性半導体メモリを用いた記憶デバイスが用いられる。
【００３６】
本実施例に係るロボットシステムでは、メモリ１４０１にロードされたプログラムがプロセッサ１４００に実行されることによって、計算機１４１０及びセンシングデバイス１４０６を、図１で説明した動作計測部１００、対象物計測部１０１、環境計測部１０２、シーン記憶部１０３、シーン選択部１０４、派生シーン作成部１０５、派生シーン記憶部１０６、シーン追加部１０７、派生シーン選択部１０８、ロボット動作選択部１０９、動作修正部１１０、衝突回避部１１１、ロボット動作実行部１１２、派生シーン追加部１１３、対応記憶部１１４、学習部１１５として機能させる。また、シーン記憶部１０３、派生シーン記憶部１０６、対応記憶部１１４がシーン等の情報を記憶する記憶領域には、補助記憶装置１４０２の有する記憶領域が用いられる。
【００３７】
通信インタフェース１４０３は、所定のプロトコルに従って、他の装置との通信を行うインタフェース装置である。インタフェース装置はＥｔｈｅｒｎｅｔ、ＵＳＢ、ＲＳ−２３２Ｃなどの通信が可能なポートであり、例えばＥｔｈｅｒｎｅｔであればＴＣＰ通信、ＵＤＰ通信などを使い、装置間で通信を行う。またロボットシステムは、通信インタフェース１４０３を介してインターネット等の広域ネットワーク１４２０に接続可能に構成されていてもよい。その場合ロボットシステムは、データセンタ１１００などの大容量記憶手段を有する拠点からデータをダウンロードしたり、逆に自身の有するデータをデータセンタ１１００にアップロードしてもよい。
【００３８】
入力インタフェース１４０４は、ロボットシステムのユーザ（オペレータ）が使用するキーボード１６やマウス１７などの入力デバイスを接続するためのインタフェースデバイスである。出力インタフェース１４０５は、ディスプレイ１９等の表示用デバイスを接続するためのインタフェースデバイスである。ロボットシステムは入力インタフェース１４０４を通してシーン作成や追加学習等のオペレータからの入力を受け付け、出力インタフェース１４０５を通して処理結果などをディスプレイ１９に表示する。
【００３９】
センシングデバイス１４０６は、オペレータによる教示動作を計測するための、また対象物や周囲環境等の計測を行うためのデバイスで、図１を用いて説明した動作計測部１００、対象物計測部１０１、環境計測部１０２を構成するデバイスである。センシングデバイス１４０６は例えばカメラ、モーションセンサ、レーザ距離センサ等のデバイスである。ただし、物品の位置や大きさ、或いは動作を計測できるデバイスであれば、任意のデバイスがセンシングデバイス１４０６に用いられて良い。
【００４０】
なおロボットシステムにはセンシングデバイス１４０６が複数含まれていてよい。あるいはロボットシステムには複数種類のセンシングデバイス１４０６が含まれていてよく、たとえばセンシングデバイス１４０６としてカメラとモーションセンサを有していてよい。ロボットシステムは通信インタフェース１４０３を介して、センシングデバイス１４０６の情報を取得しつつ、ロボット１４０７に対して制御命令を送信する。
【００４１】
ロボットシステムの物理構成は、必ずしも図２に示された構成に限定されない。たとえば図２では、計算機１４１０が１台だけ示されているが、複数の計算機からロボットシステムが構成されていてもよい。あるいは、計算機１４１０内の構成要素がロボット１４０７に組み込まれていて、ロボット１４０７が以下に説明するロボットシステムの各機能を実行するように構成されていてもよい。さらに、センシングデバイス１４０６もロボット内に組み込まれていてもよい。
【００４２】
次に、本実施例に係るロボットシステムが上で述べた各機能ブロックを用いてロボットを動作させる際の手順を、図３を用いて概説する。
【００４３】
本実施例に係るロボットシステムにおいて、ロボットを動作させるための工程には大きく分けて、教示工程１２００と動作工程１２０１の２つがある。教示工程１２００は、動作計測部１００と対象物計測部１０１が、オペレータ１２０２が実施する教示動作（どのような操作対象物をどのように操作しているか）を計測し、計測結果をもとにロボットに実行させる動作（ロボット動作）を決定する。図３では一例として、対象物１２０３をオペレータ１２０２が片手で把持する動作が計測される例を示している。ただし動作の種類は、動作計測部１００が計測できる動作であれば、把持に限定されない。
【００４４】
オペレータ１２０２の教示動作が計測されると、シーン選択部１０４はシーン記憶部１０３に記憶されているシーンの中から、計測されたオペレータ１２０２の動作と対象物１２０３の組み合わせに最も似たシーンを選択する。続いて派生シーン選択部１０８が、選択されたシーンに対応付けられた（複数の）派生シーンを、派生シーン記憶部１０６の中から抽出する。そして派生シーン選択部１０８は、抽出された各派生シーンに記録されている対象物の位置・大きさと、計測された対象物１２０３の位置・大きさとを比較し、計測された対象物１２０３との位置・大きさが最も類似する対象物が記録されている派生シーンを選択する。ここまでが教示工程１２００で行われる処理である。
【００４５】
派生シーンが選択されると、ロボットシステムは次にロボットの動作工程１２０１を行う。動作工程１２０１では、選択された派生シーンを基に、ロボット１２０４が駆動される。たとえばロボット動作実行部１１２はロボットに対し、選択された派生シーンに記録されているロボット動作についての情報から、ロボットを実際に動かすための命令群（各関節の角度を変更する命令等）を作成してロボット１２０４に発行する。ロボット１２０４は受け取った命令群に基づいて動作する。このような工程が行われることで、本実施例に係るロボットシステムでは、オペレータの教示した動作通りに、リアルタイムにロボット１２０４が動作する。
【００４６】
なおロボット動作実行部１１２がロボット１２０４を動作させる際、対象物計測部１０１がロボットの操作対象である対象物１２０５の詳細な位置を認識し、動作修正部１１０はそれに基づいて、派生シーンに記録されているロボット動作の情報（把持時の軌道等）を修正してもよい。さらに衝突回避部１１１環境計測部１０２の計測結果を基にロボットの腕が環境内の存在物１２０６と衝突しないように、ロボット動作の変更を行わせてもよい。
【００４７】
続いて各機能ブロックの詳細を説明する。まず、主に教示工程で用いられる各機能ブロックの説明を行う。
【００４８】
図４に計測部（動作計測部１００、対象物計測部１０１、環境計測部１０２）について示す。動作計測部１００はオペレータ２００の動作を計測し、シーン選択部１０４等にオペレータ２００の動作情報を渡す。動作計測部１００を構成するセンシングデバイスとしては、モーションセンサやカメラなど、オペレータ２００の動作を計測できるデバイスが用いられるとよい。
【００４９】
対象物計測部１０１は、オペレータ２００の操作対象となる対象物２０１、ロボットの操作対象となる対象物２０１をそれぞれ計測する。対象物計測部１０１により計測された情報は、シーン選択部１０４、派生シーン選択部１０８、動作修正部１１０等に渡される。対象物計測部１０１を構成するセンシングデバイスとしては、カメラやレーザ距離センサ等の対象物２０１の位置や姿勢、形状が計測できるものが用いられるとよい。なお、実環境において、対象物２０１のみでなくその周囲の形状も一緒に計測されてしまう場合は、ＩＣＰアルゴリズムやテンプレートマッチング等により、対象物２０１のみを抽出する事としてもよい。
【００５０】
環境計測部１０２は環境２０２の形状を計測し、環境２０２の形状情報を衝突回避部１１１等に渡す。環境計測部１０２を構成するセンシングデバイスとしては、カメラやレーザ距離センサ等の、周囲環境の形状が計測できるものが用いられるとよい。
【００５１】
動作計測部１００、対象物計測部１０１、環境計測部１０２を構成するセンシングデバイスには、それぞれ異なるデバイスが用いられてもよい。その他の構成例として、動作計測部１００のみモーションセンサ、対象物計測部１０１と環境計測部１０２が一つの形状計測センサとする場合や、全てを一つの形状計測センサとする場合などが挙げられる。１つのセンシングデバイスを２種類以上の計測部として機能させる場合は、センシングデバイスから得られたセンサ情報から、必要な情報（例えば対象物の情報や周囲環境の情報）を抽出または分離するための手段が設けられるとよい。
【００５２】
対象物計測部１０１と環境計測部１０２の機能を１つのセンシングデバイスにより実現する場合は、上記に述べたように環境２０２内から対象物２０１をテンプレートマッチングやＩＣＰアルゴリズム等で抽出すれば良い。さらに１つのセンシングデバイスを動作計測部１００としても機能させる場合は、センサ情報から人物情報を抜き出し、オペレータ２００の動作として抽出する手段が設けられると良い。抽出方法としては、既存の人物認識手法を利用すればよい。さらに、シーン選択部１０４において、オペレータ２００の動作を陽に計測せずとも、環境２０２・対象物２０１・オペレータ２００の外観画像のみで、シーンと対応付けられる場合は、オペレータ２００の教示動作の計測において分類せずともよい。
【００５３】
またロボットシステムは２つの対象物計測部１０１を有していてもよい。その場合、一方の対象物計測部１０１は、オペレータが教示動作を実施する際にオペレータが操作（把持など）する対象物（本明細書ではこれを「教示対象物」と呼ぶ）を計測するために用いられ、もう一方の対象物計測部１０１は、ロボットが実行動作を行う時にロボットが操作すべき対象物（本明細書ではこれを「操作対象物」と呼ぶ）を観測するために用いられる。
【００５４】
図５にシーン選択部１０４の行う処理の概要を示す。シーン選択部１０４は、動作計測部１００と対象物計測部１０１によって計測されたオペレータ３００の動作および対象物３０１の形状に最も近いシーンをシーン記憶部１０３内から選択する。シーンは、対象物３０１の種類（形状）および対象物３０１に対するロボットの操作方法（ロボット動作）を対にして記録したもので、シーン記憶部１０３には複数のシーンが記録されているものとする。
【００５５】
シーン（または派生シーン）をシーン記憶部１０３等に記憶する際、対象物の形状やロボット動作を何らかの形式の情報に変換して記憶する必要があるが、この情報の形式には、任意の形式が採用されてよい。本実施例における一例では、対象物の形状はＣＡＤデータによって表現され、ロボットによる操作方法（ロボット動作）としては、対象物の表面上のどの位置にどの程度の力を加えるかの情報、およびアームを伸ばす際の関節角の設定値が記録されているものとする。なお、シーンに含まれる対象物の情報としては、対象物の種類（形状）を特定可能な情報が含まれているだけで良いが、対象物の位置や大きさが含まれていてもよい。本実施例では特に断りがない限り、シーンには対象物の位置や大きさが含まれている前提で説明する。
【００５６】
シーン選択部１０４が、計測されたオペレータ３００の動作に最も近いロボット動作の情報を選択する際には、オペレータ３００の動作とロボット動作がどの程度似ているか、という類似性を求める必要がある。しかし、オペレータ３００の動作とロボット動作は、形状や機構の違い等、質が異なるため、直接両者の類似性を直接差分によって計算する事はできない。
【００５７】
そこで本実施例に係るロボットシステムでは、機械学習によって質の異なる両対象の対応関係を解決する。具体的にはロボットシステムでは、事前にオペレータ３００の動作・対象物３０１の計測結果（教示情報）とシーンの対応事例を対応記憶部１１４に格納しておき、教示情報を入力データ、シーンを教師データとした分類問題として、学習部１１５に学習させておく。機械学習方法としてはＳＶＭ、Ｂｏｏｓｔｉｎｇ、Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ等の手法を用いれば良い。また、質の異なる２種の対応関係を解決する手法であれば機械学習を用いずとも良い。
【００５８】
入力として与える計測結果の種類としては、オペレータ３００の手指の関節角および対象物の形状、あるいは空間全体の画像データなどが挙げられる。前者の場合、モーションセンサや対象物のみの切り出しが必要となるが、入力データの次元が低いため、学習サンプル数を低減できる。後者のように画像のみから学習を行う場合は、計測部をカメラ一つにまとめ、分類をする必要がないが、学習に用いるサンプル数が大きくなる。
【００５９】
オペレータは学習指示部１０００を用いて、教示情報とそれに対応するロボット動作の情報を対応付けて対応記憶部１１４に格納し、学習部１１５に学習の指示を出す。学習部１１５は、オペレータの動作と最も近いシーンを選択するための学習を行うことで、教示情報を、シーンを構成する情報（対象物の形状とロボット動作の情報で、シーンまたは派生シーンと同じ種類の情報が含まれるもの）に変換するためのルールを導出する。一例として学習部１１５は、教示情報を入力とし、シーンを構成する情報を出力とする関数を生成する。
【００６０】
そしてシーン選択部１０４がシーン記憶部１０３からシーンを選択する際、学習部１１５の生成した関数を用いて、動作計測部１００と対象物計測部１０１から得られたオペレータの動作及び対象物の計測結果（教示情報）を、シーンを構成する情報に変換する。そしてシーン選択部１０４は、シーン記憶部１０３に記録された各シーンと、変換して得られた情報との類似度を求め、最も類似度の高いシーンを選択する。シーンを構成する情報は、シーンと同種の情報から構成されているため、公知の方法等を用いて容易に類似度を求めることができる。
【００６１】
また、オペレータが教示をロボットに与えた際に、ロボットが誤ったシーンを選択した場合には、オペレータは学習指示部１０００を通し、オペレータの教示に対応する正しいシーンを設定させてもよい。学習部１１５は、この際の動作計測部１００および対象物計測部１０１の計測結果（つまり教示情報）と、学習指示部１０００によって設定された正しいシーンの対応関係を新たな学習用の事例サンプルとして対応記憶部１１４に追加し、学習部１１５では機械学習によって学習を行う。学習結果を基に、シーン選択部１０４は当該計測結果を用いて再度シーンを選択する。
【００６２】
図５においては、シーン記憶部１０３に記録されている対象物の形状としては丸・四角・三角の３種類が、一方持ち方としては片手・両手の２種類が記憶されている例を示している。この場合シーン記憶部１０３には、対象物と持ち方の組み合わせとして６種類のシーンが記憶される。これに対し、計測部（動作計測部１００、対象物計測部１０１）によりオペレータ３００が片手で丸い対象物３０１を把持する動作が計測された場合、シーン選択部１０４は、ロボット３０４が片手で丸い対象物３０３を把持するシーン３０２をシーン記憶部１０３から選択する。シーン選択部１０４は原則として、オペレータ３００の動作（持ち方）、対象物３０１の種類（形状等）に基づいてシーンを選択する。この時点では、計測した対象物３０１とシーンに記録されている対象物３０３の位置や大きさは一致していなくてもよい。
【００６３】
図６に、派生シーン作成部１０５の動作概要を示す。シーン３０２は対象物３０３の種類（形状等）およびロボット３０４の操作方法が記録されていたのに対し、派生シーンはシーンに記録された対象物の位置や大きさを変更したものであり、これを派生シーン作成部１０５が作成する。
【００６４】
派生シーン作成部１０５はシーン毎に、それぞれ多数の派生シーンをシーンに対応付けて派生シーン記憶部１０６に記憶する。本実施例では、シーンに記録された対象物はＣＡＤデータであるため、派生シーンにおいてはＣＡＤデータの位置・大きさを変更し、派生シーンの形状データとする。位置と大きさの変更は、ランダムに多数作成するか、所定のステップサイズで位置と大きさを変化させることで作成すればよい。
【００６５】
派生シーン記憶部１０６に位置・大きさを変化させた対象物が記憶される際、派生シーン作成部１０５は更に当該対象物を操作できるロボット動作の情報を生成し、位置・大きさを変化させた対象物に、生成されたロボット動作の情報を対応付けて記録する。派生シーン作成部１０５が、位置・大きさを変化させた対象物の操作方法（ロボット動作）を生成する際には、シーン記憶部１０３に記憶された対象物の操作方法を、位置・大きさの変化後の対象物の形状に合わせて修正することで、操作方法を生成するとよい。
【００６６】
たとえば対象物を握る動作を記録する場合、派生シーン作成部１０５は、シーンに記録された握り方を、位置・大きさ変化後の対象物上に線形補間することで、派生シーンとして記憶すべき握り方の動作を求める。もしくは物理シミュレーション等を使い、対象物を安定して把持できる持ち方を探索してもよい。ロボットアームの軌道は、前記持ち方に至るまでの腕の軌跡を、経路探索法によって算出する。探索法としては、Ｐｒｏｂａｂｌｉｓｔｉｃ  Ｒｏａｄｍａｐ、Ｒａｐｉｄｌｙ−ｅｘｐｌｏｒｉｎｇ  Ｒａｎｄｏｍ  Ｔｒｅｅｓなどを用いれば良い。線形補間で計算できないほどの形状の差異がある場合は、オペレータがその対象物の形状と操作方法を（人手で）求め、シーン追加部１０７を用いて、シーン記憶部１０３に新たにシーンを追加する。また、各派生シーンに含まれる対象物にロボット動作が対応付けられる際、前から掴む・横から掴む等、複数種類の動作が対応付けられてもよい。
【００６７】
派生シーンにおけるロボットの動作を生成した後、派生シーン作成部１０５は、作成した派生シーンを派生シーン記憶部１０６に記憶させる。さらに、２通り以上のロボットの動作方法がある場合は、派生シーン作成部１０５は派生シーンに２つ以上のロボット動作の情報を記録してもよい。図６の例で挙げられているシーン３０２にはロボットが片手で丸い対象物を把持する動作が記録されており、これに対応付けられる派生シーンとして、対象物の大きさとして３種類、位置として３種類、組み合わせることで９種類の派生シーンが記録されていることとする。なお、図６には、片手で丸い対象物を扱う場合の派生シーンのみ記載したが、図５の例に挙げられているその他の５種類のシーンについても、それぞれ派生シーンが作成される。
【００６８】
図７に派生シーン選択部１０８の動作概要を示す。派生シーン選択部１０８では、シーン選択部１０４で選択したシーン３０２に対応付けられた複数の派生シーンのうち、実環境と最も近い派生シーン５０１を選択する。派生シーンには、シーンが有する情報に加えて、対象物の形・位置・大きさがＣＡＤデータとして記憶されている。対象物計測部１０１により実環境内の対象物３０１の形・位置・大きさが計測されているので、派生シーン選択部１０８は、計測した対象物と、派生シーンに記録された対象物が最も一致するような派生シーン５０１を選択する。ここで、一致方法の算出は、空間を細かなグリッドに分割し、物体が存在する領域をＯＮ、存在しない領域をＯＦＦとして、両者の論理積や相互情報量を取ることで、どの程度マッチしているかを算出できる。
【００６９】
図７の例においては、まず、計測したオペレータ３００の動作と対象物３０１の種類に基づいて、シーン３０２が選択される。ここまではシーン選択部１０４によって行われる処理で、図５に示した処理と同じである。続いて派生シーン選択部１０８は、シーン３０２に対応付けられた派生シーン群に記録された対象物の位置・大きさと、計測した対象物３０１の位置・大きさを比較する事で、派生シーン５０１を選択する。図７では、机の奥側に小さな丸い対象物５００が配置されている派生シーンが最も近く、結果としてオペレータ３００の動作・対象物３０１の位置・大きさに合致した派生シーン５０１が選ばれていることとなる。
【００７０】
人の動作・対象物に関する計測結果と、大量に存在する派生シーンを機械学習によって直接対応付けようとした場合、大量の対応付け候補があることから、学習データを大量に用意する必要がある。これに対して、本実施例に係るロボットシステムでは、オペレータの動作・対象物に関する計測結果を、代表事例となる少数のシーンに対応付け、その上でシーンに派生シーンを対応付けるように構成されている。これにより本実施例に係るロボットシステムでは、人の動作・対象物に関する計測結果とシーンの対応付けの候補数を減らすことができ、機械学習実行時に用いる学習データが少なくて済む。派生シーンは、シミュレーションで作成できるため、物品の様々な配置状況に対応する事ができる。
【００７１】
図８に、オペレータが新たなシーンを作成・追加する際の、シーン追加部１０７が提供するユーザインタフェースの例を示す。シーン追加部１０７は、画面１３００内に編集中の対象物１３０１および対象物を配置する基準面１３０２を表示する。基準面１３０２は、対象物の配置先となる面で、実環境ではたとえば机上などに相当する面である。
【００７２】
オペレータが新たなシーンを作成する際には、まずプリミティブ形状群１３０３から対象物の形状を選択し、画面に選択した形状を表示させる。例えば円筒形状の物体の把持動作のシーンを作成する場合、プリミティブ形状群１３０３から円筒が選択されるとよい。続いてオペレータは、編集ツール群１３０４を用いて、選択した対象物のサイズや位置・向きを設定する。さらにオペレータは、ロボットの操作位置を編集する操作ツール群１３０５を用いて、ロボットが対象物１３０１をどのように操作するかを設定する。例えば、本実施例における把持操作の場合は、把持する位置１３０６と、力を加える方向を画面に表示した１３０７を書き込む。シーン追加部１０７は、オペレータによって入力されたこれらの情報をもとに、シーンを構成する情報を生成し、生成された情報をシーン記憶部１０３に記憶する。なお、派生シーン追加部１１３もシーン追加部１０７と同様の機能を提供するものであるので、派生シーン追加部１１３についての説明は略す。
【００７３】
続いて、動作工程で用いられる各機能ブロックの説明を行う。
【００７４】
図９にロボット動作選択部１０９の動作事例を示す。ロボット動作選択部１０９は、ロボット動作実行部１１２がロボットを動作させる時に実行される。もし派生シーンに２種類以上のロボット動作が紐づいていた場合に、ロボット動作選択部１０９は環境全体の状況からどちらのロボット動作が適切かを選択する。逆に派生シーンに１種類のロボット動作しか対応付けられていない場合、ロボット動作選択部１０９は実行されなくてよい。
【００７５】
ロボット動作の選択基準として、より安定動作する関節角や、より短い軌跡を選択するなどが挙げられる。例えば、安定動作を基準とする場合であれば、ロボット動作選択部１０９はロボットの各関節の安定性を評価する関数を予め有しており、複数のロボット動作について、いずれのロボット動作が安定であるかを評価する。評価関数としては、各関節を微小に動かした際に手先の位置がどのくらい変化するかを算出し、変化量が小さいほど安定とすればよい。選択基準として、軌跡の長さを選択する場合は、手先の移動距離を比較すればよい。図９においては、動作候補Ａ６００と動作候補Ｂ６０１を比較し、軌跡長が短い動作候補Ｂ６０１が選択されることになる。
【００７６】
図１０に動作修正部１１０について示す。動作修正部１１０は、実環境下の対象物の位置・大きさと、予め記憶しておいた派生シーン内の対象物の位置が異なっていた場合に、実環境下の対象物の位置・大きさに合わせてロボット動作を修正する。まず、派生シーン内の対象物７００のＣＡＤデータの位置・大きさと、実環境の対象物７０１の位置・大きさとの差異を算出する。算出方法としては、ＩＣＰアルゴリズムやテンプレートマッチング等の手法を用いる。実環境の対象物７０１の位置に対して、どのようにロボット動作を行えば所望する操作７０３を実施できるかを、派生シーンに記録した動作７０４を線形補間することによって算出する。もしくは、実環境の形状とロボットが衝突しないように、環境計測部１０２を用いてロボット自身の手先を計測し、ビジュアルフィードバックを用いて制御してもよい。
【００７７】
図１１に、動作修正部１１０において動作を線形補間し、本実施例において指先の位置を変更し、事前計算して求めてあった環境と、実際の環境が異なる場合においても把持できる動作方法を作成する処理の例を示す。本実施例ではグリッパ１５００の各指機構の動作１５０１、１５０２、１５０３を、それぞれ対象物１５０４上の把持位置１５０５に応じて線形補間することで、把持動作を可能とする。派生シーン等において事前計算して求めておいた動作１５０１を変形することで、動作１５０６に変形する。この際の変形量としては、元の動作１５０１において定義された指機構の軌道上と、実際の対象物１５０４の把持位置１５０５が最も近くなるような曲げ具合を計算することで求まる。同様に基本動作１５０３は、動作１２０７に変形される。本処理は指先の位置の変化を線形に変換する事で求めたが、ターゲットとなる指先の位置が求まれば、腕の動作としては、指先が求めた位置を満たすような姿勢を算出すればよい。冗長自由度の腕の場合は、当該姿勢は一意に求まらないが、関節角度が一定範囲内になるようにするなどの制約を設けることで、全関節の目標姿勢を一意に決めることは可能である。なお、この処理は派生シーン作成部１０５で用いられてもよい。
【００７８】
図１２に衝突回避部１１１について示す。衝突回避部１１１では環境計測部１０２の計測した周囲の環境の状態から、派生シーンに記録したロボットの軌跡を、周囲の存在物に衝突しないような動作の軌跡に変更する。例えば、把持動作の場合であれば、動作目標となる手先位置は不変であり、そこに到達するまでの経路および、手先以外の腕の形状を変更する。変更方法としては、既存の経路探索手段（Ｐｒｏｂａｂｌｉｓｔｉｃ  Ｒｏａｄｍａｐ、Ｒａｐｉｄｌｙ−ｅｘｐｌｏｒｉｎｇ  Ｒａｎｄｏｍ  Ｔｒｅｅｓ）などを用いれば良い。図１２においては、予め決めていた軌道８００上に、障害物８０１が計測され、障害物８０１と衝突しない軌道８０２に変化させている。この際、手先の状態８０３は変化させず、腕のみの軌跡・姿勢の変化で目的を達成できる。動作目標となる手先位置の変更が必要な場合であれば、どのように動作すれば目標を達成できるかを物理シミュレーションで算出し、それに従い動作を実行してもよい。ここでの目標は、シーンに依存し、把持動作であれば対象物を落とさないことを条件として、それを満たす状態を算出する。
【００７９】
以上が動作工程で用いられる各機能ブロックの説明である。なお、上ではロボット動作時に、派生シーンに記録された対象物の操作方法を実環境における対象物に合うように線形補間することでロボット動作を修正する例を説明した。しかしながらこのような方法では、実環境において存在する外的要因（重力や摩擦の影響）のために、実環境では十分な精度が出ない場合がある。そこで別の実施形態として、動作修正部１１０は実環境に合わせたロボット動作の修正を行ってもよい。
【００８０】
具体的な方法としては、動作修正部１１０は対象物計測部１０１によって実環境における対象物の形状を把握し、元の派生シーン情報９０１を初期状態として、その形状に応じて動作を修正する。修正方法として、動作をしつつ、どの関節を動かせば目標姿勢に近づくかのシミュレーションを行い、動作結果のフィードバックを受け、再度シミュレーションを行う処理を繰り返すことで、対象物を安定して把持できる持ち方を探索しながら動作を実施する。
【００８１】
また、動作修正部１１０によって派生シーンに記録されたロボット動作情報を修正した結果情報を、派生シーン記憶部１０６に反映するようにしてもよい。その場合の例を図１３に示す。先に述べたとおり、動作工程では、派生シーン選択部１０８によって選択された派生シーンの情報（図１３ではこれを「派生シーン情報９０１」と表記する）を、動作修正部１１０が実環境にあわせて修正する。なお、派生シーンに複数のロボット動作が対応付けられている場合には、ロボット動作選択部１０９によって１つのロボット動作が選択されるが、図１３ではロボット動作選択部１０９についての記述は略している。
【００８２】
動作更新部９０２は、動作修正部１１０によって修正された派生シーン情報９０１を用いて、派生シーン記憶部１０６に記録されているロボット動作の情報を上書きする。これにより、派生シーン記憶部１０６に記憶されているロボット動作の情報が、実環境を考慮したロボット動作の情報に書き換えられ、今後同様の動作をロボットが行う際に、実環境の状態により適合したロボット動作が可能になる。
【００８３】
派生シーンを作成した際のシミュレーションとの違いは、派生シーン作成では関節角の制御命令に対して、ロボットがどのように動くかはシミュレーションで事前計算するため、命令数分の誤差が蓄積するのに対し、動作修正部１１０においては動作時に制御命令による動作の結果を常にフィードバックすることで、制御命令の誤差を把握し、誤差を減らす制御命令を更に送ることができるので、精度良い制御命令を与えられる。  
【実施例２】
【００８４】
続いて実施例２の説明を行う。実施例２に係るロボットシステムは、実施例１で説明したロボットシステムと同じ機能ブロックを有し、またハードウェア構成も実施例１で説明したものと同じである。
【００８５】
ただし実施例２に係るロボットシステムには、上の実施例１に係るロボットシステムに対して、データの共有機能が付加されている。データの共有機能とは具体的には、ロボットシステムにおいて用いられるシーン（または派生シーン）等のデータを、複数のロボットシステムが使用できるようにする機能である。
【００８６】
図１４を用いて実施例２におけるロボットシステムについて説明する。実施例２におけるロボットシステム１４１０−１及び１４１０−２はそれぞれ、実施例１で説明した各機能ブロックを有し、それに加えてダウンロード部１１０１とアップロード部１１０２を有する。ロボットシステム（１４１０−１、１４１０−２）は、広域ネットワーク１４２０等を介して、データセンタ（中央記憶部）１１００に接続される。データセンタ１１００は、複数のロボットシステム（１４１０−１、１４１０−２）からデータを収集して、記憶しておく機能を有する。たとえばデータセンタ１１００は、ファイルサーバ等の大規模な記憶装置により構成される。なお、図１４では２台のロボットシステムのみが示されているが、３台以上のロボットシステムがデータセンタ１１００に接続されていてよい。
【００８７】
ダウンロード部１１０１は、データセンタ１１００に記憶されているデータを取得する。一方アップロード部１１０２は、ロボットシステム（１４１０−１，１４１０−２）に記憶されているデータをデータセンタ１１００に送信し、データセンタ１１００に記憶させる。データセンタ１１００に記憶されるデータの例は、各ロボットシステム（１４１０−１，１４１０−２）において作成されたシーン、または派生シーンである。
【００８８】
実施例２に係る各ロボットシステム（１４１０−１，１４１０−２）は、実施例１に係るロボットシステムと同様に、作成（または修正）されたシーンや派生シーンをそれぞれシーン記憶部１０３、派生シーン記憶部１０６に記憶する。実施例２におけるロボットシステムは、それと共にアップロード部１１０２を用いて、作成されたシーンや派生シーンをデータセンタ１１００に送信し、データセンタ１１００に記憶させる。複数のロボットシステムが作成されたシーンや派生シーンをデータセンタ１１００に記憶することで、データセンタ１１００には大量のシーン・派生シーンが集約記憶される。
【００８９】
さらに実施例２におけるロボットシステム（たとえばロボットシステム１４１０−１）はダウンロード部１１０１により、他のロボットシステム（１４１０−２）が作成したシーン（または派生シーン）をデータセンタ１１００から取得し、自身の有するシーン記憶部１０３、派生シーン記憶部１０６に格納し、それをロボット動作時（特に教示工程）において利用することができる。このようにすることで、実施例２におけるロボットシステムは、他のロボットシステムにおいて作成（更新）されたデータを共有使用することができる。
【００９０】
また、シーン（または派生シーン）以外のデータが共有されてもよい。たとえば対応記憶部１１４に記憶された情報（教示情報とシーンとの対応関係の情報）もデータセンタ１１００を介して複数のロボットシステムで共有されてもよい。
【実施例３】
【００９１】
続いて実施例３の説明を行う。図１５は、実施例３に係るロボットシステムの機能構成図である。実施例３に係るロボットシステムは、動作手順記憶部１２０と動作指示部１３０を有する点が、実施例１に係るロボットシステムと主に異なる点である。動作手順記憶部１２０は、派生シーン選択部１０８によって選択された派生シーンを記憶するための記憶領域である。なお以下の説明において、教示工程において用いられる機能ブロック（図中の点線枠１１内に含まれる機能ブロック群）の集合を「教示部１１」と呼び、またロボットの動作工程で用いられる機能ブロック（図中の点線枠１２内に含まれる機能ブロック群）の集合を「動作部１２」と呼ぶ。
【００９２】
教示工程においてオペレータが何らかの動作を行うと、実施例１で説明したとおり、教示部１１に含まれる派生シーン選択部１０８がオペレータの教示動作に類似した派生シーンを選択する。実施例３に係るロボットシステムでは、派生シーン選択部１０８は、選択した派生シーンを動作手順記憶部１２０に記憶し、教示工程は終了する。
【００９３】
ロボットの動作工程が開始される契機は、ロボットシステムのユーザ（オペレータ）の指示により定まる。動作指示部１３０は、オペレータが動作工程を開始することをロボットシステムに通知するためのユーザインタフェースである。オペレータが動作指示部１３０を用いて、動作工程の開始を指示すると、ロボット動作選択部１０９は動作手順記憶部１２０に記録された派生シーンを選択する。
【００９４】
その後の動作は、実施例１で説明したものと同様で、ロボット動作実行部１１２が派生シーンに記録されたロボット動作の情報に基づいて、ロボットを駆動させる。またその際に、動作修正部１１０や衝突回避部１１１によって、派生シーンに記録されたロボット動作情報が修正される点も、実施例１で説明したものと同じである。
【００９５】
実施例３に係るロボットシステムでは、動作手順記憶部１２０にロボット動作（派生シーン）を記録しておき、後からこの記録されたロボット動作に基づいてロボットを動作させることができる。つまりロボットは、必ずしもオペレータ動作と同期して動作する必要はなく、実施例３に係るロボットシステムではオペレータが教示した動作を、オペレータが希望するタイミングでロボットに再生実行させることができる。
【符号の説明】
【００９６】
１００・・・動作計測部、１０１・・・対象物計測部、１０２・・・環境計測部、１０３・・・シーン記憶部、１０４・・・シーン選択部、１０５・・・派生シーン作成部、１０６・・・派生シーン記憶部、１０７・・・シーン追加部、１０８・・・派生シーン選択部、１０９・・・ロボット動作選択部、１１０・・・動作修正部、１１１・・・衝突回避部、１１２・・・ロボット動作実行部、１１３・・・派生シーン追加部
【図１】
2018051652.tif 000003
【図２】
2018051652.tif 000004
【図３】
2018051652.tif 000005
【図４】
2018051652.tif 000006
【図５】
2018051652.tif 000007
【図６】
2018051652.tif 000008
【図７】
2018051652.tif 000009
【図８】
2018051652.tif 000010
【図９】
2018051652.tif 000011
【図１０】
2018051652.tif 000012
【図１１】
2018051652.tif 000013
【図１２】
2018051652.tif 000014
【図１３】
2018051652.tif 000015
【図１４】
2018051652.tif 000016
【図１５】
2018051652.tif 000017