(57)【要約】【課題】視覚センサーを用いずとも、ロボットに対する作業台の相対位置を補正することが可能なロボットシステムを提供する。【解決手段】本発明のロボットシステム１において、コントローラ１０は、プローブ６が受ける力に基づいて、作業台の所定の位置に設けられた構造物にプローブ６が接触したか否かを判定する判定部１１と、構造物にプローブ６が接触したと判定された場合に、サーボモータ５１〜５７の回転角をそれぞれ取得する動作状態取得部１２と、サーボモータ５１〜５７の回転角に基づいて、プローブ６の位置座標を算出する座標算出部１３と、プローブ６の位置座標に基づいて、ロボット２に対する作業台の相対位置の補正量を算出する位置補正量算出部１４と、を備える。【選択図】図２
2015033747.tif 000002
【特許請求の範囲】
【請求項１】
ロボットと、前記ロボットを制御するコントローラと、を備え、
前記ロボットは、
複数の間接を有するアームと、
前記複数の間接をそれぞれ駆動する複数のアクチュエータと、
前記複数のアクチュエータの動作状態をそれぞれ検知する複数のセンサーと、
前記アームに配置されるプローブと、
前記プローブが受ける力を検知する力センサーと、
を備え、
前記コントローラは、
作業台の所定の位置に設けられた構造物から前記プローブが受ける力が所定の条件を満たすか否かを判定する判定部と、
前記プローブが受ける力が所定の条件を満たす場合に、前記複数のアクチュエータの動作状態をそれぞれ取得する動作状態取得部と、
前記複数のアクチュエータの動作状態に基づいて、前記プローブの位置座標を算出する座標算出部と、
前記プローブの位置座標に基づいて、前記ロボットに対する前記作業台の相対位置の補正量を算出する位置補正量算出部と、
を備えるロボットシステム。
【請求項２】
前記作業台に前記構造物が複数設けられる、
請求項１に記載のロボットシステム。
【請求項３】
前記コントローラは、複数の前記構造物についてそれぞれ算出される前記プローブの位置座標に基づいて、前記ロボットに対する前記作業台の基準方向の補正量を算出する方向補正量算出部をさらに備える、
請求項２に記載のロボットシステム。
【請求項４】
前記判定部は、前記構造物に前記プローブが所定の姿勢で接触したか否かを判定する、
請求項１に記載のロボットシステム。
【請求項５】
前記プローブと前記構造物とは互いに嵌合可能な形状を有し、
前記判定部は、前記プローブと前記構造物とが互いに嵌合したか否かを判定する、
請求項１に記載のロボットシステム。
【請求項６】
前記構造物に前記プローブを接触させるために前記複数のアクチュエータを制御する接触制御部であって、前記プローブに複数の方向の動力をそれぞれ付与するときに前記プローブが受ける力に基づいて、前記複数の方向のうちの１つを前記プローブの変位方向とする、接触制御部をさらに備える、
請求項５に記載のロボットシステム。
【請求項７】
前記接触制御部は、前記プローブに複数の方向の動力をそれぞれ付与するときに、逆運動学アルゴリズムに基づいて前記複数のアクチュエータの動作状態を決定する、
請求項６に記載のロボットシステム。
【請求項８】
前記構造物は、互いに交差して凹部を形成する３つの面を有し、
前記判定部は、前記プローブが前記３つの面と接触したか否かを判定する、
請求項１に記載のロボットシステム。
【請求項９】
前記構造物に前記プローブを接触させるために前記複数のアクチュエータを制御する接触制御部であって、前記プローブを所定の姿勢に維持した状態で変位させる、接触制御部をさらに備える、
請求項８に記載のロボットシステム。
【請求項１０】
前記接触制御部は、前記プローブを所定の姿勢に維持する限定条件を加えた逆運動学アルゴリズムに基づいて、前記複数のアクチュエータの動作状態を決定する、
請求項９に記載のロボットシステム。
【請求項１１】
複数の間接を有するアームと、
前記複数の間接をそれぞれ駆動する複数のアクチュエータと、
前記複数のアクチュエータの動作状態をそれぞれ検知する複数のセンサーと、
前記アームに配置されるプローブと、
前記プローブが受ける力を検知する力センサーと、
を備えるロボットを制御するロボット制御装置であって、
作業台の所定の位置に設けられた構造物から前記プローブが受ける力が所定の条件を満たすか否かを判定する判定部と、
前記プローブが受ける力が所定の条件を満たす場合に、前記複数のアクチュエータの動作状態をそれぞれ取得する動作状態取得部と、
前記複数のアクチュエータの動作状態に基づいて、前記プローブの位置座標を算出する座標算出部と、
前記プローブの位置座標に基づいて、前記ロボットに対する前記作業台の相対位置の補正量を算出する位置補正量算出部と、
を備えるロボット制御装置。
【請求項１２】
複数の間接を有するアームと、
前記複数の間接をそれぞれ駆動する複数のアクチュエータと、
前記複数のアクチュエータの動作状態をそれぞれ検知する複数のセンサーと、
前記アームに配置されるプローブと、
前記プローブが受ける力を検知する力センサーと、
を備えるロボットを制御するロボット制御方法であって、
作業台の所定の位置に設けられた構造物から前記プローブが受ける力が所定の条件を満たすか否かを判定し、
前記プローブが受ける力が所定の条件を満たす場合に、前記複数のアクチュエータの動作状態をそれぞれ取得し、
前記複数のアクチュエータの動作状態に基づいて、前記プローブの位置座標を算出し、
前記プローブの位置座標に基づいて、前記ロボットに対する前記作業台の相対位置の補正量を算出する、
ロボット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットシステム、ロボット制御装置及びロボット制御方法に関する。
【背景技術】
【０００２】
特許文献１には、無人搬送車に搭載されたロボットに取付けられた視覚センサーにより作業台に設定されたマーカの位置を検出し、そのマーカの位置に基づいて無人搬送車の停止位置を検出する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−１２３６８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記技術では、ロボットの作業時には用いられない視覚センサーを、無人搬送車の停止位置を検出するためだけに配置しなければならない。
【０００５】
本発明は、上記課題に鑑みてなされたものであって、その目的は、視覚センサーを用いずとも、ロボットに対する作業台の相対位置を補正することが可能なロボットシステム、ロボット制御装置及びロボット制御方法を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明のロボットシステムは、ロボットと、前記ロボットを制御するコントローラと、を備える。前記ロボットは、複数の間接を有するアームと、前記複数の間接をそれぞれ駆動する複数のアクチュエータと、前記複数のアクチュエータの動作状態をそれぞれ検知する複数のセンサーと、前記アームに配置されるプローブと、前記プローブが受ける力を検知する力センサーと、を備える。前記コントローラは、作業台の所定の位置に設けられた構造物から前記プローブが受ける力が所定の条件を満たすか否かを判定する判定部と、前記プローブが受ける力が所定の条件を満たす場合に、前記複数のアクチュエータの動作状態をそれぞれ取得する動作状態取得部と、前記複数のアクチュエータの動作状態に基づいて、前記プローブの位置座標を算出する座標算出部と、前記プローブの位置座標に基づいて、前記ロボットに対する前記作業台の相対位置の補正量を算出する位置補正量算出部と、を備える。
【０００７】
また、本発明の一態様では、前記作業台に前記構造物が複数設けられてもよい。
【０００８】
また、本発明の一態様では、前記コントローラは、複数の前記構造物についてそれぞれ算出される前記プローブの位置座標に基づいて、前記ロボットに対する前記作業台の基準方向の補正量を算出する方向補正量算出部をさらに備えてもよい。
【０００９】
また、本発明の一態様では、前記判定部は、前記構造物に前記プローブが所定の姿勢で接触したか否かを判定してもよい。
【００１０】
また、本発明の一態様では、前記プローブと前記構造物とは互いに嵌合可能な形状を有し、前記判定部は、前記プローブと前記構造物とが互いに嵌合したか否かを判定してもよい。
【００１１】
また、本発明の一態様では、前記構造物に前記プローブを接触させるために前記複数のアクチュエータを制御する接触制御部であって、前記プローブに複数の方向の動力をそれぞれ付与するときに前記プローブが受ける力に基づいて、前記複数の方向のうちの１つを前記プローブの変位方向とする、接触制御部をさらに備えてもよい。
【００１２】
また、本発明の一態様では、前記接触制御部は、前記プローブに複数の方向の動力をそれぞれ付与するときに、逆運動学アルゴリズムに基づいて前記複数のアクチュエータの動作状態を決定してもよい。
【００１３】
また、本発明の一態様では、前記構造物は、互いに交差して凹部を形成する３つの面を有し、前記判定部は、前記プローブが前記３つの面と接触したか否かを判定してもよい。
【００１４】
また、本発明の一態様では、前記構造物に前記プローブを接触させるために前記複数のアクチュエータを制御する接触制御部であって、前記プローブを所定の姿勢に維持した状態で変位させる、接触制御部をさらに備えてもよい。
【００１５】
また、本発明の一態様では、前記接触制御部は、前記プローブを所定の姿勢に維持する限定条件を加えた逆運動学アルゴリズムに基づいて、前記複数のアクチュエータの動作状態を決定してもよい。
【００１６】
また、本発明のロボット制御装置は、複数の間接を有するアームと、前記複数の間接をそれぞれ駆動する複数のアクチュエータと、前記複数のアクチュエータの動作状態をそれぞれ検知する複数のセンサーと、前記アームに配置されるプローブと、前記プローブが受ける力を検知する力センサーと、を備えるロボットを制御するロボット制御装置であって、作業台の所定の位置に設けられた構造物から前記プローブが受ける力が所定の条件を満たすか否かを判定する判定部と、前記プローブが受ける力が所定の条件を満たす場合に、前記複数のアクチュエータの動作状態をそれぞれ取得する動作状態取得部と、前記複数のアクチュエータの動作状態に基づいて、前記プローブの位置座標を算出する座標算出部と、前記プローブの位置座標に基づいて、前記ロボットに対する前記作業台の相対位置の補正量を算出する位置補正量算出部と、を備える。
【００１７】
また、本発明のロボット制御方法は、複数の間接を有するアームと、前記複数の間接をそれぞれ駆動する複数のアクチュエータと、前記複数のアクチュエータの動作状態をそれぞれ検知する複数のセンサーと、前記アームに配置されるプローブと、前記プローブが受ける力を検知する力センサーと、を備えるロボットを制御するロボット制御方法であって、作業台の所定の位置に設けられた構造物から前記プローブが受ける力が所定の条件を満たすか否かを判定し、前記プローブが受ける力が所定の条件を満たす場合に、前記複数のアクチュエータの動作状態をそれぞれ取得し、前記複数のアクチュエータの動作状態に基づいて、前記プローブの位置座標を算出し、前記プローブの位置座標に基づいて、前記ロボットに対する前記作業台の相対位置の補正量を算出する。
【発明の効果】
【００１８】
本発明によると、視覚センサーを用いずとも、ロボットに対する作業台の相対位置を補正することが可能である。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態に係るロボットシステムの概要図である。
【図２】同ロボットシステムの構成例を示すブロック図である。
【図３】区間長さテーブルの一例を示す図である。
【図４】穴座標テーブルの一例を示す図である。
【図５】原点座標テーブルの一例を示す図である。
【図６】位置補正量の算出例を説明するための図である。
【図７】位置補正量の適用例を説明するための図である。
【図８】方向補正量の算出例を説明するための図である。
【図９】方向補正量の適用例を説明するための図である。
【図１０】接触制御の第１の例を示すフロー図である。
【図１１】接触制御の第１の例を説明するための図である。
【図１２】アームの先端部と作業台の治具の構成例を示す図である。
【図１３】接触制御の第２の例を示すフロー図である。
【図１４】接触制御の第２の例を説明するための図である。
【発明を実施するための形態】
【００２０】
本発明の実施形態を、図面を参照しながら説明する。
【００２１】
図１は、本発明の一実施形態に係るロボットシステム１の概要図である。図２は、ロボットシステム１の構成例を示すブロック図である。
【００２２】
ロボットシステム１は、多関節のアーム２１を有するロボット２と、ロボット２を制御するコントローラ１０と、を備えている。コントローラ１０は、ロボット制御装置の一例である。ロボット２は、台車９上に配置されており、作業台８に対して相対移動し、位置決めされる。コントローラ１０は、台車９の内部に配置されている。ロボット２のアーム２１の本数は、１本に限らず、２本以上であってもよい。
【００２３】
ロボット２のアーム２１は、回転可能な複数の関節３１〜３７と、関節３１〜３７を介して連結される複数のリンク４１〜４７と、を備えている。各々の関節３１〜３７は、図１中の両矢印が示す方向に回転可能である。各々の関節３１〜３７の回転軸は、隣り合う関節の回転軸と直交する向きに配置されている。本実施形態では、ロボット２のアーム２１は７つの関節３１〜３７を有しており、これにより７つの自由度を有している。すなわち、ロボット２のアーム２１は、位置及び姿勢を変化させるために必要な６つの自由度（並進３自由度と回転３自由度）に加えて、１つの冗長自由度を有している。なお、アーム２１の関節の数は６つであってもよい。
【００２４】
ロボット２は、関節３１〜３７をそれぞれ回転駆動する複数のサーボモータ５１〜５７を備えている。サーボモータ５１〜５７は、コントローラ１０からの指令に応じて関節３１〜３７を回転駆動する。また、サーボモータ５１〜５７は、回転角を検知するエンコーダを含んでおり、回転角に応じた検出信号をコントローラ１０に出力する。サーボモータ５１〜５７は、関節を駆動するアクチュエータの一例であり、エンコーダは、アクチュエータの動作状態を検知するセンサーの一例である。また、サーボモータ５１〜５７の回転角は、アクチュエータの動作状態の一例である。
【００２５】
ロボット２のアーム２１の先端部には、棒状のプローブ６が配置されている。また、アーム２１の先端部とプローブ６の間には、力センサー７が配置されている。力センサー７は、プローブ６が受ける力を検知して、受けた力に応じた検出信号をコントローラ１０に出力する。力センサー７は、例えば、並進３方向と回転３方向の力を検知可能な６軸力センサーである。なお、棒状のプローブ６に限らず、ハンド等のエンドエフェクタをプローブとして利用してもよい。
【００２６】
作業台８の表面８１の予め定められた複数の位置には、プローブ６と互いに嵌合可能な複数の穴８ａがそれぞれ形成されている。作業台８の穴８ａが形成された部分は、作業台８に設けられる構造物の一例である。本実施形態では、プローブ６は、断面形状が円形の円柱状の棒であり、穴８ａは、断面形状が円形の有底の丸穴である。プローブ６と穴８ａの形状は、互いに嵌合可能であれば特に限定されない。プローブ６が穴８ａに嵌合するとき、プローブ６は穴８ａの形状に倣った姿勢で、穴８ａの内面と接触可能な状態となる。例えば、プローブ６が穴８ａに嵌合するとき、プローブ６の外面と穴８ａの内面の間には約１０μｍ程度の隙間が形成される。
【００２７】
コントローラ１０は、マイクロプロセッサと、マイクロプロセッサが実行するプログラム及び制御に使用されるデータを格納するメモリと、を備えている。プログラムは、コンピュータ読み取り可能な情報記録媒体から提供されてもよいし、通信線を介して提供されてもよい。コントローラ１０は、メモリから読み出されるプログラムに従って、種々の処理を実行する。
【００２８】
例えば、コントローラ１０は、部品の取り付けなどの所定の作業を対象物に施すための作業処理を実行する。作業処理において、コントローラ１０は、作業内容を表すデータに基づいてサーボモータ５１〜５７を駆動することで、ロボット２のアーム２１に所定の作業を行わせる。作業内容を表すデータでは、アーム２１の目標位置が、ロボット２を基準とするロボット座標系ではなく、作業台８を基準とする作業台座標系で記述されている。このため、コントローラ１０は、ロボット座標系における作業台座標系の原点位置を記憶しており、この原点位置を利用することで、ロボット座標系におけるアーム２１の目標位置を算出する。
【００２９】
また、コントローラ１０は、ロボット２を設置してから上記作業処理を実行するまでの間に、以下に説明する較正処理を実行する。ロボット２が設置された位置及び姿勢が所定の位置及び姿勢からずれている場合、上記作業処理においてコントローラ１０が算出するアーム２１の目標位置が、本来の目標位置からずれてしまうおそれがある。そこで、コントローラ１０は、上記作業処理を実行する前に較正処理を実行することによって、そのような問題を解消している。以下、コントローラ１０が実行する較正処理について詳しく説明する。
【００３０】
図３〜図５に示すテーブルは、コントローラ１０のメモリに格納されている、較正処理に関係するデータの一例である。
【００３１】
図３は、区間長さテーブルの一例を示す図である。区間長さテーブルには、ロボット座標系の原点からプローブ６の先端までの全区間に含まれる各々の区間の長さが記述されている。これらの区間は関節３１〜３７を境界としており、関節３１〜３７の間の長さはリンク４１〜４６の長さに対応している。区間長さテーブルは、プローブ６の先端の位置座標を算出する際に利用される。
【００３２】
図４は、穴座標テーブルの一例を示す図である。穴座標テーブルには、ロボット２が作業台８に対して正しく位置決めされた場合の、各々の穴８ａのロボット座標系における位置が記述されている。穴８ａの位置は、プローブ６が穴８ａに嵌合したときのプローブ６の位置に対応する。また、穴座標テーブルには、各々の穴８ａの深さが記述されている。穴座標テーブルは、ロボット２に対する作業台８の相対位置及び基準方向を補正するための位置補正量及び方向補正量を算出する際に利用される。
【００３３】
図５は、原点座標テーブルの一例を示す図である。原点座標テーブルには、ロボット座標系における作業台座標系の原点位置が記述されている。また、原点座標テーブルには、ロボット座標系における作業台座標系の３軸の基準方向が記述されている。原点座標テーブルに記述されている作業台座標系の原点位置及び基準方向は、較正処理における較正の対象であると共に、上記作業処理においてアーム２１の目標位置を算出する際に利用される。
【００３４】
図２の説明に戻り、コントローラ１０は、較正処理に関係する機能部として、判定部１１と、動作状態取得部１２と、座標算出部１３と、位置補正量算出部１４と、方向補正量算出部１５と、を備えている。これらの機能部は、コントローラ１０のマイクロプロセッサがメモリに格納されたプログラムを実行することによって実現する。
【００３５】
なお、以下の説明では、プローブ６が作業台８の穴８ａに嵌合した後の処理について説明するが、プローブ６が作業台８の穴８ａに嵌合するまでの処理（接触制御部としての処理）については、後に詳しく述べる。
【００３６】
判定部１１は、力センサー７により検知されるプローブ６が受ける力に基づいて、プローブ６が作業台８の穴８ａに嵌合したか否かを判定する。判定部１１は、プローブ６が作業台８の穴８ａに嵌合したと判定した場合、その旨の通知を動作状態取得部１２に出力する。プローブ６が作業台８の穴８ａに嵌合したか否かの判定については、後に詳しく述べる。
【００３７】
動作状態取得部１２は、判定部１１からプローブ６が作業台８の穴８ａに嵌合した旨の通知を受けると、サーボモータ５１〜５７により検知されるサーボモータ５１〜５７の回転角を取得し、座標算出部１３に出力する。すなわち、プローブ６が作業台８の穴８ａに嵌合したときのアーム２１の関節３１〜３７の状態を表すサーボモータ５１〜５７の回転角が、動作状態取得部１２によって取得される。
【００３８】
座標算出部１３は、動作状態取得部１２からサーボモータ５１〜５７の回転角を受けると、サーボモータ５１〜５７の回転角に基づいてプローブ６の先端の位置座標を算出し、位置補正量算出部１４及び方向補正量算出部１５に出力する。具体的には、座標算出部１３は、サーボモータ５１〜５７の回転角と、上記図３の区間長さテーブルから読み出される各区間の長さと、に基づいて、ロボット座標系におけるプローブ６の先端の位置座標を算出する。
【００３９】
位置補正量算出部１４は、座標算出部１３からプローブ６の先端の位置座標を受けると、プローブ６の先端の位置座標に基づいて、ロボット２に対する作業台８の相対位置を補正するための位置補正量を算出する。具体的には、図６に示すように、算出されたプローブ６の先端の位置座標と、上記図４の穴座標テーブルから読み出される穴８ａの位置座標と、の差分が位置補正量として算出される。
【００４０】
このようにして算出される位置補正量は、図７に示すように、ロボット２に対する作業台８の相対位置を補正するために利用される。例えば、コントローラ１０は、上記図５の原点座標テーブルから読み出した、ロボット座標系における作業台座標系の原点の位置座標に、算出された位置補正量を足し合わせて、原点座標テーブルの内容を書き換える。
【００４１】
方向補正量算出部１５は、座標算出部１３からプローブ６の先端の位置座標を受けると、複数の穴８ａについてそれぞれ算出されるプローブ６の先端の位置座標に基づいて、ロボット２に対する作業台８の基準方向を補正するための方向補正量を算出する。複数の穴８ａの位置座標が既知である場合、複数の穴８ａの位置座標に基づいて１又は複数の方向を定義することが可能である。例えば、２つの穴８ａの位置座標があれば、２つの穴８ａを含む線分の長手方向を定義することが可能であり、３つの穴８ａの位置座標があれば、３つの穴８ａを含む平面の法線方向を定義することが可能である。そこで、図８に示すように、複数の穴８ａについてそれぞれ算出されたプローブ６の先端の位置座標により定義される方向（算出方向）と、上記図４の穴座標テーブルから読み出される複数の穴８ａの位置座標により定義される方向（記憶方向）と、の差分を算出することで、これを方向補正量とすることができる。なお、当該記憶方向は、穴座標テーブルに予め記憶されていてもよい。
【００４２】
このようにして算出される方向補正量は、図９に示すように、ロボット２に対する作業台８の基準方向を補正するために利用される。例えば、コントローラ１０は、上記図５の原点座標テーブルから読み出した、ロボット座標系における作業台座標系の基準方向に、算出された方向補正量を足し合わせて、原点座標テーブルの内容を書き換える。
【００４３】
以上の較正処理により、ロボット座標系における作業台座標系の原点位置及び基準方向が較正される。その結果、以後の上記作業処理においてコントローラ１０により算出されるアーム２１の目標位置が本来の目標位置からずれることを抑制できる。
【００４４】
なお、上記のように原点座標テーブルを書き換える態様に限らず、例えば、算出された位置補正量及び方向補正量を記憶しておき、上記作業処理においてコントローラ１０がロボット座標系におけるアーム２１の目標位置を算出する都度、位置補正量及び方向補正量を適用してもよい。すなわち、作業内容を表すデータでは、アーム２１の目標位置が作業台座標系で記述されており、コントローラ１０は、ロボット座標系の原点から作業台座標系の原点までのベクトルと、作業台座標系の原点からアーム２１の目標位置までのベクトルと、を足し合わせることで、ロボット座標系におけるアーム２１の目標位置を算出することから、この算出過程で補正量のベクトルを足し合わせてもよい。
【００４５】
また、上記のように複数の穴８ａの位置座標に基づいて方向補正量を算出する態様に限らず、例えば、穴座標テーブルに予め記憶される穴８ａの穿孔方向などの構造物の形状情報と、サーボモータ５１〜５７の回転角に基づいて算出されるプローブ６の姿勢情報と、に基づいて、方向補正量を算出してもよい。具体的には、穴８ａに嵌合したときのプローブ６の延伸方向は、その穴８ａの穿孔方向を表すことから、サーボモータ５１〜５７の回転角に基づいて算出されるプローブ６の延伸方向と、穴座標テーブルから読み出される穴８ａの穿孔方向と、の差分を方向補正量として算出することができる。
【００４６】
以上に説明した本実施形態によると、視覚センサーを用いずとも、ロボット２に対する作業台８の相対位置を補正するための位置補正量と、ロボット２に対する作業台８の基準方向を補正するための方向補正量と、を算出することが可能である。視覚センサーを用いて位置や方向の較正を行う場合、周囲の照明環境や視野内の物体の光沢の影響を受けて較正の精度が低下するおそれがあるが、本実施形態によれば、そのような影響を受けずに精度良く較正を行うことが可能である。
【００４７】
［接触制御の第１の例］
以下、プローブ６を作業台８の穴８ａに嵌合させる接触制御の第１の例について説明する。図１０は、接触制御の第１の例を示すフロー図であり、図１１は、接触制御の第１の例を説明するための図である。この接触制御において、コントローラ１０は、プローブ６を作業台８の穴８ａに嵌合させるようにサーボモータ５１〜５７を駆動する。
【００４８】
Ｓ１１において、コントローラ１０は、プローブ６を初期位置に移動させる。例えば、コントローラ１０は、上記図４の穴座標テーブルから読み出される穴８ａの位置座標に向けてプローブ６を移動させ、プローブ６を穴８ａに接近させる。ロボット２が設置された位置及び姿勢が所定の位置及び姿勢からずれている場合、例えば図１１（ａ）に示すようにプローブ６は穴８ａと完全には嵌合しない。
【００４９】
より具体的には、コントローラ１０は、プローブ６を穴８ａに接近させるためのプローブ６の目標位置及び目標姿勢を決定し、さらに、それらを実現するサーボモータ５１〜５７の回転角を決定する。ところで、ロボット２のアーム２１は冗長自由度を有しているため、目標位置及び目標姿勢を実現するためのサーボモータ５１〜５７の回転角の組み合わせは複数存在する。そこで、コントローラ１０は、逆運動アルゴリズムに基づいて、サーボモータ５１〜５７の回転角の複数の組み合わせの中から最適な１つを選択する。これにより、例えば関節３１〜３７への負荷が少ない組み合わせが選択される。
【００５０】
なお、プローブ６を穴８ａに接近させる操作は、人の手によって行われてもよい。
【００５１】
Ｓ１２及びＳ１３において、コントローラ１０は、複数の仮変位方向の中から１つを選択し、選択された仮変位方向における微小変位の変位目標値を設定する。複数の仮変位方向は、並進方向や回転方向の様々な方向を含んでいる。各々の仮変位方向は、プローブ６の穴８ａに対する挿入方向の成分を含むことが好ましい。ここで、コントローラ１０が認識する挿入方向は、実際の挿入方向と必ずしも完全には一致しないが、おおよそ同じであるので、挿入方向の成分を含む仮変位方向を設定することが可能である。図１１の（ａ）及び（ｂ）には、複数の仮変位方向の一部の例が破線矢印で示されている。
【００５２】
Ｓ１４において、コントローラ１０は、設定された微小変位の変位目標値を実現するためのサーボモータ５１〜５７の回転角を決定する。ここでも、コントローラ１０は、逆運動アルゴリズムに基づいて、サーボモータ５１〜５７の回転角の多数の組み合わせの中から最適な１つを選択する。
【００５３】
Ｓ１５において、コントローラ１０は、決定されたサーボモータ５１〜５７の回転角が実現するようにサーボモータ５１〜５７を駆動する。これにより、プローブ６は、仮変位方向の動力を付与され、微小変位の変位目標値に近付けられる。
【００５４】
Ｓ１６において、コントローラ１０は、仮変位方向に動力を付与したときにプローブ６が受けた力を表す力情報を、力センサー７の検出信号から取得して、メモリに記憶する。
【００５５】
コントローラ１０は、以上のＳ１２〜Ｓ１６の処理を全ての仮変位方向について実行する（Ｓ１７）。全ての仮変位方向について完了すると（Ｓ１７：ＹＥＳ）、コントローラ１０は、Ｓ１８の処理に移行する。
【００５６】
Ｓ１８において、コントローラ１０は、メモリに記憶した力情報に基づいて、複数の仮変位方向の中から１つを変位方向として選択する。例えば、プローブ６が受けた力が最も小さい仮変位方向が変位方向として選択される。図１１の（ａ）及び（ｂ）には、選択される変位方向の例が実線矢印で示されている。
【００５７】
Ｓ１９において、コントローラ１０は、選択された変位方向にプローブ６を変位させるようにサーボモータ５１〜５７を駆動する。ここで、コントローラ１０は、上記Ｓ１４で決定されたサーボモータ５１〜５７の回転角を記憶しておき、それを流用してもよいし、新たにサーボモータ５１〜５７の回転角を決定してもよい。また、プローブ６の変位量は、上記微小変位と同じでもよいし、それより多くてもよい。また、プローブ６が受ける力の大きさが所定以上となるまで、選択された変位方向にプローブ６を変位させてもよい。
【００５８】
なお、図１０に示す例では、全ての仮変位方向について上記Ｓ１２〜Ｓ１６の処理が完了してから変位方向を決定しているが、これに限らず、全ての仮変位方向について上記Ｓ１２〜Ｓ１６の処理が完了する前であっても、仮変位方向に動力を付与したときにプローブ６が受けた力の大きさが所定以下である場合には変位方向を決定してもよい。
【００５９】
Ｓ２０において、コントローラ１０は、プローブ６が作業台８の穴８ａに嵌合したか否かを判定する（上述の判定部１１としての機能）。プローブ６が作業台８の穴８ａに嵌合していないと判定された場合（Ｓ２０：ＮＯ）、コントローラ１０は、上記Ｓ１２〜Ｓ１９の処理を繰り返す。
【００６０】
他方、プローブ６が作業台８の穴８ａに嵌合したと判定された場合（Ｓ２０：ＹＥＳ）、コントローラ１０は、接触制御を終了して、上述の較正処理に移行する。図１１の（ｃ）には、プローブ６が作業台８の穴８ａに嵌合した状態を示す。プローブ６が作業台８の穴８ａに嵌合したことは、例えば、上記Ｓ１２〜Ｓ１７の処理と同様にプローブ６に複数の仮変位方向の動力をそれぞれ付与したときに、何れの仮変位方向においてもプローブ６が受ける力の大きさが所定以上である場合に判定される。なお、このようにプローブ６が受ける力の大きさだけで嵌合を判定する態様では、嵌合の途中でプローブ６が穴８ａに引っ掛かった場合に誤判定を生じるおそれがあるので、プローブ６の挿入量を検知可能な手段を設けて、それにより検出されるプローブ６の挿入量と、上記図４の穴座標テーブルに記憶された穴８ａの深さと、を比較することで、嵌合を判定してもよい。
【００６１】
なお、本例では、上記Ｓ１１及びＳ１４においてプローブ６を変位させる際に、逆運動アルゴリズムに基づいてサーボモータ５１〜５７の回転角を決定している。すなわち、プローブ６が作業台８の穴８ａに嵌合するまで、例えば関節３１〜３７への負荷が少ないサーボモータ５１〜５７の回転角が選択され続ける。このため、上述の較正処理において、プローブ６の先端の位置座標を精度良く算出することが可能である。
【００６２】
［接触制御の第２の例］
以下、接触制御の第２の例について説明する。図１２は、アーム２１の先端部と作業台８の治具８３の構成例を示す図である。図１３は、接触制御の第２の例を示すフロー図であり、図１４は、接触制御の第２の例を説明するための図である。
【００６３】
図１２に示すように、本例では、作業台８の表面８１上に複数のＬ字状の治具８３が配置されている。Ｌ字状の治具８３の内側の２つの面８３２，８３３と、作業台８の表面８１と、は互いに交差しており、凹部８ｂを形成している。作業台８の表面８１上に配置された治具８３は、作業台８に設けられる構造物の一例である。また、本例では、アーム２１の先端部にプローブ６とハンド６９とが並んで配置されており、プローブ６は球状の先端部６１を有している。
【００６４】
本例では、作業台８の表面８１と直交する方向をＺ方向とし、治具８３の２つの面８３２，８３３と直交する方向をそれぞれＸ方向，Ｙ方向とする。ロボット２が設置された姿勢が所定の姿勢からずれている場合、コントローラ１０が認識するＸ，Ｙ，Ｚ方向は、実際のＸ，Ｙ，Ｚ方向と必ずしも完全には一致しないが、多少のずれがあっても以下に説明する接触制御には特段影響しない。
【００６５】
また、本例では、コントローラ１０は、プローブ６が姿勢を維持したまま移動するようにサーボモータ５１〜５７を駆動する。すなわち、コントローラ１０は、作業台８の治具８３に近付くようにプローブ６の目標位置を決定する一方で、プローブ６の目標姿勢を維持したままにして、これらの目標位置及び目標姿勢を実現するサーボモータ５１〜５７の回転角を算出する。例えば、本例では、プローブ６の延伸方向がＺ方向に沿ったままとなるように、プローブ６の姿勢が維持される。
【００６６】
Ｓ２１において、コントローラ１０は、プローブ６を初期位置に移動させる。例えば、コントローラ１０は、予め記憶されている治具８３の位置座標に向けてプローブ６を移動させ、プローブ６を治具８３に接近させる。ここでは、プローブ６を初期位置に移動させた段階で、プローブ６の先端部６１が治具８３の凹部８ｂの内側に位置するものとする。
【００６７】
より具体的には、コントローラ１０は、プローブ６を治具８３に接近させるためのプローブ６の目標位置を決定する一方で、プローブ６の目標姿勢を維持したままにして、それらを実現するサーボモータ５１〜５７の回転角を決定する。ところで、ロボット２のアーム２１は７つの自由度を有しており、プローブ６の姿勢を維持するために回転３自由度を差し引いても、並進３自由度に加えて１つの冗長自由度を有している。このため、目標位置及び目標姿勢を実現するためのサーボモータ５１〜５７の回転角の組み合わせは複数存在する。そこで、コントローラ１０は、プローブ６の目標姿勢を維持する限定条件を加えた上で、逆運動学アルゴリズムに基づいて、サーボモータ５１〜５７の回転角の複数の組み合わせの中から最適な１つを選択する。
【００６８】
なお、プローブ６を治具８３に接近させる操作は、人の手によって行われてもよい。
【００６９】
Ｓ２２において、コントローラ１０は、Ｘ，Ｙ，Ｚ方向の中から１つを選択する。
【００７０】
Ｓ２３、Ｓ２４及びＳ２５において、コントローラ１０は、選択された方向へのプローブ６の変位量の目標値を設定し、設定された変位量の目標値を実現するためのサーボモータ５１〜５７の回転角を決定し、サーボモータ５１〜５７を駆動する。ここでも、コントローラ１０は、プローブ６の目標姿勢を維持する限定条件を加えた上で、逆運動アルゴリズムに基づいて、サーボモータ５１〜５７の回転角の多数の組み合わせの中から最適な１つを選択する。これにより、プローブ６は、選択された方向へ姿勢を維持したまま変位する。
【００７１】
Ｓ２６及びＳ２７において、コントローラ１０は、選択された方向へプローブ６を変位させたときにプローブ６が受ける力を表す力情報を、力センサー７の検出信号から取得して、プローブ６の先端部６１が接触したか否かを判定する。具体的には、プローブ６が受けた力の大きさが所定以上であるときに、プローブ６の先端部６１が接触したと判定される。
【００７２】
プローブ６の先端部６１が接触していないと判定された場合（Ｓ２７：ＮＯ）、コントローラ１０は、上記Ｓ２３〜Ｓ２６の処理を繰り返す。
【００７３】
プローブ６の先端部６１が接触したと判定された場合（Ｓ２７：ＹＥＳ）、コントローラ１０は、他の方向についても上記Ｓ２２〜Ｓ２７の処理を実行する（Ｓ２８：ＮＯ）。
【００７４】
Ｘ，Ｙ，Ｚ方向の全てについてプローブ６の先端部６１が接触したと判定された場合（Ｓ２８：ＹＥＳ）、コントローラ１０は、接触制御を終了して、上述の較正処理に移行する。このとき、図１４に示すように、プローブ６の先端部６１は、Ｌ字状の治具８３の内側の２つの面８３２，８３３と、作業台８の表面８１との全てに接触している状態となる。
【００７５】
較正処理において、コントローラ１０は、Ｘ，Ｙ，Ｚ方向の全てについてプローブ６の先端部６１が接触したときのサーボモータ５１〜５７の回転角を取得し、プローブ６の先端部６１の位置座標を算出すると共に、算出されたプローブ６の先端部６１の位置座標と予め記憶された治具８３の位置座標との差分から位置補正量を算出する。
【００７６】
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、種々の変形実施が当業者にとって可能であるのはもちろんである。
【符号の説明】
【００７７】
１  ロボットシステム、２  ロボット、２１  アーム、３１〜３７  関節、４１〜４７  リンク、５１〜５７  サーボモータ（アクチュエータの例）、６  プローブ、６１  先端部、６９  ハンド、７  力センサー、８  作業台、８ａ  穴、８ｂ  凹部、８１  表面、８３  治具、８３２，８３３  面、９  台車、１０  コントローラ（ロボット制御装置の例）、１１  判定部、１２  動作状態取得部、１３  座標算出部、１４  位置補正量算出部、１５  方向補正量算出部。
【図１】
2015033747.tif 000003
【図２】
2015033747.tif 000004
【図３】
2015033747.tif 000005
【図４】
2015033747.tif 000006
【図５】
2015033747.tif 000007
【図６】
2015033747.tif 000008
【図７】
2015033747.tif 000009
【図８】
2015033747.tif 000010
【図９】
2015033747.tif 000011
【図１０】
2015033747.tif 000012
【図１１】
2015033747.tif 000013
【図１２】
2015033747.tif 000014
【図１３】
2015033747.tif 000015
【図１４】
2015033747.tif 000016