(57)【要約】【課題】ワークの保持状態に応じた適切な対処を選択的に実行できるロボットシステムの制御装置を提供する。【解決手段】ワークを保持するツールと、ワークが保持された状態でツールに作用する力を計測する力計測部と、を備えていて、ワークを保持して搬送するロボットを制御する制御装置が提供される。制御装置は、ワークを保持したロボットの複数の姿勢において力計測部によって計測される力データに基づいて、ワークの重心位置を算出する重心位置算出部と、ツールの位置およびワークの重心位置の位置関係に基づいて、ワークの保持状態の推定処理、ワークの種類の判定処理およびワークの良否判定処理のうちの少なくとも１つの処理を実行する処理部と、処理部による処理結果に基づいて、ロボットの動作指令を変更する、動作指令変更部と、を備えている。【選択図】図２
2014210311.tif 000002
【特許請求の範囲】
【請求項１】
ワークを保持するツールと、前記ワークが前記ツールによって保持されているときに前記ワークが前記ツールに作用する力を計測する力計測部と、を備えていて、三次元空間に置かれたワークを保持して搬送するロボットを制御する制御装置であって、
前記ロボットがワークを保持し搬送する際に、
前記ワークを保持したロボットの複数の姿勢において前記力計測部によって計測される力データに基づいて、前記ツールによって保持される前記ワークの重心位置を算出する重心位置算出部と、
前記ツールの位置および前記ワークの重心位置の位置関係に基づいて、保持される前記ワークの保持状態の推定処理、保持される前記ワークの種類の判定処理および保持される前記ワークの良否判定処理のうちの少なくとも１つの処理を実行する処理部と、
前記処理部による処理結果に基づいて、前記ロボットの動作指令を変更する、動作指令変更部と、
を備える、制御装置。
【請求項２】
前記重心位置算出部は、前記ワークの重量を取得する重量取得部をさらに備えており、
前記処理部は、前記ツールの位置と前記ワークとの重心位置の位置関係と、前記ワークの重量と、に基づいて、保持される前記ワークの保持状態の推定処理、保持される前記ワークの種類の判定処理および保持される前記ワークの良否判定処理のうちの少なくとも１つの処理を実行するように形成される、請求項１に記載の制御装置。
【請求項３】
前記処理部が、前記ツールによるワークの保持方法と、前記ツールの位置と前記ワークの重心位置との位置関係と、に基づいて、前記ツールに対する前記ワークの所定の軸の姿勢を決定することによって、前記ワークの保持状態を推定するように形成される、請求項１に記載の制御装置。
【請求項４】
前記ツールが、前記ワークの面部分を引付けることによって前記ワークを保持するように形成されており、
当該制御装置は、
前記ツールによって保持され得る前記ワークの面における平面から前記ワークの重心位置までの最短距離を記憶する最短距離記憶部と、
前記ツールによって保持される前記ワークの面の位置および姿勢に基づいて、前記ワークの面における平面から前記ワークの重心位置までの最短距離を取得する最短距離取得部と、をさらに備えており、
前記処理部が、前記最短距離記憶部によって記憶される最短距離と、前記最短距離取得部によって取得される最短距離と、を比較することによって、前記ツールによって保持されている前記ワークの面を推定するように形成される、請求項１に記載の制御装置。
【請求項５】
前記動作指令変更部は、前記処理部による前記ワークの保持状態の推定処理の結果に基づいて、前記ワークを搬送する際の前記ロボットの移動速度を変更するように形成される、請求項１〜４のいずれか１項に記載の制御装置。
【請求項６】
前記動作指令変更部は、前記処理部による前記ワークの保持状態の推定処理の結果に基づいて、前記ツールによって保持される前の場所から所定の領域内に前記ワークを戻すように前記ロボットを動作させるか、または前記ワークを一時的に解放するとともに再度保持するのに使用される場所まで前記ワークを移動させるように前記ロボットを動作させるように形成される、請求項１〜４のいずれか１項に記載の制御装置。
【請求項７】
前記動作指令変更部は、前記処理部による前記ワークの保持状態の推定処理の結果に基づいて、前記ワークを搬送する際の前記ワークの位置または姿勢を変更するように前記ロボットを動作させるよう形成される、請求項１〜４のいずれか１項に記載の制御装置。
【請求項８】
当該制御装置は、前記ワークの位置および姿勢を計測するように形成された計測装置と協働するように形成されており、
前記動作指令変更部は、前記処理部による前記ワークの保持状態の推定処理の結果に基づいて、前記計測装置によって計測される位置に、前記ワークの位置および姿勢を補正して、前記ワークを移動させるように前記ロボットを動作させるよう形成されており、
当該制御装置は、前記計測装置と協働して前記ワークの保持位置および姿勢を補正する保持位置補正部をさらに備える、請求項１〜４のいずれか１項に記載の制御装置。
【請求項９】
前記動作指令変更部は、前記重心位置算出部によって算出される前記ワークの重心位置に基づいて、前記ワークの重心位置が、搬送先の場所に定められる所定の領域内に含まれるように前記ロボットを動作させるよう形成される、請求項１〜４のいずれか１項に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークを取出すとともに取出されたワークを搬送するのに使用されるロボットの制御装置に関する。
【背景技術】
【０００２】
コンテナにバラ積みにされたワークのように、所定の位置に置かれていないワークをツールによって取出すとともに取出されたワークを所定の場所まで搬送するのに使用されるロボットを備えたシステムが公知である。このようなロボットシステムにおいて、取出されるべきワークの位置および姿勢を正確に認識していない場合、ワークの位置および姿勢は不定であるので、ワークがツールによって保持されるときに、ワークとツールとの間の位置関係が定まらない。より具体的には、ワークを適当に保持したり、バラ積みにされたワーク上の或る取出し易い部分を保持したりする場合などでは、ツールによって保持されるワークの部位は毎回変化し得る。また、ツールによって保持されたときのツールに対するワークの姿勢も同様に毎回変化し得る。このような場合、またワークの位置および姿勢を認識していてもワークの重心位置が分からない場合、ワークを保持するときに、ツールとワークの重心位置との位置関係を所望の位置関係とすることができない。
【０００３】
そのため、ワークの重心から離間した位置にある部位においてワークが保持されたり、ワークが不安定な姿勢で保持されたりする場合がある。そのような場合、ワークが安定的に保持されないので、ツールによって保持されるワークの部位が相対的に移動して保持状態が搬送中に変化したり、ワークが搬送中に落下して周囲の装置を損傷させたりし、これによってシステムの稼動を中断させるだけではなく、周囲の作業者に危険を及ぼしたりする虞がある。
【０００４】
また、ツールとワークの位置関係が定まらないため、ワークの長軸方向や、ワークの姿勢を知る必要がある場合がある。また、ツールによって保持され得るワークの面が複数存在する場合、いずれの面において保持されたのか不明なことがある。これらの場合、視覚センサを使用して、ワークを保持している部分やワークの姿勢を検出する追加の工程が必要になる場合がある。さらに、ツールに対するワークの位置関係が不明なので、ワークを別の場所に一旦置いてから視覚センサによってワークの姿勢を検出した後、ワークを再度保持するといった追加の工程が必要になる場合がある。
【０００５】
さらに、複数の種類のワークが含まれる場合、または欠陥などのある不良品や予期せぬワークが混入している場合、またはワークがその性質上損傷し易い場合には、追加の検査装置によってワークの種類またはワークの良否を検査する追加の検査工程が必要になる場合もある。バラ積みにされたワークの取出しでは取出すワークの個数も多いため、このように、ワークを取出して所定の位置まで搬送するのには、サイクルタイムおよびコストが増大する傾向にある。
【０００６】
特許文献１には、ワークの保持状態を検査して、必要に応じてワークを別の姿勢で保持し直すことが開示されている。特許文献２には、ワークを保持した状態でワークを計測し、ワークが所定の種類のワークに合致しているか否かを判定することが開示されている。また、特許文献３〜５には、視覚センサなどを利用して、ツールに対するワークの姿勢を補正することが開示されている。特許文献６には、ワークの取出しに失敗したときに、ワークを箱の中央に近付けるようにロボットの動作を制御することが開示されている。特許文献７には、ワークを取出す際に、異常を検知したら取出工程を中断してロボットを退避させることが開示されている。特許文献８〜１０には、ツールとワークとの間に作用する力に対する重力の影響を補償する目的でワークの重量および重心位置、重力方向を算出する方法が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−１８３５３７号公報
【特許文献２】特開平５−２１２６９０号公報
【特許文献３】特開平５−２４１６２６号公報
【特許文献４】特開２００４−２４９３９１号公報
【特許文献５】特開２０１１−２０１００７号公報
【特許文献６】特許第３９２５０２０号公報
【特許文献７】特開２０００−２６３４８１号公報
【特許文献８】特開平５−１１６０８１号公報
【特許文献９】特開２０１２−４０６３４号公報
【特許文献１０】特開平７−２０５０７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
前述したような公知の関連技術においては、ワークが不安定に保持されていると判定された場合、ワークを別の場所に一旦置いた状態で検査装置を使ってワークの位置および姿勢を検査し、その検査結果に基づいてワークを適切な姿勢で再度保持する必要がある。また検査をしようとしたときにワークを落として、そのような検査装置を破壊してしまうこともある。またそのような検査装置を用いると時間がかかるだけではなく、コストがかかったり、場所をとったりするということがある。結果的に、サイクルタイムの増大および検査装置に起因するコストの増大が避けられない。また、そのような計測装置では、ワークの実際の重量、重心位置、保持中の力データを得ることができないため、搬送中のワークの保持状態がどの程度、不安定であるかということを判断することが困難である。
また、外観からワークの種類や良否の判定が困難である場合に、搬送中に、簡易にそのような判定をおこないたいことがある。
そこで、ワーク取出し搬送時に、簡易に、ツールによるワークの保持状態の安定性、保持しているワークの位置および姿勢、ワークのどの面を保持しているかなどの、ワークの保持状態の推定をおこない、またワークの種類判定、ワークの良否判定をおこない、保持されているワークの状態、状況に応じた適切な対処を選択的に実行できるロボットシステムの制御装置が望まれている。
【課題を解決するための手段】
【０００９】
本願の１番目の発明によれば、ワークを保持するツールと、前記ワークが前記ツールによって保持されているときに前記ワークが前記ツールに作用する力を計測する力計測部と、を備えていて、三次元空間に置かれたワークを保持して搬送するロボットを制御する制御装置であって、前記ロボットがワークを保持し搬送する際に、前記ワークを保持したロボットの複数の姿勢において前記力計測部によって計測される力データに基づいて、前記ツールによって保持される前記ワークの重心位置を算出する重心位置算出部と、前記ツールの位置および前記ワークの重心位置の位置関係に基づいて、保持される前記ワークの保持状態の推定処理、保持される前記ワークの種類の判定処理および保持される前記ワークの良否判定処理のうちの少なくとも１つの処理を実行する処理部と、前記処理部による処理結果に基づいて、前記ロボットの動作指令を変更する、動作指令変更部と、を備える、制御装置が提供される。
本願の２番目の発明によれば、１番目の発明の制御装置において、前記重心位置算出部は、前記ワークの重量を取得する重量取得部をさらに備えており、前記処理部は、前記ツールの位置と前記ワークの重心位置との位置関係と、前記ワークの重量と、に基づいて、保持される前記ワークの保持状態の推定処理、保持される前記ワークの種類の判定処理および保持される前記ワークの良否判定処理のうちの少なくとも１つの処理を実行するように形成される。
本願の３番目の発明によれば、１番目の発明の制御装置において、前記処理部が、前記ツールによるワークの保持方法と、前記ツールの位置と前記ワークの重心位置との位置関係と、に基づいて、前記ツールに対する前記ワークの所定の軸の姿勢を決定することによって、前記ワークの保持状態を推定するように形成される。
本願の４番目の発明によれば、１番目の発明の制御装置において、前記ツールが、前記ワークの面部分を引付けることによって前記ワークを保持するように形成されており、当該制御装置は、前記ツールによって保持され得る前記ワークの面における平面から前記ワークの重心位置までの最短距離を記憶する最短距離記憶部と、前記ツールによって保持される前記ワークの面の位置および姿勢に基づいて、前記ワークの面における平面から前記ワークの重心位置までの最短距離を取得する最短距離取得部と、をさらに備えており、前記処理部が、前記最短距離記憶部によって記憶される最短距離と、前記最短距離取得部によって取得される最短距離と、を比較することによって、前記ツールによって保持されている前記ワークの面を推定するように形成される。
本願の５番目の発明によれば、１番目から４番目のいずれかの発明の制御装置において、前記動作指令変更部は、前記処理部による前記ワークの保持状態の推定処理の結果に基づいて、前記ワークを搬送する際の前記ロボットの移動速度を変更するように形成される。
本願の６番目の発明によれば、１番目から４番目のいずれかの発明の制御装置において、前記動作指令変更部は、前記処理部による前記ワークの保持状態の推定処理の結果に基づいて、前記ツールによって保持される前の場所から所定の領域内に前記ワークを戻すように前記ロボットを動作させるか、または前記ワークを一時的に解放するとともに再度保持するのに使用される場所まで前記ワークを移動させるように前記ロボットを動作させるように形成される。
本願の７番目の発明によれば、１番目から４番目のいずれかの発明の制御装置において、前記動作指令変更部は、前記処理部による前記ワークの保持状態の推定処理の結果に基づいて、前記ワークを搬送する際の前記ワークの位置または姿勢を変更するように前記ロボットを動作させるよう形成される。
本願の８番目の発明によれば、１番目から４番目のいずれかの発明の制御装置において、当該制御装置は、前記ワークの位置および姿勢を計測するように形成された計測装置と協働するように形成されており、前記動作指令変更部は、前記処理部による前記ワークの保持状態の推定処理の結果に基づいて、前記計測装置によって計測される位置に、前記ワークの位置および姿勢を補正して、前記ワークを移動させるように前記ロボットを動作させるよう形成されており、当該制御装置は、前記計測装置と協働して前記ワークの保持位置および姿勢を補正する保持位置補正部をさらに備える。
本願の９番目の発明によれば、１番目から４番目のいずれかの発明の制御装置において、前記動作指令変更部は、前記重心位置算出部によって算出される前記ワークの重心位置に基づいて、前記ワークの重心位置が、搬送先の場所に定められる所定の領域内に含まれるように前記ロボットを動作させるよう形成される。
【発明の効果】
【００１０】
本発明によれば、保持したワークの状態、状況に応じてロボットの動作が変更される。それにより、必要に応じた柔軟な対応が可能になり、不必要な工程および装置を省略できるので、サイクルタイムを短縮できるとともに、システムの導入コストおよび管理コストを削減できる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係る制御装置によって制御されるロボットを具備するロボットシステムの構成例を示す概略図である。
【図２】本発明の実施形態に係る制御装置の構成を機能的に示す図である。
【図３】ワークを移動させる過程において変化するワークの姿勢を示す図である。
【図４】３つの吸着部を有するツールを使用してワークを保持する態様を示す図である。
【図５】ワークの保持面の判定方法を説明するための図である。
【図６】ワークの面に対して面接触するように形成されているツールを示す図である。
【図７】ツールによって保持されるワークの種々の状態を示す図である。
【図８】ワークの姿勢を表す代表的なベクトルの例を示す図である。
【図９】ワークを保持するのに使用されるツールの構成例を示す図である。
【図１０】ワークを保持するのに使用されるツールの別の構成例を示す図である。
【図１１】本発明の実施形態に係る制御装置による処理の過程を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明の実施形態を説明する。以下、力は、特に断らない限り、力および力のモーメントを含むものとする。図１は、本発明の実施形態に係る制御装置１０によって制御されるロボットを具備するロボットシステムの構成例を示す概略図である。図示されるロボット４０は６軸多関節型ロボットであるものの、本発明は、他の形態を有する任意の公知のロボット４０にも同様に適用可能である。ロボット４０の各駆動軸は制御装置１０によって制御され、それによりロボットアームの先端が三次元空間の任意の場所に位置決めされ得るようになっている。制御装置１０は、ＣＰＵ、ＲＯＭ、ＲＡＭなどのハードウェア構成を有していて、後述する種々の処理を実行する。
【００１３】
ロボット４０は、コンテナ５２内にバラ積みされた複数のワーク５０を取出して所定の場所、例えばコンベヤまたは作業台まで順次移動させるのに使用される。ワーク５０は、バラ積みのように不規則に配置されている、または所定の位置に置かれていないなどのように、ワークを保持するときに、ツールとワークの重心位置との位置関係を所望の位置関係とすることができない状態で置かれているとする。ロボット４０のアームの先端には、力計測部である６軸の力センサ４２が設けられている。力センサ４２には、空気圧式吸着パッドを具備するツール４４が取付けられている。ツール４４は、負圧を利用してワーク５０を引付けることによってワーク５０を保持するように形成される。力センサ４２は、ワーク５０がツール４４によって保持された状態において、ツール４４に作用する力を計測するように形成されている。
【００１４】
ツール４４は、ワーク５０を保持可能であれば他の形態を有し得る。例えば、２本の爪を開閉することによってワーク５０を挟持するように形成されるツールであってもよい。或いは、ワーク５０に対して吸引力を発生する電磁石を備えたツールであってもよい。力センサ４２の代わりに、ロボット４０の各関節を駆動させているモータの電流値を基にツール４４に作用する力を推定するように、間接的に取得するようにしてもよい。また、ツール４４に力センサを取付けるなどして、ツール４４に作用する力を計測するようにしてもよい。また、衝突防止、過負荷の検出、力監視または力制御の目的でロボット４０が力計測部を備えている場合は、その力計測部を力センサ４２の代わりに使用してもよい。
【００１５】
図２は、本発明の実施形態に係る制御装置１０の構成を機能的に示す図である。制御装置１０は、重心位置算出部１２と、処理部１４と、動作指令変更部１６と、重量取得部１８と、記憶部２０と、最短距離記憶部２８と、最短距離取得部３０と、保持位置補正部３２と、を備えている。
【００１６】
重心位置算出部１２は、ロボット４０の複数の姿勢において力センサ４２によって計測される力データに基づいて、ツール４４によって保持されるワーク５０の重心位置を算出する。力センサ４２によって計測される力データには、力および力のモーメントに関するデータが含まれる。本明細書において、重心位置は、質量中心の位置を意味する。詳細な重心位置の算出方法の例は後述する。処理部１４は、推定処理部２２と、判定処理部２４と、良否判定処理部２６と、をさらに備えている。推定処理部２２は、ツール４４に対するワーク５０の重心位置に基づいて、ワーク５０の保持状態を推定する。判定処理部２４は、ツール４４に対するワーク５０の重心位置に基づいて、ワーク５０の種類を判定する。良否判定処理部２６は、ツール４４に対するワーク５０の重心位置に基づいて、意図したものであるか否かのワークの良否を判定する。例えば、対象とするワークとは異なった状態のワークになっていないか、欠陥のある不良品でないか、対象とするワークとは異なった種類のワークでないか、ワークに損傷が生じていないかなど、を判定する。処理部１４は、推定処理部２２、判定処理部２４および良否判定処理部２６のうちの少なくとも１つを選択的に動作させられるように形成される。
【００１７】
動作指令変更部１６は、処理部１４による処理結果に基づいて、ロボット４０に付与される動作指令を変更する。重量取得部１８は、ワーク５０の重量を取得する。記憶部２０には、教示プログラム、動作プログラム、算出されるワーク５０の重心位置、ワーク５０の重量、各種計算に必要なパラメータおよび計算結果などが記憶される。
【００１８】
最短距離記憶部２８は、ワーク５０の各面からワーク５０の重心位置までの最短距離を記憶するように形成される。最短距離取得部３０は、ワーク５０の保持面からワーク５０の重心位置までの最短距離を算出するように形成される。後述するように、最短距離記憶部２８および最短距離取得部３０は、ワーク５０のいずれの面においてワーク５０が保持されているかを判定するのに使用される。
【００１９】
保持位置補正部３２は、視覚センサなどを用いてワークを検出し、その検出結果を利用して認識するワークの保持位置および保持姿勢が、実際の位置および姿勢と一致するように、補正したり、検出したりするのに使用される。
【００２０】
続いて、本実施形態に係る制御装置１０による処理の過程の一例を図１１を参照して説明する。図１１は、制御装置１０による処理の過程を示すフローチャートである。なお、ここで説明される一連の処理は、あくまでも一例であって、本発明がこの具体例に限定されるわけではないことに留意されたい。
【００２１】
ワーク５０の取出処理および搬送処理が開始すると、制御装置１０からロボット４０に動作指令が送出される。ロボット４０は、動作指令を受けて、ロボット４０の先端に取付けられたツール４４をコンテナ５２内に移動させる。そして、ツール４４に保持動作を実行させて、ワーク５０を保持する（ステップＳ１）。ワーク５０がツール４４に保持された状態でワーク５０の姿勢を変更しながら、力センサ４２によってワーク５０からツール４４に作用する力データを取得する（ステップＳ２）。力データには、ロボット４０の複数の姿勢に関連付けられた力および力のモーメントが含まれる。取得された力データは、例えば制御装置１０の記憶部２０に記憶される。
【００２２】
続いて、制御装置１０の重心位置算出部１２は、ステップＳ２において、ロボット４０の複数の姿勢において取得された力データに基づいて、ワーク５０の重心位置を算出する（ステップＳ３）。ロボット４０やツール４４の位置および姿勢は、ロボット４０の各駆動軸に取付けられるエンコーダなどの位置検出装置から算出される。
【００２３】
処理部１４は、推定処理部２２、判定処理部２４および良否判定処理部２６のうちの少なくとも１つを起動させて、ステップＳ４〜Ｓ９の処理を実行する。各処理を実行するか否かは、例えば教示操作盤を介して操作者によって選択される。ステップＳ４における判断がＹＥＳである場合、すなわちワーク５０の保持状態の推定を実行する必要がある場合、ステップＳ５に進み、推定処理部２２によるワーク５０の保持状態の推定処理が実行される。ステップＳ４における判断がＮＯである場合、ステップＳ５をスキップしてステップＳ６に進む。
【００２４】
ステップＳ６における判断がＹＥＳである場合、すなわちワーク５０の種類の判定を実行する必要がある場合、ステップＳ７に進み、判定処理部２４によるワーク５０の種類の判定が実行される。ステップＳ６における判断がＮＯである場合、ステップＳ７をスキップしてステップＳ８に進む。
【００２５】
ステップＳ８における判断がＹＥＳである場合、すなわちワーク５０の良否判定を実行する必要がある場合、ステップＳ９に進み、良否判定処理部２６によるワーク５０の良否判定が実行される。ステップＳ８における判断がＮＯである場合、ステップＳ９をスキップしてステップＳ１０に進む。
【００２６】
そして、動作指令変更部１６は、処理部１４、すなわち推定処理部２２、判定処理部２４および良否判定処理部２６による判定結果に基づいて、ロボット４０に対する動作指令を変更する（ステップＳ１０）。ロボット４０は、変更された動作指令に従って制御される。
【００２７】
以下に、本実施形態に係る制御装置１０による処理をより具体的に説明する。ワーク５０の保持状態の安定の程度は、ワーク５０のどの部位がツール４４によって保持されるかによって変化する。例えば、ワーク５０の重心位置に近い部位においてワーク５０が保持される場合、ワーク５０は安定的に保持される。この場合、ツール４４とワーク５０との間の位置関係が変動しにくい。したがって、ワーク５０を移動させる際にワーク５０が落下する可能性は低くなる。他方、ワーク５０の保持位置がワーク５０の重心位置から離間している場合は、ワーク５０の移動時にワーク５０とツール４４との間の位置関係が変化し、ワーク５０が落下する可能性が高くなる。この場合は、動作指令変更部１６が起動され、ワーク５０を低速度で移動させるか、または場合によってはワーク５０を別の場所に一旦置き、ワーク５０をより安定的な部位において保持し直すようにする。
【００２８】
また、力センサ４２によって取得される力データの変動の大きさが所定の閾値を超える場合においても、ワーク５０の保持状態が不安定であると考えられる。したがって、この場合も動作指令変更部１６が起動され、ワーク５０の移動速度を下げるか、またはワーク５０を保持し直すなどの処理を必要に応じて選択的に実行する。
【００２９】
本発明において、ワーク５０の保持位置は、ロボット４０のロボットアームに設定された制御点を基準として、所定のルールに従って定められる位置を表す。すなわち、ワーク５０の保持位置は便宜的に設定される。例えば、ワーク保持位置は、（ａ）ＴＣＰ（ｔｏｏｌ  ｃｅｎｔｅｒ  ｐｏｉｎｔ：ロボットアームに対して設定される制御点）の位置やＴＣＰから所定方向に所定量だけシフトさせた位置、（ｂ）ツール４４がワーク５０に実際に接触する位置などであり得る。（ｂ）の場合において、ツール４４とワーク５０の接触位置が複数存在する場合、それら接触位置を代表する位置であり得る。例えば、ワーク５０が保持された状態において、ツール４４がワーク５０の面の３箇所においてワーク６０に接触する場合、ワーク保持位置は、（ｂ１）３つの接触箇所の代表的位置、例えばそれら接触箇所の中心に設定され得る。また、代替的に２つの爪を開閉させてワーク５０を保持するツールが使用される場合、ワーク保持位置は、（ｂ２）それら爪の中間、（ｂ３）爪の中間から所定量だけ離間した位置、（ｂ４）それら爪のいずれか一方に設定されるＴＣＰの位置に設定され得る。
【００３０】
続いて、重心位置算出部１２によるワーク５０の重心位置の算出方法について説明する。重心位置算出部１２は、力センサ４２によって得られる力データに基づいて、ワーク５０の重心位置を算出するように形成される。また、重心位置算出部１２は、同じく力データに基づいて、ワーク５０の重量を取得する重量取得部１８を任意に備えていてもよい。ワーク５０の重心位置および重量を算出する際に使用される力データは、ロボット４０の複数の姿勢において、換言すれば、ロボット４０のロボットアーム先端のエンドエフェクタ部やツール４４やワーク５０の複数の姿勢において、一時停止または移動動作中に、その位置および姿勢に関連付けられて取得される。図３に示されるように、ワーク５０を取出して移動させる過程（図３の（ａ）→（ｂ）→（ｃ））において、ワーク５０に複数の姿勢をとらせるようにするのが好ましい。
【００３１】
ワーク５０の移動位置または移動経路を教示する際に、重心位置および重量が算出可能であるか否かを、結果に応じて、教示装置の画面に表示したり、教示装置で音や振動を出したり、備えられた表示灯で示したりしてもよい。ワーク５０の重心位置および重量が算出可能であるかは、重心位置および重量が既知である適当なワークを実際に移動させて、正確な結果が得られるか否かによって判定される。この判定処理は、例えば、重心位置および重量の算出値が所定閾値を超えて異なるか否か、算出に使用される関係式の行列が縮退しているか否か、関係式における行列の条件数が所定閾値よりも小さいか否か、などに基づいて実行される。
【００３２】
ワーク５０の重心位置および重量を算出する目的で、制御装置１０は、ワーク５０の移動経路においてワーク５０に複数の姿勢をとらせるようにワーク５０の姿勢を自動的に変更するようにロボット４０を動作させてもよい。この場合、任意の移動経路が指定されると、制御装置１０は、その移動経路内でワーク５０が複数の姿勢をとるように、ロボット４０への動作指令を自動的に作成するように作用する。或いは教示プログラムを修正することによって、ワーク５０が移動中に適切な姿勢を有するようにワーク５０の姿勢を変更させてもよい。
【００３３】
重心位置算出部１２および重量取得部１８は、例えば特許文献８〜１０に開示されるように、ロボット４０の停止時の力データに基づいて、重力が作用する力を基にワーク５０の重心位置および重量をそれぞれ算出する。或いは、ワーク５０の重心位置および重量は、ロボット４０の動作中の力データに基づいて、重力および慣性力などが作用する力を基に算出されてもよい。いずれの場合も、ツール４４の重心位置および重量が予め取得される。ツール４４の重心位置および重量は、ワークを保持しない状態のツールに対して、重心位置算出部１２および重量取得部１８を用いて算出する。そして、ワーク５０を保持した状態におけるツール４４とワーク５０を合わせた重心位置および重量と、予め取得しておいたツール４４の重心位置および重量とを基に、ワーク５０の重心位置および重量が算出される。このとき、ツール４４とワーク５０の両方から力センサ４２に作用する力を基に重心位置を算出し、その値を本発明におけるワークの重心位置と置き換えても同様の効果がある場合には簡単のためにその値を使用してもよい。
【００３４】
ロボット４０の動作中の力データが利用される場合、リンクの慣性パラメータ（質量、重心位置、慣性テンソル）を同定するのに用いられる公知の同定方法が使用される。例えば力センサ４２に取付けられた物体に対するＮｅｗｔｏｎ−Ｅｕｌｅｒ方程式を立て、複数の姿勢についての関係式から、力センサ４２に取付けられた物体（ツール４４およびツール４４によって保持されるワーク５０）の重量および重心位置が、例えば最小二乗推定によって算出される。そして、予め取得しておいたツール４４の重心位置および重量と、前記算出結果とを基に、ツール４４によって保持されるワーク５０の重心位置および重量が算出される。
【００３５】
なお、重量取得部１８は、ワーク５０の重量を前述したように算出する代わりに、予め測定または算出された重量の値を使用するように形成されてもよい。ワーク５０の重量の個体差が大きくなく、既知の値を使用できる場合は、ワーク５０の重量の算出処理を省略することができる。また、重心位置の計算結果の誤差を低減できる。
【００３６】
動作するのに従って重心位置が変化するツール、例えば開閉する２つの爪から形成されるツールが使用される場合、ツールの構成部品の重心位置および重量を予め求めておく。また、ツールの可動部分、例えば爪のストローク長を計測する計測手段が使用される。そして、可動部分のストローク長、重心位置および重量に基づいて、ツールの重心位置を補正する。それにより、ツールの重心位置、ひいてはワーク５０の重心位置を正確に算出できるようになる。
【００３７】
ワーク５０の重量および重心位置が算出不可能であると判定された場合、或いは、ワーク５０の重量および重心位置が所定の閾値から大きく異なり、正確な結果が得られていないと判定された場合には、ツール４４によるワーク５０の保持状態が不安定であると推定される。なお、力データを取得する際のロボット４０の姿勢が不適切であることに起因してワーク５０の重心位置および重量を算出できない場合もある。これを防止する目的で、ワーク５０を所定の位置まで移動させた後は同一の移動経路に沿ってワーク５０を移動させるようにしてもよい。そして、その移動経路において、ワーク５０の重心位置および重量を算出可能であるような位置が教示される。
【００３８】
ワーク５０の重心位置などを算出できない場合、ロボット４０の姿勢が不適切であることを操作者に伝えるように、警告がロボット４０の教示操作盤などに表示されるようにしてもよい。さらに、ワーク５０の重量の算出結果が所定の閾値を超える場合、ワーク５０が複数保持されているなどの不適切な保持状態であると推定するようにしてもよい。
【００３９】
ワーク５０の重心位置および重量が算出できない場合、それらの算出結果が正確でないと判定される場合が頻繁に発生するときは、力センサによる測定結果が正確でない可能性がある。ツール４４によって保持される前のワーク５０はコンテナ５２内に不規則に配置されているので、例えばワーク５０を取出す際に周囲の他のワーク５０に接触したり、コンテナ５２に接触したりすることがあり、その結果、力センサ４２が損傷する可能性がある。そのため、必要に応じて搬出工程を中断し、または搬出工程が行われない時間、例えばメンテナンス時に、重心位置および重量が既知であるワークを利用して力センサ４２が正常に動作しているか否か検査を行うようにしてもよい。
【００４０】
推定処理部２２は、ツール４４の位置と、重心位置算出部１２によって算出されるワーク５０の重心位置との関係に基づいて、ワーク５０の保持状態を推定する。或いは、推定処理部２２は、ツール４４の位置と、ワーク５０の重心位置と、ワーク５０の重量と、に基づいて、ワーク５０の保持状態が推定される。そして、推定処理部２２による推定結果に基づいて、動作指令変更部１６が、ロボット４０の動作指令を変更する。動作指令変更部１６によって実行されるロボット４０に対する動作指令の変更には、動作指令の調整、補正および切替が含まれ得る。
【００４１】
続いて、推定処理部２２によるワーク５０の保持状態の推定処理、およびその推定結果に基づく動作指令変更部１６による動作指令の変更例について説明する。
（Ｉ）力データが所定の閾値範囲を越えて変動する場合
力センサ４２から得られる力データが所定の閾値範囲を超えて変動する場合、ツール４４に対するワーク５０の位置が一定ではない状態を表していると考えられる。すなわち、この場合は、推定処理部２２によって、ワーク５０が適切に保持されていない不安定な保持状態であると推定される。これに対しては、動作指令変更部１６は、例えば（Ｉ−Ｉ）ワーク５０をコンテナ５２内に戻す。ここで、コンテナ内に戻す場合、その位置は、ワークを取出した位置から所定範囲内の任意の位置、コンテナの領域データを基にした任意の位置、コンテナの中央部の位置などとする。これは、特に断らない限り、本明細書における他の実施形態においても同様である。または（Ｉ−ＩＩ）ワーク５０を例えば近くの作業台に一旦置き、より安定的な保持状態になるようにワーク５０を再度保持するように動作指令を変更する。または（Ｉ−ＩＩＩ）ワーク５０の搬送時のロボット４０の移動速度を、指定速度から小さくするように動作指令を変更する。
【００４２】
（ＩＩ）ワーク５０の重量が所定の閾値範囲に含まれない場合
重量取得部１８によって取得されるワーク５０の重量が閾値範囲の上限を超える場合は、複数のワーク５０が誤って保持されていると推定される。この場合、動作指令変更部１６は、（ＩＩ−Ｉ）ワーク５０をコンテナ５２内に戻すか、或いは（ＩＩ−ＩＩ）ワーク５０を一旦作業台に置き、より安定的な保持状態になるようにワーク５０を再度保持するように動作指令を変更する。また、ワーク５０の重量が閾値範囲の下限を下回る場合は、推定処理部２２によって、ワーク５０が保持されていないと推定される。この場合、動作指令変更部１６は、（ＩＩ−ＩＩＩ）念のためワーク５０をコンテナ５２内に戻すようロボット４０を動作指令を変更する。そして、コンテナ５２内のワーク５０を再び保持する動作が実行される。
【００４３】
（ＩＩＩ）ワーク５０の重心位置と、ツール４４によるワーク５０の保持位置との間の距離が所定の閾値範囲に含まれない場合
通常、ワーク５０の重心位置と、ワーク５０の保持位置との間の距離が短い場合は、ワーク５０をそのまま搬送したり、ロボット４０の基準座標系に対するワーク５０の位置および姿勢を視覚センサを用いて補正する保持位置補正用の計測位置まで移動させたりするなど、予め指定されたとおりにロボット４０を動作させる。しかしながら、バラ積みされたワーク５０を取出す場合は、傾斜したワーク５０の上方部分が保持されることも少なくない。したがって、ワーク５０の重心位置から離間した部分が保持されることも多い。
【００４４】
ツール４４によってワーク５０を保持する保持力が小さい場合、ワーク５０の重心位置から離間した位置が保持されると、ワーク５０が落下したり、ツール４４とワーク５０との位置関係が変化したりすることがある。したがって、動作指令変更部１６は、（ＩＩＩ−Ｉ）ワーク５０をコンテナ５２内に戻すか、または（ＩＩＩ−ＩＩ）ワーク５０を一旦作業台に置き、より安定的な保持状態になるようにワーク５０を再度保持するように動作指令を変更する。或いは、動作指令変更部１６は、（ＩＩＩ−ＩＩＩ）ワーク５０の保持位置と、ワーク５０の重心位置との距離に基づいて、ワーク５０を搬送する際の速度が指定速度よりも小さくなるように動作指令を変更する。例えば、保持位置と重心位置との間の距Ｄが第１の閾値Ｔｈ１を超える場合、指定された速度Ｖよりも小さい搬送速度Ｖ’でワーク５０が搬送されるように、関係式Ｖ’＝Ｖ・（Ｔｈ１／Ｄ）によって搬送速度が調整される。また、距離Ｄが第１の閾値Ｔｈ１よりも大きい第２の閾値Ｔｈ２を超える場合、搬送速度Ｖ’を予め定められた指定速度Ｖよりも小さい設定値に固定するよう調整される。
【００４５】
任意であるものの、重量取得部１８によって取得されるワーク５０の重量を利用してもよい。例えばワーク５０の重量が所定の閾値よりも小さい場合、保持状態が不安定であっても問題なく搬送できると判定され得る。この場合は、（ＩＩＩ−Ｉ）〜（ＩＩＩ−ＩＩＩ）の処理を実行することなく、ワーク５０はそのまま搬送される。
【００４６】
図４は、３つの吸着部５６を有する第１のツール５４を使用してワーク５０を保持する態様を示す。このような第１のツール５４の場合は、第１のツール５４に対するワーク５０の保持される面の位置および姿勢が第１のツール５４による保持の態様に応じて定まる。他方、ワーク５０は、第１のツール５４によって保持される可能性がある複数の面５０ａ，５０ｂ，５０ｃ，５０ｄを有している。そこで、ワーク５０がどの面において保持されているか、または意図された面が保持されているか否かを判定する。
【００４７】
どの面においてワーク５０が保持されているか、意図された面が保持されているか否かの判定は、制御装置１０の最短距離記憶部２８および最短距離取得部３０を利用して、次のようにして実行され得る。図５は、ワーク５０の保持面の判定方法を説明するための図である。最短距離取得部３０は、ワーク５０の保持面における平面から重心位置までの最短距離ＭＤ１を算出する。最短距離記憶部２８は、ワーク５０の各面５０ａ，５０ｂ，５０ｃ，５０ｄにおける平面から重心位置Ｇまでの最短距離ＭＤを予め記憶する。このときの最短距離は、ワークの面における平面と、重心位置との最短距離とし、三次元空間における平面に対して重心位置Ｇから垂線を下ろしたときに交わる点と、重心位置Ｇとの距離とする。ワークの面における平面は、ワークのある面において設定される平面であり、ワークの面をある平面に近似した近似平面、または、ワークの面のある位置における接平面、または、ワークの面において保持され得る３点の位置がなす平面とする。最短距離記憶部２８は、予め、保持する可能性があるワーク５０のそれぞれの面をツールで保持し、重心位置算出部１２および最短距離取得部３０を使用して、最短距離ＭＤを取得しておいてもよい。
【００４８】
ワーク５０において保持される可能性がある各面における平面から重心位置Ｇまでの最短距離ＭＤが互いに異なる場合は、次のように実行され得る。ロボット４０の基準座標系に対する、保持されたワーク５０の面の位置姿勢およびワーク５０を保持した状態で算出される重心位置Ｇに基づいて、最短距離取得部３０によって、ワーク５０の保持面における平面から重心位置までの最短距離ＭＤ１が算出される。そして、ここで算出された最短距離ＭＤ１と、最短距離記憶部２８によって記憶されたワーク５０の各面５０ａ，５０ｂ，５０ｃ，５０ｄにおける面から重心位置Ｇまでの最短距離ＭＤと、を比較してワーク５０のどの面が保持されているかを判定する。例えば比較される最短距離ＭＤ，ＭＤ１が最も近いワーク５０の面が保持面であると判定される。或いは、算出される最短距離ＭＤ１と、予め取得された最短距離ＭＤとの間の差が所定の閾値内に含まれるか否かに応じて、保持面が特定されてもよい。ワーク５０において保持される可能性がある各面における平面から重心位置Ｇまでの最短距離ＭＤが、意図された面とそれ以外の面とで異なっていて、保持された面が意図された面であるか否かだけを判定すればよい場合、意図された面の場合の最短距離ＭＤと、最短距離取得部３０によって算出されたＭＤ１とを比較して、保持された面が意図された面であるか否かを判定する。
【００４９】
そして、推定処理部２２によって、ワーク５０が意図された面において保持されていると判定された場合は、（ＩＩＩ−ＩＶ）ワーク５０はそのまま搬送される。他方、ワーク５０の保持面が意図された面でないと判定された場合は、動作指令変更部１６が、（ＩＩＩ−Ｖ）ワーク５０を作業台に一旦置き、より安定的な保持状態になるようにワーク５０を再度保持するように動作指令を変更する。または、（ＩＩＩ−ＶＩ）保持された面に応じた動作をするように、動作指令を変更する。
【００５０】
保持されたワーク５０の面における平面の位置および姿勢は、次のようにして求められる。ワーク５０の面を３点以上の位置において保持する場合（図４には３点の位置において保持される例が示される）、ロボット４０の基準座標系に対する位置が既知である複数の保持位置に基づいて、保持されたワーク５０の面における平面の位置および姿勢が算出される（図４の場合、３点の保持位置から面の位置および姿勢を求める）。なお、ツールは、例えばワーク５０の面を押付けるとき、ばねや蛇腹機構によって押し込みに応じて位置を変え、衝撃を逃がすとともに、ワーク５０の面の傾きに応じて保持位置が変わるようにしてその位置を保つ、または、持ち上げたときに保持位置が基準位置などに戻るようにし、さらに、搬送時には動かないように固定され、吸引力を発生させるように形成された、空気圧式の吸着ツールであり得る。
【００５１】
ロボット４０の基準座標系に対する位置および姿勢が既知である保持面を有するツールが使用されてもよい。この場合、ツールの保持面と、保持されるワーク５０の面とが接触した状態でワーク５０が保持され、ワーク５０の被保持面における平面の位置および姿勢は、ツールの保持面の位置および姿勢に基づいて求められる。例えば、図６に示される第２のツール６０は、先端に吸盤６２が取付けられていて、ワーク５０の面に対して面接触するように形成されている。この場合、ワーク５０は、第２のツール６０に対して一定の姿勢をとりながら取出されるようになる。したがって、第２のツールの吸盤６２の位置および姿勢が既知であれば、それらの情報に基づいて、保持されるワーク５０の面における平面の位置および姿勢が求められる。
【００５２】
また、ツールがワーク５０を１箇所または２箇所の位置において保持するように形成されていて、ツール先端の面の位置および姿勢の情報がない場合、ワーク５０を取出す前に、ワーク５０が動かないように、ワーク５０の面上の３箇所以上にツールを接触させる。それら３箇所以上の接触位置の位置に基づいて、保持されるワーク５０の面における平面の位置および姿勢が算出される。
【００５３】
例えば視覚センサなどを用いて、ワーク５０がツールによって保持される前に、保持されるワーク５０の面における平面の位置および姿勢を求めてもよい。このようにワーク５０を保持する前に保持されるワーク５０の面における平面の位置および姿勢を求める場合、ワーク５０を保持しようとする際にワーク５０が動かないようにするか、またはワーク５０の移動を最小限に抑える必要がある。したがって、この場合は、ワーク５０に接触するツールの部位を柔軟な構造で形成されるようにし、ワーク５０に接触する際にその形状が柔軟に変化するようにされるのが好ましい。例えば、ばねや蛇腹機構や、空気を通す穴を複数有し柔軟な材料で作られた機構、などで形成され、吸引することによってワークを引付けその状態を固定する、空気圧式吸引機構部を有するツールであり得る。
【００５４】
なお、保持されるワーク５０の面は必ずしも平面でなくてもよく、上記処理を実行する際に平面とみなして問題がない程度に凹凸を有する面、または緩やかな曲面、保持する可能性のある面において保持する部分が平面である面であってもよい。
【００５５】
前述した処理は、ワーク５０がどの面において保持されているのかを確認する必要がある場合、視覚センサを使用しても保持面が特定できない場合においても有用である。
【００５６】
前記（ＩＩＩ）の場合、すなわちワーク５０の重心位置と、ツール４４によるワーク５０の保持位置との間の距離が所定の閾値範囲に含まれない場合において、ワーク５０の保持位置と重心位置のベクトルの向きに基づいて、推定処理部２２は、ワーク５０の姿勢および長軸方向を推定してもよい。そして、この推定結果に基づいて、動作指令変更部１６は、ワーク５０の姿勢を補正することができる。
【００５７】
図７には、同一の位置においてツール４４によって保持されるワーク５０の状態（ａ）〜（ｄ）が例示されていて、保持位置Ｐから重心位置Ｇに向かうベクトルＡが矢印で描かれている。図示されるように、同一の位置においてワーク５０が保持される場合であっても、ベクトルＡは様々な方向を向くことが分かる。
【００５８】
まず、ワーク５０の所定位置において保持されていて、ワーク５０の保持位置および重心位置を通って延びる軸線回りに回転しないようにワーク５０が保持されている、またはその軸線回りの回転を無視してよい場合について考える。この場合は、ツール４４に対するワーク５０のある軸の姿勢が分かれば、ワーク５０の姿勢を推定できる。図７に示されるように、保持位置Ｐから重心位置Ｇに向けられたベクトルＡの向きを、ワーク５０のおおよその姿勢および長軸方向としても実際の適用において問題がない場合、このベクトルＡの向きに基づいて、ワーク５０の姿勢および長軸方向が推定される。このように、ツール４４の位置姿勢、ワーク５０の保持位置、ツール４４に対するワーク５０の姿勢から、ワーク５０の位置姿勢を推定することができる。
【００５９】
或いは、保持位置Ｐから重心位置Ｇに向けられたベクトルＡと、ワーク５０の姿勢および長軸方向を関連付けることによって、ワーク５０の姿勢および長軸方向が求められてもよい。この場合は、保持位置Ｐから重心位置Ｇに向けられたベクトルＡを、ツール４４に対するワーク５０の姿勢を表す代表的なベクトルＢ、例えば慣性主軸に対して平行なベクトルに変換する。そのために、ワーク５０における所定の位置から重心位置Ｇに向けられたベクトルを、ツール４４に対するワーク５０の姿勢を表す代表的なベクトルＢに変換する変換行列を予め求めておく。この代表的なベクトルＢは、それに基づいてワーク５０の姿勢を求められるように設定される。そして、予め求めておいた変換行列に従って、保持位置Ｐから重心位置Ｇに向けられたベクトルＡから、ツール４４に対するワーク５０の姿勢を表すベクトルＢを算出する。ツール４４の位置姿勢、ワーク５０の保持位置、ツール４４に対するワーク５０の姿勢を表すベクトルＢを用いることによって、ワーク５０の位置姿勢を推定することが可能となる。
【００６０】
なお、ツール４４に対するワーク５０の姿勢を表す代表的なベクトルＢとは、ワーク５０の位置および姿勢に関する拘束条件によって、代表的なベクトルＢに基づいて、ワーク５０の長軸方向および姿勢を表すことができるベクトルとする。換言すると、代表的なベクトルＢとは、ツールによるワークの保持方法と、該ベクトルＢと、に基づいて、該ベクトルＢを基にした軸線回りの回転とは無関係にワーク５０の長軸方向および姿勢を決定できるようなベクトルである。代表的なベクトルＢの一例が図８に示される。
【００６１】
続いて、ワークの長軸方向の長さが所定閾値よりも大きく、かつワークの保持位置と重心位置との間の距離が別の所定の閾値よりも大きい場合において、保持位置および重心位置を通って延びる軸線回りの回転を無視してよい、またはその軸線回りに回転しないようにワークが保持されている場合について考える。この場合においても、保持位置から重心位置に向かうベクトルの向きに基づいて、ワークの姿勢および長軸方向が推定される。ツールの姿勢と、ツールに対するワークの姿勢を基に、ワークの姿勢を推定することができる。またワークの長軸方向の長さが所定閾値よりも大きく、かつワークの保持位置と重心位置との間の距離が別の所定の閾値よりも大きい場合、ワークの保持位置が所定位置でなくとも、ツールの位置姿勢、ツールに対するワークの姿勢を表すベクトルを用いることによって、ワークのおおよその位置姿勢を推定することが可能となる。ワークが長く、保持する位置をワークの端付近の適当な位置とする場合には、このような推定で実用的な場合も多い。
【００６２】
保持位置と重心位置との間の距離が所定の閾値よりも大きい場合、保持位置を所定位置としなくとも、保持位置および重心位置に基づいて、ワークの姿勢および長軸方向をより小さな誤差で推定することができる。さらに、ワークの姿勢を完全に正確に特定する必要がなく、おおよその推定ができればよい場合、適用可能な対象が広くなる。保持位置と重心位置との間の距離が小さくなるのに従って、姿勢の推定結果における誤差は大きくなるので、許容できる姿勢誤差に応じて、閾値が設定される。ワークの向きを特定しなくてもよい場合、ワークのいずれの端部側が保持されてもよいが、ワークの向きが特定される必要がある場合は、ワークのいずれかの端部側の位置、またはワークのいずれかの端部と重心との間の任意の位置が保持されるようにする。
【００６３】
保持位置と重心位置との間の距離が所定の閾値より大きい場合、ワークの保持位置から重心位置に向けられたベクトルを、ワークにおける所定の位置から重心位置に向けられたベクトルとみなしてもあまり問題ないとする。また、ワークにおける所定の位置から重心位置に向けられたベクトルを、ツールに対するワークの姿勢を表す代表的なベクトルに変換する変換行列を予め求めておく。このようにして、ワークの保持位置と、予め求めておいた変換行列と、ワークの保持位置から重心位置に向けられたベクトルと、に基づいて、ワークの姿勢および長軸方向が求められる。
【００６４】
図９は、ワーク７０およびワーク７０を保持するのに使用される第３のツール７２の構成例を示している。第３のツール７２は、２つの爪７４を先端に有する構成を有している。ワーク７０は、孔が一端に形成される円環状の第１の部分７６と、棒状の第２の部分７８と、を有している。第３のツール７２は、２つの爪７４をワーク７０の第１の部分７６の孔に通した状態で、２つの爪７４を互いに離間させる方向に移動させて、第１の部分７６の内周部に力を作用させることによって、ワーク７０を保持できるようになっている。この場合、ワーク７０は、第３のツール７２によって保持されると、第２の部分７８に沿って延びる長軸回りの回転が拘束されるようになっている。図９には、第３のツール７２によるワーク７０の保持位置が同一でありながら、ワーク７０の姿勢が異なる複数の例（ａ）〜（ｃ）が示されている。
【００６５】
ワーク７０の保持位置Ｐは、例えば第３のツール７２の爪７４に接触する第１の部分７６の内周部における２箇所の接触点の中間に設定される。そして、保持位置Ｐおよび重心位置Ｇがワーク７０の長軸上に位置すると仮定すると、図示されるように、保持位置Ｐから重心位置Ｇに向けられたベクトルＡの向きは、ワーク７０の長軸方向に概ね一致する。このため、保持位置Ｐから重心位置Ｇに向けられたベクトルＡを基に、ワーク７０の長軸方向が推定できる。また、ワーク７０の長軸方向を基に、ツール７２に対するワーク７０の姿勢を推定することができる。したがって、ワーク７０の長軸方向と姿勢とを対応づけておけば、ベクトルＡの向きからツール７２に対するワーク７０の姿勢を推定できることになる。ツール７２の姿勢と、ツール７２に対するワーク７０の姿勢を基に、ワークの姿勢を推定することができる。ワーク７０の保持位置が所定位置付近である場合、ツール７２の位置姿勢と、ワーク７０の保持位置と、ツール７２に対するワーク７０の姿勢を基に、ワーク７０の位置姿勢を推定することができる。保持位置が所定位置に近いほど、ワーク７０の位置についても、より正確に推定できる。
【００６６】
保持位置Ｐがワーク７０の長軸上に存在しない場合であっても、同様に、ベクトルＡの向きからワーク７０のおおよその長軸方向および姿勢を推定できる。また、保持位置Ｐから重心位置Ｇに向けられたベクトルＡを、ワークの姿勢を表す代表的なベクトル、例えばワーク７０の長軸方向のベクトルに変換する変換行列を予め求めておけば、その変換行列を利用して、ワーク７０の長軸方向およびワーク７０の姿勢を推定できる。このように、ワークのある軸線回りが固定される状態で保持されている場合に、保持位置から重心位置へのベクトルを基に、ツールに対するワークの姿勢を求め、ワークの長軸方向および姿勢を推定することができる。ワーク７０の位置の推定についても、上記と同様である。
【００６７】
図１０は、ワーク８０およびワーク８０を保持するのに使用される第４のツール８２の別の構成例を示している。ワーク８０の長軸方向の長さが所定閾値よりも大きく、かつワークの保持位置と重心位置との間の距離が別の所定の閾値よりも大きいとする。この例において、ワーク８０は、概ね円柱状の形状を有している。第４のツール８２は、先端部を形成する２つの爪８４を互いに接近させることによって、ワーク８０の外周部の２箇所においてワーク８０を保持するように形成されている。この場合も、ワーク８０は、長軸回りに回転が拘束されるように保持される。図１０には、第４のツールに８２よるワーク８０の保持位置が同一でありながら、ワーク８０の姿勢が異なる複数の例（ａ）〜（ｃ）が示されている。
【００６８】
ワーク８０の保持位置は、例えば第４のツール８２の爪８４に接触するワーク８０の外周部における２箇所の接触点の中間に設定される。そして、保持位置Ｐおよび重心位置Ｇがワーク８０の長軸上に位置すると仮定すると、図示されるように、保持位置Ｐから重心位置Ｇに向けられたベクトルＡの向きは、ワーク８０の長軸方向に概ね一致する。このため、保持位置Ｐから重心位置Ｇに向けられたベクトルＡを基に、ワーク８０の長軸方向が推定できる。また、ワーク８０の長軸方向を基に、ツール８２に対するワーク８０の姿勢を推定することができる。したがって、ワーク８０の長軸方向と姿勢とを対応づけておけば、ベクトルＡの向きからツール８２に対するワーク８０の姿勢を推定できることになる。ツール８２の姿勢と、ツール８２に対するワーク８０の姿勢を基に、ワーク８０の姿勢を推定することができる。またワーク８０の長軸方向の長さが所定閾値よりも大きく、かつワークの保持位置と重心位置との間の距離が別の所定の閾値よりも大きい場合、ワーク８０の保持位置が所定位置でなくとも、ツール８２の位置姿勢と、ツール８２に対するワーク８０の姿勢を基に、ワークのおおよその位置姿勢を推定することができる。
【００６９】
ワーク８０の長軸方向の長さが所定閾値よりも大きく、かつワークの保持位置と重心位置との間の距離が別の所定の閾値よりも大きい場合、保持位置Ｐがワーク８０の長軸上に存在しない場合であっても、ベクトルＡの向きからワーク８０のおおよその長軸方向および位置姿勢を推定できる。また、保持位置Ｐから重心位置Ｇに向けられたベクトルＡを、ツールに対するワークの姿勢を表す代表的なベクトル、例えばワーク８０の長軸方向のベクトルに変換する変換行列を予め求めておけば、その変換行列を利用して、ワーク８０の長軸方向およびワーク８０の姿勢を算出できる。このように、ワークのある軸線回りが固定される状態で保持されている場合において、ワークの長軸方向の長さが所定閾値よりも大きく、かつワークの保持位置と重心位置との間の距離が別の所定の閾値よりも大きい場合に、保持位置から重心位置へのベクトルを基に、ツールに対するワークの姿勢を求め、ワークの長軸方向およびワークの位置姿勢を推定することができる。
【００７０】
前述した複数の例において、ワークの重心位置から離間して位置するワークの端部や端部に近い位置を意図的に保持するようにしてもよい。保持位置と重心位置との間の距離が大きくなることによって、ワークの姿勢を求めることが可能になったり、ワークの姿勢を精度よく求められるようになったりするからである。
【００７１】
前述した例において、ワークの保持方法と、ワークの保持位置から重心位置に向けられたベクトル、またはそれを基にしたワークの姿勢を表す代表的なベクトルに基づいて、ワークの長軸方向、ワークの位置および姿勢を推定できる場合、それらの推定情報に基づいて次のような処理が可能になる。
（１）ワークの位置および姿勢を補正して、各ワークを整列させた状態でコンベアまたはワークの搬送先に移動させられる。
（２）ワークの計測装置に対して計測が可能となるように、ワークの位置および姿勢を変えて移動させられる。このとき、より正確に位置および姿勢が推定されていることが望ましいが、おおよその位置および姿勢でもそれが推定されていることによって前記計測が可能となる。ワークの計測の目的としては、保持しているワークの位置および姿勢を正確に補正、検出することや、ワークの品質や状態を検査することなどがある。例えば、視覚センサなどを用いた検査装置に対して、所望の計測位置姿勢となるように、また計測可能な領域内にワークが配置されるように、またワークの長軸方向が所定の方向となるように、また計測可能な平面上にワークが載るようになど、ワークの位置および姿勢を変更できる。このように検出装置を利用してワークの位置および姿勢を変更する場合の処理は、制御装置１０の保持位置補正部３２によって実行される。
（３）ワークの位置および姿勢を変更する必要がない場合は、動作指令を変更することなく、ワークの搬送工程をそのまま継続させられる。
（４）保持位置から重心位置に向けられたベクトルの向きがツールに対して所定の範囲を超える場合は、ワークの姿勢が所望の範囲に収まっていない、または該ベクトルが正しく算出されていないなどが考えられ、ワークの保持状態が不適切であると判定する。この場合、動作指令変更部１６が、ワークをコンテナに戻すか、または作業台に一旦置いてからより安定的な姿勢でワークを保持し直すように動作指令を変更する。
前記処理によって、安定した状態での搬送が可能になるとともに、ワークのおおよその位置および姿勢を推定することによって、別の作業台などにおいてワークの位置や姿勢を検出して保持し直すといった作業の回数を減らして必要なときだけおこなうようにすることができる。
【００７２】
また、ワークの重心位置と、ワークの保持位置との間の距離が所定閾値を超える場合、ワーク搬送時の移動方向のベクトルが、重心位置から保持位置に向けられたベクトルと同じ向きになるように搬送時のワークの位置および姿勢を補正してもよい。複数の保持位置が存在する場合、それら保持位置のうちの代表的な位置またはそれら保持位置の中心位置が保持位置として用いられる。このようにすれば、ワークを搬送させる際にワークの保持状態が不安定になるのを防止できる。ワークの重量が所定の閾値よりも小さい場合は、搬送時にワークの保持位置が不安定にならないと判定され、このような処理を実行しないようにしてもよい。
【００７３】
前述した処理を実行するとともに、取出されたワークの重量を算出することによって、ワークの種類の判定処理、ワークの良否判定、または部品が正しくワークに組付けられているか否かの判定を実行できる。ワークの種類の判定処理は、制御装置１０の判定処理部２４によって実行される。ワークの良否判定は、制御装置１０の良否判定処理部２６によって実行される。
【００７４】
ワークがツールに対して常に同一の位置および姿勢になるように保持される場合、例えば、ワークが所定の位置に置かれている場合、また視覚センサなどの計測装置を用いて同じ位置関係で保持可能な場合、搬送される際に、ワークの重心位置を算出し、そのワークの重心位置の算出値と、予め定められた値とを比較することによって、判定処理部２４によるワークの種類の判定、良否判定処理部２６によるワークが意図したものであるか否かの良否判定、または部品が正しくワークに組付けられているか否かの判定を簡易に、また迅速に実行できる。ワークの重心位置を利用することによって、対象のワークの重量が同じである場合であっても種々の判定処理が可能になる。特に、ワークの外部がカバーで被覆されている場合など、通常の視覚センサによる検査を実行できないときに有効である。さらに、ワークの重量および重心位置の両方を各種の判定に利用することによって、より詳細に、より正確に判定することができ、判定の精度を向上させられる。
【００７５】
ワークが搬送される際にワークの種類またはワークの良否判定をおこない、その結果に基づいてワークの搬送先を変えたり、意図したものになっていないワークを除いたりするなど、ワークに応じて動作指令変更部１６がロボットの動作指令を変更する。このように、搬送の移動動作中に各種の判定をおこない、その結果に応じた処理をおこなうため、また、多目的に使用可能な力計測部を用いて実現可能なため、システムのサイクルタイムを短縮できるとともに、システムの稼働コストが削減される。それにより、システムの用途の幅が広がる。
【００７６】
さらに、取出したワークを搬送する際に算出した重心位置を基に、ワークを搬送先の所定の場所、例えばコンベヤに置く際に、ワークの重心位置がコンベヤの所定の領域内に含まれるようにワークを置くのが好ましい。こうすることによって、ワークを置く工程が安定的に実行される。例えば、ワークがコンベヤから落下するのを防止できる。また、例えばパレタイズ工程の際に、同一形状でありながら重心位置が異なる複数のワークを取出して積重ねる場合に、重心位置が局所的に集中しないようにワークの重心位置をずらすことができる。
【００７７】
前述した実施形態によれば、ワークを保持するときに、ツールとワークの重心位置との位置関係を所望の位置関係とすることができない状態で置かれているワークをツールによって取出して搬送する際に算出されるワークの重心位置に基づいて、ワークの保持状態の安定性、保持しているワークの位置および姿勢、ワークのどの面を保持しているかなどの、ワークの保持状態の推定、ワークの種類の判別、ワークの良否判定などが実行される。また、必要に応じて、ワークの重量と、力検出部によって検出される力データの変化と、をさらに考慮して各種判定が実行される。そして、ワークの取出し搬送時に得られた、それらの保持されているワークの状態、状況などの結果に応じてロボットの動作を変更する。その結果、ワークの搬送中に各種判定が実行できる、またワークを作業台に置くなどの工程をなくしたり、置く回数を減らしたりすることができる、また多目的に使用可能な力計測部を使用し高価な検査装置などを省略できるので、システムおよびその稼働コストを削減できる。また、ワークの搬送時に事故の危険性がある場合に、ロボットの動作を変更して事故を未然に防止することによって、システムの安全性を向上させられる。
【００７８】
以上、本発明の種々の実施形態および変形例を説明したが、他の実施形態および変形例によっても本発明の意図される作用効果を奏することができることは当業者に自明である。特に、本発明の範囲を逸脱することなく前述した実施形態および変形例の構成要素を削除ないし置換することが可能であるし、公知の手段をさらに付加することが可能である。また、本明細書において明示的または暗示的に開示される複数の実施形態の特徴を任意に組合せることによっても本発明を実施できることは当業者に自明である。
【符号の説明】
【００７９】
１０    制御装置
１２    重心位置算出部
１４    処理部
１６    動作指令変更部
１８    重量取得部
２０    記憶部
２２    推定処理部（処理部）
２４    判定処理部（処理部）
２６    良否判定処理部（処理部）
２８    最短距離記憶部
３０    最短距離取得部
３２    保持位置補正部
４０    ロボット
４２    力センサ（力計測部）
４４    ツール
５０    ワーク
５２    コンテナ
５４    第１のツール（ツール）
６０    第２のツール（ツール）
７０    ワーク
７２    第３のツール（ツール）
Ｇ    重心位置
ＭＤ    最短距離
Ｐ    保持位置
【図１】
2014210311.tif 000003
【図２】
2014210311.tif 000004
【図３】
2014210311.tif 000005
【図４】
2014210311.tif 000006
【図５】
2014210311.tif 000007
【図６】
2014210311.tif 000008
【図７】
2014210311.tif 000009
【図８】
2014210311.tif 000010
【図９】
2014210311.tif 000011
【図１０】
2014210311.tif 000012
【図１１】
2014210311.tif 000013