(57)【要約】【課題】対象物に対する作業が完了する前にワークがロボットの可動範囲から外れてしまう可能性を低減するロボットの制御方法を提供する。【解決手段】搬送装置５０により搬送される対象物Ｗに対してエンドエフェクター２０を用いて作業を行うロボット１の制御方法において、対象物Ｗの位置に基づいてエンドエフェクター２０の目標位置を算出し、対象物Ｗの搬送量に対応するように目標位置を補正するトラッキング補正量を算出し、目標位置及びトラッキング補正量に基づいてエンドエフェクター２０を対象物Ｗに追従させ、力センサーＰを用いて対象物Ｗからエンドエフェクター２０に作用する作用力を取得し、作用力を目標力にするように目標位置を補正する力制御補正量を算出し、力制御補正量に基づいてマニピュレーター１０を駆動することにより作用力を予め決定された目標力に制御する。【選択図】図３
2020189392.tif 000002
【特許請求の範囲】
【請求項１】
搬送装置により所定の経路に沿って搬送される対象物に対して、エンドエフェクターを用いて作業を行うロボットであって、前記エンドエフェクターを支持するマニピュレーターと、前記マニピュレーターを支持するベースと、前記ベースを移動させる移動部とを備えるロボットを、制御装置により制御するロボットの制御方法において、
位置センサーを用いて前記対象物の位置を取得することと、
前記対象物の位置に基づいて前記エンドエフェクターの目標位置を算出することと、
前記搬送装置による前記対象物の搬送量を取得することと、
前記搬送量に対応するように前記目標位置を補正するトラッキング補正量を算出することと、
前記目標位置に基づいて前記マニピュレーターを駆動し、前記トラッキング補正量に基づいて前記移動部を駆動することにより、前記エンドエフェクターを前記対象物に追従させることと、
力センサーを用いて前記対象物から前記エンドエフェクターに作用する作用力を取得することと、
前記作用力を所定の目標力にするように前記目標位置を補正する力制御補正量を算出することと、
前記力制御補正量に基づいて前記マニピュレーターを駆動することにより、前記対象物からの前記作用力を予め決定された目標力に制御することと、
を含むロボットの制御方法。
【請求項２】
前記目標位置が前記ベースの位置を基準とする第１範囲から外れる場合において、前記トラッキング補正量に基づいて前記移動部を駆動する請求項１に記載のロボットの制御方法。
【請求項３】
前記トラッキング補正量が第１閾値以上となる場合において、前記トラッキング補正量に基づいて前記移動部を駆動する請求項１又は２に記載のロボットの制御方法。
【請求項４】
搬送装置により所定の経路に沿って搬送される対象物に対して、エンドエフェクターを用いて作業を行うロボットであって、前記エンドエフェクターを支持するマニピュレーターと、前記マニピュレーターを支持するベースと、前記ベースを移動させる移動部とを備えるロボットを、制御装置により制御するロボットの制御方法において、
位置センサーを用いて前記対象物の位置を取得することと、
前記対象物の位置に基づいて前記エンドエフェクターの目標位置を算出することと、
前記搬送装置による前記対象物の搬送量を取得することと、
前記搬送量に対応するように前記目標位置を補正するトラッキング補正量を算出することと、
前記移動部を前記経路に沿って駆動させながら、前記目標位置、前記トラッキング補正量及び前記移動部の移動量に基づいて前記マニピュレーターを駆動することにより、前記エンドエフェクターを前記対象物に追従させることと、
力センサーを用いて前記対象物から前記エンドエフェクターに作用する作用力を取得することと、
前記作用力を所定の目標力にするように前記目標位置を補正する力制御補正量を算出することと、
前記力制御補正量に基づいて前記マニピュレーターを駆動することにより、前記対象物からの前記作用力を予め決定された目標力に制御することと、
を含むロボットの制御方法。
【請求項５】
前記力制御補正量が、前記目標位置を前記経路に沿う経路方向に補正する場合において、前記力制御補正量の前記経路方向の成分に基づいて前記移動部を駆動し、前記力制御補正量の前記経路方向の成分以外に基づいて前記マニピュレーターを駆動する請求項１乃至４のいずれか１項に記載のロボットの制御方法。
【請求項６】
前記目標位置が前記ベースの位置を基準とする第２範囲から外れる場合において、前記力制御補正量の前記経路方向の成分に基づいて前記移動部を駆動する請求項５に記載のロボットの制御方法。
【請求項７】
前記力制御補正量の前記経路方向の成分が第２閾値以上となる場合において、前記力制御補正量の前記経路方向の成分に基づいて前記移動部を駆動する請求項５又は６に記載のロボットの制御方法。
【請求項８】
前記ベースの位置を基準とする前記エンドエフェクターの可動範囲に基づいて、前記作業の開始時における前記ベースの初期位置を、前記移動部の移動量が削減されるように決定する請求項１乃至７のいずれか１項に記載のロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの制御方法に関する。
【背景技術】
【０００２】
特許文献１は、搬送装置によって搬送されるワークに対して作業を行うロボットを制御するロボット制御装置を開示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１７４１７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の技術では、作業に要する時間によっては、ワークに対する作業が完了する前に、ワークがロボットの可動範囲から外れてしまうおそれがある。
【課題を解決するための手段】
【０００５】
第１態様は、搬送装置により所定の経路に沿って搬送される対象物に対して、エンドエフェクターを用いて作業を行うロボットであって、前記エンドエフェクターを支持するマニピュレーターと、前記マニピュレーターを支持するベースと、前記ベースを移動させる移動部とを備えるロボットを、制御装置により制御するロボットの制御方法において、位置センサーを用いて前記対象物の位置を取得することと、前記対象物の位置に基づいて前記エンドエフェクターの目標位置を算出することと、前記搬送装置による前記対象物の搬送量を取得することと、前記搬送量に対応するように前記目標位置を補正するトラッキング補正量を算出することと、前記目標位置に基づいて前記マニピュレーターを駆動し、前記トラッキング補正量に基づいて前記移動部を駆動することにより、前記エンドエフェクターを前記対象物に追従させることと、力センサーを用いて前記対象物から前記エンドエフェクターに作用する作用力を取得することと、前記作用力を所定の目標力にするように前記目標位置を補正する力制御補正量を算出することと、前記力制御補正量に基づいて前記マニピュレーターを駆動することにより、前記対象物からの前記作用力を予め決定された目標力に制御することと、を含むロボットの制御方法である。
【０００６】
第２態様は、第１態様において、前記目標位置が前記ベースの位置を基準とする第１範囲から外れる場合において、前記トラッキング補正量に基づいて前記移動部を駆動することである。
【０００７】
第３態様は、第１又は第２態様において、前記トラッキング補正量が第１閾値以上となる場合において、前記トラッキング補正量に基づいて前記移動部を駆動することである。
【０００８】
第４態様は、搬送装置により所定の経路に沿って搬送される対象物に対して、エンドエフェクターを用いて作業を行うロボットであって、前記エンドエフェクターを支持するマニピュレーターと、前記マニピュレーターを支持するベースと、前記ベースを移動させる移動部とを備えるロボットを、制御装置により制御するロボットの制御方法において、位置センサーを用いて前記対象物の位置を取得することと、前記対象物の位置に基づいて前記エンドエフェクターの目標位置を算出することと、前記搬送装置による前記対象物の搬送量を取得することと、前記搬送量に対応するように前記目標位置を補正するトラッキング補正量を算出することと、前記移動部を前記経路に沿って駆動させながら、前記目標位置、前記トラッキング補正量及び前記移動部の移動量に基づいて前記マニピュレーターを駆動することにより、前記エンドエフェクターを前記対象物に追従させることと、力センサーを用いて前記対象物から前記エンドエフェクターに作用する作用力を取得することと、前記作用力を所定の目標力にするように前記目標位置を補正する力制御補正量を算出することと、前記力制御補正量に基づいて前記マニピュレーターを駆動することにより、前記対象物からの前記作用力を予め決定された目標力に制御することと、を含むロボットの制御方法である。
【０００９】
第５態様は、第１乃至第４態様の何れかにおいて、前記力制御補正量が、前記目標位置を前記経路に沿う経路方向に補正する場合において、前記力制御補正量の前記経路方向の成分に基づいて前記移動部を駆動し、前記力制御補正量の前記経路方向の成分以外に基づいて前記マニピュレーターを駆動することである。
【００１０】
第６態様は、第５態様において、前記目標位置が前記ベースの位置を基準とする第２範囲から外れる場合において、前記力制御補正量の前記経路方向の成分に基づいて前記移動部を駆動することである。
【００１１】
第７態様は、第５又は第６態様において、前記力制御補正量の前記経路方向の成分が第２閾値以上となる場合において、前記力制御補正量の前記経路方向の成分に基づいて前記移動部を駆動することである。
【００１２】
第８態様は、第１乃至第７態様の何れかにおいて、前記ベースの位置を基準とする前記エンドエフェクターの可動範囲に基づいて、前記作業の開始時における前記ベースの初期位置を、前記移動部の移動量が削減されるように決定することである。
【図面の簡単な説明】
【００１３】
【図１】ロボットシステムの概略構成を説明する斜視図。
【図２】複数のプロセッサーを有する制御装置の一例を説明するブロック図。
【図３】制御装置を説明する機能ブロック図。
【図４】教示装置のＧＵＩの一例を説明する図。
【図５】コマンドの一例を説明する表。
【図６】ねじ穴の位置とＴＣＰとの関係を説明する図。
【図７】作業中におけるロボットの移動を説明する模式的な平面図。
【図８】目標位置オフセットを説明する模式的な平面図。
【図９】ロボットの制御方法を説明するフローチャート。
【図１０】トラッキング補正量の決定方法を説明するフローチャート。
【図１１】力制御補正量の決定方法を説明するフローチャート。
【図１２】トラッキング補正量の決定方法の変形例を説明するフローチャート。
【発明を実施するための形態】
【００１４】
以下、図面を参照しながら実施形態を説明する。図面において、同一又は類似の要素には同一又は類似の符号がそれぞれ付され、重複する説明は省略される。
【００１５】
図１に示すように、本実施形態に係るロボットシステム１００は、ロボット１と、エンドエフェクター２０と、位置センサー３０と、制御装置４０と、教示装置４５と、搬送装置５０とを備える。ロボット１は、搬送装置５０により所定の経路５１に沿って搬送される対象物Ｗに対して、エンドエフェクター２０を用いて作業を行う。ロボット１は、エンドエフェクター２０を支持するマニピュレーター１０と、マニピュレーター１０を支持するベース１１と、ベース１１を移動させる移動部１２とを備える。ロボット１として、例えば、教示装置４５の教示により各種作業が可能な汎用ロボットが採用され得る。
【００１６】
マニピュレーター１０は、例えば複数の相互連結されたリンク及び関節を有することにより複数自由度で運動するロボティックアームである。図１に示す例において、マニピュレーター１０は、６つの関節Ｊ１〜Ｊ６を備える６軸アームである。関節Ｊ２，Ｊ３，Ｊ５は曲げ関節であり、関節Ｊ１，Ｊ４，Ｊ６はねじり関節である。エンドエフェクター２０は、例えば、スクリュードライバー、グリッパー、グラインダー等のツールである。エンドエフェクター２０は、ワークである対象物Ｗに対して、例えば、ねじ締め、把持、加工等の種々の作業を行う。エンドエフェクター２０は、マニピュレーター１０の先端部において、メカニカルインターフェイスを介して関節Ｊ６に装着される。マニピュレーター１０は、制御装置４０に駆動されることにより、エンドエフェクター２０の位置及び姿勢を決定する。
【００１７】
マニピュレーター１０は、先端近傍の所定位置において、エンドエフェクター２０の位置の基準であるツールセンターポイント（ＴＣＰ）を設定される。ＴＣＰは任意に設定可能であり、例えば、関節Ｊ６の回転軸上に設定される。エンドエフェクター２０としてスクリュードライバーが使用される場合には、スクリュードライバーの先端をＴＣＰとして設定可能である。なお、本実施形態において、マニピュレーター１０は、６軸の自由度を有するが、例示である。マニピュレーター１０は、対象物Ｗに対する作業に必要なＴＣＰの移動を実現可能なロボットであれば、どのような関節機構を用いてもよい。ベース１１は、マニピュレーター１０の第１リンク、即ち、最もベース１１に近い１つのリンクを位置決めする。
【００１８】
例えば、マニピュレーター１０は、エンドエフェクター２０から対象物Ｗに作用する作用力を取得するための力センサーＰを備える。力センサーＰは、固有の３次元直交座標系であるセンサー座標系において、対象物Ｗに作用する３軸の力及び３軸周りのトルクを計測する力覚センサーである。図１に示す例において、力センサーＰは関節Ｊ６に取り付けられるが、他の関節Ｊ１〜Ｊ５のうち少なくともいずれか１つが力センサーを備えてもよい。
【００１９】
移動部１２は、例えば、一対の動輪１２１と、１つの従輪１２２とを備える。移動部１２は、例えば、制御装置４０の制御に応じて駆動される無人搬送車（ＡＧＶ）である。移動部１２は、制御装置４０の制御に応じて、互いに同一の方向及び速度で一対の動輪１２１を回転させることにより、ベース１１を一方向に移動させる。移動部１２は、一対の動輪１２１の回転方向及び回転速度のバランスを制御装置４０に制御されることにより、ベース１１のｘ−ｙ平面における配向、即ちｚ軸周りの旋回角を変更することができる。移動部１２は、搬送装置５０により搬送される対象物Ｗに対する作業中において、経路５１に沿う経路方向５２に駆動されることにより、ベース１１を経路方向５２に移動させる。経路方向５２は、対象物Ｗが搬送される第１方向の成分を有し、第１方向と反対の第２方向の成分を有しない方向である。即ち、経路方向５２は、第１方向に平行とは限らない。移動部１２は、制御装置４０の制御に応じて、少なくとも経路５１に沿って移動する装置であれば、どのような装置であってもよい。
【００２０】
図１に示すｘｙｚ座標系は、ロボット１が配置される床面に対して設定されるワールド座標系である。ワールド座標系は、水平面に沿って互いに直交するｘ軸及びｙ軸と、鉛直上向きを正方向とするｚ軸とによって規定される３次元の直交座標系である。ｚ軸における負の方向は概ね重力方向と一致する。ｘ軸周りの回転角をＲｘで表し、ｙ軸周りの回転角をＲｙで表し、ｚ軸周りの回転角をＲｚで表す。ｘ，ｙ，ｚ軸の座標により３次元空間における任意の位置を表現でき、回転角Ｒｘ，Ｒｙ，Ｒｚにより３次元空間における任意の姿勢を表現できる。エンドエフェクター２０、マニピュレーター１０、ベース１１等の位置及び姿勢は、ワールド座標系において定義され得る。以下において「位置」は、ポーズ、即ち位置及び姿勢を意味し得る。同様に、以下において「力」は、負荷、即ち力及びトルクを意味し得る。制御装置４０は、マニピュレーター１０を駆動することによってワールド座標系におけるＴＣＰの位置を制御する。
【００２１】
搬送装置５０は、例えば、経路５１として機能するベルトと、ベルトを送る搬送ローラー５０ａ，５０ｂとを備えるベルトコンベヤーである。搬送装置５０は、ベルトコンベヤーに限るものでなく、対象物Ｗを所定の経路に沿って搬送する装置であればどのような装置であってもよい。対象物Ｗとしては、例えばプリンターや自動車のような工業製品、又はこれらの部品等、エンドエフェクター２０を用いたロボット１による作業が可能なあらゆる物体が挙げられる。
【００２２】
図１に示す例において、搬送装置５０のベルトの表面をなす搬送面は、ワールド座標系におけるｘ−ｙ平面に対して平行であり、ｙ軸の正方向は、経路方向５２に一致する。搬送装置５０は、搬送ローラー５０ａ，５０ｂによって搬送面を経路方向５２に移動させることにより、対象物Ｗを経路方向５２に搬送する。例えば、搬送ローラー５０ａは、回転量に応じた信号を制御装置４０に出力する、図示しない搬送量センサーを備える。搬送装置５０の搬送面は、搬送ローラー５０ａの回転に対して搬送面が滑らずに移動するため、搬送量センサーの出力は、搬送装置５０により対象物Ｗの搬送量を示す。対象物Ｗの搬送量は、搬送される対象物Ｗの単位時間当たりの移動量を意味する。
【００２３】
位置センサー３０は、搬送装置５０の上方から対象物Ｗの位置を検出する。位置センサー３０は、例えば、対象物Ｗの画像を制御装置４０に出力するカメラである。その他、位置センサー３０としてレーザーレンジスキャナー等を採用してもよい。位置センサー３０は、例えば、搬送装置５０の上方において図示しない支持部材によって支持される。位置センサー３０は、図１において破線で示すように、経路５１に沿って搬送される対象物Ｗを含む画角を有する。位置センサー３０から出力される画像における位置は、制御装置４０によって、搬送装置５０の経路５１における位置と関連付けられる。よって、位置センサー３０の画角内に対象物Ｗが存在する場合、位置センサー３０の画像における対象物Ｗの位置に基づいて、ｘ−ｙ平面における対象物Ｗの座標を特定することが可能である。
【００２４】
図２に示すように、制御装置４０は、コンピューターシステムを構成するプロセッサー４０ａ及びメモリー４０ｂを備える。制御装置４０は、例えば汎用のコンピューターによって構成可能である。プロセッサー４０ａは、制御プログラムに応じた指令を実行することによりロボット１を制御する。プロセッサー４０ａは、例えば中央演算処理装置（ＣＰＵ）等の処理回路である。メモリー４０ｂは、ロボット１の制御に必要なプログラムや各種データ等を記憶する、コンピューターにより読み取り可能な記憶媒体である。メモリー４０ｂは、例えばランダムアクセスメモリー（ＲＡＭ）、リードオンリーメモリー（ＲＯＭ）等である。制御装置４０の構成要素の一部又は全部は、ロボット１の筐体の内側に配置されてもよい。
【００２５】
図１に示すように、制御装置４０は、通信リンクを介してロボット１及び教示装置４５とそれぞれ通信する。通信リンクは、有線、無線のいずれであってもよく、有線及び無線の組み合わせであってもよい。制御装置４０は、エンドエフェクター２０、位置センサー３０及び搬送装置５０の駆動を制御し得る。例えば、エンドエフェクター２０がスクリュードライバーである場合、制御装置４０は、エンドエフェクター２０を駆動することによりねじ締めを行うことができる。制御装置４０は、搬送ローラー５０ａ，５０ｂを駆動することにより、対象物Ｗを搬送することができる。また、制御装置４０は、搬送装置５０が備える搬送量センサーの出力に基づいて、搬送装置５０に搬送される対象物Ｗの搬送量を取得する。
【００２６】
制御装置４０は、複数のプロセッサーにより構成されてもよい。即ち、図２に示す例において、制御装置４０は、ネットワーク４５０を介して制御装置４０に接続されたパーソナルコンピューター（ＰＣ）４００，４１０と、サービスサーバーであるクラウド５００と共に、ロボット１を制御する制御装置を構成可能である。ＰＣ４００は、プロセッサー４００ａ及びメモリー４００ｂを備え、ＰＣ４１０は、プロセッサー４１０ａ及びメモリー４１０ｂを備える。クラウド５００は、プロセッサー５００ａ及びメモリー５００ｂを備える。制御装置４０は、プロセッサー４００ａ，４１０ａ，５００ａ及びメモリー４００ｂ，４１０ｂ，５００ｂ等の他の装置のハードウェア資源を利用して、ロボット１を制御する制御装置を実現してもよい。
【００２７】
教示装置４５は、制御装置４０を介してロボット１にプログラムを教示するコンピューターである。教示装置４５は、教示ペンダント等の専用のコンピューターであってもよく、ロボット１を教示するためのプログラムがインストールされた汎用のコンピューターであってもよい。教示装置４５は、制御装置４０と別個の筐体を備えてもよく、制御装置４０と筐体を共有してもよい。
【００２８】
本実施形態において、ロボットシステム１００により、対象物Ｗに形成されたねじ穴Ｈに、スクリュードライバーであるエンドエフェクター２０によってねじを挿入するねじ締めが作業として行われる場合を適宜例として説明する。
【００２９】
図３に示すように、マニピュレーター１０の関節Ｊ１〜Ｊ６は、アクチュエーターとしてのモーターＭ１〜Ｍ６と、角度センサーとしてのエンコーダーＥ１〜Ｅ６とをそれぞれ備える。モーターＭ１〜Ｍ６は、制御装置４０の制御によりそれぞれ駆動され、関節Ｊ１〜Ｊ６をそれぞれ回転させる。エンコーダーＥ１〜Ｅ６は、モーターＭ１〜Ｍ６の回転角度を検出し、制御装置４０に出力する。
【００３０】
移動部１２の一対の動輪１２１は、２つの動輪１２１ａ，１２１ｂからなる。動輪１２１ａ，１２１ｂは、アクチュエーターとしてのモーターＭ７，Ｍ８と、角度センサーとしてのエンコーダーＥ７，Ｅ８とをそれぞれ備える。モーターＭ７，Ｍ８は、制御装置４０の制御によりそれぞれ駆動され、動輪１２１ａ，１２１ｂをそれぞれ回転させる。エンコーダーＥ７，Ｅ８は、モーターＭ７，Ｍ８の回転角度を検出し、制御装置４０に出力する。
【００３１】
図３に示すように、制御装置４０は、位置制御部４１と、力制御部４２と、指令統合部４３とを論理構造として有する。位置制御部４１、力制御部４２及び指令統合部４３は、制御装置４０が予めインストールされた制御プログラムを実行することにより実現される。位置制御部４１、力制御部４２及び指令統合部４３は、それぞれ複数の処理回路により構成されてもよく、互いに一体の処理回路により構成されてもよい。
【００３２】
制御装置４０は、予め記憶する対応関係に基づいて、モーターＭ１〜Ｍ８の各回転角の組み合わせと、ワールド座標系におけるＴＣＰの位置との間を双方向に変換する第１変換部Ｕ１を有する。例えば、第１変換部Ｕ１は、ワールド座標系における位置Ｓを、モーターＭ１〜Ｍ８の各回転角Ｄａに変換する。位置Ｓは、ワールド座標系を規定する６軸（ｘ，ｙ，ｚ，Ｒｘ，Ｒｙ，Ｒｚ）における位置及び姿勢を表し得る。制御装置４０がモーターＭ１〜Ｍ８に出力する制御信号は、例えばパルス幅変調（ＰＷＭ）された信号である。
【００３３】
制御装置４０は、ワールド座標系におけるＴＣＰの位置Ｓ毎のセンサー座標系の姿勢を示す対応関係に基づいて、力センサーＰにより計測された力をワールド座標系における力ｆSpに変換する第２変換部Ｕ２を有する。第２変換部Ｕ２は、力ｆSpの力成分と、エンドエフェクター２０及び対象物Ｗの接触点から力センサーＰまでの距離とから、力ｆSpのトルク成分を算出する。
【００３４】
位置制御部４１は、位置検出部４１ａと、最終位置算出部４１ｂと、最終目標位置算出部４１ｃと、目標位置算出部４１ｄと、トラッキング補正量算出部４１ｅとを論理構造として有する。位置制御部４１は、搬送される対象物Ｗにエンドエフェクター２０を追従させるための機能を有する。搬送される対象物Ｗの位置は、位置制御部４１において種々の手法で取得され得る。以下、イメージセンサーである位置センサー３０から取得される画像等により、対象物Ｗの位置を検出する方法について例示的に説明する。
【００３５】
位置検出部４１ａは、位置センサー３０を用いて対象物Ｗの位置を取得する。位置検出部４１ａは、位置センサー３０から入力される画像における対象物Ｗの位置から、ワールド座標系における対象物Ｗの位置を検出する。位置検出部４１ａは、制御装置４０に記憶される、搬送装置５０の経路５１の高さや対象物Ｗの形状を示す情報に基づいて、対象物Ｗのねじ穴Ｈのｘ，ｙ座標を検出する。位置検出部４１ａは、テンプレートマッチングや教示装置４５の教示により対象物Ｗの位置を検出してもよい。
【００３６】
最終位置算出部４１ｂは、位置検出部４１ａにより検出された対象物Ｗの位置と、教示装置４５を用いて作成されたコマンドＣとに基づいて、作業完了時におけるＴＣＰの最終位置とを算出する。例えば、最終位置算出部４１ｂは、ねじ締めのために、ねじ穴Ｈからｚ軸の正方向に所定距離オフセットされた第１位置にねじの先端を移動させる作業の完了時におけるＴＣＰの最終位置を算出する。また、最終位置算出部４１ｂは、第１位置からｚ軸の負方向にねじが進む距離だけシフトされた位置にねじを移動させるねじ締めの完了時におけるＴＣＰの最終位置を算出する。最終位置は、対象物Ｗを基準とする位置である。但し、初期位置及び最終位置がワールド座標系において定義されてもよい。
【００３７】
最終目標位置算出部４１ｃは、最終位置算出部４１ｂにより算出されたＴＣＰの最終位置と、目標位置オフセットＳtoとから、最終目標位置Ｓtを算出する。詳細には、最終目標位置算出部４１ｃは、最終位置にＴＣＰが位置するときの、移動部１２の位置を示す第１最終目標位置と、マニピュレーター１０の位置を示す第２最終目標位置とを、最終目標位置Ｓtとして算出する。最終目標位置Ｓtは、ワールド座標系において定義され得る。目標位置オフセットＳtoは、例えば前回に行われた同一の作業により算出される、移動部１２の位置をオフセットするための量である。
【００３８】
目標位置算出部４１ｄは、最終目標位置ＳtにＴＣＰを移動させるための制御指令となる、微小時間毎の目標位置Ｓtcを算出する。即ち、目標位置算出部４１ｄは、位置検出部４１ａにより対象物Ｗの位置が検出された検出時刻から、ＴＣＰが最終目標位置Ｓtに到達する到達時刻までの移動時間における微小時間毎のＴＣＰの目標位置Ｓtcを算出する。詳細には、目標位置算出部４１ｄは、微小時間毎の移動部１２の位置を示す第１目標位置と、微小時間毎のマニピュレーター１０の位置を示す第２目標位置とを、目標位置Ｓtcとして算出する。目標位置算出部４１ｄは、移動時間における微小時間毎の目標位置Ｓtcを、移動時間におけるＴＣＰの軌道として算出する。このように、最終位置算出部４１ｂ、最終目標位置算出部４１ｃ及び目標位置算出部４１ｄは、位置検出部４１ａにより検出された対象物Ｗの位置に基づいて、エンドエフェクター２０の目標位置Ｓtcを算出する。
【００３９】
例えば、微小時間をΔＴ、検出時刻をＴ、到達時刻をＴfとすると、目標位置算出部４１ｄは、Ｔ，Ｔ＋ΔＴ，Ｔ＋２ΔＴ，……，Ｔf−ΔＴ，Ｔfの各時刻におけるＴＣＰの目標位置Ｓtcを算出する。目標位置算出部４１ｄは、微小時間毎の各時刻において、次の時刻における目標位置Ｓtcを指令統合部４３に出力する。目標位置Ｓtcは、対象物Ｗに相対的に算出される位置であるため、ＴＣＰの位置制御における目標値とするには、搬送装置５０の搬送量に基づいて補正される必要がある。
【００４０】
トラッキング補正量算出部４１ｅは、搬送装置５０による対象物Ｗの搬送量に基づいて、目標位置Ｓtcを補正するトラッキング補正量Ｓtmを算出する。詳細には、トラッキング補正量算出部４１ｅは、搬送装置５０の搬送量センサーの出力に基づいて、微小時間毎の対象物Ｗの搬送量を算出することにより、微小時間毎のトラッキング補正量Ｓtmを算出する。このため、トラッキング補正量算出部４１ｅは、搬送装置５０の経路５１を示す情報を予め記憶する。トラッキング補正量Ｓtmは、搬送量に対応してエンドエフェクター２０が対象物Ｗに追従するように、目標位置Ｓtcを補正する量である。トラッキング補正量算出部４１ｅは、目標位置Ｓtcに同期するようにトラッキング補正量Ｓtmを算出し、指令統合部４３に出力する。
【００４１】
力制御部４２は、目標力算出部４２ａと、力検出部４２ｂと、力制御補正量算出部４２ｃと、トラッキングオフセット算出部４２ｄとを論理構造として有する。力制御部４２は、エンドエフェクター２０から対象物Ｗに作用する作用力ｆSを所定の目標力ｆStに制御するための機能を有する。具体的には、力制御部４２は、作用力ｆSを目標力ｆStにするように目標位置Ｓtcを補正する力制御補正量ΔＳを算出し、指令統合部４３に出力する。
【００４２】
目標力算出部４２ａは、教示装置４５の教示に応じて制御装置４０が記憶したコマンドＣに基づいて、目標力ｆStを算出する。コマンドＣは、ロボット１が行う作業において対象物Ｗに作用するべき目標力ｆStを示す。例えば、目標力算出部４２ａは、スクリュードライバーの先端に吸着されたねじを、対象物Ｗに既定の力で押しつける場合、この既定の力として目標力ｆStを算出する。図１に示すねじ締めの場合、目標力算出部４２ａは、ｚ軸の負方向の力を所定値、ｘ−ｙ平面に沿う力を０にする倣い制御を実行するための目標力ｆStを算出する。目標力ｆStは、対象物Ｗに作用される力を所望の値に制御する値であればよい。
【００４３】
力検出部４２ｂは、力センサーＰを用いて、対象物Ｗからエンドエフェクター２０に作用する作用力ｆSを取得する。詳細には、力検出部４２ｂは、第２変換部Ｕ２を介して力センサーＰから取得される力ｆSpに対して、重力に起因する成分を除去する重力補償を施すことにより、重力の影響を有しない、エンドエフェクター２０に作用する作用力ｆSを検出する。
【００４４】
力制御補正量算出部４２ｃは、目標力ｆSt及び作用力ｆSから、作用力ｆSを目標力ｆStにするように目標位置Ｓtcを補正する力制御補正量ΔＳを算出する。力制御補正量ΔＳは、ＴＣＰが機械的インピーダンスを受けた場合において、目標力ｆStと作用力ｆSとの力偏差ΔｆS(t)を解消するために、ＴＣＰが位置Ｓから移動すべき量を意味する。力制御補正量算出部４２ｃは、例えば、仮想の機械的インピーダンスをモーターＭ１〜Ｍ８によって実現する能動インピーダンス制御により力制御補正量ΔＳを算出する。力制御部４２は、エンドエフェクター２０が対象物Ｗに接触する状態の工程でインピーダンス制御を適用する。例えば、力制御補正量算出部４２ｃは、式（１）に示すようなインピーダンス制御の運動方程式に、目標力ｆSt及び作用力ｆSを代入することにより力制御補正量ΔＳを算出する。
【数１】
2020189392.tif 000003
【００４５】
式（１）の左辺は、ＴＣＰの位置Ｓの２階微分値に仮想慣性パラメーターｍを乗算した第１項と、ＴＣＰの位置Ｓの微分値に仮想粘性パラメーターｄを乗算した第２項と、ＴＣＰの位置Ｓに仮想弾性パラメーターｋを乗算した第３項との和である。式（１）の右辺は、目標力ｆStから作用力ｆSを減算した力偏差ΔｆS（ｔ）である。式（１）における微分は、時間微分を意味する。ロボット１が行う作業の工程において、目標力ｆStとして一定値が設定される場合もあるし、目標力ｆStとして時間の関数が設定される場合もある。仮想慣性パラメーターｍは、ＴＣＰが仮想的に有する質量を意味する。仮想粘性パラメーターｄは、ＴＣＰが仮想的に受ける粘性抵抗を意味する。仮想弾性パラメーターｋは、ＴＣＰが仮想的に受ける弾性力のバネ定数を意味する。
【００４６】
トラッキングオフセット算出部４２ｄは、力制御補正量算出部４２ｃにより算出された力制御補正量ΔＳから、トラッキング補正量Ｓtmを補正するトラッキングオフセットΔＳrを算出する。トラッキングオフセットΔＳrは、例えば、力制御補正量ΔＳの履歴に応じて算出される、複数の力制御補正量ΔＳを代表する統計値である。トラッキングオフセット算出部４２ｄは、各時刻において算出された力制御補正量ΔＳを蓄積し、複数の力制御補正量ΔＳの、平均値や中央値等の統計値を、トラッキングオフセットΔＳrとして算出する。或いは、トラッキングオフセット算出部４２ｄは、力制御補正量ΔＳの分散や標準偏差が所定の範囲内に収束した場合に、力制御補正量ΔＳの分布のピークに相当する最頻値をトラッキングオフセットΔＳrとして算出してもよい。
【００４７】
ロボットシステム１００における力制御では、制御装置４０は、力制御補正量ΔＳに基づいて少なくともマニピュレーター１０を駆動することにより作用力ｆSを目標力ｆStに制御する。同一の対象物Ｗに対して同一の作業が複数回実行される場合、力制御補正量ΔＳは再現され得る。エンドエフェクター２０を対象物Ｗに追従させる位置制御を行うためのトラッキング補正量Ｓtmに、力制御補正量ΔＳに応じたトラッキングオフセットΔＳrを加えれば、力制御において必要な補正を位置制御によって実現することが可能になる。よって、同一の作業における制御が簡易になり、作業のサイクルタイムを短くすることができる。
【００４８】
指令統合部４３は、トラッキング補正量加算部４３ａと、力制御補正量加算部４３ｂと、フィードバック制御部４３ｃとを論理構造として有する。指令統合部４３は、位置制御部４１により算出された制御指令である目標位置Ｓtc及びトラッキング補正量Ｓtmと、力制御部４２により算出された制御指令である力制御補正量ΔＳとを統合する。指令統合部４３は、統合した制御指令に応じた目標値を達成するように、ロボット１に操作量を出力する。
【００４９】
トラッキング補正量加算部４３ａは、目標位置Ｓtcにトラッキング補正量Ｓtmを加算する。即ち、トラッキング補正量加算部４３ａは、目標位置Ｓtcをトラッキング補正量Ｓtmで補正する。トラッキング補正量加算部４３ａは、トラッキング補正量Ｓtmで補正された目標位置Ｓtcを力制御補正量加算部４３ｂに出力する。詳細には、トラッキング補正量加算部４３ａは、トラッキング補正量Ｓtmから、移動部１２に適用される第１トラッキング補正量と、マニピュレーター１０に適用される第２トラッキング補正量とを算出する。トラッキング補正量加算部４３ａは、第１トラッキング補正量で補正された第１目標位置と、第２トラッキング補正量で補正された第２目標位置とを力制御補正量加算部４３ｂに出力する。
【００５０】
トラッキング補正量加算部４３ａは、例えば、目標位置Ｓtcが、ベース１１を基準とする第１範囲から外れる場合において、トラッキング補正量Ｓtmを第１トラッキング補正量とし、第２トラッキング補正量を０とする。第１範囲は、例えば、ベース１１に対して設定されるベース座標系において規定される。第１範囲は、例えば、エンドエフェクター２０の可動範囲、即ち、マニピュレーター１０の駆動により変化するＴＣＰの位置が取り得る範囲である。トラッキング補正量加算部４３ａは、トラッキング補正量Ｓtmが第１閾値以上となる場合において、第１トラッキング補正量をトラッキング補正量Ｓtmとしてもよい。第１閾値は、例えば、第１閾値を超えるトラッキング補正量Ｓtmで補正された目標位置Ｓtcが第１範囲から外れることが見込まれる値である。第１トラッキング補正量がトラッキング補正量Ｓtmとされることにより、制御装置４０は、目標位置Ｓtcに基づいてマニピュレーター１０を駆動し、トラッキング補正量Ｓtmに基づいて移動部１２を駆動する。これにより制御装置４０は、エンドエフェクター２０を搬送装置５０により搬送される対象物Ｗに追従させる。
【００５１】
力制御補正量加算部４３ｂは、トラッキング補正量Ｓtmで補正された目標位置Ｓtcに力制御補正量ΔＳを加算する。即ち、力制御補正量加算部４３ｂは、トラッキング補正量Ｓtmで補正された目標位置Ｓtcを、力制御補正量ΔＳで更に補正する。詳細には、力制御補正量加算部４３ｂは、力制御補正量ΔＳから、移動部１２に適用される第１力制御補正量と、マニピュレーター１０に適用される第２力制御補正量とを算出する。力制御補正量加算部４３ｂは、第１トラッキング補正量で補正された第１目標位置と、第１力制御補正量とから、第１指令位置を算出する。同様に、力制御補正量加算部４３ｂは、第２トラッキング補正量で補正された第２目標位置と、第２力制御補正量とから、第２指令位置を算出する。このように、力制御補正量加算部４３ｂは、移動部１２のモーターＭ７，Ｍ８に適用される第１指令位置と、マニピュレーター１０のモーターＭ１〜Ｍ６に適用される第２指令位置とからなる指令位置Ｓttを算出する。指令位置Ｓttは、ワールド座標系における最終的なＴＣＰの目標値を意味する。
【００５２】
力制御補正量加算部４３ｂは、例えば、目標位置Ｓtcが、ベース１１を基準とする第２範囲から外れる場合において、力制御補正量ΔＳの経路方向５２の成分を第１力制御補正量とし、力制御補正量ΔＳの経路方向５２の成分以外を第２力制御補正量とする。第２範囲は、例えば、第１範囲と同一の範囲である。力制御補正量加算部４３ｂは、力制御補正量ΔＳの経路方向５２の成分が第２閾値以上となる場合において、第１力制御補正量を力制御補正量ΔＳの経路方向５２の成分としてもよい。このように、制御装置４０は、力制御補正量ΔＳが目標位置Ｓtcを経路方向５２に補正する場合において、力制御補正量ΔＳの経路方向５２の成分に基づいて移動部１２を駆動し、力制御補正量ΔＳの経路方向５２の成分以外に基づいてマニピュレーター１０を駆動し得る。
【００５３】
第１変換部Ｕ１は、ワールド座標系における指令位置Ｓttを、モーターＭ１〜Ｍ８の各回転角の目標値である目標角Ｄtに変換する。指令位置Ｓttのうち、第１指令位置は、移動部１２のモーターＭ７，Ｍ８に適用され、第２指令位置は、マニピュレーター１０のモーターＭ１〜Ｍ６に適用される。
【００５４】
フィードバック制御部４３ｃは、モーターＭ１〜Ｍ８の実際の回転角Ｄaを制御量として、目標角Ｄtに制御するフィードバック制御を行う。フィードバック制御部４３ｃは、先ず、目標角Ｄtから回転角Ｄaを減算することにより偏差Ｄeを算出する。フィードバック制御部４３ｃは、エンコーダーＥ１〜Ｅ８の出力から回転角Ｄaを取得する。フィードバック制御部４３ｃは、偏差Ｄeに位置制御ゲインＫpを乗算した値と、回転角Ｄaを時間微分した値との差である駆動速度偏差を算出する。フィードバック制御部４３ｃは、駆動速度偏差に速度制御ゲインＫvを乗算することにより操作量Ｄcを算出する。位置制御ゲインＫp及び速度制御ゲインＫvは、比例成分だけでなく微分成分や積分成分にかかる制御ゲインを含んでもよい。操作量Ｄcは、モーターＭ１〜Ｍ８のそれぞれについて特定される。
【００５５】
制御装置４０は、位置制御モードと、力制御モードと、位置・力制御モードとのいずれかの制御モード、又は、これらを順次変更する制御モードによってロボット１を制御する。制御装置４０は、力センサーＰ、エンコーダーＥ１〜Ｅ８等の出力に基づいて、上述の制御モードを自律的に切り替えてもよく、コマンドに応じて切り替えてもよい。図１に示す例において、ねじ締めの作業を行う場合、ｘ軸成分及びｙ軸成分の目標力を０とする倣い制御を行うので、力制御モードが使用される。ｚ軸成分については、０でない目標力でねじを介してエンドエフェクター２０を対象物Ｗに対して押し付けるので、位置・力制御モードが使用される。この場合、Ｒｘ，Ｒｙ，Ｒｚ成分については、位置制御モードが使用され得る。
【００５６】
力制御モードは、運動方程式に基づいて目標力ｆStから導出される回転角でモーターＭ１〜Ｍ８を制御するモードである。力制御モードでは、各時刻の目標位置Ｓtcが作業中に経時的に変化しない場合に、目標力ｆStに関するフィードバック制御が実行される。例えば、ねじ締めや嵌合等の作業中において、目標位置Ｓtcが作業完了位置になると、その後目標位置Ｓtcが経時的に変化しないので、力制御モードで作業が実行される。制御装置４０は、力制御モードにおいても、対象物Ｗの搬送量に応じたトラッキング補正量Ｓtmを用いたフィードバック制御を行うことが可能である。
【００５７】
位置制御モードは、目標位置Ｓtcから線形演算で導出される回転角でモーターＭ１〜Ｍ８を制御するモードである。位置制御モードでは、作業中に力を制御する必要が無い場合に、目標位置Ｓtcに対するフィードバック制御が実行される。換言すれば、位置制御モードは、力制御による力制御補正量ΔＳが常に０であるモードである。制御装置４０は、位置制御モードにおいても、対象物Ｗの搬送量に応じたトラッキング補正量Ｓtmを用いたフィードバック制御を行うことが可能である。
【００５８】
位置・力制御モードは、目標位置Ｓtcから線形演算で導出される回転角と、運動方程式に基づいて目標力ｆStから導出される回転角とを線型結合によって統合し、統合した回転角でモーターＭ１〜Ｍ８を制御するモードである。位置・力制御モードでは、作業中において、各時刻の目標位置Ｓtcが経時的に変化する場合、目標位置Ｓtcと目標力ｆStに応じた力制御補正量ΔＳとに関するフィードバック制御が実行される。例えば、研磨作業やバリ取り等の作業において、対象物Ｗに対する作業位置が１点でなく、長さ又は面積を有することにより経時的に変化する場合、位置・力制御モードで作業が実行される。制御装置４０は、位置・力制御モードにおいても、対象物Ｗの搬送量に応じたトラッキング補正量Ｓtmを用いたフィードバック制御を行うことが可能である。
【００５９】
以上の構成によれば、制御装置４０は、移動部１２及びマニピュレーター１０を駆動することにより、搬送装置５０により搬送される対象物Ｗにエンドエフェクター２０を追従させる。これにより、制御装置４０は、エンドエフェクター２０を用いた対象物Ｗに対する作業をロボット１に行わせることができる。更に、ロボットシステム１００によれば、作業中において、移動部１２は経路方向５２にベース１１を移動させるため、ロボット１による作業が可能な時間を長くすることができる。即ち、対象物Ｗに対する作業が完了する前に対象物Ｗがエンドエフェクター２０の可動範囲から外れてしまう可能性を低減することができる。
【００６０】
更に、制御装置４０は、作業中にエンドエフェクター２０と対象物Ｗとの接触による相互作用が生じる場合において、作用力ｆSを目標力ｆStに制御する。ここで、目標力ｆStは対象物Ｗに対する作業に必要な力であるため、ロボット１は、対象物Ｗの搬送を妨げることなく作業を行うことができる。よって、ロボットシステム１００は、搬送装置５０を停止させたり、対象物Ｗを搬送装置５０から退避させたりすることなく、対象物Ｗに対する作業を行うことが可能である。退避のための作業スペースも不要である。
【００６１】
ロボットシステム１００は、位置制御に加えて力制御も行うため、作業における各種誤差の影響を低減することができる。例えば、搬送装置５０の搬送量センサーによって取得される対象物Ｗの搬送量には誤差が含まれ得る。また、搬送装置５０の経路５１の表面や位置センサー３０の画像から特定される対象物Ｗの位置にも誤差が含まれ得る。更に、複数の対象物Ｗに対して作業が行われる場合において、個別の対象物Ｗには設計に対する誤差が含まれ得る。スクリュードライバー、研磨ツール等のエンドエフェクター２０にも摩耗等による変形が生じ得る。従って、位置制御のみによってエンドエフェクター２０を対象物Ｗに追従させる場合、複数の対象物Ｗのそれぞれに対して適正に作業を遂行し続けることは困難である。しかし、力制御によれば、ＴＣＰの位置と目標位置Ｓtcとの関係が理想的な関係からずれていたとしても、エンドエフェクター２０が対象物Ｗに接触する間、作用力ｆSを目標力ｆStに制御することができる。このため、ロボットシステム１００は、各種誤差の影響を低減しながら作業を行うことができる。
【００６２】
なお利用者は、教示装置４５によって各作業における最終目標位置Ｓt及び目標力ｆStを制御装置４０に教示することができる。即ち、教示装置４５において、教示に基づく上述のコマンドが生成される。教示装置４５による教示は、種々の態様で行われてよい。例えば、利用者がロボット１を手で移動させることによって最終目標位置Ｓtが指定されてもよく、教示装置４５にてワールド座標系における最終目標位置Ｓtが指定されてもよい。
【００６３】
例えば図４に示すように、教示装置４５の表示装置は、グラフィカルユーザーインターフェイス（ＧＵＩ）として機能する画面４５ａを表示する。利用者は、教示装置４５のＧＵＩを利用して、目標力ｆSt等のロボット１の制御に関する種々の変数を制御装置４０に教示することができる。教示装置４５は、目標力ｆStと共に仮想慣性パラメーターｍ、仮想粘性パラメーターｄ、仮想弾性パラメーターｋをＧＵＩによって教示可能であってもよい。教示装置４５は、図示しない入力装置に対する利用者の操作に応じて、ＧＵＩを介してロボット１の制御に関する種々の変数値を入力され得る。入力装置として、各種スイッチ、キーボード、タッチパネルを含むポインティングデバイス等を採用可能である。ＧＵＩは、例えば、目標力ｆStによる力制御を利用した作業の開始位置までＴＣＰが移動され、実際の対象物Ｗが配置された状態で表示される。図４に示す例において、画面４５ａは、入力窓Ｎ１〜Ｎ３と、スライダーバーＢｈと、表示窓Ｑ１，Ｑ２と、グラフＧ１，Ｇ２と、ボタンＢ１，Ｂ２とを含む。
【００６４】
教示装置４５は、入力窓Ｎ１，Ｎ２を用いて目標力ｆStの方向及び大きさを指定され得る。教示装置４５は、入力窓Ｎ１において、ワールド座標系又はベース座標系を定義する軸の方向を指定される。ベース座標系において指定された方向は、教示装置４５又は制御装置４０において、ワールド座標系における方向に変換される。教示装置４５は、入力窓Ｎ２において、目標力ｆStの大きさを指定される。
【００６５】
更に教示装置４５は、入力窓Ｎ３において仮想弾性パラメーターｋを指定され得る。仮想弾性パラメーターｋが指定されると、教示装置４５は、仮想弾性パラメーターｋに対応する記憶波形ＶをグラフＧ２にて表示する。グラフＧ２の横軸は時刻を示し、グラフＧ２の縦軸は作用力を示す。記憶波形Ｖは、作用力の時間応答波形であり、予め教示装置４５の記憶媒体に仮想弾性パラメーターｋごとに記憶される。記憶波形Ｖは、入力窓Ｎ２において指定された値に収束する。記憶波形Ｖは、一般的な条件において、入力窓Ｎ２で指定された大きさの力がＴＣＰに作用するようにマニピュレーター１０を駆動する場合、力センサーＰから取得される作用力の時間応答特性を示す。仮想弾性パラメーターｋが異なると記憶波形Ｖの形状が大きく異なるため、仮想弾性パラメーターｋ毎に記憶波形Ｖが記憶される。
【００６６】
教示装置４５は、スライダーバーＢｈ上におけるスライダーＨ１に対する利用者の操作に応じて、仮想粘性パラメーターｄと仮想慣性パラメーターｍを指定される。ＧＵＩにおいて、仮想慣性パラメーターｍと仮想粘性パラメーターｄとを指定されるために、スライダーバーＢｈ及びスライダーＨ１とが表示される。例えば、スライダーＨ１が右方向に位置するほど安定性が向上し、スライダーＨ１が左方向に位置するほど応答性が向上する。教示装置４５は、スライダーＨ１の位置により仮想慣性パラメーターｍと仮想粘性パラメーターｄとを指定される。教示装置４５は、例えばｍ：ｄ＝１：１０００のように、仮想慣性パラメーターｍと仮想粘性パラメーターｄとの比が一定となるように調整する。教示装置４５は、仮想慣性パラメーターｍ及び仮想粘性パラメーターｄを表示窓Ｑ１及び表示窓Ｑ２に表示する。
【００６７】
教示装置４５は、ボタンＢ１に対する利用者の操作に応じて、現在の設定値でマニピュレーター１０を制御する。教示装置４５は、制御装置４０に対して、ＧＵＩにて設定された目標力ｆStとインピーダンス制御の各パラメーターｍ，ｄ，ｋとに基づいてマニピュレーター１０を駆動するように指令する。制御装置４０は、力センサーＰの出力に基づいて、ＴＣＰに作用する力の検出波形ＶＬをグラフＧ１に表示する。利用者は、記憶波形Ｖと検出波形ＶＬとを比較することにより、目標力ｆSt及びインピーダンス制御のパラメーターｍ，ｄ，ｋを調整することができる。
【００６８】
教示装置４５は、最終目標位置Ｓtと目標力ｆStとインピーダンス制御のパラメーターｍ，ｄ，ｋを引数とするコマンドで記述された制御プログラムを生成し、制御装置４０に出力する。制御プログラムが制御装置４０にロードされると、制御装置４０は、指定されたパラメーターによるロボット１の制御を実行することができる。
【００６９】
制御プログラムは、予め定められたプログラム言語によって記述され、翻訳プログラムにより中間言語を経て機械語プログラムに変換される。プロセッサー４０ａは、クロックサイクルで機械語プログラムを実行する。翻訳プログラムは、教示装置４５で実行されてもよく、制御装置４０で実行されてもよい。制御プログラムのコマンドは、本体と引数とから構成される。コマンドは、移動部１２、マニピュレーター１０、エンドエフェクター２０を動作させる動作制御コマンド、センサー等の出力を読み出すモニターコマンド、各種の変数を設定する設定コマンド等が含まれる。コマンドの実行は、コマンドが翻訳された機械語プログラムの実行を意味する。
【００７０】
図５に示すように、動作制御コマンドの種類は、力制御モードでロボット１を駆動することができる力制御対応コマンドと、力制御モードでロボット１を駆動することができない位置制御コマンドとを含む。力制御対応コマンドは、引数により力制御モードのオンを指定する。引数により力制御モードのオンが指定されない場合、力制御対応コマンドは位置制御モードで実行される。引数により力制御モードのオンが指定される場合、力制御対応コマンドは力制御モードで実行される。力制御モードにおいて、力制御対応コマンドは実行可能であり、位置制御コマンドは実行不能である。力制御モードにおいて位置制御コマンドが実行されることがないように、翻訳プログラムによる構文エラーチェックが実行される。
【００７１】
力制御対応コマンドでは、引数により力制御モードの継続を指定できる。力制御モードで実行される力制御対応コマンドにおいて、引数により力制御モードの継続が指定される場合、力制御モードは継続される。一方、引数により力制御モードの継続が指定されない場合、力制御対応コマンドの実行完了までに力制御モードは終了する。力制御対応コマンドが力制御モードで実行されるとしても、引数により継続が指定されない限り、力制御モードは力制御対応コマンドに応じて自律的に終了し、力制御対応コマンドの実行終了後に力制御モードが継続することはない。図５において「ＣＰ（Continuous Path）」は移動方向を指定できるコマンドの分類、「ＰＴＰ（Pose to Pose）」は目標位置を指定できるコマンドの分類、「ＣＰ＋ＰＴＰ」は移動方向と目標位置を指定できるコマンドの分類である。
【００７２】
制御装置４０は、位置検出部４１ａにおいて対象物Ｗの位置が取得されると、教示装置４５によるコマンドに基づいて、最終目標位置Ｓtを取得する。即ち、図１に示す例において、制御装置４０は、搬送装置５０の経路５１の高さや対象物Ｗにおけるねじ穴Ｈの位置を示す情報を予め記憶する。制御装置４０は、最終目標位置Ｓtに基づいて、微小時間ΔＴ毎の目標位置Ｓtcを算出する。
【００７３】
例えば図６に示すように、位置検出部４１ａは、対象物Ｗの作業点であるねじ穴Ｈの、時刻Ｔにおける位置Ｈ0を検出する。ねじ穴Ｈは、時刻Ｔ＋ΔＴ，Ｔ＋２ΔＴ，Ｔ＋３ΔＴにおいて、位置Ｈ1，Ｈ2，Ｈ3に順次移動する。このとき、制御装置４０は、時刻ＴにおけるＴＣＰの位置Ｐ0を検出する。以下、説明を簡単にするために、ＴＣＰの最終目標位置Ｓtのｘ−ｙ座標がねじ穴Ｈに一致する例について説明する。目標位置算出部４１ｄは、時刻Ｔから、ＴＣＰがねじ穴Ｈに到達する時刻Ｔｆまでの期間を微小時間ΔＴ毎に分割し、各時刻における目標位置Ｓtcを算出する。目標位置算出部４１ｄは、時刻Ｔ＋ΔＴ，Ｔ＋２ΔＴ，Ｔ＋３ΔＴ，……，Ｔｆ−ΔＴ、Ｔｆにおける各目標位置Ｓtcとして、位置Ｐ1，Ｐ2，Ｐ3，……，Ｐf-1，Ｐfを算出する。
【００７４】
トラッキング補正量算出部４１ｅは、搬送装置５０の搬送量センサーの出力に基づいて、時刻Ｔから現在までの対象物Ｗの搬送量を算出する。トラッキング補正量算出部４１ｅは、対象物Ｗの搬送量に基づいて、現在から微小時間ΔＴの間に移動すると推定される対象物Ｗの移動量Ｌを、トラッキング補正量Ｓtmとして各時刻において算出する。例えば、現在の時刻が時刻Ｔ＋２ΔＴであれば、トラッキング補正量算出部４１ｅは、時刻Ｔ＋３ΔＴにおける対象物Ｗの移動量Ｌをトラッキング補正量Ｓtmとして取得する。トラッキング補正量算出部４１ｅは、時刻Ｔから時刻Ｔ＋２ΔＴまでの対象物Ｗの移動量Ｌ1＋Ｌ2から、次の微小時間ΔＴにおける移動量Ｌ3を推定し、移動量Ｌ1＋Ｌ2に移動量Ｌ3を加えることにより移動量Ｌを算出する。
【００７５】
指令統合部４３は、各時刻において、トラッキング補正量Ｓtmにより補正された目標位置Ｓtcを、力制御補正量ΔＳで更に補正することにより、指令位置Ｓttを算出する。指令統合部４３は、指令位置Ｓttに基づく操作量ＤcをモーターＭ１〜Ｍ８に出力することにより、移動部１２及びマニピュレーター１０を駆動する。但し、指令統合部４３は、制御装置４０に目標力ｆStが設定されていない場合、位置制御モードでロボット１を駆動する。
【００７６】
上述のように、最終目標位置算出部４１ｃは、最終位置算出部４１ｂにより算出された最終位置と、目標位置オフセットＳtoとから、第１最終目標位置及び第２最終目標位置からなる最終目標位置Ｓtを算出する。以下、図７及び図８を参照して、最終目標位置算出部４１ｃが目標位置オフセットＳtoを算出する方法について説明する。
【００７７】
図７に示すように、対象物Ｗが搬送範囲Ａを搬送され、ロボット１、即ちベース１１が位置ｃ０から位置ｃ１までの距離Ｌａを移動する間において、対象物Ｗに対する作業が完了したとする。範囲Ｆ０，Ｆ１は、それぞれロボット１が位置ｃ０，ｃ１に配置されるときのベース１１を基準とするエンドエフェクター２０の可動範囲を示す。エンドエフェクター２０の可動範囲は、上述の第１範囲及び第２範囲に対応し得る。制御装置４０は、コマンドによる初期設定において、目標位置オフセットＳtoを用いず第１指令位置を算出する。ロボット１は、作業開始時において、第１指令位置によって位置ｃ０に位置する。ロボット１は、位置ｃ０において、範囲Ｆ０内の対象物Ｗに対して作業を開始し、位置ｃ１において、範囲Ｆ１内の対象物Ｗに対して作業を完了する。制御装置４０は、作業中の各時刻における第１指令位置及び第２指令位置により移動したエンドエフェクター２０の各位置を、第１変換部Ｕ１を介して取得して記憶する。作業中に移動したエンドエフェクター２０の各位置は、搬送範囲Ａに対応する。
【００７８】
図８に示すように、最終目標位置算出部４１ｃは、前回に同一の作業が行われたときの第１指令位置及び第２指令位置と、エンドエフェクター２０の可動範囲に基づいて、ベース１１が移動する距離の最小値である距離Ｌｂを算出する。即ち、最終目標位置算出部４１ｃは、搬送範囲Ａと、ベース１１の位置を基準とするエンドエフェクター２０の可動範囲とに基づいて、作業中にベース１１が移動する距離が最も短くなるような移動部１２の経路を算出する。ロボット１は、位置ｃ２において、範囲Ｆ２内の対象物Ｗに対して作業を開始し、位置ｃ３において、範囲Ｆ３内の対象物Ｗに対して作業を完了する。算出された経路を移動部１２が移動する間、対象物Ｗは、常にエンドエフェクター２０の可動範囲内に位置する。図８に示す例において、距離Ｌｂは、作業開始時におけるロボット１の位置ｃ２から作業完了時におけるロボット１の位置ｃ３までの距離である。位置ｃ２は、位置ｃ０と比べて対象物Ｗの進行方向に位置する。対象物Ｗが搬送範囲Ａに進入する作業開始時において、ロボット１は位置ｃ２に位置する。
【００７９】
最終目標位置算出部４１ｃは、初期設定において算出された第１指令位置に対応する位置ｃ０と、距離Ｌｂの起点に対応する位置ｃ２との差を、目標位置オフセットＳtoとして算出する。最終目標位置算出部４１ｃは、最終位置算出部４１ｂにより算出された最終位置と、前回算出した目標位置オフセットＳtoとから、第１最終目標位置及び第２最終目標位置を算出する。即ち、最終目標位置算出部４１ｃは、目標位置オフセットＳtoで補正された第１最終目標位置と、最終位置算出部４１ｂにより算出された最終位置を、第１最終目標位置と共に実現する第２最終目標位置とを算出する。このように、最終目標位置算出部４１ｃは、ベース１１の位置を基準とするエンドエフェクター２０の可動範囲に基づいて、次の作業開始時におけるベース１１の初期位置を、移動部１２の移動量が削減されるように決定する。
【００８０】
なお、本実施形態において移動部１２は、２つの動輪１２１を備えるＡＧＶである。このため、一方向に駆動されるためには、移動部１２は、一方向に応じた配向に調整されている必要がある。このように、移動部１２が移動に対して制限を有する場合、最終目標位置算出部４１ｃは、移動の制限を考慮して目標位置オフセットＳtoを算出すればよい。
【００８１】
以下、図９のフローチャートを参照して、本実施形態に係るロボット１の制御方法の一例として、制御装置４０の動作を説明する。
【００８２】
先ず、ステップＳ１０１において、位置検出部４１ａは、位置センサー３０から入力される画像における対象物Ｗの位置から、ワールド座標系における対象物Ｗの位置を検出する。
【００８３】
ステップＳ１０２において、最終位置算出部４１ｂは、ステップＳ１０１で検出された対象物Ｗの位置と、教示装置４５を用いて作成されたコマンドＣとから、ワールド座標系における作業完了時のＴＣＰの最終位置を算出する。
【００８４】
ステップＳ１０３において、最終目標位置算出部４１ｃは、ステップＳ１０２で算出された目標位置から、移動部１２の位置を示す第１最終目標位置及びマニピュレーター１０の位置を示す第２最終目標位置からなる最終目標位置Ｓtを算出する。既に同一の作業における目標位置オフセットＳtoが算出されている場合、最終目標位置算出部４１ｃは、目標位置及び目標位置オフセットＳtoから最終目標位置Ｓtを算出する。
【００８５】
ステップＳ１０４において、目標位置算出部４１ｄは、ステップＳ１０３で算出された第１最終目標位置及び第２最終目標位置から、移動部１２の第１目標位置及びマニピュレーター１０の第２目標位置からなる目標位置Ｓtcを算出する。即ち、目標位置算出部４１ｄは、移動部１２が第１最終目標位置に到達するまでの微小時間毎の第１目標位置と、マニピュレーター１０が第２最終目標位置に到達するまでの微小時間毎の第２目標位置とを、各時刻において算出する。
【００８６】
ステップＳ１０５において、トラッキング補正量算出部４１ｅは、搬送装置５０の搬送量センサーを用いて取得される対象物Ｗの搬送量からトラッキング補正量Ｓtmを算出する。ここで、既に同一の作業におけるトラッキングオフセットΔＳrがトラッキングオフセット算出部４２ｄにより算出されている場合、トラッキング補正量算出部４１ｅは、対象物Ｗの搬送量と、トラッキングオフセットΔＳrとから、トラッキング補正量Ｓtmを算出する。即ち、トラッキング補正量算出部４１ｅは、トラッキングオフセットΔＳrにより補正されたトラッキング補正量Ｓtmを算出する。
【００８７】
ステップＳ１０６において、トラッキング補正量加算部４３ａは、ステップＳ１０５で算出されたトラッキング補正量Ｓtmから、移動部１２に適用される第１トラッキング補正量と、マニピュレーター１０に適用される第２トラッキング補正量とを算出する。
【００８８】
ステップＳ１０７において、力検出部４２ｂは、力センサーＰの出力に基づいて、対象物Ｗからエンドエフェクター２０に作用する作用力ｆSを検出する。詳細には、力検出部４２ｂは、第２変換部Ｕ２を介して力センサーＰから取得される力ｆSpに対して、重力に起因する成分を除去する重力補償を施すことにより作用力ｆSを算出する。
【００８９】
ステップＳ１０８において、力制御補正量算出部４２ｃは、ステップＳ１０７で検出された作用力ｆSと、目標力算出部４２ａにより算出された目標力ｆStとから、作用力ｆSを目標力ｆStにするように目標位置Ｓtcを補正する力制御補正量ΔＳを算出する。
【００９０】
ステップＳ１０９において、力制御補正量加算部４３ｂは、ステップＳ１０８で算出された力制御補正量ΔＳから、移動部１２に適用される第１力制御補正量と、マニピュレーター１０に適用される第２力制御補正量とを算出する。
【００９１】
ステップＳ１１０において、力制御補正量加算部４３ｂは、ステップＳ１０４で算出された第１目標位置と、ステップＳ１０６で算出された第１トラッキング補正量と、ステップＳ１０９で算出された第１力制御補正量とから、第１指令位置を算出する。
【００９２】
ステップＳ１１１において、力制御補正量加算部４３ｂは、ステップＳ１０４で算出された第２目標位置と、ステップＳ１０６で算出された第２トラッキング補正量と、ステップＳ１０９で算出された第２力制御補正量とから、第２指令位置を算出する。
【００９３】
ステップＳ１１２において、フィードバック制御部４３ｃは、ステップＳ１１０で算出された第１指令位置と、ステップＳ１１１で算出された第２指令位置とに基づいて、移動部１２及びマニピュレーター１０を駆動する。
【００９４】
ステップＳ１１３において、制御装置４０は、対象物Ｗに対する作業が完了したか否かを判定する。例えば、制御装置４０は、位置制御部４１において検出される移動部１２及びマニピュレーター１０の位置から算出されるＴＣＰの現在位置が、最終目標位置Ｓtに対応するか否かにより、作業が完了したか否かを判定する。制御装置４０は、作業が完了したと判定する場合、ステップＳ１１４に処理を進め、未だ作業が完了しないと判定する場合、ステップＳ１０４に処理を戻す。
【００９５】
ステップＳ１１４において、トラッキングオフセット算出部４２ｄは、各ステップＳ１０８で算出された力制御補正量ΔＳから、力制御補正量ΔＳの統計値であるトラッキングオフセットΔＳrを算出する。
【００９６】
ステップＳ１１５において、最終目標位置算出部４１ｃは、ステップＳ１１０で算出された第１指令位置と、ステップＳ１１１で算出された第２指令位置とに基づいて、目標位置オフセットＳtoを算出する。詳細には、最終目標位置算出部４１ｃは、作業中における各時刻において取得された第１指令位置及び第２指令位置と、予め記憶するエンドエフェクター２０の可動範囲とに基づいて、目標位置オフセットＳtoを算出する。最終目標位置算出部４１ｃは、第１指令位置を補正する目標位置オフセットＳtoを算出することにより、作業開始時におけるベース１１の初期位置を決定する。
【００９７】
次に、図１０のフローチャートを参照して、図９のフローチャートにおけるステップＳ１０６の処理について詳細に説明する。
【００９８】
先ず、ステップＳ２１において、トラッキング補正量加算部４３ａは、移動部１２に適用される第１トラッキング補正量を生じさせる条件設定がされているか否かを判定する。条件設定は、例えば、教示装置４５の入力装置に対する利用者の操作に応じて予め決定される。トラッキング補正量加算部４３ａは、条件設定がされている場合、ステップＳ２２に処理を進め、条件設定がされていない場合、ステップＳ２４に処理を進める。
【００９９】
ステップＳ２２において、トラッキング補正量加算部４３ａは、ステップＳ１０５で算出されたトラッキング補正量Ｓtmを、第１トラッキング補正量とする。ステップＳ２３において、トラッキング補正量加算部４３ａは、第２トラッキング補正量を０とし、ステップＳ１０６の処理を終了する。
【０１００】
ステップＳ２４において、トラッキング補正量加算部４３ａは、ステップＳ１０４で算出された目標位置Ｓtcが、ベース１１を基準とする第１範囲から外れるか否かを判定する。トラッキング補正量加算部４３ａは、目標位置Ｓtcが第１範囲から外れる場合、ステップＳ２２に処理を進め、目標位置Ｓtcが第１範囲から外れない場合、ステップＳ２５に処理を進める。
【０１０１】
ステップＳ２５において、トラッキング補正量加算部４３ａは、ステップＳ１０５で算出されたトラッキング補正量Ｓtmが、第１閾値以上であるか否かを判定する。トラッキング補正量加算部４３ａは、トラッキング補正量Ｓtmが第１閾値以上である場合、ステップＳ２２に処理を進め、トラッキング補正量Ｓtmが第１閾値以上でない場合、ステップＳ２６に処理を進める。
【０１０２】
ステップＳ２６において、トラッキング補正量加算部４３ａは、ステップＳ１０５で算出されたトラッキング補正量Ｓtmを、第２トラッキング補正量とする。ステップＳ２７において、トラッキング補正量加算部４３ａは、第１トラッキング補正量を０とし、ステップＳ１０６の処理を終了する。
【０１０３】
以上のように、トラッキング補正量加算部４３ａは、目標位置Ｓtcが、ベース１１を基準とする第１範囲から外れる場合、又は、トラッキング補正量Ｓtmが第１閾値以上となる場合において、第１トラッキング補正量をトラッキング補正量Ｓtmとする。これにより、制御装置４０は、目標位置Ｓtcがエンドエフェクター２０の可動範囲から外れる可能性がある場合において選択的に、トラッキング補正量Ｓtmに基づいて移動部１２を駆動することができる。これにより、作業中における移動部１２の移動量を効率的に削減することができる。
【０１０４】
なお、ステップＳ２４及びステップＳ２５における判定による条件は、互いに組み合わされてもよい。即ち、トラッキング補正量加算部４３ａは、目標位置Ｓtcが、ベース１１を基準とする第１範囲から外れ、且つ、トラッキング補正量Ｓtmが第１閾値以上となる場合において選択的に、トラッキング補正量Ｓtmを第１トラッキング補正量とするようにしてもよい。これにより、作業中における移動部１２の移動量を更に削減することができる。
【０１０５】
次に、図１１のフローチャートを参照して、図９のフローチャートにおけるステップＳ１０９の処理について詳細に説明する。
【０１０６】
先ず、ステップＳ３１において、力制御補正量加算部４３ｂは、移動部１２に適用される第１力制御補正量を生じさせる条件設定がされているか否かを判定する。条件設定は、例えば、教示装置４５の入力装置に対する利用者の操作に応じて予め決定される。力制御補正量加算部４３ｂは、条件設定がされている場合、ステップＳ３２に処理を進め、条件設定がされていない場合、ステップＳ３６に処理を進める。
【０１０７】
ステップＳ３２において、力制御補正量加算部４３ｂは、ステップＳ１０４で算出された目標位置Ｓtcが、ベース１１を基準とする第２範囲から外れるか否かを判定する。力制御補正量加算部４３ｂは、目標位置Ｓtcが第２範囲から外れる場合、ステップＳ３３に処理を進め、目標位置Ｓtcが第２範囲から外れない場合、ステップＳ３５に処理を進める。
【０１０８】
ステップＳ３３において、力制御補正量加算部４３ｂは、力制御補正量ΔＳの経路方向５２の成分を第１力制御補正量とする。ステップＳ３４において、力制御補正量加算部４３ｂは、力制御補正量ΔＳの経路方向５２の成分以外を第２力制御補正量とし、ステップＳ１０９における処理を終了する。
【０１０９】
ステップＳ３５において、力制御補正量加算部４３ｂは、力制御補正量ΔＳの経路方向５２の成分が第２閾値以上であるか否かを判定する。力制御補正量加算部４３ｂは、力制御補正量ΔＳの経路方向５２の成分が第２閾値以上である場合、ステップＳ３３に処理を進め、力制御補正量ΔＳの経路方向５２の成分が第２閾値以上でない場合、ステップＳ３６に処理を進める。
【０１１０】
ステップＳ３６において、力制御補正量加算部４３ｂは、力制御補正量ΔＳを第２力制御補正量とする。ステップＳ３７において、力制御補正量加算部４３ｂは、第１力制御補正量を０とし、ステップＳ１０９における処理を終了する。
【０１１１】
以上のように、力制御補正量加算部４３ｂは、目標位置Ｓtcが、ベース１１を基準とする第２範囲から外れる場合、又は、力制御補正量ΔＳの経路方向５２の成分が第２閾値以上となる場合において選択的に、力制御補正量ΔＳの経路方向５２の成分に基づいて移動部１２を駆動する。これにより、作業中における移動部１２の移動量を効率的に削減することができる。更に、一般的な傾向として、マニピュレーター１０は、移動部１２に比べて速い応答性を有し、路面等の影響により安定性が悪化する可能性がある。このため、力制御補正量ΔＳに基づく移動部１２の駆動を最低限に抑えることにより、力制御の精度の悪化を低減することができる。
【０１１２】
なお、ステップＳ３２及びステップＳ３５における判定による条件は、互いに組み合わされてもよい。即ち、力制御補正量加算部４３ｂは、目標位置Ｓtcが、ベース１１を基準とする第２範囲から外れ、且つ、力制御補正量ΔＳの経路方向５２の成分が第２閾値以上となる場合において選択的に、力制御補正量ΔＳの経路方向５２の成分に基づいて移動部１２を駆動するようにしてもよい。これにより、作業中における移動部１２の移動量を更に削減することができる。
【０１１３】
［変形例］
上述の実施形態では、トラッキング補正量Ｓtmは、搬送装置５０による対象物Ｗの搬送量に基づいて算出されたが、移動部１２の移動量で更に補正されてもよい。即ち、本実施形態の変形例において、制御装置４０は、移動部１２を経路５１に沿って駆動させながら、目標位置Ｓtcと、移動部１２の移動量で補正されたトラッキング補正量Ｓtmとに基づいてマニピュレーター１０を駆動することにより、エンドエフェクター２０を対象物Ｗに追従させ得る。このように、移動部１２が経路方向５２に移動しながら、エンドエフェクター２０が対象物Ｗに追従することにより、対象物Ｗに対する作業が完了する前に対象物Ｗがエンドエフェクター２０の可動範囲から外れてしまう可能性を低減することができる。以下において説明しない作用、構成及び効果は、上述の実施形態と同様であるため、重複する説明を省略する。
【０１１４】
トラッキング補正量算出部４１ｅは、図９のフローチャートのステップＳ１０５に相当する処理として、対象物Ｗの搬送量と、移動部１２の移動量とから、トラッキング補正量Ｓtmを算出する。本実施形態の変形例におけるトラッキング補正量Ｓtmは、上述の実施形態におけるトラッキング補正量Ｓtmを移動部１２の移動量で補正した量に相当する。トラッキング補正量算出部４１ｅは、移動部１２の移動量をエンコーダーＥ１〜Ｅ８の出力に基づいて算出してもよく、予め作成されたコマンドに基づいて取得してもよい。トラッキングオフセットΔＳrが算出されている場合、トラッキング補正量算出部４１ｅは、対象物Ｗの搬送量と、移動部１２の移動量と、トラッキングオフセットΔＳrとから、トラッキング補正量Ｓtmを算出する。トラッキング補正量Ｓtmは、ベース座標系における対象物Ｗの移動量に相当する。
【０１１５】
トラッキング補正量加算部４３ａは、図９のフローチャートのステップＳ１０６に相当する処理として、トラッキング補正量算出部４１ｅにより算出されたトラッキング補正量Ｓtmから、第１トラッキング補正量及び第２トラッキング補正量を決定する。
【０１１６】
以下、図１２のフローチャートを参照して、トラッキング補正量加算部４３ａが第１トラッキング補正量及び第２トラッキング補正量を決定する方法について詳細に説明する。
【０１１７】
先ず、ステップＳ４１において、トラッキング補正量加算部４３ａは、移動部１２に適用される第１トラッキング補正量を生じさせる条件設定がされているか否かを判定する。トラッキング補正量加算部４３ａは、条件設定がされている場合、ステップＳ４２に処理を進め、条件設定がされていない場合、ステップＳ４６に処理を進める。
【０１１８】
ステップＳ４２において、トラッキング補正量加算部４３ａは、目標位置算出部４１ｄにより算出された目標位置Ｓtcが、ベース１１を基準とする第１範囲から外れるか否かを判定する。トラッキング補正量加算部４３ａは、目標位置Ｓtcが第１範囲から外れる場合、ステップＳ４３に処理を進め、目標位置Ｓtcが第１範囲から外れない場合、ステップＳ４５に処理を進める。
【０１１９】
ステップＳ４３において、トラッキング補正量加算部４３ａは、トラッキング補正量算出部４１ｅにより算出されたトラッキング補正量Ｓtmを、第１トラッキング補正量とする。ステップＳ４４において、トラッキング補正量加算部４３ａは、第２トラッキング補正量を０とし、ステップＳ１０６に相当する処理を終了する。
【０１２０】
ステップＳ４５において、トラッキング補正量加算部４３ａは、トラッキング補正量算出部４１ｅにより算出されたトラッキング補正量Ｓtmが、第１閾値以上であるか否かを判定する。トラッキング補正量加算部４３ａは、トラッキング補正量Ｓtmが第１閾値以上である場合、ステップＳ４３に処理を進め、トラッキング補正量Ｓtmが第１閾値以上でない場合、ステップＳ４６に処理を進める。
【０１２１】
ステップＳ４６において、トラッキング補正量加算部４３ａは、トラッキング補正量算出部４１ｅにより算出されたトラッキング補正量Ｓtmを、第２トラッキング補正量とする。ステップＳ４７において、トラッキング補正量加算部４３ａは、第１トラッキング補正量を０とし、ステップＳ１０６に相当する処理を終了する。
【０１２２】
以上のように、トラッキング補正量加算部４３ａは、目標位置Ｓtcが、ベース１１を基準とする第１範囲から外れる場合、又は、トラッキング補正量Ｓtmが第１閾値以上となる場合において、第１トラッキング補正量をトラッキング補正量Ｓtmとする。これにより、制御装置４０は、移動部１２を経路５１に沿って移動させながら、目標位置Ｓtcがエンドエフェクター２０の可動範囲から外れる可能性がある場合において選択的に、トラッキング補正量Ｓtmに基づいて移動部１２を駆動することができる。このように、作業中において、トラッキング補正量Ｓtmに基づく移動部１２の移動量を削減することができる。
【０１２３】
なお、ステップＳ４２及びステップＳ４５における判定による条件は、互いに組み合わされてもよい。即ち、トラッキング補正量加算部４３ａは、目標位置Ｓtcが、ベース１１を基準とする第１範囲から外れ、且つ、トラッキング補正量Ｓtmが第１閾値以上となる場合において選択的に、トラッキング補正量Ｓtmを第１トラッキング補正量とするようにしてもよい。これにより、作業中におけるトラッキング補正量Ｓtmに基づく移動部１２の移動量を更に削減することができる。
【０１２４】
［他の実施形態］
例えば、ロボット１は、６軸アームである１つのマニピュレーター１０を備えるロボットに限らない。ロボット１が備えるマニピュレーター及びエンドエフェクターの数、マニピュレーターの自由度等は、任意に変更され得る。例えば、ロボット１は、直交ロボット、水平多関節ロボット、垂直多関節ロボット、双腕ロボット等であり得る。同様に、移動部１２は、経路５１に沿って移動可能な装置であればよい。移動部１２は、脚式ロボット、４輪独立駆動車、ステアリング式の車、直交ロボット等であり得る。その他、制御装置４０は、移動部１２のエンコーダーＥ７，Ｅ８から移動部１２の移動量を取得する構成に限らない。移動部１２の移動量は、慣性計測装置（ＩＭＵ）、測位システム、レーザーレンジセンサー、カメラ等種々のセンサーを用いて取得され得る。例えば、力センサーＰとしては力覚センサーに限らず、各軸のトルクセンサーを用いて、エンドエフェクター２０に作用する力を推定してもよい。例えば、搬送量センサーを用いることなく、時刻Ｔから現在までの対象物Ｗの搬送量を位置センサー３０から算出してもよい。
【０１２５】
以下に、上述した実施形態から導き出される内容を、各態様として記載する。
【０１２６】
第１態様は、搬送装置により所定の経路に沿って搬送される対象物に対して、エンドエフェクターを用いて作業を行うロボットであって、前記エンドエフェクターを支持するマニピュレーターと、前記マニピュレーターを支持するベースと、前記ベースを移動させる移動部とを備えるロボットを、制御装置により制御するロボットの制御方法において、位置センサーを用いて前記対象物の位置を取得することと、前記対象物の位置に基づいて前記エンドエフェクターの目標位置を算出することと、前記搬送装置による前記対象物の搬送量を取得することと、前記搬送量に対応するように前記目標位置を補正するトラッキング補正量を算出することと、前記目標位置に基づいて前記マニピュレーターを駆動し、前記トラッキング補正量に基づいて前記移動部を駆動することにより、前記エンドエフェクターを前記対象物に追従させることと、力センサーを用いて前記対象物から前記エンドエフェクターに作用する作用力を取得することと、前記作用力を所定の目標力にするように前記目標位置を補正する力制御補正量を算出することと、前記力制御補正量に基づいて前記マニピュレーターを駆動することにより、前記対象物からの前記作用力を予め決定された目標力に制御することと、を含むロボットの制御方法である。
【０１２７】
第１態様によれば、トラッキング補正量に基づいて移動部を駆動することにより、ベースは、経路に沿って移動される。よって、対象物に対する作業が完了する前に対象物がエンドエフェクターの可動範囲から外れてしまう可能性を低減することができる。
【０１２８】
第２態様は、第１態様において、前記目標位置が前記ベースの位置を基準とする第１範囲から外れる場合において、前記トラッキング補正量に基づいて前記移動部を駆動することである。
【０１２９】
第２態様によれば、選択的にトラッキング補正量に基づいて移動部を駆動することにより、移動部の移動量を削減することができる。
【０１３０】
第３態様は、第１又は第２態様において、前記トラッキング補正量が第１閾値以上となる場合において、前記トラッキング補正量に基づいて前記移動部を駆動することである。
【０１３１】
第３態様によれば、選択的にトラッキング補正量に基づいて移動部を駆動することにより、移動部の移動量を削減することができる。
【０１３２】
第４態様は、搬送装置により所定の経路に沿って搬送される対象物に対して、エンドエフェクターを用いて作業を行うロボットであって、前記エンドエフェクターを支持するマニピュレーターと、前記マニピュレーターを支持するベースと、前記ベースを移動させる移動部とを備えるロボットを、制御装置により制御するロボットの制御方法において、位置センサーを用いて前記対象物の位置を取得することと、前記対象物の位置に基づいて前記エンドエフェクターの目標位置を算出することと、前記搬送装置による前記対象物の搬送量を取得することと、前記搬送量に対応するように前記目標位置を補正するトラッキング補正量を算出することと、前記移動部を前記経路に沿って駆動させながら、前記目標位置、前記トラッキング補正量及び前記移動部の移動量に基づいて前記マニピュレーターを駆動することにより、前記エンドエフェクターを前記対象物に追従させることと、力センサーを用いて前記対象物から前記エンドエフェクターに作用する作用力を取得することと、前記作用力を所定の目標力にするように前記目標位置を補正する力制御補正量を算出することと、前記力制御補正量に基づいて前記マニピュレーターを駆動することにより、前記対象物からの前記作用力を予め決定された目標力に制御することと、を含むロボットの制御方法である。
【０１３３】
第４態様によれば、経路に沿って移動部が駆動されることにより、ベースが経路に沿って移動する。よって、対象物に対する作業が完了する前に対象物がエンドエフェクターの可動範囲から外れてしまう可能性を低減することができる。
【０１３４】
第５態様は、第１乃至第４態様の何れかにおいて、前記力制御補正量が、前記目標位置を前記経路に沿う経路方向に補正する場合において、前記力制御補正量の前記経路方向の成分に基づいて前記移動部を駆動し、前記力制御補正量の前記経路方向の成分以外に基づいて前記マニピュレーターを駆動することである。
【０１３５】
第５態様によれば、力制御補正量の経路方向の成分に基づいて移動部を駆動するため、対象物に対する作業が完了する前に対象物がエンドエフェクターの可動範囲から外れてしまう可能性を低減することができる。
【０１３６】
第６態様は、第５態様において、前記目標位置が前記ベースの位置を基準とする第２範囲から外れる場合において、前記力制御補正量の前記経路方向の成分に基づいて前記移動部を駆動することである。
【０１３７】
第６態様によれば、選択的に力制御補正量に基づいて移動部を駆動することにより、移動部の移動量を削減することができる。また、力制御補正量に基づく移動部の駆動を最低限に抑えることにより、力制御の精度の悪化を低減することができる。
【０１３８】
第７態様は、第５又は第６態様において、前記力制御補正量の前記経路方向の成分が第２閾値以上となる場合において、前記力制御補正量の前記経路方向の成分に基づいて前記移動部を駆動することである。
【０１３９】
第７態様によれば、選択的に力制御補正量に基づいて移動部を駆動することにより、移動部の移動量を削減することができる。また、力制御補正量に基づく移動部の駆動を最低限に抑えることにより、力制御の精度の悪化を低減することができる。
【０１４０】
第８態様は、第１乃至第７態様の何れかにおいて、前記ベースの位置を基準とする前記エンドエフェクターの可動範囲に基づいて、前記作業の開始時における前記ベースの初期位置を、前記移動部の移動量が削減されるように決定することである。
【０１４１】
第８態様によれば、移動部の駆動を抑えることにより、力制御の精度の悪化を低減することができる。
【符号の説明】
【０１４２】
１…ロボット、１０…マニピュレーター、１１…ベース、１２…移動部、２０…エンドエフェクター、３０…位置センサー、４０…制御装置、４０ａ…プロセッサー、４０ｂ…メモリー、４１…位置制御部、４１ａ…位置検出部、４１ｂ…最終位置算出部、４１ｃ…最終目標位置算出部、４１ｄ…目標位置算出部、４１ｅ…トラッキング補正量算出部、４２…力制御部、４２ａ…目標力算出部、４２ｂ…力検出部、４２ｃ…力制御補正量算出部、４２ｄ…トラッキングオフセット算出部、４３…指令統合部、４３ａ…トラッキング補正量加算部、４３ｂ…力制御補正量加算部、４３ｃ…フィードバック制御部、４５…教示装置、４５ａ…画面、５０…搬送装置、５０ａ…搬送ローラー、５１…経路、５２…経路方向、１００…ロボットシステム、１２１，１２１ａ，１２１ｂ…動輪、１２２…従輪、４００，４１０…ＰＣ、４００ａ，４１０ａ，５００ａ…プロセッサー、４００ｂ，４１０ｂ，５００ｂ…メモリー、４５０…ネットワーク、５００…クラウド、Ｂ１，Ｂ２…ボタン、ｃ０〜ｃ３…位置、Ｅ１〜Ｅ８…エンコーダー、Ｆ０〜Ｆ３…範囲、Ｇ１，Ｇ２…グラフ、Ｈ１…スライダー、Ｊ１〜Ｊ６…関節、Ｍ１〜Ｍ８…モーター、Ｎ１〜Ｎ３…入力窓、Ｑ１，Ｑ２…表示窓、Ｕ１…第１変換部、Ｕ２…第２変換部。
【図１】
2020189392.tif 000004
【図２】
2020189392.tif 000005
【図３】
2020189392.tif 000006
【図４】
2020189392.tif 000007
【図５】
2020189392.tif 000008
【図６】
2020189392.tif 000009
【図７】
2020189392.tif 000010
【図８】
2020189392.tif 000011
【図９】
2020189392.tif 000012
【図１０】
2020189392.tif 000013
【図１１】
2020189392.tif 000014
【図１２】
2020189392.tif 000015