(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024171818
(43)【公開日】2024-12-12
(54)【発明の名称】制御装置、制御方法、プログラム、およびロボット制御システム
(51)【国際特許分類】
B25J 3/00 20060101AFI20241205BHJP
【FI】
B25J3/00
【審査請求】有
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023089061
(22)【出願日】2023-05-30
(71)【出願人】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【弁理士】
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】柳生 拓哉
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS10
3C707JT04
3C707JT10
3C707JU02
3C707JU12
3C707KS16
3C707KS20
3C707KS30
3C707LV04
3C707LV05
(57)【要約】
【課題】高い精度でロボットアームの動作を制御することのできる制御装置、制御方法、プログラム、およびロボット制御システムを提供する。
【解決手段】制御機能部は、手の位置と手の姿勢と関節の曲げ角度とに基づいて、前記手に対応するロボットアームの動きを制御するための制御信号を生成して出力する。出力デバイス側インターフェース部は、前記制御機能部が生成した前記制御信号を前記ロボットアームに対して送信するとともに、所定のタイミングで前記ロボットアームにおける状態情報を受信して前記制御機能部に渡す。ロボットアームにおける状態情報は、ロボットアーム側の手の位置と手の姿勢と各指の関節の曲げ角度とを表す情報である。前記制御機能部は、出力デバイス側インターフェース部から渡される状態情報に基づいて、ユーザーの手の側の状態とロボットアーム側の状態情報とが整合するように制御信号を生成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ユーザーの手の位置の情報と、前記ユーザーの手の姿勢の情報と、前記ユーザーの手における各指の関節の曲げ角度の情報と、を表す信号を取得する入力デバイス側インターフェース部と、
前記手の位置と、前記手の姿勢と、前記関節の曲げ角度とに基づいて、前記手に対応するロボットアームの動きを制御するための制御信号を生成して出力する制御機能部と、
前記制御機能部が生成した前記制御信号を前記ロボットアームに対して送信するとともに、所定のタイミングで前記ロボットアームにおける状態情報を受信して前記制御機能部に渡す出力デバイス側インターフェース部と、
を備え、
前記ロボットアームにおける前記状態情報は、前記手の位置と、前記手の姿勢と、前記関節の曲げ角度とに対応する、前記ロボットアーム側の手の位置と手の姿勢と各指の関節の曲げ角度とを表す情報であり、
前記制御機能部は、前記所定のタイミングで、前記出力デバイス側インターフェース部から渡される前記状態情報に基づいて、前記ユーザーの手の側の状態と前記ロボットアーム側の前記状態情報とが整合するように前記制御信号を生成する、
制御装置。
【請求項2】
前記制御機能部は、
前記ユーザーの手の位置の情報と、前記ユーザーの手の姿勢の情報と、前記ユーザーの手における各指の関節の曲げ角度の情報と、の少なくともいずれかの情報の時間的推移に基づいてノイズを検出した場合には、検出された前記ノイズが削除または緩和されるように、当該ノイズを生じさせた、前記ユーザーの手の位置の情報と、前記ユーザーの手の姿勢の情報と、前記ユーザーの手における各指の関節の曲げ角度の情報とのいずれかを補正するノイズ補正機能部、
を備える、請求項1に記載の制御装置。
【請求項3】
前記入力デバイス側インターフェース部は、前記ユーザーの手が持つすべての関節の曲げ角度の情報、を表す信号を取得し、
前記制御機能部は、前記すべての関節の曲げ角度の情報に基づいて、前記制御信号を生成して出力する、
請求項1に記載の制御装置。
【請求項4】
前記制御機能部が生成する前記制御信号の時系列を保存するとともに、要求された際には、保存された前記制御信号の時系列を読み出して、前記出力デバイス側インターフェース部に、当該前記制御信号の時系列を前記ロボットアームに対して送信させるよう制御するキャプチャリング機能部、
をさらに備える請求項1に記載の制御装置。
【請求項5】
入力デバイス側インターフェース部が、ユーザーの手の位置の情報と、前記ユーザーの手の姿勢の情報と、前記ユーザーの手における各指の関節の曲げ角度の情報と、を表す信号を取得する過程と、
制御機能部が、前記手の位置と、前記手の姿勢と、前記関節の曲げ角度とに基づいて、前記手に対応するロボットアームの動きを制御するための制御信号を生成して出力する過程と、
出力デバイス側インターフェース部が、前記制御機能部が生成した前記制御信号を前記ロボットアームに対して送信するとともに、所定のタイミングで前記ロボットアームにおける状態情報を受信して前記制御機能部に渡す過程と、
を含み、
前記ロボットアームにおける前記状態情報は、前記手の位置と、前記手の姿勢と、前記関節の曲げ角度とに対応する、前記ロボットアーム側の手の位置と手の姿勢と各指の関節の曲げ角度とを表す情報であり、
前記制御機能部は、前記所定のタイミングで、前記出力デバイス側インターフェース部から渡される前記状態情報に基づいて、前記ユーザーの手の側の状態と前記ロボットアーム側の前記状態情報とが整合するように前記制御信号を生成する、
制御方法。
【請求項6】
ユーザーの手の位置の情報と、前記ユーザーの手の姿勢の情報と、前記ユーザーの手における各指の関節の曲げ角度の情報と、を表す信号を取得する入力デバイス側インターフェース部と、
前記手の位置と、前記手の姿勢と、前記関節の曲げ角度とに基づいて、前記手に対応するロボットアームの動きを制御するための制御信号を生成して出力する制御機能部と、
前記制御機能部が生成した前記制御信号を前記ロボットアームに対して送信するとともに、所定のタイミングで前記ロボットアームにおける状態情報を受信して前記制御機能部に渡す出力デバイス側インターフェース部と、
を備え、
前記ロボットアームにおける前記状態情報は、前記手の位置と、前記手の姿勢と、前記関節の曲げ角度とに対応する、前記ロボットアーム側の手の位置と手の姿勢と各指の関節の曲げ角度とを表す情報であり、
前記制御機能部は、前記所定のタイミングで、前記出力デバイス側インターフェース部から渡される前記状態情報に基づいて、前記ユーザーの手の側の状態と前記ロボットアーム側の前記状態情報とが整合するように前記制御信号を生成する、
制御装置、としてコンピューターを機能させるためのプログラム。
【請求項7】
請求項1に記載の制御装置と、
前記制御装置の前記入力デバイス側インターフェース部に対して、ユーザーの手の位置の情報と、前記ユーザーの手の姿勢の情報と、を表す信号を送信するトラッカーと、
前記制御装置の前記入力デバイス側インターフェース部に対して、前記ユーザーの手における各指の関節の曲げ角度の情報、を表す信号を送信するグローブと、
を備えるロボット制御システム。
【請求項8】
請求項1に記載の制御装置と、
前記制御装置の前記出力デバイス側インターフェース部から送信される前記制御信号に基づいて動作するとともに、前記所定のタイミングで自装置における前記状態情報を前記出力デバイス側インターフェース部に対して送信するロボットアームと、
を備えるロボット制御システム。
【請求項9】
請求項1に記載の制御装置と、
前記制御装置の前記入力デバイス側インターフェース部に対して、ユーザーの手の位置の情報と、前記ユーザーの手の姿勢の情報と、を表す信号を送信するトラッカーと、
前記制御装置の前記入力デバイス側インターフェース部に対して、前記ユーザーの手における各指の関節の曲げ角度の情報、を表す信号を送信するグローブと、
前記制御装置の前記出力デバイス側インターフェース部から送信される前記制御信号に基づいて動作するとともに、前記所定のタイミングで自装置における前記状態情報を前記出力デバイス側インターフェース部に対して送信するロボットアームと、
を備えるロボット制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、制御方法、プログラム、およびロボット制御システムに関する。
【背景技術】
【0002】
近年、ロボットを様々な分野で活用することが期待されている。ロボットの制御方法の一つとして、人が遠隔地から操作する方法がある。操作方法の一つは、遠隔地から人(操作者)が腕や手を用いて操作(動作)した通りに、ロボットアームが動作することを期待するものである。こういったロボットアームの遠隔操作は、例えば、災害地や人が立ち入ることが困難な場所(人にとっては危険な場所や、人体に悪影響を及ぼす可能性のある場所を含む)において、人に代わってロボットが作業するという目的で利用可能である。また、外科医師らが現地に赴くことなく遠隔地から手術を行う「遠隔手術」への活用が見込める。また、人が直接現地に行くことなく通信回線を介して行う「オンラインツアー」での体験操作に活用することも期待される。
【0003】
人(操作者)の操作(動作)の通りに遠隔地のロボットアームが動く「遠隔操作」は、操作のために習得すべき特殊な技能がなく(あるいは、少なく)、人(操作者)の直感的な操作を可能とする。
【0004】
特許文献1には、ロボット制御方法が記載されている。特に、特許文献1の段落0034には、「オペレーションコンピュータ10は、主に、オペレータ40のモーションに基づいてロボット3へのコマンドを生成」と記載されている。また、特許文献1の段落0266には、「仮想空間では遅れがないように動作し、物理シミュレータでロボット3の運動をシミュレートし、シミュレーション結果を用いて仮想空間内ではオペレータ40とアバター41とを同期させ動作させる。そして、アバターの41の動きを示すデータをメモリに入れておき、ロボット3に順次送信する。」と記載されている。
【0005】
特許文献2には、ロボットアームを誘導する技術が記載されている。特に、特許文献2の段落0192には、「ロボット・アーム6は、ロボット・アームを統御するための種々の制約を考慮する動きコントローラGEN_TRAJによって誘導される。特に、このコントローラは、設定された軌道の計画と、ユーザによる処置の対象となるゾーンの定義を考慮する。」と記載されている。また、特許文献2の段落0187には、「本発明の方法の有利な点は、30ms未満で新たなモデル化された表面を生成することが可能なことにある。これらの応答時間は、特に、可能な限り迅速にその場を離れるために衝突または突然な動きを予期するのに十分な速度でロボット・アーム6の動きを統御することを可能とする。」と記載されている。
【0006】
特許文献3には、ロボット・システムの視覚ベースの遠隔操作の技術が記載されている。特に、特許文献3の段落0015には、「
図3は、少なくとも一実施例による、人間の手をリアルタイムで追跡し、対応する動作を実行するようロボットを制御するシステムの実例を示す。」と記載されている。また、特許文献3の段落0020には、「
図4は、手の姿勢及びセグメント化を取得するために使用されるカラー・グローブの実例を示す。少なくとも一実施例では、グローブ402は、5本の指404、406、408、410、及び412を含み、それぞれの指が、異なる色の布で色付けされている。少なくとも一実施例では、OpenCVの色の閾値処理を用いたアノテーション生成が軽微になるように、一意の色が印刷される。少なくとも一実施例では、手の甲414の色が、手の姿勢を一意に判定する。」と記載されている。また、特許文献3の段落0023には、「少なくとも一実施例では、手の姿勢は、グローブの手の甲にある3つの異なる色付きブロブによって示される3つの一意のキーポイントによって推定されることが可能である。」と記載されている。
【0007】
特許文献4には、手術システムにおいて手や指を追跡する技術が記載されている。特許文献4の例えば
図2A~
図2Dには、執刀医の指にセンサーを装着する例が開示されている。また、特許文献4の段落0052には、「マスターフィンガー追跡グリップ270は、指装着センサ211、212(指および親指装着センサ211、212と称される場合もある)を含み、人指し指292Bの先端および親指292Aの先端のそれぞれのロケーション(一実施例における位置および配向)を独立して追跡し、すなわち、執刀医の手の2本の指のロケーションを追跡する。したがって、既知の低侵襲手術システムにおけるマスターツールグリップのロケーションを追跡することとは対照的に、手自体のロケーションが追跡される。」と記載されている。また、特許文献4の段落0056には、「
図2A~2Dにおける親指292Aおよび人指し指292Bのロケーション(位置および配向)は、グリップ閉合パラメータ、例えば、マスターフィンガー追跡グリップ270に連結された遠隔操作スレーブ手術器具のグリップを制御するために使用される、標準化グリップ閉合値にマッピングされる。特に、親指292Aおよび人指し指292Bの感知されたロケーションは、ハンド追跡コントローラ130によって、グリップ閉合パラメータにマッピングされる。」と記載されている。また、特許文献4の段落0057には、「したがって、執刀医181の手の一部のロケーションが追跡される。追跡されたロケーションに基づいて、低侵襲手術システム100のシステム制御パラメータ、すなわち、グリップ閉合パラメータは、ハンド追跡コントローラ130によって生成され、システムコントローラ140に供給される。システムコントローラ140は、遠隔操作スレーブ手術器具に送信されるシステムコマンドを生成する際に、グリップ閉合パラメータを使用する。システムコマンドは、遠隔操作手術器具に指示して、グリップ閉合パラメータに対応するグリップ閉合を有するようにエンドエフェクタを構成させる。したがって、低侵襲手術システム100は、グリップ閉合パラメータを使用して、低侵襲手術システム100の遠隔操作スレーブ手術器具の操作を制御する。」と記載されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】国際公開第2018/097223号
【特許文献2】特表2022-528499号公報
【特許文献3】特開2021-049635号公報
【特許文献4】特表2013-510673号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
背景となる関連技術によって人(操作者)が操作した通りに遠隔地のロボットアームを動かす遠隔操作は、手術や細胞培養といった応用分野で利用されているが、応用分野ごとに専用の装置を必要としており、高価である。
【0010】
専用のコントローラーと汎用的なロボットアームを使用して遠隔操作を実現しようする試みもあるが、ロボットアームの制御精度が低く、操作性がよくないという問題がある。また、専用のコントローラーを用いて操作するには、慣れが必要であり、人(操作者)が直感的な操作をしにくいという問題がある。
【0011】
背景となる関連技術では、執刀医の2本の指にセンサーを装着することによって、親指の先端の位置と、人差し指の先端の位置とを独立に追跡している。しかしながら、この関連技術では、人(操作者)の手全体の動きに基づくロボットアームの操作を行うことはできない。
【0012】
本発明は、上記のような事情を考慮して為されたものであり、高精度にロボットアームの制御を行うことが解決すべき課題である。また、本発明は、人(操作者)の手全体(指の関節等を含む)の細やかな動きにも対応して、ロボットアームの制御を行うことが解決すべき課題である。
【0013】
そこでこの発明は、上述の課題を解決する制御装置、制御方法、プログラム、およびロボット制御システムを提供することを目的としている。
【課題を解決するための手段】
【0014】
[1]上記の課題を解決するため、本発明の一態様による制御装置は、ユーザーの手の位置の情報と、前記ユーザーの手の姿勢の情報と、前記ユーザーの手における各指の関節の曲げ角度の情報と、を表す信号を取得する入力デバイス側インターフェース部と、前記手の位置と、前記手の姿勢と、前記関節の曲げ角度とに基づいて、前記手に対応するロボットアームの動きを制御するための制御信号を生成して出力する制御機能部と、前記制御機能部が生成した前記制御信号を前記ロボットアームに対して送信するとともに、所定のタイミングで前記ロボットアームにおける状態情報を受信して前記制御機能部に渡す出力デバイス側インターフェース部と、を備え、前記ロボットアームにおける前記状態情報は、前記手の位置と、前記手の姿勢と、前記関節の曲げ角度とに対応する、前記ロボットアーム側の手の位置と手の姿勢と各指の関節の曲げ角度とを表す情報であり、前記制御機能部は、前記所定のタイミングで、前記出力デバイス側インターフェース部から渡される前記状態情報に基づいて、前記ユーザーの手の側の状態と前記ロボットアーム側の前記状態情報とが整合するように前記制御信号を生成する、というものである。
【0015】
[2]また、本発明の一態様は、上記[1]の制御装置において、前記制御機能部は、前記ユーザーの手の位置の情報と、前記ユーザーの手の姿勢の情報と、前記ユーザーの手における各指の関節の曲げ角度の情報と、の少なくともいずれかの情報の時間的推移に基づいてノイズを検出した場合には、検出された前記ノイズが削除または緩和されるように、当該ノイズを生じさせた、前記ユーザーの手の位置の情報と、前記ユーザーの手の姿勢の情報と、前記ユーザーの手における各指の関節の曲げ角度の情報とのいずれかを補正するノイズ補正機能部、を備えるものである。
【0016】
[3]また、本発明の一態様は、上記[1]または[2]の制御装置において、前記入力デバイス側インターフェース部は、前記ユーザーの手が持つすべての関節の曲げ角度の情報、を表す信号を取得し、前記制御機能部は、前記すべての関節の曲げ角度の情報に基づいて、前記制御信号を生成して出力する、というものである。
【0017】
[4]また、本発明の一態様は、上記[1]から[3]までのいずれかの制御装置において、前記制御機能部が生成する前記制御信号の時系列を保存するとともに、要求された際には、保存された前記制御信号の時系列を読み出して、前記出力デバイス側インターフェース部に、当該前記制御信号の時系列を前記ロボットアームに対して送信させるよう制御するキャプチャリング機能部、をさらに備えるものである。
【0018】
[5]また、本発明の一態様は、入力デバイス側インターフェース部が、ユーザーの手の位置の情報と、前記ユーザーの手の姿勢の情報と、前記ユーザーの手における各指の関節の曲げ角度の情報と、を表す信号を取得する過程と、制御機能部が、前記手の位置と、前記手の姿勢と、前記関節の曲げ角度とに基づいて、前記手に対応するロボットアームの動きを制御するための制御信号を生成して出力する過程と、出力デバイス側インターフェース部が、前記制御機能部が生成した前記制御信号を前記ロボットアームに対して送信するとともに、所定のタイミングで前記ロボットアームにおける状態情報を受信して前記制御機能部に渡す過程と、を含み、前記ロボットアームにおける前記状態情報は、前記手の位置と、前記手の姿勢と、前記関節の曲げ角度とに対応する、前記ロボットアーム側の手の位置と手の姿勢と各指の関節の曲げ角度とを表す情報であり、前記制御機能部は、前記所定のタイミングで、前記出力デバイス側インターフェース部から渡される前記状態情報に基づいて、前記ユーザーの手の側の状態と前記ロボットアーム側の前記状態情報とが整合するように前記制御信号を生成する、制御方法である。
【0019】
[6]また、本発明の一態様は、ユーザーの手の位置の情報と、前記ユーザーの手の姿勢の情報と、前記ユーザーの手における各指の関節の曲げ角度の情報と、を表す信号を取得する入力デバイス側インターフェース部と、前記手の位置と、前記手の姿勢と、前記関節の曲げ角度とに基づいて、前記手に対応するロボットアームの動きを制御するための制御信号を生成して出力する制御機能部と、前記制御機能部が生成した前記制御信号を前記ロボットアームに対して送信するとともに、所定のタイミングで前記ロボットアームにおける状態情報を受信して前記制御機能部に渡す出力デバイス側インターフェース部と、を備え、前記ロボットアームにおける前記状態情報は、前記手の位置と、前記手の姿勢と、前記関節の曲げ角度とに対応する、前記ロボットアーム側の手の位置と手の姿勢と各指の関節の曲げ角度とを表す情報であり、前記制御機能部は、前記所定のタイミングで、前記出力デバイス側インターフェース部から渡される前記状態情報に基づいて、前記ユーザーの手の側の状態と前記ロボットアーム側の前記状態情報とが整合するように前記制御信号を生成する、制御装置、としてコンピューターを機能させるためのプログラムである。
【0020】
[7]また、本発明の一態様は、上記[1]から[4]までのいずれかの制御装置と、前記制御装置の前記入力デバイス側インターフェース部に対して、ユーザーの手の位置の情報と、前記ユーザーの手の姿勢の情報と、を表す信号を送信するトラッカーと、前記制御装置の前記入力デバイス側インターフェース部に対して、前記ユーザーの手における各指の関節の曲げ角度の情報、を表す信号を送信するグローブと、を備えるロボット制御システムである。
【0021】
[8]また、本発明の一態様は、上記[1]から[4]までのいずれかの制御装置と、前記制御装置の前記出力デバイス側インターフェース部から送信される前記制御信号に基づいて動作するとともに、前記所定のタイミングで自装置における前記状態情報を前記出力デバイス側インターフェース部に対して送信するロボットアームと、を備えるロボット制御システムである。
【0022】
[9]また、本発明の一態様は、上記[1]から[4]までのいずれかの制御装置と、前記制御装置の前記入力デバイス側インターフェース部に対して、ユーザーの手の位置の情報と、前記ユーザーの手の姿勢の情報と、を表す信号を送信するトラッカーと、前記制御装置の前記入力デバイス側インターフェース部に対して、前記ユーザーの手における各指の関節の曲げ角度の情報、を表す信号を送信するグローブと、前記制御装置の前記出力デバイス側インターフェース部から送信される前記制御信号に基づいて動作するとともに、前記所定のタイミングで自装置における前記状態情報を前記出力デバイス側インターフェース部に対して送信するロボットアームと、を備えるロボット制御システムである。
【発明の効果】
【0023】
本発明によれば、制御機能部は、ロボットアーム側から渡される状態情報に基づいて、ユーザーの手の側の状態とロボットアーム側の状態情報とが整合するように制御信号を生成することができる。つまり、制御装置は、高い精度でロボットアームを制御することができる。
【図面の簡単な説明】
【0024】
【
図1】本発明の第1実施形態によるロボット制御システムの概略機能構成を示すブロック図である。
【
図2】第1実施形態によるロボット制御システムで使用するグローブの外観の一例を示す概略図である。
【
図3】第1実施形態によるロボット制御システムで使用するトラッカーの外観の一例を示す概略図である。
【
図4】第1実施形態によるロボット制御システムで使用するロボットアームの外観の一例を示す概略図である。
【
図5】第1実施形態による制御機能部の、さらに詳細な機能構成を示すブロック図である。
【
図6】第1実施形態による制御機能部がロボットアーム7を制御する際の原理を説明するための概略図である。
【
図7】第1実施形態によるノイズ補正機能部がノイズの補正をする前の、入力側の速度の推移を示すグラフである。
【
図8】第1実施形態によるノイズ補正機能部がノイズの補正をした後の、入力側の速度の推移を示すグラフである。
【
図9】第1実施形態によるモーションキャプチャーティーチング機能部による、モーションのキャプチャリングおよび再現の動作を示す概略図である。
【
図10】第1実施形態による制御装置の処理(制御)の手順を示すフローチャートである。
【
図11】第2実施形態による、制御装置の最小構成の例を示す機能ブロック図である。
【
図12】第2実施形態における制御機能部の内部の機能構成を示す機能ブロック図である。
【
図13】第1実施形態あるいは第2実施形態を実現するための、コンピューターの機能構成を示すブロック図である。
【発明を実施するための形態】
【0025】
次に、本発明の実施形態について、図面を参照しながら説明する。以下で説明する実施形態においては、制御装置は、入力デバイス側で検知する人間(操作者)の手の動きに応じて、ロボットアームが同様の動きをするように制御を行う。具体的には、制御装置は、入力デバイス側の状態を取得し、その情報を基に出力デバイス(ロボットアーム)側の各部の速度の情報を生成する。この速度の情報が、制御情報である。制御装置は、生成した制御情報を出力デバイス側に送信することによって、出力デバイスを制御する。本実施形態では、出力デバイスは、自装置の状態を検知して、その状態情報を制御装置側にフィードバックする。制御装置は、フィードバックされた状態情報に基づいて制御情報を生成することにより、制御の精度を高めることができる。ただし、出力デバイス側から制御装置に対して頻繁に状態情報をフィードバックすることは、制御全体の高負荷化を招くため、状態情報のフィードバックは、所定のタイミングにおいてのみ行うようにする。
【0026】
[第1実施形態]
図1は、本実施形態によるロボット制御システムの概略機能構成を示すブロック図である。図示するように、ロボット制御システム1は、制御装置2と、グローブ3と、トラッカー4と、ロボットアーム7と、通信回線9とを含んで構成される。これらの構成要素のうち、グローブ3やトラッカー4は、「入力デバイス」とも呼ばれ、ロボットアーム7を制御するための基となる信号を制御装置2に入力(供給)するデバイスである。また、ロボットアーム7は、「出力デバイス」とも呼ばれ、制御装置2が出力する制御信号によって制御されるデバイスである。
【0027】
なお、グローブ3やトラッカー4のうちの少なくともいずれかは、ロボット制御システム1の外部に存在していてもよい。その場合にも、グローブ3やトラッカー4のそれぞれは、信号(信号の内容については後で説明する)を制御装置2に入力(供給)する。また、ロボットアーム7は、ロボット制御システム1の外部に存在していてもよい。その場合にも、ロボットアーム7の動きは、制御装置2から出力される制御信号によって制御される。また、ロボット制御システム1が通信回線9を含まない構成としてもよい。その場合には、制御装置2とロボットアーム7との間の信号のやりとりは、通信回線9を介さずに行われる。
【0028】
制御装置2の概略機能構成は、次の通りである。図示するように、制御装置2は、入力デバイス側インターフェース部21と、制御機能部22と、出力デバイス側インターフェース部23とを含んで構成される。
【0029】
制御装置2と、グローブ3と、トラッカー4と、ロボットアーム7とが持つ機能のうちの少なくとも一部は、電子回路を用いて実現され得る。なお、グローブ3と、トラッカー4と、ロボットアーム7とが持つ機能のうちの少なくとも一部がコンピューターとプログラムとで実現されてもよい。制御装置2と、グローブ3と、トラッカー4と、ロボットアーム7とは、少なくとも一時的に情報を記憶するための記憶手段を含んでいてもよい。記憶手段は、例えば、磁気ハードディスク装置(HDD,Hard Disk Drive)やソリッドステートドライブ(SSD,Solid State Drive)といった不揮発性の記憶手段を含んでもよい。また記憶手段は、揮発性メモリー(volatile memory)を含んでいてもよい。
【0030】
ロボット制御システム1を構成する各機能について、以下で説明する。
【0031】
制御装置2は、グローブ3およびトラッカー4から渡される信号に基づいて、ロボットアーム7の動きを制御する。また、ロボットアーム7がロボットハンドを持つ場合には、制御装置2は、ロボットアームが持つロボットハンドの動きをあわせて制御する。
【0032】
制御装置2は、人間(操作者)の片手の動きのみに対応して、1個のロボットアーム7を制御するものであってよい。この場合、制御装置2は、1個のグローブ3から、人間(操作者)の片手(左手または右手)が持つ関節の曲げ角度を表す信号を受け取る。また、制御装置2は、1個のトラッカー4から、人間(操作者)の片手(左手または右手)の位置および姿勢(向き)を表す信号を受け取る。制御装置2は、これらの信号を基に、1個のロボットアーム7を制御する。
【0033】
あるいは、制御装置2は、人間(操作者)の両手の動きに対応して、2個のロボットアーム7を制御するものであってよい。この場合、制御装置2は、基本的には、人間(操作者)の右手による操作に基づいて、2個のうちの一方のロボットアーム7(右手に対応するロボットアーム)の動きを制御する。また、制御装置2は、人間(操作者)の左手による操作に基づいて、他方のロボットアーム7(左手に対応するロボットアーム)の動きを制御する。制御装置2は、2個のグローブ3のそれぞれから、人間(操作者)の片手(左手または右手)が持つ関節の曲げ角度を表す信号を受け取る。また、制御装置2は、2個のトラッカー4のそれぞれから、人間(操作者)の片手(左手または右手)の位置および姿勢(向き)を表す信号を受け取る。制御装置2は、これらの信号を基に、2個のロボットアーム7を制御する。
【0034】
グローブ3は、人間(操作者)の手に装着することのできるデバイスである。グローブ3は、複数の角度センサーを備えており、グローブ3を装着した人間の手が持つ関節の曲げ角度を検知し、その角度の情報を出力する。人間の手指は、多数の関節で構成されている。1個のグローブ3は、人間の片手(右手または左手)に関して、例えば、親指のDIP関節(第1関節)とMP関節(第3関節)とCM関節(第4関節)、人差し指のDIP関節(第1関節)とPIP関節(第2関節)とMP関節(第3関節)、中指のDIP関節(第1関節)とPIP関節(第2関節)とMP関節(第3関節)、薬指のDIP関節(第1関節)とPIP関節(第2関節)とMP関節(第3関節)、および、小指のDIP関節(第1関節)とPIP関節(第2関節)とMP関節(第3関節)の、計15個の関節の曲げ角度を検知し、その情報を出力する。角度は、例えば、度あるいはラジアンの単位の数値として表わされる。左右両手用のグローブ3を使用する場合には、それらのグローブ3のペアは、計30個の関節の曲げ角度を検知してその情報を出力する。グローブ3は、複数の関節の角度の情報を表す信号を、制御装置2に渡す。つまりグローブ3は、片手ごとに、例えば15次元のベクトルとして表わされる角度の情報を、制御装置2に渡す。
【0035】
つまり、グローブ3は、制御装置2の入力デバイス側インターフェース部21に対して、ユーザーの手における各指の関節の曲げ角度の情報を表す信号を送信する。グローブ3は、ユーザーの手が持つすべての関節の曲げ角度の情報を検知して、そのすべての関節の曲げ角度の情報を表す信号を、入力デバイス側インターフェース部21に渡してもよい。
【0036】
グローブ3としては、一例として、MANUS Prime IIシリーズ グローブを使用することができる。ただし、他の製品をグローブ3として使用してもよい。
【0037】
トラッカー4は、トラッカー4自身の位置と姿勢とを検知してそれらの情報を出力する装置である。本実施形態では、1個のトラッカー4は、1個のグローブ3に取り付けられる。つまり1個のトラッカー4は、グローブ3を装着している手の位置および姿勢を検知して、その情報を出力する。左右両手のグローブ3を用いる場合には、トラッカー4が、それぞれのグローブ3を装着した手の位置および姿勢の情報を出力する。位置は、X軸、Y軸、およびZ軸の座標系(例えば、直交座標系)における位置であり、3次元のベクトルとして表わされる。姿勢は、例えば、それらX軸、Y軸、およびZ軸のそれぞれを中心とした回転量であり、3次元のベクトルとして表わされる。つまりトラッカー4は、片手ごとに、6次元のベクトルとして表わされる位置および姿勢の情報を、制御装置2に渡す。
【0038】
つまり、トラッカー4は、制御装置2の入力デバイス側インターフェース部21に対して、ユーザーの手の位置の情報と、ユーザーの手の姿勢の情報と、を表す信号を送信する。
【0039】
トラッカー4としては、一例として、HTC CORPORATIONのVIVE Trackerを使用することができる。ただし、他の製品をトラッカー4として使用してもよい。
【0040】
ロボットアーム7は、制御装置2によって制御されるものである。ロボットアーム7は人間の腕に相当するアームと関節を持っており、これにより人間の手に相当するパーツの位置や姿勢(向き)を変えることができる。また、ロボットアーム7は、人間の手の関節(指の関節)に相当する関節を持っており、各関節の曲げ角度を独立に変えることができる。前述の通り、ロボットアーム7は、1個または2個のいずれであってもよい。ロボットアーム7が2個存在する場合、それら2個のロボットアーム7は、それぞれ人間(操作者)の両手(左手および右手)の動きに基づいて、制御装置2によって制御される。なお、ロボットアーム自体は、既存技術を用いて実現されるものである。
【0041】
ロボットアーム7は、自装置の状態を、制御装置2側に対してフィードバックする機能を持つ。つまり、ロボットアーム7は、手に相当するパーツの位置や姿勢(向き)を検知したり、各指に相当するパーツが持つ関節の曲げ角度を検知したりする。そして、ロボットアーム7は、必要なタイミングにおいてこれらの情報(後述する出力側ベクトルVOkとして表わされる情報)を、制御装置2側に対してフィードバックする。ロボットアーム7が、このような情報のフィードバックを行い、制御装置2がロボットアーム7側からのフィードバック情報に基づいた制御を行うことにより、入力デバイス側(グローブ3およびトラッカー4)と出力デバイス側(ロボットアーム7)との間の、動きの同期が図られる。
【0042】
つまり、ロボットアーム7は、制御装置2の出力デバイス側インターフェース部23から送信される前記制御信号に基づいて動作するとともに、前記所定のタイミングで自装置における前記状態情報を前記出力デバイス側インターフェース部に対して送信する。
【0043】
ロボットアーム7としては、一例として、ユニバーサルロボット(Universal Robots)社のUR3e、UR5e、UR10e、UR16e、UR20といった製品を使用することができる。ただし、その他の製品をロボットアーム7として使用してもよい。
【0044】
通信回線9は、制御装置2とロボットアーム7との間での情報の交換を可能とする。通信回線9は、例えば、特定の利用者のために設けられた専用回線であってもよいし、不特定の利用者が共有して使用する公衆回線(例えば、「インターネット」)であってもよい。通信回線9が存在することにより、制御装置2とロボットアーム7とが互いに遠隔地に存在している場合にも、制御装置2がロボットアーム7を制御することが可能となる。
【0045】
制御装置2が持つ入力デバイス側インターフェース部21は、トラッカー4から手の位置および向きを表す信号を受け取り、グローブ3から手が持つ各指の関節の曲げ角度を表す信号を受け取る。入力デバイス側インターフェース部21は、受け取ったこれらの信号が表す情報(数値情報)を、制御機能部22に渡す。
【0046】
つまり、入力デバイス側インターフェース部21は、ユーザーの手の位置の情報と、前記ユーザーの手の姿勢の情報と、前記ユーザーの手における各指の関節の曲げ角度の情報と、を表す信号を取得する。入力デバイス側インターフェース部21は、ユーザーの手が持つすべての関節の曲げ角度の情報、を表す信号を、グローブ3から取得してもよい。
【0047】
制御装置2が持つ制御機能部22は、入力デバイス側インターフェース部21から受け取る情報(数値情報)に基づいて、ロボットアーム7を制御するための信号を生成し、出力する。制御機能部22は、生成したロボットアーム7を制御するための信号を、出力デバイス側インターフェース部23に渡す。本実施形態での制御信号は、例えば、ロボットアーム7が持つ各部の動作の速度を表す信号である。
【0048】
つまり、制御機能部22は、ユーザーの手の位置と、ユーザーの手の姿勢と、ユーザーの手の関節の曲げ角度とに基づいて、前記手に対応するロボットアーム7の動きを制御するための制御信号を生成して出力する。また制御機能部22は、所定のタイミング(出力デバイス側インターフェース部23がロボットアーム7側から状態情報を受け取るのに対応するタイミング)で、出力デバイス側インターフェース部23から渡される前記状態情報に基づいて、ユーザーの手の側の状態(つまり、入力デバイス側の状態)とロボットアーム7側の状態情報とが整合するように制御信号を生成する。この整合のさせ方(同期)については、後でさらに詳細に説明する。入力デバイス側インターフェース部21が、ユーザーの手が持つすべての関節の曲げ角度の情報を表す信号を、グローブ3から取得した場合には、制御機能部22は、それらすべての関節の曲げ角度の情報に基づいて、制御信号を生成して出力してもよい。
【0049】
制御装置2が持つ出力デバイス側インターフェース部23は、上記の制御機能部22が生成した制御信号(ロボットアーム7を制御するための信号)を受け取り、ロボットアーム7に対して送信する。なお、出力デバイス側インターフェース部23は、通信回線9を介して、制御信号をロボットアーム7に対して送信してよい。つまり、出力デバイス側インターフェース部23は、制御機能部22が生成した制御信号をロボットアーム7に対して送信する。また、出力デバイス側インターフェース部23は、所定のタイミング(例えば一定フレーム数ごとであるが、そのタイミングには限定されない)でロボットアーム7における状態情報を受信して制御機能部22に渡す。なお、ロボットアーム7における状態情報とは、入力デバイス側での手の位置と、手の姿勢と、関節の曲げ角度とに対応する、ロボットアーム7側の手の位置と手の姿勢と各指の関節の曲げ角度とを表す情報である。
【0050】
図2は、グローブ3の外観を示す概略図である。図示するように、グローブ3は、人間の手に装着するのに適した形状を有する。
図2に示すグローブ3は人間の右手に装着するためのものであるが、これと左右対称の形状を有し人間の左手に装着するためのグローブ3を実施してもよい。
図2に示すグローブ3は、例えば布(繊維)や合成樹脂やゴム等を素材としており、その形状は人間の手の関節の曲げに応じて柔軟に変わり得る。また、グローブ3は、人間の手が持つ各関節の曲げ角度を検知するためのセンサーを備えている。また、グローブ3の手の甲の部分には、トラッカー4を取り付けることができるようになっている。ただし、グローブ3の手の甲以外の部分にトラッカー4を取り付けるようにしてもよい。
【0051】
図3は、トラッカー4の外観の一例を示す概略図である。トラッカー4は、小型のデバイスであり、上記のように例えばグローブ3に取り付けて使用可能である。グローブ3に取り付けることにより、トラッカー4は、グローブ3を装着する人間(操作者)の手の位置(3次元の座標軸の座標値)および姿勢(3次元の軸を中心とする回転量)を表す数値を出力することができる。
【0052】
図4は、ロボットアーム7の外観の一例を示す概略図である。図示するように、ロボットアーム7の根元の部分は、台等に固定して使用できるようになっている。また、ロボットアーム7は、複数のアームおよび関節を持っている。また、ロボットアーム7の先端には、ロボットハンドを取り付けることができるようになっている。
【0053】
図5は、上で説明した制御機能部22の、さらに詳細な機能構成を示すブロック図である。図示するように、制御機能部22は、制御情報生成部220と、同期制御機能部221と、ノイズ補正機能部222と、モーションキャプチャーティーチング機能部225とを含んで構成される。
【0054】
制御情報生成部220は、入力デバイス側インターフェース部21から渡される、人間(操作者、ユーザー)の手の位置と、手の姿勢と、関節の曲げ角度とに基づいて、前記手に対応するロボットアームの動きを制御するための制御信号を生成して出力する。
【0055】
なお、制御情報生成部220は、所定のタイミングで、出力デバイス側インターフェース部23から渡される状態情報(ロボットアーム7側からフィードバック情報として渡されるロボットアーム7の状態情報)に基づいて、人間(操作者、ユーザー)の手の側の状態(即ち、入力デバイス(グローブ3やトラッカー4)側で検知する状態)とロボットアーム7側の状態情報とが整合するように制御信号を生成する。これら両者の整合は、フィードバックされる状態情報に基づく同期である。なお、この同期のための処理を同期制御機能部221が行い、制御情報生成部220は、同期処理の結果に基づく制御情報を生成する。
【0056】
同期制御機能部221は、上記のフィードバック情報(ロボットアーム7側から返される状態情報)に基づいて、人間(操作者、ユーザー)の手の側の状態(即ち、入力デバイス(グローブ3やトラッカー4)側で検知する状態)とロボットアーム7側の状態情報とを整合させる処理を行う。
【0057】
ノイズ補正機能部222は、入力デバイス(グローブ3やトラッカー4)側から渡される情報が含むノイズを補正する。具体的には、ノイズ補正機能部222は、入力デバイス(グローブ3やトラッカー4)側から渡される情報に基づいて算出される速度情報が特異値を持つ場合に、その速度情報を補正する。
【0058】
具体的には、ノイズ補正機能部222は、ユーザーの手の位置の情報と、ユーザーの手の姿勢の情報と、ユーザーの手における各指の関節の曲げ角度の情報と、の少なくともいずれかの情報の時間的推移(つまり、速度の情報)に基づいてノイズが検出されるか否かを判定する。いずれかの情報においてノイズを検出した場合には、ノイズ補正機能部222は、検出されたノイズが削除または緩和されるよう(例えば、後述するように近いフレームにおける速度との平均値をとる)に、当該ノイズを生じさせた、ユーザーの手の位置の情報と、ユーザーの手の姿勢の情報と、ユーザーの手における各指の関節の曲げ角度の情報とのいずれかを補正する。
【0059】
なお、ノイズ補正機能部222によるノイズ補正の処理の詳細については、後で、
図7および
図8を参照しながら説明する。
【0060】
モーションキャプチャーティーチング機能部225は、制御機能部22が生成する制御信号の時系列を受け取って保存する。また、要求された際には、モーションキャプチャーティーチング機能部225は、保存された制御信号の時系列を読み出して、出力デバイス側インターフェース部23に、当該前記制御信号の時系列をロボットアーム7に対して送信させるよう制御する。
【0061】
なお、モーションキャプチャーティーチング機能部225は、「キャプチャリング機能部」とも呼ばれる。モーションキャプチャーティーチング機能部225は、高精度なティーチングを実現する。モーションキャプチャーティーチング機能部225は、例えば、ユーザーの数回のキー入力により、高自由度且つ高精度なティーチングを可能にする。また、モーションキャプチャーティーチング機能部225は、複数のティーチング(制御情報の時系列)を記録し、リスト化してもよい。リスト化することにより、ユーザー(操作者)は、所望のモーションを選択して実行させることができる。
【0062】
図6は、制御機能部22がロボットアーム7を制御する際の原理を説明するための概略図である。ここでは、
図6を参照しながら、制御機能部22がロボットアーム7を制御する方法について説明する。
【0063】
図6(A)は、入力側ベクトルの系列を示す。また、
図6(B)は、ロボットアーム7側(出力側)の状態を表すベクトルの系列を示す。
図6(A)におけるV
I0,V
I1,V
I2,V
I3,・・・(以下も続く)は、入力側ベクトルの系列である。
図6(B)におけるV
O0,V
O1,V
O2,V
O3,V
O4,・・・(以下も続く)は、出力側ベクトル(ロボットアーム7の状態を表すベクトル)の系列である。なお、
図6(A)におけるV
I0,V
I1,V
I2,V
I3,・・・や、
図6(B)におけるV
O0,V
O1,V
O2,V
O3,V
O4,・・・は、それぞれ、下記の通り多次元のベクトルであるが、便宜的に2次元空間に射影して示している。
【0064】
ここで、入力側ベクトル系列VI0,VI1,VI2,VI3,・・・は、例えば、トラッカー4が出力する数値(ベクトル)の系列であってよい。また、入力側ベクトル系列VI0,VI1,VI2,VI3,・・・は、1個のトラッカー4(左右いずれか一方の手に対応)からの出力を表すベクトルであってもよいし、2個のトラッカー4(左右両方の手に対応)からの出力を表すベクトルであってもよい。つまり、この場合には、VIk(k=0,1,2,・・・)のそれぞれは、6次元のベクトル(左手または右手のいずれか一方のみの場合の、位置(3次元)と姿勢(3次元))または、12次元のベクトル(左手および右手の両方の位置と姿勢)である。
【0065】
あるいは、入力側ベクトル系列VI0,VI1,VI2,VI3,・・・は、トラッカー4とグローブ3との両方が出力する数値(ベクトル)の系列であってもよい。この場合も、入力側ベクトル系列VI0,VI1,VI2,VI3,・・・は、片手のみ(左手または右手)に対応するベクトルであってもよいし、両手(左手および右手)に対応するベクトルであってもよい。つまり、この場合には、VIk(k=0,1,2,・・・)のそれぞれは、21次元のベクトル(左手または右手のいずれか一方のみの、位置(3次元)と姿勢(3次元)と15個の関節の曲げ角度)、あるいは、42次元(左手および右手のそれぞれについて上記の21次元で、計42次元)のベクトルである。
【0066】
ただし、ベクトルVIk(k=0,1,2,・・・)の次元数は、必ずしも上記の通りではなくてもよい。つまり、例えば一部の関節の曲げ角度の情報が欠けていてもよいし、上記の次元数の情報以外の情報を持つようにしてもよい。
【0067】
また、出力側ベクトル系列VO0,VO1,VO2,VO3,VO4,・・・は、例えば、入力側ベクトル系列VI0,VI1,VI2,VI3,・・・と同じ次元数であってよい。なお、入力側ベクトルVIkが表す空間(トラッカー4が出力する3次元空間の座標系を含む)と、出力側ベクトルVOkが表す空間(ロボットアーム7が作動する3次元空間の座標系を含む)とは、必ずしも同一ではなくてもよい。つまり、入力側ベクトルと出力側ベクトルとが異なる座標系の値として表わされていてもよい。この場合には、制御機能部22は、適切に両座標系間での座標値等の双方向の変換を行う。
【0068】
制御機能部22は、入力側デバイス(グローブ3やトラッカー4)から取得する情報や、自らが行う計算によって、入力側ベクトルVIkを生成することができる。また、制御機能部22は、出力側デバイス(ロボットアーム7)から、必要に応じて、出力側ベクトルVOkを取得することができる。ただし、後述するように、制御機能部22が出力側デバイス(ロボットアーム7)から出力側ベクトルVOkの情報を取得する頻度を減らすことは、制御装置2自身の処理負荷の軽減、および通信回線9の通信負荷の軽減につながる。
【0069】
制御機能部22は、固定長のフレーム周期でロボットアーム7を制御する。このフレーム周期をΔtとする。Δtに関して、例えば、Δt≦22.300[ms](ミリ秒)としてよい。一例としては、Δt=22.222[ms]としてよい。Δt=22.222[ms]の場合のフレームレート(1/Δt)は、小数点第3位までの有効数字で、45.000[fps](frames per second,フレーム毎秒)である。即ち、フレームレートはほぼ45[fps]である。
【0070】
なお、制御のためのフレーム周期Δtを小さくすればするほど、制御機能部22による制御の精度は向上する。一方で、フレーム周期Δtを小さくすればするほど、制御のために、制御装置2はより多くの計算資源を必要とするようになる。また、フレーム周期Δtを小さくしすぎると、グローブ3やトラッカー4やロボットアーム7には高速な応答性が求められることとなり、装置が高コスト化してしまう。また、フレーム周期Δtを小さくするためには、通信回線9にも大容量かつ低遅延といったスペックが求められ、高コスト化する要因となる。上記のほぼ45fps(Δt=22.222[ms])といったフレームレート、あるいは40fps以上且つ50fps以下の範囲内といったフレームレートは、制御の精度と低コストでのシステムの実現とを両立させ得るものである。
【0071】
制御機能部22は、具体的には、ロボットアーム7を制御するために速度情報(速度ベクトル)を生成して、出力デバイス側インターフェース部23を介して、その速度情報をロボットアーム7側に送信する。ロボットアーム7は、制御機能部22から渡される上記の速度情報(速度ベクトル)にしたがって動作する。
【0072】
制御機能部22は、下記の2種類の速度情報(速度ベクトル)を適宜使い分けながら、ロボットアーム7を制御することができる。これらの第1の速度情報および第2の速度情報は、ロボットアーム7を制御するための制御情報である。
【0073】
第1の速度情報は、入力側デバイス(グローブ3やトラッカー4)から供給される情報のみに基づく速度情報である。つまり、第1の速度情報は、フィードフォワードのみによってロボットアーム7を制御するための情報である。第1の速度情報は、下の式(1)によって求められるskである。なお、速度情報skは、離散的な時間の系列において求められるものである。
【0074】
【0075】
つまり、系列内の第k番目の第1の速度情報であるskは、前回の入力側ベクトルVI(k-1)からの今回の入力側ベクトルVIkの変位を、フレーム周期Δtで除した値である。ベクトルskの次元数は、入力側ベクトルVIkの次元数と同一である。
【0076】
第2の速度情報は、出力側デバイス(ロボットアーム7)からフィードバックされる情報を用いて求める速度情報である。つまり、第1の速度情報は、フィードバック要素を用いてロボットアーム7を制御するための情報である。第2の速度情報は、下の式(2)によって求められるskである。
【0077】
【0078】
なお、関数f()は、入力側ベクトルの座標系を出力側ベクトルの座標系に変換する関数である。また、式(2)に現れる関数f-1()は、上記の関数f()の逆関数であり、出力側ベクトルの座標系を入力側ベクトルの座標系に変換する関数である。つまり、系列内の第k番目の第2の速度情報であるskは、前回の出力側ベクトルVO(k-1)に対応する入力側ベクトルからの、今回の入力側ベクトルVIkの変位を、フレーム周期Δtで除した値である。ベクトルskの次元数は、入力側ベクトルVIkの次元数と同一である。なお、入力側ベクトルの次元数と出力側ベクトルに次元数とが同一であることを想定してよい。
【0079】
第2の速度情報skは、前述の同期制御機能部221が行う同期の処理の結果に基づいて、制御情報生成部220が生成するものである。
(制御情報)
【0080】
制御機能部22は、上記の第1の速度情報または第2の速度情報を適宜使い分けながら、ロボットアーム7を制御してよい。
【0081】
一例として、制御機能部22は、P1フレーム(P1は正整数であり、予め設定可能なパラメーター値である。例えば、P1=5などとしてよい)に1回だけ(例えば、整数P1で割り切れるフレーム番号のときだけ)、上記の第2の速度情報を用いてロボットアーム7を制御する。この場合、制御機能部22は、他の回(例えば、整数P1でフレーム番号が割り切れないとき)には、上記の第1の速度情報を用いてロボットアーム7を制御する。この場合には、所定の時間間隔ごと(P1フレームごと)に、入力側ベクトルVIkが表す情報と出力側ベクトルVOkが表す情報との同期が図られる。
【0082】
上の例に依らず、他の方法で、即ち必ずしも一定の時間間隔ごとではない頻度で、入力側ベクトルVIkが表す情報と出力側ベクトルVOkが表す情報との同期が図られるようにしてもよい。
【0083】
具体的には、制御機能部22は、第1の速度情報または第2の速度情報に前記の関数f()を適用することによって、出力側ベクトルの座標系による制御値を(速度情報)、ロボットアーム7側に送信する。即ち、制御機能部22は、下の式(3)で示す速度情報を、ロボットアーム7側に送信する。
【0084】
【0085】
つまり、制御機能部22は、関数f()を用いて速度情報skを出力側ベクトルの座標系に変換して、その変換結果を用いてロボットアーム7を制御する。
【0086】
図7および
図8は、制御機能部22内のノイズ補正機能部222によるノイズの補正を説明するためのグラフである。ノイズ補正機能部222は、入力側ベクトルV
Ikが持ち得るノイズによって生じる速度ノイズを補正する。
図7は、ノイズ補正機能部222による補正前の速度の推移を表す折れ線グラフである。
図8は、ノイズ補正機能部222による補正後の速度の推移を表す折れ線グラフである。なお、ノイズ補正機能部222は、入力側ベクトルV
Ik全体の速度を補正するのではなく、入力側ベクトルV
Ikが持つ要素ごとに速度の補正を行う(ただし、速度の補正を行わない要素があってもよい)。
【0087】
ここで、入力側ベクトルVIkが持つ第m番目の要素をVIk
(m)としたとき、当該第m番目の要素に関して、第(k-1)回目の入力と第k回目の入力とによって算出される速度sk
(m)は、下の式(4)で表わされる。
【0088】
【0089】
図7は、入力側ベクトルV
Ikの特定の第m番目の要素に関して、上の式(4)で求められる速度s
k
(m)の時系列を表す折れ線グラフである。なお、
図7の横軸はフレーム番号(離散時間)であり、縦軸は速度s
k
(m)である。
図7においては速度の単位は、メートル毎秒(m/sec)である。
【0090】
ノイズ補正機能部222がこの速度に含まれるノイズの補正を行う方法は、次の通りである。まず、ノイズ補正機能部222は、今回(フレーム番号がk)算出された速度sk
(m)がノイズであるか否かを判定する。具体的には、ノイズ補正機能部222は、今回の速度sk
(m)の絶対値が、過去の直近のP2個の速度の絶対値の平均のP3倍以上であるか否かにより、ノイズであるか否かを判定する。
【0091】
なお、P2は、設定可能なパラメーター値であり、正整数である。一例として、P2=3としてよい。また、P3は、設定可能なパラメーター値であり、1.0より大きい実数である。例えば、5.0≦P3≦10.0の範囲内で適宜P3の値を設定してよい。つまり、一例として、P2=3、且つP3=5.0のとき、ノイズ補正機能部222は、今回の速度sk
(m)の絶対値が、sk-1
(m)の絶対値とsk-2
(m)の絶対値とsk-3
(m)の絶対値との平均の、5.0倍以上である場合に、sk
(m)がノイズを含むと判定する。
【0092】
今回の速度sk
(m)が上記判定の結果としてノイズを含む場合には、ノイズ補正機能部222は、直近のP2回の速度の絶対値および今回の速度の絶対値(合計で(P2+1)個の速度の絶対値)の平均値を算出し、今回の速度sk
(m)の絶対値が当該算出された平均値の絶対値となるように、強制的に速度sk
(m)を補正する。なお、この際、ノイズ補正機能部222は、sk
(m)の符号(正負)が元の符号と同じになるように補正する。
【0093】
つまり、ノイズ補正機能部222は、上記のような補正後のsk
(m)の値となるように、入力側ベクトルVIkの第m番目の要素の値を強制的に書き換える。
【0094】
なお、ノイズ補正機能部222は、入力側ベクトルVIkが持つすべての要素(すべてのm)について上記のノイズ補正を行ってもよいし、一部の要素についてのみ上記のノイズ補正を行ってもよい。一例として、ノイズ補正機能部222は、入力側ベクトルVIkが持つ要素のうち、トラッカー4が出力した位置情報(3次元(X軸、Y軸、Z軸)の座標値のそれぞれ。両手の場合には、それぞれの手についての3次元の座標値。)についてのみ、上記のノイズ補正を行ってもよい。また、ノイズ補正機能部222は、入力側ベクトルVIkが持つ他の要素集合についてのみ、上記のノイズ補正を行ってもよい。
【0095】
図8は、入力側ベクトルV
Ikの前記第m番目の要素に関して、ノイズ補正機能部222がノイズ補正を行った後の速度s
k
(m)の時系列を表す折れ線グラフである。なお、
図8においても、横軸はフレーム番号(離散時間)であり、縦軸は速度s
k
(m)である。この速度の単位は、メートル毎秒(m/sec)である。
【0096】
図7と
図8とを比較すると、
図7のグラフ現れているノイズ(例えば、
図7において符号N1,N2,およびN3等で示されるノイズ)が、
図8のグラフでは除去されている。つまり、入力デバイス(トラッカー4やグローブ3)が特異なノイズを生じさせる場合でも、ノイズ補正機能部222がそのノイズを補正することにより、制御機能部22によるロボットアーム7の制御を安定化させることができる。
【0097】
図9は、モーションキャプチャーティーチング機能部225による、モーションのキャプチャリングおよび再現の動作を示す概略図である。
図9(A)は、モーションをキャプチャーする際の動作を示す。また、
図9(B)は、キャプチャーされたモーションを再現する際の動作を示す。なお、モーションのキャプチャリングを行うか否かは、制御装置2の動作時に設定可能としてよい。また、キャプチャーされたモーションを再現する場合には、例えば、外部のユーザー等からの要求に基づいて行う。なお、下記の「制御信号」とは、前記の式(3)で説明したf(s
k)である。つまり、制御信号とは、各フレームにおいてロボットアーム7に対して指示する速度の情報を表す信号である。
【0098】
図9(A)に示すように、キャプチャリング時には、制御情報生成部220が生成する制御信号は、モーションキャプチャーティーチング機能部225にも渡される。モーションキャプチャーティーチング機能部225は、この制御信号の時系列を記録媒体等に保存する。
【0099】
また、
図9(B)に示すように、モーションキャプチャーティーチング機能部225は、要求された際には、保存したモーションを再現する。つまり、モーションキャプチャーティーチング機能部225は、保存された制御信号の時系列を記録媒体等から読み出して、出力デバイス側インターフェース部23に、当該前記制御信号の時系列をロボットアーム7に対して送信させるよう制御する。なお、
図9(B)に示す例では、モーションキャプチャーティーチング機能部225は、読み出した制御信号の時系列を、制御情報生成部220を経由して出力デバイス側インターフェース部23に渡している。その代わりに、モーションキャプチャーティーチング機能部225は、読み出した制御信号の時系列を、制御情報生成部220を経由せずに直接、出力デバイス側インターフェース部23に渡すようにしてもよい。
【0100】
このようにして、モーションキャプチャーティーチング機能部225は、モーションをキャプチャーしたり、キャプチャーしたモーションを再現したりすることができる。なお、キャプチャーされたモーションを再現する場合には、制御機能部22は、ロボットアーム7側からの状態情報のフィードバックを受けない。
【0101】
図10は、制御装置2による処理の手順を示すフローチャートである。以下、このフローチャートに沿って処理手順(制御方法)を説明する。
【0102】
ステップS1において、制御装置2は、ロボットアーム7の制御のための初期化を行う。本ステップにおける初期化の処理は、入力デバイス(グローブ3、トラッカー4)側での位置や姿勢や関節の曲げ角度と、出力デバイス(ロボットアーム7)側での位置や姿勢や関節の曲げ角度とを合わせる(初期における同期)処理を含む。また、本ステップにおいて、制御装置2は、ロボットアーム7の制御のためのその他の初期化処理を行ってもよい。
【0103】
以下のステップS2からS9までは、フレームごとの制御のための処理である。フレームごとの処理は、所定の時間間隔(前述のフレーム周期Δt)で行うようにしてよい。
【0104】
ステップS2において、制御装置2の入力デバイス側インターフェース部21は、入力デバイス(グローブ3、トラッカー4)側から今回のベクトル情報(前述の入力側ベクトルVIk)を取得する。入力デバイス側インターフェース部21は、取得した入力側ベクトルVIkを、制御機能部22に渡す。制御機能部22は、渡された入力側ベクトルVIkを少なくとも一時的に記憶する。
【0105】
ステップS3において、制御機能部22(ノイズ補正機能部222)は、速度ノイズの補正処理を行う。速度ノイズの補正処理については、既に説明した通りである。速度ノイズの補正処理により、ステップS2において取得した入力側ベクトルVIkが持つ要素の一部が変更される場合がある。なお、速度ノイズが存在しない場合には、本ステップにおける補正処理は、具体的な効果を生じさせるものではなく、ステップS2において取得した入力側ベクトルVIkがそのまま用いられる。
【0106】
ステップS4において、制御機能部22(同期制御機能部221)は、今回の制御においてロボットアーム7側との位置等の同期を行うか否かを判定する。ロボットアーム7側と同期させる場合(ステップS4:YES)には、次にステップS6に進む。ロボットアーム7側と同期させない場合(ステップS4:NO)には、次にステップS5に進む。
【0107】
なお前述の通り、同期制御機能部221は、例えば、一定のフレーム数ごとに(前述の例では、P1個のフレームごとに)同期を行う(ステップS4:YESとする)ようにしてよい。また、その他の条件に基づく判定により、同期を行うか否かを決定してもよい。
【0108】
ステップS5に進んだ場合、同ステップにおいて、制御機能部22(制御情報生成部220)は、入力デバイス側の今回ベクトル(入力側ベクトルVIk)と、入力デバイス側の前回ベクトル(入力側ベクトルVI(k-1))とに基づいて、速度情報(速度ベクトル)skを生成する。本ステップでは、前記の式(1)による計算を用いて、第1の速度情報skを生成する。本ステップの処理の後には、ステップS8に移る。
【0109】
ステップS6に進んだ場合、同ステップにおいて、出力デバイス側インターフェース部23は、出力デバイス(ロボットアーム7)側から、前回のベクトル情報(出力側ベクトルVO(k-1))を取得する。出力デバイス側インターフェース部23は、取得した出力側ベクトルVO(k-1)を、制御機能部22に渡す。制御機能部22は、渡された出力側ベクトルVO(k-1)を少なくとも一時的に記憶する。本ステップの次にはステップS7に進む。
【0110】
ステップS7において、制御機能部22(制御情報生成部220)は、入力デバイス側の今回ベクトル(入力側ベクトルVIk)と、出力デバイス側の前回ベクトル(出力側ベクトルVO(k-1))とに基づいて、速度情報(速度ベクトル)skを生成する。本ステップでは、前記の式(2)による計算を用いて、第2の速度情報skを生成する。なお、本ステップの処理は、入力デバイス側の情報と出力デバイス側(ロボットアーム7側)の情報とを同期させて整合させるものである。同期制御については、同期制御機能部221が処理を行う。本ステップの処理の後には、ステップS8に進む。
【0111】
次にステップS8において、制御機能部22(制御情報生成部220)は、ステップS7までにおいて作成された速度情報(速度ベクトル)skを用いて、ロボットアーム7を制御する。つまり、制御機能部22(制御情報生成部220)は、上の式(3)に示した速度情報f(sk)を、ロボットアーム7側に送信することによって、ロボットアーム7を制御する。ロボットアーム7は、この速度情報f(sk)を受信して、速度情報f(sk)にしたがって動作する。
【0112】
ステップS9において、制御装置2は、制御を終了するか否かを判定する。本ステップにおける判定結果として制御を終了することになるのは、例えば、ユーザー(操作者等)によってロボットアーム7の終了が指示された場合や、予め定められたスケジュールによってロボットアーム7の稼働期間が終了する場合や、何らかの異常の発生によってロボットアーム7の稼働を続けることが不可能ないしは困難になった場合等である。制御を終了する場合(ステップS9:YES)には、本フローチャート全体の処理を終了する。制御を終了しない場合(ステップS9:NO)には、次のフレームの制御を実行するために、ステップS2に戻る。
【0113】
次に、第1実施形態の複数の変形例について説明する。なお、組合せ可能な限りにおいて、複数の変形例を組み合わせて実施してもよい。
【0114】
[変形例1]
第1実施形態では、制御機能部22は、モーションキャプチャーティーチング機能部225を持っていた(
図5を参照)。変形例として、制御機能部22が、モーションキャプチャーティーチング機能部225を持たなくてもよい。この場合、モーションのキャプチャリングや、キャプチャーされたモーションの再現をすることはできないが、制御装置2が持つその他の機能は実現される。
【0115】
[変形例2]
第1実施形態では、1個のグローブ3は、ユーザーの片手(左手または右手)が持つすべての関節の曲げ角度を検知することを想定していた。変形例として、グローブ3が、一部の関節の曲げ角度を検知しないものであってもよい。その場合、グローブ3が制御装置2に渡す情報の量は相対的に減る。また、制御装置2は、検知されなかった関節の曲げ角度に応じた制御を行うことはできない。しかしながら、制御装置2は、第1実施形態において持っていたその他の機能を維持する。
【0116】
[変形例3]
第1実施形態では、制御機能部22は、ノイズ補正機能部222を持っていた(
図5を参照)。変形例として、制御機能部22が、ノイズ補正機能部222を持たなくてもよい。この場合、入力される情報におけるノイズの補正を行うことはできないが、制御装置2が持つその他の機能は実現される。
【0117】
[第2実施形態]
次に、本発明の第2実施形態について説明する。なお、前実施形態において既に説明した事項については以下において説明を省略する場合がある。ここでは、本実施形態に特有の事項を中心に説明する。
【0118】
図11はおよび
図12は、第2実施形態による最小構成の制御装置における概略機能構成を示す機能ブロック図である。
図11に示すように、本実施形態の制御装置1002は、入力デバイス側インターフェース部21と、制御機能部1022と、出力デバイス側インターフェース部23とを備える。入力デバイス側インターフェース部21および出力デバイス側インターフェース部23のそれぞれの機能は、第1実施形態において説明した機能と同様である。制御機能部1022は、第1実施形態における制御機能部22が持っていた機能のうちの一部を持たない。
図12に示すように、本実施形態の制御機能部1022は、制御情報生成部1220と、同期制御機能部1221とを含んで構成される。本実施形態の制御機能部1022は、第1実施形態における制御機能部22が持っていた、ノイズ補正機能部222やモーションキャプチャーティーチング機能部225の機能を持たない。つまり、制御機能部1022は、入力デバイス側から入力される信号に含まれるノイズを補正する機能を持たない。また、制御機能部1022は、モーションを表す制御信号の時系列を保存したり、保存された制御信号の時系列に基づく再生を行ったりしない。
【0119】
なお、本実施形態においても、制御機能部1022は、入力デバイス(グローブやトラッカー)側から信号を受信し、手の位置と、手の姿勢と、関節の曲げ角度とに基づいて、手に対応するロボットアームの動きを制御するための制御信号を生成して出力する。また、制御機能部1022は、所定のタイミングで、出力デバイス側インターフェース部23から渡されるロボットアームの状態情報に基づいて、ユーザーの手の側の状態とロボットアーム側の前記状態情報とが整合するように前記制御信号を生成する。
【0120】
[コンピューターとプログラムによる実現]
図13は、第1実施形態や第2実施形態における各装置が持つ機能を実現するための内部構成の例を示すブロック図である。各装置(制御装置2あるいは1002、グローブ3、トラッカー4、およびロボットアーム7のそれぞれ)の少なくとも一部の機能は、コンピューターを用いて実現され得る。図示するように、そのコンピューターは、中央処理装置901と、RAM902と、入出力ポート903と、入出力デバイス904や905等と、バス906と、を含んで構成される。コンピューター自体は、既存技術を用いて実現可能である。中央処理装置901は、RAM902等から読み込んだプログラムに含まれる命令を実行する。中央処理装置901は、各命令にしたがって、RAM902にデータを書き込んだり、RAM902からデータを読み出したり、算術演算や論理演算を行ったりする。RAM902は、データやプログラムを記憶する。RAM902に含まれる各要素は、アドレスを持ち、アドレスを用いてアクセスされ得るものである。なお、RAMは、「ランダムアクセスメモリー」の略である。入出力ポート903は、中央処理装置901が外部の入出力デバイス等とデータのやり取りを行うためのポートである。入出力デバイス904や905は、入出力デバイスである。入出力デバイス904や905は、入出力ポート903を介して中央処理装置901との間でデータをやりとりする。バス906は、コンピューター内部で使用される共通の通信路である。例えば、中央処理装置901は、バス906を介してRAM902のデータを読んだり書いたりする。また、例えば、中央処理装置901は、バス906を介して入出力ポート903にアクセスする。
【0121】
なお、実施形態における各装置(制御装置2あるいは1002、グローブ3、トラッカー4、およびロボットアーム7のそれぞれ)の少なくとも一部の機能をコンピューターとプログラムとで実現することができる。その場合、この機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM、DVD-ROM、USBメモリー等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。つまり、「コンピューター読み取り可能な記録媒体」とは、非一過性の(non-transitory)コンピューター読み取り可能な記録媒体であってよい。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、一時的に、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0122】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【0123】
以上説明したように、いずれかの実施形態によれば、制御機能部(22,1022)は、所定のタイミングで、出力デバイス側インターフェース部(23)から渡される状態情報(即ち、ロボットアーム(7)側の動作の状態を表す状態情報)に基づいて、ユーザーの手の側の状態(つまり、入力デバイス(グローブ(3)やトラッカー(4))側の状態)とロボットアーム(7)側の状態情報とが整合するように制御信号を生成する。これにより、制御機能部(22,1022)は、高い精度でロボットアーム(7)を制御することができる。つまり、入力デバイス側と出力デバイス側とにおいて状態(位置、姿勢、関節の曲げ角度等)を同期させることができる。この同期は、例えば一定時間間隔ごとに行ってもよいし、その他のタイミングで行ってもよい。
【0124】
また、ノイズ補正機能部(222)は、入力デバイス(グローブ(3)やトラッカー(4)側で生じ得るノイズを補正することができる。つまり、制御機能部(22)による制御が安定する。つまり、入力段階における外乱等によって生じるノイズを、補正することができる。
【0125】
入力デバイス側インターフェース部(21)は、ユーザー(操作者)の手が持つすべての関節の曲げ角度の情報、を表す信号を取得する。制御機能部(22,1022)は、前記すべての関節の曲げ角度の情報に基づいて、制御信号を生成して出力する。これにより、制御機能部(22)は、ユーザー(操作者)の手が持つすべての関節の曲げ角度に忠実に、ロボットアーム(7)を制御することができる。
【0126】
本実施形態によれば、汎用品(グローブや、トラッカーや、ロボットアームなど)を組み合わせてロボット制御システムを実現する場合にも、高精度なロボットアームの制御か可能となる。つまり、安価且つ高精度なロボット制御システムを実現することができる。つまり、ユーザー(操作者)の直感に合った高精度な制御を実現することができる。
【0127】
上記の実施形態の一部または全部は、以下の付記のようにも記載され得るが、以下には限られない。
【0128】
(付記1)
ユーザーの手の位置の情報と、前記ユーザーの手の姿勢の情報と、前記ユーザーの手における各指の関節の曲げ角度の情報と、を表す信号を取得する入力デバイス側インターフェース部と、
前記手の位置と、前記手の姿勢と、前記関節の曲げ角度とに基づいて、前記手に対応するロボットアームの動きを制御するための制御信号を生成して出力する制御機能部と、
前記制御機能部が生成した前記制御信号を前記ロボットアームに対して送信するとともに、所定のタイミングで前記ロボットアームにおける状態情報を受信して前記制御機能部に渡す出力デバイス側インターフェース部と、
を備え、
前記ロボットアームにおける前記状態情報は、前記手の位置と、前記手の姿勢と、前記関節の曲げ角度とに対応する、前記ロボットアーム側の手の位置と手の姿勢と各指の関節の曲げ角度とを表す情報であり、
前記制御機能部は、前記所定のタイミングで、前記出力デバイス側インターフェース部から渡される前記状態情報に基づいて、前記ユーザーの手の側の状態と前記ロボットアーム側の前記状態情報とが整合するように前記制御信号を生成する、
制御装置。
【0129】
(付記2)
前記制御機能部は、
前記ユーザーの手の位置の情報と、前記ユーザーの手の姿勢の情報と、前記ユーザーの手における各指の関節の曲げ角度の情報と、の少なくともいずれかの情報の時間的推移に基づいてノイズを検出した場合には、検出された前記ノイズが削除または緩和されるように、当該ノイズを生じさせた、前記ユーザーの手の位置の情報と、前記ユーザーの手の姿勢の情報と、前記ユーザーの手における各指の関節の曲げ角度の情報とのいずれかを補正するノイズ補正機能部、
を備える、付記1に記載の制御装置。
【0130】
(付記3)
前記入力デバイス側インターフェース部は、前記ユーザーの手が持つすべての関節の曲げ角度の情報、を表す信号を取得し、
前記制御機能部は、前記すべての関節の曲げ角度の情報に基づいて、前記制御信号を生成して出力する、
付記1または付記2に記載の制御装置。
【0131】
(付記4)
前記制御機能部が生成する前記制御信号の時系列を保存するとともに、要求された際には、保存された前記制御信号の時系列を読み出して、前記出力デバイス側インターフェース部に、当該前記制御信号の時系列を前記ロボットアームに対して送信させるよう制御するキャプチャリング機能部、
をさらに備える付記1から付記3までのいずれか1つに記載の制御装置。
【0132】
(付記5)
入力デバイス側インターフェース部が、ユーザーの手の位置の情報と、前記ユーザーの手の姿勢の情報と、前記ユーザーの手における各指の関節の曲げ角度の情報と、を表す信号を取得する過程と、
制御機能部が、前記手の位置と、前記手の姿勢と、前記関節の曲げ角度とに基づいて、前記手に対応するロボットアームの動きを制御するための制御信号を生成して出力する過程と、
出力デバイス側インターフェース部が、前記制御機能部が生成した前記制御信号を前記ロボットアームに対して送信するとともに、所定のタイミングで前記ロボットアームにおける状態情報を受信して前記制御機能部に渡す過程と、
を含み、
前記ロボットアームにおける前記状態情報は、前記手の位置と、前記手の姿勢と、前記関節の曲げ角度とに対応する、前記ロボットアーム側の手の位置と手の姿勢と各指の関節の曲げ角度とを表す情報であり、
前記制御機能部は、前記所定のタイミングで、前記出力デバイス側インターフェース部から渡される前記状態情報に基づいて、前記ユーザーの手の側の状態と前記ロボットアーム側の前記状態情報とが整合するように前記制御信号を生成する、
制御方法。
【0133】
(付記6)
ユーザーの手の位置の情報と、前記ユーザーの手の姿勢の情報と、前記ユーザーの手における各指の関節の曲げ角度の情報と、を表す信号を取得する入力デバイス側インターフェース部と、
前記手の位置と、前記手の姿勢と、前記関節の曲げ角度とに基づいて、前記手に対応するロボットアームの動きを制御するための制御信号を生成して出力する制御機能部と、
前記制御機能部が生成した前記制御信号を前記ロボットアームに対して送信するとともに、所定のタイミングで前記ロボットアームにおける状態情報を受信して前記制御機能部に渡す出力デバイス側インターフェース部と、
を備え、
前記ロボットアームにおける前記状態情報は、前記手の位置と、前記手の姿勢と、前記関節の曲げ角度とに対応する、前記ロボットアーム側の手の位置と手の姿勢と各指の関節の曲げ角度とを表す情報であり、
前記制御機能部は、前記所定のタイミングで、前記出力デバイス側インターフェース部から渡される前記状態情報に基づいて、前記ユーザーの手の側の状態と前記ロボットアーム側の前記状態情報とが整合するように前記制御信号を生成する、
制御装置、としてコンピューターを機能させるためのプログラム。
【0134】
(付記7)
付記1から付記4までのいずれか1つに記載の制御装置と、
前記制御装置の前記入力デバイス側インターフェース部に対して、ユーザーの手の位置の情報と、前記ユーザーの手の姿勢の情報と、を表す信号を送信するトラッカーと、
前記制御装置の前記入力デバイス側インターフェース部に対して、前記ユーザーの手における各指の関節の曲げ角度の情報、を表す信号を送信するグローブと、
を備えるロボット制御システム。
【0135】
(付記8)
付記1から付記4までのいずれか1つに記載の制御装置と、
前記制御装置の前記出力デバイス側インターフェース部から送信される前記制御信号に基づいて動作するとともに、前記所定のタイミングで自装置における前記状態情報を前記出力デバイス側インターフェース部に対して送信するロボットアームと、
を備えるロボット制御システム。
【0136】
(付記9)
付記1から付記4までのいずれか1つに記載の制御装置と、
前記制御装置の前記入力デバイス側インターフェース部に対して、ユーザーの手の位置の情報と、前記ユーザーの手の姿勢の情報と、を表す信号を送信するトラッカーと、
前記制御装置の前記入力デバイス側インターフェース部に対して、前記ユーザーの手における各指の関節の曲げ角度の情報、を表す信号を送信するグローブと、
前記制御装置の前記出力デバイス側インターフェース部から送信される前記制御信号に基づいて動作するとともに、前記所定のタイミングで自装置における前記状態情報を前記出力デバイス側インターフェース部に対して送信するロボットアームと、
を備えるロボット制御システム。
【0137】
(付記10)
前記ユーザーの手の位置の情報は、1つの手について3次元の座標値で表わされ、
前記ユーザーの手の姿勢の情報は、1つの手について3次元の回転角で表わされる、
付記1から付記4までのいずれか1つに記載の制御装置。
【0138】
(付記11)
前記制御機能部が生成する前記制御信号は、前記ロボットアームが持つ部分の速度の情報を表す信号である、
付記1から付記4までと、付記10と、のいずれか1つに記載の制御装置。
【0139】
(付記12)
前記制御機能部は、一定時間間隔のフレームごとに前記制御信号を生成して出力するものであり、
前記所定のタイミングは、一定のフレーム数ごとのタイミングである、
付記1から付記4までと、付記10から付記11までと、のいずれか1つに記載の制御装置。
【0140】
(付記12)
前記フレームの頻度は、1秒あたり45フレーム(45fps)以上の頻度である、
付記12に記載の制御装置。
【産業上の利用可能性】
【0141】
本発明は、例えば、ロボットを使用する産業において利用可能である。例として、製造業等におけるロボットの制御や、遠隔手術(あるいはそのための設備等を提供する事業)や、オンラインツアー等において利用可能であるが、利用可能性はこれらの産業に限定されるものではない。また、本発明の利用範囲はここに例示したものには限られない。
【符号の説明】
【0142】
1 ロボット制御システム
2 制御装置
3 グローブ
4 トラッカー
7 ロボットアーム
9 通信回線
21 入力デバイス側インターフェース部
22 制御機能部
23 出力デバイス側インターフェース部
220 制御情報生成部
221 同期制御機能部
222 ノイズ補正機能部
225 モーションキャプチャーティーチング機能部(キャプチャリング機能部)
901 中央処理装置
902 RAM
903 入出力ポート
904,905 入出力デバイス
906 バス
1002 制御装置
1022 制御機能部
1220 制御情報生成部
1221 同期制御機能部