(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-04
(45)【発行日】2022-04-12
(54)【発明の名称】情報処理装置及び情報処理方法
(51)【国際特許分類】
B25J 3/00 20060101AFI20220405BHJP
【FI】
B25J3/00 Z
(21)【出願番号】P 2019017756
(22)【出願日】2019-02-04
(62)【分割の表示】P 2018562142の分割
【原出願日】2018-05-16
【審査請求日】2021-05-13
(31)【優先権主張番号】P 2017098533
(32)【優先日】2017-05-17
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】517135833
【氏名又は名称】Telexistence株式会社
(74)【代理人】
【識別番号】100166006
【氏名又は名称】泉 通博
(74)【代理人】
【識別番号】100154070
【氏名又は名称】久恒 京範
(74)【代理人】
【識別番号】100153280
【氏名又は名称】寺川 賢祐
(72)【発明者】
【氏名】チャリス ラサンタ フェルナンド
(72)【発明者】
【氏名】舘 ▲すすむ▼
(72)【発明者】
【氏名】佐野 元紀
(72)【発明者】
【氏名】南澤 孝太
【審査官】杉山 悟史
(56)【参考文献】
【文献】特開2017-064831(JP,A)
【文献】特開平03-294911(JP,A)
【文献】特開2006-146435(JP,A)
【文献】米国特許出願公開第2013/0173055(US,A1)
【文献】特開昭62-29196(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
ロボットの姿勢を変化させる前の前記ロボットの姿勢を示す変化前姿勢情報を取得するロボット情報取得部と、
前記変化前姿勢情報が示す前記ロボットの姿勢において基準ユーザーが行った操作を基準ユーザー姿勢情報として取得するユーザー情報取得部と、
前記変化前姿勢情報と前記基準ユーザー姿勢情報とを関連付けることにより、前記変化前姿勢情報に対応する前記ロボットの姿勢を示す基準姿勢情報を生成する生成部と、
を有する
情報処理装置。
【請求項2】
前記生成部は、複数の前記基準ユーザーに対応する複数の前記変化前姿勢情報と、複数の前記基準ユーザー姿勢情報と、を教師データとして用いて、前記ロボット情報取得部が取得した前記変化前姿勢情報が示す前記ロボットの姿勢と前記ユーザー情報取得部が取得した前記基準ユーザー以外のユーザーの姿勢とに適した前記ロボットの姿勢を示す前記基準姿勢情報を出力可能な機械学習モデルを生成する、
請求項1に記載の
情報処理装置。
【請求項3】
前記生成部は、前記機械学習モデルに、前記ロボット情報取得部が取得した前記変化前姿勢情報と前記ユーザー情報取得部が取得した前記基準ユーザー姿勢情報とを入力することにより、前記基準姿勢情報を生成する、
請求項2に記載の
情報処理装置。
【請求項4】
前記生成部は、生成した前記機械学習モデルに、新たに前記ロボット情報取得部が取得した前記変化前姿勢情報と前記ユーザー情報取得部が取得した前記基準ユーザー姿勢情報とを入力することにより、前記機械学習モデルを更新する、
請求項
2又は3に記載の
情報処理装置。
【請求項5】
ロボットの姿勢を変化させる前の前記ロボットの姿勢を示す変化前姿勢情報と、前記変化前姿勢情報が示す前記ロボットの姿勢において基準ユーザーが行った操作に基づいて前記ロボットが姿勢を変化させた後の前記ロボットの姿勢を示す基準変化後姿勢情報と、を取得するロボット情報取得部と、
前記変化前姿勢情報と前記基準変化後姿勢情報とを関連付けることにより、前記変化前姿勢情報に対応する前記ロボットの姿勢を示す基準姿勢情報を生成する生成部と、
を有する
情報処理装置。
【請求項6】
前記生成部は、複数の前記基準ユーザーに対応する複数の前記変化前姿勢情報と、複数の前記基準変化後姿勢情報と、を教師データとして用いて、前記ロボット情報取得部が取得した前記変化前姿勢情報が示す前記ロボットの姿勢に適した前記ロボットの姿勢を示す前記基準姿勢情報を出力可能な機械学習モデルを生成する、
請求項
5に記載の
情報処理装置。
【請求項7】
前記生成部は、前記機械学習モデルに、前記ロボット情報取得部が取得した前記変化前姿勢情報を入力することにより、前記基準姿勢情報を生成する、
請求項
6に記載の
情報処理装置。
【請求項8】
前記生成部は、生成した前記機械学習モデルに、新たに前記ロボット情報取得部が取得した前記変化前姿勢情報と前記基準変化後姿勢情報とを入力することにより、前記機械学習モデルを更新する、
請求項
6又は7に記載の
情報処理装置。
【請求項9】
コンピューターが実行する、
ロボットの姿勢を変化させる前の前記ロボットの姿勢を示す変化前姿勢情報を取得するステップと、
前記変化前姿勢情報が示す前記ロボットの姿勢において基準ユーザーが行った操作を基準ユーザー姿勢情報として取得するステップと、
前記変化前姿勢情報と前記基準ユーザー姿勢情報とを関連付けることにより、前記変化前姿勢情報に対応する前記ロボットの姿勢を示す基準姿勢情報を生成するステップと、
を有する、
情報処理方法。
【請求項10】
コンピューターが実行する、
ロボットの姿勢を変化させる前の前記ロボットの姿勢を示す変化前姿勢情報と、前記変化前姿勢情報が示す前記ロボットの姿勢において基準ユーザーが行った操作に基づいて前記ロボットが姿勢を変化させた後の前記ロボットの姿勢を示す基準変化後姿勢情報と、を取得するステップと、
前記変化前姿勢情報と前記基準変化後姿勢情報とを関連付けることにより、前記変化前姿勢情報に対応する前記ロボットの姿勢を示す基準姿勢情報を生成するステップと、
を有する、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ロボットを制御するための制御装置、ロボット制御方法及びロボット制御システムに関する。
【背景技術】
【0002】
ユーザーの姿勢を検出し、検出した当該姿勢に対応する姿勢にロボットの姿勢を変化させる技術の研究や開発が行われている。
【0003】
これに関し、ユーザーが装着するユーザー装置によってユーザーの姿勢を検出し、検出した当該姿勢に対応する姿勢にロボットの姿勢を変化させるとともに、ロボットが備える各種のセンサーによって検出した検出情報に応じた処理をユーザー装置に行わせ、当該検出情報に応じた情報をユーザーに提供するロボットシステムが知られている(特許文献1、非特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【非特許文献】
【0005】
【文献】Charith Lasantha Fernando, Masahiro Furukawa, Tadatoshi Kurogi, Sho Kamuro, Katsunari Sato, Kouta Minamizawa and Susumu Tach,「Design of TELESAR V for Transferring Bodily Consciousness in Telexistence」, 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems(Portugal), October 7-12, 2012.
【発明の概要】
【発明が解決しようとする課題】
【0006】
このようなロボットシステムでは、ユーザーは、ユーザー装置を装着したままユーザー自身の姿勢を変化させることにより(すなわち、動くことにより)、ロボットを操作することができる。しかしながら、ロボットに所定の作業を行わせる場合、従来のロボットシステムでは、ロボットの操作に習熟していないユーザーは、ロボットの操作に習熟したユーザーと比較して、高い精度で当該作業をロボットに行わせることが困難な場合があった。
【0007】
そこで本発明は、ユーザーによるロボットの操作を補助することができる制御装置、ロボット制御方法及びロボット制御システムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の第1の態様の制御装置は、ロボットを操作する第1ユーザーの姿勢を示す第1ユーザー姿勢情報を取得する第1情報取得部と、前記第1ユーザー姿勢情報に基づいて前記ロボットの姿勢を変化させる前の前記ロボットの姿勢である変化前姿勢を示す変化前姿勢情報を取得する第2情報取得部と、前記変化前姿勢情報と、前記変化前姿勢情報が示す前記変化前姿勢を前記ロボットがしている時点で前記第1情報取得部が取得した前記第1ユーザー姿勢情報とに基づいて、前記第1ユーザーの姿勢と異なる標的姿勢を前記ロボットの姿勢に決定する決定部と、を有する。
【0009】
前記ロボットの姿勢を変化させるために用いられる複数の基準姿勢情報のうち、前記変化前姿勢情報と、前記変化前姿勢情報が示す前記変化前姿勢をしている時点で前記第1情報取得部が取得した前記第1ユーザー姿勢情報とに対応する対象基準姿勢情報を特定する特定部をさらに有してもよい。
【0010】
前記特定部は、それぞれ前記変化前姿勢情報と、前記変化前姿勢情報が示す前記変化前姿勢をしている過去の時点において取得された前記第1ユーザーと異なる第2ユーザーの姿勢を示す基準姿勢情報とが関連付けられた前記複数の基準情報から選択した一の基準情報に対応する前記基準姿勢情報を前記対象基準姿勢情報として選択してもよい。
【0011】
前記特定部は、前記複数の基準情報の中から、前記第1情報取得部が取得した前記第1ユーザー姿勢情報と、前記第2情報取得部が取得した前記変化前姿勢情報とに基づいて、前記第1ユーザーが意図した前記標的姿勢に前記ロボットの姿勢を変化させられる蓋然性が相対的に高い一の基準情報を選択してもよい。
【0012】
前記特定部は、前記第1ユーザー姿勢情報と前記変化前姿勢情報とに基づいて、前記第1ユーザーが意図した前記標的姿勢を推定し、推定した前記標的姿勢に前記ロボットの姿勢を変化させられる蓋然性が相対的に高い一の基準情報を選択してもよい。
【0013】
前記特定部は、複数の前記変化前姿勢情報と複数の前記基準姿勢情報とを教師データとして作成された機械学習モデルに前記変化前姿勢情報と前記第1ユーザー姿勢情報とを入力することにより、前記対象基準姿勢情報を特定してもよい。
【0014】
前記特定部は、前記第1情報取得部が取得した前記第1ユーザー姿勢情報に基づいて、前記ロボットが備える一以上のモーターそれぞれの回動角、角速度、角加速度及びトルクを示す仮標的姿勢情報を生成し、生成した前記仮標的姿勢情報と前記変化前姿勢情報とに基づいて前記対象基準姿勢情報を特定してもよい。
【0015】
前記第1ユーザーと異なる第2ユーザーの姿勢を示す第2ユーザー姿勢情報を取得する第3情報取得部と、前記変化前姿勢情報と前記基準姿勢情報としての前記第2ユーザー姿勢情報とを関連付けることにより、前記複数の基準情報を生成する生成部と、をさらに有してもよい。
【0016】
前記生成部は、前記変化前姿勢情報と前記第2ユーザー姿勢情報とを教師データとして、入力された前記変化前姿勢情報と前記第1ユーザー姿勢情報とに適した前記基準姿勢情報を出力可能な機械学習モデルを生成してもよい。
【0017】
前記第2ユーザー姿勢情報に基づいて前記ロボットが姿勢を変化させた後の変化後姿勢を示す変化後姿勢情報を取得する第4情報取得部と、前記変化前姿勢情報と前記変化後姿勢情報とに基づいて前記第2ユーザー姿勢情報を特定し、前記変化前姿勢情報と、特定した前記第2ユーザー姿勢情報とを関連付けることにより、前記複数の基準姿勢情報を生成する生成部と、をさらに有してもよい。
【0018】
前記第1情報取得部は、時刻に関連付けて前記第1ユーザー姿勢情報を取得し、前記第2情報取得部は、時刻に関連付けて前記変化前姿勢情報を取得し、前記決定部は、同一の時刻に関連付けられた前記変化前姿勢情報と前記第1ユーザー姿勢情報とに基づいて、前記標的姿勢を前記ロボットの姿勢に決定してもよい。
【0019】
本発明の第2の態様のロボット制御方法は、コンピューターが実行する、ロボットを操作する第1ユーザーの姿勢を示す第1ユーザー姿勢情報を取得するステップと、前記第1ユーザー姿勢情報に基づいて前記ロボットの姿勢を変化させる前の前記ロボットの姿勢である変化前姿勢を示す変化前姿勢情報を取得するステップと、前記変化前姿勢情報と、前記変化前姿勢情報が示す前記変化前姿勢を前記ロボットがしている時点で取得した前記第1ユーザー姿勢情報とに基づいて、前記第1ユーザーの姿勢と異なる標的姿勢を前記ロボットの姿勢に決定するステップと、を有する。
【0020】
本発明の第3の態様のロボット制御システムは、ロボットと、前記ロボットを操作する第1ユーザーに関する情報を検出するユーザー装置と、前記ロボットを制御するロボット制御装置と、前記ユーザー装置及び前記ロボット制御装置との間で通信可能な制御装置と、を備え、前記ユーザー装置は、前記第1ユーザーの姿勢を示す第1ユーザー姿勢情報を前記制御装置に送信し、前記ロボット制御装置は、前記制御装置が決定した標的姿勢になるように前記ロボットの姿勢を制御し、前記制御装置は、前記第1ユーザー姿勢情報を取得する第1情報取得部と、前記第1ユーザー姿勢情報に基づいて前記ロボットの姿勢を変化させる前の前記ロボットの姿勢である変化前姿勢を示す変化前姿勢情報を取得する第2情報取得部と、前記変化前姿勢情報と、前記変化前姿勢情報が示す前記変化前姿勢を前記ロボットがしている時点で前記第1情報取得部が取得した前記第1ユーザー姿勢情報とに基づいて、前記第1ユーザーの姿勢と異なる前記標的姿勢を前記ロボットの姿勢に決定する決定部と、前記標的姿勢を前記ロボット制御装置に送信する送信部と、を有するロボット制御システム。
【発明の効果】
【0021】
本発明によれば、ユーザーによるロボットの操作を補助することができる制御装置を提供することができる。
【図面の簡単な説明】
【0022】
【
図1】実施形態に係るロボットシステム1の構成の一例を示す図である。
【
図2】ロボット制御装置30の機能構成の一例を示す図である。
【
図3】ロボット制御装置30がロボット20を動作させる処理の流れの一例を示す図である。
【
図4】ロボット制御装置30が基準情報を生成する処理の流れの一例を示す図である。
【
図5】サーバーSBが制御装置36を備える場合に基準姿勢情報を生成する手順について説明するための図である。
【
図6】サーバーSBが制御装置36を備える場合にロボット20を制御する手順について説明するための図である。
【発明を実施するための形態】
【0023】
<ロボットシステムの概要>
まず、ロボットシステム1の概要について説明する。ロボットシステム1は、ユーザーが装着するユーザー装置によってユーザーの姿勢を検出し、検出した当該姿勢に対応する姿勢にロボットの姿勢を変化させる。また、ロボットシステム1は、ロボットが備える各種のセンサーによって検出された検出情報に応じた処理をユーザー装置に行わせ、当該検出情報に応じた情報をユーザーに提供する。
【0024】
より具体的には、ロボットシステム1は、ユーザーに関する情報を検出するユーザー装置(以下において説明する例では、ユーザー装置10)と、ロボット(以下において説明する例では、ロボット20)と、ロボットを制御するロボット制御装置(以下において説明する例では、ロボット制御装置30)とを備える。ロボットシステム1は、ユーザーの姿勢であるユーザー姿勢を示すユーザー姿勢情報を含む第1情報をユーザー装置10から取得する。ロボットシステム1は、取得した第1情報に基づいて姿勢を変化させる前のロボットの姿勢である変化前姿勢を、取得した第1情報に含まれるユーザー姿勢情報が示すユーザー姿勢に対応する姿勢である標的姿勢に変化させるとともに、ロボットにより検出された検出情報に応じた処理をユーザー装置10に行わせる。ロボットシステム1は、ユーザー装置10に当該処理を行わせることにより、検出情報に応じた情報をユーザーに提供する。
【0025】
ロボットシステム1では、ユーザーは、ユーザー装置10を装着したままユーザー自身の姿勢を変化させることにより(すなわち、ユーザーが動くことにより)、ロボットを操作することができる。ロボットシステム1は、ロボットの操作に習熟していないユーザーであっても、ロボットの操作に習熟しているユーザーと同等の操作をできるようにすることを特徴としている。
【0026】
以下では、説明の便宜上、ロボットシステム1が備えるロボットの操作に習熟していないユーザーのことを第1ユーザーと称し、当該操作に習熟しているユーザーのことを第2ユーザーと称して説明する。すなわち、第1ユーザーは、例えば、当該操作についての素人であり、第2ユーザーは、例えば、当該操作についての玄人である。また、以下では、説明の便宜上、第1ユーザーにより操作されるロボットを第1ロボットと称し、第2ユーザーにより操作されるロボットを第2ロボットと称して説明する。なお、第1ロボットと第2ロボットは、同一のロボットであってもよく、互いに異なるロボットであってもよい。
【0027】
従来のロボットシステムが抱える問題を解決するため、ロボットシステム1は、後述する制御装置36を備える。制御装置36は、第1ユーザーの姿勢である第1ユーザー姿勢を示す第1ユーザー姿勢情報を含む第1情報を取得する。また、制御装置36は、取得した第1情報に基づいて姿勢を変化させる前の第1ロボットの姿勢である変化前姿勢を示す変化前姿勢情報と前述の検出情報とのうち少なくとも変化前姿勢情報を含む第2情報を取得する。
【0028】
制御装置36は、第2ユーザーの姿勢である第2ユーザー姿勢を示す第2ユーザー姿勢情報毎に、第2ユーザー姿勢情報と基準となる姿勢を示す基準姿勢情報とが対応付けられた情報を含む基準情報と、取得した第1情報と、取得した第2情報とに基づいて、第1ロボットの姿勢であって当該第1情報に含まれている第1ユーザー姿勢情報が示す第1ユーザー姿勢に対応する標的姿勢を決定する。これにより、制御装置36は、ユーザーによるロボットの操作を補助することができる。ロボット制御装置は、制御装置36により決定された当該標的姿勢に第1ロボットの姿勢を変化させる。以下では、制御装置36を備えたロボットシステム1の構成と、制御装置36が行う処理とについて詳しく説明する。
【0029】
<ロボットシステムの構成と概要>
次に、ロボットシステム1の構成と概要について説明する。
図1は、実施形態に係るロボットシステム1の構成の一例を示す図である。ロボットシステム1は、ユーザー装置10と、ロボット20と、データベースDBを格納したサーバーSBを備える。また、ロボットシステム1において、ロボット20は、ロボット制御装置30を内蔵している。なお、ロボット20は、ロボット制御装置30を内蔵する構成に代えて、ロボット20の外部に設置されたロボット制御装置30と有線又は無線によって互いに通信可能に接続される構成であってもよい。
【0030】
ここで、以下では、一例として、ロボットシステム1において、ロボット制御装置30が前述の制御装置36を備える場合について説明する。なお、ロボットシステム1において、制御装置36は、ロボット制御装置30に備えられる構成に代えて、ユーザー装置10と、ロボット20と、サーバーSBとのいずれかに備えられる構成であってもよい。
【0031】
ロボットシステム1では、ユーザー装置10とロボット20は、ネットワークNを介して互いに通信可能に接続される。なお、ユーザー装置10とロボット20は、ネットワークNを介さずに有線又は無線によって互いに通信可能に接続される構成であってもよい。
【0032】
ユーザー装置10とサーバーSBは、ネットワークNを介して互いに通信可能に接続される。なお、ユーザー装置10とサーバーSBは、ネットワークNを介さずに有線又は無線によって互いに通信可能に接続される構成であってもよい。
【0033】
ロボット20とサーバーSBは、ネットワークNを介して互いに通信可能に接続される。なお、ロボット20とサーバーSBは、ネットワークNを介さずに有線又は無線によって互いに通信可能に接続される構成であってもよい。
【0034】
ネットワークNは、如何なる通信網であってもよい。ネットワークNは、例えば、インターネット、移動体通信網、又は専用線通信網等である。
【0035】
ユーザー装置10は、ユーザーに関する情報を検出する。ユーザーに関する情報には、ユーザーの姿勢であるユーザー姿勢を示すユーザー姿勢情報が含まれる。なお、ユーザーに関する情報には、ユーザー姿勢情報に加えて、他の情報が含まれる構成であってもよい。また、本実施形態に係るユーザー装置10は、ユーザーが装着する装置である。
【0036】
なお、ユーザー装置10は、ユーザーに関する情報を検出可能な装置であれば、ユーザーが装着しない装置であってもよい。
図1に示した例では、ユーザー装置10は、第1ユーザーU1に装着されている。このため、ユーザー装置10は、第1ユーザーU1に関する情報(すなわち、第1ユーザーU1の姿勢である第1ユーザー姿勢を示すユーザー姿勢情報である第1ユーザー姿勢情報が含まれる情報)を検出する。以下では、一例として、
図1に示したように、ユーザー装置10が第1ユーザーU1に装着されている場合を例に挙げて説明する。すなわち、以下の説明において、ロボット20は、前述の第1ロボットの一例である。
【0037】
ユーザー装置10は、ユーザー姿勢を検出する各種のセンサーを備えており、これらのセンサーからの出力値に基づくモーションキャプチャーによってユーザー姿勢を検出する。また、ユーザー装置10は、所定時間が経過する毎にユーザー姿勢を検出する。ユーザー装置10は、検出したユーザー姿勢を示すユーザー姿勢情報を含むユーザー情報を生成し、生成したユーザー情報をロボット20にネットワークNを介して出力する。これにより、ユーザー装置10は、当該ユーザー情報を取得したロボット制御装置30の処理によって、当該ユーザー情報に含まれるユーザー姿勢情報が示すユーザー姿勢に対応する姿勢である標的姿勢にロボット20の姿勢を変化させる。
【0038】
ここで、ユーザー装置10は第1ユーザーU1に装着されているため、所定時間が経過する毎に第1ユーザーU1の姿勢である第1ユーザー姿勢を検出する。ユーザー装置10は、検出した第1ユーザー姿勢を示す第1ユーザー姿勢情報を含むユーザー情報を生成し、生成したユーザー情報をロボット20にネットワークNを介して出力する。これにより、ユーザー装置10は、当該ユーザー情報を取得したロボット制御装置30の処理によって、当該ユーザー情報に含まれる第1ユーザー姿勢情報が示す第1ユーザー姿勢に対応する標的姿勢にロボット20の姿勢を変化させる。
【0039】
所定時間は、例えば、10ミリ秒である。なお、所定時間は、10ミリ秒よりも短い時間であってもよく、10ミリ秒よりも長い時間であってもよい。
【0040】
より具体的には、ユーザー装置10は、ヘッドマウントディスプレイ11と、右手用のデータグローブであるデータグローブ12と、左手用のデータグローブであるデータグローブ13と、図示しないユーザー装置制御部を備える。
【0041】
ヘッドマウントディスプレイ11は、ユーザーの頭部に装着される。ヘッドマウントディスプレイ11は、図示しない表示部を備え、当該表示部に画像を表示させる。当該表示部は、ヘッドマウントディスプレイ11がユーザーの頭部に装着された場合に、ユーザーの視界の一部又は全部を覆うディスプレイパネルである。これにより、ヘッドマウントディスプレイ11は、当該表示部に表示させた画像をユーザーに見せることができる。なお、当該ディスプレイパネルは、液晶ディスプレイパネル、あるいは、有機EL(ElectroLuminescence)ディスプレイパネル等であるが、他のディスプレイパネルであってもよい。また、当該画像は例えば動画像であるが、これに代えて、静止画像であってもよい。
【0042】
また、ヘッドマウントディスプレイ11は、音を出力するスピーカーを備える。また、ヘッドマウントディスプレイ11は、ユーザーの頭部の姿勢であるユーザー頭部姿勢を検出するセンサーを備える。当該センサーは、ユーザー頭部姿勢を検出可能なセンサーであれば、如何なるセンサーであってもよい。ヘッドマウントディスプレイ11は、ユーザー装置制御部からの要求に応じて、当該センサーによってユーザーの頭部の姿勢を検出する。ヘッドマウントディスプレイ11は、検出したユーザーの頭部の姿勢を示す情報をユーザー装置制御部に出力する。なお、ヘッドマウントディスプレイ11は、ユーザーの頭部の姿勢に代えて、ユーザーの視線の方向を検出する構成であってもよい。これらの場合、ヘッドマウントディスプレイ11は、ユーザーの視線の方向を検出するセンサーを備える。
【0043】
ここで、ヘッドマウントディスプレイ11は、第1ユーザーU1の頭部に装着されているため、当該表示部に表示させた画像を第1ユーザーU1に見せることができる。また、ヘッドマウントディスプレイ11は、ユーザー装置制御部からの要求に応じて、第1ユーザーU1の頭部の姿勢である第1ユーザー頭部姿勢を検出する。ヘッドマウントディスプレイ11は、検出した第1ユーザー頭部姿勢を示す情報をユーザー装置制御部に出力する。
【0044】
データグローブ12は、ユーザーの右手に装着される。データグローブ12は、当該右手の各指の姿勢であるユーザー右手指姿勢、ユーザーの右腕の姿勢であるユーザー右腕姿勢のそれぞれを検出する各種のセンサーを備える。当該各種のセンサーは、ユーザー右手指姿勢、ユーザー右腕姿勢を検出可能なセンサーであれば、如何なるセンサーであってもよい。データグローブ12は、ユーザー装置制御部からの要求に応じて、ユーザー右手指姿勢とユーザー右腕姿勢を検出する。データグローブ12は、検出したユーザー右手指姿勢を示す情報及びユーザー右腕姿勢を示す情報をユーザー装置制御部に出力する。
【0045】
なお、データグローブ12は、ユーザー右手指姿勢及びユーザー右腕姿勢のいずれか一方又は両方に代えて、ユーザーの他の部位の姿勢を検出する構成であってもよく、ユーザー右手指姿勢及びユーザー右腕姿勢のいずれか一方又は両方に加えて、ユーザーの他の部位の姿勢を検出する構成であってもよい。これらの場合、データグローブ12は、当該他の部位の姿勢を検出するセンサーを備える。
【0046】
また、データグローブ12は、ユーザーの部位のうち予め決められた1以上の部位のそれぞれに圧力を加える図示しない加圧装置を備える。当該予め決められた1以上の部位は、例えば、ユーザーの右手の各指先である。なお、予め決められた1以上の部位は、これに代えて、ユーザーの部位のうち予め決められた他の部位であってもよい。加圧装置は、ユーザー装置制御部からの要求に応じて、予め決められた以上の部位のうち当該要求が示す部位に、当該要求が示す圧力を加える。
【0047】
ここで、データグローブ12は第1ユーザーU1の右手に装着されているため、ユーザー装置制御部からの要求に応じて、第1ユーザーの右手の各指の姿勢である第1ユーザー右手指姿勢と第1ユーザーの右腕の姿勢である第1ユーザー右腕姿勢を検出する。データグローブ12は、検出した第1ユーザー右手指姿勢を示す情報及び第1ユーザー右腕姿勢を示す情報をユーザー装置制御部に出力する。
【0048】
データグローブ13はユーザーの左手に装着される。データグローブ13は、当該左手の各指の姿勢であるユーザー左手指姿勢、ユーザーの左腕の姿勢であるユーザー左腕姿勢のそれぞれを検出する各種のセンサーを備える。当該各種のセンサーは、ユーザー左手指姿勢、ユーザー左腕姿勢を検出可能なセンサーであれば、如何なるセンサーであってもよい。データグローブ13は、ユーザー装置制御部からの要求に応じて、ユーザー左手指姿勢とユーザー左腕姿勢を検出する。データグローブ13は、検出したユーザー左手指姿勢を示す情報及びユーザー左腕姿勢を示す情報をユーザー装置制御部に出力する。
【0049】
なお、データグローブ13は、ユーザー左手指姿勢及びユーザー左腕姿勢のいずれか一方又は両方に代えて、ユーザーの他の部位の姿勢を検出する構成であってもよく、ユーザー左手指姿勢及びユーザー左腕姿勢のいずれか一方又は両方に加えて、ユーザーの他の部位の姿勢を検出する構成であってもよい。これらの場合、データグローブ13は、当該他の部位の姿勢を検出するセンサーを備える。
【0050】
また、データグローブ13は、ユーザーの部位のうち予め決められた1以上の部位のそれぞれに圧力を加える図示しない加圧装置を備える。当該予め決められた1以上の部位は、例えば、ユーザーの左手の各指先である。なお、予め決められた1以上の部位は、これに代えて、ユーザーの部位のうち予め決められた他の部位であってもよい。加圧装置は、ユーザー装置制御部からの要求に応じて、予め決められた以上の部位のうち当該要求が示す部位に、当該要求が示す圧力を加える。
【0051】
ここで、データグローブ13は第1ユーザーU1の左手に装着されているため、ユーザー装置制御部からの要求に応じて、第1ユーザーの左手の各指の姿勢である第1ユーザー左手指姿勢と第1ユーザーの左腕の姿勢である第1ユーザー左腕姿勢を検出する。データグローブ13は、検出した第1ユーザー左手指姿勢を示す情報及び第1ユーザー左腕姿勢を示す情報をユーザー装置制御部に出力する。
【0052】
ユーザー装置制御部は、ユーザー装置10の全体を制御する。ユーザー装置制御部は、ヘッドマウントディスプレイ11、データグローブ12、データグローブ13のいずれかに内蔵される構成であってもよく、ヘッドマウントディスプレイ11、データグローブ12、データグローブ13それぞれの外部に設置され、ヘッドマウントディスプレイ11、データグローブ12、データグローブ13それぞれと有線又は無線によって互いに通信可能に接続される構成であってもよい。
【0053】
ユーザー装置制御部は、前述の所定時間が経過する毎に、ヘッドマウントディスプレイ11にユーザー頭部姿勢を検出させ、データグローブ12にユーザー右手指姿勢及びユーザー右腕姿勢を検出させ、データグローブ13にユーザー左手指姿勢及びユーザー左腕姿勢を検出させる。そして、ユーザー装置制御部は、ヘッドマウントディスプレイ11からユーザー頭部姿勢を示す情報を取得し、データグローブ12からユーザー右手指姿勢を示す情報及びユーザー右腕姿勢を示す情報を取得し、データグローブ13からユーザー左手指姿勢を示す情報及びユーザー左腕姿勢を示す情報を取得する。
【0054】
ここで、本実施形態において、ユーザー姿勢は、ユーザー頭部姿勢を示す情報、ユーザー右手指姿勢を示す情報、ユーザー右腕姿勢を示す情報、ユーザー左手指姿勢を示す情報、及びユーザー左腕姿勢を示す情報のそれぞれによって表される。なお、ユーザー姿勢情報は、ユーザー頭部姿勢を示す情報、ユーザー右手指姿勢を示す情報、ユーザー右腕姿勢を示す情報、ユーザー左手指姿勢を示す情報、及びユーザー左腕姿勢を示す情報の一部を含んでもよく、他の情報を含んでもよい。
【0055】
ユーザー装置制御部は、取得したユーザー頭部姿勢を示す情報、ユーザー右手指姿勢を示す情報、ユーザー右腕姿勢を示す情報、ユーザー左手指姿勢を示す情報、ユーザー左腕姿勢を示す情報のそれぞれによって表されるユーザー姿勢情報を含むユーザー情報を生成する。なお、ユーザー情報は、ユーザー姿勢情報に加えて、他の情報を含んでもよい。ユーザー装置制御部は、生成したユーザー情報をロボット20にネットワークNを介して出力する。
【0056】
ここで、ユーザー装置10は、第1ユーザーU1に装着されているため、所定時間が経過する毎に、ヘッドマウントディスプレイ11に第1ユーザー頭部姿勢を検出させ、データグローブ12に第1ユーザー右手指姿勢及び第1ユーザー右腕姿勢を検出させ、データグローブ13に第1ユーザー左手指姿勢及び第1ユーザー左腕姿勢を検出させる。そして、ユーザー装置制御部は、ヘッドマウントディスプレイ11から第1ユーザー頭部姿勢を示す情報を取得し、データグローブ12から第1ユーザー右手指姿勢を示す情報及び第1ユーザー右腕姿勢を示す情報を取得し、データグローブ13から第1ユーザー左手指姿勢を示す情報及び第1ユーザー左腕姿勢を示す情報を取得する。
【0057】
ユーザー装置制御部は、取得した第1ユーザー頭部姿勢を示す情報、第1ユーザー右手指姿勢を示す情報、第1ユーザー右腕姿勢を示す情報、第1ユーザー左手指姿勢を示す情報、第1ユーザー左腕姿勢を示す情報のそれぞれによって表される第1ユーザー姿勢情報を含むユーザー情報を生成する。ユーザー装置制御部は、生成したユーザー情報をロボット20にネットワークNを介して出力する。なお、ユーザー情報は、第1情報、第3情報、第5情報それぞれの一例である。
【0058】
また、ユーザー装置制御部は、ロボット20が検出した検出情報をロボット20からネットワークNを介して取得する。ユーザー装置10は、取得した検出情報に応じた処理を行う。これにより、ユーザー装置10は、ユーザーの五感の少なくとも一部に対して各種の情報を提供することができる。この一例では、ユーザー装置10は、ユーザーの五感のうち触覚、視覚、聴覚のそれぞれに対して各種の情報を提供する。
【0059】
検出情報には、ロボット20が備える撮像部により撮像された画像を含む視覚情報、ロボット20が備える触覚センサーからの出力値を含む触覚情報(触覚には、力覚が含まれてもよく、力覚が含まれなくてもよい)、及びロボット20が備える音検出部からの出力値を含む聴覚情報が含まれている。当該画像は、動画像であってもよく、静止画像であってもよい。以下では、一例として、当該画像が動画像である場合について説明する。
【0060】
なお、検出情報は、視覚情報、触覚情報、聴覚情報の一部のみを含んでもよく、視覚情報、触覚情報、聴覚情報の一部又は全部に加えて他の情報(例えば、嗅覚情報、味覚情報等)を含んでもよい。検出情報は、視覚情報、触覚情報、聴覚情報の一部又は全部に代えて他の情報のみを含んでもよい。これらの場合、ユーザー装置10は、ユーザーの五感のうち検出情報に含まれる情報に応じた感覚に対して各種の情報を提供する。
【0061】
ユーザー装置制御部は、取得した検出情報に含まれる視覚情報に基づいて、ヘッドマウントディスプレイ11の表示部に当該視覚情報に含まれる画像を表示する。また、ユーザー装置制御部は、検出情報に含まれる触覚情報に基づいてデータグローブ12及びデータグローブ13のそれぞれが備える加圧装置を動作させ、触覚情報に含まれる出力値に応じた圧力をユーザーに対して加える。また、ユーザー装置制御部は、検出情報に含まれる聴覚情報に基づいて、聴覚情報に含まれる出力値に応じた音をヘッドマウントディスプレイ11のスピーカーから出力させる。
【0062】
このような構成により、ユーザー装置10は、ユーザーの視覚に対してロボット20が見た(撮像部により撮像した)物体を示す情報を当該視覚情報に含まれる画像として提供し、ユーザーの触覚に対してロボット20が物体に触れた(触覚センサーによって検出した)感触を示す情報を当該触覚情報に含まれる出力値に応じた圧力として提供し、ユーザーの聴覚に対してロボット20が聴いた(音検出部により検出した)音を当該聴覚情報に含まれる出力値に応じた音として提供することができる。その結果、ユーザーは、ユーザーの五感のうちの少なくとも一部に提供された各種の情報に基づいて、ユーザーが所望する次の動作をロボット20に行わせることができる。
【0063】
ここで、ユーザー装置10は第1ユーザーU1に装着されているため、第1ユーザーU1の視覚に対してロボット20が見た(撮像部により撮像した)物体を示す情報を視覚情報に含まれる画像として提供し、第1ユーザーU1の触覚に対してロボット20が物体に触れた(触覚センサーによって検出した)感触を示す情報を触覚情報に含まれる出力値に応じた圧力として提供し、第1ユーザーU1の聴覚に対してロボット20が聴いた(音検出部により検出した)音を聴覚情報に含まれる出力値に応じた音として提供することができる。その結果、第1ユーザーU1は、第1ユーザーU1の五感のうちの少なくとも一部に提供された各種の情報に基づいて、第1ユーザーU1が所望する次の動作をロボット20に行わせることができる。
【0064】
ロボット20は、例えば、双腕ロボットである。ロボット20は、可動部として、ユーザー装置10が装着されたユーザー(この一例において、第1ユーザーU1)の頭部に対応する頭部部分21と、当該ユーザーの右腕に対応するロボットアーム(マニピュレーター)である右腕部分22と、当該ユーザーの左腕に対応するロボットアーム(マニピュレーター)である左腕部分23を備える。また、ロボット20は、頭部部分21、右腕部分22、左腕部分23のそれぞれを支持する支持部分24を備える。なお、ロボット20は、頭部部分21を備えない構成であってもよく、1本のロボットアーム(マニピュレーター)のみを備える単腕ロボットであってもよく、3本以上のロボットアームを備える複腕ロボットであってもよく、他の構成のロボットであってもよい。
【0065】
頭部部分21は、予め決められた1以上の軸それぞれの周りに回動可能に支持部分24によって支持される。以下では、一例として、頭部部分21が、予め決められた2軸それぞれの周りに回動可能に支持部分24によって支持される場合について説明する。頭部部分21は、当該2軸それぞれの周りに頭部部分21を回動させるアクチュエーターを備える。ここで、頭部部分21の姿勢は、頭部部分21が備える1以上のアクチュエーター毎の回動角、角速度、角加速度、トルクのそれぞれによって決定される。頭部部分21は、ロボット制御装置30からの要求に応じて当該アクチュエーターを動作させ、頭部部分21の姿勢を変化させる。また、頭部部分21は、当該要求に応じて、当該1以上のアクチュエーター毎の回動角、角速度、角加速度、トルクのそれぞれを示す情報を、頭部部分21の姿勢を示す情報としてロボット制御装置30に出力する。
【0066】
また、頭部部分21は、前述した撮像部を備える。当該撮像部は、例えば、集光された光を電気信号に変換する撮像素子であるCCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)等を備えたステレオカメラである。頭部部分21が撮像部を備えるので、撮像部が撮像可能な範囲は、頭部部分21の姿勢に応じて変化する。撮像部は、当該範囲の動画像を撮像するが、これに代えて、当該範囲の静止画像を撮像する構成であってもよい。当該撮像部は、当該範囲を撮像した画像を前述の視覚情報としてロボット制御装置30に出力する。なお、当該撮像部は、ステレオカメラに代えて、単眼のカメラであってもよく、3以上の複眼のカメラであってもよい。
【0067】
また、頭部部分21は、前述したロボット20が備える音検出部を備える。当該音検出部は、例えば、頭部部分21の周囲の音を検出するセンサーである。頭部部分21は、当該音検出部が検出した音を示す出力値を含む情報を前述の聴覚情報としてロボット制御装置30に出力する。
【0068】
右腕部分22は、複数の関節を備えるロボットアームであり、ユーザー装置10が装着されたユーザー(この一例において、第1ユーザーU1)の右手に対応するロボットハンドをエンドエフェクターとして備えるロボットアームである。なお、右腕部分22の関節の数は、右腕部分22の姿勢を、当該ユーザーのユーザー右腕姿勢及び当該ユーザーのユーザー右手指姿勢のそれぞれに対応する姿勢に変化させることが可能であれば、如何なる数であってもよい。右腕部分22が備える各関節は、関節を回動させるアクチュエーターを備える。
【0069】
ここで、右腕部分22の姿勢は、右腕部分22が備える複数のアクチュエーター毎の回動角、角速度、角加速度、トルクのそれぞれによって決定される。右腕部分22は、ロボット制御装置30からの要求に応じて当該アクチュエーターを動作させ、右腕部分22の姿勢を変化させる。また、右腕部分22は、当該要求に応じて、当該1以上のアクチュエーター毎の回動角、角速度、角加速度、トルクのそれぞれを示す情報を、右腕部分22の姿勢を示す情報としてロボット制御装置30に出力する。
【0070】
右腕部分22のロボットハンドが備える指部それぞれの先端には、前述の図示しない触覚センサーが備えられている。指部は、当該ロボットハンドの部位のうちユーザー装置10が装着されたユーザー(この一例において、第1ユーザーU1)の右手の各指に対応する部位である。触覚センサーは、検出した圧力を示す出力値を含む情報を触覚情報としてロボット制御装置30に出力する。
【0071】
左腕部分23は、複数の関節を備えるロボットアームであり、ユーザー装置10が装着されたユーザー(この一例において、第1ユーザーU1)の左手に対応するロボットハンドをエンドエフェクターとして備えるロボットアームである。なお、左腕部分23の関節の数は、左腕部分23の姿勢を、当該ユーザーのユーザー左腕姿勢及び当該ユーザーのユーザー左手指姿勢のそれぞれに対応する姿勢に変化させることが可能であれば、如何なる数であってもよい。左腕部分23が備える各関節は、関節を回動させるアクチュエーターを備える。
【0072】
ここで、左腕部分23の姿勢は、左腕部分23が備える複数のアクチュエーター毎の回動角、角速度、角加速度、トルクのそれぞれによって決定される。左腕部分23は、ロボット制御装置30からの要求に応じて当該アクチュエーターを動作させ、左腕部分23の姿勢を変化させる。また、左腕部分23は、当該要求に応じて、当該1以上のアクチュエーター毎の回動角、角速度、角加速度、トルクのそれぞれを示す情報を、左腕部分23の姿勢を示す情報としてロボット制御装置30に出力する。
【0073】
左腕部分23のロボットハンドが備える指部それぞれの先端には、前述の図示しない触覚センサーが備えられている。指部は、ロボットハンドの部位のうちユーザー装置10が装着されたユーザー(この一例において、第1ユーザーU1)の左手の各指に対応する部位である。触覚センサーは、検出した圧力を示す出力値を含む情報を触覚情報としてロボット制御装置30に出力する。
【0074】
ここで、ロボット20の姿勢は、頭部部分21の姿勢と、右腕部分22の姿勢と、左腕部分23の姿勢とによって表される。すなわち、ロボット20の姿勢が変化したということは、頭部部分21の姿勢と、右腕部分22の姿勢と、左腕部分23の姿勢との少なくとも一部が変化したということを意味する。
【0075】
ロボット制御装置30は、ユーザー装置10からネットワークNを介してユーザー情報を取得する。また、ロボット制御装置30は、ロボット20から変化前ロボット情報を取得する。変化前ロボット情報は、取得したユーザー情報に基づいてロボット制御装置30が姿勢を変化させる前のロボット20の姿勢である変化前姿勢を示す変化前姿勢情報を含む情報である。なお、変化前ロボット情報は、変化前姿勢情報に加えて、他の情報を含む構成であってもよい。以下では、一例として、ロボット20が検出した検出情報が、変化前姿勢情報とともに変化前ロボット情報に含まれる場合について説明する。当該検出情報は、前述した通り、視覚情報、触覚情報、聴覚情報のそれぞれを含む情報である。
【0076】
ロボット制御装置30は、取得したユーザー情報に基づいてロボット制御装置30が姿勢を変化させる前の頭部部分21の姿勢を示す情報、当該前の右腕部分22の姿勢を示す情報、当該前の左腕部分23の姿勢を示す情報のそれぞれを含む変化前姿勢情報と、当該前の視覚情報、当該前の触覚情報、当該前の聴覚情報のそれぞれを含む検出情報と、を含む検出情報をロボット20から取得する。ここで、ロボット制御装置30は、当該前の頭部部分21の姿勢を示す情報と、当該前の視覚情報と、当該前の聴覚情報との3つの情報を頭部部分21から取得する。また、ロボット制御装置30は、当該前の右腕部分22の姿勢を示す情報と、当該前の触覚情報であって右腕部分22により検出された触覚情報との2つの情報を右腕部分22から取得する。また、ロボット制御装置30は、当該前の左腕部分23の姿勢を示す情報と、当該前の触覚情報であって左腕部分23により検出された触覚情報との2つの情報を左腕部分23から取得する。なお、変化前ロボット情報は、第2情報の一例である。また、検出情報は、第1検出情報、第3検出情報、第5検出情報それぞれの一例である。
【0077】
また、ロボット制御装置30は、サーバーSBのデータベースDBに予め記憶された基準情報を、ネットワークNを介してサーバーSBから読み出す。基準情報は、第2ユーザーU2の姿勢である第2ユーザー姿勢を示す第2ユーザー姿勢情報毎に第2ユーザー姿勢情報と基準となる姿勢を示す基準姿勢情報とが対応付けられた情報を含む。ある第2ユーザー姿勢情報に対応付けられた基準姿勢情報が示す姿勢は、第2ユーザーにより操作されるロボットである第2ロボットの姿勢のうち当該第2ユーザー姿勢情報が示す第2ユーザー姿勢に対応する姿勢である。第2ロボットは、ロボット20であってもよく、ロボット20と異なるロボットであってもよい。以下では、一例として、第2ロボットがロボット20である場合について説明する。
【0078】
基準情報は、ロボット20の操作であってロボットシステム1における操作に第1ユーザーU1よりも習熟したユーザーである第2ユーザーU2が過去にロボット20を操作した際の第2ユーザー姿勢情報と、第2ユーザーU2によって操作されたロボット20の姿勢を示す情報であって当該基準となる姿勢を示す基準姿勢情報とが対応付けられた履歴情報である。なお、基準情報には、第2ユーザー姿勢情報毎に第2ユーザー姿勢情報と基準姿勢情報とが対応付けられた情報に加えて、他の情報が含まれてもよい。また、第2ユーザーは、第1ユーザーU1と同一人物であってもよい。
【0079】
ロボット制御装置30は、第1ユーザーU1に装着されたユーザー装置10から取得した第1ユーザーに対応するユーザー情報と、ロボット20から取得した変化前ロボット情報と、サーバーSBのデータベースDBから読み出した基準情報とに基づいて、ロボット20の姿勢であって当該ユーザー情報に含まれているユーザー姿勢情報が示すユーザー姿勢に対応する標的姿勢を決定する。そして、ロボット制御装置30は、ロボット20を動作させ、決定した標的姿勢にロボット20の姿勢を変化させる。これにより、ロボット制御装置30は、第1ユーザーU1によるロボット20の操作を補助することができる。
【0080】
この一例では、ユーザー装置10が第1ユーザーU1に装着されているため、ロボット制御装置30は、サーバーSBのデータベースDBから読み出した基準情報と、ユーザー装置10から取得したユーザー情報と、ロボット20から取得した変化前ロボット情報とに基づいて、ロボット20の姿勢であって当該ユーザー情報に含まれている第1ユーザー姿勢情報が示す第1ユーザー姿勢に対応する標的姿勢を決定する。そして、ロボット制御装置30は、ロボット20を動作させ、決定した標的姿勢にロボット20の姿勢を変化させる。これにより、ロボット制御装置30は、第1ユーザーU1によるロボット20の操作を補助することができる。
【0081】
サーバーSBは、デスクトップPC(Personal Computer)、ワークステーション等の情報処理装置により実現された記憶装置である。サーバーSBは、ネットワークNを介してユーザー装置10、ロボット20(すなわち、ロボット制御装置30)のそれぞれと互いに通信可能に接続される。前述した通り、サーバーSBは、データベースDBを予め格納する。サーバーSBのデータベースDBは、ロボット制御装置30からの要求に応じて、基準情報をロボット制御装置30に出力する。
【0082】
<ロボット制御装置の機能構成>
以下、
図2を参照し、ロボット制御装置30の機能構成について説明する。
図2は、ロボット制御装置30の機能構成の一例を示す図である。
【0083】
ロボット制御装置30は、HDD(Hard Disk Drive)やSSD(Solid State Drive)等である記憶部32と、USB(Universal Serial Bus)等のデジタル入出力ポートやイーサネット(登録商標)ポート等を含む通信ポートである通信部34と、ロボット制御部35と、制御装置36を備える。なお、ロボット制御装置30は、前述した通り、制御装置36と別体であってもよい。
【0084】
ロボット制御部35は、ロボット制御装置30の全体を制御する。また、ロボット制御部35は、ロボット20を動作させ、制御装置36により決定された標的姿勢にロボット20の姿勢を変化させる。ロボット制御部35は、例えば、図示しないCPU(Central Processing Unit)が、記憶部32に記憶された各種プログラムを実行することにより実現される。また、ロボット制御部35は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)等のハードウェア機能部であってもよい。
【0085】
制御装置36は、ユーザー情報取得部361と、変化前ロボット情報取得部362と、変化後ロボット情報取得部363と、特定部364と、決定部365と、生成部366と、記憶制御部367を備える。制御装置36が備えるこれらの機能部は、例えば、図示しないCPUが、記憶部32に記憶された各種プログラムを実行することにより実現される。また、当該機能部のうちの一部又は全部は、LSIやASIC等のハードウェア機能部であってもよい。
【0086】
ユーザー情報取得部361は、ネットワークNを介してユーザー装置10からユーザー情報を取得する。なお、ユーザー情報取得部361は、第1情報取得部及び第3情報取得部の一例である。
【0087】
変化前ロボット情報取得部362は、ロボット20から変化前ロボット情報を取得する。なお、変化前ロボット情報取得部362は、第2情報取得部の一例である。
【0088】
変化後ロボット情報取得部363は、ロボット20から変化後ロボット情報を取得する。変化後ロボット情報は、ユーザー情報取得部361が取得したユーザー情報に含まれるユーザー姿勢情報が示すユーザー姿勢に対応する姿勢にロボット20の姿勢を変化させた後のロボット20の姿勢である変化後情報を含む情報である。また、変化後ロボット情報は、後述する生成部366が前述の基準情報を生成するために用いる情報である。なお、変化後ロボット情報取得部363は、第4情報取得部の一例である。また、変化後ロボット情報は、第4情報、第6情報の一例である。
【0089】
特定部364は、サーバーSBのデータベースDBからネットワークNを介して基準情報を読み出す。特定部364は、読み出した基準情報の中から、ユーザー情報取得部361が取得したユーザー情報に含まれるユーザー姿勢情報と、変化前ロボット情報取得部362が取得した変化前ロボット情報に含まれる変化前姿勢情報とに応じた基準姿勢情報を対象基準姿勢情報として特定する。
【0090】
決定部365は、特定部364が特定した対象基準姿勢情報に基づいて、ユーザー情報取得部361が取得したユーザー情報に含まれるユーザー姿勢情報が示すユーザー姿勢に対応する標的姿勢を決定する。
【0091】
生成部366は、ユーザー情報取得部361が取得したユーザー情報と、変化後ロボット情報取得部363が取得した変化後ロボット情報とに基づいて、データベースDBに記憶させる基準情報を生成する。
記憶制御部367は、生成部366が生成した基準情報をデータベースDBに記憶させる。
【0092】
<ロボット制御装置がロボットを動作させる処理>
以下、
図3を参照し、ロボット制御装置30がロボット20を動作させる処理について説明する。
図3は、ロボット制御装置30がロボット20を動作させる処理の流れの一例を示す図である。以下では、ロボット制御装置30が、ユーザー装置10が装着されたユーザー(この一例において、第1ユーザーU1)によるロボット20の操作を開始させる開始操作をステップS110が実行されるよりも前のタイミングにおいて受け付けている場合について説明する。
【0093】
特定部364は、サーバーSBのデータベースDBから基準情報を読み出す(ステップS110)。ここで、データベースDBには、複数の基準情報が記憶されている構成であってもよい。この場合、基準情報のそれぞれには、ユーザーが所望する基準情報を特定部364が読み出すために必要な識別情報が対応付けられる。識別情報は、例えば、第2ユーザーを示すユーザー識別情報、第2ユーザーによるロボット20の操作の習熟度を示す習熟度情報、ロボット20に行わせる作業の種類を示す作業情報のうちの少なくとも1つが含まれる情報である。なお、識別情報には、ユーザー識別情報、習熟度情報、作業情報のうちの一部又は全部に代えて、他の情報が含まれてもよく、ユーザー識別情報、習熟度情報、作業情報のうちの一部又は全部に加えて、他の情報が含まれてもよい。
【0094】
特定部364は、ステップS110の処理が実行されるよりも前のタイミングにおいて、ユーザーから識別情報を予め受け付ける。そして、特定部364は、ステップS110において、受け付けた識別情報に対応付けられた基準情報をデータベースDBから読み出す。この際、特定部364は、機械学習のアルゴリズムに基づいて、受け付けた識別情報と最も似ている識別情報に対応付けられた基準情報をデータベースDBから読み出す構成であってもよい。この場合、当該機械学習のアルゴリズムには、識別情報と、識別情報に応じた基準情報との組み合わせを学習させておく必要がある。当該機械学習のアルゴリズムは、深層学習等の既知のアルゴリズムであってもよく、これから開発されるアルゴリズムであってもよい。
【0095】
次に、ロボット制御部35及び制御装置36は、前述の所定時間が経過する毎に、ステップS130~ステップS180の処理を繰り返し行う(ステップS120)。
【0096】
ユーザー情報取得部361は、ネットワークNを介してユーザー装置10からユーザー情報を取得する(ステップS130)。次に、変化前ロボット情報取得部362は、ロボット20から変化前ロボット情報を取得する(ステップS140)。なお、ロボット制御装置30において、ステップS130とステップS140の処理は、逆の順に行われてもよく、並列に行われてもよい。
【0097】
次に、特定部364は、ステップS110においてデータベースDBから読み出した基準情報の中から、ステップS130においてユーザー情報取得部361が取得したユーザー情報に含まれる第1ユーザー姿勢情報と、ステップS140において変化前ロボット情報取得部362が取得した変化前ロボット情報に含まれる変化前姿勢情報とに応じた基準姿勢情報を対象基準姿勢情報として特定する(ステップS150)。ここで、ステップS150の処理について説明する。
【0098】
特定部364は、ステップS130においてユーザー情報取得部361から取得したユーザー情報に含まれる第1ユーザー姿勢情報を、逆運動学に基づいて、ロボット20が備える1以上のモーター毎の回動角、角速度、角加速度、トルクのそれぞれによって表される情報である仮標的姿勢情報に変換する。特定部364は、当該第1ユーザー姿勢情報を変換した仮標的姿勢情報と、ステップS140において変化前ロボット情報取得部362から取得した変化前ロボット情報に含まれる変化前姿勢情報とを(入力パラメーターとして)用いて、機械学習のアルゴリズムに基づいて、ステップS110においてデータベースDBから読み出した基準情報の中から、当該仮標的姿勢情報と当該変化前姿勢情報とに応じた基準姿勢情報として最も尤もらしい基準姿勢情報を対象基準姿勢情報として特定する。
【0099】
この場合、当該機械学習のアルゴリズムには、当該仮標的姿勢情報と、当該変化前姿勢情報と、当該仮標的姿勢情報及び当該変化前姿勢情報に応じた基準姿勢情報との組み合わせを学習させておく必要がある。当該機械学習のアルゴリズムは、深層学習等の既知のアルゴリズムであってもよく、これから開発されるアルゴリズムであってもよい。
【0100】
なお、基準情報は、第2ユーザー姿勢情報毎に第2ユーザー姿勢情報と基準姿勢情報とが対応付けられた情報を含む情報であったが、これに代えて、基準姿勢情報を含む情報であって第2ユーザー姿勢情報を含まない情報であってもよい。この場合、特定部364は、当該仮標的姿勢情報を(入力パラメーターとして)用いて、当該機械学習のアルゴリズムに基づいて、ステップS110においてデータベースDBから読み出した基準情報の中から、当該仮標的姿勢情報に応じた基準姿勢情報として最も尤もらしい基準姿勢情報を対象基準姿勢情報として特定する。また、基準情報は、第2ユーザー姿勢情報毎に第2ユーザー姿勢情報と基準姿勢情報と他の情報が対応付けられた情報であってもよい。
【0101】
この場合、特定部364は、当該仮標的姿勢情報と当該変化前姿勢情報と当該他の情報とを(入力パラメーターとして)用いて、当該機械学習のアルゴリズムに基づいて、ステップS110においてデータベースDBから読み出した基準情報の中から、当該仮標的姿勢情報に応じた基準姿勢情報として最も尤もらしい基準姿勢情報を対象基準姿勢情報として特定する。当該他の情報は、例えば、第2ロボット(この一例において、ロボット20)により検出された検出情報である第2検出情報等である。
【0102】
ステップS150の処理が行われた後、決定部365は、ステップS150において特定部364が変換した仮標的姿勢情報と、ステップS150において特定部364が特定した対象基準姿勢情報とに基づいて、ステップS130においてユーザー情報取得部361が取得した第1ユーザー姿勢情報が示す姿勢に対応する姿勢である標的姿勢を決定する(ステップS160)。標的姿勢は、第1ユーザーU1の姿勢が、当該第1ユーザー姿勢情報が示すユーザー姿勢である場合に、ロボット20の姿勢を一致させたい所望の姿勢のことである。ここで、ステップS160の処理について説明する。
【0103】
決定部365は、例えば、ステップS150において特定部364が変換した仮標的姿勢情報と、ステップS150において特定部364が特定した対象基準姿勢情報との差分を算出する。ここで、仮標的姿勢情報は、仮標的姿勢情報が示す姿勢を表す複数の回動角、複数の角速度、複数の角加速度、複数のトルクのそれぞれを成分として有するベクトルによって表される。また、対象基準姿勢情報は、対象基準姿勢情報が示す姿勢を表す複数の回動角、複数の角速度、複数の角加速度、複数のトルクのそれぞれを成分として有するベクトルによって表される。決定部365は、これらのベクトルの差分ベクトルを、仮標的姿勢情報を補正する補正量を算出するために用いる仮補正量として算出する。
【0104】
そして、決定部365は、算出した仮補正量と、当該仮標的姿勢情報とを用いて、機械学習のアルゴリズムに基づいて、仮標的姿勢情報を補正する補正量として最も尤もらしい補正量を算出する。この場合、当該機械学習のアルゴリズムには、仮標的姿勢情報と、仮補正量と、仮標的姿勢情報及び仮補正量に応じた補正量との組み合わせを学習させておく必要がある。機械学習のアルゴリズムは、深層学習等の既知のアルゴリズムであってもよく、これから開発されるアルゴリズムであってもよい。決定部365は、算出した補正量を仮標的姿勢情報に足すことによって仮標的姿勢情報を補正し、補正した仮標的姿勢情報が示す姿勢を標的姿勢として決定する。ここで、当該補正量は、仮標的姿勢情報と対象基準姿勢情報との差を小さくする補正量である。
【0105】
なお、決定部365は、差分ベクトルを算出することなく、ステップS150において特定部364が変換した仮標的姿勢情報と、ステップS150において特定部364が特定した対象基準姿勢情報とを用いて、機械学習のアルゴリズムに基づいて、仮標的姿勢情報を補正する補正量として最も尤もらしい補正量を算出してもよい。この場合、機械学習のアルゴリズムには、仮標的姿勢情報と、対象基準姿勢情報と、仮標的姿勢情報及び対象基準姿勢情報に応じた補正量との組み合わせを学習させておく必要がある。
【0106】
ステップS160の処理が行われた後、ロボット制御部35は、ロボット20を動作させ、ステップS160において決定部365が決定した標的姿勢を示す情報に基づいて、ロボット20の姿勢を当該標的姿勢に変化させる(ステップS170)。次に、ロボット制御部35は、ロボット20の操作を終了させる終了操作をユーザーから受け付けたか否かを判定する(ステップS180)。終了操作をユーザーから受け付けたと判定した場合(ステップS180-YES)、ロボット制御部35は処理を終了する。一方、終了操作をユーザーから受け付けていないとロボット制御部35が判定した場合、ユーザー情報取得部361は、ステップS130に遷移し、再びネットワークNを介してユーザー装置10からユーザー情報を取得する。
【0107】
以上のように、ロボット制御装置30は、第1情報(本実施形態におけるユーザー情報)を取得し、変化前姿勢を示す変化前姿勢情報と第1検出情報とのうち少なくとも変化前姿勢情報を含む第2情報(本実施形態における変化前ロボット情報)を取得する。そして、ロボット制御装置30は、第2ユーザーの姿勢である第2ユーザー姿勢を示す第2ユーザー姿勢情報毎に第2ユーザー姿勢情報と基準となる姿勢を示す基準姿勢情報とが対応付けられた情報を含む基準情報と、取得した第1情報と、取得した第2情報とに基づいて、第1ロボット(この一例において、ロボット20)の姿勢であって当該第1情報に含まれている第1ユーザー姿勢情報が示す第1ユーザー姿勢に対応する標的姿勢を決定する。これにより、ロボット制御装置30は、ロボット20の操作に慣れていない第1ユーザーが、基準情報に対応する好ましい操作と同等の操作をできるように第1ユーザーを補助することができる。
【0108】
<ロボット制御装置が基準情報を生成する処理>
ロボットシステム1では、上記において説明した基準情報を生成する処理も行われる。そこで、以下では、当該処理について説明する。また、以下では、一例として、ユーザー装置10が、第3ユーザーに装着されている場合について説明する。第3ユーザーは、例えば、基準となる好ましい操作を行うことができるユーザーである。なお、第3ユーザーは、前述の第2ユーザー、又は第1ユーザーU1と同一人物であってもよい。なお、ロボットシステム1は、当該処理を行わない構成であってもよい。この場合、サーバーSBのデータベースDBには、他の情報処理装置によって基準情報が記憶される。また、この場合、ロボット制御装置30(又は制御装置36)は、以下において詳しく説明する生成部366を備えない。
【0109】
また、ロボットシステム1は、
図3に示したフローチャートの処理を行わない構成であってもよい。この場合、サーバーSBのデータベースDBに記憶された基準情報は、他の情報処理装置によって使用される。また、当該場合、ロボット制御装置30(又は制御装置36)は、特定部364、決定部365のそれぞれを備えない。
【0110】
以下、
図4を参照し、ロボット制御装置30が基準情報を生成する処理について説明する。
図4は、ロボット制御装置30が基準情報を生成する処理の流れの一例を示す図である。
図4に示したフローチャートは、第3ユーザーによる第3ロボットの操作が開始されたタイミングから当該操作が終了されたタイミングまでの間においてロボット制御装置30が行う処理の流れを示す。ただし、当該フローチャートでは、第3ユーザーによる第3ロボットの操作に関する処理の流れについては、省略している。第3ロボットは、第3ユーザーによって操作されるロボットである。以下では、一例として、第3ロボットがロボット20である場合について説明する。なお、第3ロボットは、ロボット20に代えて、他のロボットであってもよい。
【0111】
ロボット制御部35及び制御装置36は、第3ユーザーによるロボット20の操作が開始されたタイミングから所定時間が経過する毎に、ステップS220~ステップS260の処理を繰り返し行う(ステップS210)。
【0112】
ユーザー情報取得部361は、ネットワークNを介してユーザー装置10から、第3ユーザーの姿勢である第3ユーザー姿勢を示す第3ユーザー姿勢情報を含む情報であるユーザー情報を取得する(ステップS220)。次に、変化後ロボット情報取得部363は、ロボット20から前述の変化後ロボット情報を取得する(ステップS230)。なお、ロボット制御装置30において、ステップS220とステップS230の処理は、逆の順に行われてもよく、並列に行われてもよい。また、ロボット制御装置30は、ロボット20から変化後ロボット情報を取得するとともに、変化後ロボット情報に含まれる変化後姿勢情報が示す姿勢に対応するユーザー姿勢を示すユーザー姿勢情報を含むユーザー情報を取得する構成であってもよい。
【0113】
次に、生成部366は、ステップS220においてユーザー情報取得部361が取得した第3ユーザー情報と、ステップS230において変化後ロボット情報取得部363が取得した変化後ロボット情報とに基づいて、当該第3ユーザー姿勢情報と基準となる姿勢を示す基準姿勢情報とが対応付けられた情報を含む基準情報を生成する(ステップS240)。ここで、ステップS240の処理について説明する。
【0114】
生成部366は、ステップS220においてユーザー情報取得部361が取得したユーザー情報と、ステップS230において変化後ロボット情報取得部363が取得した変化後ロボット情報とを用いて、機械学習のアルゴリズムに基づいて、前記基準情報を生成する。具体的には、生成部366は、当該ユーザー情報に含まれる第3ユーザー姿勢情報と、当該変化後ロボット情報に含まれる変化後姿勢情報とを用いて、機械学習のアルゴリズムに基づいて、当該第3ユーザー姿勢情報が示す第3ユーザー姿勢に対応する姿勢として最も尤もらしい姿勢を、基準となる姿勢を示す基準姿勢情報であって当該第3ユーザー姿勢に対応する基準姿勢情報として算出する。生成部366は、算出した当該基準姿勢情報と、当該第3ユーザー姿勢情報とを対応付けた情報を含む基準情報を生成する。ここで、当該機械学習のアルゴリズムには、第3ユーザー姿勢情報と、変化後姿勢情報と、基準姿勢情報との組み合わせを学習させておく必要がある。当該機械学習のアルゴリズムは、深層学習等の既知のアルゴリズムであってもよく、これから開発されるアルゴリズムであってもよい。
【0115】
なお、生成部366は、ステップS230において変化後ロボット情報取得部363が取得した変化後ロボット情報に含まれる変化後姿勢情報を基準姿勢情報として特定し、特定した基準姿勢情報と、ステップS220においてユーザー情報取得部361が取得したユーザー情報に含まれる第3ユーザー姿勢情報とを対応付けた情報を含む基準情報を生成してもよい。
【0116】
また、生成部366は、過去に生成された基準情報をサーバーSBのデータベースDBから取得可能な場合、当該基準情報を取得し、取得した当該基準情報と、ユーザー情報取得部が取得したユーザー情報と、変化後ロボット情報取得部が取得した変化後ロボット情報とを用いて、機械学習のアルゴリズムに基づいて、当該ユーザー情報に含まれる第3ユーザー姿勢情報に対応する姿勢として最も尤もらしい姿勢を算出してもよい。この場合、生成部366は、算出した姿勢を示す情報を、当該第3ユーザー姿勢情報に対応付ける基準姿勢情報として特定し、特定した基準姿勢情報と当該第3ユーザー姿勢情報とが対応付けられた情報を含む基準情報を生成する。
【0117】
ステップS240の処理が行われた後、記憶制御部367は、ステップS240において生成部366が生成した基準情報を、ネットワークNを介してサーバーSBのデータベースDBに記憶させる(ステップS250)。次に、ロボット制御部35は、ユーザー装置10が装着されたユーザー(この一例において、第3ユーザー)によるロボット20の操作を終了させる終了操作を受け付けたか否かを判定する(ステップS260)。終了操作を受け付けたと判定した場合(ステップS260-YES)、ロボット制御部35は、処理を終了する。一方、終了操作を受け付けていないとロボット制御部35が判定した場合、ユーザー情報取得部361は、ステップS220に遷移し、再びネットワークNを介してユーザー装置10からユーザー情報を取得する。
【0118】
ここで、上記において説明したステップS210~ステップS260の処理について、簡単にまとめる。
図4に示したフローチャートにおけるステップS220及びステップS230の処理は、換言すると、制御装置36が基準情報を機械学習のアルゴリズムによって生成するための教師データを取得する処理である。そして、ステップS240~ステップS250の処理は、取得した教師データを用いて、機械学習のアルゴリズムが生成するモデルとして基準情報を生成する処理である。
【0119】
従来、教師データを取得するためには、教師データを取得するための試験的な(予備的な)ロボットシステム1の運用を行わなければならなかった。しかし、ロボットシステム1では、制御装置36がステップS220~ステップS230の処理を行うため、試験的なロボットシステム1の運用を必要とせず、ロボット20に試験的ではない作業(例えば本番の作業)を行わせている状態において制御装置36が教師データの取得を行うことができる。
【0120】
また、制御装置36は、
図4に示したフローチャートにおいて教師データとして取得したユーザー情報及び変化後ロボット情報をサーバーSBに記憶させない構成であったが、これに代えて、当該ユーザー情報及び当該変化後ロボット情報をサーバーSBに記憶させる構成であってもよい。これにより、制御装置36は、ロボット20の操作に関する教師データについてのビッグデータを構築することができる。このようにして構築されたビッグデータに基づいて生成される基準情報は、ユーザーによるロボットの操作を補助することに用いることができるとともに、ユーザーによる操作を必要とせずにロボット制御装置30がロボット20を自動的に動かすための情報として用いることができる。
【0121】
ある作業についてロボット制御装置30がロボット20を自動的に動かすことが可能となった場合、ロボットシステム1では、ユーザーがロボット20を操作することにより、当該作業と異なる作業をロボット20に行わせるとともに、制御装置36が当該作業をロボット20に自動的に行わせるために必要な教師データの取得を行う。このような工程が繰り返し行われることにより、最終的には、ロボットシステム1は、ユーザーが行うほぼすべての作業を自動的にロボット20に行わせることができるようになる。
【0122】
なお、ロボットシステム1は、複数のユーザー装置10と、各ユーザー装置10に対応するロボット20を備える構成であってもよい。すなわち、ロボットシステム1では、複数のユーザー装置10のそれぞれに対応するロボット20のうちの一部に自動的に所定の作業(ロボット20毎に異なる作業であってもよい)を行わせ、複数のユーザー装置10のそれぞれに対応するロボット20のうち当該一部以外のロボット20をユーザーが操作し、当該一部のロボット20のうち所望の動作を行っていないロボット20を、ユーザーにより操作されたロボット20が補助することができる。
【0123】
また、構築されたビッグデータに基づいて生成される基準情報は、ユーザーによって操作されるロボット20の動作を、ユーザーが行っている作業に適した動作に改善することに用いられてもよい。この場合、ロボットシステム1では、ロボット制御装置30(すなわち、制御装置36)が、当該基準情報に基づいて、ユーザーによる操作に基づくロボット20の動作を、当該作業に適した動作に改善(変更)する。これにより、ロボット制御装置30は、技能が低いユーザーが操作した場合であっても、ロボット20に適切な動作をさせることができる。
【0124】
また、構築されたビッグデータに基づいて生成される基準情報は、ユーザーによって操作されるロボット20の少なくとも一部の身体機能を補完することに用いられてもよい。この場合、ロボット制御装置30(すなわち、制御装置36)は、当該基準情報に基づいて、ユーザーによって操作されるロボット20の少なくとも一部の身体機能を補完する。この場合、ロボット制御装置30は、例えば、複数のロボット(一部又は全部がロボット20であってもよく、ロボット20ではなくてもよい)を、1人のユーザーによる操作によって動作させることができる。この際、ロボット制御装置30は、当該複数のロボットを、当該操作によってほぼ同時に動作させてもよく、当該複数のロボットの一部又は全部を異なるタイミングで動作させてもよい。
【0125】
この場合、ロボット制御装置30は、複数の地域から1つのロボット20へのログインを受け付け、ログインしたユーザーにロボット20を操作させることができる。その結果、各地域のユーザーは、時差を活用してロボット20を長期間休みなく稼働させることができる。これにより、ロボット制御装置30は、ロボット20による作業を効率化させることができる。
【0126】
なお、上記において説明を省略していたが、制御装置36が取得する変化前ロボット情報に含まれる各種の情報(変化前姿勢情報、視覚情報、触覚情報、聴覚情報)のそれぞれは、同期されていなければならない。当該各種の情報の同期は、ユーザー装置10において行われてもよく、ロボット制御装置30において行われてもよく、ネットワークNに接続された他の装置によって行われてもよい。また、この当該各種の情報の同期は、例えば、タイムスタンプによって実現される。なお、当該同期は、タイムスタンプ以外の方法によって実現されてもよい。
【0127】
また、制御装置36は、ユーザー姿勢情報を含まないユーザー情報を教師データとして取得してもよく、変化後姿勢情報を含まない変化後ロボット情報を教師データとして取得してもよい。この場合、ユーザー情報には、例えば、ユーザー装置10に備えられた各種のセンサー(例えば、撮像部、触覚センサー、音検出部等)により検出された情報であってタイムスタンプ等によって同期された情報等が含まれる。また、この場合、変化後ロボット情報には、例えば、タイムスタンプ等によって同期された検出情報等が含まれる。すなわち、制御装置36は、この場合、ユーザー姿勢情報、変化後姿勢情報の少なくとも一方を含まない教師データのビッグデータを構築する。また、この場合、制御装置36は、例えば、他の装置によって生成された基準情報に基づいて、
図3に示したフローチャートの処理を行ってもよく、当該処理を行わなくてもよい。
【0128】
また、上記において説明したロボットシステム1は、制御装置36を備えたテレイグジスタンスの一例である。ここで、テレイグジスタンスについては、特公昭62-29196や上記の非特許文献1等に詳細な説明が記載されているため、説明を省略する。
【0129】
また、ロボットシステム1において構築されたビッグデータは、1人のユーザーが何度も繰り返しロボット20に作業を行わせた場合における作業毎のユーザー情報及び変化後ロボット情報の集合であってもよく、複数人のユーザーのそれぞれがロボット20に作業を行わせた場合におけるユーザー毎のユーザー情報及び変化後ロボット情報の集合であってもよい。
【0130】
以上のように、ロボット制御装置30(又は制御装置36)は、第3情報(この一例において、ユーザー情報)を取得し、取得した第3情報に含まれる第3ユーザー姿勢情報が示す姿勢に対応する標的姿勢に第3ロボット(この一例において、ロボット20)の姿勢が変化した後の第3ロボットの姿勢である変化後姿勢を示す変化後姿勢情報と第3検出情報(この一例において、検出情報)とのうち少なくとも変化後姿勢情報を含む第4情報(この一例において、変化後ロボット情報)を取得する。そして、ロボット制御装置30(又は制御装置36)は、取得した第3情報と、取得した第4情報とに基づいて、当該第3情報に含まれる第3ユーザー姿勢情報毎に第3ユーザー姿勢情報と基準となる姿勢を示す基準姿勢情報とが対応付けられた情報を含む基準情報を生成する。これにより、ロボット制御装置30は、生成した基準情報に基づいて、ユーザーによるロボットの操作を補助することができる。
【0131】
なお、ロボット制御装置30と制御装置36が別体の場合、制御装置36は、ユーザー装置10、ロボット20、ロボット制御装置30、サーバーSBのそれぞれと互いに通信可能に接続される。そして、制御装置36は、決定部365が決定した標的姿勢を示す情報を、ロボット制御装置30が備えるロボット制御部35に出力し、生成部366が生成した基準情報をサーバーSBのデータベースDBに出力して記憶させる。また、当該場合、制御装置36は、ユーザー装置10が備える構成であってもよく、ロボット20が備える構成であってもよく、サーバーSBが備える構成であってもよい。
【0132】
<サーバーSBが制御装置36を有する場合の処理>
以上の説明においては、ロボット制御装置30が制御装置36を備える場合を例示したが、サーバーSBが制御装置36を備えてもよい。
図5は、サーバーSBが制御装置36を備える場合に基準姿勢情報を生成する手順について説明するための図である。
図6は、サーバーSBが制御装置36を備える場合にロボット20を制御する手順について説明するための図である。以下の説明における制御装置36の構成及び動作を、既に説明したロボット制御装置30が制御装置36を備える場合に適用してもよい。
【0133】
(基準情報を生成する処理)
図5は、サーバーSBが、ロボット20の操作を習熟した第2ユーザー(
図5において符号U2で示すユーザー)の姿勢を示す基準姿勢情報となる第2ユーザー姿勢情報に基づいて基準情報を生成する処理を示している。サーバーSBは、ロボット制御装置30を介して、ロボット20の姿勢を示す姿勢情報を定期的に取得している。
【0134】
サーバーSBのユーザー情報取得部361が、ユーザー装置10を介して第2ユーザー姿勢情報を取得すると(A1)、変化前ロボット情報取得部362は、ユーザー情報取得部361が第2ユーザー姿勢情報を取得した時点での最新のロボット20の姿勢情報を変化前姿勢情報として取得する(A2)。
【0135】
第2ユーザーU2はロボット20の操作に習熟しているので、変化前姿勢情報が示すロボット20の姿勢において第2ユーザーU2が行った操作は、望ましい操作であると考えられる。そこで、生成部366は、変化前ロボット情報取得部362が取得した変化前姿勢情報と、ユーザー情報取得部361が取得した基準姿勢情報としての第2ユーザー姿勢情報とを関連付けることにより、複数の基準情報を生成する(A3)。
【0136】
ところで、ロボット20の姿勢が同一であっても、ユーザーが次に変化させたいと考えている姿勢が同一であるとは限らない。例えば、同一のロボット20の姿勢から、ロボット20に物体を掴ませる動作をさせる場合と、物体を倒す動作をさせる場合とが考え得る。そこで、生成部366は、ユーザー情報取得部361が第2ユーザー姿勢情報を取得する直前に取得した複数の変化前姿勢情報と第2ユーザー姿勢情報とを関連付けることにより複数の基準情報を生成してもよい。生成部366がこのようにして基準情報を生成することで、基準情報を用いることで、ロボット20の操作に習熟していない第1ユーザーU1が、所望する動作をロボット20にさせることができる確率が向上する。
【0137】
また、生成部366は、第2ユーザーの操作内容ごとに、変化前姿勢情報と第2ユーザー姿勢情報とを関連付けた複数の基準情報を生成してもよい。生成部366は、例えば、連続する複数の第2ユーザー姿勢情報に基づいて操作内容を推定し、推定した操作内容に対応する複数の基準情報を生成してデータベースDBに記憶させる。生成部366は、第2ユーザーにより入力された操作内容を示すテキスト情報に関連付けて複数の基準情報をデータベースDBに記憶させてもよい。具体的には、生成部366は、例えば変化前姿勢情報が示す変化前姿勢においてロボット20に物体を掴ませるという操作内容、及び物体を倒させるという操作内容のそれぞれに関連付けて、基準姿勢情報をデータベースDBに記憶させる。生成部366は、第2ユーザーU2の属性(例えば、ロボット20の操作経験の長さ、身体の大きさ、性別等)に関連付けて、複数の基準情報をデータベースに記憶させてもよい。
【0138】
生成部366は、変化前姿勢情報と第2ユーザー姿勢情報とを教師データとして、入力された変化前姿勢情報と第1ユーザー姿勢情報とに適した基準姿勢情報を出力可能な機械学習モデルを生成してもよい。生成部366は、例えば、既に構築された機械学習モデルに変化前姿勢情報と第2ユーザー姿勢情報とを入力することにより機械学習モデルを更新し、機械学習モデルに入力された第1ユーザー姿勢情報に適した基準姿勢情報を出力できるようにすることができる。
【0139】
また、生成部366は、第2ユーザー姿勢情報を直接的に用いる代わりに、第2ユーザー姿勢情報に基づいて動作したロボット20の変化後姿勢情報に基づいて基準姿勢情報を生成してもよい。このようにするために、生成部366は、第2ユーザー姿勢情報に基づいてロボットが姿勢を変化させた後の変化後姿勢を示す変化後姿勢情報を取得する第4情報取得部としての変化後ロボット情報取得部363から変化後姿勢情報を取得する。生成部366は、変化前姿勢情報と変化後姿勢情報とに基づいて第2ユーザー姿勢情報を特定し、変化前姿勢情報と、特定した第2ユーザー姿勢情報とを関連付けることにより、複数の基準姿勢情報を生成する。
【0140】
(基準情報に基づいてロボット20を動作させる処理)
続いて、
図6を参照しながら、ロボット20の操作に習熟していない第1ユーザーU1がロボット20を操作する場合のサーバーSBの動作について説明する。
図6に示す例においても、サーバーSBは、ロボット制御装置30を介して、ロボット20の姿勢を示す姿勢情報を定期的に取得している。
【0141】
サーバーSBのユーザー情報取得部361が、ユーザー装置10を介して第1ユーザーU1姿勢情報を取得すると(B1)、変化前ロボット情報取得部362は、ユーザー情報取得部361が第2ユーザー姿勢情報を取得した時点での最新のロボット20の姿勢情報を変化前姿勢情報として取得する(B2)。続いて、サーバーSBの決定部365は、変化前姿勢情報と、変化前姿勢情報が示す変化前姿勢をしている時点で第1情報取得部としてのユーザー情報取得部361が取得した第1ユーザー姿勢情報とに基づいて、第1ユーザーU1の姿勢と異なる標的姿勢をロボットの姿勢に決定する。
【0142】
具体的には、まず、特定部364はデータベースDBを参照して、複数の基準姿勢情報から一の基準姿勢情報を選択する(B3)。特定部364は、選択した基準姿勢情報を決定部365に通知する。決定部365は、通知された基準姿勢情報が示す姿勢を、標的姿勢として決定する。決定部365は、決定した標的姿勢に対応する基準姿勢情報を対象基準姿勢情報としてロボット制御装置30に送信する(B4)。以下、特定部364の動作について詳細に説明する。
【0143】
特定部364は、ロボット20の姿勢を変化させるために用いられる複数の基準姿勢情報のうち、変化前姿勢情報と、変化前姿勢情報が示す変化前姿勢をしている時点でユーザー情報取得部361が取得した第1ユーザー姿勢情報とに対応する対象基準姿勢情報を特定する。すなわち、特定部364は、それぞれ変化前姿勢情報と、変化前姿勢情報が示す変化前姿勢をしている過去の時点において取得された第2ユーザーU2の姿勢を示す基準姿勢情報とが関連付けられた複数の基準情報から選択した一の基準情報に対応する基準姿勢情報を対象基準姿勢情報として選択する。
【0144】
具体的には、まず、特定部364は、変化前姿勢情報と第1ユーザー姿勢情報とに基づいて、第1ユーザー姿勢情報が示す第1ユーザーU1の姿勢に対応する第2ユーザーU2の姿勢を推定する。そして、特定部364は、推定した第2ユーザーU2の姿勢を示す第2ユーザー姿勢情報に関連付けてデータベースDBに記憶されている基準姿勢情報を対象基準姿勢情報として特定する。特定部364がこのようにして対象基準姿勢情報を選択することで、決定部365は、第1ユーザーU1の姿勢に最も合った標的姿勢を決定することができるので、第1ユーザーU1がロボット20を適切に操作しやすくなる。
【0145】
特定部364は、複数の基準情報の中から、第1情報取得部としてのユーザー情報取得部361が取得した第1ユーザー姿勢情報と、第2情報取得部としての変化前ロボット情報取得部362が取得した変化前姿勢情報とに基づいて、第1ユーザーが意図した標的姿勢にロボットの姿勢を変化させられる蓋然性が相対的に高い一の基準情報を選択する。
【0146】
特定部364は、第1ユーザー姿勢情報と変化前姿勢情報とに基づいて、第1ユーザーU1が意図した標的姿勢を推定し、推定した標的姿勢にロボットの姿勢を変化させられる蓋然性が相対的に高い一の基準情報を選択してもよい。具体的な処理として、特定部364は、ユーザー情報取得部361が取得した第1ユーザー姿勢情報に基づいて、ロボット20が備える一以上のモーターそれぞれの回動角、角速度、角加速度及びトルクを示す仮標的姿勢情報を生成する。特定部364は、生成した仮標的姿勢情報と変化前姿勢情報とに基づいて対象基準姿勢情報を特定する。
【0147】
特定部364は、例えば第1ユーザー姿勢情報に基づいて第1ユーザーU1の操作内容を特定することにより標的姿勢を推定してもよい。具体的には、特定部364は、生成部366が第2ユーザーの操作内容ごとに変化前姿勢情報と第2ユーザー姿勢情報とを関連付けた複数の基準情報を生成した場合、第1ユーザーU1が行おうとしている操作内容を特定し、特定した操作内容に対応する複数の基準情報から、変化前姿勢情報に対応する一の基準情報を選択する。特定部364は、複数の連続する第1ユーザー姿勢情報に基づいて第1ユーザーU1が行おうとしている操作内容を特定してもよく、第1ユーザーU1が入力した操作内容を示すテキスト情報に基づいて操作内容を特定してもよい。特定部364は、このように操作内容を特定した結果を利用することで、第1ユーザーU1が意図した標的姿勢を正しく特定できる確率を高めることができる。
【0148】
ところで、ロボット20の操作を行った経験が比較的長い第1ユーザーU1の姿勢は、ロボット20の操作を行った経験が比較的短い第1ユーザーU1の姿勢に比べて、ロボット20の変化前姿勢が同一の状態で同一の操作を行った第2ユーザーU2の姿勢に近いと考えられる。そこで、特定部364は、第1ユーザーU1がロボット20の操作を行った経験の長さを示す情報を取得し、取得した情報に基づいて第1ユーザー姿勢情報に対応する第2ユーザー姿勢情報を推定してもよい。
【0149】
具体的には、特定部364は、第1ユーザーU1がロボット20を操作した経験の長さに基づいて、変化前姿勢情報と第1ユーザー姿勢情報とに対応すると想定される複数の基準姿勢情報から一の基準姿勢情報を選択する。このようにすることで、決定部365が、第1ユーザーU1が行おうとした操作に最も適した基準姿勢情報に基づいて標的姿勢を決定することができる。なお、特定部364は、第1ユーザーU1の操作経験の長さの他に、第1ユーザーU1の身体の大きさ又は性別といった属性に関連付けられた複数の基準姿勢情報から一の基準姿勢情報を選択してもよい。
【0150】
特定部364は、複数の変化前姿勢情報と複数の第2ユーザー姿勢情報とを教師データとして作成された機械学習モデルに変化前姿勢情報と第1ユーザー姿勢情報とを入力することにより、対象基準姿勢情報を特定してもよい。この場合、特定部364は、機械学習モデルから出力される基準姿勢情報を対象基準姿勢情報として特定する。
【0151】
決定部365が同一のタイミングで取得された第1ユーザー姿勢情報と変化前姿勢情報とを用いて標的姿勢を決定できるようにするために、ユーザー情報取得部361は、時刻に関連付けて第1ユーザー姿勢情報を取得し、変化前ロボット情報取得部362は、時刻に関連付けて変化前姿勢情報を取得してもよい。この場合、決定部365は、同一の時刻に関連付けられた変化前姿勢情報と第1ユーザー姿勢情報とに基づいて、標的姿勢をロボットの姿勢に決定する。決定部365がこのような構成を有することで、第1ユーザーU1が姿勢を変化させた時点におけるロボット20の姿勢に基づいて標的姿勢が決定されるので、決定部365が、第1ユーザーU1の意図に合った標的姿勢に決定できる確率を高めることができる。
【0152】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【0153】
また、以上に説明した装置(例えば、ロボット制御装置30、制御装置36)における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD(Compact Disk)-ROM等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0154】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0155】
<付記>
本発明は、以下の発明として把握することもできる。
【0156】
(1)第1ユーザーに関する情報を検出するユーザー装置と、第1ロボットと、前記第1ロボットを制御するロボット制御装置とを備え、前記第1ユーザーの姿勢である第1ユーザー姿勢を示す第1ユーザー姿勢情報を含む第1情報を前記ユーザー装置から取得し、取得した前記第1情報に基づいて姿勢を変化させる前の前記第1ロボットの姿勢である変化前姿勢を、取得した前記第1情報に含まれる前記第1ユーザー姿勢情報が示す前記第1ユーザー姿勢に対応する姿勢である標的姿勢に変化させるとともに、前記第1ロボットにより検出された第1検出情報に応じた処理を前記ユーザー装置に行わせるロボットシステムが備える制御装置であって、前記第1情報を取得する第1情報取得部と、前記変化前姿勢を示す変化前姿勢情報と前記第1検出情報とのうち少なくとも前記変化前姿勢情報を含む第2情報を取得する第2情報取得部と、第2ユーザーの姿勢である第2ユーザー姿勢を示す第2ユーザー姿勢情報毎に前記第2ユーザー姿勢情報と基準となる姿勢を示す基準姿勢情報とが対応付けられた情報を含む基準情報と、前記第1情報取得部が取得した前記第1情報と、前記第2情報取得部が取得した前記第2情報とに基づいて、前記第1ロボットの姿勢であって当該第1情報に含まれている前記第1ユーザー姿勢情報が示す前記第1ユーザー姿勢に対応する前記標的姿勢を決定する決定部と、を備える制御装置。
【0157】
(2)前記基準情報の中から、前記第1情報取得部が取得した前記第1情報に含まれる前記第1ユーザー姿勢情報と、前記第2情報取得部が取得した前記第2情報に含まれる前記変化前姿勢情報とに応じた前記基準姿勢情報を対象基準姿勢情報として特定する特定部を備え、前記決定部は、前記特定部が特定した前記対象基準姿勢情報と、前記第1情報取得部が取得した前記第1情報に含まれる前記第1ユーザー姿勢情報とに基づいて前記標的姿勢を決定する制御装置。
【0158】
(3)前記変化前姿勢情報は、現在の前記第1ロボットが備える1以上のモーター毎の回動角、角速度、角加速度、トルクのそれぞれによって表される情報であり、前記基準姿勢情報が示す姿勢は、第2ロボットの姿勢のうち前記第2ユーザー姿勢情報が示す第2ユーザー姿勢に対応する姿勢であり、前記基準姿勢情報毎に前記基準姿勢情報に対応付けられた前記第2ユーザー姿勢情報は、前記第2ロボットが備える1以上のモーター毎の回動角、角速度、角加速度、トルクのそれぞれによって表される情報であり、前記特定部は、前記第1情報取得部が取得した前記第1情報に含まれる前記第1ユーザー姿勢情報を逆運動学に基づいて、前記第1ロボットが備える1以上のモーター毎の回動角、角速度、角加速度、トルクのそれぞれによって表される情報である仮標的姿勢情報に変換し、変換した前記仮標的姿勢情報と、前記第2情報取得部が取得した前記第2情報に含まれる前記変化前姿勢情報とに基づいて、前記対象基準姿勢情報を特定する、制御装置。
【0159】
(4)前記特定部は、前記基準情報の中から、前記第1情報取得部が取得した前記第1情報に含まれる前記第1ユーザー姿勢情報と、前記第2情報取得部が取得した前記第2情報に含まれる前記変化前姿勢情報とに応じた前記基準姿勢情報であることが最も尤もらしい前記基準姿勢情報を、前記対象基準姿勢情報として特定する、制御装置。
【0160】
(5)第3ユーザーに関する情報を検出するユーザー装置と、第3ロボットと、前記第3ロボットを制御するロボット制御装置とを備え、前記第3ユーザーの姿勢である第3ユーザー姿勢を示す第3ユーザー姿勢情報を含む第3情報を前記ユーザー装置から取得し、取得した前記第3情報に基づいて姿勢を変化させる前の前記第3ロボットの姿勢である変化前姿勢を、取得した前記第3情報に含まれる前記第3ユーザー姿勢情報が示す前記第3ユーザー姿勢に対応する姿勢である標的姿勢に変化させるとともに、前記第3ロボットにより検出された第3検出情報に応じた処理を前記ユーザー装置に行わせるロボットシステムが備える制御装置であって、前記第3情報を取得する第3情報取得部と、前記第3情報取得部が取得した前記第3情報に含まれる前記第3ユーザー姿勢情報が示す姿勢に対応する前記標的姿勢に前記第3ロボットの姿勢が変化した後の前記第3ロボットの姿勢である変化後姿勢を示す変化後姿勢情報と前記第3検出情報とのうち少なくとも前記変化後姿勢情報を含む第4情報を取得する第4情報取得部と、前記第3情報取得部が取得した前記第3情報と、前記第4情報取得部が取得した前記第4情報とに基づいて、当該第3情報に含まれる前記第3ユーザー姿勢情報毎に第3ユーザー姿勢情報と基準となる姿勢を示す基準姿勢情報とが対応付けられた情報を含む基準情報を生成する生成部と、を備える制御装置。
【0161】
(6)前記生成部は、前記第3情報取得部が取得した前記第3情報と、前記第4情報取得部が取得した前記第4情報とを用いて、機械学習のアルゴリズムに基づいて、前記基準情報を生成する、制御装置。
【0162】
(7)前記生成部は、過去に生成された前記基準情報を取得可能な場合、当該基準情報を取得し、取得した当該基準情報と、前記第3情報取得部が取得した前記第3情報と、前記第4情報取得部が取得した前記第4情報とを用いて、当該第3情報に含まれる前記第3ユーザー姿勢情報に対応する姿勢として最も尤もらしい姿勢を算出し、算出した姿勢を示す情報を、当該第3ユーザー姿勢情報に対応付ける前記基準姿勢情報として特定し、特定した前記基準姿勢情報と当該第3ユーザー姿勢情報とが対応付けられた情報を含む前記基準情報を生成する、制御装置。
【0163】
(8)第5ユーザーに関する情報を検出するユーザー装置と、第5ロボットと、前記第5ロボットを制御するロボット制御装置とを備え、前記第5ユーザーの姿勢である第5ユーザー姿勢を示す第5ユーザー姿勢情報を前記ユーザー装置から取得し、取得した前記第5ユーザー姿勢情報に基づいて姿勢を変化させる前の前記第5ロボットの姿勢である変化前姿勢を、取得した前記第5ユーザー姿勢情報が示す前記第5ユーザー姿勢に対応する姿勢である標的姿勢に変化させるとともに、前記第5ロボットにより検出された第5検出情報に応じた処理を前記ユーザー装置に行わせるロボットシステムが備える制御装置であって、前記ユーザー装置により検出された1以上の情報であって同期された情報である第5情報と、前記第5ロボットにより検出された1以上の情報であって同期された情報である第6情報とを取得し、取得した前記第5情報及び前記第6情報を記憶部に記憶させる、制御装置。
【0164】
(9)前記第5情報は、前記第5ユーザー姿勢情報を含み、前記第6情報は、前記第5ユーザー姿勢情報が示す姿勢に対応する前記標的姿勢に前記第5ロボットの姿勢が変化した後の前記第5ロボットの姿勢である変化後姿勢を示す変化後姿勢情報と前記第5検出情報とのうち少なくとも前記変化後姿勢情報を含む、制御装置。
【符号の説明】
【0165】
1…ロボットシステム、10…ユーザー装置、11…ヘッドマウントディスプレイ、12、13…データグローブ、20…ロボット、21…頭部部分、22…右腕部分、23…左腕部分、24…支持部分、30…ロボット制御装置、32…記憶部、34…通信部、35…ロボット制御部、36…制御装置、361…ユーザー情報取得部、362…変化前ロボット情報取得部、363…変化後ロボット情報取得部、364…特定部、365…決定部、366…生成部、367…記憶制御部、DB…データベース、N…ネットワーク、SB…サーバー、U1…第1ユーザー