IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 本田技研工業株式会社の特許一覧 ▶ ユニバーシティ オブ マサチューセッツ アマーストの特許一覧

<>
  • 特許-操作システム、および、操作方法 図1
  • 特許-操作システム、および、操作方法 図2
  • 特許-操作システム、および、操作方法 図3
  • 特許-操作システム、および、操作方法 図4
  • 特許-操作システム、および、操作方法 図5
  • 特許-操作システム、および、操作方法 図6
  • 特許-操作システム、および、操作方法 図7
  • 特許-操作システム、および、操作方法 図8
  • 特許-操作システム、および、操作方法 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-13
(45)【発行日】2024-12-23
(54)【発明の名称】操作システム、および、操作方法
(51)【国際特許分類】
   B25J 13/00 20060101AFI20241216BHJP
   A61B 5/397 20210101ALI20241216BHJP
   A61B 5/372 20210101ALI20241216BHJP
   G06F 3/01 20060101ALI20241216BHJP
   G06N 20/00 20190101ALI20241216BHJP
【FI】
B25J13/00 Z
A61B5/397
A61B5/372
G06F3/01 514
G06F3/01 515
G06N20/00
【請求項の数】 7
(21)【出願番号】P 2021096183
(22)【出願日】2021-06-08
(65)【公開番号】P2022187925
(43)【公開日】2022-12-20
【審査請求日】2023-09-20
(73)【特許権者】
【識別番号】000005326
【氏名又は名称】本田技研工業株式会社
(73)【特許権者】
【識別番号】518055925
【氏名又は名称】ユニバーシティ オブ マサチューセッツ アマースト
(74)【代理人】
【識別番号】100165179
【弁理士】
【氏名又は名称】田▲崎▼ 聡
(74)【代理人】
【識別番号】100126664
【弁理士】
【氏名又は名称】鈴木 慎吾
(74)【代理人】
【識別番号】100154852
【弁理士】
【氏名又は名称】酒井 太一
(74)【代理人】
【識別番号】100194087
【弁理士】
【氏名又は名称】渡辺 伸一
(72)【発明者】
【氏名】吉池 孝英
(72)【発明者】
【氏名】ギャリー クリストファー
(72)【発明者】
【氏名】フランク サップ
【審査官】杉山 悟史
(56)【参考文献】
【文献】特開2020-010765(JP,A)
【文献】特開2001-54507(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ~ 21/02
A61B 5/00 ~ 5/378
G06F 3/01
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
操作者の生体信号として上腕部と手部の筋電信号を検出する検出部と、
ロボットの動作環境を示す画像を撮影する撮影部と、
前記生体信号から、現在から所定の予測時間の経過後における当該操作者の手部の動作の予測値を、所定の機械学習モデルを用いて予測する予測部と、
少なくとも前記画像と前記操作者の手部の動作を示す動作信号に基づいて当該操作者がなしうる第2動作を推定する推定部と、
前記予測値と前記第2動作に基づいてロボットの動作を制御する制御部と、を備え、
前記推定部は、前記第2動作として前記予測値よりも微細な動作を推定する
操作システム。
【請求項2】
前記操作者の視線方向を検出する視線方向検出部を備え、
前記推定部は、前記画像から前記視線方向に表われる関心物体を検出し、
さらに前記関心物体に基づいて前記第2動作を推定する
請求項1に記載の操作システム。
【請求項3】
前記生体信号として脳波を検出する脳波検出部を備える
請求項1または請求項2に記載の操作システム。
【請求項4】
前記予測値を伝送する伝送路を備える
請求項1から請求項のいずれか一項に記載の操作システム。
【請求項5】
前記画像を表示する表示部と、を備える
請求項1から請求項のいずれか一項に記載の操作システム。
【請求項6】
前記予測時間に相当する遅延量で遅延させた前記生体信号から定まる前記予測値と、現在の前記操作者の動作の実測値との差分がより低減するように前記機械学習モデルのパラメータを定めるモデル学習部を備える
請求項1から請求項のいずれか一項に記載の操作システム。
【請求項7】
操作者の生体信号として上腕部と手部の筋電信号を検出する検出部と、
ロボットの動作環境を示す画像を撮影する撮影部と、を備える
操作システムにおける操作方法であって、
前記生体信号から、現在から所定時間の経過後における当該操作者の動作の予測値を、所定の機械学習モデルを用いて予測する第1ステップと、
少なくとも前記画像と前記操作者の手部の動作を示す動作信号に基づいて当該操作者がなしうる第2動作を推定する第2ステップと、

前記予測値と前記第2動作に基づいてロボットの動作を制御する第ステップと、を有し、
前記第2ステップは、前記第2動作として前記予測値よりも微細な動作を推定する
操作方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、操作システム、および、操作方法に関する。
【背景技術】
【0002】
操作者の動作を受け付け、受け付けた動作に応じてロボットを駆動する操作システムが提案されている。操作システムは、操作者の動作を通信により遠隔地に所在するロボットに伝達する遠隔操縦システムとして構成されることもある。かかる操作システムでは、通信遅延、制御遅延などにより、ロボットの動作は操作者の動作よりも遅延する。ロボットの動作は、カメラ等により撮像され、ヘッドマウンテッドディスプレイ、据え置き型のモニタ画面などを用いて操作者に提示される。この際にも、撮像時のサンプリング、通信遅延などにより映像の遅延が発生する。操作者は、提示画像を視認して次の動作を定める。画像を視認して把握された動作に遅延が生ずると、操作者は自身の操作を遅くせざるを得ないことがある。その場合には、操作効率が低下し、操作者はロボットの操作に対する自己主体感を得られないことがある。
【0003】
これに対し、人の動作を計測して得られる情報をカルマンフィルタなどの手法を用いて外挿して、将来の動作を予測することがある。例えば、特許文献1には、マスタ装置とスレーブ装置とを結ぶ通信経路上に配置された中継ノードは、遅延情報、直近のセンサ情報、および直近の操作指令情報に基づいてセンサ情報を補正する遠隔操作通信システムについて記載されている。動作の予測は、一定速度の動作に対して効果を奏する。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2001-54507号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載の手法が用いられても、ロボットの動作が操作者の動作よりも遅延する。操作者の動作速度が変化すると、ある時点におけるロボットの動作は、操作者の動作とは異なることになる。このことは、操作効率を低下させ、自己主体感が得られない要因となりうる。
本発明の態様は上記の点に鑑みてなされたものであり、操作性を向上することができる操作システム、および、操作方法を提供することを課題の一つとする。
【課題を解決するための手段】
【0006】
(1)本発明は上記の課題を解決するためになされたものであり、本発明の一態様は、操作者の生体信号として上腕部と手部の筋電信号を検出する検出部と、ロボットの動作環境を示す画像を撮影する撮影部と、前記生体信号から、現在から所定の予測時間の経過後における当該操作者の手部の動作の予測値を、所定の機械学習モデルを用いて予測する予測部と、少なくとも前記画像と前記操作者の手部の動作を示す動作信号に基づいて当該操作者がなしうる前記動作の第2動作を推定する推定部と、前記予測値と前記第2動作に基づいてロボットの動作を制御する制御部と、を備え、前記推定部は、前記第2動作として前記予測値よりも微細な動作を推定する操作システムである。
(2)本発明の他の態様は、(1)の操作システムであって、前記操作者の視線方向を検出する視線方向検出部を備え、前記推定部は、前記画像から前記視線方向に表われる関心物体を検出し、さらに前記関心物体に基づいて前記第2動作を推定してもよい
【0009】
(3)本発明の他の態様は、(1)または(2)の操作システムであって、前記生体信号として脳波を検出する脳波検出部を備えてもよい。
【0010】
(4)本発明の他の態様は、(1)から(3)のいずれかの操作システムであって、前記予測値を伝送する伝送路を備えてもよい。
【0011】
(5)本発明の他の態様は、(1)から(4)のいずれかの操作システムであって、前記画像を表示する表示部と、を備えてもよい。
【0012】
(6)本発明の他の態様は、(1)から(5)のいずれかの操作システムであって、前記予測時間に相当する遅延量で遅延させた前記生体信号から定まる前記予測値と、現在の前記操作者の動作の実測値との差分がより低減するように前記機械学習モデルのパラメータを定めるモデル学習部を備えてもよい。
【0013】
(7)本発明の他の態様は、操作者の生体信号として上腕部と手部の筋電信号を検出する検出部と、ロボットの動作環境を示す画像を撮影する撮影部と、を備える操作システムにおける操作方法であって、前記生体信号から、現在から所定時間の経過後における当該操作者の動作の予測値を、所定の機械学習モデルを用いて予測する第1ステップと、少なくとも前記画像と前記操作者の手部の動作を示す動作信号に基づいて当該操作者がなしうる前記動作の第2動作を推定する第2ステップと、前記予測値と前記第2動作に基づいてロボットの動作を制御する第ステップと、を有し、前記第2ステップは、前記第2動作として前記予測値よりも微細な動作を推定する操作方法である。
【発明の効果】
【0014】
上述した(1)、(7)の構成によれば、操作者の動作よりも先行する操作者の生体信号に基づいてロボットの動作が制御される。操作者の動作がロボットの動作に反映されたことが確認できるまでの遅延が低減する。そのため、ロボットに対する操作性を向上することができる。
【0015】
上述した(1)、(7)の構成によれば、操作者の動作とロボットの動作環境から操作者が意図する動作が第2動作として推定される。ロボットに対する操作に第2動作が補われることで、ロボットの動作に操作者の意図が反映される。そのため、ロボットに対する操作性がさらに向上する。
【0016】
上述した(1)、(7)の構成によれば、操作者が意識することなく動作に先行して生ずる筋電信号を取得し、動作の予測に用いることができる。
【0017】
上述した(3)の構成によれば、操作者が意識することなく動作に先行して生ずる脳波を取得し、動作の予測に用いることができる。
【0018】
上述した(4)の構成によれば、操作装置がロボットから隔絶されていても、ロボット20の動作を制御することができる。
【0019】
上述した(5)の構成によれば、撮影部が撮影したロボットの動作環境を示す画像が表示部に表示される。そのため、操作者がロボットから隔絶されていても、ロボットの状況を視認することができる。
【0020】
上述した(6)の構成によれば、操作者が行った動作と、その動作に先行して生じた生体信号とに基づいて、生体信号から動作を推定するための機械学習モデルを学習することができる。
【図面の簡単な説明】
【0021】
図1】第1の実施形態に係る操作システムの構成例を示す概略ブロック図である。
図2】EMGと操作者動作の例を示す図である。
図3】第2の実施形態に係る操作システムの構成例を示す概略ブロック図である。
図4】モデル学習システムの構成例を示す概略ブロック図である。
図5】機械学習モデルの構成例を示す図である。
図6】ハードウェアの構成例を示す図である。
図7】生体信号、操作者動作、および、ロボット動作の知覚の例を示す図である。
図8】生体信号、操作者動作、および、ロボット動作の知覚の他の例を示す図である。
図9】操作者動作の推定例を示す図である。
【発明を実施するための形態】
【0022】
<第1の実施形態>
以下、図面を参照しながら第1の実施形態について説明する。
図1は、本実施形態に係る操作システムS1aの構成例を示す概略ブロック図である。
操作システムS1aは、操作者の生体信号から、予測時刻における当該操作者の動作の予測値を、所定の機械学習モデルを用いて定める。予測時刻は、その時点(現在)から所定の予測時間の経過後における時刻に相当する。操作システムS1aは、予測値に基づいてロボット20の動作を制御する。操作者は、自身が動作することにより、ロボット20の位置や形状を操作することができる。
【0023】
操作システムS1aは、操作装置10a、ロボット20、および、撮影部30を含んで構成される。操作装置10aとロボット20とは、伝送路Cを経由して、各種のデータを無線または有線で相互に送受信可能に接続される。伝送路Cは、データバス(基線)に限られず、その一部または全部に通信ネットワークを含んで構成されてもよい。
撮影部30は、自部の視野内のロボット20とその周囲を示す画像を撮影する。画像には、ロボット20の動作環境が表される。撮影部30は、撮影した画像を示す画像データを操作装置10aに伝送路Cを経由して送信する。撮影部30は、例えば、ディジタルビデオカメラである。
【0024】
操作装置10aは、ユーザである操作者の動作を直接または間接的に受け付け、受け付けた動作を示す動作信号をロボット20に提供する。操作装置10aは、操作者に生じる生体信号を検出し、検出した生体信号から操作者自身の予測時刻における予測値を示す動作信号を生成する。操作装置10aは、検出部110、予測部120、および、表示部140を含んで構成される。
【0025】
操作装置10aは、人体に装着可能とする装着具を備え、いわゆるウェアラブルデバイス(wearable device)として構成されてもよい。装着部には、前述の機能部をなす部材が設置される。例えば、操作装置10aは、装着具として手袋とヘッドバンド(head band)を備える。手袋は、人体の一部である手部に装着可能とする。手袋には検出部110が設置され、データグローブ(data glove)として構成される。データグローブの数は、1個または2個である。個々のデータグローブは、ロボット20を構成するマニピュレータの操作に用いられる。データグローブの個数は、マニピュレータの数と等しくてもよい。ヘッドバンドは、人体の一部である頭部に装着可能とする。ヘッドバンドには、表示部140が装着され、ヘッドマウンテッドディスプレイ(HMD:Head Mounted Display)として構成されてもよい。
【0026】
検出部110は、操作者に生ずる生体信号を検出する生体信号検出部を備える。検出部110は、検出した生体信号を予測部120に出力する。検出部110は、例えば、生体信号として筋電信号(EMG:Electromyogram)を取得する。筋電信号は、生体の一部をなす上腕部と手部における筋電位の時間変化、即ち、時刻ごとの筋電位を示す。筋電図は、筋電信号の一形態に相当する。本実施形態では、検出部110は、表面電極を含んで構成される。表面電極によれば、生体の表面に装着することで非侵襲的に筋電信号を取得することができる。検出部110は、検出した筋電位に所定の前処理を実行し、処理後の筋電位を示す筋電信号を予測部120に出力してもよい。
【0027】
予測部120は、検出部110から入力される生体信号に基づいて、所定の機械学習モデルを用いて現在よりも所定の予測時間の経過後の時刻である予測時刻における操作者の動作を予測値として予測する。動作は、時刻ごとの姿勢の時系列で表される。予測部120は、予測した予測値を示す動作信号をロボット20に送信する。操作者の動作として、例えば、関節動作(joint motion)が用いられてもよい。関節動作は、筋骨格動力学モデル(muscle dynamics model)に基づいて各時刻における人体の複数の部位のうち相互に接続される2つの部位からなる対ごとに、その2つの部位がなす角度を用いて表現される。筋骨格動力学モデルは、人体の姿勢もしくは動作を示す人体モデルの一種である。複数の部位には、手首、掌、および各指の節が含まれる。節は、指の一部をなす部位であって、一端または両端に他の部位と関節を介して接続される部位である。操作者の動作として、関節動作に代えて、または、関節動作とともに、個々のデータグローブが装着される一部の部位(例えば、手首)の位置または部位間の重心が代表位置として含まれてもよい。機械学習モデルは、例えば、ニューラルネットワーク、ランダムフォレストなど、生体信号から動作を推定することができる数理モデルであれば、いかなる種類の数理モデルであってもよい。
【0028】
一般に、筋電位の発生(発火)から筋張力の発揮により動作が生じるまでに所定の遅延が生ずる。この遅延時間は、電気力学的遅延(EMD:Electromechanical Delay)と呼ばれる。本願では、この遅延時間を遅延時間ΔTと呼ぶことがある。図2に示す例では、EMGは時刻Tにおいて筋電位の発生が開始され、その遅延時間ΔTの経過後の時刻T+ΔTから動作が開始される(曲線Rm)。後述するように、生体信号を解析することで、現実の動作が生ずる前に動作(曲線Pm)を予測することができる。遅延時間ΔTは、典型的には、100ms~300ms程度である。
【0029】
表示部140は、撮影部30から画像データを受信する。表示部140は、受信した画像データに基づく画像を表示するディスプレイを備える。操作者は、表示部140に表される画像を視認することで、ロボット20の動作状況を確認することができる。
【0030】
ロボット20は、操作装置10aから提供される動作信号に基づいて動作する。ロボット20は、複数の部材を含んで構成され、相互に隣接する2個の部材(本明細書では、「部材対」と呼ぶことがある)間の角度を可変にするアクチュエータ(actuator)を備え、ロボット20全体としての位置ならびに姿勢を可変とする。アクチュエータは、各2個の部材を接続する関節ごとに設置される。ロボット20は、提供された動作信号に示される操作者の動作に対応する動作を再現する。ロボット20は、1個のマニピュレータ(manipulator)を有する単腕ロボットであってもよいし、2個のマニピュレータを有する双腕ロボットであってもよい。各1個のマニピュレータには、1個のロボットアーム(robot arm)と1個のエンドエフェクタ(end effector)が含まれる。エンドエフェクタは、ロボットハンド(robot hand)とも呼ばれる。例えば、ロボット20が双腕ロボットであり、操作者が右腕を前方に突き出す場合を仮定する。この場合、ロボット20は、操作者の右手に対応するエンドエフェクタが正面方向に進行するようにロボットアームを動作させる。操作者が左手を握る場合には、ロボット20は、操作者の左手に対応するエンドエフェクタをなす複数の指部を、それぞれの先端が互いに向き合うように変形させる。
【0031】
ロボット20は、制御部210と駆動部220を含んで構成される。
制御部210は、操作装置10aから提供される動作信号に基づいてロボット20の動作を制御する。制御部210は、例えば、動作信号に示される動作に従ってエンドエフェクタが移動するように、ロボット20をなす部材の位置および姿勢を制御する。より具体的には、制御部210は、例えば、動作信号に示される操作者の代表位置に対応するロボット座標系での位置に変換し、エンドエフェクタの位置の目標値として設定する。制御部210は、関節動作で示される個々の部位の位置に対応するロボット座標系での位置を、その部位に対応するロボット20の部材の位置の目標値として設定してもよい。制御部210は、公知の逆運動学問題(inverse kinematic problem)を解いてエンドエフェクタ、またはその部材が目標位置に到達するまでの期間における部材対ごとになす角度を目標値として定める。制御部210は、定めた目標値を示す制御信号を駆動部220に出力する。
【0032】
駆動部220は、部材対ごとにアクチュエータと制御器を含んで構成される。制御器は、その時点における部材対がなす角度の現在値が制御信号に示される角度の目標値に近づくようにアクチュエータを駆動させる。制御器は、現在値と目標値との残差が小さくなるように制御する手法であれば、いかなる手法を用いることができる。制御器は、例えば、PID制御器、PD制御器などのいずれであってもよい。
なお、制御部210は、部材対ごとの目標値としてトルクを設定してもよい。その場合、駆動部220をなす制御器は、その時点における部材対に与えているトルクの現在値が制御信号に示される角度の目標値に近づくようにアクチュエータを駆動させる。
【0033】
図1に示す例では、操作者が動作し、その動作がロボット20の動作に反映され、ロボット20の動作を示す画像が表示部140に表示されるまでに加わる遅延には、次の要因が掲げられる。
(1)伝送遅延(communication delay)ΔT: 伝送遅延ΔTは、操作者の動作を示す動作信号が予測部120から制御部210に伝達されるまでの時間である。従来方式では、検出部110が操作者の動作を示す動作信号を取得し、取得した動作信号をロボット20に提供していた。
(2)制御遅延(control delay)ΔT: 制御遅延ΔTは、動作信号の取得からロボット20の動作に反映されるまでの時間である。図7に示す例では、操作者動作からロボット動作までの時間が伝送遅延ΔTと制御遅延ΔTの合計値に相当する。
【0034】
(3)監視遅延(monitoring delay)T: 監視遅延ΔTは、ロボット20の動作を示す画像を撮影部30が撮影し、撮影した画像を示す画像データが生成されるまでの時間である。
(4)伝送遅延ΔT: 伝送遅延ΔTは、画像データが撮影部30から表示部140に伝達されるまでの時間である。図7に示す例では、ロボット動作からロボット動作の認識までの時間が監視遅延ΔTと伝送遅延ΔTの合計値に相当する。よって、従来方式のように操作装置10aが操作者の動作を示す動作信号を取得する場合には、総遅延時間ΣTは、それらの総和ΔT+ΔT+ΔT+ΔTとなる。
【0035】
これに対し、本実施形態では、予測部120は、検出部110が検出した生体信号を用いてその時点から遅延時間ΔT後における動作を予測し、予測した動作を示す動作信号をロボット20に提供する。そのため、操作がロボット動作に反映され、操作者に認識されるまでの遅延時間が遅延時間ΔTにより相殺される。図8に示す例では、生体信号としてEMGから予測された操作者動作からロボット動作までの期間が、伝送遅延ΔTと制御遅延ΔTの合計値から遅延時間ΔTが差し引かれた時間ΔT+ΔT-ΔTに相当する。遅延時間ΔTは、EMDに相当し、一例として200msとなる。従って、総遅延時間ΣTは、従来方式における総遅延時間から遅延時間ΔTが差し引かれた時間ΔT+ΔT+ΔT+ΔT-ΔTに低減される。そのため、操作者による操作性が向上し、ロボット20の動作に対する自己主体感を向上させることができる。
【0036】
<第2の実施形態>
次に、第2の実施形態について、上記の実施形態との差異点を主として説明する。上記の実施形態と共通の処理、構成については、特に断らない限り同一の符号を付してその説明を援用する。
図3は、本実施形態に係る操作システムS1bの構成例を示す概略ブロック図である。
操作システムS1bは、操作装置10b、ロボット20、および撮影部30を含んで構成される。操作装置10bは、検出部110、予測部120、表示部140、推定部150、および統合部160を含んで構成される。
【0037】
検出部110は、生体信号の他、さらに操作者の動作を検出する動作検出部を備える。検出部110は、検出した動作を示す動作信号を推定部150に出力する。検出部110は、例えば、操作者の各部位の位置を検出するための加速度センサを備える。検出対象とする部位は、複数の部位には、少なくとも掌と各指の節が含まれる。複数の部位には、さらに手首が含まれてもよい。個々の加速度センサは、データグローブに設置されてもよい。個々の加速度センサは、データグローブが操作者の手部に装着されたときに、加速度の検出対象とする部位に接する位置に設置されればよい。
検出部110は、加速度センサに代え、操作者の体躯の画像を撮影する撮影部と、撮影した画像を用いて光学的に操作者の部位ごとの位置を検出する動作検出部を備えてもよい(モーションキャプチャ)。但し、操作者の部位ごとに、所定の波長の成分を有する光を反射するマーカを貼付しておく。
【0038】
検出部110は、操作者の視線方向を検出してもよい。検出部110は、検出した視線方向を示す視線情報を予測部120に出力する。検出部110は、例えば、操作者の視線方向を検出するための視線検出部(eye tracker)を備える。視線検出部は、例えば、ヘッドマウンテッドディスプレイに装着されてもよい。視線検出部は、ヘッドマウンテッドディスプレイが操作者の頭部に装着されたときに、視線の検出対象とする両眼の瞳の像を取得できる部位に設置されればよい。
【0039】
検出部110は、さらに操作者の頭部の向きと位置を検出するための加速度センサを備えてもよい。検出部110は、検出した向きと位置を示す操作者位置情報を予測部120に出力する。検出部110は、例えば、操作者の頭部の向きと位置を検出するための6軸加速度センサを備える。6軸加速度センサは、三次元空間における互いに直交する三方向それぞれの加速度と、三方向それぞれの軸加速度を検出する。検出部110は、検出された三方向の軸加速度を二階積分して向きを定めることができる。検出部110は、検出された三方向の加速度を二階積分して位置を定めることができる。加速度センサは、ヘッドマウンテッドディスプレイが操作者の頭部に装着されたときに、加速度もしくは軸加速度の検出対象とする頭部の額面に接する位置に設置されればよい。
【0040】
推定部150には、検出部110から動作信号が入力され、撮影部30から画像データが入力される。推定部150は、動作信号と画像データに基づいて操作者がなしうる第2動作を推定する。第2動作は、主に予測部120により推定される大局的な動作(例えば、手部の移動)よりも微細な動作となる。第2動作には、例えば、個々の指の動作、手部の位置と方向の一方もしくは両方の微調整などが含まれる。推定部150は、推定した第2動作を示す第2動作信号を統合部160に出力する。
【0041】
推定部150は、例えば、ロボット20のエンドエフェクタが、その大きさよりも物体に近接する領域に進入する状況を示す画像データと、複数の指の動作の開始を示す動作信号が入力されるとき、第2動作として、それぞれの指の先端が向き合う動作を推定する。このような状況では、操作者は自身の手を握ることでエンドエフェクタに物体を把持させる可能性が高い。推定部150は、例えば、ロボット20のエンドエフェクタがテーブル上に置かれた物体を把持した状況を示す画像データと、複数の指の動作の開始を示す動作信号が入力されるとき、第2動作として、それぞれの指の先端が退け合う動作を推定する。このような状況では、操作者は自身の各指を広げることでエンドエフェクタに対し、把持している物体から放させる可能性が高い。
【0042】
推定部150は、検出部110から入力される視線情報をさらに用いて、第2動作を定めてもよい。推定部150は、視線情報に示される視線方向を関心方向として推定する。関心方向は、操作者が関心を有する方向を意味する。推定部150は、検出部110から入力される操作者位置情報と撮影部30の位置、向きならびに視野に基づいて、視線情報に示される視線方向を撮影部30の位置ならびに向きを基準とするロボット環境座標系における方向に変換し、変換した方向を関心方向として定めることができる。推定部150は、画像データに示される画像に複数の物体の像が含まれる場合、複数の物体のうち、関心方向にその像が表れる物体を関心物体として判定することができる。推定部150は、動作信号、画像データ、および関心物体に基づいて第2動作を定め、関心物体以外の物体を無視してもよい。これにより、関心物体以外の操作者が意図しない物体に対する第2動作の無用な推定が回避される。
【0043】
推定部150には、例えば、入力情報とする画像データと動作信号と、出力情報とする第2動作との関係を示す第2動作データを予め設定しておく。推定部150は、自部への入力情報に対応する第2動作を、第2動作データを参照して定めることができる。推定部150には、第2機械学習モデルを用いて、入力情報とする画像データと動作信号から、出力情報とする第2動作を推定するためのパラメータセットを予め設定しておいてもよい。推定部150は、設定したパラメータセットのもとで第2機械学習モデルを用いて、入力情報に基づいて第2動作を定めることができる。入力情報には、さらに視線情報が含まれてもよい。
【0044】
予測部120は、自部が予測した予測値を示す動作信号を、ロボット20に代え統合部160に出力する。
統合部160には、予測部120から動作信号が入力され、推定部150から第2動作信号が入力される。統合部160は、動作信号が示す動作である第1動作と第2動作信号が示す第2動作とを統合し統合動作を構成する。第1動作と第2動作が矛盾せず整合する限り、統合動作も関節動作として表現される。統合部160は、構成した統合動作を示す動作信号をロボット20に出力する。
【0045】
なお、統合部160は、第1動作と第2動作に矛盾が生ずる場合、もしくは、第1動作と第2の動作の実行により悪影響が予想される場合には、いずれか一方を選択し、他方を棄却してもよい。例えば、第1動作が示す操作者の手の動きが、物体を把持しているエンドエフェクタがテーブルから離れる方向への物体への動きに対応し、第2動作が指の先端を退け合う動作(物体の把持状態からの解放に対応)である場合には、統合部160は、第1動作を選択し、第2動作を棄却してもよい。その場合には、エンドエフェクタが物体を把持しながらテーブルから離れるときに、第2動作により物体が脱落することが回避される。また、第1動作が静止していた手の動きの開始を示し(エンドエフェクタの始動に対応)、第2動作が指の先端を向かい合わせる動作の途中(物体の把持の過程に対応)を示す場合には、統合部160は、第1動作を棄却し、第2動作を優先してもよい。その場合には、エンドエフェクタにより物体の把持が完了しない状態で移動することが回避される。
【0046】
統合部160には、例えば、第1動作と第2動作と、それぞれの選択の要否を示す選択データを予め設定しておいてもよい。統合部160は、選択データを参照して、第1動作と第2動作の要否をそれぞれ特定する。統合部160は、第1動作と第2動作のそれぞれが要と特定するとき、第1動作と第2動作を統合した統合動作を示す動作信号を生成し、生成した動作信号をロボット20に出力する。統合部160は、第1動作と第2動作の一方の動作を要と特定し、他方の動作を否と特定するとき、一方の動作を示す動作信号を生成し、生成した動作信号をロボット20に出力する。統合部160は、第1動作と第2動作のいずれの動作も否と特定するとき、いずれの動作を示す動作信号も生成しない。
【0047】
ロボット20の制御部210には、操作装置10bから提供される動作信号に基づいてロボット20の動作を制御する。制御部210には、統合動作を示す動作信号が入力されることがある。その場合、制御部210には、生体信号により推定された動作と、動作環境に応じて推定された第2動作を組み合わせた動作が指示され、駆動部220に対し、かかる動作を指令する。例えば、推定された動作として大局的な動作が指示され、第2動作として微細な動作が指示される。大局的な動作は、例えば、比較的移動速度が高い手首の並進運動などがある。第2動作として、物体に対する個々の指部の位置合わせ、把持、把持状態からの解放などがある。そのため、操作者はロボット20の動作環境において、より操作者の意図に沿ったきめの細かい動作を指示することができる。
【0048】
(モデル学習)
次に、機械学習モデルの学習について説明する。図4は、モデル学習システムS2の構成例を示す概略ブロック図である。モデル学習システムS2は、予測部120が用いる機械学習モデルの学習を行うためのシステムである。
モデル学習システムS2は、動作検出部112、生体信号検出部114、および、モデル学習部40を含んで構成される。動作検出部112は、人体の動作を検出する。生体信号検出部114は、人体に生ずる生体信号を検出する。動作の検出対象とする人体は、操作者以外の人物の人体でもよいが、操作者自身の人体の方が望ましい。モデル学習部40は、検出された生体信号に基づいて機械学習モデルを用いて推定される動作(出力2)と、検出された動作(出力1)との差の大きさが、より小さくなるように(最小化)機械学習モデルのパラメータセットを定める。この構成によりモデル学習部40は、既知の生体信号と動作信号からなるデータペアを複数個含む訓練データ(supervised data)を用いて、機械学習モデルが学習される(教師あり学習(supervised training))。
【0049】
動作検出部112は、上記の検出部110と同様に人体の動作を検出する。動作検出部112は、例えば、操作者の体躯を示す画像を撮影する撮影部と、撮影部が撮影した画像を用いて光学的に操作者の部位ごとの位置を検出する動作解析部を備える。動作検出部112は、検出した人体の動作を示す動作信号をモデル学習部40に出力する。
【0050】
生体信号検出部114は、上記の検出部110と同様に人体に生ずる生体信号を検出する。生体信号検出部114は、例えば、生体信号感知部114a、生体信号取得部114b、および前処理部114cを備える。
【0051】
生体信号感知部114aは、人体の所定の部位に設置または近接され、その部位に生ずる生体信号を感知する。生体信号感知部114aは、例えば、上記の表面電極に相当する。
生体信号取得部114bは、生体信号感知部114aが感知した生体信号を取得する。生体信号取得部114bは、取得した生体信号を前処理部114cに出力する。生体信号取得部114bは、例えば、EMGキャプチャである。EMGキャプチャは、例えば、生体信号感知部114aに生じた電位を増幅し、増幅した電位を示す生体信号を取得する。
【0052】
前処理部114cは、生体信号取得部114bから入力される生体信号に対して前処理を行い、前処理により得られた処理後の生体信号をモデル学習部40に出力する。前処理には、例えば、整流(rectification)とフィルタリング(filtering)の一方または両方が含まれる。整流は、各時刻における電位が所定の電位の閾値(例えば、0V)以上であるとき、その電位を処理後の生体信号の電位とし、各時刻における電位が所定の電位の閾値未満であるとき、その閾値を処理後の生体信号の電位とする処理である。フィルタリングは、生体信号として予め定めた有意な周波数帯域の成分を維持し、それ以外の周波数帯域の成分を抑圧もしくは除去する処理である。これにより、生体信号に混入されるノイズが除去される。
【0053】
モデル学習部40は、遅延部410、運動解析部420、および、パラメータ更新部430を含んで構成される。
遅延部410は、生体信号検出部114から入力される生体信号を予め定めた予測時間に相当する遅延量(例えば、200ms)で遅延させる。遅延部410は、遅延後の生体信号をパラメータ更新部430に出力する。
【0054】
運動解析部420は、動作検出部112から入力された動作信号に示す動作を、公知の筋骨格動力学モデルを用いて解析し、解析された動作を示す動作信号をパラメータ更新部430に出力する。運動解析部420は、例えば、入力された動作信号から人体を構成する複数の部位のそれぞれの位置を特定し、相互に接続される2個の部位からなる対ごとに、2個の部位がなす角度を定める。運動解析部420は、定めた角度を示す動作信号を生成することができる。
【0055】
パラメータ更新部430は、遅延部410から入力される生体信号を入力情報として用いて、所定の機械学習モデルを用いて出力情報として推定される人体の動作の推定値と、運動解析部420から入力される動作信号に示される人体の観測値との差の大きさが、より小さくなるように機械学習モデルのパラメータセットを再帰的に(regressively)更新する。観測値、推定値が、図示の出力1、出力2にそれぞれ相当する。観測値と推定値との差の大きさを示す損失関数(loss function)は、例えば、差分二乗和(SSD:Sum of Squared Differences)、交差エントロピー(cross entropy)などのいずれであってもよい。
【0056】
パラメータ更新部430は、更新されるパラメータセットの更新を、予め設定された回数繰り返してもよいし、パラメータセットが一定値に収束するまで繰り返してもよい。パラメータ更新部430は、例えば、パラメータセットを構成する一部または全部のパラメータの更新前後の値の差の大きさが所定の大きさの閾値以下となったか否かに基づいて、収束したか否かを判定することができる。パラメータ更新部430は、更新により定めたパラメータセットを上記の予測部120に設定する。パラメータ更新部430において用いられる機械学習モデルは、予測部120において用いられる機械学習モデルと同種の数理モデルであればよい。
【0057】
なお、動作検出部112および生体信号検出部114として、上記の検出部110が用いられてもよいし、検出部110とは別個に設けられてもよい。また、モデル学習部40は、操作システムS1a、S1bのいずれか、または、両者に備わっていてもよいし、操作システムS1a、S1bのいずれとも独立の機器において実現されてもよい。
また、モデル学習部40が、操作システムS1a、S1bのいずれか、または、両者に備わる場合には、ロボット20に対する操作中に、検出部110から入力される生体信号と、動作信号を用いて、機械学習モデルのモデルパラメータを更新してもよい(オンライン学習)。これにより、生体信号に基づいて推定される動作予測値が現在の動作の予測値に近づくように校正されるので、さらに動作信号の予測精度を向上させることができる。
【0058】
(機械学習モデル)
次に、機械学習モデルの一例について説明する。図5は、ニューラルネットワークの一種であるCNN(Convolutional Neural Network、畳み込みニューラルネットワーク)の構成例を示す。CNNは、いわゆる深層学習(deep learning)に用いられる機械学習モデルの代表例である。CNNは、1層の入力層(input layer)、複数の中間層(intermediate layer, hidden layer)および1層の出力層(output layer)を備える。図5に例示されるCNNは、入力層Il、L層(Lは、2以上の整数)の中間層Ml-1~Ml-L、および出力層Olを備える。各層は、それぞれ所定数の節点(ノード(node))を備える。複数の中間層には少なくとも1層の畳み込み層と1層のプーリング層が含まれる。
【0059】
入力層Ilの各節点は、自部に入力される入力値を次の層の少なくとも1つの節点に出力する。例えば、予測部120、パラメータ更新部430では、生体信号を構成する所定期間(例えば、10-100ms)内の個々のサンプル値が、そのサンプル値に対応する節点に入力される。
出力層Olの各節点は、直前の層の少なくとも1つの節点から入力される入力値を外部に出力する。予測部120、パラメータ更新部430は、動作を表現する個々の要素値(例えば、部位間の角度)が、その要素値に対応する節点から出力される。
【0060】
畳み込み層(convolution layer)には、カーネル数(number of kernels)が予め設定される。カーネル数とは、それぞれ入力値に対する処理(例えば、演算)に用いるカーネルの個数に相当する。カーネル数は、通例、入力値の個数よりも少ない。カーネルとは、一度に1つの出力値を算出するための処理単位を指す。ある層において算出される出力値は、次の層への入力値として用いられる。カーネルは、フィルタとも呼ばれる。カーネルサイズ(kernel size)とは、カーネルにおける一回の処理に用いられる入力値の数を示す。カーネルサイズは、通例、2以上の整数となる。
【0061】
畳み込み層は、複数の節点のそれぞれに直前の層から入力される入力値に対してカーネルごとに畳み込み演算を行って畳み込み値(convolved value)を算出し、算出した畳み込み値とバイアス値(bias)を加算して補正値(corrected value)を算出する層である。畳み込み層は、算出した補正値に対する所定の活性化関数(activation function)の関数値を算出し、算出した出力値を次の層に出力する。なお、畳み込み層の各節点には直前の層から1個または複数の入力値が入力され、各節点における畳み込み値の算出のために、それぞれの入力値に対して独立な畳み込み係数が用いられる。畳み込み係数、バイアス値および活性化関数のパラメータは、1セットのモデルパラメータの一部となる。
【0062】
活性化関数として、例えば、正規化線形ユニット(rectified linear unit)、シグモイド関数(sigmoid function)などが利用できる。正規化線形ユニットは、所定の閾値(例えば、0)以下の入力値に対する出力値として、その閾値に定め、所定の閾値を超える入力値をそのまま出力する関数である。従って、この閾値は1セットのモデルパラメータの一部となりうる。また、畳み込み層については、直前の層の節点からの入力値の参照の要否、次の層の節点への出力値の出力の要否も、1セットのモデルパラメータの一部となりうる。
【0063】
プーリング層(pooling layer)は、直前の層の複数の節点からそれぞれ入力される入力値から1つの代表値を定め、定めた代表値を出力値として次の層に出力する節点を有する層である。代表値は、例えば、最大値、平均値、最頻値など複数の入力値を統計的に代表する値が用いられる。プーリング層にはストライド(stride)を予め設定しておく。ストライドとは、1つの節点に対して入力値を参照する直前の層の相互に隣接する節点の範囲を示す。そのため、プーリング層は、直前の層からの入力値を、より低い次元に縮約(ダウンサンプリング, down-sampling)して出力値を次の層に提供する層とみなすこともできる。
【0064】
次に、機械学習モデルを用いた操作者動作の推定例について説明する。図9は、操作者動作の推定例を示す図である。図9の縦軸、横軸は、それぞれ動作、時刻を示す。区間Aは、モデル学習に用いた生体信号から機械学習モデルを用いて推定された動作の推定値と、その動作の観測値を示す。推定値は、観測値とほぼ等しい値をとる。推定値は観測値よりも予測時間に相当する時間だけ先行する。これは、現在よりも予測時間の経過後の予測時刻における動作が予測されていることを示す。モデル学習において機械学習モデルへの入力情報とする生体信号に予測時間に相当する遅延を加えて、出力情報とする動作と同期をとったためである。区間Bは、モデル学習に用いなかった生体信号から機械学習モデルを用いて推定値と、その動作の観測値を示す。推定値には、誤差が加わるが、観測値と同様の時間経過に対する変化傾向を有する。推定値は観測値よりも予測時間に相当する時間だけ先行するが、その周期と振幅は観測値と同様となる。
【0065】
なお、上記の説明では、生体信号としてEMGを用いる場合を例にしたが、これには限られない。人体の動作と相関を有し、その動作に先行して発生する生体信号であれば適用可能である。かかる生体信号として、例えば、脳波(EEG:Electroencephalograph)を用いることができる。その場合、検出部110は、非侵襲的に脳波を検出するためのブレインマシンインタフェース(BMI、Brain Machine Interface)として構成されてもよい。BMIは、脳の活動により生ずる電位の変化を検出するための頭皮上電極を備える。頭皮上電極は、ヘッドマウンテッドディスプレイに設置されてもよい。頭皮上電極は、操作者がヘッドマウンテッドディスプレイを装着したときに、操作者の頭皮に接触する位置に設置されればよい。
【0066】
以上に説明したように、上記の実施形態に係る操作システムS1a、S1bは、操作者の生体信号から、現在から所定の予測時間の経過後における当該操作者の動作の予測値を、所定の機械学習モデルを用いて定める予測部120と、予測値に基づいてロボット20の動作を制御する制御部210と、を備える。
この構成によれば、操作者の動作よりも先行して生ずる操作者の生体信号に基づいてロボット20の動作が制御される。操作者の動作がロボット20の動作に反映されたことが確認できるまでの遅延が低減するので、ロボット20に対する操作性を向上することができる。ひいては、操作者において自己主体感を増進することができる。
【0067】
また、操作システムS1bは、少なくともロボット20の動作環境を示す画像と操作者の動作を示す動作信号に基づいて当該操作者がなしうる第2動作を推定する推定部150を備え、制御部210は、さらに第2動作に基づいてロボット20の動作を制御してもよい。
この構成によれば、操作者の動作とロボット20の動作環境から操作者が意図する動作が第2動作として推定される。ロボット20に対する操作に第2動作が補われることで、ロボット20の動作に操作者の意図が反映される。そのため、ロボット20に対する操作性がさらに向上する。
【0068】
操作システムS1a、S1bは、さらに生体信号として筋電信号を検出する検出部110を備えてもよい。
この構成によれば、操作者が意識することなく動作に先行して生ずる筋電信号を取得し、動作の予測に用いることができる。
【0069】
操作システムS1a、S1bは、さらに生体信号として脳波を検出する検出部110を備えてもよい。
この構成によれば、操作者が意識することなく動作に先行して生ずる脳波を取得し、動作の予測に用いることができる。
【0070】
操作システムS1a、S1bは、さらに生体信号から推定された予測値を制御部210に伝送する伝送路Cpを備えてもよい。
この構成により、操作装置10a、10bがロボット20から隔絶されていても、ロボット20の動作を制御することができる。
【0071】
操作システムS1a、S1bは、ロボット20の動作環境を示す画像を撮影する撮影部30と、当該画像を表示する表示部140と、を備えてもよい。
この構成により、撮影部30が撮影したロボット20の動作環境を示す画像が表示部140に表示される。そのため、操作者がロボット20から隔絶されていても、ロボット20の状況を視認することができる。
【0072】
操作システムS1a、S1bは、予測時間に相当する遅延量で遅延させた生体信号から定まる操作者の動作の予測値と、現在の操作者の動作の実測値との差分がより低減するように機械学習モデルのパラメータを定めるモデル学習部40を備えてもよい。
この構成により、操作者が行った動作と、その動作に先行して生じた生体信号とに基づいて、生体信号から動作を推定するための機械学習モデルを学習することができる。
【0073】
以上、図面を参照してこの発明の実施形態について説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【0074】
例えば、操作システムS1a、S1bにおいて、撮影部30および表示部140の一方または両方が省略されていてもよい。また、伝送路Cには、通信ネットワークが含まれなくてもよい。かかる構成であっても、操作者がロボット20に比較的近接し、ロボット20の動作環境を目視することができれば、許容されうる。
操作装置10aが制御部210を備える代わりに、ロボット20において制御部210が省略されてもよい。
予測部120は、検出部110と有線または無線で各種のデータを伝送可能に接続されていれば、操作装置10a、10bにおいて検出部110が省略されてもよい。
また、操作装置10a、10bは、モデル学習部40を備えてもよい。
操作装置10a、10bは、必ずしも人体に装着可能に構成されていなくてもよい。操作装置10a、10bは、例えば、据置型であってもよい。
【0075】
上記の機器(例えば、操作装置10a、10b、ロボット20、モデル学習装置)は、専用の部材を含むハードウェアで実現されてもよいし、汎用の部材を含むコンピュータとして構成されてもよい。図6に例示されるコンピュータ50は、プロセッサ52、ドライブ部56、入出力部58、ROM62、およびRAM64を含んで構成される。
【0076】
プロセッサ52は、個々の機器の機能を発揮させるための処理や、その機器を構成する各部の機能を制御する。プロセッサ52は、例えば、CPU(Central Processing Unit)である。
ドライブ部56は、記憶媒体54を固定してもよい、着脱可能としてもよい。ドライブ部56は、記憶媒体54に記憶されている各種のデータを読み取り、または、各種のデータを記憶媒体54に記憶する。ドライブ部56は、例えば、半導体ドライブ(SSD:Solid State Drive)、ハードディスクドライブ(HDD:Hard Disk Drive)である。記憶媒体54は、例えば、フラッシュメモリ、ハードディスクなどの不揮発性メモリ(non-volatile memory)である。
【0077】
入出力部58は、他の機器との間で無線または有線で各種のデータを入力または出力する。入出力部58は、他の機器と通信ネットワークを経由して、各種のデータを入出力可能に接続してもよい。入出力部58は、例えば、入出力インタフェース、通信インタフェースなどのいずれか、または、それらの組合せのいずれであってもよい。
【0078】
ROM(Read Only Memory)62は、個々の機器の各部が実行する各種の処理を指示する命令が記述されたプログラム、その実行のためのパラメータなどの各種のデータ、各部により取得された各種のデータを永続的に記憶する記憶媒体である。なお、本願では、プログラムに記述された命令で指示される処理を実行することを、「プログラムを実行する」、「プログラムの実行」などと呼ぶことがある。
RAM(Random Access memory)64は、主にプロセッサ52の作業領域として用いられる記憶媒体である。プロセッサ52は、その起動に応じてROM62に記憶されたプログラムとパラメータをRAM64に記録する。そして、プロセッサ52は、その実行により得られた演算結果、取得したデータなどをRAM64に一時的に記録する。
【0079】
なお、上記の機器は、それぞれ、その内部にコンピュータシステムを備えてもよい。例えば、上記のプロセッサ52は、コンピュータシステムの構成要素となりうる。上述した各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記憶媒体に記憶され、このプログラムをコンピュータが読み出して実行することによって、それらの処理が行われる。コンピュータシステムは、OS(Operation System)、デバイスドライバ、ユーティリティプログラムなどのソフトウェアや周辺機器等のハードウェアを含むものとする。図6に示すハードウェアは、かかるハードウェアの一例に相当する。また、「コンピュータ読み取り可能な記憶媒体」とは、磁気ディスク、光磁気ディスク、ROM、RAM、半導体メモリ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに、コンピュータ読み取り可能な記憶媒体、とは、インターネット等のネットワークや電話回線等の通信回線を用いてプログラムを送信する場合に用いる通信線など、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリなど、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0080】
また、上記の機器の一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。上記の機器の各機能ブロックは個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【符号の説明】
【0081】
S1a、S1b…操作システム、S2…モデル学習システム、10a、10b…操作装置、20…ロボット、30…撮影部、40…モデル学習部、50…コンピュータ、52…プロセッサ、54…記憶媒体、56…ドライブ部、58…入出力部、62…ROM、64…RAM、110…検出部、112…動作検出部、114…生体信号検出部、114a…生体信号感知部、114b…生体信号取得部、114c…前処理部、120…予測部、140…表示部、150…推定部、160…統合部、210…制御部、220…駆動部、410…遅延部、420…運動解析部、430…パラメータ更新部
図1
図2
図3
図4
図5
図6
図7
図8
図9