(57)【要約】【課題】ロボットの制御内容の変更を簡易にするロボット制御装置等を提供する。【解決手段】ロボット制御装置は、入力情報を受け付け、前記入力情報に対応する指令をロボットに出力する第一処理部と、前記指令を受けた前記ロボットの動作結果を示す第一情報を取得する第一取得部と、前記入力情報と前記入力情報に対応する前記ロボットの目標動作との目標関係に基づき、前記入力情報に対応する前記ロボットの目標動作を示す第二情報を取得する第二処理部と、前記第一情報と前記第二情報とを合わせるように前記第一処理部に設定される第一パラメータを変更するパラメータ決定部と、前記ロボットの動作に関する第二パラメータの変更を受け付け、前記第二パラメータの変更を反映することで、前記目標関係を変更する調整処理部とを備える。【選択図】図４
2020185620.tif 000002
【特許請求の範囲】
【請求項１】
入力情報を受け付け、前記入力情報に対応する指令をロボットに出力する第一処理部と、
前記指令を受けた前記ロボットの動作結果を示す第一情報を取得する第一取得部と、
前記入力情報と前記入力情報に対応する前記ロボットの目標動作との目標関係に基づき、前記入力情報に対応する前記ロボットの目標動作を示す第二情報を取得する第二処理部と、
前記第一情報と前記第二情報とを合わせるように前記第一処理部に設定される第一パラメータを変更するパラメータ決定部と、
前記ロボットの動作に関する第二パラメータの変更を受け付け、前記第二パラメータの変更を反映することで、前記目標関係を変更する調整処理部とを備える
ロボット制御装置。
【請求項２】
前記第二処理部は、前記第一情報を前記目標関係に適用することで、前記第二情報を取得する
請求項１に記載のロボット制御装置。
【請求項３】
前記パラメータ決定部は、ＦＲＩＴの手法を用いて前記第一パラメータを変更する
請求項１または２に記載のロボット制御装置。
【請求項４】
前記入力情報は、前記ロボットの操作装置を介して入力される操作入力情報である
請求項１〜３のいずれか一項に記載のロボット制御装置。
【請求項５】
前記入力情報は、前記ロボットの操作装置を介して入力される操作入力情報と前記第一情報との差分である
請求項１〜３のいずれか一項に記載のロボット制御装置。
【請求項６】
前記第一情報は、前記ロボットのアームに配置された力検出器による力の検出情報であり、
前記第二情報は、前記アームが発生する目標の力の情報である
請求項１〜５のいずれか一項に記載のロボット制御装置。
【請求項７】
前記第一パラメータは、前記ロボットのアームのインピーダンス特性を示す慣性パラメータ、粘性パラメータ及び剛性パラメータの少なくとも１つを含む
請求項１〜６のいずれか一項に記載のロボット制御装置。
【請求項８】
前記第二パラメータは、前記ロボットのアームの力及び動作速度の少なくとも１つを含む
請求項１〜７のいずれか一項に記載のロボット制御装置。
【請求項９】
請求項１〜８のいずれか一項に記載のロボット制御装置と、
前記ロボット制御装置の指令に従って動作するロボットと、
前記ロボットに対する操作の入力を受け付け且つ前記操作に対応する入力情報を前記ロボット制御装置に出力する入力装置と、
前記第二パラメータの変更を受け付け且つ変更された前記第二パラメータを前記ロボット制御装置に出力する調整器とを備える
ロボットシステム。
【請求項１０】
入力情報を受け付け、第一パラメータに基づき前記入力情報に対応する指令を決定しロボットに出力するステップと、
前記指令を受けた前記ロボットの動作結果を示す第一情報を取得するステップと、
前記ロボットの動作に関する第二パラメータの変更を受け付けるステップと、
前記入力情報と前記入力情報に対応する前記ロボットの目標動作との目標関係に、前記第二パラメータの変更を反映することで、前記目標関係を変更するステップと、
前記目標関係に基づき、前記入力情報に対応する前記ロボットの目標動作を示す第二情報を取得するステップと、
前記第一情報と前記第二情報とを合わせるように、前記第一パラメータを変更するステップとを含む
ロボット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御装置、ロボットシステム及びロボット制御方法に関する。
【背景技術】
【０００２】
従来、ロボットに部品等の組み立てを実行させる場合、部品等に加える力を制御する力制御が行われる。力制御では、ロボットが入力信号に対応した力を出力できるように、様々な演算が行われる。
【０００３】
例えば、特許文献１は、多関節のアームと、アームの先端に設けられ且つワークを把持するロボットハンドと、ロボットハンドの手先にかかる手先力を検知する力検知部とを有するロボットを開示している。特許文献１のロボットの制御部は、手先の手先負荷モデルの負荷値を用いてロボットの動作を制御する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−５６５２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
手先負荷モデルのようなロボットに設定されるモデルは、ロボット毎に異なる。さらに、このようなモデルは、ロボットハンドが把持するワークに応じて設定され得る。ロボットに設定されるモデルが変わると、制御部が用いる演算式及びパラメータ等の制御内容も変化する。このような制御内容の変更は複雑であるため、ロボットの設計者によれば実行可能であるが、ロボットの稼働場所においてロボットのオペレータ等によって実行することは難しい。
【０００６】
そこで、本発明は、ロボットの制御内容の変更を簡易にするロボット制御装置、ロボットシステム及びロボット制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の一態様に係るロボット制御装置は、入力情報を受け付け、前記入力情報に対応する指令をロボットに出力する第一処理部と、前記指令を受けた前記ロボットの動作結果を示す第一情報を取得する第一取得部と、前記入力情報と前記入力情報に対応する前記ロボットの目標動作との目標関係に基づき、前記入力情報に対応する前記ロボットの目標動作を示す第二情報を取得する第二処理部と、前記第一情報と前記第二情報とを合わせるように前記第一処理部に設定される第一パラメータを変更するパラメータ決定部と、前記ロボットの動作に関する第二パラメータの変更を受け付け、前記第二パラメータの変更を反映することで、前記目標関係を変更する調整処理部とを備える。
【０００８】
また、本発明の一態様に係るロボットシステムは、本発明の一態様に係るロボット制御装置と、前記ロボット制御装置の指令に従って動作するロボットと、前記ロボットに対する操作を受け付け且つ前記操作に対応する入力情報を前記ロボット制御装置に出力する入力装置とを備える。
【０００９】
また、本発明の一態様に係るロボット制御方法は、入力情報を受け付け、第一パラメータに基づき前記入力情報に対応する指令を決定しロボットに出力するステップと、前記指令を受けた前記ロボットの動作結果を示す第一情報を取得するステップと、前記ロボットの動作に関する第二パラメータの変更を受け付けるステップと、前記入力情報と前記入力情報に対応する前記ロボットの目標動作との目標関係に、前記第二パラメータの変更を反映することで、前記目標関係を変更するステップと、前記目標関係に基づき、前記入力情報に対応する前記ロボットの目標動作を示す第二情報を取得するステップと、前記第一情報と前記第二情報とを合わせるように、前記第一パラメータを変更するステップとを含む。
【発明の効果】
【００１０】
本発明によれば、ロボットの制御内容の変更を簡易にすることが可能となる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態に係るロボットシステムの構成の一例を示す図
【図２】図１のロボットを拡大した側面図
【図３】実施の形態に係る調整器の構成の一例を示す斜視図
【図４】実施の形態に係るコントローラの機能的構成及びその周辺の構成の一例を示すブロック図
【図５】実施の形態に係る目標出力データの一例を示す図
【図６】実施の形態に係る目標出力処理部が用いる目標入出力関係の一例を示す図
【図７】実施の形態に係る目標出力処理部の目標入出力関係の変更動作の一例を示すフローチャート
【図８】実施の形態に係る目標出力処理部が用いる目標入出力関係の変更例を示す図
【図９】実施の形態に係るロボットシステムのパラメータの調整動作の一例を示すフローチャート
【発明を実施するための形態】
【００１２】
以下において、本発明の実施の形態を、図面を参照しつつ説明する。なお、以下で説明する実施の形態は、いずれも包括的又は具体的な例を示すものである。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、添付の図面における各図は、模式的な図であり、必ずしも厳密に図示されたものでない。さらに、各図において、実質的に同一の構成要素に対しては同一の符号を付しており、重複する説明は省略又は簡略化される場合がある。また、本明細書及び特許請求の範囲では、「装置」とは、１つの装置を意味し得るだけでなく、複数の装置からなるシステムも意味し得る。
【００１３】
＜ロボットシステムの構成＞
実施の形態に係るロボットシステム１の構成を説明する。図１は、実施の形態に係るロボットシステム１の構成の一例を示す図である。図１に示すように、ロボットシステム１は、ロボット１０と、ロボット１０を操作するための入力装置２０と、ロボット１０を制御するコントローラ１００と、コントローラ１００に記憶された制御内容を変更するための調整器３０とを備える。ここで、コントローラ１００は、ロボット制御装置の一例である。
【００１４】
本実施の形態では、ロボットシステム１は、ロボット１０を用いて部品を組み立てる作業を行うシステムであるとして、以下の説明を行うが、ロボットシステム１が行う作業はこれに限定されない。上記のようなロボットシステム１のロボット１０は、例えば、被組み付け対象部品の穴に組み付け対象部品（以下、「ワーク」とも呼ぶ）を嵌入する動作を行う。このとき、ロボット１０は、ワークを押し込む力の制御である力制御を受ける。
【００１５】
入力装置２０は、オペレータによって入力された操作に対応する入力信号をコントローラ１００に出力し、コントローラ１００は入力信号に対応する出力信号をロボット１０に出力し、ロボット１０は出力信号に従って動作する。
【００１６】
なお、オペレータの操作による入力装置２０を介した信号の入力は、ロボット１０に当該操作に対応する動作をさせる度に行われ、ロボット１０がマニュアル操作されてもよい。又は、オペレータが、操作に対応する動作をロボット１０、具体的にはコントローラ１００に教示する、つまりティーチングすることで、ロボット１０に当該動作を自動で行わせてもよい。
【００１７】
＜ロボットの構成＞
ロボット１０の構成を説明する。図２は、図１のロボット１０を拡大した側面図である。図１及び図２に示すように、ロボット１０は、基台１１と、アーム１２と、アーム１２の先端に取り付けられるロボットハンド（「マニピュレータ」とも呼ばれる）１３とを備える。ロボットハンド１３は、組み付け対象部品であるワークＷを把持することができるように構成されている。アーム１２及びロボットハンド１３は、コントローラ１００の制御に従って動作し、例えば、ロボットハンド１３で把持したワークＷを被組み付け対象部品Ｔに組み付ける。また、ロボット１０は、アーム１２の先端部に、具体的には、アーム１２とロボットハンド１３との接続部分に、力検出器４０を備える。
【００１８】
力検出器４０は、アーム１２及びロボットハンド１３が受ける反力を検出し、コントローラ１００に出力する。力検出器４０は、後述するアーム１２の第六リンク１２ｆの軸方向、つまりワークＷの嵌入方向である１軸方向の反力を検出してもよく、直交する３軸方向の反力を検出してもよい。力検出器４０は、３軸方向の反力と当該３軸周りのモーメントとを含む６軸の力成分を検出してもよい。力検出器４０は、上記反力及び／又はモーメントを検出することができれば既知のいかなる検出器であってもよく、例えば、力覚センサであってもよい。また、本実施の形態では、ロボット１０は、以下に説明するように垂直多関節型ロボットとして構成されるが、これに限定されない。
【００１９】
アーム１２の基部は、基台１１に取り付けられ、鉛直方向の軸周りに回動することができる。アーム１２は、第一リンク１２ａ〜第六リンク１２ｆと、第一リンク１２ａ〜第六リンク１２ｆを順次接続する関節ＪＴ１〜ＪＴ６と、関節ＪＴ１〜ＪＴ６それぞれを駆動、具体的には回転駆動する駆動装置Ｍ１〜Ｍ６とを備えている。第一リンク１２ａは基台１１に取り付けられ、ロボットハンド１３は、第六リンク１２ｆの先端部に取り付けられている。駆動装置Ｍ１〜Ｍ６の動作は、コントローラ１００によって制御される。駆動装置Ｍ１〜Ｍ６の例は、サーボモータ等の電気モータである。
【００２０】
＜入力装置の構成＞
入力装置２０の構成を説明する。図１に示すように、入力装置２０は、オペレータ等の操作を介して入力される指令に基づきロボット１０を操作する装置である。例えば、入力装置２０は、ロボット１０を遠隔操作するためにロボット１０から所定の距離だけ離して配置されてもよい。
【００２１】
入力装置２０の具体的な構成は特に限定されないが、入力装置２０はオペレータ等による入力を受け付けるように構成される。このような入力装置２０は、ハンドル、レバー、ペダル、ボタン、タッチパネル、マイク及びカメラ等の装置を備えてもよい。入力装置２０は、上記装置を介して入力された操作の指令値を示す信号をコントローラ１００に出力する。入力装置２０は、コントローラ１００と有線通信を介して接続されてもよく、無線通信を介して接続されてもよい。有線通信及び無線通信の形式はいかなる形式であってもよい。
【００２２】
入力装置２０は、オペレータによって入力される手動操作の各操作の指令値を示す信号をコントローラ１００に出力してもよい。入力装置２０は、オペレータによって入力される自動操作の操作内容の指令値を示す信号をコントローラ１００に出力してもよい。入力装置２０は操作装置の一例である。
【００２３】
本実施の形態では、入力装置２０が出力する信号は、ロボットハンド１３の変位量、変位方向及び変位速度、並びに、ロボットハンド１３が把持しているワークＷに加える力の大きさ及び方向等の情報を含むが、これに限定されない。
【００２４】
なお、入力装置２０は、操作の指令値として、ハンドル又はレバーの変位、方向、速度及び操作力等を受け付けてもよく、ボタンの押し下げを受け付けてもよく、タッチパネルの画面への接触、接触軌跡及び接触圧等を受け付けてもよく、スピーカによって集音される音声信号を受け付けてよく、カメラによって撮像されたオペレータの画像の解析結果を受け付けてもよい。操作力は、オペレータ等によってハンドル又はレバーに加えられる力である。接触圧は、タッチパネルへの指等の押し付け力である。オペレータの画像の解析結果は、オペレータのジェスチャ等が示す指令を含む。
【００２５】
＜調整器の構成＞
調整器３０の構成を説明する。図３は、実施の形態に係る調整器３０の構成の一例を示す斜視図である。図１及び図３に示すように、調整器３０は、コントローラ１００が保持する目標出力データに変更を加える装置である。調整器３０は、入力装置２０と同様に、コントローラ１００と有線通信又は無線通信を介して接続されている。調整器３０は、ロボット１０の動作に関するパラメータ、具体的にはパラメータの値を変更するための調整デバイスを含む。本実施の形態では、ロボット１０の動作に関するパラメータは、ロボットハンド１３がワークＷに加える力と、ロボットハンド１３の動作の速さとを含む。つまり、当該パラメータは、アーム１２がワークＷに加える力と、アーム１２の先端部の動作の速さとを含む。ロボット１０の動作に関するパラメータは、上記に限定されず、ロボットハンド１３及びアーム１２の先端部分の動作方向等を含んでもよい。ロボット１０の動作に関するパラメータは、オペレータ等がロボット１０の動作を直感的にイメージすることを可能にするようなロボット１０の動作と関連が深いパラメータであってもよい。
【００２６】
調整器３０は、力の強さを変更する力調整デバイス３１と、速さを変更する速さ調整デバイス３２と、開始ボタン３３と、決定ボタン３４とを備える。力調整デバイス３１及び速さ調整デバイス３２はそれぞれ、オペレータ等の操作による力の強さ及び速さの変更のための入力を受け付け、入力に対応する信号をコントローラ１００に出力する。開始ボタン３３は、力調整デバイス３１及び速さ調整デバイス３２への入力の受け付けを開始するデバイスであり、例えば、押されることで受け付けを開始する。決定ボタン３４は、力調整デバイス３１及び速さ調整デバイス３２への入力を決定するデバイスであり、例えば、押されることで、力調整デバイス３１及び速さ調整デバイス３２に、入力に対応する信号をコントローラ１００に出力させる。
【００２７】
調整デバイス３１及び３２は、物理的なデバイスであってもよく、画面上の画像であってもよい。本実施の形態では、調整デバイス３１及び３２は、ダイヤル等の回転式の物理的なデバイスである。物理的なデバイスの他の例は、レバーなどのスライド式のデバイス、及び、複数のボタンから選択される選択式のデバイス等である。画面上の画像の例は、バー、ボタン、並びに、数字などの入力欄等の画像である。また、図３に示すように、調整器３０は、力調整デバイス３１及び速さ調整デバイス３２が示す力の強さ及び速さの値を示す画面等の表示部３１ａ及び３２ａを備えてもよい。
【００２８】
本実施の形態では、調整器３０は、１つの装置を構成しているが、他の装置に組み込まれていてもよい。例えば、調整器３０は、入力装置２０、ティーチング用の端末装置、スマートフォン及びタブレットなどのスマートデバイス、並びに、その他の端末装置等に組み込まれてもよい。この場合も、調整デバイス３１及び３２、開始ボタン３３、決定ボタン３４、並びに表示部３１ａ及び３２ａは、物理的なデバイスであってもよく、画面上の画像であってもよい。後者の場合、調整器３０の機能は、調整器３０が組み込まれた装置の画面及び制御装置等で実現されてもよい。
【００２９】
＜コントローラの構成＞
コントローラ１００の構成を説明する。なお、以下において、コントローラ１００の力制御に関連する構成の説明を中心に行い、力制御に関連がない又は関連が低い構成は既知の技術であるため、その説明を省略する場合がある。
【００３０】
図４は、実施の形態に係るコントローラ１００の機能的構成及びその周辺の構成の一例を示すブロック図である。図４に示すように、コントローラ１００は、実機処理部１１０と、目標出力処理部１２０と、最適化処理部１３０とを機能的な構成要素として含む。実機処理部１１０は、入力処理部１１１と、演算部１１２と、フィードバック出力部１１３と、記憶部１１４とを機能的な構成要素として含む。目標出力処理部１２０は、入力処理部１２１と、演算部１２２と、調整処理部１２３と、記憶部１２４とを機能的な構成要素として含む。
【００３１】
記憶部１１４及び１２４は、種々の情報の格納することができ、且つ、格納した情報の読み出しを可能にする。記憶部１１４及び１２４は、揮発性メモリ及び不揮発性メモリなどの半導体メモリ、ハードディスク及びＳＳＤ（Solid State Drive）等の記憶装置によって実現される。記憶部１１４は、実機処理部１１０の演算部１１２が使用するパラメータ１１４ａ（具体的には、当該パラメータの設定値）等を格納する。記憶部１２４は、目標出力処理部１２０の演算部１２２及び最適化処理部１３０が使用する目標出力データ１２４ａ及び目標入出力関係１２４ｂ等を格納する。記憶部１１４及び１２４は各構成要素が実行するプログラムを格納してもよい。
【００３２】
実機処理部１１０の入力処理部１１１、演算部１１２及びフィードバック出力部１１３、目標出力処理部１２０の入力処理部１２１、演算部１２２及び調整処理部１２３、並びに、最適化処理部１３０の各構成要素の機能は、ＣＰＵ（Central Processing Unit）などのプロセッサ、ＲＡＭ（Random Access Memory）などの揮発性メモリ及びＲＯＭ（Read-Only Memory）などの不揮発性メモリ等からなるコンピュータシステム（図示せず）により実現されてもよい。上記構成要素の一部又は全部の機能は、ＣＰＵがＲＡＭをワークエリアとして用いてＲＯＭに記録されたプログラムを実行することによって実現されてもよい。
【００３３】
なお、上記構成要素の一部又は全部の機能は、上記コンピュータシステムによって実現されてもよく、電子回路又は集積回路等の専用のハードウェア回路によって実現されてもよく、上記コンピュータシステム及びハードウェア回路の組み合わせにより実現されてもよい。プログラムは、アプリケーションとして、インターネット等の通信網を介した通信、モバイル通信規格による通信、その他の無線ネットワーク、有線ネットワーク、又は放送等で提供されるものであってもよい。
【００３４】
また、各構成要素の機能は、ＬＳＩ（Large Scale Integration：大規模集積回路）、システムＬＳＩ等の回路によって実現されてもよい。複数の構成要素の機能は、個別に１チップ化されてもよく、一部又は全てを含むように１チップ化されてもよい。また、回路は、それぞれ、汎用的な回路でもよく、専用の回路でもよい。ＬＳＩとして、ＬＳＩ製造後にプログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）、ＬＳＩ内部の回路セルの接続及び／又は設定を再構成可能なリコンフィギュラブルプロセッサ、又は、特定用途向けに複数の機能の回路が１つにまとめられたＡＳＩＣ（Application Specific Integrated Circuit）等が利用されてもよい。
【００３５】
［実機処理部］
実機処理部１１０は、入力装置２０からの入力情報を受け付け、入力情報に対応する指令をロボット１０に出力する。ここで、実機処理部１１０は第一処理部の一例である。
【００３６】
実機処理部１１０の入力処理部１１１は、入力装置２０から受け取る信号に含まれる指令値と、フィードバック出力部１１３から受け取るフィードバック信号に含まれる情報とを用いて、演算部１１２に出力する情報を決定し、演算部１１２に出力する。入力処理部１１１の出力情報は、ロボットハンド１３の変位量、変位方向及び変位速度等を含むロボットハンド１３の変位情報と、ロボットハンド１３が把持しているワークＷに加える力の値及び力の方向等を含むロボットハンド１３の力情報とを含んでもよい。
【００３７】
例えば、入力処理部１１１は、入力装置２０の信号に含まれるロボットハンド１３の力の指令値からフィードバック信号に含まれるロボットハンド１３の力の検出値を差し引いた力の差分値を算出し、当該力の差分値及びその方向を力情報として演算部１１２に出力する。入力処理部１１１は、力の付与方向での力の差分値を算出してもよく、例えば、鉛直方向と直交する２つの水平方向との直交する３軸方向に分解した力成分の差分値を算出してもよい。又は、入力処理部１１１は、３軸方向の力成分及び当該３軸周りのモーメントの差分値を含む６軸の差分値を算出してもよい。
【００３８】
フィードバック出力部１１３は、力検出器４０から力の検出値を示す信号を取得し、当該検出値を示す信号を、フィードバック信号として、入力処理部１１１に出力する。フィードバック信号に含まれる検出値は、現在ロボットハンド１３がワークＷに加えている力の値を示す。よって、入力処理部１１１が出力する力の差分値及びその方向は、現状から変化させる力の値及び方向を示す。
【００３９】
演算部１１２は、入力処理部１１１から受け取る情報と、記憶部１１４に格納されるパラメータ１１４ａ（具体的には、当該パラメータの設定値）とを用いて、上記差分値及び方向の力をロボットハンド１３に発生させるためのロボットハンド１３の位置及び姿勢の指令値を含む位置指令値を生成する。例えば、演算部１１２は、入力処理部１１１から、ロボットハンド１３の変位情報及び力情報を受け取って用いてもよい。演算部１１２は、ロボットハンド１３の変位量、変位方向、変位速度、変向量、変向方向及び変向速度等を算出し、これらの指令値を位置指令値として生成してもよい。さらに、演算部１１２は、位置指令値に従ってアーム１２を動作させるための駆動装置Ｍ１〜Ｍ６の駆動量を算出し、当該駆動量に対応する駆動信号を駆動装置Ｍ１〜Ｍ６に出力する。
【００４０】
なお、演算部１１２は、駆動装置Ｍ１〜Ｍ６の駆動量からアーム１２の各リンク１２ａ〜１２ｆの位置及び姿勢を検出し、検出結果に基づきロボットハンド１３の現状の位置及び姿勢を検出してもよい。演算部１１２は、ロボットハンド１３の現状の位置及び姿勢の情報を、ロボットハンド１３の位置指令値の生成に用いてもよい。
【００４１】
また、本実施の形態では、パラメータ１１４ａは、アーム１２及びロボットハンド１３のインピーダンス特性を示すパラメータである力制御パラメータを含む。例えば、力制御パラメータは、アーム１２及びロボットハンド１３の慣性パラメータと、アーム１２及びロボットハンド１３の粘性パラメータとを含む。力制御パラメータは、アーム１２及びロボットハンド１３の剛性パラメータを含んでもよい。慣性パラメータは、アーム１２及びロボットハンド１３の慣性モーメント等の慣性力に関連する。粘性パラメータは、アーム１２及びロボットハンド１３の粘性摩擦係数等の摩擦力に関連する。剛性パラメータは、アーム１２及びロボットハンド１３のばね特性に関連する。
【００４２】
また、演算部１１２は、駆動装置Ｍ１〜Ｍ６の駆動量を算出するために、ロボット１０のモデル及びロボットハンド１３の把持対象のワークのモデル等の制御対象の運動学モデルを使用しない。後述するように、最適化処理部１３０によって最適なパラメータ１１４ａ（具体的には、当該パラメータの設定値）が決定されるため、演算部１１２における演算処理は、制御対象の運動学モデルを必要としない。例えば、目標出力処理部１２０及び最適化処理部１３０を備えない従来のコントローラは、駆動装置Ｍ１〜Ｍ６の駆動量を算出するために、ロボット１０及びワークの運動学モデルを必要とする。
【００４３】
［目標出力処理部］
目標出力処理部１２０は、入力装置２０からの入力情報に対応する目標の出力データを出力する。目標出力処理部１２０の入力処理部１２１は、実機処理部１１０からの指令を受けたロボット１０の動作結果を示す第一情報を取得し、演算部１２２への入力情報である参照入力情報を生成する。具体的には、入力処理部１２１は、ロボットハンド１３に関する検出結果を用いて、参照入力情報を生成する。入力処理部１２１は、当該検出結果として、ロボットハンド１３の位置データ及び力データを用いる。ここで、入力処理部１２１は第一取得部の一例であり、ロボットハンド１３に関する検出結果は第一情報の一例である。
【００４４】
本実施の形態では、入力処理部１２１は、実機処理部１１０の演算部１１２が生成するロボットハンド１３の位置指令値を含む位置データを取得し用いる。なお、入力処理部１２１は、演算部１１２が駆動装置Ｍ１〜Ｍ６の駆動量から検出するロボットハンド１３の位置データを用いてもよい。
【００４５】
また、入力処理部１２１は、力検出器４０によって検出される力の値を含む力データを取得し用いる。力データは、力の値と当該力の方向とを含む。なお、入力処理部１２１は、ロボットハンド１３の位置データに含まれる変位方向を用いて、力の方向を算出し取得してもよい。さらに、入力処理部１２１は、力検出器４０によって検出される力を直交する３軸方向に分解して取得してもよい。又は、入力処理部１２１は、３軸方向の力成分と当該３軸周りのモーメントとを含む６軸の成分を取得してもよい。
【００４６】
上述のように、入力処理部１２１は、ロボットハンド１３の位置及び力の計測データ又は当該計測データに相当するデータを用いて、参照入力情報を生成する。例えば、入力処理部１２１は、ロボットハンド１３の位置データxdnと、ロボットハンド１３の力データfsnとを用いて、下記の式１に示すような参照入力データfmrefを参照入力情報として生成する。なお、式１における「pn」は、実機処理部１１０に設定されているパラメータ１１４ａ（具体的には、当該パラメータの設定値）を示し、「Gpn」は、パラメータが「pn」の場合に実機処理部１１０の演算部１１２が演算処理に用いる関数であり、例えば、伝達関数等を用いて表され得る。位置データxdn及び力データfsnは、パラメータが同一の「pn」である場合に得られるデータであり、例えば、以下の式のようにベクトル等を用いて表され得る。
【００４７】
【数１】
2020185620.tif 000003
【００４８】
上述のような参照入力データfmrefは、入力装置２０が実機処理部１１０の入力処理部１１１に出力する情報に対応し当該情報と等価である。
【００４９】
演算部１２２は、入力情報と入力情報に対応するロボット１０の目標動作との目標関係に基づき、入力情報に対応するロボット１０の目標動作を示す目標出力データを取得する。目標出力データは第二の情報の一例である。
【００５０】
具体的には、演算部１２２は、入力処理部１２１から受け取った参照入力データfmrefを入力情報として用いる。演算部１２２は、記憶部１２４に格納される目標入出力関係１２４ｂを、入力情報と入力情報に対応するロボット１０の目標動作との目標関係として用いる。演算部１２２は、参照入力データfmrefと目標入出力関係１２４ｂとを用いて、参照入力データfmrefに対応する目標出力データを算出する。演算部１２２は、目標出力データを最適化処理部１３０及び記憶部１２４に出力する。
【００５１】
目標出力データは、時系列データである参照入力データfmrefに対する目標とされる出力データであり、本実施の形態では、ロボットハンド１３がワークＷに加える力の時系列データである。なお、力の時系列データとは、力が加えられる時間と、加えられる力の大きさとを関連付けて含むデータである。
【００５２】
例えば、図５は、実施の形態に係る目標出力データの一例を示す図である。図５に示すように、実線曲線ＴＤで示されている目標出力データは、ロボットハンド１３がワークＷに力を加える時間（経過時間、単位：秒）と、ロボットハンド１３の出力とを関連付けて含み、出力の時系列変化を示す。これに限定されないが、本実施の形態では、出力は、ロボットハンド１３が加える力の大きさ（強さ）に対応する。図５の目標出力データは、１つの方向の力に対応する。例えば、目標出力データは、ロボットハンド１３が加える力を直交する３軸方向の成分に分解した力のそれぞれについて、生成されてもよく、３軸方向の力及び当該３軸周りのモーメントのそれぞれについて、生成されてもよい。図５の目標出力データは、鉛直方向の成分の力に対応し、正の値の力は鉛直下向きの力に対応する。このような目標出力データは、ロボットハンド１３が加える力の大きさと、ロボットハンド１３の動作の速さとを示す。
【００５３】
また、目標入出力関係１２４ｂは、ロボットシステム１の設計者等によって予め決定され記憶部１２４に格納される。例えば、目標入出力関係１２４ｂは、伝達関数等の関数を保持していてもよい。例えば、演算部１２２は、参照入力データfmrefと、目標入出力関係１２４ｂの一例である伝達関数「M」とを用いて、下記の式２に示すような目標出力データfsrefを生成する。目標出力データfsrefは、参照入力データfmrefを伝達関数「M」への入力とした場合の出力データであり、「参照出力データ」とも呼ぶ。
【００５４】
【数２】
2020185620.tif 000004
【００５５】
また、伝達関数「M」の一例として、下記の式３に示すような二次遅れ系の伝達関数を用いることができる。なお、「ζ」は減衰係数であり、「ωn」は固有角周波数であり、「s」は複素数である。
【００５６】
【数３】
2020185620.tif 000005
【００５７】
調整処理部１２３は、ロボット１０の動作に関する第二パラメータ（具体的には、当該パラメータの設定値）の変更を受け付け、第二パラメータの変更を反映することで、入力情報と入力情報に対応するロボット１０の目標動作との目標関係を変更する。具体的には、調整処理部１２３は、調整器３０から受け付ける信号に従って、第二パラメータとして、ロボット１０の動作に関するパラメータの変更を受け付ける。ロボット１０の動作に関するパラメータは、ロボットハンド１３がワークＷに加える力の大きさと、ロボットハンド１３の動作の速さとを含む。
【００５８】
調整処理部１２３は、力の変更及び速さの変更を、記憶部１２４に記憶される目標入出力関係１２４ｂに反映することで、目標入出力関係１２４ｂを目標入出力関係１２４ｂ＊に変更する。調整処理部１２３は、変更後の目標入出力関係１２４ｂ＊で置き換えることで、記憶部１１４に記憶される目標入出力関係１２４ｂを更新してもよい。調整処理部１２３の処理の詳細は後述する。
【００５９】
［最適化処理部］
最適化処理部１３０は、力検出器４０の力の検出値を含む力データを取得し、目標出力処理部１２０の演算部１２２から、当該力データを用いて生成された目標出力データを取得する。つまり、最適化処理部１３０は、互いに対応する力データ及び目標出力データを取得する。
【００６０】
最適化処理部１３０は、力データと目標出力データとを合わせるように実機処理部１１０の記憶部１１４に記憶されるパラメータ１１４ａつまりパラメータpnを変更する。具体的には、最適化処理部１３０は、力データを目標出力データに一致させるように、既存のパラメータpnをパラメータpn+1に変更する。最適化処理部１３０は、変更後のパラメータpn+1をロボット１０の新たなパラメータに決定し、記憶部１１４に記憶されるパラメータpnをパラメータpn+1で置き換える、つまり更新する。ここで、最適化処理部１３０はパラメータ決定部の一例であり、パラメータ１１４ａは第一パラメータの一例である。
【００６１】
例えば、最適化処理部１３０は、下記の式４に示すような評価関数Jを用い、評価関数Jを最小化するパラメータpn+1を算出し、パラメータpn+1を新たなパラメータに決定する。式４に示す評価関数Jは、目標出力データfsrefとロボットハンド１３の力データfsnとの誤差e（e＝fsref−fsn）の２乗和をデータの総数Nで正規化したものである。「N」は、力データ及び目標出力データの組の総数であり、Nは１以上のいかなる数値であってもよい。「t」は、力データ及び目標出力データの組の計測順序等の順番を示すインデックスである。
【００６２】
【数４】
2020185620.tif 000006
【００６３】
なお、評価関数は、下記の式５に示すように、誤差eの和を正規化したものであってもよく、下記の式６に示すように、誤差eの絶対値の和を正規化したものであってもよい。又は、評価関数は、誤差eを３乗以上した値の和を正規化したものであってもよい。また、評価関数は正規化されていなくてもよい。
【００６４】
【数５】
2020185620.tif 000007
【００６５】
【数６】
2020185620.tif 000008
【００６６】
最適化処理部１３０によって更新されたパラメータpn+1を保持する実機処理部１１０に対して、参照入力データfmrefを入力すると、実機処理部１１０は、参照入力データfmrefに対応する目標出力データfsrefと同じ出力データを出力することができる。よって、目標出力処理部１２０及び最適化処理部１３０は、入力装置２０の指令値に対して目標とする出力データが得られるように、計測データを用いてロボット１０のパラメータを最適化する。
【００６７】
本実施の形態での目標出力処理部１２０及び最適化処理部１３０の上述の処理は、ＦＲＩＴ（Friction Reference Iterative Tuning）と呼ばれるデータ駆動型調整手法の１つを用いた処理である。データ駆動型調整手法は、計測データを直接用いて、実機の入出力関係と目標の入出力関係とが同じになるようにパラメータを最適化する手法である。なお、目標出力処理部１２０及び最適化処理部１３０は、ＦＲＩＴ以外のデータ駆動型調整手法を用いても、上記と同様にパラメータを最適化することができる。このようなデータ駆動制御手法として、ＶＲＦＴ（Virtual Reference Feedback Tuning）及びＩＦＴ（Iterative Feedback Tuning）等を用いることができる。
【００６８】
＜調整処理部の処理例＞
調整処理部１２３の詳細な処理の例を説明する。以下において、目標入出力関係１２４ｂは、式３と同じ下記の式７に示すような二次遅れ系の伝達関数を保持しているとして説明する。式７は、伝達関数の基本式である。調整処理部１２３は、調整器３０によって設定される力の強さ及び動作の速さを用いて減衰係数ζ及び固有角周波数ωnを決定することで、伝達関数を決定する。
【００６９】
【数７】
2020185620.tif 000009
【００７０】
さらに、図６に示すように、二次遅れ系のステップ応答では、出力の最大行き過ぎ量Mp及び出力の振動の整定時間tsが定義される。図６は、実施の形態に係る目標出力処理部１２０が用いる目標入出力関係の一例を示す図である。図６において、横軸は経過時間を示し、縦軸は出力を示す。本例では、出力は、力の目標値に対する力の強さの割合である。力の強さが目標値である場合、出力値は「１」である。最大行き過ぎ量Mpは、出力のピーク値と目標値での出力値との差である。整定時間ts（単位：秒）は、目標値での出力値に対する整定許容幅Δ以内の値に出力が収束するまでの時間である。ステップ応答は、入力がステップ状に変化するときの出力の応答である。出力は、減衰振動しながら目標値での出力値に収束する。
【００７１】
以下において、式７の伝達関数を用いた調整処理部１２３の処理動作を図６及び図７を参照しつつ説明する。図７は、実施の形態に係る目標出力処理部１２０の目標入出力関係の変更動作の一例を示すフローチャートである。図７は、調整処理部１２３が、調整器３０の操作に基づき、式７に示すような二次遅れ系の伝達関数を決定する処理を示す。
【００７２】
まず、オペレータ等によって調整器３０の力調整デバイス３１及び速さ調整デバイス３２への入力が行われる（ステップＳ１０１）。例えば、オペレータは、調整器３０の開始ボタン３３を押圧後、力調整デバイス３１及び速さ調整デバイス３２を操作する。力調整デバイス３１及び速さ調整デバイス３２が示す値の決定後、オペレータは、決定ボタン３４を押圧する。これにより、調整器３０は、力調整デバイス３１及び速さ調整デバイス３２が示す決定値の信号をコントローラ１００に出力する。
【００７３】
本例では、力調整デバイス３１は、力の強さPfに設定され、速さ調整デバイス３２は、動作の速さPsに設定される。強さPfは、力の目標値である。強さPfは、予め設定された力の強さの基準値に対する割合を示し、０〜１００％の値をとることができる。強さPf＝１００％は基準値に対応する。速さPsは、速さの目標値である。速さPsは、予め設定された動作の速さの基準値に対する割合を示し、０〜１００％の値をとることができる。速さPs＝１００％は基準値に対応する。なお、基準値は、１００％に限定されず、例えば５０％であってもよい。
【００７４】
次いで、コントローラ１００の調整処理部１２３は、調整器３０から、力の強さ及び動作の速さの決定値である強さPf及び速さPsの値を受信する（ステップＳ１０２）。
【００７５】
次いで、調整処理部１２３は、強さPfを用いて、出力の最大行き過ぎ量Mpを取得する（ステップＳ１０３）。出力は、力の目標値である強さPfに対する力の強さの割合である。最大行き過ぎ量Mpの最大値Mp_max及び最小値Mp_minは、予め設定され、記憶部１２４の目標入出力関係１２４ｂに保持されている。さらに、本例では、最大値Mp_max及び最小値Mp_minは、０超１未満の範囲内で設定される。つまり、０＜Mp_min＜Mp_max＜１である。
【００７６】
調整処理部１２３は、最大値Mp_max及び最小値Mp_minと、強さPfと、下記の式８とを用いて、最大行き過ぎ量Mpを算出する。なお、式８において、強さPf＝１００％の場合のMpは最大値Mp_maxに対応し、強さPf＝０％の場合のMpは最小値Mp_minに対応する。また、式８は、記憶部１２４の目標入出力関係１２４ｂに予め保持されている。
【００７７】
【数８】
2020185620.tif 000010
【００７８】
次いで、調整処理部１２３は、速さPsを用いて、出力の振動の整定時間ts（単位：秒）を取得する（ステップＳ１０４）。整定時間tsの最大値ts_max及び最小値ts_minは、予め設定され、記憶部１２４の目標入出力関係１２４ｂに保持されている。調整処理部１２３は、最大値ts_max及び最小値ts_minと、速さPsと、下記の式９とを用いて、整定時間tsを算出する。なお、式９において、速さPs＝１００％の場合のtsは最大値ts_maxに対応し、速さPs＝０％の場合のtsは最小値ts_minに対応する。また、式９は、記憶部１２４の目標入出力関係１２４ｂに予め保持されている。
【００７９】
【数９】
2020185620.tif 000011
【００８０】
次いで、調整処理部１２３は、最大行き過ぎ量Mpを用いて、伝達関数の減衰係数ζを取得する（ステップＳ１０５）。０＜Mp_min＜Mp_max＜１であるため、減衰係数ζ＜１となる。これにより、図６に示すように、出力が目標値に対応する「１」を超えるオーバーシュートが発生する。よって、最大行き過ぎ量Mpは、下記の式１０のように表される。さらに、式１０を減衰係数ζについて解くと、減衰係数ζは下記の式１１のように表される。調整処理部１２３は、最大行き過ぎ量Mpと式１１とを用いて、減衰係数ζを算出する。
【００８１】
【数１０】
2020185620.tif 000012
【００８２】
【数１１】
2020185620.tif 000013
【００８３】
次いで、調整処理部１２３は、整定時間tsを用いて、伝達関数の固有角周波数ωnを取得する（ステップＳ１０６）。整定時間tsは、減衰係数ζと、固有角周波数ωnと、整定許容幅Δとを用いて、下記の式１２のように表される。整定許容幅Δは、図６に示すような出力の振動が整定、つまり収束したとみなすことができる出力の振動幅である。出力の振動幅が整定許容幅Δ以下の場合、振動が整定したとみなされ得る。整定許容幅Δは、図６のように目標値に対応する「１」が中心となるように設定されてもよく、目標値に対応する「１」が中心からずれていてもよい。
【００８４】
【数１２】
2020185620.tif 000014
【００８５】
整定許容幅Δは、例えば、０．０２〜０．０５の範囲内の値、つまり、強さPfと同じ単位を用いて、目標値から２〜５％の範囲内の値とすることができる。例えば、整定許容幅Δ＝０．０５の場合、式１２で表される整定時間tsは、下記の式１３のように近似することができる。また、整定許容幅Δ＝０．０２の場合、整定時間tsは、下記の式１４のように近似することができる。
【００８６】
【数１３】
2020185620.tif 000015
【００８７】
【数１４】
2020185620.tif 000016
【００８８】
本例では、整定許容幅Δ＝０．０２とする。この場合、式１４を固有角周波数ωnについて解くと、固有角周波数ωnは下記の式１５のように表される。調整処理部１２３は、整定時間tsと式１５とを用いて、固有角周波数ωnを算出する。
【００８９】
【数１５】
2020185620.tif 000017
【００９０】
次いで、調整処理部１２３は、ステップＳ１０５で取得した減衰係数ζと、ステップＳ１０６で取得した固有角周波数ωnとを、式７の二次遅れ系の伝達関数の基本式に代入することで、強さPf及び速さPsに対応する伝達関数を決定する（ステップＳ１０７）。調整処理部１２３は、減衰係数ζ及び固有角周波数ωnを用いて伝達関数、つまり目標入出力関係を取得する。
【００９１】
次いで、調整処理部１２３は、ステップＳ１０７で取得した伝達関数を記憶部１２４に記憶させ、目標入出力関係１２４ｂに保持させる（ステップＳ１０８）。なお、調整処理部１２３は、記憶部１２４に既に記憶されている伝達関数を残存させてもよく、ステップＳ１０７で取得した伝達関数で置き換えることで更新してもよい。
【００９２】
例えば、図８は、実施の形態に係る目標出力処理部１２０が用いる目標入出力関係の変更例を、図６と同様に示す図である。図８は、強さPf＝２０％且つ速さPs＝８０％のケース１（実線曲線ＴＤ１）と、強さPf＝５０％且つ速さPs＝３０％のケース２（破線曲線ＴＤ２）とを示す。図８は、ケース１及び２についての目標入出力関係のステップ応答を示し縦軸の出力は力に対応する。例えば、強さPfが大きいほど、入力装置２０のオペレータはロボットハンド１３が把持するワークＷが被組み付け対象部品Ｔ（図１参照）に接触したことを知覚しやすいが、接触時のロボット１０が振動的になる可能性がある。速さPsが大きいほど、力の振動は早く収束するが、目標の動作にロボット１０の動作が追従できなくなりロボット１０が振動的になる、又は、ロボット１０の動作に対する力検出器４０の検出精度が低下する可能性がある。
【００９３】
また、調整器３０で決定された力の強さPf及び動作の速さPsを目標入出力関係１２４ｂへ反映する手法は上記手法に限定されず、いかなる手法であってもよい。例えば、力の強さPfに応じて、図６の曲線ＴＤを振幅方向である出力軸方向に拡張又は収縮させてもよく、動作の速さPsに応じて、図６の曲線ＴＤを時間軸方向に拡張又は収縮させてもよい。なお、上述のような目標入出力関係において、出力には、力の目標値に対する力の強さの割合等の力の強さに対応する出力に限定されず、様々な出力が適用可能である。
【００９４】
＜ロボットシステムの動作＞
実施の形態に係るロボットシステム１の動作の一例を説明する。図９は、実施の形態に係るロボットシステム１のパラメータの調整動作の一例を示すフローチャートである。図９は、まず、入力装置２０を用いてロボット１０に動作させた後、調整器３０を用いて力の強さ及び動作の速さを変更するケースを示す。
【００９５】
図９に示すように、まず、ロボットシステム１のオペレータ等は、ロボット１０に所定の動作をさせるように、入力装置２０に操作を入力する（ステップＳ２０１）。これにより、入力装置２０は、当該操作に対応する入力情報をコントローラ１００に出力する。なお、所定の動作は、目的とする作業を実行する動作であり、本例では、ワークＷを被組み付け対象部品Ｔの穴に嵌入する動作であり、力制御を伴う。本例では、オペレータ等は、入力装置２０をマニュアル操作することでロボット１０の一連の動作のうちの個々の動作を操作し、ロボットハンド１３がワークＷを押し込む力を調整しつつ、ロボット１９に動作をさせる。しかしながら、オペレータ等は、所定の力でワークＷを被組み付け対象部品Ｔの穴に嵌入する一連の動作全体の実行を示す指令を入力装置２０に入力することで、ロボット１９に動作をさせてもよい。
【００９６】
次いで、コントローラ１００の実機処理部１１０は、入力装置２０から入力情報を受け付け、記憶部１１４に記憶されているパラメータ１１４ａに基づき、当該入力情報に対応する指令をロボット１０に出力する（ステップＳ２０２）。具体的には、パラメータ１１４ａは、実機処理部１１０に現時点で設定されているパラメータの設定値であり、例えば、初期設定値であってもよい。実機処理部１１０は、当該パラメータ１１４ａの設定値に基づき、所定の動作を行わせるためのロボットハンド１３の位置指令値を生成し、当該位置指令値に対応する駆動装置Ｍ１〜Ｍ６の駆動量の指令を、アーム１２の駆動装置Ｍ１〜Ｍ６に出力する。
【００９７】
次いで、コントローラ１００の目標出力処理部１２０は、ステップＳ２０２での指令に従って動作したロボット１０のロボットハンド１３が発生している力の情報である力データと、ロボットハンド１３の位置の情報である位置データとを取得する（ステップＳ２０３）。目標出力処理部１２０は、実機処理部１１０によって生成されるロボットハンド１３の位置指令値を、位置データとして取得する。目標出力処理部１２０は、力検出器４０によって検出される力の検出値と、ロボットハンド１３の位置指令値に基づく変位方向とを、力データとして取得する。
【００９８】
次いで、オペレータ等は、ステップＳ２０２での指令に従ったロボット１０の動作を確認し、確認結果に基づき、ロボット１０に設定されている力の強さ及び動作の速さのパラメータの値を変更するか否かを判定する（ステップＳ２０４）。オペレータ等は、変更する場合（ステップＳ２０４でＹｅｓ）、ステップＳ２０５に進み、変更しない場合（ステップＳ２０４でＮｏ）、パラメータ調整の一連の動作を終了する。
【００９９】
ステップＳ２０５において、オペレータ等は、所望の力の強さ及び動作の速さに調整するために、調整器３０の力調整デバイス３１及び速さ調整デバイス３２への入力を行う。入力完了後、調整器３０は、力調整デバイス３１及び速さ調整デバイス３２が示す決定値をコントローラ１００に出力する。
【０１００】
次いで、コントローラ１００の目標出力処理部１２０は、調整器３０から力の強さ及び動作の速さの決定値を受け取ることで、記憶部１２４の目標入出力関係１２４ｂにおける力の強さ及び動作の速さの変更を受け付ける（ステップＳ２０６）。
【０１０１】
次いで、目標出力処理部１２０は、受け取った力の強さ及び動作の速さの決定値を目標入出力関係１２４ｂの伝達関数に反映することで、新たな伝達関数を決定する。つまり、目標出力処理部１２０は、伝達関数を変更する（ステップＳ２０７）。
【０１０２】
次いで、目標出力処理部１２０は、ロボットハンド１３の力データ及び位置データを用いて、目標入出力関係の参照入力情報を生成する（ステップＳ２０８）。
【０１０３】
次いで、目標出力処理部１２０は、参照入力情報と、ステップＳ２０７で決定された伝達関数、つまり目標入出力関係とを用いて、ステップＳ２０１の入力情報に対応するロボット１０の目標動作を示す目標出力データを取得する（ステップＳ２０９）。
【０１０４】
次いで、コントローラ１００の最適化処理部１３０は、ステップＳ２０３で取得されたロボットハンド１３の力データと、ステップＳ２０９で取得された目標出力データとを合わせるように、実機処理部１１０のパラメータ１１４ａの設定値を変更する（ステップＳ２１０）。具体的には、最適化処理部１３０は、力データを目標出力データに一致させるようにパラメータ１１４ａの設定値を変更する。そして、最適化処理部１３０は、パラメータ調整の一連の動作を終了する。
【０１０５】
ステップＳ２０１〜Ｓ２１０によって、オペレータ等は、ロボット１０の動作の実行結果に基づき、調整器３０を用いて力の強さ及び動作の速さのパラメータを所望の値に設定し、コントローラ１００は、設定されたパラメータの値を実機処理部１１０のパラメータ１１４ａの設定値に反映することで、ロボット１０の動作に反映する。力の強さ及び動作の速さのパラメータの値のロボット１０の動作への反映は、ロボット１０に少なくとも１回の所定の動作を行わせることで実現可能である。
【０１０６】
なお、ステップＳ２１０の後、オペレータ等は、ロボット１０に再度所定の動作をさせて、ステップＳ２０１〜Ｓ２１０の処理を繰り返させてもよい。これにより、ロボット１０は、ステップＳ２１０での変更後のパラメータ１１４ａの設定値に基づき動作し、オペレータ等は、ロボット１０の当該動作を確認し、ロボット１０に設定されている力の強さ及び動作の速さのパラメータの値を変更するか否かを判定することができる。そして、当該パラメータの値の変更結果が実機処理部１１０のパラメータ１１４ａに反映される。このように、ステップＳ２０１〜Ｓ２１０を繰り返すことによって、オペレータ等は、ロボット１０の所望の動作が実現されるまでその動作を確認しつつ、調整器３０を用いて、力の強さ及び動作の速さのパラメータの最適な値を設定することができる。
【０１０７】
＜効果等＞
実施の形態に係るロボット制御装置としてのコントローラ１００は、入力情報を受け付け、入力情報に対応する指令をロボット１０に出力する第一処理部としての実機処理部１１０と、指令を受けたロボット１０の動作結果を示す第一情報を取得する第一取得部としての入力処理部１２１と、入力情報と入力情報に対応するロボット１０の目標動作との目標関係としての目標入出力関係１２４ｂに基づき、入力情報に対応するロボット１０の目標動作を示す第二情報としての目標出力データ１２４ａを取得する第二処理部としての演算部１２２と、第一情報と第二情報とを合わせるように実機処理部１１０に設定される第一パラメータ１１４ａを変更するパラメータ決定部としての最適化処理部１３０と、ロボット１０の動作に関する第二パラメータの変更を受け付け、第二パラメータの変更を反映することで、目標入出力関係１２４ｂを変更する調整処理部１２３とを備える。
【０１０８】
上記構成によると、コントローラ１００は、第二パラメータの変更が反映され且つロボット１０の目標動作を示す第二情報と、ロボット１０の動作結果を示す第一情報とを合わせるように、実機処理部１１０の第一パラメータを変更する。よって、コントローラ１００は、第二パラメータの変更を反映した第一パラメータの変更を行うことができる。このような変更後の第一パラメータは、ロボット１０に目標動作を実行させることができる。このとき、ロボット１０のオペレータ等は、ロボット１０の動作に関連し且つ判断しやすい第二パラメータを変更することで、実機処理部１１０に設定されるようなオペレータ等にとって判断が難しい第一パラメータを変更することができる。従って、ロボット１０の制御内容の変更が簡易になる。
【０１０９】
また、実施の形態に係るコントローラ１００において、目標出力処理部１２０の演算部１２２は、ロボット１０の動作結果を示す第一情報を目標入出力関係１２４ｂに適用することで、第二情報の目標出力データ１２４ａを取得してもよい。上記構成によると、第二情報の目標出力データ１２４ａに実際の計測データを反映することができる。これにより、第一情報と第二情報とは高い精度で対応付けられ、このような第一情報及び第二情報を用いて変更される第一パラメータの精度が向上する。
【０１１０】
さらに、実施の形態に係るコントローラ１００において、最適化処理部１３０は、ＦＲＩＴの手法を用いて第一パラメータ１１４ａを変更してもよい。ＦＲＩＴの手法を用いることによって、第一パラメータ１１４ａを、ロボット１０の動作結果を示す第一情報とロボット１０の目標動作を示す第二情報とが一致するように最適に変更することが簡易になる。
【０１１１】
また、実施の形態に係るコントローラ１００において、入力装置２０の入力情報は、ロボット１０の操作装置を介して入力される操作入力情報であってもよい。上記構成によると、コントローラ１００は、第一パラメータ１１４ａを変更することで、操作入力情報に対応するロボット１０の動作を目標動作に合わせることができる。例えば、操作入力情報は、ロボット１０の一連の動作に含まれる個々の動作をマニュアル操作するために、オペレータ等によって操作装置に入力される、ロボット１０の個々の動作に対応する操作の情報であってもよい。又は、操作入力情報は、ロボット１０に一連の動作全体を自動で実行させるために、オペレータ等によって操作装置に入力される、当該一連の動作の実行指令であってもよい。例えば、一連の動作は、ワークＷを把持して移動させ、被組み付け対象部品Ｔの穴に嵌入する動作である。個々の動作は、ワークＷを把持する動作、把持したワークＷを水平方向に移動する動作、ワークＷを下降させる動作、及び、ワークＷを対象部品Ｔの穴に挿入し押し込む動作等で構成される。
【０１１２】
また、実施の形態に係るコントローラ１００において、入力装置２０の入力情報は、ロボット１０の操作装置を介して入力される操作入力情報と、ロボット１０の動作結果を示す第一情報との差分であってもよい。上記構成によると、コントローラ１００は、第一パラメータ１１４ａを変更することで、上記差分を用いたフィードバック制御によるロボット１０の動作を目標動作に合わせることができる。
【０１１３】
また、実施の形態に係るコントローラ１００において、ロボット１０の動作結果を示す第一情報は、ロボット１０のアーム１２に配置された力検出器４０による力の検出情報であり、目標出力データ１２４ａは、アーム１２が発生する目標の力の情報であってもよい。上記構成によると、コントローラ１００は、第一パラメータ１１４ａを変更することで、力制御を伴うアーム１２の動作を目標動作に合わせることができる。
【０１１４】
また、実施の形態に係るコントローラ１００において、実機処理部１１０の第一パラメータ１１４ａは、ロボット１０のアーム１２のインピーダンス特性を示す慣性パラメータ、粘性パラメータ及び剛性パラメータの少なくとも１つを含んでもよい。上記のような第一パラメータ１１４ａは、アーム１２の力制御に関連するパラメータである。コントローラ１００は、力制御に関連する第一パラメータ１１４ａを変更することで、アーム１２の動作を目標動作に合わせるように力制御することができる。
【０１１５】
また、実施の形態に係るコントローラ１００において、ロボット１０の動作に関する第二パラメータは、ロボット１０のアーム１２の力及び動作速度の少なくとも１つを含んでもよい。上記のような第二パラメータは、ロボットシステム１のオペレータ等がパラメータの強弱又は大小の程度及びロボット１０の動作との関連性を判断することが容易であるパラメータである。よって、オペレータ等は第二パラメータを調整することで、ロボット１０の動作を所望の動作に容易に調整することができる。
【０１１６】
また、実施の形態に係るロボットシステム１は、実施の形態に係るコントローラ１００と、コントローラ１００の指令に従って動作するロボット１０と、ロボット１０に対する操作の入力を受け付け且つ操作に対応する入力情報をコントローラ１００に出力する入力装置２０と、第二パラメータの変更を受け付け且つ変更された第二パラメータをコントローラ１００に出力する調整器３０とを備える。上記構成によると、実施の形態に係るコントローラ１００と同様の効果が得られる。
【０１１７】
＜その他の実施の形態＞
以上、本発明の実施の形態の例について説明したが、本発明は、上記実施の形態に限定されない。すなわち、本発明の範囲内で種々の変形及び改良が可能である。例えば、各種変形を実施の形態に施したもの、及び、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
【０１１８】
例えば、実施の形態に係るロボットシステム１は、１つの入力装置２０と１つのロボット１０とを備えるように構成されていたが、これに限定されない。ロボットシステム１は、１つ以上の入力装置２０と１つ以上のロボット１０とを備えてもよい。また、ロボット１０は、１つのアーム１２を備えていたが、２つ以上のアームを備えてもよい。また、ロボット１０の形式も、垂直多関節型ロボットに限定されず、例えば、水平多関節型ロボット、極座標型ロボット、円筒座標型ロボット、直角座標型ロボット、垂直多関節型ロボット、又はその他のロボットとして構成されてもよい。このように、ロボットシステム１が備える入力装置２０及びロボット１０それぞれの数量、並びに、入力装置２０及びロボット１０それぞれの構成は、いかなる数量及び構成であってもよい。
【０１１９】
また、実施の形態に係るロボットシステム１は、マスタースレーブ式の入力装置２０及びロボット１０を備えてもよい。この場合、例えば、入力装置２０は、オペレータの手元にあるマスターアームを構成し、ロボット１０は、遠隔のスレーブアームを構成してもよい。そして、オペレータによって与えられるマスターアームの動作を、スレーブアームがトレースするように構成される。ロボットシステム１は、オペレータが所望する動作をスレーブアームに正確に実現させることを容易にする。また、オペレータは、マスターアームを介して、スレーブアームの動作を容易に知覚することができる。
【０１２０】
また、本発明は、ロボット制御方法であってもよい。例えば、本発明に係るロボット制御方法は、入力情報を受け付け、第一パラメータに基づき前記入力情報に対応する指令を決定しロボットに出力するステップと、前記指令を受けた前記ロボットの動作結果を示す第一情報を取得するステップと、前記ロボットの動作に関する第二パラメータの変更を受け付けるステップと、前記入力情報と前記入力情報に対応する前記ロボットの目標動作との目標関係に、前記第二パラメータの変更を反映することで、前記目標関係を変更するステップと、前記目標関係に基づき、前記入力情報に対応する前記ロボットの目標動作を示す第二情報を取得するステップと、前記第一情報と前記第二情報とを合わせるように、前記第一パラメータを変更するステップとを含む。このロボット制御方法によれば、上記ロボット制御装置と同様の効果が得られる。このようなロボット制御方法は、ＣＰＵ、ＬＳＩなどの回路、ＩＣカード又は単体のモジュール等によって、実現されてもよい。
【０１２１】
また、本発明は、上記ロボット制御方法を実行するためのプログラムであってもよく、上記プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体であってもよい。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
【０１２２】
また、上記で用いた序数、数量等の数字は、全て本発明の技術を具体的に説明するために例示するものであり、本発明は例示された数字に制限されない。また、構成要素間の接続関係は、本発明の技術を具体的に説明するために例示するものであり、本発明の機能を実現する接続関係はこれに限定されない。
【０１２３】
また、機能ブロック図におけるブロックの分割は一例であり、複数のブロックを一つのブロックとして実現する、一つのブロックを複数に分割する、及び／又は、一部の機能を他のブロックに移してもよい。また、類似する機能を有する複数のブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
【符号の説明】
【０１２４】
１  ロボットシステム
１０  ロボット
１２  アーム
２０  入力装置
３０  調整器
４０  力検出器
１００  コントローラ（ロボット制御装置）
１１０  実機処理部（第一処理部）
１２０  目標出力処理部
１２１  入力処理部（第一取得部）
１２２  演算部（第二処理部）
１２３  調整処理部
１３０  最適化処理部（パラメータ決定部）
【図１】
2020185620.tif 000018
【図２】
2020185620.tif 000019
【図３】
2020185620.tif 000020
【図４】
2020185620.tif 000021
【図５】
2020185620.tif 000022
【図６】
2020185620.tif 000023
【図７】
2020185620.tif 000024
【図８】
2020185620.tif 000025
【図９】
2020185620.tif 000026