(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-13
(45)【発行日】2024-08-21
(54)【発明の名称】オーバーシュート量検出方法およびロボットシステム
(51)【国際特許分類】
B25J 13/00 20060101AFI20240814BHJP
【FI】
B25J13/00 Z
(21)【出願番号】P 2020122675
(22)【出願日】2020-07-17
【審査請求日】2023-06-21
(73)【特許権者】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】100179475
【氏名又は名称】仲井 智至
(74)【代理人】
【識別番号】100216253
【氏名又は名称】松岡 宏紀
(74)【代理人】
【識別番号】100225901
【氏名又は名称】今村 真之
(72)【発明者】
【氏名】関 竜太郎
(72)【発明者】
【氏名】豊福 篤
(72)【発明者】
【氏名】真野 知典
【審査官】稲垣 浩司
(56)【参考文献】
【文献】特開2018-118353(JP,A)
【文献】国際公開第2006/022201(WO,A1)
【文献】特開2019-181610(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
変位するアームのオーバーシュート量を検出するオーバーシュート量検出方法であって、
前記アームに信号同期動作を行わせ、前記信号同期動作時に前記アームの作業部における慣性を検出する慣性センサーから出力される第1同期信号と、前記信号同期動作時に前記アームの変位量を検出するエンコーダーから出力される第2同期信号と、に基づいて前記慣性センサーの信号と前記エンコーダーの信号とを同期させる同期ステップと、
前記アームに作業動作を行わせ、前記作業動作時に前記慣性センサーから出力される第1検出信号に対して2回積分と、前記第1検出信号に含まれる低周波成分の除去とを行って第1信号を生成し、前記作業動作時に前記エンコーダーから出力される第2検出信号から前記第1信号の低周波成分を補う第2信号を生成する信号生成ステップと、
前記第1信号
に前記第2信号
を加算して生成される第3信号とに基づいて前記アームのオーバーシュート量を検出するオーバーシュート量検出ステップと、を有することを特徴とするオーバーシュート量検出方法。
【請求項2】
前記信号同期動作は、前記作業動作の前および後の少なくとも一方で行われる請求項1に記載のオーバーシュート量検出方法。
【請求項3】
前記信号同期動作は、前記作業動作と異なる動作である請求項1または2に記載のオーバーシュート量検出方法。
【請求項4】
前記アームは、複数の駆動軸を有し、前記信号同期動作は、前記作業動作で用いられない駆動軸を用いた動作である請求項3に記載のオーバーシュート量検出方法。
【請求項5】
前記同期ステップでは、前記第1同期信号と前記第2同期信号との相関を取り、相関係数が最大となるシフト量に基づいて前記慣性センサーからの信号と前記エンコーダーからの信号とを同期させる請求項1ないし4のいずれか1項に記載のオーバーシュート量検出方法。
【請求項6】
変位するアームと、
前記アームの作業部における慣性を検出する慣性センサーと、
前記アームの変位量を検出するエンコーダーと、
前記アームに信号同期動作を行わせ、前記信号同期動作時に前記慣性センサーから出力される第1同期信号と、前記信号同期動作時に前記エンコーダーから出力される第2同期信号と、に基づいて前記慣性センサーの信号と前記エンコーダーの信号とを同期させる同期ステップと、前記アームに作業動作を行わせ、前記作業動作時に前記慣性センサーから出力される第1検出信号に対して2回積分と、前記第1検出信号に含まれる低周波成分の除去とを行って第1信号を生成し、前記作業動作時に前記エンコーダーから出力される第2検出信号から前記第1信号の低周波成分を補う第2信号を生成する信号生成ステップと、前記第1信号
に前記第2信号
を加算して生成される第3信号とに基づいて前記アームのオーバーシュート量を検出するオーバーシュート量検出ステップと、を行うオーバーシュート量検出部と、を有すること
を特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オーバーシュート量検出方法およびロボットシステムに関する。
【背景技術】
【0002】
特許文献1に記載されているロボット制御システムは、エンドエフェクターに設けられた加速度センサーを有し、この加速度センサーから出力される検出信号に基づいてアームの設定停止位置からのオーバーシュート量を検出する。具体的には、ロボット制御システムは、加速度センサーから出力される検出信号である加速度信号を2回積分することによりアームの位置を検出し、検出した位置と設定停止位置とのずれの最大値をオーバーシュート量として検出する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
加速度センサーから出力される加速度信号を2回積分するとノイズ起因によるドリフトが発生するため、積分を行う際に加速度信号から当該信号に含まれる低周波成分の信号をフィルター処理等によって除去する必要がある。しかしながら、低周波成分は、アームの移動を示す重要な成分であり、このような低周波成分を除去してしまうと、アームのオーバーシュート量を精度よく検出することができないという問題がある。
【課題を解決するための手段】
【0005】
本発明のオーバーシュート量検出方法は、変位するアームのオーバーシュート量を検出するオーバーシュート量検出方法であって、
前記アームに信号同期動作を行わせ、前記信号同期動作時に前記アームの作業部における慣性を検出する慣性センサーから出力される第1同期信号と、前記信号同期動作時に前記アームの変位量を検出するエンコーダーから出力される第2同期信号と、に基づいて前記慣性センサーの信号と前記エンコーダーの信号とを同期させる同期ステップと、
前記アームに作業動作を行わせ、前記作業動作時に前記慣性センサーから出力される第1検出信号に対して2回積分と、前記第1検出信号に含まれる低周波成分の除去とを行って第1信号を生成し、前記作業動作時に前記エンコーダーから出力される第2検出信号から前記第1信号の低周波成分を補う第2信号を生成する信号生成ステップと、
前記第1信号と前記第2信号とに基づいて前記アームのオーバーシュート量を検出するオーバーシュート量検出ステップと、を有する。
【0006】
本発明のロボットシステムは、変位するアームと、
前記アームの作業部における慣性を検出する慣性センサーと、
前記アームの変位量を検出するエンコーダーと、
前記アームに信号同期動作を行わせ、前記信号同期動作時に前記慣性センサーから出力される第1同期信号と、前記信号同期動作時に前記エンコーダーから出力される第2同期信号と、に基づいて前記慣性センサーの信号と前記エンコーダーの信号とを同期させる同期ステップと、前記アームに作業動作を行わせ、前記作業動作時に前記慣性センサーから出力される第1検出信号に対して2回積分と、前記第1検出信号に含まれる低周波成分の除去とを行って第1信号を生成し、前記作業動作時に前記エンコーダーから出力される第2検出信号から前記第1信号の低周波成分を補う第2信号を生成する信号生成ステップと、前記第1信号と前記第2信号とに基づいて前記アームのオーバーシュート量を検出するオーバーシュート量検出ステップと、を行うオーバーシュート量検出部と、を有する。
【図面の簡単な説明】
【0007】
【
図1】本発明の好適な実施形態に係るロボットシステムの全体構成を示す図である。
【
図3】オーバーシュート量の検出方法を示すフローチャートである。
【
図6】
図5の回転角度信号を時間微分して得られる第2同期信号を示すグラフである。
【発明を実施するための形態】
【0008】
以下、本発明のオーバーシュート量検出方法およびロボットシステムを添付図面に示す実施形態に基づいて詳細に説明する。
図1は、本発明の好適な実施形態に係るロボットシステムの全体構成を示す図である。
図2は、制御装置の構成を示すブロック図である。
図3は、オーバーシュート量の検出方法を示すフローチャートである。
図4は、第1同期信号の一例を示すグラフである。
図5は、回転角度信号の一例を示すグラフである。
図6は、
図5の回転角度信号を時間微分して得られる第2同期信号を示すグラフである。
【0009】
図1に示すロボットシステム1は、ロボット本体100と、ロボット本体100の駆動を制御する制御装置200と、を有する。
【0010】
まず、ロボット本体100について簡単に説明する。ロボット本体100は、水平多関節ロボット(スカラロボット)であり、例えば、電子部品等のワークの保持、搬送、組立および検査等の各作業で用いられる。なお、ロボット本体100の用途は、特に限定されない。
【0011】
また、ロボット本体100は、基台110と、基台110に接続されたアーム120と、を有する。また、アーム120は、基端部が基台110に接続され、基台110に対して第1軸J1まわりに回動可能な第1アーム121と、基端部が第1アーム121の先端部に接続され、第1アーム121に対して第1軸J1と平行な第2軸J2まわりに回動可能な第2アーム122と、を有する。また、第2アーム122の先端部には作業ヘッド130が設けられている。
【0012】
基台110は、例えば、図示しない床面にボルト等によって固定されている。また、基台110内には基台110に対して第1アーム121を鉛直方向に沿う第1軸J1まわりに回動させる駆動装置141が設けられており、第2アーム122内には第1アーム121に対して第2アーム122を第2軸J2まわりに回動させる駆動装置142が設けられている。
【0013】
駆動装置141には、第1アーム121を基台110に対して第1軸J1まわりに回動させる駆動源としてのモーターM1、モーターM1の駆動を制御するコントローラーC1、第1アーム121の第1軸J1まわりの変位量(回動角)を検出するエンコーダーE1等が含まれている。同様に、駆動装置142には、第2アーム122を第1アーム121に対して第2軸J2まわりに回動させる駆動源としてのモーターM2、モーターM2の駆動を制御するコントローラーC2、第2アーム122の第2軸J2まわりの変位量(回動角)を検出するエンコーダーE2等が含まれている。
【0014】
作業ヘッド130は、第2アーム122の先端部に同軸的に配置されたスプラインナット131およびボールネジナット132と、スプラインナット131およびボールネジナット132に挿通されたスプラインシャフト133と、を有する。スプラインシャフト133は、第2アーム122に対して、その中心軸であり、第1、第2軸J1、J2と平行な第3軸J3に沿った方向に昇降可能であり、第3軸J3と一致する第4軸J4まわりに回転可能である。
【0015】
このように、ロボット本体100は、第1軸J1、第2軸J2、第3軸J3および第4軸J4という4つの駆動軸を有する。
【0016】
第2アーム122内にはボールネジナット132を回転させてスプラインシャフト133を第3軸J3に沿った方向に昇降させる駆動装置143と、スプラインナット131を回転させてスプラインシャフト133を第4軸J4まわりに回転させる駆動装置144と、が設けられている。
【0017】
駆動装置143には、スプラインシャフト133を第2アーム122に対して第3軸J3方向に昇降させる駆動源としてのモーターM3、モーターM3の駆動を制御するコントローラーC3、スプラインシャフト133の第3軸J3方向の変位量(昇降量)を検出するエンコーダーE3等が含まれている。同様に、駆動装置144には、スプラインシャフト133を第2アーム122に対して第4軸J4まわりに回動させる駆動源としてのモーターM4、モーターM4の駆動を制御するコントローラーC4、スプラインシャフト133の第4軸J4まわりの変位量(回動角)を検出するエンコーダーE4等が含まれている。
【0018】
ここで、各エンコーダーE1~E4は、共通の固定座標系D1を有する。固定座標系D1は、互いに直交するX軸、Y軸およびZ軸を有しており、X軸およびY軸が水平方向に延び、Z軸が鉛直方向に延びている。このような固定座標系D1は、基台110に対して固定されており、そのため、アーム120の変位に関わらず、その位置は固定されている。
【0019】
スプラインシャフト133の下端部には、作業部としてのエンドエフェクター160を装着するためのペイロード150が設けられている。ペイロード150に装着するエンドエフェクター160としては目的の動作を行うことができれば、特に限定されないが、本実施形態では、対象物Qを把持するためのハンドが用いられている。なお、把持方法としては、特に限定されず、複数の爪部で挟み込んでもよいし、エアチャック、静電チャック等によって吸着させてもよい。
【0020】
本実施形態のエンドエフェクター160は、ペイロード150に装着された基部161と、基部161に対して開閉自在な一対の爪部162、163と、を有する。そして、爪部162、163を接近させることにより対象物Qを把持し、爪部162、163を離間させることにより、把持した対象物Qを離脱させることができる。ただし、エンドエフェクター160の構成としては、特に限定されない。
【0021】
また、ロボット本体100は、エンドエフェクター160の基部161に設けられた慣性センサー170を有する。この慣性センサー170は、互いに直交する3軸方向の加速度および3軸まわりの角速度をそれぞれ独立して検出することのできる慣性計測装置(IMU:inertial measurement unit)である。慣性センサー170は、可動座標系D2を有する。可動座標系D2は、互いに直交するX’軸、Y’軸およびZ’軸を有し、X’軸およびY’軸が水平方向に延び、Z’軸が鉛直方向に延びている。このような可動座標系D2は、基部161に対して固定されており、基部161がX軸方向、Y軸方向またはZ軸方向に移動・回動すればそれに伴って移動・回動するし、基部161が第3軸J3まわりに回転すればそれに伴って回転する。
【0022】
このように、慣性センサー170として加速度および角速度が計測可能な慣性計測装置を用いることにより、回転を伴わない並進運動(直線運動)であっても、並進運動を伴わない回転運動であっても、アーム120の移動や振動を検出することができる。
【0023】
以上、ロボット本体100の全体構成について簡単に説明した。ただし、ロボット本体100の構成については、特に限定されず、例えば、アーム120は、第1アーム121を省略し、第2アーム122が基台110に接続されている構成となっていてもよいし、第1アーム121と第2アーム122との間に、さらに、第1、第2軸J1、J2と平行な軸まわりに回転可能な少なくとも1つのアームが介在していてもよい。また、水平多関節ロボットではなく、複数のアームの回転軸が捩じれの関係にある6軸ロボット、双腕ロボット等の多関節ロボットであってもよい。
【0024】
制御装置200は、例えば、図示しないホストコンピューターからの指令に基づいて駆動装置141、142、143、144の駆動を制御する。このような制御装置200は、例えば、コンピューターから構成され、情報を処理するプロセッサー(CPU)と、プロセッサーに通信可能に接続されたメモリーと、外部インターフェースと、を有する。また、メモリーにはプロセッサーにより実行可能な各種プログラムが保存され、プロセッサーは、メモリーに記憶された各種プログラム等を読み込んで実行することができる。
【0025】
図2に示すように、制御装置200は、アーム120のオーバーシュート量を検出するオーバーシュート量検出部210と、オーバーシュート量検出部210での検出結果に基づいてアーム120の駆動条件を調整する駆動条件調整部220と、を有する。なお、アーム120のオーバーシュート量とは、アーム120を目標停止位置まで移動させた際の、前記目標停止位置に対するアーム120の行き過ぎ量の最大値である。
【0026】
オーバーシュート量検出部210は、アーム120のオーバーシュート量を検出する機能を有する。本実施形態のアーム120のオーバーシュート量とは、具体的には作業部であるエンドエフェクター160の基部161のオーバーシュート量を意味する。基部161は、対象物Qを把持する爪部162、163すなわちロボット本体100の作業部の十分近くに設けられている。そのため、当該部分のオーバーシュート量を検出することにより、作業部におけるオーバーシュート量をより精度よく検出することができる。そして、この検出結果を用いることにより、エンドエフェクター160の軌道をより精度よく制御することができ、その結果、ロボット本体100の作業精度および作業効率がそれぞれ向上する。
【0027】
オーバーシュート量検出部210は、慣性センサー170から出力される第1検出信号Aを取得し、取得した第1検出信号Aから第1信号AAを生成する第1信号生成部211と、各エンコーダーE1~E4から出力される第2検出信号Bを取得し、取得した第2検出信号Bから第2信号BBを生成する第2信号生成部212と、第1信号AAと第2信号BBとを同期させる信号同期部214と、第1信号AAと第2信号BBとを加算して第3信号CCを生成し、この第3信号CCに基づいてアーム120のオーバーシュート量を算出する算出部213と、を有する。
【0028】
以上、ロボットシステム1について簡単に説明した。次に、ロボットシステム1によるオーバーシュート量の検出方法について説明する。オーバーシュート量の検出方法は、アーム120に信号同期動作を行わせ、信号同期動作時に慣性センサー170およびエンコーダーE1~E4から出力される信号に基づいて、これら信号を同期させる同期ステップと、アーム120に作業動作を行わせ、作業動作時に慣性センサー170およびエンコーダーE1~E4から出力される信号に基づいて第1信号AAおよび第2信号BBを生成する信号生成ステップと、第1信号AAと第2信号BBとに基づいてアーム120のオーバーシュート量を検出するオーバーシュート量検出ステップと、オーバーシュート量検出ステップで算出されたオーバーシュート量に基づいて、アーム120の駆動条件を調整する駆動条件調整ステップと、を有する。
【0029】
同期ステップの説明に先立って、
図3に示すフローチャートに基づいて、信号生成ステップおよびオーバーシュート量検出ステップについて説明する。信号生成ステップおよびオーバーシュート量検出ステップでは、ロボットシステム1が作業動作を行った際のオーバーシュート量を検出する。作業動作とは、対象物Qの搬送、加工、検査等、対象物Qに対して行われる種々の動作であり、その精度を高めるためにアーム120のオーバーシュート量の検出が必要な動作を言う。言い換えると、ユーザーがオーバーシュート量を検出したいと望む全ての動作を言う。
【0030】
まず、信号生成ステップでの第1信号生成部211の処理について説明する。第1信号生成部211は、まず、ステップS11として、作業動作時に慣性センサー170から出力される加速度信号である第1検出信号Aを取得する。次に、第1信号生成部211は、ステップS12として、慣性センサー170から取得した第1検出信号Aの座標系である可動座標系D2をエンコーダーE1~E4の座標系である固定座標系D1に変換する。当該変換は、例えば、同次変換行列を用いて行うことができる。このように、第1検出信号Aの座標系である可動座標系D2をエンコーダーE1~E4の座標系である固定座標系D1に変換し、第1検出信号Aと第2検出信号Bとの座標系を合わせることにより、後の第3信号CCからアーム120のオーバーシュート量を精度よく算出することができる。
【0031】
次に、第1信号生成部211は、ステップS13として、第1検出信号Aと第2検出信号B、具体的には後述する位置信号B1とを同期させる。これにより、後の第3信号CCをより精度よく生成することができる。同期の方法としては、後述する同期ステップの説明の部分で詳述する。
【0032】
次に、第1信号生成部211は、第1検出信号Aを2回積分し、第1検出信号Aから低周波成分を除去する。具体的には、第1信号生成部211は、まず、ステップS14として、第1検出信号Aを積分して速度信号A1を得る。次に、第1信号生成部211は、ステップS15として、ハイパスフィルター等を用いて速度信号A1から低周波成分を除去する。次に、第1信号生成部211は、ステップS16として、速度信号A1を積分して位置信号A2を得る。次に、第1信号生成部211は、ステップS17として、ハイパスフィルター等を用いて位置信号A2から低周波成分を除去する。これにより、第1信号AAが得られる。
【0033】
ステップS15、S17で除去する低周波成分としては、その信号の周波数帯の中で相対的に低い周波数帯の成分を言い、絶対的な周波数帯を有する意味ではない。例えば、通常のロボット本体100の作動では、第1検出信号Aの周波数帯が1Hz~100Hz程度であるため、例えば、10Hz以下の成分とすることが好ましい。
【0034】
第1検出信号Aから低周波成分を除去するのは、次の理由による。上述のように加速度信号である第1検出信号Aを1回積分すれば速度信号A1が得られ、2回積分すれば位置信号A2が得られることは公知である。そのため、位置信号A2からエンドエフェクター160の基部161の位置を検出することも可能である。しかしながら、第1検出信号Aを2回積分した位置信号では低い周波数のノイズが強調されてしまう。そのため、第1検出信号Aを2回積分しただけの位置信号からは基部161の正確な位置を検出することが困難である。
【0035】
以上の理由から、上述のノイズを除去すべく、第1検出信号Aから低周波成分を除去する必要がある。なお、第1検出信号Aから低周波成分を除去するタイミングや回数は、特に限定されない。例えば、ステップS15、S17のいずれか一方を省略してもよい。また、ステップS15、S17を省略し、その代わりに、ステップS14に先立って第1検出信号Aから低周波成分を除去してもよい。
【0036】
上述のように、第1検出信号Aから低周波成分を除去することにより位置信号A2からノイズが除去されるが、除去した低周波成分は、アーム120の移動を示す重要な信号である。つまり、第1検出信号Aから低周波成分を除去すると、ノイズを除去すると共にアーム120の移動を示す重要な信号まで除去してしまう。そのため、低周波成分を除去した位置信号A2に基づいても、やはり、エンドエフェクター160の基部161の正確な位置を検出することが困難である。そこで、第2信号生成部212によって、第1検出信号Aから除去した低周波成分を補う第2信号BBを生成する。
【0037】
次に、信号生成ステップでの第2信号生成部212の処理について説明する。第2信号生成部212は、まずステップS21として、作業動作時に各エンコーダーE1~E4から出力される第2検出信号Bを取得し、これら各第2検出信号Bからエンドエフェクター160の基部161の位置信号B1を得る。次に、第2信号生成部212は、ステップS22として、位置信号B1と第1検出信号Aとを同期させる。この工程は、前述したステップS13と同工程であり、後の同期ステップの説明の部分で詳述する。次に、第2信号生成部212は、ステップS23として、ローパスフィルター等を用いて位置信号B1から高周波成分を除去する。これにより、第1信号AAから除去した低周波成分を補うための第2信号BBが得られる。
【0038】
ステップS23で除去する高周波成分としては、第2信号BBの周波数帯が第1信号AAから除去した周波数帯を含んでいることが好ましい。これにより、第1信号AAから除去した低周波成分を第2信号BBによって補うことができる。前述したように、本実施形態では、第1信号AAから10Hz以下の低周波成分が除去されているため、第2信号BBには0Hz~10Hzまでの低周波成分が含まれていることが好ましい。言い換えると、ステップS23では、10Hzを超える周波数成分を除去するようにローパスフィルターを設定することが好ましい。
【0039】
また、第2信号生成部212は、ステップS23とは別に、ステップS24として、前記ホストコンピューターからの位置指令(アーム120の目標停止位置に関する情報)と位置信号B1とに基づいて、アーム120の目標停止位置到達時における速度ベクトルV1を算出する。
【0040】
以上、信号生成ステップについて説明した。次に、オーバーシュート量検出ステップでの算出部213の処理について説明する。算出部213は、まず、ステップS31として、互いに同期された第1信号AAと第2信号BBとを加算して第3信号CCを得る。第3信号CCは、第1信号AAの低周波成分を第2信号BBで補った信号であり、エンドエフェクター160の基部161の三次元移動軌跡を示す合成信号である。ここで、第1信号AAと第2信号BBとは、前述したステップS13、S22において同期されているため、時間ずれのない精度のよい第3信号CCが合成される。
【0041】
次に、算出部213は、ステップS32として、速度ベクトルV1と第3信号CCとの内積をとり、速度方向すなわち基部161の移動方向の信号変位を算出する。次に、算出部213は、ステップS33として、ステップS32で算出した信号変位に基づいて、基部161のオーバーシュート量を算出する。具体的には、算出部213は、信号変位のピーク値(最大値)を基部161のオーバーシュート量として算出する。
【0042】
以上、オーバーシュート量検出ステップについて説明した。次に、ステップS13、S22において第1検出信号Aと位置信号B1とを同期させる方法について説明する。ステップS13、S22において第1検出信号Aと位置信号B1とを同期されるために、本実施形態では、ステップS13、S22を行う前までに、第1検出信号Aと位置信号B1とのシフト量ΔTを算出する同期ステップを行っておく。そして、ステップS13、S22では、この同期ステップで算出されたシフト量ΔT分だけ第1検出信号Aと位置信号B1とをずらすことにより、第1検出信号Aと位置信号B1とを同期する。以下、
図3に示すフローチャートに基づいて、同期ステップでの信号同期部214の処理について説明する。
【0043】
信号同期部214は、まず、ステップS41として、信号同期動作中に慣性センサー170から出力されるZ軸まわりの角速度信号である第1同期信号Gを取得すると共に、信号同期動作中にエンコーダーE1~E4から出力される検出信号Hを取得する。
【0044】
なお、信号同期動作は、ロボット本体100に第1検出信号Aと位置信号B1とを同期させるための動作である。この信号同期動作は、上述した作業動作の前および後の少なくとも一方において行えばよく、本実施形態では、作業動作の前および後の両方で行う。信号同期動作としては、特に限定されず、アーム120が有する4つの駆動軸すなわち第1軸J1、第2軸J2、第3軸J3および第4軸J4の少なくとも1つの軸を用いた動作であればよい。その中でも、信号同期動作は、上述した作業動作において用いられない駆動軸がある場合には、その用いられない駆動軸を用いた動作であることが好ましい。例えば、作業動作が第1軸J1まわりの回動の場合、信号同期動作は、第2アーム122の第2軸J2まわりの回動、スプラインシャフト133の第4軸J4まわりの回動および第3軸J3方向への移動の1つまたは2つ以上の組み合わせとすればよい。これにより、信号同期動作と作業動作とで互いの振動が影響し難くなる。すなわち、作業動作で用いた軸ではない軸を用いた信号同期動作は、作業動作と異なる動作であると言うことができる。
【0045】
つまり、信号同期動作を作業動作の前に行う場合には、信号同期動作の残留振動が作業動作に与える影響を低減することができる。そのため、作業動作の精度を向上させることができる。また、信号同期動作が終了してから作業動作を開始するまでの時間を短くすることができるため、同期にかかる時間すなわち同期ステップによる作業の遅延時間をより短くすることができる。反対に、信号同期動作を作業動作の後に行う場合には、作業動作の残留振動が信号同期動作に与える影響を低減することができる。そのため、振動同期動作の精度を向上させることができる。また、作業動作が終了してから信号同期動作を開始するまでの時間を短くすることができるため、同期にかかる時間をより短くすることができる。
【0046】
なお、以下では、説明の便宜上、作業動作を、第1アーム121の第1軸J1まわりの回動とし、信号同期作業を、スプラインシャフト133の第4軸J4まわりの回動とする。
【0047】
次に、信号同期部214は、ステップS42として、エンコーダーE1~E4から出力される検出信号Hに基づいて、作業部であるエンドエフェクター160のZ軸まわりの回転角度信号HHを生成する。一例として、
図4および
図5に、作業動作の前後に信号同期動作を行い、かつ、作業動作が第1軸J1まわりの90度往復動作であり、各信号同期動作が第4軸J4まわりの90度往復動作である場合の第1同期信号Gおよび回転角度信号HHを図示する。
【0048】
次に、信号同期部214は、ステップS43として、回転角度信号HHを時間微分(dHH/dt)してZ軸まわりの角速度信号である第2同期信号HHHを生成する。一例として、
図6に、
図5に示す回転角度信号HHを時間微分して取得した第2同期信号HHHを図示する。これにより、慣性センサー170から取得したZ軸まわりの角速度信号である第1同期信号Gと、エンコーダーE1~E4から取得したZ軸まわりの角速度信号である第2同期信号HHHとが取得される。次に、信号同期部214は、ステップS44として、第1同期信号Gと第2同期信号HHHとの相関を取り、相関係数が最大となるシフト量ΔT(時間差)を算出する。
【0049】
なお、第1同期信号Gと第2同期信号HHHとの相関の取り方については、特に限定されない。例えば、
図4および
図6中の領域T1、つまり、先の信号同期動作開始直前から後の振動同期動作終了直後までの信号同士について相関を取ってもよいし、領域T2、つまり、先の信号同期動作中の信号同士について相関を取ってもよいし、領域T3、つまり、後の信号同期動作中の信号同士について相関を取ってもよい。また、領域T2と領域T3との両方で相関を取った場合であって、これらから算出されたシフト量ΔTが互いに異なっている場合には、どちらか一方のシフト量ΔTを用いてもよいし、互いの平均値をシフト量ΔTとして用いてもよい。また、互いのシフト量ΔTが閾値以上に解離している場合には、精度よくシフト量ΔTを算出できなかったとして、上述したステップS41~44をやり直し、シフト量ΔTを算出し直してもよい。
【0050】
以上、同期ステップについて説明した。ステップS13、S22では、このようにして同期ステップで算出されたシフト量ΔTに基づいて第1検出信号Aと位置信号B1とを同期させる。つまり、同期ステップで算出されたシフト量ΔTだけ第1検出信号Aと位置信号B1とをずらす。これにより、ステップS31において、より高い精度の第3信号CCが得られ、より高い精度でオーバーシュート量を算出することができる。
【0051】
なお、本実施形態では、ステップS13、S22にて第1検出信号Aと位置信号B1とを同期させているが、同期のタイミングは、ステップS31にて第1信号AAと第2信号BBとを加算する前であれば、特に限定されない。例えば、ステップS13、S22を省略して、ステップS17、S23の後に、第1信号AAと第2信号BBとを同期ステップにおいて算出されたシフト量ΔTに基づいて同期させてもよい。
【0052】
以上、オーバーシュート量検出部210について説明した。このようなオーバーシュート量検出部210によれば、慣性センサー170から出力された第1検出信号Aから生成され、ノイズの大きい低周波成分が除去された第1信号AAに、各エンコーダーE1~E4から出力された第2検出信号Bから生成され、第1信号AAから除去された低周波成分を補うための第2信号BBを加算して生成される第3信号CCに基づいてオーバーシュート量を算出している。第2信号BBの低周波成分は、第1検出信号Aから除去された低周波成分よりもノイズが小さいため、第3信号CCに基づいてアーム120のオーバーシュート量を算出することにより、例えば、従来のように第1検出信号Aを2回積分しただけで低周波成分が除去されていない信号に基づいてアーム120のオーバーシュート量を検出する場合と比べて、より精度よくアーム120のオーバーシュート量を検出することができる。なお、第2信号BBの低周波成分のノイズが第1検出信号Aから除去された低周波成分のノイズよりも小さいのは、第2信号BBが第1信号AAのような積分処理を受けていないためである。
【0053】
また、モーターM1~M4の駆動によってもたらされるアーム120の位置変化と、それに伴って基部161に生じる振動(加速度)の両方を考慮して、基部161の位置を算出することができるため、基部161の三次元軌跡をより精度よく算出することができる。また、基部161の進行方向の軌跡だけを抽出することができ、慣性センサー170の基部161に対する配置向きによらず、どのような進行方向においても基部161のオーバーシュート量を精度よく算出することができる。特に、エンコーダーE1~E4から出力される第2検出信号Bに基づくことにより、基部161の静止時の残留振動によらず、精度よく基部161の進行方向を検出することができる。
【0054】
次に、駆動条件調整ステップについて説明する。駆動条件調整部220は、ステップS51として、ステップS33で算出されたオーバーシュート量に基づいて、アーム120の駆動条件を調整する。具体的には、オーバーシュート量検出部210によって検出されるオーバーシュート量が小さくなるように、好ましくはゼロとなるようにアーム120の駆動条件を調整する。
【0055】
調整可能な駆動条件としては、特に限定されないが、例えば、(1)アーム120の駆動開始直後の加速度、(2)加速が終わって等速で移動する際の速度すなわち最高速度、(3)目標位置に停止するための減速を開始する位置、(4)減速時の減速度、等が挙げられる。これら条件(1)から条件(4)の少なくとも1つを適宜調整してオーバーシュート量を小さく抑えることにより、アーム120の移動精度がより高まり、かつ、作業効率も高まる。具体的には、オーバーシュート量ができるだけ小さくなるように、モーターM1~M4のうちの少なくとも1つの駆動量を調整し、実行する。すなわち、駆動条件調整部220は、オーバーシュート量に相当する補正値を加味した命令信号Fを調整すべきモーターM1~M4に対応するコントローラーC1~C4へ出力し、対応するモーターM1~M4の駆動量、駆動タイミングを調整する。ただし、当該調整は、ユーザーが手動で行ってもよい。また、ステップS51は、省略してもよい。
【0056】
以上、ロボットシステム1およびオーバーシュート量検出方法ついて説明した。このようなロボットシステム1は、変位するアーム120と、アーム120の作業部における慣性を検出する慣性センサー170と、アーム120の変位量を検出するエンコーダーE1~E4と、アーム120に信号同期動作を行わせ、信号同期動作時に慣性センサー170から出力される第1同期信号Gと、信号同期動作時にエンコーダーE1~E4から出力される第2同期信号HHHと、に基づいて慣性センサー170の信号とエンコーダーE1~E4の信号とを同期させる同期ステップと、アーム120に作業動作を行わせ、作業動作時に慣性センサー170から出力される第1検出信号Aに対して2回積分と、第1検出信号Aに含まれる低周波成分の除去とを行って第1信号AAを生成し、作業動作時にエンコーダーE1~E4から出力される第2検出信号Bから第1信号AAの低周波成分を補う第2信号BBを生成する信号生成ステップと、第1信号AAと第2信号BBとに基づいてアーム120のオーバーシュート量を検出するオーバーシュート量検出ステップと、を行うオーバーシュート量検出部210と、を有する。
【0057】
また、オーバーシュート量検出方法は、前述したように、変位するアーム120のオーバーシュート量を検出するオーバーシュート量検出方法であって、アーム120に信号同期動作を行わせ、信号同期動作時にアーム120の作業部における慣性を検出する慣性センサー170から出力される第1同期信号Gと、信号同期動作時にアーム120の変位量を検出するエンコーダーE1~E4から出力される第2同期信号HHHと、に基づいて慣性センサー170の信号とエンコーダーE1~E4の信号とを同期させる同期ステップと、アーム120に作業動作を行わせ、作業動作時に慣性センサー170から出力される第1検出信号Aに対して2回積分と、第1検出信号Aに含まれる低周波成分の除去とを行って第1信号AAを生成し、作業動作時にエンコーダーE1~E4から出力される第2検出信号Bから第1信号AAの低周波成分を補う第2信号BBを生成する信号生成ステップと、第1信号AAと第2信号BBとに基づいてアーム120のオーバーシュート量を検出するオーバーシュート量検出ステップと、を有する。
【0058】
このようなロボットシステム1およびオーバーシュート量検出方法によれば、ノイズの大きい低周波成分が除去された第1信号AAに、第1信号AAから除去された低周波成分よりもノイズの小さい第2信号BBを加算して生成される第3信号CCに基づいてオーバーシュート量を算出する。そのため、第3信号CCに基づいてオーバーシュート量を算出することにより、従来のように第1検出信号Aを2回積分しただけで低周波成分が除去されていない信号に基づいてオーバーシュート量を検出する場合と比べて、精度よくオーバーシュート量を検出することができる。特に、第1信号AAと第2信号BBとを精度よく同期させることができるため、その精度がより向上する。
【0059】
さらには、モーターM1~M4によってもたらされるアーム120の位置変化と、それに伴って基部161に生じる振動(加速度)の両方を考慮して、エンドエフェクター160の位置を算出することができるため、エンドエフェクター160の三次元軌跡をより精度よく算出することができる。また、エンドエフェクター160の進行方向の軌跡だけを抽出することができ、慣性センサー170の配置向きによらず、どのような進行方向においてもオーバーシュート量を精度よく算出することができる。特に、エンコーダーE1~E4から出力される第2検出信号Bに基づくことにより、エンドエフェクター160の静止時の残留振動によらず、精度よくエンドエフェクター160の進行方向を検出することができる。
【0060】
また、前述したように、信号同期動作は、作業動作の前および後の少なくとも一方で行われる。これにより、信号同期動作の残留振動が作業動作に与える影響を低減することができる。
【0061】
また、前述したように、信号同期動作は、作業動作と異なる動作である。これにより、信号同期動作と作業動作とで互いの振動が影響し難くなる。
【0062】
また、前述したように、アーム120は、複数の駆動軸である第1軸J1、第2軸J2、第3軸J3および第4軸J4を有し、信号同期動作は、作業動作で用いられない駆動軸を用いた動作である。これにより、信号同期動作と作業動作とで互いの振動が影響し難くなる。
【0063】
また、前述したように、同期ステップでは、第1同期信号Gと第2同期信号HHHとの相関を取り、相関係数が最大となるシフト量ΔTに基づいて慣性センサー170からの信号とエンコーダーE1~E4からの信号とを同期させる。これにより、慣性センサー170からの信号とエンコーダーE1~E4からの信号とを精度よく同期させることができる。
【0064】
以上、本発明のオーバーシュート量検出方法およびロボットシステムを図示の実施形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、他の任意の構成物が付加されていてもよい。
【0065】
また、前述した実施形態では、信号同期作業をスプラインシャフト133の第4軸J4まわりの回動運動としているが、信号同期作業としては、回転運動に限定されず、並進運動であってもよい。つまり、信号同期作業は、作業部であるエンドエフェクター160のX軸方向の並進運動、Y軸方向の並進運動、Z軸方向の並進運動等であってもよい。例えば、信号同期作業をX軸方向の並進運動のしたとき、同期ステップでは、慣性センサー170から出力されるX軸方向の加速度信号と、エンコーダーE1~E4から出力される信号に基づいて生成した位置信号と、の相関を取ることによりシフト量ΔTを算出することができる。つまり、シフト量ΔTを算出するのに、前述した実施形態のような角速度信号や回転角度信号を用いる必要が無くなる。そのため、例えば、慣性センサー170としてIMUに替えて加速度センサーを用いることができ、慣性センサー170の構成を単純化することができる。
【符号の説明】
【0066】
1…ロボットシステム、100…ロボット本体、110…基台、120…アーム、121…第1アーム、122…第2アーム、130…作業ヘッド、131…スプラインナット、132…ボールネジナット、133…スプラインシャフト、141、142、143、144…駆動装置、150…ペイロード、160…エンドエフェクター、161…基部、162、163…爪部、170…慣性センサー、200…制御装置、210…オーバーシュート量検出部、211…第1信号生成部、212…第2信号生成部、213…算出部、214…信号同期部、220…駆動条件調整部、A…第1検出信号、A1…速度信号、A2…位置信号、AA…第1信号、B…第2検出信号、B1…位置信号、BB…第2信号、C1、C2、C3、C4…コントローラー、CC…第3信号、D1…固定座標系、D2…可動座標系、E1、E2、E3、E4…エンコーダー、F…命令信号、G…第1同期信号、H…検出信号、HH…回転角度信号、HHH…第2同期信号、J1…第1軸、J2…第2軸、J3…第3軸、J4…第4軸、M1、M2、M3、M4…モーター、Q…対象物、S11~S17、S21~S24、S31~S33、S41~S44、S51…ステップ、T1、T2、T3…領域、V1…速度ベクトル、ΔT…シフト量