JP2023055151A - 制御装置、ロボットシステム、ロボット制御方法及びロボット制御プログラム - Google Patents
制御装置、ロボットシステム、ロボット制御方法及びロボット制御プログラム Download PDFInfo
- Publication number
- JP2023055151A JP2023055151A JP2021164313A JP2021164313A JP2023055151A JP 2023055151 A JP2023055151 A JP 2023055151A JP 2021164313 A JP2021164313 A JP 2021164313A JP 2021164313 A JP2021164313 A JP 2021164313A JP 2023055151 A JP2023055151 A JP 2023055151A
- Authority
- JP
- Japan
- Prior art keywords
- control
- force
- operator
- unit
- robot
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J3/00—Manipulators of master-slave type, i.e. both controlling unit and controlled unit perform corresponding spatial movements
Abstract
【課題】操作者等の変化があっても力制御の挙動を安定させる。【解決手段】制御装置3は、操作者Uから操作装置2へ加えられる操作力に応じてロボット1を動作させて対象物Wに作用を加えると共に、ロボット1が対象物Wから受ける反力に応じて操作装置2を動作させる力制御を実行する力制御部36と、操作者Uの動力学特性を推定する推定部37と、力制御の周波数特性が目標周波数特性となるように、推定された操作者の動力学特性に応じて力制御の制御パラメータを調整する調整部310とを備える。【選択図】図7
Description
ここに開示された技術は、制御装置、ロボットシステム、ロボット制御方法及びロボット制御プログラムに関する。
従来より、マスタ装置とスレーブ装置とを備えたロボットシステムを制御する制御装置が知られている。例えば、特許文献1に開示された制御装置は、マスタ装置を介して操作に応じて、スレーブ装置としてのマニピュレータを動作させる。マニピュレータは、対象物に接触した状態で作用を加える。操作者によるマスタ装置の操作に応じて、マニピュレータから対象物へ加える力が制御される。
ところで、前述のような力制御における安定性及び応答性等の周波数特性は、様々な要因により変化し得る。例えば、操作者が変わると、力制御の安定性等が変化し得る。操作者が同じであっても、力制御の安定性等が変化する場合もある。そのため、操作者等の変化に伴って、力制御の挙動が変わり得る。
ここに開示された技術は、かかる点に鑑みてなされたものであり、その目的とするところは、操作者等の変化があっても力制御の挙動を安定させることにある。
ここに開示された制御装置は、操作者からマスタ装置へ加えられる操作力に応じてスレーブ装置を動作させて対象物に作用を加えると共に、前記スレーブ装置が前記対象物から受ける反力に応じて前記マスタ装置を動作させる力制御を実行する力制御部と、前記操作者の動力学特性を推定する推定部と、前記力制御の周波数特性が目標周波数特性となるように、推定された前記操作者の動力学特性に応じて前記力制御の制御パラメータを調整する調整部とを備える。
ここに開示されたロボットシステムは、前記操作者に操作される前記マスタ装置と、前記対象物に作用を加える前記スレーブ装置と、前記制御装置とを備える。
ここに開示されたロボット制御方法は、操作者からマスタ装置へ加えられる操作力に応じてスレーブ装置を動作させて対象物に作用を加えると共に、前記スレーブ装置が前記対象物から受ける反力に応じて前記マスタ装置を動作させる力制御を実行することと、前記操作者の動力学特性を推定することと、前記力制御の周波数特性が目標周波数特性となるように、推定された前記操作者の動力学特性に応じて前記力制御の制御パラメータを調整することとを含む。
ここに開示されたロボット制御プログラムは、操作者から操作力が加えられるマスタ装置と対象物に作用を加えるスレーブ装置とを備えるロボットシステムを制御する機能をコンピュータに実現させるためのロボット制御プログラムであって、前記マスタ装置へ加えられる操作力に応じて前記スレーブ装置を動作させて対象物に作用を加えると共に、前記スレーブ装置が前記対象物から受ける反力に応じて前記マスタ装置を動作させる力制御を実行する機能と、前記操作者の動力学特性を推定する機能と、前記力制御の周波数特性が目標周波数特性となるように、推定された前記操作者の動力学特性に応じて前記力制御の制御パラメータを調整する機能とをコンピュータに実現させる。
前記制御装置は、操作者等の変化があっても力制御の挙動を安定させることができる。
前記ロボットシステムは、操作者等の変化があっても力制御の挙動を安定させることができる。
前記ロボット制御方法は、操作者等の変化があっても力制御の挙動を安定させることができる。
前記ロボット制御プログラムは、操作者等の変化があっても力制御の挙動を安定させることができる。
以下、例示的な実施形態を図面に基づいて詳細に説明する。
本開示において、ロボットが行う作業は、ティーチング作業並びに教示の確認及び修正作業を含まない。したがって、以下の説明における操作装置2は、ティーチペンダントを含まない。
図1は、ロボットシステム100の構成を示す模式図である。
ロボットシステム100は、ロボット1と、操作者Uに操作される操作装置2と、ロボット1を制御する制御装置3とを備える。ロボットシステム100は、マスタスレーブシステムを構成する。操作装置2は、マスタ装置として機能し、ロボット1は、スレーブ装置として機能する。制御装置3は、ロボットシステム100の全体を制御し、ロボット1と操作装置2との間でバイラテラル制御を行う。
〈ロボット1の構成〉
ロボット1は、例えば、産業用ロボットである。ロボット1は、対象物Wに作用を加えるエンドエフェクタ11と、エンドエフェクタ11を動作させるロボットアーム12とを有している。エンドエフェクタ11は、ロボットアーム12の先端に連結されている。ロボット1は、ロボットアーム12によってエンドエフェクタ11を動作、即ち、移動させて、エンドエフェクタ11によって対象物Wに作用を加える。エンドエフェクタ11は、対象物Wに接触した状態で対象物Wに作用を加え得る。例えば、作用は、加工である。例えば、対象物Wは、大型タンクの湾曲した壁等である。
ロボット1は、例えば、産業用ロボットである。ロボット1は、対象物Wに作用を加えるエンドエフェクタ11と、エンドエフェクタ11を動作させるロボットアーム12とを有している。エンドエフェクタ11は、ロボットアーム12の先端に連結されている。ロボット1は、ロボットアーム12によってエンドエフェクタ11を動作、即ち、移動させて、エンドエフェクタ11によって対象物Wに作用を加える。エンドエフェクタ11は、対象物Wに接触した状態で対象物Wに作用を加え得る。例えば、作用は、加工である。例えば、対象物Wは、大型タンクの湾曲した壁等である。
ロボット1は、ロボットアーム12を支持するベース10と、ロボット1の全体を制御するロボット制御装置14とをさらに有していてもよい。
ロボットアーム12は、エンドエフェクタ11の位置及び姿勢を変更する。ロボットアーム12は、垂直多関節型のロボットアームである。ロボットアーム12は、複数のリンク12aと、複数のリンク12aを接続する関節12bと、複数の関節12bを回転駆動するサーボモータ15(図3参照)とを有している。例えば、ロボットアーム12の一端部(エンドエフェクタ11とは反対側の端部)に位置するリンク12aは、関節12bを介して、鉛直方向に延びる回転軸R1回りに回転可能にベース10に連結されている。
尚、ロボットアーム12は、水平多関節型、パラレルリンク型、直角座標型、又は極座標型のロボットアーム等であってもよい。
図2は、エンドエフェクタ11の拡大図である。エンドエフェクタ11は、研削装置11aを有し、対象物Wに作用としての研削を加える。尚、エンドエフェクタ11が対象物Wに加える作用は、研削ではなく、切削又は研磨等であってもよい。
例えば、研削装置11aは、グラインダ、オービタルサンダ、ランダムオービットサンダ、デルタサンダ又はベルトサンダ等であってもよい。グラインダは、円盤状の研削砥石を回転させるタイプ、円錐状又は円柱状の研削砥石を回転させるタイプ等であってもよい。ここでは、研削装置11aは、円盤状の研削砥石を回転させるタイプのグラインダである。
ロボット1には、直交3軸のスレーブ座標系が規定されている。スレーブ座標系は、ロボット1を基準に設定されている。スレーブ座標系は、互いに直交するXr軸、Yr軸、及びZr軸を有している。Xr軸、Yr軸、及びZr軸は、原点Orにおいて互いに交差している。原点Orは、図1に示すように、ベース10の上面に位置している。Xr軸及びYr軸は、水平方向に、即ち、ベース10の上面と平行に延びている。Zr軸は、鉛直方向に延びている。Zr軸は、ロボットアーム12とベース10とを連結する関節12bの回転軸R1と一致している。Yr軸は、図1における紙面と垂直に延びている。
また、エンドエフェクタ11には、直交3軸のツール座標系が規定されている。ツール座標系は、エンドエフェクタ11に固定された座標系である。ツール座標系は、図2に示すように、互いに直交するXt軸、Yt軸、及びZt軸を有している。Xt軸、Yt軸、及びZt軸は、原点Otにおいて互いに交差している。例えば、原点Otは、研削装置11aのうち対象物Wとの接点に位置している。詳しくは、研削装置11aの研削砥石の回転軸Bは、エンドエフェクタ11が取り付けられたリンク12aの回転軸R2に対して傾斜している。研削砥石の外周縁のうち回転軸R2の方向においてリンク12aから最も離れた部分が、対象物Wとの接点として想定されている。Zt軸は、回転軸R2と平行に延びている。Xt軸は、研削砥石の回転軸BがXt-Zt平面内で延びるように設定されている。Yt軸は、図2では紙面と垂直に延びている。ツール座標系は、スレーブ座標系から見ると、エンドエフェクタ11の位置及び姿勢に応じて変位する。つまり、ツール座標系は、ロボットアーム12の移動に応じて、エンドエフェクタ11と共に移動する。
ロボット1は、エンドエフェクタ11が対象物から受ける反力(以下、「接触力」という)を検出する接触力センサ13をさらに有していてもよい。
接触力センサ13は、この例では、ロボットアーム12とエンドエフェクタ11との間(具体的には、ロボットアーム12とエンドエフェクタ11との連結部)に設けられている。接触力センサ13は、直交する3軸方向の力と該3軸回りのモーメントを検出する。接触力センサ13は、接触力検出部の一例である。
尚、接触力検出部は、接触力センサ13に限定されない。例えば、接触力センサ13は、1軸、2軸又は3軸方向の力のみを検出してもよい。あるいは、接触力検出部は、ロボットアーム12のサーボモータ15の電流を検出する電流センサ又はサーボモータ15のトルクを検出するトルクセンサ等であってもよい。
図3は、ロボット制御装置14の概略的なハードウェア構成を示す図である。ロボット制御装置14は、ロボットアーム12のサーボモータ15及び研削装置11aを制御する。ロボット制御装置14は、接触力センサ13の検出信号を受け付ける。ロボット制御装置14は、制御装置3と情報、指令及びデータ等の送受信を行う。ロボット制御装置14は、制御部16と、記憶部17と、メモリ18とを有している。
制御部16は、ロボット制御装置14の全体を制御する。制御部16は、各種の演算処理を行う。例えば、制御部16は、CPU(Central Processing Unit)等のプロセッサで形成されている。制御部16は、MCU(Micro Controller Unit)、MPU(Micro Processor Unit)、FPGA(Field Programmable Gate Array)、PLC(Programmable Logic Controller)等で形成されていてもよい。
記憶部17は、制御部16で実行されるプログラム及び各種データを格納している。記憶部17は、不揮発性メモリ、HDD(Hard Disc Drive)又はSSD(Solid State Drive)等で形成される。
メモリ18は、データ等を一時的に格納する。例えば、メモリ18は、揮発性メモリで形成される。
〈操作装置2の構成〉
操作装置2は、図1に示すように、操作者Uが操作する操作部21と、操作部21に操作者Uから加えられる操作力を検出する操作力センサ23とを有している。操作装置2は、ロボット1を手動運転で操作するための入力を受け付け、入力された情報である操作情報を制御装置3へ出力する。具体的には、操作者Uは、操作部21を把持して操作装置2を操作する。その際に操作部21に加えられる力を操作力センサ23が検出する。操作力センサ23によって検出される操作力は、操作情報として制御装置3へ出力される。
操作装置2は、図1に示すように、操作者Uが操作する操作部21と、操作部21に操作者Uから加えられる操作力を検出する操作力センサ23とを有している。操作装置2は、ロボット1を手動運転で操作するための入力を受け付け、入力された情報である操作情報を制御装置3へ出力する。具体的には、操作者Uは、操作部21を把持して操作装置2を操作する。その際に操作部21に加えられる力を操作力センサ23が検出する。操作力センサ23によって検出される操作力は、操作情報として制御装置3へ出力される。
操作装置2は、ベース20と、ベース20に設けられ、操作部21を支持する支持機構22と、操作装置2の全体を制御する操作制御装置24とをさらに有していてもよい。操作装置2は、制御装置3からの制御によって、操作力に対する反力を操作者Uに与える。具体的には、操作制御装置24は、制御装置3からの指令を受けて、支持機構22を制御することによって、反力を操作者Uに感知させる。
図4は、操作装置2の斜視図である。支持機構22は、6つのアーム22aを有している。2つのアーム22aが1つの組を形成している。つまり、支持機構22は、3組のアーム22aを有している。3組のアーム22aは、操作部21から放射状に延びている。各アーム22aは、関節22bを有している。各関節22bは、アーム22aを形成する2つのリンクを直交する3軸回りに回転可能にボールジョイント等の自在継手を介して連結している。各アーム22aは、関節22bで屈曲可能である。各アーム22aの一端は、直交する3軸回りに回転可能に操作部21にボールジョイント等の自在継手を介して連結されている。各アーム22aの他端は、サーボモータ25に減速機等(図示省略)を介して連結されている。サーボモータ25は、ベース20上に配置されている。
ベース20の上面には、6つのサーボモータ25が配置されている。同組の2つのアーム22aに連結された2つのサーボモータ25が1つの組を形成している。各組の2つのサーボモータ25の回転軸は、一直線上に、即ち、同軸上に延びている。3組のサーボモータ25の回転軸が三角形を形成するように、6つのサーボモータ25は配置されている。
このように構成された支持機構22は、操作部21が3次元空間内で任意の位置及び姿勢をとることができるように、操作部21を支持する。操作部21の位置及び姿勢に対応して、サーボモータ25が回転する。サーボモータ25の回転量、即ち、回転角は、一義的に決まる。
操作装置2には、直交3軸のマスタ座標系が規定されている。マスタ座標系は、操作装置2を基準に設定されている。マスタ座標系は、互いに直交するXm軸、Ym軸、及びZm軸を有している。Xm軸、Ym軸、及びZm軸は、原点Omにおいて互いに交差している。原点Omは、ベース20の上面に位置している。Xm軸及びYm軸は、水平方向に、即ち、ベース20の上面と平行に延びている。Zm軸は、鉛直方向に延びている。Zm軸は、3組のサーボモータ25の回転軸によって形成される三角形の重心を通る。マスタ座標系は、操作装置2のベース20に固定された座標系である。
また、操作部21には、直交3軸の操作座標系が規定されている。操作座標系は、操作部21に固定された座標系である。操作座標系は、互いに直交するXn軸、Yn軸及びZn軸を有している。Xn軸、Yn軸及びZn軸は、原点Onにおいて互いに直交している。例えば、原点Onは、操作部21の中央に位置している。操作座標系は、マスタ座標系から見ると、操作部21の位置及び姿勢に応じて変位する。つまり、操作座標系は、操作部21の移動に応じて、操作部21と共に移動する。この例では、操作座標系は、ツール座標系と対応している。
操作力センサ23は、この例では、図1に示すように操作部21と支持機構22との間(具体的には、操作部21と支持機構22との連結部)に設けられている。操作力センサ23は、直交する3軸方向の力と該3軸回りのモーメントを検出する。操作力センサ23は、操作力検出部の一例である。
尚、操作力検出部は、操作力センサ23に限定されない。例えば、操作力センサ23は、1軸、2軸又は3軸方向の力のみを検出してもよい。あるいは、操作力検出部は、支持機構22のサーボモータ25の電流を検出する電流センサ又はサーボモータ25のトルクを検出するトルクセンサ等であってもよい。
図5は、操作制御装置24の概略的なハードウェア構成を示す図である。操作制御装置24は、サーボモータ25を制御することによって支持機構22を動作させる。操作制御装置24は、操作力センサ23の検出信号を受け付ける。操作制御装置24は、制御装置3と情報、指令及びデータ等の送受信を行う。操作制御装置24は、制御部26と、記憶部27と、メモリ28とを有している。
制御部26は、操作制御装置24の全体を制御する。制御部26は、各種の演算処理を行う。例えば、制御部26は、CPU(Central Processing Unit)等のプロセッサで形成されている。制御部26は、MCU(Micro Controller Unit)、MPU(Micro Processor Unit)、FPGA(Field Programmable Gate Array)、PLC(Programmable Logic Controller)等で形成されていてもよい。
記憶部27は、制御部26で実行されるプログラム及び各種データを格納している。記憶部27は、不揮発性メモリ、HDD(Hard Disc Drive)又はSSD(Solid State Drive)等で形成される。
メモリ28は、データ等を一時的に格納する。例えば、メモリ28は、揮発性メモリで形成される。
〈制御装置3の構成〉
制御装置3は、ロボット1及び操作装置2を制御する。制御装置3は、操作装置2を介して入力される操作情報に応じてエンドエフェクタ11を動作させるように、ロボット1への指令であるスレーブ指令をロボット1へ出力する。制御装置3は、操作装置2を介した操作に応じてロボットアーム12を制御することによってエンドエフェクタ11に対象物Wへ作用を加えさせる。さらに、制御装置3は、対象物Wからロボット1が受ける反力に応じて操作部21を動作させるように、操作装置2への指令であるマスタ指令を操作装置2へ出力する。制御装置3は、支持機構22を制御することによって、エンドエフェクタ11が対象物Wから受ける反力を操作者Uに提示する。
制御装置3は、ロボット1及び操作装置2を制御する。制御装置3は、操作装置2を介して入力される操作情報に応じてエンドエフェクタ11を動作させるように、ロボット1への指令であるスレーブ指令をロボット1へ出力する。制御装置3は、操作装置2を介した操作に応じてロボットアーム12を制御することによってエンドエフェクタ11に対象物Wへ作用を加えさせる。さらに、制御装置3は、対象物Wからロボット1が受ける反力に応じて操作部21を動作させるように、操作装置2への指令であるマスタ指令を操作装置2へ出力する。制御装置3は、支持機構22を制御することによって、エンドエフェクタ11が対象物Wから受ける反力を操作者Uに提示する。
図6は、制御装置3の概略的なハードウェア構成を示す図である。制御装置3は、ロボット制御装置14及び操作制御装置24と情報、指令及びデータ等の送受信を行う。制御装置3は、制御部31と、記憶部32と、メモリ33とを有している。
制御部31は、制御装置3の全体を制御する。制御部31は、各種の演算処理を行う。例えば、制御部31は、CPU(Central Processing Unit)等のプロセッサで形成されている。制御部31は、MCU(Micro Controller Unit)、MPU(Micro Processor Unit)、FPGA(Field Programmable Gate Array)、PLC(Programmable Logic Controller)等で形成されていてもよい。
記憶部32は、制御部31で実行されるプログラム及び各種データを格納している。記憶部32は、不揮発性メモリ、HDD(Hard Disc Drive)又はSSD(Solid State Drive)等で形成される。例えば、記憶部32は、ロボット制御プログラム321を格納している。
ロボット制御プログラム321は、ロボットシステム100を制御する機能をコンピュータとしての制御部31に実現させるためのプログラムである。
メモリ33は、データ等を一時的に格納する。例えば、メモリ33は、揮発性メモリで形成される。
また、制御装置3は、操作者Uが入力操作を行うことができる入力装置34と、操作者Uへの情報提示を可能とする表示装置35とを備えている。
図7は、制御部31の機能ブロック図である。制御部31は、記憶部32からロボット制御プログラム321をメモリ33に読み出して展開することによって、各種機能を実現する。具体的には、制御部31は、力制御部36、推定部37、提示部38、設定部39及び調整部310として機能する。
力制御部36は、力制御を実行する。力制御とは、操作者から操作装置2へ加えられる操作力に応じてロボット1を動作させて対象物Wに作用を加えると共に、ロボット1が対象物Wから受ける反力に応じて操作装置2を動作させる制御である。詳しくは、力制御部36は、ロボット1と操作装置2との間でバイラテラル制御を行う。力制御部36は、操作装置2へ入力される操作力及び対象物Wからロボット1へ作用する反力に基づいて、ロボット1へのスレーブ指令及び操作装置2へのマスタ指令を生成する。力制御部36は、スレーブ指令をロボット1へ出力すると共にマスタ指令を操作装置2へ出力することによってロボット1及び操作装置2を制御する。
推定部37は、操作者Uの動力学特性を推定する。詳しくは、推定部37は、操作者Uの動力学モデルである操作者モデルを用いて、操作者Uの動力学特性を推定する。さらに、推定部37は、対象物Wの動力学特性、ロボット1の動力学特性及び操作装置2の動力学特性を推定する。詳しくは、推定部37は、対象物Wの動力学モデルである対象物モデルを用いて、対象物Wの動力学特性を推定する。推定部37は、ロボット1の動力学モデルであるスレーブモデルを用いて、ロボット1の動力学特性を推定する。推定部37は、操作装置2の動力学モデルであるマスタモデルを用いて、操作装置2の動力学特性を推定する。推定部37は、力制御部36がロボット1及び操作装置2の力制御を実行している際に、操作者U、対象物W、ロボット1及び操作装置2の動力学特性を推定する。
提示部38は、力制御の周波数特性を求め、求められた周波数特性を提示する。具体的には、提示部38は、力制御部36がロボット1及び操作装置2の力制御を実行している際に、力制御の周波数特性を求める。提示部38は、推定部37によって推定された操作者U、対象物W、ロボット1及び操作装置2の動力学特性を用いて周波数特性を求める。提示部38は、周波数特性を所定の評価値の形式で表現する。提示部38は、評価値を表示装置35に表示させる。
設定部39は、力制御の目標周波数特性の入力を受け付けて、目標周波数特性を設定する。具体的には、設定部39は、操作者Uからの入力装置34を介した、目標周波数特性の入力を受け付ける。例えば、設定部39は、目標周波数特性の入力においても、周波数特性の評価値を利用する。つまり、設定部39は、目標となる評価値の入力を受け付けることによって、実質的に目標周波数特性の入力を受け付ける。
調整部310は、力制御の周波数特性が設定部39によって設定された目標周波数特性となるように力制御の制御パラメータを調整する。この例では、調整部310は、力制御の周波数特性が目標周波数特性となるように、操作者U、対象物W、ロボット1及び操作装置2の動力学特性の少なくとも1つに応じて制御パラメータを調整する。
これらの機能ブロックについてさらに詳細に説明する。
〈ロボットシステムにおける力制御〉
図8は、力制御部36を詳細な機能に分解したブロック図である。図8では、ロボット制御装置14の制御部16及び操作制御装置24の制御部26の機能ブロックも図示されている。
図8は、力制御部36を詳細な機能に分解したブロック図である。図8では、ロボット制御装置14の制御部16及び操作制御装置24の制御部26の機能ブロックも図示されている。
ロボット制御装置14の制御部16は、記憶部17からプログラムをメモリ18に読み出して展開することによって、各種機能を実現する。具体的には、制御部16は、入力処理部41と動作制御部42として機能する。
入力処理部41は、接触力センサ13及びサーボモータ15から受け取る情報、データ及び指令等を制御装置3に出力する。具体的には、入力処理部41は、接触力センサ13から6軸の力の検出信号を受け取り、該検出信号を操作情報として制御装置3へ出力する。また、入力処理部41は、サーボモータ15から回転センサ(例えば、エンコーダ)及び電流センサの検出信号を受け取る。入力処理部41は、動作制御部42によるロボットアーム12のフィードバック制御のために該検出信号を動作制御部42へ出力する。また、入力処理部41は、ロボットアーム12の位置情報として該検出信号を制御装置3へ出力する。
動作制御部42は、制御装置3からスレーブ指令(具体的には、指令位置xds)を受け取り、スレーブ指令に従ってロボットアーム12を動作させるための制御指令を生成する。動作制御部42は、サーボモータ15へ制御指令を出力し、ロボットアーム12を動作させ、研削装置11aを指令位置に対応する位置へ移動させる。このとき、動作制御部42は、入力処理部41からのサーボモータ15の回転センサ及び/又は電流センサの検出信号に基づいて、ロボットアーム12の動作をフィードバック制御する。また、動作制御部42は、研削装置11aへ制御指令を出力し、研削装置11aを動作させる。これにより、研削装置11aが対象物Wを研削する。
操作制御装置24の制御部26は、記憶部27からプログラムをメモリ28に読み出して展開することによって、各種機能を実現する。具体的には、制御部26は、入力処理部51と動作制御部52として機能する。
入力処理部51は、操作力センサ23から受け取る情報、データ及び指令等を制御装置3に出力する。具体的には、入力処理部51は、操作力センサ23から6軸の力の検出信号を受け取り、該検出信号を反力情報として制御装置3へ出力する。また、入力処理部51は、サーボモータ25から回転センサ(例えば、エンコーダ)及び電流センサの検出信号を受け取る。入力処理部51は、動作制御部52による支持機構22のフィードバック制御のために該検出信号を動作制御部52へ出力する。
動作制御部52は、制御装置3からマスタ指令(具体的には、指令位置xdm)を受け取り、マスタ指令に従って支持機構22を動作させるための制御指令を生成する。動作制御部52は、サーボモータ25へ制御指令を出力し、支持機構22を動作させ、操作部21を指令位置に対応する位置へ移動させる。このとき、動作制御部52は、入力処理部51からのサーボモータ25の回転センサ及び/又は電流センサの検出信号に基づいて、支持機構22の動作をフィードバック制御する。これにより、操作者Uが操作部21に与える操作力に対して反力が与えられる。その結果、操作者Uは、対象物Wから反力を操作部21から疑似的に感じつつ、操作部21を操作することができる。
制御装置3の制御部31は、記憶部32からロボット制御プログラム321をメモリ33に読み出して展開することによって、各種機能を実現する。具体的には、制御部31は、操作力取得部61と接触力取得部62と加算部63と力/速度換算部64とスレーブ出力部65とマスタ出力部66として機能する。操作力取得部61、接触力取得部62、加算部63、力/速度換算部64、スレーブ出力部65及びマスタ出力部66は、力制御部36の一部である。これらの機能によって、制御装置3は、操作情報及び反力情報に応じてスレーブ指令及びマスタ指令を生成する。
操作力取得部61は、入力処理部51を介して、操作力センサ23の検出信号を受け取り、検出信号に基づいて操作力fmを取得する。例えば、操作力取得部61は、操作力センサ23の検出信号から、操作部21に作用する力であって操作座標系で表される力を操作力fmとして求める。操作力取得部61は、操作力fmを加算部63へ入力する。
接触力取得部62は、入力処理部41を介して、接触力センサ13の検出信号を受け取り、検出信号に基づいて接触力fsを取得する。例えば、接触力取得部62は、接触力センサ13の検出信号から、エンドエフェクタ11のうち対象物Wとの接点に作用する力であってツール座標系で表される力を接触力fsとして求める。接触力取得部62は、接触力fsを加算部63へ入力する。
加算部63は、操作力取得部61から入力された操作力fmと接触力取得部62から入力された接触力fsとの和を算出する。ここで、操作力fmと接触力fsとは、反対向きの力なので、操作力fmと接触力fsとは正負の符号が異なる。つまり、操作力fmと接触力fsとの和である合成力fm+fsの絶対値は、操作力fmの絶対値よりも小さくなる。
力/速度換算部64は、合成力fm+fsを指令速度xd’に換算する。力/速度換算部64は、慣性係数及び粘性係数(ダンパ係数)を含む運動方程式に基づく運動モデルを用いて、合成力fm+fsが作用した場合の物体の指令速度xd’を算出する。具体的には、力/速度換算部64は、以下の運動方程式に基づいて指令速度xd’を算出する。
式(1)は線形微分方程式であり、式(1)を指令速度xd’について解くと、xd’=V(fm,fs)となる。V(fm,fs)は、fm,fsを変数とし,md,cd等を定数とする関数である。md,cdは、力制御における制御パラメータである。
関数V(fm,fs)は、記憶部32に格納されている。力/速度換算部64は、記憶部32から関数V(fm,fs)を読み出して指令速度xd’を求める。力/速度換算部64は、求められた指令速度xd’をスレーブ出力部65とマスタ出力部66とへ出力する。
スレーブ出力部65は、指令速度xd’に基づいてスレーブ指令を生成する。詳しくは、スレーブ出力部65は、指令速度xd’をエンドエフェクタ11の指令位置xdsに換算する。指令位置xdsは、ツール座標系における位置である。指令位置xdsがスレーブ指令である。例えば、操作装置2の移動量に対するロボット1の移動量の比が設定されている場合、スレーブ出力部65は、指令速度xd’から求めた指令位置を移動比に応じて逓倍して指令位置xdsを求める。スレーブ出力部65は、指令位置xdsをロボット制御装置14、具体的には、動作制御部42へ出力する。
動作制御部42は、指令位置xdsへのエンドエフェクタ11の移動を実現させるための、サーボモータ15への制御指令を生成する。動作制御部42は、生成された制御指令をサーボモータ15へ出力することによって、ロボットアーム12を動作させ、エンドエフェクタ11を指令位置xdsに対応する位置へ移動させる。
マスタ出力部66は、指令速度xd’に基づいてマスタ指令を生成する。詳しくは、マスタ出力部66は、指令速度xd’を操作部21の指令位置xdmに換算する。指令位置xdmは、操作座標系における位置である。指令位置xdmがマスタ指令である。マスタ出力部66は、指令位置xdmを操作制御装置24、具体的には、動作制御部52へ出力する。
動作制御部52は、指令位置xdmへの操作部21の移動を実現させるための、サーボモータ25への制御指令を生成する。動作制御部52は、生成された制御指令をサーボモータ25へ出力することによって、支持機構22を動作させ、操作部21を指令位置xdmに対応する位置へ移動させる。
次に、力制御におけるロボットシステム100の動作について説明する。例えば、操作者Uは、操作装置2を操作して、ロボット1によって対象物Wに研削加工を行う。
まず、制御装置3は、操作力及び接触力を取得する。操作者Uが操作装置2を操作すると、操作者Uが操作部21を介して加えた操作力を操作力センサ23が検出する。操作力センサ23に検出された操作力は、入力処理部51によって検出信号として制御装置3へ入力される。このとき、ロボット1の接触力センサ13によって検出される接触力が、入力処理部41によって検出信号として制御装置3へ入力される。
制御装置3では、操作力取得部61が、検出信号に基づく操作力fmを加算部63へ入力する。接触力取得部62は、検出信号に基づく接触力fsを加算部63へ入力する。
続いて、制御装置3は、マスタ指令及びスレーブ指令の指令速度xd’を生成する。具体的には、加算部63は、合成力fm+fsを力/速度換算部64へ入力する。力/速度換算部64は、関数V(fm,fs)を用いて、合成力fm+fsから指令速度xd’を求める。
その後、スレーブ出力部65は、指令速度xd’からエンドエフェクタ11の指令位置xds(即ち、スレーブ指令)を生成する。それと並行して、マスタ出力部66は、操作部21の指令位置xdm(即ち、マスタ指令)を生成する。スレーブ出力部65は、指令位置xdsをロボット1へ出力すると共に、マスタ出力部66は、指令位置xdmを操作装置2へ出力する。これにより、ロボット1は、指令位置xdsに応じて動作して研削を実行する。それと並行して、操作装置2は、指令位置xdmに応じて動作して、操作者Uに反力を提示する。
〈周波数特性の提示〉
提示部38は、このような力制御の周波数特性を求め、求められた周波数特性を提示する。力制御の周波数特性は、ロボットシステム100における様々な要素の影響を受ける。図9は、ロボットシステム100の全体のブロック線図である。ロボットシステム100では、前述の如く、操作者Uが操作装置2を把持して操作装置2を操作する。操作者からの操作力fmは、操作力センサ23を介して制御装置3へ入力される。一方、エンドエフェクタ11は、対象物Wに接触している。そのときの接触力fsが接触力センサ13を介して制御装置3へ入力される。制御装置3へは、合成力fm+fsが入力される。制御装置3の力制御部36は、合成力fm+fsから、スレーブ指令及びマスタ指令を生成する。ロボット制御装置14は、ロボット1の位置をスレーブ指令に応じて制御し、エンドエフェクタ11が対象物Wを加工する。これと並行して、操作制御装置24は、操作装置2の位置をマスタ指令に応じて制御し、操作部21が操作者Uへ反力を提示する。
提示部38は、このような力制御の周波数特性を求め、求められた周波数特性を提示する。力制御の周波数特性は、ロボットシステム100における様々な要素の影響を受ける。図9は、ロボットシステム100の全体のブロック線図である。ロボットシステム100では、前述の如く、操作者Uが操作装置2を把持して操作装置2を操作する。操作者からの操作力fmは、操作力センサ23を介して制御装置3へ入力される。一方、エンドエフェクタ11は、対象物Wに接触している。そのときの接触力fsが接触力センサ13を介して制御装置3へ入力される。制御装置3へは、合成力fm+fsが入力される。制御装置3の力制御部36は、合成力fm+fsから、スレーブ指令及びマスタ指令を生成する。ロボット制御装置14は、ロボット1の位置をスレーブ指令に応じて制御し、エンドエフェクタ11が対象物Wを加工する。これと並行して、操作制御装置24は、操作装置2の位置をマスタ指令に応じて制御し、操作部21が操作者Uへ反力を提示する。
ここで、操作部21は、操作者に把持されているので、操作部21の動作は、操作者Uの動力学特性、例えば、機械インピーダンスの影響を受ける。操作者Uの剛性及び機械抵抗等には個人差がある。また、同じ操作者Uであっても、操作者Uの姿勢(腕が曲がり具合等の腕の状態も含む)に応じて操作者Uの剛性及び機械抵抗等は変化し得る。そのため、操作部21の動作は、操作者Uの動力学特性の影響を受ける。
同様に、ロボット1のエンドエフェクタ11は、対象物Wに接触しているので、エンドエフェクタ11の動作は、対象物Wの動力学特性、例えば、機械インピーダンスの影響を受ける。対象物Wの剛性及び機械抵抗等には、個体差がある。また、同じ対象物Wであっても、加工の状況に応じて対象物Wの剛性及び機械抵抗等は変化し得る。そのため、エンドエフェクタ11の動作は、対象物Wの動力学特性の影響を受ける。
また、制御装置3による制御及び操作者Uによる操作部21の操作によって支持機構22の形状及び姿勢等が変化する。支持機構22の形状及び姿勢等は、操作装置2の周波数応答に影響を与え得る。操作装置2の動力学特性、例えば、周波数応答は、力制御における操作装置2の動作に影響を与える。つまり、操作装置2の動作は、操作装置2の動力学特性の影響を受ける。
同様に、制御装置3による制御によってロボットアーム12の形状及び姿勢等が変化する。ロボットアーム12の形状及び姿勢等は、ロボット1の周波数応答に影響を与え得る。ロボット1の動力学特性、例えば、周波数応答は、力制御におけるロボット1の動作に影響を与える。つまり、ロボット1の動作は、ロボット1の動力学特性の影響を受ける。
提示部38は、これらの操作者Uの動力学特性等を表す動力学モデルを含む制御系の伝達関数に基づいて、力制御の周波数特性を求める。図10は、操作装置2を含むマスタ制御系7Aのブロック線図である。図11は、ロボット1を含むスレーブ制御系7Bのブロック線図である。
マスタ制御系7Aは、図10に示すように、合成力演算要素71と、力制御要素72と、操作装置要素73と、操作者要素74と、操作力センサ要素75とを有している。
合成力演算要素71は、操作力fmと接触力fsとの合成力fm+fsを算出する。尚、図10では、合成力演算要素71に入力される接触力fsの符号が+となっているが、操作力fmと接触力fsとは反対向きの力なので、合成力演算要素71においては、実質的には操作力fmから接触力fsが減算される。
力制御要素72は、合成力fm+fsから、エンドエフェクタ11の指令位置xds及び操作部21の指令位置xdmを算出する。力制御要素72は、制御装置3の力/速度換算部64、スレーブ出力部65及びマスタ出力部66に相当する。力制御要素72の伝達関数Gcは、下記の式(2)で表される。
操作装置要素73は、指令位置xdmを実際の操作部21の現在位置xcmに変換する。つまり、操作装置要素73は、操作装置2に相当し、操作装置2の動力学モデルであるマスタモデルで表される。マスタモデルは、操作装置2の動力学特性、具体的には、操作装置2の周波数応答を表している。例えば、マスタモデルは、一次遅れ系のモデルである。操作装置要素73の伝達関数Gp1は、下記の式(3)で表される。
操作者要素74は、現在位置xcmを操作力fmに変換する。つまり、操作者要素74は、操作者Uに相当し、操作者Uの動力学モデルである操作者モデルで表される。操作者モデルは、操作者Uの動力学特性を表す。具体的には、操作者モデルは、操作者Uの機械インピーダンス、即ち、剛性係数ku及び粘性係数cuを含んでいる。例えば、操作者モデルをバネ・ダンパモデルで近似すると、操作者モデルは、下記の式(4)で表される。その場合、操作者要素74の伝達関数Gk1は、下記の式(5)で表される。
このようなマスタ制御系7Aの一巡伝達関数Gm(jω)は、下記の式(7)のようになる。
一方、スレーブ制御系7Bは、図11に示すように、合成力演算要素71と、力制御要素72と、ロボット要素76と、対象物要素77と、接触力センサ要素78とを有している。
合成力演算要素71及び力制御要素72は、マスタ制御系7Aと同様である。
ロボット要素76は、指令位置xdsを実際のエンドエフェクタ11の現在位置xcsに変換する。つまり、ロボット要素76は、ロボット1に相当し、ロボット1の動力学モデルであるスレーブモデルで表される。スレーブモデルは、ロボット1の動力学特性、具体的には、ロボット1の周波数応答を表している。例えば、スレーブモデルは、一次遅れ系のモデルである。ロボット要素76の伝達関数Gp2は、下記の式(8)で表される。
対象物要素77は、現在位置xcsを接触力fsに変換する。つまり、対象物要素77は、対象物Wに相当し、対象物Wの動力学モデルである対象物モデルで表される。対象物モデルは、対象物Wの動力学特性を表す。具体的には、対象物モデルは、対象物Wの機械インピーダンス、即ち、剛性係数kw及び粘性係数cwを含んでいる。例えば、対象物モデルをバネ・ダンパモデルで近似すると、対象物モデルは、下記の式(9)で表される。その場合、対象物要素77の伝達関数Gk2は、下記の式(10)で表される。
このようなスレーブ制御系7Bの一巡伝達関数Gs(jω)は、下記の式(12)のようになる。
提示部38は、マスタ制御系7Aのゲイン交差周波数ωcg1及びゲイン余裕gm1、並びに、スレーブ制御系7Bのゲイン交差周波数ωcg2及びゲイン余裕gm2(以下、「ゲイン交差周波数ωcg1等」とも称する)を求め、ゲイン交差周波数ωcg1等を用いて力制御の周波数特性を表す。
提示部38は、応答性に関連する第1評価値と安定性に関連する第2評価値とで力制御の周波数特性を表現する。例えば、提示部38は、第1評価値を「速さ」と称し、0~100%の値で表す。提示部38は、第2評価値を「揺れにくさ」と称し、0~100%の値で表す。第1評価値と第2評価値とは相対的な関係を有する。つまり、第1評価値が高い場合には、第2評価値は低くなる。一方、第1評価値が低い場合には、第1評価値は高くなる。
速さの0%は、応答性が低いことを意味し、速さの100%は、応答性が高いことを意味する。例えば、ゲイン交差周波数が所定の第1周波数以下のときに、速さは0%となる。ゲイン交差周波数が第2周波数(>第1周波数)以上のときに速さは100%となる。ゲイン交差周波数が第1周波数よりも大きく第2周波数よりも小さいときには、速さは、0%よりも大きく100%よりも小さい値となる。より詳しくは、ゲイン交差周波数が第1周波数に近いときには速さは0%に近い値となる。ゲイン交差周波数が第2周波数に近いときには速さは100%に近い値となる。
揺れにくさの0%は、安定性が低いことを意味し、揺れにくさの100%は、安定性が高いことを意味する。例えば、ゲイン余裕が所定の第1値以下のときには、揺れにくさは0%となる。ゲイン余裕が第2値(>第1値)以上のときには、揺れにくさは100%となる。ゲイン余裕が第1値よりも大きく第2値よりも小さいときには、揺れにくさは0%よりも大きく100%よりも小さい値となる。より詳しくは、ゲイン余裕が第1値に近いときには揺れにくさは0%に近い値となる。ゲイン余裕が第2値に近いときには揺れにくさは100%に近い値となる。
提示部38は、マスタ制御系7Aに関し、ゲイン交差周波数ωcg1から速さを求め、ゲイン余裕gm1から揺れにくさを求める。提示部38は、スレーブ制御系7Bに関し、ゲイン交差周波数ωcg2から速さを求め、ゲイン余裕gm2から揺れにくさを求める。つまり、提示部38は、マスタ制御系7Aの速さ及び揺れにくさとスレーブ制御系7Bの速さ及び揺れにくさとを求める。
提示部38は、こうして求められたマスタ制御系7Aに関する速さ及び揺れにくさ、並びに、スレーブ制御系7Bに関する速さ及び揺れにくさを表示装置35に表示させる。こうして、操作者Uは、操作者U及び操作装置2の動力学特性を考慮したマスタ制御系7Aの周波数特性、並びに、対象物W及びロボット1の動力学特性を考慮したスレーブ制御系7Bの周波数特性を知ることができる。
〈動力学特性の推定〉
ただし、対象物W、操作者U、ロボット1及び操作装置2のそれぞれの動力学特性は、一定ではない。例えば、対象物Wの剛性係数kw及び粘性係数cwは、対象物Wごとの個体差及び対象物Wにおける加工場所等によって異なり得る。操作者Uの剛性係数ku及び粘性係数cuは、操作者Uごとの個人差及び操作者Uの姿勢等によって異なり得る。また、ロボット1の時定数Trは、ロボットアーム12の機差及び形状等によって異なり得る。操作装置2の時定数Tcは、支持機構22の機差及び形状等によって異なり得る。
ただし、対象物W、操作者U、ロボット1及び操作装置2のそれぞれの動力学特性は、一定ではない。例えば、対象物Wの剛性係数kw及び粘性係数cwは、対象物Wごとの個体差及び対象物Wにおける加工場所等によって異なり得る。操作者Uの剛性係数ku及び粘性係数cuは、操作者Uごとの個人差及び操作者Uの姿勢等によって異なり得る。また、ロボット1の時定数Trは、ロボットアーム12の機差及び形状等によって異なり得る。操作装置2の時定数Tcは、支持機構22の機差及び形状等によって異なり得る。
そのため、推定部37は、対象物W、操作者U、ロボット1及び操作装置2のそれぞれの動力学特性を推定する。提示部38は、推定された対象物W、操作者U、ロボット1及び操作装置2のそれぞれの動力学特性を用いてゲイン交差周波数ωcg1等、ひいては、力制御の周波数特性を導出する。
尚、この例では、操作力センサ23の時定数Tf1及び接触力センサ13の時定数Tf2は、一定であると想定している。ただし、推定部37は、操作力センサ23及び接触力センサ13の動力学特性として時定数Tf1及び時定数Tf2をさらに推定してもよい。その場合、提示部38は、ゲイン交差周波数ωcg1等を導出する際に、推定された操作力センサ23及び接触力センサ13の動力学特性も考慮する。
具体的には、推定部37は、力制御の実行中に、対象物Wの剛性係数kw及び粘性係数cw、操作者Uの剛性係数ku及び粘性係数cu、ロボット1の時定数Tr、並びに、操作装置2の時定数Tcを推定する。
推定部37は、操作者Uの機械インピーダンス、即ち、剛性係数ku及び粘性係数cuを用いて下記の式(13)のように表される操作者モデルを想定する。
推定部37は、この操作者モデルから、θ及びξを式(14)のように設定し、式(15),(16)で示す忘却係数付き逐次最小二乗法によってθを力制御の実行中に時々刻々と推定する。尚、式(15)におけるy(k)には、式(13)のfmが代入される。
こうして、推定部37は、操作者モデルを用いて操作者Uの剛性係数ku及び粘性係数cuを推定する。
推定部37は、対象物Wの機械インピーダンス、即ち、剛性係数kw及び粘性係数cwを用いて下記の式(17)のように表される対象物モデルを想定する。
推定部37は、この対象物モデルから、θ及びξを式(18)のように設定し、前述の式(15),(16)で示す忘却係数付き逐次最小二乗法によってθを力制御の実行中に時々刻々と推定する。尚、式(15)におけるy(k)には、式(17)のfsが代入される。
推定部37は、下記の式(19)のように、時定数Trを用いた一次遅れ系のモデルでスレーブモデルを想定する。
推定部37は、このスレーブモデルから、θ及びξを式(20)のように設定し、前述の式(15),(16)で示す忘却係数付き逐次最小二乗法によってθを力制御の実行中に時々刻々と推定する。尚、式(15)にy(k)には、式(17)のXcurが代入される。
推定部37は、下記の式(21)のように、時定数Tcを用いた一次遅れ系のモデルでマスタモデルを想定する。
ただし、このようにして推定される操作者U等の動力学特性も、ロボット1等の状態によっては推定できない場合がある。例えば、操作はUが操作部21を把持していない場合によっては、操作力fmが検出されないため、推定部37は、剛性係数ku等を推定することができない。エンドエフェクタ11が対象物Wに接触していない場合には、接触力fsが検出されないため、推定部37は、剛性係数kw等を推定することができない。あるいは、ロボット1及び操作装置2が停止している場合には、エンドエフェクタ11及び操作装置2の変位が無いため、推定部37は、時定数Tr等を推定することができない。
そのため、推定部37は、操作者U等の動力学特性を推定可能な状態か否かを判定し、推定不能な状態の場合には推定値を保持する機能を有する。図12は、推定部37による推定処理のフローチャートである。このフローチャートに従った処理は、対象物W、操作者U、ロボット1及び操作装置2のそれぞれの動力学特性の推定について実行される。つまり、推定部37は、図12のフローチャートに従った対象物Wの動力学特性の推定、操作者Uの動力学特性の推定、ロボット1の動力学特性の推定、及び、操作装置2の動力学特性の推定を並行して別々に実行する。
推定の開始時は、剛性係数kw、粘性係数cw、剛性係数ku、粘性係数cu、時定数Tr、及び、時定数Tcのそれぞれには初期値が設定されている。また、対象物W、操作者U、ロボット1及び操作装置2のそれぞれの動力学特性の推定における忘却係数付き逐次最小二乗法の式(15)、(16)のθ、Γ、λにも初期値が設定されている。
まず、推定部37は、ステップS101において、動力学特性の推定が可能な状態か否かを判定する。
例えば、操作者U又は対象物Wの動力学特性の推定には、前述の如く、操作力fm又は接触力fsが必要である。しかし、操作者Uが操作部21に力を加えていない場合には操作力fmが検出されない。また、エンドエフェクタ11が対象物Wに接触していないときには接触力fsが検出されない。そのため、操作者U又は対象物Wの動力学特性を推定する場合には、推定部37は、操作力fm又は接触力fsが所定期間以上検出されているか否かを判定する。推定部37は、操作力fm又は接触力fsの検出が瞬間的ではなく、所定期間継続していることを判定することによって、操作力fm又は接触力fsの検出が加工作業によるものか偶発的なものかを判定することができる。
操作力fm又は接触力fsが所定期間以上検出されている場合には、推定部37は、操作者U又は対象物Wの動力学特性の推定可能状態であると判定する。一方、操作力fm又は接触力fsが所定期間以上検出されていない場合には、推定部37は、操作者U又は対象物Wの動力学特性の推定不能状態であると判定する。
一方、ロボット1又は操作装置2の動力学特性の推定には、前述の如く、エンドエフェクタ11又は操作部21の変位が必要である。そのため、ロボット1又は操作装置2の動力学特性を推定する場合には、推定部37は、エンドエフェクタ11又は操作部21が変位しているかを判定する。具体的には、推定部37は、指令速度xd’が所定閾値以上であることをもって、エンドエフェクタ11又は操作部21が変位していると判定する。
エンドエフェクタ11又は操作部21が変位している場合には、推定部37は、ロボット1又は操作装置2の動力学特性の推定可能状態であると判定する。一方、エンドエフェクタ11又は操作部21が変位していない場合には、推定部37は、ロボット1又は操作装置2の動力学特性の推定不能状態であると判定する。
ステップS101において推定可能状態と判定された場合には、推定部37は、ステップS102において、忘却係数付き逐次最小二乗法に動力学特性の推定を行う。尚、操作者U又は対象物Wの動力学特性を推定する場合には、式(14)、(18)等に示すように、操作部21又はエンドエフェクタ11の変位量が必要である。そのため、ステップS101において推定可能状態と判定されたときの操作部21又はエンドエフェクタ11の位置を初期位置に設定して、操作部21又はエンドエフェクタ11の変位量を求める。このステップS102で求められた推定値は、暫定的であり、まだ確定的な推定値ではない。以下、ステップS102で推定されてから確定されるまでの推定値を「新推定値」と称し、確定して保持されている推定値を「現推定値」と称する。
次に、推定部37は、ステップS103において、新推定値と現推定値との偏差の絶対値が所定値α以下か否かを判定する。例えば、推定不能状態から推定可能状態に遷移したときには、一時的に推定値の変動が大きい場合がある。ステップS103では、このような推定値の大きな変動があるか否かが判定される。
偏差の絶対値が所定値αよりも大きい場合には、推定部37は、現推定値を更新することなく、ステップS101へ戻り、ステップS101の処理を再び実行する。
一方、偏差の絶対値が所定値α以下の場合には、推定部37は、ステップS104において、推定値の平均を求める。詳しくは、推定部37は、新推定値及び現推定値を含む、直近の所定個数の推定値の平均値を求める。続いて、推定部37は、ステップS105において、推定値の平均値で現推定値を更新する。推定値の平均値で現推定値が更新されることによって、現推定値の急激な変動が防止される。
その後、推定部37は、ステップS101へ戻り、ステップS101からの処理を繰り返す。
一方、ステップS101において推定不能状態と判定された場合には、推定部37は、ステップS106において、忘却係数付き逐次最小二乗法における推定式の変数(具体的には、θ、Γ、λ)を初期化する。その後、推定部37は、ステップS101へ戻り、ステップS101の処理を再び実行する。推定不能状態の間は、推定部37は、ステップS101及びS106の処理を繰り返す。そして、推定不能状態から推定可能状態に遷移すると、推定部37は、ステップS102以降の処理を実行し、新推定値の導出及び現推定値の更新等を実行する。つまり、推定部37は、推定不能状態の間は、現推定値を更新せず保持する。
このようにして、推定部37は、力制御の実行中に操作者U等の動力学特性を推定する。推定部37は、動力学特性を推定可能か否かを判定することによって、動力学特性を適切に推定することができる。その結果、提示部38は、力制御の周波数特性を適切に求めて、提示することができる。
〈制御パラメータの自動調整〉
ロボットシステム100では、力制御の周波数特性が目標周波数特性となるように、力制御の制御パラメータが自動的に調整される。具体的には、設定部39が目標周波数特性を設定し、調整部310が目標周波数特性に応じて制御パラメータを調整する。その際、推定部37によって推定された操作者U等の動力学特性が用いられる。
ロボットシステム100では、力制御の周波数特性が目標周波数特性となるように、力制御の制御パラメータが自動的に調整される。具体的には、設定部39が目標周波数特性を設定し、調整部310が目標周波数特性に応じて制御パラメータを調整する。その際、推定部37によって推定された操作者U等の動力学特性が用いられる。
詳しくは、設定部39は、力制御の目標周波数特性の入力を入力装置34を介して操作者Uから受け付け、目標周波数特性を設定する。設定部39は、スレーブ制御系7Bの目標周波数特性とマスタ制御系7Aの目標周波数特性とを個別に設定する。つまり、操作者Uは、スレーブ制御系7B及びマスタ制御系7Aの一方又は両方の目標周波数特性を入力装置34を介して入力する。
このとき、目標周波数特性の入力前に、提示部38による周波数特性の提示があってもよい。この場合、操作者は、提示された現状の周波数特性を参考にして目標周波数特性を入力することができる。あるいは、予め目標周波数特性が決まっている場合等には、提示部38による周波数特性の提示無しに目標周波数特性が入力されてもよい。
入力される目標周波数特性は、周波数特性に関連する任意のパラメータであり得る。例えば、目標周波数としてのパラメータは、提示部38によって提示される周波数特性と同じ第1評価値(即ち、速さ)及び第2評価値(即ち、揺れにくさ)であってもよい。提示部38によって現状の周波数特性が提示されてから目標周波数特性が入力される場合には、提示される周波数特性と入力される目標周波数特性とは同じパラメータであることが好ましい。ただし、目標周波数特性としてのパラメータは、提示部38によって提示される周波数特性と異なるパラメータであってもよい。例えば、目標周波数特性のパラメータは、ゲイン交差周波数及びゲイン余裕であってもよい。
調整部310は、マスタ制御系7Aとスレーブ制御系7Bとで別々に制御パラメータを調整する。具体的には、調整部310は、マスタ制御系7Aの周波数特性が目標周波数特性となるように調整された制御パラメータである第1制御パラメータと、スレーブ制御系7Bの周波数特性が目標周波数特性となるように調整された制御パラメータである第2制御パラメータとを生成する。すなわち、第1制御パラメータは、操作者U等の動力学特性に応じて調整されている。第2制御パラメータは、対象物W等の動力学特性に応じて調整されている。
尚、マスタ制御系7A及びスレーブ制御系7Bの一方だけの目標周波数特性が設定されている場合には、調整部310は、第1制御パラメータ及び第2制御パラメータのうち目標周波数特性が設定された制御系に対応する方の制御パラメータを生成する。
詳しくは、マスタ制御系7Aの目標周波数特性が設定されている場合には、調整部310は、図10に示すマスタ制御系7Aのブロック線図及び式(7)のマスタ制御系7Aの一巡伝達関数Gm(jω)に基づいて制御パラメータを調整する。調整部310は、操作者Uの動力学特性及び操作装置2の動力学特性を用いて制御パラメータを調整する。例えば、調整部310は、マスタ制御系7Aのゲイン交差周波数ωcg1及びゲイン余裕gm1が目標周波数特性に対応する値になるように、推定部37によって推定された操作者Uの機械インピーダンス、即ち、剛性係数ku及び粘性係数cu、並びに、操作装置2の周波数応答、即ち、時定数Tcを用いて、慣性係数md及び粘性係数cdを調整する。調整された慣性係数md及び粘性係数cdが、第1制御パラメータである。
スレーブ制御系7Bの目標周波数特性が設定されている場合には、調整部310は、図11に示すスレーブ制御系7Bのブロック線図及び式(12)のスレーブ制御系7Bの一巡伝達関数Gs(jω)に基づいて制御パラメータを調整する。調整部310は、対象物Wの動力学特性及びロボット1の動力学特性を用いて制御パラメータを調整する。例えば、調整部310は、スレーブ制御系7Bのゲイン交差周波数ωcg2及びゲイン余裕gm2が目標周波数特性に対応する値になるように、推定部37によって推定された対象物Wの機械インピーダンス、即ち、剛性係数kw及び粘性係数cw、並びに、ロボット1の周波数応答、即ち、時定数Trを用いて、慣性係数md及び粘性係数cdを調整する。調整された慣性係数md及び粘性係数cdが、第2制御パラメータである。
剛性係数ku、粘性係数cu、剛性係数kw、粘性係数cw、時定数Tc及び時定数Trは、前述の如く、力制御中に変化し得る。そのため、調整部310は、力制御中に推定部37によって継続的に推定される剛性係数ku、粘性係数cu、剛性係数kw、粘性係数cw、時定数Tc及び時定数Trを用いて、慣性係数md及び粘性係数cdを継続的に調整する。
周波数応答が目標周波数応答となるような慣性係数md及び粘性係数cdを導出する方法は、種々の方法がある。例えば、調整部310は、FRIT(Fictitious Reference Iterative Tuning)を用いて、慣性係数md及び粘性係数cdを調整する。FRITは、データ駆動型調整手法の1つである。
あるいは、調整部310は、目標周波数特性に対応するゲイン交差周波数及びゲイン余裕を求め、求められたゲイン交差周波数及びゲイン余裕及び推定部37によって推定された時定数Tc、剛性係数ku及び粘性係数cu、又は、時定数Tr、剛性係数kw及び粘性係数cwを用いて、一巡伝達関数Gm又は一巡伝達関数Gsに基づいて慣性係数md及び粘性係数cdを求めてもよい。
調整部310は、このような制御パラメータの調整を力制御中に実行する。力制御部36は、調整部310によって調整された制御パラメータを用いて力制御を実行する。具体的には、力/速度換算部64は、調整された制御パラメータを用いて指令速度xd’を求める。このとき、力制御部36は、第1制御パラメータ及び第2制御パラメータの何れかを用いて力制御を実行する。
以下に、一例として、力制御部36が第1制御パラメータと第2第2制御パラメータとを使い分けて力制御を実行する処理について説明する。図13は、制御パラメータ調整のフローチャートである。
まず、ステップS201において、提示部38は、現状の力制御の周波数特性を提示する。詳しくは、現状の操作者U、対象物W、ロボット1及び操作装置2によって既に実行された力制御において周波数特性が求められている場合等には、提示部38は、その求められた周波数特性を表示装置35を介して操作者Uに提示する。
それに対して、操作者Uが入力装置34を介して目標周波数特性を入力すると、設定部39は、力制御の目標周波数特性の入力を受け付け、目標周波数特性を設定する。この例では、マスタ制御系7Aとスレーブ制御系7bとの両方の目標周波数特性が設定される。
その後、ステップS203において、力制御部36は、力制御を開始する。力制御の開始後、推定部37は、ステップS204において、操作者U等の動力学特性を推定する。ステップS204は、操作者の動力学特性を推定することに相当する。
そして、調整部310は、ステップS205において、力制御の周波数特性が目標周波数特性となるように、操作者U等の動力学特性等に応じて制御パラメータを調整する。このとき、調整部310は、マスタ制御系7Aの周波数特性が目標周波数特性となるように調整された第1制御パラメータと、スレーブ制御系7Bの周波数特性が目標周波数特性となるように調整された第2制御パラメータとを生成する。
力制御部36は、ステップS206において、エンドエフェクタ11が対象物Wに接触しているか否かを判定する。力制御部36は、接触力fsが所定期間以上検出されているか否かを判定する。力制御部36は、接触力fsが所定期間以上検出されている場合には、エンドエフェクタ11が対象物Wに接触していると判定する。力制御部36は、接触力fsの検出が瞬間的ではなく、所定期間継続していることを判定することによって、接触力fsの検出が加工作業によるものか偶発的なものかを判定している。
尚、ここでの所定期間は、動力学特性の推定可能状態か否かを判定する際(ステップS101参照)の接触力fsが検出されている所定期間と同じであっても、異なっていてもよい。
エンドエフェクタ11が対象物Wへ接触している場合には、力制御部36は、ステップS207において、第2制御パラメータを使用して力制御を実行する。つまり、スレーブ制御系7Bの周波数特性が目標周波数特性となるように制御パラメータが調整され、調整された制御パラメータによって力制御が実行される。
このように、力制御部36は、エンドエフェクタ11による加工中は第2制御パラメータを用いることによって、エンドエフェクタ11及び操作部21の両方の振動を防止して力制御を実行することができる。
詳しくは、ステップS202では、当然ながらマスタ制御系7A及びスレーブ制御系7Bの何れにおいても振動が生じ難いような目標周波数特性が設定されると想定される。そして、対象物Wの機械インピーダンスは、通常、操作者Uの機械インピーダンスに比べて大きい。そのため、エンドエフェクタ11を含むスレーブ制御系7Bの周波数特性が目標周波数特性となるように、即ち、スレーブ制御系7Bでの安定性が確保されるように制御パラメータが調整されることによって、マスタ制御系7Aにおける操作部21の振動も必然的に防止される。
一方、エンドエフェクタ11が対象物Wへ接触していない場合には、力制御部36は、ステップS208において、第1制御パラメータを使用して力制御を実行する。つまり、マスタ制御系7Aの周波数特性が目標周波数特性となるように制御パラメータが調整され、調整された制御パラメータによって力制御が実行される。
エンドエフェクタ11が対象物Wへ非接触の場合には、操作部21が振動しなければ、エンドエフェクタ11も振動しない。そのため、操作部21を含むマスタ制御系7Aの周波数特性が目標周波数特性となるように制御パラメータが調整されることによって、スレーブ制御系7Bにおけるエンドエフェクタ11の振動も必然的に防止される。
尚、ステップS205,S206,S207,S208は、力制御の周波数特性が目標周波数特性となるように、推定された操作者の動力学特性に応じて力制御の制御パラメータを調整することに相当する。
ステップS207又はS208の後は、力制御部36は、ステップS209において、力制御が終了されたか否かを判定する。力制御が終了していない場合には、力制御部36は、ステップS206からの処理を繰り返す。
このように、力制御部36は、エンドエフェクタ11が対象物Wに接触しているか否かに応じて第1制御パラメータと第2制御パラメータとを使い分ける。具体的には、エンドエフェクタ11が対象物Wに接触している場合には第2制御パラメータが使用され、エンドエフェクタ11が対象物Wに接触していない場合には第1制御パラメータが使用される。その結果、エンドエフェクタ11が対象物Wに接触している場合でも接触していない場合でも、エンドエフェクタ11及び操作部21の振動が効果的に防止される。その結果、力制御におけるロボット1及び操作装置2の挙動が安定する。
このように構成されたロボットシステム100においては、操作者U又は対象物Wの動力学特性(例えば、機械インピーダンス)の変化を考慮した周波数特性が目標周波数特性になるように力制御の制御パラメータが調整される。それに加えて、操作装置2又はロボット1の動力学特性(例えば、周波数応答)の変化も考慮して、制御パラメータが調整される。その結果、力制御におけるロボット1及び操作装置2の挙動が安定する。
詳しくは、操作部21は操作者Uに把持されるので、操作部21は、支持機構22だけでなく、操作者Uによっても支持されているとみなすことができる。つまり、操作部21の安定性及び応答性は、操作者Uの機械インピーダンスの影響を受ける。操作者Uの機械インピーダンスは、操作者Uの個人差がある。さらに、同じ操作者Uであっても、操作者Uの姿勢、例えば、操作者Uの腕が伸びているか及び曲がっているか等の腕の状態に応じて操作者Uの機械インピーダンスが変化し得る。さらに、操作装置2の安定性及び応答性は、操作者Uの腕と同様に、支持機構22の状態に応じて変化し得る。また、操作者Uの個人差ほどではないにしても、操作装置2にも多少の機差があり、この機差も操作装置2の安定性及び応答性に影響を与え得る。
一方、エンドエフェクタ11は、対象物Wに接触しているので、エンドエフェクタ11は、ロボットアーム12だけでなく、対象物Wによっても支持されているとみなすことができる。つまり、エンドエフェクタ11の安定性及び応答性は、対象物Wの機械インピーダンスの影響を受ける。対象物Wの機械インピーダンスは、対象物Wの個体差がある。さらに、同じ対象物Wであっても、対象物Wのうち加工部分又は加工の進行状況に応じて対象物Wの機械インピーダンスが変化し得る。さらに、ロボット1の安定性及び応答性は、ロボットアーム12の形状に応じて変化し得る。また、対象物Wの個体差ほどではないにしても、ロボット1にも多少の機差があり、この機差もロボット1の安定性及び応答性に影響を与え得る。
これらの対象物W、操作者U、ロボット1及び操作装置2の動力学特性が考慮されない場合には、周波数特性が目標周波数特性となるように制御パラメータが調整されても、周波数特性が安定しにくい。
例えば、操作者Uが別の操作者Uに変わったり、同じ操作者Uであっても姿勢が変わったりすると、力制御の周波数特性が変化し得る。場合によっては、操作者Uが保持する操作部21が振動する虞がある。あるいは、対象物Wが変わったり、対象物Wの加工部分が変わったりすると、力制御の周波数特性が変化し得る。場合によっては、エンドエフェクタ11が振動する虞がある。
また、操作装置2の支持機構22又はロボット1のロボットアーム12の姿勢が変わると、力制御の周波数特性が変化し得る。例えば、力制御の応答性が変化し得る。
ロボットシステム100では、実際の操作者Uの機械インピーダンス、操作装置2の周波数応答、対象物Wの機械インピーダンス、及びロボット1の周波数応答を推定し、これらの動力学特性の変化を考慮した力制御の周波数特性が目標周波数特性となるように、力制御の制御パラメータが調整される。そのため、操作者U等の動力学特性の変化に順応するように制御パラメータが調整される。その結果、操作者U等の変化があっても、力制御の挙動が安定する。
以上のように、制御装置3は、操作者Uから操作装置2(マスタ装置)へ加えられる操作力に応じてロボット1(スレーブ装置)を動作させて対象物Wに作用を加えると共に、ロボット1が対象物Wから受ける反力に応じて操作装置2を動作させる力制御を実行する力制御部36と、操作者Uの動力学特性を推定する推定部37と、力制御の周波数特性が目標周波数特性となるように、推定された操作者Uの動力学特性に応じて力制御の制御パラメータを調整する調整部310とを備える。
換言すると、制御装置3によるロボット制御方法は、操作者Uから操作装置2へ加えられる操作力に応じてロボット1を動作させて対象物Wに作用を加えると共に、ロボット1が対象物Wから受ける反力に応じて操作装置2を動作させる力制御を実行することと、操作者Uの動力学特性を推定することと、力制御の周波数特性が目標周波数特性となるように、推定された操作者Uの動力学特性に応じて力制御の制御パラメータを調整することとを含む。
また、ロボット制御プログラム321は、操作者Uから操作力が加えられる操作装置2と対象物Wに作用を加えるロボット1とを備えるロボットシステム100を制御する機能をコンピュータに実現させるためのロボット制御プログラムであって、操作装置2へ加えられる操作力に応じてロボット1を動作させて対象物Wに作用を加えると共に、ロボット1が対象物Wから受ける反力に応じて操作装置2を動作させる力制御を実行する機能と、操作者Uの動力学特性を推定する機能と、力制御の周波数特性が目標周波数特性となるように、推定された操作者Uの動力学特性に応じて力制御の制御パラメータを調整する機能とをコンピュータに実現させる。
さらに、ロボットシステム100は、操作者Uに操作される操作装置2と、対象物Wに作用を加えるロボット1と、制御装置3とを備える。
これらの構成によれば、制御パラメータが調整されることによって、力制御の周波数特性が目標周波数特性に近づく。この調整の際に、操作者Uの動力学特性の変化が考慮される。つまり、操作装置2には操作者Uから操作力が加えられるので、力制御における操作装置2の安定性及び応答性は、操作者Uの動力学特性の影響を受ける。操作者Uの動力学特性は、操作者Uの個人差及び姿勢等によって変化し得る。制御パラメータの調整に用いられる操作者Uの動力学特性は、一定ではなく、推定部37によって推定される。推定された操作者Uの動力学特性は、操作者Uの個人差等の差異又は変化に対応して変化する。そのため、操作者Uの個人差及び姿勢等が考慮された周波数特性が目標周波数特性となるように、力制御の制御パラメータが調整される。その結果、操作者Uの変化等があっても、力制御の挙動を安定させることができる。
また、推定部37は、操作装置2の動力学特性を推定し、調整部310は、周波数特性が目標周波数特性となるように、推定された操作者Uの動力学特性及び操作装置2の動力学特性に応じて制御パラメータを調整する。
この構成によれば、制御パラメータの調整の際に、操作者Uの動力学特性に加えて操作装置2の動力学特性が考慮される。つまり、力制御における操作装置2の安定性及び応答性は、操作装置2の動力学特性の影響を受ける。操作装置2の動力学特性は、操作装置2の機差及び状況等によって変化し得る。制御パラメータの調整に用いられる操作装置2の動力学特性は、一定ではなく、推定部37によって推定される。推定された操作装置2の動力学特性は、操作装置2の差異又は変化等に対応して変化する。そのため、操作装置2の機差及び状況等が考慮された周波数特性が目標周波数特性となるように、力制御の制御パラメータが調整される。その結果、操作者U及び操作装置2の変化等があっても、力制御の挙動を安定させることができる。
さらに、推定部37は、対象物Wの動力学特性を推定し、調整部310は、周波数特性が目標周波数特性となるように、推定された操作者Uの動力学特性及び対象物Wの動力学特性に応じて制御パラメータを調整する。
この構成によれば、制御パラメータの調整の際に、対象物Wの動力学特性の変化が考慮される。つまり、エンドエフェクタ11は対象物Wに接触しているので、力制御におけるロボット1の安定性及び応答性は、対象物Wの動力学特性の影響を受ける。対象物Wの動力学特性は、対象物Wの個体差等によって変化し得る。制御パラメータの調整に用いられる対象物Wの動力学特性は、一定ではなく、推定部37によって推定される。推定された対象物Wの動力学特性は、対象物Wの個体差等の差異又は変化に対応して変化する。そのため、対象物Wの個体差等が考慮された周波数特性が目標周波数特性となるように、力制御の制御パラメータが調整される。その結果、対象物W等の変化があっても、力制御の挙動を安定させることができる。
さらに、調整部310は、操作者Uの動力学特性に応じて調整された制御パラメータである第1制御パラメータと、対象物Wの動力学特性に応じて調整された制御パラメータである第2制御パラメータとを生成し、力制御部36は、第1制御パラメータと第2制御パラメータとを使い分けて力制御を実行する。
この構成によれば、マスタ制御系7Aの周波数特性を目標周波数特性とするための第1制御パラメータと、スレーブ制御系7Bの周波数特性を目標周波数特性とするための第2制御パラメータとが生成される。力制御部36は、力制御を実行する際に第1制御パラメータと第2制御パラメータとを使い分けることによって、周波数特性を目標周波数特性に近づける制御系をマスタ制御系7Aとスレーブ制御系7Bとで選択することができる。
さらにまた、力制御部36は、ロボット1が対象物Wに接触している状態においては第2制御パラメータを用いて力制御を実行する一方、ロボット1が対象物Wに接触していない状態においては第1制御パラメータを用いて力制御を実行する。
この構成によれば、対象物Wへのロボット1の接触時には、スレーブ制御系7Bの周波数特性が目標周波数特性に調整される。操作者Uの機械インピーダンスに比べて対象物Wの機械インピーダンスの方が大きい。そのため、対象物Wの動力学特性の変化を考慮して力制御の周波数特性を調整することによって、操作者Uを含むマスタ制御系7Aの周波数特性も安定化させることができる。一方、対象物Wへのロボット1の非接触時には、マスタ制御系7Aの周波数特性が目標周波数特性に調整される。ロボット1の非接触状態においては、エンドエフェクタ11が振動することはなく、振動の可能性があるのは操作装置2である。第1制御パラメータを用いることによって、操作装置2の動作を安定化させることができる。
また、推定部37は、ロボット1の動力学特性を推定し、調整部310は、周波数特性が目標周波数特性となるように、推定された対象物Wの動力学特性及びロボット1の動力学特性に応じて第2制御パラメータを生成する。
この構成によれば、第2制御パラメータは、対象物Wの動力学特性だけでなく、ロボット1の動力学特性の変化も考慮されている。ロボット1は、ロボット1姿勢等の動作状況に応じて周波数応答が変化し得る。そのため、ロボット1の動力学特性の変化を考慮することによって、力制御における安定性及び応答性を調整することができる。
また、制御装置3は、目標周波数特性の入力を受け付けて、目標周波数特性を設定する設定部39をさらに備える。
この構成によれば、目標周波数特性は、一定ではなく、変更され得る。目標周波数特性が設定部39によって適宜設定されることによって、力制御の周波数特性を柔軟に調整することができる。
さらに、制御装置3は、力制御の周波数特性を求め、求められた周波数特性を提示する提示部38をさらに備える。
この構成によれば、操作者Uは、現状の力制御の周波数特性を知ることができる。例えば、設定部39が設けられている構成においては、操作者Uは、提示部38によって提示された周波数特性を確認してから、目標周波数特性を入力することができる。
《その他の実施形態》
以上のように、本出願において開示する技術の例示として、前記実施形態を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用可能である。また、前記実施形態で説明した各構成要素を組み合わせて、新たな実施の形態とすることも可能である。また、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、前記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
以上のように、本出願において開示する技術の例示として、前記実施形態を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用可能である。また、前記実施形態で説明した各構成要素を組み合わせて、新たな実施の形態とすることも可能である。また、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、前記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
例えば、マスタ装置は、操作装置2に限定されず、操作者Uが操作力を加えることができる限り、任意の構成を採用することができる。スレーブ装置は、ロボット1に限定されず、対象物に接触した状態で作用を加える限り、任意の構成を採用することができる。
力制御部36による力制御は、一例である。合成力fm+fsから指令速度xd’を導出する運動方程式は、式(1)に限定されない。運動方程式には、弾性係数が含まれていてもよい。
操作者モデル、対象物モデル、マスタモデル及びスレーブモデルは、一例である。各モデルは、対象の動力学特性を表す限り、任意のモデルとすることができる。例えば、マスタモデル又はスレーブモデルは、二次遅れ系のモデルであってもよい。動力学特性は、機械インピーダンス又は周波数応答(例えば、時定数)に限定されない。
推定部37、提示部38、設定部39及び調整部310によって扱われる周波数特性は、マスタ制御系7A及びスレーブ制御系7Bの両方の周波数特性に限定されない。例えば、マスタ制御系7Aの周波数特性だけが対象となってもよい。
力制御部36は、エンドエフェクタ11の接触以外の要件で、第1制御パラメータと第2制御パラメータとを使い分けてもよい。例えば、力制御部36は、第1制御パラメータ及び第2制御パラメータのうち、操作者U等からの入力によって決められた制御パラメータを用いて力制御を実行してもよい。
マスタ制御系7Aの周波数特性に関し、操作装置2の動力学特性の変化を考慮しなくてもよい。つまり、操作装置2の周波数応答(即ち、時定数Tc)は一定とみなされ、操作者Uの動力学特性(即ち、剛性係数ku及び粘性係数cu)の変化だけが考慮されてもよい。
同様に、スレーブ制御系7Bの周波数特性に関し、ロボット1の動力学特性の変化を考慮しなくてもよい。つまり、ロボット1の周波数応答(即ち、時定数Tr)は一定とみなされ、対象物Wの動力学特性(即ち、剛性係数kw及び粘性係数cw)の変化だけが考慮されてもよい。
制御装置3において、力制御の周波数特性を提示する機能、即ち、提示部38が省略されてもよい。また、周波数特性を提示する形式は、第1評価値及び第2評価値に限定されない。周波数特性として、ゲイン交差周波数又はゲイン余裕が提示されてもよい。あるいは、周波数特性として、速さ及び揺れにくさとは異なる、応答性又は安定性を表す評価値が提示されてもよい。
設定部39が設定する目標周波数特性は、入力装置34から入力されるものに限定されない。目標周波数特性は、外部装置から制御装置3へ入力されてもよい。また、制御装置3において、力制御の目標周波数特性を設定する機能、設定部39が省略されてもよい。その場合、目標周波数特性は、予め設定されていてもよい。
調整部310が制御パラメータを調整する方法は、FRITを用いた方法に限定されない。目標周波数特性を達成するための制御パラメータを求めることができる限り、任意の方法が採用され得る。
前述のブロック図及びブロック線図は一例である。複数のブロックを1つのブロックとして実現したり、1つのブロックを複数のブロックに分割したり、一部の機能を別のブロックに移したりしてもよい。
前述のフローチャートは一例であり、ステップを省略又は変更してもよい。または、ステップの順番を変更したり、直列的な複数のステップを並列に処理したり、又は、並列的な複数のステップを直列的に処理したりしてもよい。
本開示の技術は、前記プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体であってもよい。また、前記プログラムは、インターネット等の伝送媒体を介して流通させることができるものであってもよい。
本明細書で開示する要素の機能は、開示された機能を実行するよう構成またはプログラムされた汎用プロセッサ、専用プロセッサ、集積回路、ASIC(Application Specific Integrated Circuits)、従来の回路、および/または、それらの組み合わせ、を含む回路または処理回路を使用して実行できる。プロセッサは、トランジスタやその他の回路を含むため、処理回路または回路と見なされる。本開示において、回路、ユニット、または手段は、列挙された機能を実行するハードウェアであるか、または、列挙された機能を実行するようにプログラムされたハードウェアである。ハードウェアは、本明細書に開示されているハードウェアであってもよいし、あるいは、列挙された機能を実行するようにプログラムまたは構成されているその他の既知のハードウェアであってもよい。ハードウェアが回路の一種と考えられるプロセッサである場合、回路、手段、またはユニットはハードウェアとソフトウェアの組み合わせであり、ソフトウェアはハードウェアおよび/またはプロセッサの構成に使用される。
100 ロボットシステム
1 ロボット(スレーブ装置)
2 操作装置(マスタ装置)
3 制御装置
36 力制御部
37 推定部
38 提示部
39 設定部
310 調整部
321 ロボット制御プログラム
1 ロボット(スレーブ装置)
2 操作装置(マスタ装置)
3 制御装置
36 力制御部
37 推定部
38 提示部
39 設定部
310 調整部
321 ロボット制御プログラム
Claims (11)
- 操作者からマスタ装置へ加えられる操作力に応じてスレーブ装置を動作させて対象物に作用を加えると共に、前記スレーブ装置が前記対象物から受ける反力に応じて前記マスタ装置を動作させる力制御を実行する力制御部と、
前記操作者の動力学特性を推定する推定部と、
前記力制御の周波数特性が目標周波数特性となるように、推定された前記操作者の動力学特性に応じて前記力制御の制御パラメータを調整する調整部とを備える制御装置。 - 請求項1に記載の制御装置において、
前記推定部は、前記マスタ装置の動力学特性を推定し、
前記調整部は、前記周波数特性が前記目標周波数特性となるように、推定された前記操作者の動力学特性及び前記マスタ装置の動力学特性に応じて前記制御パラメータを調整する制御装置。 - 請求項1又は2に記載の制御装置において、
前記推定部は、前記対象物の動力学特性を推定し、
前記調整部は、前記周波数特性が前記目標周波数特性となるように、推定された前記操作者の動力学特性及び前記対象物の動力学特性に応じて前記制御パラメータを調整する制御装置。 - 請求項3に記載の制御装置において、
前記調整部は、前記操作者の動力学特性に応じて調整された前記制御パラメータである第1制御パラメータと、前記対象物の動力学特性に応じて調整された前記制御パラメータである第2制御パラメータとを生成し、
前記力制御部は、前記第1制御パラメータと前記第2制御パラメータとを使い分けて前記力制御を実行する制御装置。 - 請求項4に記載の制御装置において、
前記力制御部は、前記スレーブ装置が前記対象物に接触している状態においては前記第2制御パラメータを用いて前記力制御を実行する一方、前記スレーブ装置が前記対象物に接触していない状態においては前記第1制御パラメータを用いて前記力制御を実行する制御装置。 - 請求項4又は5に記載の制御装置において、
前記推定部は、前記スレーブ装置の動力学特性を推定し、
前記調整部は、前記周波数特性が前記目標周波数特性となるように、推定された前記対象物の動力学特性及び前記スレーブ装置の動力学特性に応じて前記第2制御パラメータを生成する制御装置。 - 請求項1乃至6の何れか1つに記載の制御装置において、
前記目標周波数特性の入力を受け付けて、前記目標周波数特性を設定する設定部をさらに備える制御装置。 - 請求項1乃至7の何れか1つに記載の制御装置において、
前記力制御の周波数特性を求め、求められた前記周波数特性を提示する提示部をさらに備える制御装置。 - 前記操作者に操作される前記マスタ装置と、
前記対象物に作用を加える前記スレーブ装置と、
請求項1乃至8の何れか1つに記載の制御装置とを備えるロボットシステム。 - 操作者からマスタ装置へ加えられる操作力に応じてスレーブ装置を動作させて対象物に作用を加えると共に、前記スレーブ装置が前記対象物から受ける反力に応じて前記マスタ装置を動作させる力制御を実行することと、
前記操作者の動力学特性を推定することと、
前記力制御の周波数特性が目標周波数特性となるように、推定された前記操作者の動力学特性に応じて前記力制御の制御パラメータを調整することとを含むロボット制御方法。 - 操作者から操作力が加えられるマスタ装置と対象物に作用を加えるスレーブ装置とを備えるロボットシステムを制御する機能をコンピュータに実現させるためのロボット制御プログラムであって、
前記マスタ装置へ加えられる操作力に応じて前記スレーブ装置を動作させて対象物に作用を加えると共に、前記スレーブ装置が前記対象物から受ける反力に応じて前記マスタ装置を動作させる力制御を実行する機能と、
前記操作者の動力学特性を推定する機能と、
前記力制御の周波数特性が目標周波数特性となるように、推定された前記操作者の動力学特性に応じて前記力制御の制御パラメータを調整する機能とをコンピュータに実現させるためのロボット制御プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021164313A JP2023055151A (ja) | 2021-10-05 | 2021-10-05 | 制御装置、ロボットシステム、ロボット制御方法及びロボット制御プログラム |
PCT/JP2022/037135 WO2023058653A1 (ja) | 2021-10-05 | 2022-10-04 | 制御装置、ロボットシステム、ロボット制御方法及びロボット制御プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021164313A JP2023055151A (ja) | 2021-10-05 | 2021-10-05 | 制御装置、ロボットシステム、ロボット制御方法及びロボット制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023055151A true JP2023055151A (ja) | 2023-04-17 |
Family
ID=85803506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021164313A Pending JP2023055151A (ja) | 2021-10-05 | 2021-10-05 | 制御装置、ロボットシステム、ロボット制御方法及びロボット制御プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2023055151A (ja) |
WO (1) | WO2023058653A1 (ja) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5266875A (en) * | 1991-05-23 | 1993-11-30 | Massachusetts Institute Of Technology | Telerobotic system |
US8700213B2 (en) * | 2007-03-01 | 2014-04-15 | Tokyo Institute Of Technology | Maneuvering system having inner force sense presenting function |
US9789603B2 (en) * | 2011-04-29 | 2017-10-17 | Sarcos Lc | Teleoperated robotic system |
JPWO2018012110A1 (ja) * | 2016-07-11 | 2019-04-25 | ソニー株式会社 | 処理装置、システム、および制御方法 |
KR102353178B1 (ko) * | 2016-11-10 | 2022-01-20 | 코그니보티스 에이비 | 로봇을 지시하는 시스템 및 방법 |
JP2019130602A (ja) * | 2018-01-30 | 2019-08-08 | ソニー株式会社 | 情報処理装置、情報処理方法、及びプログラム |
JP2021062412A (ja) * | 2018-02-20 | 2021-04-22 | ソニー株式会社 | 触覚提示装置、及び触覚提示システム |
-
2021
- 2021-10-05 JP JP2021164313A patent/JP2023055151A/ja active Pending
-
2022
- 2022-10-04 WO PCT/JP2022/037135 patent/WO2023058653A1/ja unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023058653A1 (ja) | 2023-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4202365B2 (ja) | 力制御装置 | |
US10486309B2 (en) | Robot controlling method, robot apparatus, program, recording medium, and method for manufacturing assembly component | |
US7181314B2 (en) | Industrial robot with controlled flexibility and simulated force for automated assembly | |
JP5916583B2 (ja) | 多関節ロボットのウィービング制御装置 | |
US20180085921A1 (en) | Robot control device, robot, and robot system | |
JP2019188555A (ja) | ロボット制御装置およびロボットシステム | |
JP2017056549A (ja) | ロボット装置、ロボット制御方法、プログラム、記録媒体及び組立部品の製造方法 | |
WO2018113966A1 (en) | System and method for automatically adjusting a gravity vector of a robot | |
US11141855B2 (en) | Robot system, method of controlling robot arm, recording medium, and method of manufacturing an article | |
JP6652310B2 (ja) | ロボットシステム、ロボットアームの制御方法、プログラム、記録媒体、及び物品の製造方法 | |
WO2023058653A1 (ja) | 制御装置、ロボットシステム、ロボット制御方法及びロボット制御プログラム | |
JP2024009167A (ja) | 制御装置 | |
JP2016221661A (ja) | ロボット制御方法、組立品の製造方法、ロボット装置、プログラム及び記録媒体 | |
JP7288521B2 (ja) | マスタスレーブシステム及び制御方法 | |
JP6896824B2 (ja) | ロボット装置、ロボットシステム、ロボット装置の制御方法、ロボット装置を用いた物品の製造方法、情報処理装置、情報処理方法、制御プログラム及び記録媒体 | |
WO2022220217A1 (ja) | ロボットシステム、その制御方法及び制御プログラム | |
JP2019214105A (ja) | ロボット制御装置およびロボット制御方法 | |
WO2023013560A1 (ja) | ロボットシステム、ロボットの加工方法及び加工プログラム | |
WO2022075333A1 (ja) | ロボットシステム及びその制御方法 | |
JP2007313612A (ja) | 多関節ロボットの制御装置及びその制御方法 | |
WO2023013559A1 (ja) | ロボットシステム、ロボットの加工方法及び加工プログラム | |
WO2023200012A1 (ja) | 遠隔制御システム、遠隔制御方法及び遠隔制御プログラム | |
JP7277340B2 (ja) | マスタスレーブシステム、制御方法及び制御装置 | |
JP2019104091A (ja) | ロボット装置、ロボット装置の制御方法 | |
JP5868266B2 (ja) | 多関節ロボットの弾性変形補償制御装置および制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20230331 |