(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-24
(45)【発行日】2024-11-01
(54)【発明の名称】制御装置、ロボットシステム、制御方法、および、プログラム
(51)【国際特許分類】
B25J 13/02 20060101AFI20241025BHJP
B25J 13/00 20060101ALI20241025BHJP
【FI】
B25J13/02
B25J13/00 Z
(21)【出願番号】P 2021060904
(22)【出願日】2021-03-31
【審査請求日】2023-11-28
(73)【特許権者】
【識別番号】000005326
【氏名又は名称】本田技研工業株式会社
(74)【代理人】
【識別番号】100165179
【氏名又は名称】田▲崎▼ 聡
(74)【代理人】
【識別番号】100126664
【氏名又は名称】鈴木 慎吾
(74)【代理人】
【識別番号】100154852
【氏名又は名称】酒井 太一
(74)【代理人】
【識別番号】100194087
【氏名又は名称】渡辺 伸一
(72)【発明者】
【氏名】茶木 智大
(72)【発明者】
【氏名】渡部 智樹
(72)【発明者】
【氏名】董 屹立
【審査官】松浦 陽
(56)【参考文献】
【文献】特開2017-196678(JP,A)
【文献】特開2019-217557(JP,A)
【文献】特許第6476358(JP,B1)
【文献】国際公開第2019/059364(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
少なくともロボットの動作を示す動作情報と、
少なくとも操作者の手の位置を示す操作情報に基づき、現時刻から所定の予測時間後の予測時刻までの前記ロボットの効果器の予測軌道を定める軌道予測部と、
前記予測軌道に基づいて制御指令を生成する制御指令生成部と、
少なくとも前記ロボットの動作環境を示す環境情報と、前記操作情報に基づき、前記ロボットの動作状況を推定する動作状況推定部と、を備え、
前記軌道予測部は、
前記動作状況に基づいて前記予測時間を定める
制御装置。
【請求項2】
前記予測軌道をなす時刻ごとの前記効果器の目標位置を与える前記ロボットの動作機構の変位の目標値に基づいて前記動作機構に対する操作量を定める駆動制御部を備え、
前記動作状況推定部は、
前記動作状況に基づいて、前記目標値の利得を定める
請求項
1に記載の制御装置。
【請求項3】
前記駆動制御部は、
前記効果器の現在位置を与える前記変位の出力値と前記目標値との偏差と第1利得に基づく第1成分と、前記目標値と第2利得に基づく第2成分を合成して前記操作量を定め、 前記動作状況推定部は、
前記動作状況に基づいて、前記第1利得と前記第2利得を定める
請求項
2に記載の制御装置。
【請求項4】
前記動作状況推定部は、
さらに前記ロボットを操作する操作者の状況を示す操作者情報に基づいて前記動作状況を推定する
請求項
1から請求項
3のいずれか一項に記載の制御装置。
【請求項5】
コンピュータに請求項1から請求項
3のいずれか一項に記載の制御装置として機能させるためのプログラム。
【請求項6】
請求項1から請求項
3のいずれか一項に記載の制御装置と前記ロボットを備える
ロボットシステム。
【請求項7】
制御装置における制御方法であって、
少なくともロボットの動作を示す動作情報と、
少なくとも操作者の手の位置を示す操作情報に基づき、現時刻から所定の予測時間後の予測時刻までの前記ロボットの効果器の予測軌道を定める第1ステップと、
前記予測軌道に基づいて制御指令を生成する第2ステップと、
少なくとも前記ロボットの動作環境を示す環境情報と、前記操作情報に基づき、前記ロボットの動作状況を推定する第3ステップと、を有し、
前記第1ステップは、
前記動作状況に基づいて前記予測時間を定めるステップを有する
制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、ロボットシステム、制御方法、および、プログラムに関する。
【背景技術】
【0002】
従来から、操作者の動作を受け付け、受け付けた動作に従ってロボットを制御するロボットシステムが提案されている。例えば、特許文献1に記載のロボットシステムは、ロボットを操作する第1ユーザの姿勢を示す第1ユーザ姿勢情報を取得し、第1ユーザ姿勢情報に基づいてロボットの姿勢を変化させる前の変化前姿勢を示す変化前姿勢情報を取得する。当該ロボットシステムは、変化前姿勢情報と、変化前姿勢情報が示す変化前姿勢をロボットがしている時点で、第1ユーザ姿勢情報に基づいて、第1ユーザの姿勢とは異なる標的姿勢をロボットの姿勢に決定する。また、特許文献1に記載のロボットシステムは、ユーザ装置からネットワークを介して第1ユーザ姿勢情報の基礎とするユーザ情報を取得する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ロボットシステムにおいて、操作者の動作に対して遅滞なくロボットに追従させることは、作業の効率化および負担の軽減を図るために重要である。しかしながら、操作者の動作に基づくロボットの制御や動作情報の通信において、遅延を完全に取り除くことはできない。他方、ロボットの動作の遅延(追従遅れ)は、操作者に違和感を与え、作業速度の低下や作業の失敗となる要因となり、作業効率の低下を招く。
【0005】
本発明の態様は上記の点に鑑みてなされたものであり、操作感を向上することができる制御装置、ロボットシステム、制御方法、および、プログラムを提供することを課題の一つとする。
【課題を解決するための手段】
【0006】
(1)本発明は上記の課題を解決するためになされたものであり、本発明の一態様は、少なくともロボットの動作を示す動作情報と、少なくとも操作者の手の位置を示す操作情報に基づき、現時刻から所定の予測時間後の予測時刻までの前記ロボットの効果器の予測軌道を定める軌道予測部と、前記予測軌道に基づいて制御指令を生成する制御指令生成部と、少なくとも前記ロボットの動作環境を示す環境情報と、前記操作情報に基づき、前記ロボットの動作状況を推定する動作状況推定部と、を備え、前記軌道予測部は、前記動作状況に基づいて前記予測時間を定める制御装置である。
【0008】
(2)本発明の他の態様は、(1)の制御装置であって、前記予測軌道をなす時刻ごとの前記効果器の目標位置を与える前記ロボットの動作機構の変位の目標値に基づいて前記動作機構に対する操作量を定める駆動制御部を備え、前記動作状況推定部は、
前記動作状況に基づいて、前記目標値の利得を定めてもよい。
【0009】
(3)本発明の他の態様は、(2)の制御装置であって、前記駆動制御部は、前記効果器の現在位置を与える前記変位の出力値と前記目標値との偏差と第1利得に基づく第1成分と、前記目標値と第2利得に基づく第2成分を合成して前記操作量を定め、前記動作状況推定部は、前記動作状況に基づいて、前記第1利得と前記第2利得を定めてもよい。
【0010】
(4)本発明の他の態様は、(1)から(3)のいずれかの制御装置であって、前記動作状況推定部は、さらに前記ロボットを操作する操作者の状況を示す操作者情報に基づいて前記動作状況を推定してもよい。
【0011】
(5)本発明の他の態様は、コンピュータに(1)から(3)のいずれかの制御装置として機能させるためのプログラムであってもよい。
【0012】
(6)本発明の他の態様は、(1)から(3)のいずれかの制御装置と前記ロボットを備えるロボットシステムであってもよい。
【0013】
(7)本発明の他の態様は、制御装置における制御方法であって、少なくともロボットの動作を示す動作情報と、少なくとも操作者の手の位置を示す操作情報に基づき、現時刻から所定の予測時間後の予測時刻までの前記ロボットの効果器の予測軌道を定める第1ステップと、前記予測軌道に基づいて制御指令を生成する第2ステップと、少なくとも前記ロボットの動作環境を示す環境情報と、前記操作情報に基づき、前記ロボットの動作状況を推定する第3ステップと、を有し、前記第1ステップは、前記動作状況に基づいて前記予測時間を定めるステップを有する制御方法である。
【発明の効果】
【0014】
上述した(1)、(5)、(6)、(7)の構成によれば、現時刻より後の予測時刻までの効果器の予測軌道に基づいて生成された制御指令に従ってロボットの効果器が駆動されるため、操作がロボット20の動作に反映されるまでの遅延が低減または解消される。操作者にとり操作感が向上するため、作業効率の向上と負担軽減を両立することができる。
【0015】
上述した(1)、(5)、(6)、(7)の構成によれば、ロボットの動作環境と操作状況から推定されるロボットの動作状況に応じて予測時間が定まる。そのため、動作状況に応じて操作感の向上と制御される効果器の位置の正確性のバランスが調整される。
【0016】
上述した(2)の構成によれば、動作状況に応じて動作機構に対する操作量に対する目標値の寄与が調整される。そのため、動作状況に応じて操作者の操作に対する効果器の動作の感受性が調整される。
【0017】
上述した(3)の構成によれば、動作状況に応じてフィードバック項とフィードフォワード項とのバランスが調整される。そのため、動作状況に応じて、操作者の操作に対する効果器の動作の感受性と正確性とのバランスが調整される。
【0018】
上述した(4)の構成によれば、さらに操作者の状況を参照して動作状況が的確に推定される。そのため、ロボットによる作業効率と作業負担の軽減がさらに促進される。
【図面の簡単な説明】
【0019】
【
図1】第1の実施形態に係るロボットシステムの構成例を示す概略ブロック図である。
【
図2】第1の実施形態に係る制御装置の一部の機能構成例を示すブロック図である。
【
図3】第1の実施形態に係る制御装置のハードウェア構成例を示す概略ブロック図である。
【
図4】第1の実施形態に係る動作制御処理の一例を示すフローチャートである。
【
図5】第2の実施形態に係るロボットシステムの構成例を示す概略ブロック図である。
【
図6】第2の実施形態に係る制御装置の一部の機能構成例を示すブロック図である。
【
図7】第2の実施形態に係る動作制御処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0020】
<第1の実施形態>
以下、図面を参照しながら本発明の第1の実施形態について説明する。
図1は、本実施形態に係るロボットシステムS1の構成例を示す概略ブロック図である。
ロボットシステムS1は、ユーザである操作者の動作に従ってロボット20の動作を制御することができる制御システムである。また、ロボットシステムS1は、操作に応じてロボット20の動作を操縦する操縦システムでもある。ロボット20は、効果器(end-effector、エンドエフェクタ、ロボットハンド、手先効果器、作用器、などとも呼ばれる)を備える。効果器は、他の物体に機械的に作用して影響を及ぼす部材である。効果器は、複数の指部を有し、他の物体を把持または解放可能とする機構を備える。個々の指部は、操作者の対応する指の動きに応じて動作可能とする。これにより、各種の作業が実現される。
【0021】
本実施形態に係るロボットシステムS1は、ロボット20の動作環境を示す環境情報と、操作状況を示す操作情報に基づき、ロボット20の動作状況を推定する。後述するように、動作状況の推定の際、ロボットシステムS1は、駆動センサ26から取得された駆動状態情報や操作者の視線情報なども用いてもよい。ロボットシステムS1は、動作状況に対応する制御特性を示す特性パラメータに基づいてロボット20の効果器を目標位置に動作させるための制御指令を生成する。ロボットシステムS1は、生成した制御指令に基づいてロボット20の動作を制御する。
本願では、動作状況とは、主にロボット20が行う動作の形態、つまり、タスクまたは動作モードとの意味を含む。動作状況は、例えば、操作しようとする作業の種類、作業に係る物体との位置関係、物体の種類もしくは特徴などを要素として含みうる。動作状況は、いずれかの要素、または、いずれかの要素の組み合わせを含んで定義されてもよい。操作情報が共通であっても、動作状況に応じてロボット20の効果器を移動させる目標位置が異なることもある。
【0022】
ロボットシステムS1は、ロボット20、表示装置50、操作装置70、および、環境情報取得部80を備える。ロボット20は、1個以上のマニピュレータ(manipulator)を備える。マニピュレータは、ロボットアームとも呼ばれる。個々のマニピュレータは、複数の分節(segment)を備え、これらの分節が相互に連結されている。その複数の分節には、1個の効果器が含まれる。効果器は、マニピュレータの一端に接続され、物体に接触して作用を及ぼす部材である。ロボット20の動作機構は、その複数の分節のうち2個の分節を含む分節対ごとに関節を備えるとともに、関節ごとにアクチュエータを備える。アクチュエータにより各2個の分節間のなす角度を変化させることで、効果器の位置を移動させることができる。以下の説明では、マニピュレータの個数が1個である場合(単腕型)を主とするが、2個以上となってもよい。また、ロボット20は、所定の位置に固定される据置型であってもよいし、自身の位置を移動することができる可動型であってもよい。以下の説明では、ロボット20が据置型である場合を主とする。
【0023】
ロボット20の制御装置30は、表示装置50、操作装置70、および、環境情報取得部80と無線または有線で各種の情報を入出力可能に接続される。
表示装置50と操作装置70は、ロボット20と環境情報取得部80と物理的に離れた空間に所在してもよい。その場合、表示装置50と操作装置70は、制御装置30と通信ネットワークを経由して接続される遠隔操作システムとして構成されてもよい。
【0024】
ロボット20は、駆動部24、駆動センサ26、電源28、および、制御装置30を備える。
駆動部24は、関節ごとにアクチュエータを備え、制御装置30の駆動制御部40から入力される制御指令に従って動作する。個々のアクチュエータは、いわゆるモータに相当し、制御指令で指示される駆動量の目標値に従い自部に連結される2個の分節のなす角度を変化させる。
駆動センサ26は、駆動部24によるロボット20の駆動状態を検出し、検出した駆動状態を示す駆動状態情報を制御装置30に出力する。駆動センサ26は、例えば、関節ごとに2個の分節のなす角度を検出するロータリエンコーダを含んで構成される。
【0025】
電源28は、ロボット20に備わる各構成部に電力を供給する。電源28は、例えば、電源端子、二次電池、および、電圧変換器を備える。電源端子は、電力線を接続可能とし、外部から電力が供給され、供給される電力を二次電池または電圧変換器に供給する。
二次電池は、電源端子を用いて供給される電力を蓄積する。二次電池は、電圧変換器を経由して各構成部に電力を供給可能とする。電圧変換器は、電源端子または電源端子から供給される電力の電圧を各構成部で要求される所定の電圧に変換し、それぞれ電圧を変換した電力を各構成部に供給する。
【0026】
次に、本実施形態に係る制御装置30の機能構成について、
図1と
図2を参照しながら説明する。
図2は、本実施形態に係る制御装置30の一部の機能構成例を示すブロック図である。制御装置30は、情報取得部32、動作状況推定部34、目標位置推定部36、制御指令生成部38、駆動制御部40、通信部42、および、記憶部44を備える。
情報取得部32は、操作者の状況およびロボット20の状況に関する各種の情報を取得する。例えば、情報取得部32は、表示装置50から視線情報と第1操作者動作情報を取得する。視線情報と第1操作者動作情報は、操作者の状況を示す操作者情報を構成する。視線情報は、ある時刻における操作者の少なくとも一方の眼の視線方向を示す情報である。第1操作者動作情報は、操作者の頭部の動作を示す情報である。頭部の動作は、時刻ごとの頭部の方向ならびに位置で表わされる。本願では、視線情報と第1操作者動作情報を操作者情報と総称することがある。
【0027】
情報取得部32は、第2操作者動作情報を操作装置70から取得する。第2操作者動作情報は、操作者による操作に係る身体の動作を示す情報である。第2操作者動作情報は、ロボット20に対する操作状況を示す操作情報を構成する。第2操作者動作情報は、操作者の身体部位として、主に手部の動作を示す情報が含まれる。手部の動作には、少なくとも2本の指部の動作が含まれる。第2操作者動作情報には、手部の動作の他、手首の動作を示す情報が含まれてもよい。手首の動作は、その手首の代表位置を用いて表されもよいし、さらにその姿勢の情報が含まれてもよい。身体部位の動作は、時刻ごとの身体部位の位置の情報を用いて表される。本願では、第2操作者動作情報を操作情報と呼ぶことがある。
【0028】
情報取得部32は、環境情報取得部80から環境情報を取得する。環境情報は、ロボット20の動作環境を示す。環境情報には、ロボット20の動作環境を示す画像を示す画像データと、ロボット20の動作環境に分布する物体までの距離を示す距離データが含まれる。
情報取得部32は、駆動センサ26から駆動状態情報を取得する。駆動状態情報は、ロボット20の姿勢を示す姿勢情報とみなすこともできる。各時刻の駆動状態情報の時系列は、ロボット20の動作を示すロボット動作情報に相当する。情報取得部32は、取得した各種の情報を記憶部44に記憶する。
【0029】
動作状況推定部34は、記憶部44から、その時点において最新の環境情報と操作情報を読み出し、読み出した環境情報と操作情報に基づいて、ロボット20の動作状況を推定する。動作状況推定部34は、ロボット20の動作状況を推定するため、例えば、所定の機械学習モデルを用いる。動作状況推定部34には、環境情報と操作情報が入力情報として入力されるとき、出力情報として、その入力情報に対応する既知の動作状況の信頼度を1とし、その他の動作状況の候補に対する信頼度を0とする出力情報が得られるように訓練データを用いて学習されたパラメータセットを予め設定しておく。訓練データは、入力情報と既知の出力情報の組を多数含んで構成される。パラメータセットは、訓練データ全体として入力情報から推定される出力情報の推定値と既知の出力情報との差が最小化されるように学習される。その場合、機械学習モデルから得られる個々の動作状況に対する信頼度が0から1の間となる実数値として定まりうる。動作状況推定部34は、動作状況の候補ごとに算出された信頼度が所定の信頼度よりも高く、かつ、最大となる動作状況の候補がロボット20の動作状況として特定することができる。動作状況として、例えば、ロボット20の動作環境に所在している複数の物体のうち、その時点における操作情報が示す手部の動作方向に最も近い方向に所在する物体(目標物体)への接近、その時点において効果器に接している物体の作用の形態(例えば、把持、解放、摩擦、等)、などが判定される。
【0030】
動作状況推定部34は、記憶部44から、その時点において最新の操作者情報を読み出し、環境情報と操作情報の他、さらに操作者情報に基づいて、ロボット20の動作状況を推定してもよい。操作者情報は、操作者の頭部の動きも考慮した視線方向を示す。そのため、動作状況を推定する際に、操作者情報により操作者が関心を有する事象が生じた方向がさらに考慮される。動作状況推定部34には、機械学習モデルに環境情報と操作情報の他、操作者情報が入力情報として入力されるとき、出力として、その入力情報に対応する既知の動作状況の信頼度が1とし、その他の動作状況の候補に対する信頼度が0とする出力情報が得られるように訓練データを用いて、上記のように学習されたパラメータセットを予め設定しておく。
なお、動作状況推定部34は、記憶部44から、その時点において最新の駆動状態情報を読み出し、さらに駆動状態情報に基づいて、ロボット20の動作状況を推定してもよい。駆動状態情報は、ロボット20の姿勢やその時間変化を示す。そのため、動作状況を推定する際に、ロボット20の姿勢がさらに考慮される。動作状況推定部34には、機械学習モデルに環境情報と操作情報の他、駆動状態情報が入力情報として入力されるとき、出力として、その入力情報に対応する既知の動作状況の信頼度が1とし、その他の動作状況の候補に対する信頼度が0とする出力情報が得られるように訓練データを用いて、上記のように学習されたパラメータセットを予め設定しておく。
【0031】
動作状況推定部34は、推定した動作状況に対応する特性パラメータを定める。特性パラメータは、効果器の動作に対する制御特性に関するパラメータである。特性パラメータには、例えば、収束判定パラメータ、目的関数の因子ごとの重み係数のいずれか、または、それらの組が含まれる。記憶部44には、動作状況ごとに特性パラメータを示す特性パラメータテーブルを予め記憶しておく。動作状況推定部34は、特性パラメータテーブルを参照し、推定した動作状況に対応する特性パラメータを特定し、特定した特性パラメータを制御指令生成部38に出力する。
【0032】
収束判定パラメータは、効果器の位置が目標位置に収束したか否かを判定するための収束判定条件を示すパラメータである。収束判定条件の強度は、収束される位置(本願では、「収束位置」と呼ぶことがある)の目標位置に対する拘束の度合い、言い換えれば、目標位置に対する正確性に相当する。収束判定パラメータとして、例えば、目標位置からの距離の閾値が利用可能である。目標位置からの距離の閾値が小さいほど、収束判定条件が強いことを示す。動作状況推定部34は、制御対象となる効果器の位置の追従性を要する動作状況ほど、強い収束判定条件を示す収束判定パラメータを設定してもよい。追従性とは、目標位置に対して効果器の位置を正確に制御できる特性、もしくは、正確な制御を要する特性、つまり、正確性を意味する。かかる動作状況には、例えば、効果器が繊細な物体が設置され目標位置に十分近接している状況、操作情報で指示される動作が微細な状況、などがある。
【0033】
逆運動学計算は、目標位置から個々の関節の変位、つまり角度と角加速度の一方または両方を定める解析手法であり、逆運動学解析とも呼ばれる。なお、逆動力学計算は、複数の分節が接続されてなるリンク機構において、個々の関節の運動(つまり角度と角加速度の一方または両方の時間変化)を実現するための関節の駆動力を定める解析手法であり、逆動力学解析とも呼ばれる。そのため、逆運動学計算は、逆動力学計算とも密接に関連する。本実施形態では、逆運動学計算に係る特性パラメータに、逆動力学計算に係る特性パラメータが含まれることがある。
他方、収束判定条件が強いほど、逆運動学計算の解が存在しない可能性や、解が存在しても、その解が安定しない可能性が高くなる傾向がある。そこで、動作状況推定部34は制御対象となる効果器の位置の柔軟性が許容される動作状況ほど、弱い収束判定条件(例えば、目標位置から離間)を示す収束判定パラメータを設定してもよい。柔軟性とは、目標位置からの効果器の位置の乖離が許容される特性を意味する。柔軟性は、確実に制御可能とする特性、つまり、安全性を意味する。柔軟性が許容される動作状況には、例えば、目標位置までの経路の周辺に複数の物体が分布している場合、などがある。
【0034】
目的関数は、逆運動学計算においてロボット20の動作の最適解を公知の手法を用いて数値的に求める(最適化問題)ために用いられる。つまり、目的関数は、効果器を目標位置に動作させるための負荷の大きさを定量的に示す関数であり、複数種類の因子を含み、それらの因子を合成して構成される。重み係数は、個々の因子の目的関数に対する寄与を示す。負荷とは、制御に係るコストを意味する。複数の因子には、時刻ごとの制御誤差の大きさが1つの因子として含まれる。制御誤差の大きさは、例えば、最終的な目標位置と収束との誤差の大きさ(距離)で表される。制御誤差に対する重み係数が大きいほど、目標位置に対する効果器の追従性が高くなるように制御される。目的関数には、効果器の現在位置から収束位置までの到達時間、現在から収束位置に至るまでのジャークの大きさ、現在から収束位置に至るまでの電力量、収束位置に至るまでのロボット20の運動量、現在のロボット20の姿勢と効果器が収束位置に位置する時点でのロボット20の姿勢との差分の大きさ、などのいずれか、または、組み合わせが因子として含まれてもよい。本願では、最適化とは、目的関数の関数値をより小さくする解を探索すると意味を含み、絶対的に関数値を最小とすることに限られない。従って、関数値が一時的に増加することもありうる。
【0035】
従って、動作状況推定部34は、制御対象となる効果器の位置の追従性を要する動作状況ほど、制御誤差に対する重み係数が大きくなるように設定してもよい。動作状況推定部34は、制御対象となる効果器の位置の柔軟性が許容される動作状況ほど、制御誤差に対する重み係数が小さくなるように設定してもよい。動作状況推定部34は、制御対象となる効果器の位置の連続性を要する動作状況ほど、ジャークの大きさに対する重み係数が大きくなるように設定してもよい。
【0036】
動作状況推定部34は、推定した動作状況に対応する駆動制御パラメータを定める。駆動制御パラメータは、ロボット20を構成する各分節の駆動に対する制御特性に関するパラメータである。駆動制御パラメータは、駆動制御部40をなす制御器が、各関節を駆動するアクチュエータに対する操作量を定める際に用いられる。記憶部44には、動作状況ごとに駆動制御パラメータを示す駆動制御パラメータテーブルを予め記憶しておく。動作状況推定部34は、駆動制御パラメータテーブルを参照し、推定した動作状況に対応する駆動制御パラメータを特定し、特定した駆動制御パラメータを駆動制御部40に出力する。
例えば、制御器が、PID(Proportional-Integral-Differential)制御器である場合には、比例ゲイン(proportional gain)、積分ゲイン(integral gain)、および、微分ゲイン(differential gain)が駆動制御パラメータに含まれる。比例ゲインは、操作量の一成分である比例項を、その時点(現在)における目標値と出力値の偏差に乗じて算出するための利得である。積分ゲインは、操作量の他の成分である積分項を、その時点までの偏差の積分値に乗じて算出するための利得である。微分ゲインは、操作量のさらに他の成分である微分項を、その時点における偏差の微分値に乗じて算出するための利得である。動作状況推定部34は、例えば、追従性を要する動作状況ほど、他の種類の利得よりも微分ゲインが相対的に大きくなるように個々の利得を定めてもよい。動作状況推定部34は、例えば、柔軟性を要する動作状況ほど、他の種類よりも積分ゲインが相対的に大きくなるように個々の利得を定める。
【0037】
目標位置推定部36は、その時点において最新の環境情報と操作情報を読み出し、読み出した環境情報と操作情報に基づいて、ロボット20の効果器の目標位置を推定する。目標位置推定部36は、推定した目標位置を示す目標位置情報を制御指令生成部38に出力する。
目標位置推定部36は、目標位置を推定するため、例えば、機械学習モデルを用いる。動作状況推定部34における機械学習モデルと区別するため、動作状況推定部34における機械学習モデル、目標位置推定部36における機械学習モデルを、それぞれ第1機械学習モデル、第2機械学習モデルと呼ぶことがある。
【0038】
目標位置推定部36には、機械学習モデルに環境情報と操作情報が入力情報として入力されるとき、その入力情報に対応する目標位置に係る出力情報として得られるように学習されたパラメータセットを予め設定しておく。
目標位置として、物体の表面のうち経験的に効果器により作用される可能性が高い位置が設定される。目標位置は、物体の形状に依存しうる。直径よりも高さの方が大きい縦長の円柱の場合に対しては、底面の中心、表面の中心、および高さ方向の中間点の横断面のうち、最も効果器に近接する位置が目標位置となる可能性が高くなることがある。機械学習モデルからの出力情報は、目標位置の座標を示す情報であってもよいし、これには限られない。出力情報には、例えば、目標位置が設定される物体、その物体の種類、形状、ならびに、方向、および、その物体における目標位置が設置される位置、などを示す情報が含まれてもよい。目標位置推定部36は、その出力情報から目標位置の座標を定めることができる。
【0039】
また、目標位置推定部36は、記憶部44から、その時点において最新の操作者情報を読み出し、環境情報と操作情報の他、さらに操作者情報に基づいて、目標位置を推定してもよい。そのため、操作者情報により操作者が関心を有する事象が生じた方向も考慮した目標位置が推定される。但し、目標位置推定部36には、機械学習モデルに環境情報と操作情報の他、操作者情報が入力情報として入力されるとき、その入力情報に対応する目標位置の座標値が出力情報として得られるように学習されたパラメータセットを予め設定しておく。
【0040】
但し、目標位置推定部36は、必ずしも第2機械学習モデルを用いて目標位置を推定しなくてもよい。例えば、動作状況推定部34から通知される動作状況が効果器の継続的な並進運動を伴わない動作状況である場合には、目標位置推定部36は第2機械学習モデルを用いて目標位置を推定しない。かかる動作状況には、例えば、静止、回転、物体の把持、解放、物体表面の摩擦などがある。目標位置推定部36は、第2機械学習モデルを用いて、目標位置を推定しない場合には、操作情報で示される操作者の手部の位置を目標位置として採用してもよい。
なお、目標位置推定部36は、第1機械学習モデル、第2機械学習モデルとして、例えば、ニューラルネットワーク、ランダムフォレスト、などの数理モデルを利用することができる。
【0041】
制御指令生成部38は、目標位置推定部36から入力される目標位置情報が示す目標位置に向けて、現在位置から効果器を移動させるための動作指令を生成する。「目標位置に向けて」または「目標位置に向かう」とは、目標位置への移動を目的とするが、目標位置への到達が保証されないという意味を含む。制御指令生成部38は、記憶部44に記憶された駆動状態情報を読み出し、駆動状態情報が示す各関節の角度と各分節の寸法に基づいて、効果器の現在位置を算出することができる。制御指令生成部38は、駆動状態情報が示す各関節の角度と各分節の寸法に加え、各関節の角速度に基づいて、効果器の速度を算出することができる。制御指令生成部38は、動作状況推定部34から入力される特性パラメータと駆動状態情報(ロボット動作情報)に基づいて公知の逆運動学計算を行い、収束位置に効果器を移動させるように各関節の角度を定める。制御指令生成部38は、定めた各関節の角度(関節角度)を示す動作指令(関節指令)を駆動制御部40に出力する。
【0042】
特性パラメータに収束判定パラメータが含まれる場合、制御指令生成部38は、逆運動学計算において、目標位置から収束判定パラメータで示される領域内におけるいずれかの位置を収束位置と定め、効果器38の移動を停止してもよい。制御指令生成部38は、効果器の現在位置が収束したか否かを判定する際、例えば、効果器の現在位置が、目標位置から特性パラメータで示される所定の距離の閾値以内であるか否かを判定する。効果器の位置が収束したと判定するとき、制御指令生成部38は、動作停止を示す制御指令を生成し、駆動制御部40に出力する。駆動制御部40は、制御指令生成部38から動作停止を示す制御指令が入力されるとき、個々の関節に対する目標値の更新を停止し、固定する。収束位置においては、制御指令生成部38は効果器の速度をゼロとする拘束条件、または、駆動制御部40は各関節の角速度をゼロとする拘束条件を課してもよい。
【0043】
収束特性パラメータに目的関数の因子ごとの重み係数が含まれる場合には、制御指令生成部38は、逆運動学計算において、その重み係数と対応する因子を用いて合成される目的関数に基づいて最適化計算を行う。目的関数は、例えば、因子と、その重み係数との積の因子間の総和(加重和)で算出される。最適化計算において、制御指令生成部38は、目標位置または収束位置に効果器が到着するまでに生ずる負荷を示す目的関数が極力小さくなるように再帰的に各関節の角度を算出してもよい。
【0044】
なお、目標位置推定部36から目標位置情報が取得されない場合には、制御指令生成部38は、操作情報で示される手部の位置を目標位置として採用してもよい。制御指令生成部38は、逆運動学計算を行って、採用した目標位置に向けて現在位置から効果器を移動させるための各関節の角度を目標値とする動作指令を生成する。
【0045】
駆動制御部40は、制御指令生成部38から入力される制御指令、動作状況推定部34から入力される駆動制御パラメータ、および、記憶部44から読み出した駆動状態情報(ロボット動作情報)に基づいて駆動指令を定める。より具体的には、駆動制御部40は、制御指令で示される関節ごとの角度を目標値として制御するための操作量を算出し、算出した操作量示す制御指令を定める制御器を含んで構成される。駆動制御部40は、定めた制御指令を駆動部24に出力する。制御器は、駆動状態情報が示す角度を出力値とし、その制御器に設定された制御方式に従って、目標値と出力値との偏差に駆動制御パラメータを作用して操作量を算出する。PID制御器は、偏差、偏差の時間積分値、偏差の時間微分値にそれぞれ比例ゲイン、積分ゲイン、微分ゲインを乗じて得られる乗算値の総和を操作量として算出する。
【0046】
通信部42は、ロボット20の各構成部と、他の構成部(即ち、表示装置50、操作装置70、および、環境情報取得部80)との間で無線または有線で各種の情報を送受信する。通信部42は、例えば、入出力インタフェース、通信インタフェースなどを含んで構成される。
記憶部44は、制御装置30における各種の処理に用いられるデータ、制御装置30が取得した各種のデータなどを一時的または恒常的に記憶する。記憶部44は、例えば、RAM(Random Access Memory)、ROM(Read Only memory)などの記憶媒体を含んで構成される。
【0047】
表示装置50は、表示部52、視線検出部54、動作検出部56、制御部58、および、通信部60を含んで構成される。表示装置50は、使用者である操作者の頭部に装着可能な支持部材を備え、ヘッドマウンテッドディスプレイ(HMD:Head Mounted Display)として構成されてもよい。
【0048】
表示部52は、環境情報取得部80から制御装置30を経由し、通信部60を用いて画像データを受信する。表示部52は、受信した画像データに基づき、ロボット20の動作環境を示す画像を表示する。表示部52は、操作者の頭部に装着されるとき、その画面が両眼の正面に対面する位置に配置されてもよい。
視線検出部54は、操作者の一方また両方の眼の視線方向を検出する視線センサを含んで構成される。視線検出部54は、各時刻において検出した視線方向を示す視線情報を制御装置30に通信部60を用いて送信する。視線検出部54は、操作者の頭部に装着されるとき、少なくとも一方の眼に露出される位置に配置されてもよい。
動作検出部56は、操作者の頭部の動作を検出し、検出した動作を示す第1操作者動作情報を制御装置30に通信部60を用いて送信する。動作検出部56は、例えば、操作者の動作を検出するための加速度センサを含んで構成される。
【0049】
制御部58は、表示装置50の機能を制御する。制御部58は、CPU(Central Processing Unit)などのプロセッサを含んで構成される。
通信部60は、制御装置30と各種の情報を送受信する。通信部60は、通信インタフェースを含んで構成される。
【0050】
操作装置70は、動作検出部72、制御部74、および、通信部76を備える。操作装置70は、使用者である操作者の手部に装着可能な支持部材を備え、データグローブ(data glove)として構成されてもよい。
動作検出部72は、操作者の手部の動作を検出し、検出した動作を示す第2操作者動作情報を制御装置30に通信部76を用いて送信する。動作検出部72は、例えば、操作者の手部の動作を検出するための加速度センサを含んで構成される。操作装置70には、さらに手首トラッカが接続されてもよい。手首トラッカは、操作者の手首に装着可能な支持部材と、手首の動作を検出するための加速度センサを含んで構成される。手首の動作を検出する加速度センサは、動作検出部72の一部を構成する。第2操作者動作情報は、手首の動作を示す情報を含めて制御装置30に送信される。
【0051】
制御部74は、操作装置70の機能を制御する。制御部74は、CPUなどのプロセッサを含んで構成される。
通信部76は、制御装置30と各種の情報を送受信する。通信部76は、通信インタフェースを含んで構成される。
なお、動作検出部72は、表示装置50の通信部60と接続可能とし。通信部60を経由して第2操作者動作情報を制御装置に送信してもよい。その場合には、制御部74と通信部76が省略されてもよい。
【0052】
環境情報取得部80は、撮影部82、測距部84、および、通信部86を備える。環境情報取得部80は、ロボット20の筐体に設置されてもよいし、ロボット20と別個の位置に設置されてもよい。
撮影部82は、ロボット20から所定範囲内の動作環境における画像を撮影する。動作環境には、ロボット20の効果器が到達可能とする範囲が含まれる。撮影される画像にはロボット20の像の全体が必ずしも含まれるとは限らない。撮影部82は、所定時間ごとに画像を撮影するディジタルビデオカメラである。撮影部82は、撮影した画像を示す画像データを制御装置30に通信部86を経由して送信する。
【0053】
測距部84は、ロボット20から所定範囲内の動作環境における物体の表面までの距離を測定する。測距部84は、例えば、送波部、受波部、距離検出部を備える。送波部は、赤外線などの波動を送出する。送波部は、例えば、発光ダイオードを含んで構成される。受波部は、物体の表面において反射により生じた反射波を受波する。受波部は、例えば、フォトダイオードを含んで構成される。反射波は、送波部から送出された波動は、物体の表面に入射波として入射したことに応じて生ずる。距離検出部は、送出波と反射波との位相差を検出し、検出した位相差に基づいて物体の表面までの距離を定めることができる。距離検出部は、画像の各画素に対応する方向ごとに定めた距離を示す距離データを制御装置30に通信部86を経由して送信する。なお、距離の計測に用いられる波動は、赤外線に限られず、ミリ波、超音波、などであってもよい。
通信部86は、制御装置30と各種の情報を送受信する。通信部86は、通信インタフェースを含んで構成される。
なお、環境情報取得部80がロボット20の筐体に設置され、ロボット20の他の機能部と各種の情報を送受信できる場合には、通信部86が省略されてもよい。
【0054】
(ハードウェア構成)
次に、本実施形態に係る制御装置30のハードウェア構成例について説明する。
図3は、本実施形態に係る制御装置30のハードウェア構成例を示す概略ブロック図である。制御装置30は、プロセッサ102、ROM104、RAM106、補助記憶部108、および、入出力部110を含んで構成されるコンピュータとして機能する。プロセッサ102、ROM104、RAM106、補助記憶部108および入出力部110は、相互に各種のデータを入出力可能に接続される。
【0055】
プロセッサ102は、例えば、ROM104に記憶されたプログラムや各種のデータを読み出し、当該プログラムを実行して、制御装置30の各部の機能を実現するための処理や、その機能を制御するための処理を実行する。プロセッサ102は、例えば、CPUである。
なお、本願では、プログラムに記述された各種の命令(コマンド)で指示された処理を実行することを、「プログラムの実行」または「プログラムを実行する」などと呼ぶことがある。
【0056】
ROM104は、例えば、プロセッサ102が実行するためのプログラムを記憶する。
RAM106は、例えば、プロセッサ102で用いられる各種データ、プログラムを一時的に保存する作業領域として機能する。
補助記憶部108は、各種のデータを永続的に記憶する。補助記憶部108には、制御装置30が取得したデータを記憶する。補助記憶部108は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)などの記憶媒体を備える。
【0057】
入出力部110は、例えば、他の機器と無線または有線で各種のデータ入出力可能とする。入出力部110は、他の機器とネットワークを経由して接続されてもよい。入出力部は、例えば、入出力インタフェースと通信インタフェースの一方または両方を備える。
なお、表示装置50、操作装置70、および環境情報取得部80も、
図3に例示されるハードウェア構成と同様のハードウェア構成を備え、各装置としての機能を実現するコンピュータとして構成されてもよい。
【0058】
(動作制御処理)
次に、本実施形態に係る動作制御処理の一例について説明する。
図4は、本実施形態に係る動作制御処理の一例を示すフローチャートである。
(ステップS102)動作状況推定部34は、その時点において最新の環境情報、操作情報および視線情報を取得し、これらに基づいてロボット20の動作状況を推定する。
(ステップS104)動作状況推定部34は、特性パラメータテーブルおよび駆動制御パラメータテーブルを参照し、推定した動作状況に対応する特性パラメータおよび駆動制御パラメータをそれぞれ定める。
【0059】
(ステップS106)目標位置推定部36は、その時点において最新の環境情報、操作情報および視線情報を取得し、これらに基づいてロボット20の効果器の目標位置を推定する。
(ステップS108)制御指令生成部38は、定めた特性パラメータに基づいて現在位置から目標位置に向けて効果器を移動させるための制御指令を生成する。
(ステップS110)駆動制御部40は、駆動制御パラメータを用い、各関節の角度を制御指令に示される目標値に制御する駆動指令を生成する。
【0060】
(ステップS112)制御指令生成部38は、効果器の位置が収束したか否かを判定する。制御指令生成部38は、例えば、効果器の現在位置が、目標位置から特性パラメータで示される所定の距離の閾値以内であるか否かにより、収束したか否かを判定することができる。効果器の位置が収束したと判定するとき(ステップS112 YES)、動作の停止を示す制御指令を生成し、駆動制御部40に出力する。これにより、ロボット20の動作を停止させる。その後、
図4の処理を終了する。効果器の位置が収束していないと判定するとき(ステップS112 NO)、ステップS102の処理に戻る。
【0061】
<第2の実施形態>
次に、本発明の第2の実施形態について説明する。以下の説明では、第1の実施形態との差異を主とし、第1の実施形態と共通の機能、構成については、特に断らない限り第1の実施形態に係る説明を援用する。本実施形態に係るロボットシステムの機能構成について、
図5の他、
図6も参照しながら説明する。
図5は、本実施形態に係るロボットシステムS1の構成例を示す概略ブロック図である。
図6は、本実施形態に係る制御装置30の一部の機能構成例を示すブロック図である。
【0062】
本実施形態に係るロボットシステムS1は、ロボット20の位置を示す位置情報と、操作状況を示す操作情報に基づき、現時刻から所定の予測時間後の予測時刻までのロボット20の効果器の予測軌道を定める。ロボットシステムS1は、定めた予測軌道に基づいて制御指令を生成する。本実施形態に係るロボットシステムS1は、制御装置30において軌道予測部46をさらに備える。
【0063】
軌道予測部46は、少なくともその時点におけるロボット20の動作を示すロボット動作情報(駆動状態情報)と操作情報を用いて現在から所定の予測時間後である予測時刻までのロボット20の効果器の動作を示す予測軌道を予測する。操作情報は、効果器に対する加速もしくは減速、または方向変更との組み合わせの要因となる。軌道予測部46は、例えば、現在までの所定期間内の駆動状態情報と操作情報に対して線形予測を行い、予測時刻までの効果器の位置と速度を算出する。軌道予測部46は、予測時刻までの各時刻における効果器の位置の時系列は予測軌道を構成する。予測時間とは、現在から予測時刻までの経過時間を示し、予測のために費やされる時間ではない。
【0064】
軌道予測部46は、例えば、カルマンフィルタを用いて効果器の位置を逐次に予測してもよい。カルマンフィルタは、(a)予測ステップおよび(b)更新ステップを有し、それらのステップを順次繰り返す手法である。(a)予測ステップでは、軌道予測部46は、前時刻までの効果器の状態量の時間発展(加重和)と外力とを加算して、現在の効果器の状態量の推定値を算出する。但し、状態量は、位置と速度を要素として有するベクトルである。外力は、速度と加速度を要素として有するベクトルである。速度は、駆動状態情報に示される各関節の角度ならびに角速度と、分節の寸法に基づいて算出される。加速度は、駆動状態情報に示される各関節の角度、各速度ならびに角加速度と、分節の寸法に基づいて算出される。また、軌道予測部46は、前時刻までの状態量の予測誤差の時間発展と誤差の時間発展とを加算して、現在の予測誤差を算出する。(b)更新ステップでは、軌道予測部46は、効果器の現在位置(観測値)から現在における効果器の位置の推定値の差を観測残差して算出する。軌道予測部46は、現在の予測誤差から現在の観測誤差の共分散を算出する。軌道予測部46は、現在の予測誤差と観測残差の共分散からカルマンゲインを算出する。軌道予測部46は、現在の効果器の状態量の推定値と、観測残差とカルマンゲインの積を加算して得られる値に現在の効果器の状態量を更新する。軌道予測部46は、1からカルマンゲインを乗じた観測空間への写像の残差との予測誤差を乗じて得られる値に現在の予測誤差を更新する。
【0065】
予測時間は、所定の値(例えば、0.2s-2s)に固定されていてもよいし、可変であってもよい。予測時間として、操作者の動作がロボット20の動作として表れるまでの遅延時間(「追従遅れ」とも呼ばれる)と等しいか、それ以下となる値を設定しておく。予測時間が大きいほど効果器の位置の予測誤差が大きくなり、却って操作性を損なうおそれがある。
予測時間を可変にする場合には、記憶部44に予め動作状況ごとに予測時間を示す予測時間テーブルを記憶させておいてもよい。特に予測時間が遅延時間を超えると操作者の動作よりもロボット20の動作の方が先行するため、予測誤差が著しくなるおそれが生じうる。そのため、遅延時間を予測時間の上限として設定しておいてもよい。動作状況推定部34は、上記の手法を用いてロボット20の動作状況を推定し、予測時間テーブルを参照して、推定した動作状況に対応する予測時間を特定することができる。
【0066】
動作状況推定部34は、制御対象となる効果器の位置の正確性が要求される動作状況ほど、より小さい予測時間を設定してもよい。かかる動作状況は、効果器の予測誤差が許容されない代わりに遅延が許容される動作状況である。例えば、操作対象物が微細な物体である場合、操作者の操作が繊細である場合、などが該当する。動作状況推定部34は、効果器の位置の即応性が要求される動作状況ほど、より大きい予測時間を設定してもよい。かかる動作状況として、予測誤差が許容される代わりに操作に対する効果器の応答性が期待される動作状況に適する。例えば、効果器を目標とする物体に向けて大局的に動作させる場合、効果器を他の物体が所在していない空間に退避させる場合、などが該当する。
【0067】
動作状況推定部34は、特定した予測時間を示す予測時間情報を軌道予測部46に出力する。軌道予測部46は、動作状況推定部34から入力される予測時間情報に示される予測時間を用いて定まる予測時刻までの効果器の位置と速度を算出する。軌道予測部46は、少なくとも現在から予測時刻までの効果器の位置と速度を示す予測軌道を示す予測軌道情報を制御指令生成部38に出力する。
【0068】
制御指令生成部38は、目標位置に向けて現在位置から効果器を移動させるための動作指令を生成する際、駆動状態情報に代え、軌道予測部46から入力される予測軌道と、動作状況推定部34から入力される特性パラメータに基づいて公知の逆運動学計算を行い、収束位置に効果器を移動させるように各関節の角度を定める。これに対し、現在までの駆動状態情報は、現在までの各時刻の効果器の位置を示す実軌道とみなすこともできる。補実施形態では、実軌道に代えて予測軌道を用いることで効果器の動作の遅れを補償することができる。
【0069】
また、本実施形態に係る駆動制御部40に備わる制御器は、フィードバック項で算出される第1成分とフィードフォワード項で算出される第2成分を合成して操作量を算出してもよい。フィードバック項とは、目標値と出力値との偏差に基づいて操作量の一部の成分である第1成分を算出する項である。目標値として、目標位置に対応する各関節の角度が用いられる。出力値として、駆動状態情報に示される各関節の角度が用いられる。この出力値は、その時点における効果器の現在位置に対応する。上記のPI制御、PID制御は、第2成分を含めずに第1成分を操作量として定める手法に相当する。つまり、上記の比例項、積分項、および、微分項が、それぞれ第1成分に含まれる。フィードフォワード項とは、出力値を考慮せず、目標値に基づいて操作量の他の成分である第2成分を算出する項である。第2成分は、目標値に比例する第2比例項を含む。第2比例項は、目標値に第2比例ゲインを乗じて得られる。
【0070】
そこで、駆動制御パラメータテーブルには、個々の動作状況に対応する駆動制御パラメータとして、第1成分に係る第1利得(上記の比例ゲイン、積分ゲイン、微分ゲインのいずれか、または、これらの組み合わせが該当)の他、第2成分に係る第2利得を含めて設定しておく。第2利得には、第2比例ゲインが含まれる。第2成分には、さらに目標値の時間積分値に比例する第2積分項と目標値の時間微分値に比例する第2微分項の一方または両方を含んでもよい。第2積分項は、目標値に第2積分ゲインを乗じて得られる。第2微分項は、目標値に第2微分ゲインを乗じて得られる。第2利得には、さらに第2積分ゲインと第2微分ゲインの一方または両方が含まれる。そして、動作状況に応じて、第1利得と第2利得の比が異なっていてもよい。例えば、制御対象となる効果器の位置の正確性が要求される動作状況ほど、第2因子に対する第1因子の比を相対的に大きくするように、第1利得と第2利得を定めておけばよい。かかる動作状況においては、フィードバック項が相対的に重視される。また、効果器の位置の即応性が要求される動作状況ほど、第1因子に対する第2因子の比を相対的に大きくするように、第1利得と第2利得を定めておけばよい。かかる動作状況においては、フィードフォワード項が相対的に重視される。
【0071】
動作状況推定部34は、駆動制御パラメータテーブルを参照して、推定した動作状況に対応する第1利得と第2利得を含む駆動制御パラメータを特定し、特定した駆動制御パラメータを駆動制御部40に出力する。駆動制御部40は、動作状況推定部34から入力される駆動制御パラメータに示す第1利得と第2利得に基づいて、それぞれ関節ごとに第1因子と第2因子を算出し、算出した第1因子と第2因子を合成して操作量を定める。駆動制御部40は、関節ごとに定めた操作量を示す駆動指令を駆動部24に出力する。
なお、本実施形態に係る制御器は、第1成分を含めずに、第2成分を操作量として定めてもよい。その場合には、第1利得の設定は省略されてもよい。
【0072】
(動作制御処理)
次に、本実施形態に係る動作制御処理の一例について説明する。
図7は、本実施形態に係る動作制御処理の一例を示すフローチャートである。
図7に示す処理は、
図4に示す処理に対して、さらにステップS122、S124、および、S126の処理を有する。
目標位置推定部36がステップS106の処理を終了した後、ステップS122の処理に進む。
(ステップS122)動作状況推定部34は、予測時間テーブルを参照して、自部が定めた動作状況に対応する予測時間を定める。
(ステップS124)軌道予測部46は、ロボット動作情報と操作情報を用いて、現在から定めた予測時間後である予測時刻までの効果器の予測軌道を推定する。
(ステップS126)制御指令生成部38は、予測軌道と特性パラメータを用いて、目標位置に向けて効果器を移動させる各関節の角度を目標値として示す制御指令を生成する。その後、ステップS110の処理に進む。
【0073】
なお、ステップS122において、動作状況推定部34は、駆動制御パラメータテーブルを参照して、動作状況に対応する駆動制御パラメータを特定してもよい。
ステップS110において、駆動制御部40は、特定された駆動制御パラメータを用いて、目標値と、目標値と出力値の偏差に基づいて、それぞれ第1因子と、第2因子を算出し、算出した第1因子と第2因子を合成して操作量を定めてもよい。駆動制御部40は、定めた操作量を示す駆動指令を生成し、生成した駆動指令を駆動部24に出力する。
【0074】
以上に説明したように、上記の実施形態に係る制御装置30は、少なくともロボット20の動作を示す動作情報と、操作状況を示す操作情報に基づき、現時刻から所定の予測時間後の予測時刻までのロボット20の効果器の予測軌道を定める軌道予測部46と、予測軌道に基づいて制御指令を生成する制御指令生成部38と、を備える。
この構成によれば、現時刻より後の予測時刻までの効果器の予測軌道に基づいて生成された制御指令に従ってロボット20の効果器が駆動されるため、操作がロボット20の動作に反映されるまでの遅延(追従遅れ)が低減または解消される。操作者にとり操作感が向上するため、作業効率の向上と負担軽減を両立することができる。
【0075】
また、制御装置30は、少なくともロボット20の動作環境を示す環境情報と、操作情報に基づき、ロボット20の動作状況を推定する動作状況推定部34をさらに備えてもよい。軌道予測部46は、動作状況に基づいて予測時間を定めてもよい。
この構成によれば、ロボット20の動作環境と操作状況から推定されるロボット20の動作状況に応じて予測時間が定まる。そのため、動作状況に応じて操作感の向上と制御される効果器の位置の正確性のバランスが調整される。
【0076】
また、制御装置30は、予測軌道をなす時刻ごとの効果器の目標位置を与えるロボット20の動作機構の変位の目標値に基づいて動作機構に対する操作量を定める駆動制御部40を備えてもよい。動作状況推定部34は、動作状況に基づいて、目標値の利得を定めてもよい。
この構成によれば、動作状況に応じて動作機構に対する操作量に対する目標値の寄与が調整される。そのため、動作状況に応じて操作者の操作に対する効果器の動作の感受性が調整される。
【0077】
また、駆動制御部40は、効果器の現在位置を与える変位の出力値と目標値との偏差と第1利得に基づく第1成分と、目標値と第2利得に基づく第2成分を合成して操作量を定めてもよい。動作状況推定部34は、動作状況に基づいて、第1利得と第2利得を定めてもよい。
この構成によれば、動作状況に応じてフィードバック項とフィードフォワード項とのバランスが調整される。そのため、動作状況に応じて操作者の操作に対する効果器の動作の感受性と正確性とのバランスが調整される。
【0078】
また、動作状況推定部34は、さらにロボットを操作する操作者の状況を示す操作者情報に基づいて動作状況を推定してもよい。
この構成によれば、さらに操作者の状況を参照して動作状況が的確に推定される。そのため、ロボットによる作業効率と作業負担の軽減がさらに促進される。
【0079】
以上、図面を参照してこの発明の実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【0080】
上記の実施形態およびその変形例は、矛盾が生じない限り相互に組み合わされてもよいし、その一部が省略されてもよい。
例えば、上記の各実施形態において、目標位置推定部36が省略されてもよいし、さらに、目標位置推定部36により推定された目標位置に基づく処理が省略されてもよい。
第2の実施形態において、予測時間が固定の場合には、動作状況推定部34が省略されてもよいし、さらに、動作状況に基づく処理が省略されてもよい。
【0081】
環境情報取得部80において、測距部84は、撮影部82と一体化され、三次元画像撮影部として構成されてもよい。また、環境情報取得部80は、撮影部82と測距部84に代えて、多視点撮影部を備えてもよい。多視点撮影部は、複数の視点を有し、視点ごとに画像を撮影することができる撮影部である。多視点撮影部には、いわゆるステレオカメラが含まれる。多視点撮影部が撮影した視点ごとの画像(多視点画像)により、ロボット20の動作環境が立体的に表現される。目標位置推定部36は、多視点画像を解析することで、ロボット20の動作環境から物体が占める領域を特定することができる。
【0082】
また、表示装置50の一部または全部が省略されてもよい。視線情報が操作者の一方の眼(例えば、左眼)の視線方向を示す場合を主として説明したが、これには限られない。視線情報は、左眼、右眼それぞれの視線方向を示してもよい。ある時刻において一方の眼の視線方向が利用できない場合(例えば、瞬き)には、目標位置推定部36は、注目点を定める際に他方の眼の視線方向を用いてもよい。両眼の視線方向が利用できる場合には、目標位置推定部36は、両眼それぞれの視線方向の線分が交わる交点、もしくは、それらの線分それぞれの最近接点の中点を注視点として定めてもよい。そして、目標位置推定部36は、頭部から注視点への方向を両眼の視線方向を代表する視線方向と定め、定めた視線方向と物体の表面との交点を定めてもよい。定めた交点が目標位置の設定に用いられる。
【0083】
ロボット20は、複数のマニピュレータを備えてもよい。複数のマニピュレータは、複数名の操作者の各一方の前腕部ならびに手部に対応してもよい。個々のマニピュレータは、操作者の各一方の前腕部ならびに手部の動作に応じて動作可能とする。制御装置30は、上記の手法を用いてマニピュレータごとに1個の目標位置を定め、定めた目標位置に向けて動作させてもよい。ロボット20は、2個のマニピュレータを備える双腕型ロボットであってもよい。双腕型ロボットに対しては、例えば、一方および他方のマニピュレータが、それぞれ1名の操作者の左手、右手に対応してもよい。
【符号の説明】
【0084】
S1…ロボットシステム、20…ロボット、24…駆動部、26…駆動センサ、28…電源、30…制御装置、32…情報取得部、34…動作状況推定部、36…目標位置推定部、38…制御指令生成部、40…駆動制御部、42…通信部、44…記憶部、46…軌道予測部、50…表示装置、52…表示部、54…視線検出部、56…動作検出部、58…制御部、60…通信部、70…操作装置、72…動作検出部、74…制御部、76…通信部、80…環境情報取得部、82…撮影部、84…測距部、86…通信部