(57)【要約】【課題】ロボットにおける所定の部位があらかじめ定められた位置へ移動したことを示す通知信号の出力を適切に行うこと。【解決手段】ベクトル算出部が、基準部位置における基準部の移動方向を示す第１のベクトルと、信号出力位置および基準部位置間の相対位置を示す第２のベクトルとを算出するようにロボット制御装置を構成する。また、信号出力判定部が、ベクトル算出部によって算出された第１のベクトルおよび第２のベクトルに基づいて通知信号を出力するか否かを判定するようにロボット制御装置を構成する。【選択図】        図３
2012096307.tif 000002
【特許請求の範囲】
【請求項１】
所定の信号を出力すべき位置を示す信号出力位置を登録する登録部と、
ロボットにおける基準部の位置を示す基準部位置を取得する位置取得部と、
前記基準部位置における前記基準部の移動方向を示す第１のベクトルと、前記信号出力位置および前記基準部位置間の相対位置を示す第２のベクトルとを算出するベクトル算出部と、
前記ベクトル算出部によって算出された前記第１のベクトルおよび前記第２のベクトルに基づいて前記所定の信号を出力するか否かを判定する判定部と
を備えることを特徴とするロボット制御装置。
【請求項２】
前記判定部は、
前記第１のベクトルと前記第２のベクトルとの内積値に基づいて前記所定の信号を出力するか否かを判定することを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
前記判定部は、
前記内積値の符号が変化した場合に、前記所定の信号を出力すると判定することを特徴とする請求項２に記載のロボット制御装置。
【請求項４】
前記判定部は、
前記内積値の絶対値が所定値以下となった場合に、前記所定の信号を出力すると判定することを特徴とする請求項２に記載のロボット制御装置。
【請求項５】
前記位置取得部によって取得された前記基準部位置の履歴を記憶する履歴記憶部
をさらに備え、
前記ベクトル算出部は、
直前の前記基準部位置に対する最新の前記基準部位置の相対位置を前記第１のベクトルとして算出することを特徴とする請求項１〜４のいずれか一つに記載のロボット制御装置。
【請求項６】
前記ベクトル算出部は、
算出した前記第１のベクトルを、前記直前の前記基準部位置よりも古い前記基準部位置に基づいて補正することを特徴とする請求項５に記載のロボット制御装置。
【請求項７】
前記判定部は、
前記第２のベクトルの大きさに基づいて前記所定の信号を出力するか否かを判定することを特徴とする請求項１〜６のいずれか一つに記載のロボット制御装置。
【請求項８】
所定の信号を出力すべき位置を示す信号出力位置を登録する登録工程と、
ロボットにおける基準部の位置を示す基準部位置を取得する位置取得工程と、
前記基準部位置における前記基準部の移動方向を示す第１のベクトルと、前記信号出力位置および前記基準部位置間の相対位置を示す第２のベクトルとを算出するベクトル算出工程と、
前記ベクトル算出工程によって算出された前記第１のベクトルおよび前記第２のベクトルに基づいて前記所定の信号を出力するか否かを判定する判定工程と
を含むことを特徴とするロボット制御方法。
【請求項９】
あらかじめ登録された教示点に基づいて動作するとともに前記教示点にあらかじめ対応付けられた作業を実行する１または複数のロボットと、
所定の信号を出力すべき位置を示す信号出力位置を登録する登録部と、
前記ロボットにおける基準部の位置を示す基準部位置を取得する位置取得部と、
前記基準部位置における前記基準部の移動方向を示す第１のベクトルと、前記信号出力位置および前記基準部位置間の相対位置を示す第２のベクトルとを算出するベクトル算出部と、
前記ベクトル算出部によって算出された前記第１のベクトルおよび前記第２のベクトルに基づいて前記所定の信号を出力するか否かを判定する判定部と、
前記所定の信号が出力された場合に、前記ロボットに対して所定の動作を指示する指示部と
を備えることを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットを制御するロボット制御装置、ロボット制御方法およびロボットシステムに関する。
【背景技術】
【０００２】
従来、あらかじめ登録された指令経路に従ってロボットの基準部を移動させるロボットシステムが知られている。
【０００３】
かかるロボットシステムに関し、たとえば、基準部の移動軌跡から予測した予測位置や、ロボットに対する動作指令から推定した推定位置が、所定の信号出力位置と一致したことを条件として通知信号を出力する技術が提案されている（特許文献１および特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−２５８８１２号公報
【特許文献２】特開２００６−２４３９２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記した従来技術には、通知信号の出力が適切に行われないおそれがあるという問題があった。
【０００６】
たとえば、ロボットには、応答遅れが存在するので、ロボットの基準部の位置は、動作指令に対応した理想位置からずれてしまう場合がある。すなわち、予測位置や推定位置は、基準部の実際の位置とは異なる場合がある。
【０００７】
したがって、予測位置や推定位置が、信号出力位置に一致したことを条件として通知信号を出力しても、通知信号の出力タイミングは適切なものとはなりにくい。たとえば、基準部の実際の位置が予測位置よりも移動経路の先方であれば、通知信号の出力タイミングは理想的なタイミングよりも遅れてしまう。
【０００８】
また、予測位置や推定位置が、信号出力位置を通過しない場合には、そもそも、通知信号の出力自体が行われない。
【０００９】
開示の技術は、上記に鑑みてなされたものであって、通知信号の出力を適切に行うことができるロボット制御装置、ロボット制御方法およびロボットシステムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本願の開示するロボット制御装置は、所定の信号を出力すべき位置を示す信号出力位置を登録する登録部と、ロボットにおける基準部の位置を示す基準部位置を取得する位置取得部と、前記基準部位置における前記基準部の移動方向を示す第１のベクトルと、前記信号出力位置および前記基準部位置間の相対位置を示す第２のベクトルとを算出するベクトル算出部と、前記ベクトル算出部によって算出された前記第１のベクトルおよび前記第２のベクトルに基づいて前記所定の信号を出力するか否かを判定する判定部とを備える。
【発明の効果】
【００１１】
本願の開示するロボット制御装置の一つの態様によれば、ロボットにおける所定の部位があらかじめ定められた位置へ移動したことを示す通知信号の出力を適切に行うことができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例１に係る信号出力判定手法の説明図である。
【図２】図２は、実施例１に係るロボットシステムの構成を示す図である。
【図３】図３は、実施例１に係るロボット制御装置の構成を示すブロック図である。
【図４Ａ】図４Ａは、ベクトル算出処理における前提の一例を示す図である。
【図４Ｂ】図４Ｂは、ベクトル間の関係（その１）を示す図である。
【図４Ｃ】図４Ｃは、ベクトル間の関係（その２）を示す図である。
【図４Ｄ】図４Ｄは、ベクトル間の関係（その３）を示す図である。
【図５Ａ】図５Ａは、ベクトル間の内積値に基づく信号出力判定処理の判定例（その１）を示す図である。
【図５Ｂ】図５Ｂは、ベクトル間の内積値に基づく信号出力判定処理の判定例（その２）を示す図である。
【図５Ｃ】図５Ｃは、ベクトル間の内積値に基づく信号出力判定処理の判定例（その３）を示す図である。
【図６Ａ】図６Ａは、ベクトルの大きさに基づく信号出力判定処理の判定例（その１）を示す図である。
【図６Ｂ】図６Ｂは、ベクトルの大きさに基づく信号出力判定処理の判定例（その２）を示す図である。
【図６Ｃ】図６Ｃは、ベクトルの大きさに基づく信号出力判定処理の判定例（その３）を示す図である。
【図７Ａ】図７Ａは、ベクトル算出のバリエーション（その１）を示す図である。
【図７Ｂ】図７Ｂは、ベクトル算出のバリエーション（その２）を示す図である。
【図８】図８は、ロボット制御装置によって実行される処理手順を示すフローチャートである。
【図９】図９は、ベクトル算出処理の処理手順を示すフローチャートである。
【図１０】図１０は、実施例２に係るロボット制御装置の構成を示すブロック図である。
【図１１Ａ】図１１Ａは、双腕ロボットの例を示す図である。
【図１１Ｂ】図１１Ｂは、双腕ロボットの動作例を示す図である。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照して、本願の開示するロボット制御装置、ロボット制御方法およびロボットシステムの実施例を詳細に説明する。なお、以下に示す実施例における例示で本発明が限定されるものではない。
【００１４】
また、以下に示す各実施例では、説明を簡略化する観点から、ロボットの移動が、２次元の移動であるとして説明を行うが、かかる説明は、ロボットの移動が３次元の移動である場合にも適用することができる。
【実施例１】
【００１５】
まず、実施例１に係る信号出力判定手法について、図１を用いて説明する。図１は、実施例１に係る信号出力判定手法の説明図である。
【００１６】
図１に示すように、ロボットの基準部が移動すべき経路（以下、「指令経路」と記載する）は、複数の教示点Ｓで定められる。なお、以下では、複数の教示点Ｓそれぞれを区別する場合には、下付きの添字を付加する。たとえば、指令経路の始点となる教示点Ｓからｎ番目の教示点Ｓは教示点Ｓｎ、教示点Ｓｎの一つ前の教示点Ｓは教示点Ｓｎ−１のように表記する。
【００１７】
図１に示すように、上記した指令経路は、各教示点Ｓを直線で結んだ経路の集合としてあらわされる。たとえば、図１に示した場合では、教示点Ｓｎ−１と教示点Ｓｎとを直線で結んだ経路１１１ａと、教示点Ｓｎと教示点Ｓｎ＋１とを直線で結んだ経路１１１ｂとが、指令経路に相当する。
【００１８】
ここで、図１に示すように、教示点Ｓｎには、ロボットが行うべき作業である作業（Ｓｎ）が対応付けられているとする。この場合、一般的には、ロボットの基準部が教示点Ｓｎに達してはじめて、作業（Ｓｎ）の開始指示がロボットに対して行われる。
【００１９】
しかし、作業（Ｓｎ）を効率よく行うためには、ロボットの基準部が教示点Ｓｎに接近した旨を、基準部が教示点Ｓｎへ到達する前に検知することが好ましい。このため、図１に示すように、経路１１１ａにおける教示点Ｓｎの近傍には信号出力位置Ｐｎが設けられる。
【００２０】
そして、ロボットの基準部が信号出力位置Ｐｎに達した時点で通知信号を出力することとすれば、作業（Ｓｎ）の開始を、出力された通知信号に応じてロボットへ指示することが可能となる。しかし、ロボットの基準部の移動軌跡は、図１に示す軌跡１１０のように、信号出力位置Ｐｎを通過しない場合がある。
【００２１】
そこで、実施例１に係る信号出力判定手法では、最新の基準部位置における基準部の移動方向を示すベクトルＶｒと、最新の基準部位置および信号出力位置Ｐｎ間の相対位置を示すベクトルＶｐとに基づき、信号出力位置Ｐｎに対応する通知信号を出力するタイミングを決定することとした。
【００２２】
すなわち、実施例１に係る信号出力判定手法は、上記したベクトルＶｒとベクトルＶｐとの関係に基づき、最新の基準部位置が、信号出力位置Ｐｎへ最接近したことを検出する。なお、ベクトルＶｐは少なくとも「向き」を含んでいれば足り、「大きさ」については単位ベクトルのように１とするか考慮しなくてもよい。
【００２３】
具体的には、図１に示す領域１１２の拡大図に示すように、実施例１に係る信号出力判定手法では、ロボットから取得した基準部位置Ｒに基づいてベクトルＶｒを算出する。ここで、基準部位置Ｒは、所定のサンプリング間隔で取得される。
【００２４】
なお、以下では、複数の基準部位置Ｒを区別する場合には、下付きの添字を付加する。たとえば、最新の基準部位置Ｒは基準部位置Ｒｔ、基準部位置Ｒｔの１つ前に取得された基準部位置Ｒは基準部位置Ｒｔ−１のように表記する。
【００２５】
ここで、図１に示すベクトルＶｒは、基準部位置Ｒｔにおける基準部の移動方向であるので、サンプリング間隔が十分に小さい場合、最新の基準部位置Ｒｔと、最新の基準部位置Ｒｔの１つ前に取得した基準部位置Ｒｔ−１とで近似することができる。たとえば、ベクトルＶｒは、以下に示す式（１）で算出することができる。
Ｖｒ＝Ｒｔ−Ｒｔ−１      ・・・（１）
【００２６】
なお、ベクトルＶｒの算出には、複数のバリエーションが存在するが、この点の詳細については、図７Ａおよび図７Ｂを用いて後述する。
【００２７】
また、実施例１に係る信号出力判定手法では、最新の基準部位置Ｒｔと、信号出力位置Ｐｎとに基づいてベクトルＶｐを算出する。たとえば、ベクトルＶｐは、以下に示す式（２）で算出される。
Ｖｐ＝Ｒｔ−Ｐｎ      ・・・（２）
【００２８】
そして、実施例１に係る信号出力判定手法では、算出したベクトルＶｒおよびベクトルＶｐに基づいて通知信号の出力判定を行う。たとえば、実施例１に係る信号出力判定手法では、ベクトルＶｒとベクトルＶｐとの内積の値を示す「内積値」の符号変化を検知した場合に、通知信号を出力すると判定する。
【００２９】
具体的には、ベクトルＶｒの大きさをｖｒ、ベクトルＶｐの大きさをｖｐ、ベクトルＶｒとベクトルＶｐとのなす角度をθ、内積値をＩとすると、内積値Ｉは、以下に示す式（３）であらわされる。
Ｉ＝ｖｒ×ｖｐ×ｃｏｓθ      ・・・（３）
【００３０】
ここで、基準部位置Ｒが、信号出力位置Ｐｎへ最接近した場合には、上記したベクトルＶｒとベクトルＶｐとのなす角度は９０°となる。すなわち、この場合、「ｃｏｓ９０°＝０」であるので、式（３）から、内積値Ｉは０となる。したがって、内積値Ｉに着目することで、基準部位置Ｒｔが信号出力位置Ｐｎへ最接近したことを検出することができる。
【００３１】
ところで、ベクトルＶｒおよびベクトルＶｐを、それぞれ２次元のｘｙ座標系であらわすと（Ｖｒｘ，Ｖｒｙ）および（Ｖｐｘ、Ｖｐｙ）であるので、内積値Ｉは、以下に示す式（４）で算出することができる。
Ｉ＝Ｖｒｘ×Ｖｐｘ＋Ｖｒｙ×Ｖｐｙ      ・・・（４）
【００３２】
すなわち、内積値Ｉは、式（４）で示す単純な計算で算出することができる。したがって、内積値Ｉに基づき、基準部位置Ｒｔが信号出力位置Ｐｎへ最接近したことを検出する手法の処理負荷は非常に低い。なお、式（４）で算出した内積値Ｉ、既知の値であるｖｒおよびｖｐに基づき、式（３）から、ベクトルＶｒとベクトルＶｐとのなす角度θを算出することとしてもよい。
【００３３】
なお、ベクトルＶｒとベクトルＶｐとの関係に着目した出力判定には、複数のバリエーションが存在するが、この点の詳細については、図５Ａ〜図５Ｃを用いて後述する。また、実施例１に係る信号出力判定手法では、算出したベクトルＶｐの大きさに基づく出力判定を併用することもできるが、この点の詳細については、図６Ａ〜図６Ｃを用いて後述する。
【００３４】
このように、実施例１に係る信号出力判定手法では、最新の基準部位置Ｒｔにおける基準部の移動方向を示すベクトルＶｒと、最新の基準部位置Ｒｔおよび信号出力位置Ｐｎ間の相対位置を示すベクトルＶｐという２つのベクトルを通知信号の出力判定に用いることとした。
【００３５】
したがって、仮に、ロボットの基準部位置Ｒが、信号出力位置Ｐを通過しない場合であっても、基準部位置Ｒが信号出力位置Ｐへ最接近するタイミングを精度よく検出できるので、上記した通知信号の出力を適切に行うことができる。
【００３６】
すなわち、実施例１に係る信号出力判定手法によれば、通知信号の出力自体が行われない事態や、通知信号の出力タイミングが早すぎたり遅すぎたりする事態を、回避することができる。
【００３７】
次に、実施例１に係るロボットシステムの構成について図２を用いて説明する。図２は、実施例１に係るロボットシステムの構成を示す図である。図２に示すように、ロボットシステム１は、ロボット１０と、ロボット制御装置２０と、外部装置３０とを備える。
【００３８】
また、図２に示すように、ロボット１０、ロボット制御装置２０および外部装置３０は、通信ネットワーク１２０で相互に接続される。なお、通信ネットワーク１２０としては、有線ＬＡＮ（Local  Area  Network）や、無線ＬＡＮといった一般的なネットワークを用いることができる。
【００３９】
ロボット１０は、ベース部１１を介して床面などに固定される。また、ロボット１０は、複数のロボットアーム１２を有しており、各ロボットアーム１２は、サーボモータ１３を備えた関節部を介して他のロボットアーム１２と接続される。
【００４０】
なお、図２に示すサーボモータ１３を備えた関節部には、「円」で示したものと、「菱形」で示したものとがあるが、両者は、単に、回転軸の向きの違いをあらわす。たとえば、「円」で示した関節部は、両側のロボットアーム１２のなす角を変化させるように回転する。また、「菱形」で示した関節部は、両側のロボットアーム１２のなす角を保持したまま回転する。
【００４１】
また、サーボモータ１３を備えた関節部を介して相互に接続されたロボットアーム１２のうち、ベース部１１に最も近いロボットアーム１２の先端はベース部１１に固定され、最も遠いロボットアーム１２の先端にはロボットハンド１４が接続される。なお、ロボットハンド１４上の所定の位置には、ロボット１０の基準位置となる基準部１５が定義される。
【００４２】
また、ここでは、ロボットアーム１２の先端に取り付けられるエンドエフェクタとして、ロボットハンドを例にして説明するが、エンドエフェクタはこれに限定されない。たとえば、エンドエフェクタは、溶接機器や塗装機器などであってもよい。
【００４３】
ロボット１０は、ロボット制御装置２０などからの移動指示に従い、各サーボモータ１３を個別に任意の角度だけ回転させることで、基準部１５を任意の位置へ移動させる。なお、ロボット１０は、各サーボモータ１３の回転検出器の出力値（以下、「エンコーダ値」と記載する）、たとえば、所定の基準値からの回転角度を、ロボット制御装置２０へ通知する。
【００４４】
なお、ロボット１０からエンコーダ値を受け取ったロボット制御装置２０は、受け取ったエンコーダ値および各ロボットアーム１２のアーム長に基づき、基準部１５の位置を算出することになる。
【００４５】
ロボット制御装置２０は、ロボット１０の動作制御を行うコントローラである。たとえば、このロボット制御装置２０は、あらかじめ登録された指令経路に従ってロボット１０の基準部１５を移動させる制御や、ロボットハンド１４の開閉といった制御を行う。
【００４６】
ここで、ロボット制御装置２０は、各サーボモータ１３について、指令経路に従って基準部１５を移動させるために必要な動作量を決定し、決定した各動作量をロボット１０へ指示する。なお、ロボット制御装置２０の構成については、図３を用いて後述する。
【００４７】
外部装置３０は、ロボット制御装置２０のマンマシンインタフェースを担う入出力装置である。たとえば、この外部装置３０は、スイッチやボタン、キーといった入力デバイスと、ディスプレイなどの表示デバイスを備える。そして、外部装置３０は、操作者からの入力操作に応じてロボット制御装置２０へ指令経路の登録を行ったり、ロボット１０の動作状態を表示したりする。
【００４８】
なお、ロボット制御装置２０を複数設けたうえで、外部装置３０を、ロボット制御装置２０間の信号を中継する中継装置として構成することとしてもよい。この場合、ロボット制御装置２０は、通知信号を外部装置３０へ出力し、外部装置３０は受け取った通知信号を他のロボット制御装置へ送信する。
【００４９】
また、図２では、ロボット制御装置２０と、外部装置３０とを別装置として記載したが、外部装置３０の機能をロボット制御装置２０に含めることとしてもよい。また、以下では、説明をわかりやすくする観点から、ロボット１０と、ロボット制御装置２０との間でデータ送受信が完結する、すなわち、外部装置３０を介さずにデータ送受信が行われるものとして説明する。
【００５０】
次に、実施例１に係るロボット制御装置２０の構成について図３を用いて説明する。図３は、実施例１に係るロボット制御装置２０の構成を示すブロック図である。図３に示すように、ロボット制御装置２０は、通信部２１と、制御部２２と、記憶部２３とを備える。なお、記憶部２３は、不揮発性メモリや、ハードディスクドライブといった記憶デバイスで構成される。
【００５１】
また、制御部２２は、出力位置登録部２２ａと、位置取得部２２ｂと、ベクトル算出部２２ｃと、信号出力判定部２２ｄと、指示部２２ｅとをさらに備える。そして、記憶部２３は、経路情報２３ａと、出力位置情報２３ｂと、履歴情報２３ｃと、判定条件情報２３ｄとを記憶する。
【００５２】
なお、図３では、説明をわかりやすくする観点から、あらかじめ登録された指令経路に従ってロボット１０の基準部１５を移動させる機能など、一般的なロボットコントローラが備える機能を省略して記載する。
【００５３】
通信部２１は、ロボット１０およびロボット制御装置２０間のデータ送受信を行うＬＡＮボードなどの通信デバイスである。この通信部２１は、ロボット１０から受信したデータを制御部２２へ渡す処理を行うとともに、制御部２２から受け取ったデータをロボット１０へ送信する処理を行う。
【００５４】
制御部２２は、ロボット制御装置２０の全体制御を行う制御部である。出力位置登録部２２ａは、記憶部２３から経路情報２３ａを読み出し、読み出した経路情報２３ａに基づいて図１に示した信号出力位置Ｐｎを算出する処理を行う。ここで、経路情報２３ａとは、指令経路に含まれる各教示点Ｓ（図１参照）の座標や、順序を定義した情報である。
【００５５】
また、出力位置登録部２２ａは、算出した信号出力位置Ｐｎを出力位置情報２３ｂとして記憶部２３へ登録する処理を併せて行う。なお、信号出力位置Ｐｎの具体的な算出例については、図４Ａを用いて後述する。
【００５６】
位置取得部２２ｂは、通信部２１経由でロボット１０から受信したデータに基づいて基準部１５の実際の位置を示す基準部位置Ｒを取得する。具体的には、この位置取得部２２ｂは、ロボット１０のサーボモータ１３（図２参照）から、所定のサンプリング間隔で取得した回転角データなどのエンコーダ値と、各ロボットアーム１２（図２参照）のアーム長とを用いて「順変換処理」を行うことで、基準部位置Ｒを算出する。
【００５７】
ここで、「順変換処理」とは、多関節リンク構造における各関節の回転角度から、各リンクの位置や姿勢を求める処理を指す。なお、「逆変換処理」は、各リンクが満たすべき特定の位置や姿勢から、各関節の回転角度を求める処理を指す。
【００５８】
このように、位置取得部２２ｂは、基準部位置Ｒを、ロボット１０のサーボモータ１３（図２参照）から取得した回転角データに基づいて算出する。したがって、位置取得部２２ｂによって算出される基準部位置Ｒの精度は、ロボットの移動軌跡から予測した予測位置や、ロボットに対する動作指令から推定した推定位置の精度に比べて高い。
【００５９】
ところで、ロボット１０から取得したエンコーダ値に基づいて位置取得部２２ｂが基準部位置Ｒを算出する旨の説明を行ったが、他の手法によって基準部位置Ｒを取得することとしてもよい。たとえば、ロボット１０の基準部１５に位置センサを設け、かかる位置センサが検出した位置データを、位置取得部２２ｂが基準部位置Ｒとして取得することとしてもよい。
【００６０】
なお、位置取得部２２ｂは、取得した基準部位置Ｒを履歴情報２３ｃとして記憶部２３へ記憶させる処理を併せて行う。ここで、履歴情報２３ｃは、最新の基準部位置Ｒｔの座標と、最新の基準部位置Ｒｔの１つ前、すなわち、直前に取得した基準部位置Ｒｔ−１の座標とを少なくとも含む。なお、履歴情報２３ｃに含まれる基準部位置Ｒの個数は２つ以上の任意の数とすることができる。
【００６１】
ベクトル算出部２２ｃは、記憶部２３の出力位置情報２３ｂおよび履歴情報２３ｃに基づき、図１に示したベクトルＶｒおよびベクトルＶｐを算出する処理を行う。なお、ベクトル算出部２２ｃは、算出したベクトルＶｒおよびベクトルＶｐを信号出力判定部２２ｄへ渡す処理を併せて行う。
【００６２】
信号出力判定部２２ｄは、ベクトル算出部２２ｃから受け取ったベクトルＶｒおよびベクトルＶｐと、記憶部２３の判定条件情報２３ｄとに基づいて通知信号を出力するか否かを判定する。すなわち、信号出力判定部２２ｄは、通知信号を出力するタイミングを決定する処理を行う。
【００６３】
ここで、信号出力判定部２２ｄは、通知信号を出力すると判定した場合には、通知信号を指示部２２ｅに対して出力する。なお、実施例１では、信号出力判定部２２ｄが通知信号を生成し、生成した通知信号を指示部２２ｅに対して出力する場合について説明する。
【００６４】
しかしながら、これに限らず、通知信号を出力するタイミングを信号出力判定部２２ｄが判定し、図示しない出力部が、通知信号の出力を行うこととしてもよい。また、通知信号の出力先については、ロボット制御装置２０内に限らず、他の装置、たとえば、図２に示した外部装置３０としてもよい。なお、ロボット制御装置２０を複数設ける場合には、通知信号の出力先を、他のロボット制御装置２０としてもよい。
【００６５】
なお、判定条件情報２３ｄは、信号出力判定部２２ｄが行う判定処理のバリエーションごとに用意される判定条件を含んだ情報である。かかる判定条件情報２３ｄを変更することで、信号出力判定部２２ｄが行う判定処理の内容を変更することができる。
【００６６】
指示部２２ｅは、信号出力判定部２２ｄから通知信号を受け取った場合に、受け取った通知信号に対応する動作を、通信部２１経由でロボット１０へ指示する処理を行う。たとえば、指示部２２ｅは、信号出力位置Ｐｎに対応する教示点Ｓｎにあらかじめ関連付けられた作業（Ｓｎ）の開始指示を、ロボット１０に対して行う。
【００６７】
以下では、実施例１に係るロボット制御装置２０が実行する処理内容についてさらに詳細に説明する。
【００６８】
まず、ベクトル算出部２２ｃによって算出されるベクトルＶｒおよびベクトルＶｐとの関係について、図４Ａ〜図４Ｄを用いて説明する。なお、図４Ａでは、説明の前提となる教示点Ｓおよび信号出力位置Ｐの位置関係について説明し、図４Ｂ〜図４Ｄでは、かかる前提のもと、２つのベクトルのなす角（θ）が変化した場合における、基準部位置Ｒと信号出力位置Ｐとの位置関係について説明する。
【００６９】
図４Ａは、ベクトル算出処理における前提の一例を示す図である。ここで、図４Ａでは、指令経路の始点が教示点Ｓｎ−１、中間点が教示点Ｓｎ、終点が教示点Ｓｎ＋１であるとする。この場合、教示点Ｓｎ−１と教示点Ｓｎとの最短経路は経路１４２ａであり、教示点Ｓｎと教示点Ｓｎ＋１との最短経路は経路１４２ｂである。
【００７０】
出力位置登録部２２ａは、あらかじめ定められた条件に従い、教示点Ｓｎに対応する信号出力位置Ｐｎを経路１４２ａ上に算出する。たとえば、かかる条件としては、教示点Ｓｎまでの距離、教示点Ｓｎまでの時間などを用いることができる。
【００７１】
ここで、仮に、図４Ａに示す経路１４２ａおよび経路１４２ｂに沿ってロボット１０の基準部１５（図２参照）を移動させると、基準部１５の向きが教示点Ｓｎで急激に変わってしまう。このため、図４Ａに示す経路１４０に沿って基準部１５を移動させる制御が一般的に行われる。なお、出力位置登録部２２ａが、信号出力位置Ｐｎを経路１４０上に算出することとしてもよい。
【００７２】
しかしながら、ロボット１０には応答遅れが存在するので、基準部１５は、実際には、図４Ａに示す経路１４１に沿って移動する場合がある。この場合、基準部１５は、教示点Ｓｎ−１を始点とし、教示点Ｓｎ＋１を終点とする経路１４１上を移動することになる。
【００７３】
すなわち、経路１４１上を移動する基準部１５は、徐々に信号出力位置Ｐｎへ近づき、最接近したうえで遠ざかっていく。なお、以下に示す図４Ｂ〜図４Ｄは、最新の基準部位置Ｒｔが最接近位置よりも手前である場合、最接近位置にある場合、最接近位置を過ぎた場合に、それぞれ対応する。
【００７４】
また、以下に示す図４Ｂ〜図４Ｄは、上記した式（１）でベクトルＶｒを算出した場合についての例である。すなわち、図４Ｂ〜図４Ｄに示すベクトルＶｒは、基準部位置Ｒｔ−１から基準部位置Ｒｔへ向かうベクトルであるので、ベクトルＶｒの始点を基準部Ｒｔ−１として記載した。しかしながら、ベクトルＶｒを平行移動してベクトルＶｒの始点が基準部Ｒｔとなるように記載した場合と意味は同じである。
【００７５】
また、以下に示す図４Ｂ〜図４Ｄは、上記した式（２）でベクトルＶｐを算出した場合についての例である。すなわち、図４Ｂ〜図４Ｄに示すベクトルＶｐは、信号出力位置Ｐｎから最新の基準部位置Ｒｔへ向かうベクトルである。
【００７６】
図４Ｂは、ベクトル間の関係（その１）を示す図である。図４Ｂに示すように、最新の基準部位置Ｒｔが、信号出力位置Ｐｎへ接近しつつある場合には、ベクトルＶｒと、ベクトルＶｐとのなす角θは、９０°よりも大きい。したがって、上記した式（３）におけるｃｏｓθは負の値であるので、内積値Ｉも負の値となる。
【００７７】
図４Ｃは、ベクトル間の関係（その２）を示す図である。図４Ｃに示すように、最新の基準部位置Ｒｔが、信号出力位置Ｐｎへ最接近した場合には、ベクトルＶｒと、ベクトルＶｐとのなす角θは、９０°である。したがって、上記した式（３）におけるｃｏｓθはゼロであるので、内積値Ｉもゼロとなる。
【００７８】
図４Ｄは、ベクトル間の関係（その３）を示す図である。図４Ｄに示すように、最新の基準部位置Ｒｔが、信号出力位置Ｐｎから遠ざかりつつある場合には、ベクトルＶｒと、ベクトルＶｐとのなす角θは、９０°よりも小さい。したがって、上記した式（３）におけるｃｏｓθは正の値であるので、内積値Ｉも正の値となる。
【００７９】
なお、図４Ｂ〜図４Ｄでは、ロボット１０の基準部１５が、信号出力位置Ｐｎを内回りする経路に沿って接近し、遠ざかる場合について示した。しかしながら、信号出力位置Ｐｎを外回りする経路に沿って接近し、遠ざかる場合についても、同様のことがいえる。
【００８０】
また、図４Ｂ〜図４Ｄに示したベクトルＶｐを逆向きとした場合、すなわち、最新の基準部位置Ｒｔから信号出力位置Ｐｎへ向かうベクトルとした場合には、ベクトルＶｒとベクトルＶｐとのなす角は、１８０°から上記したθを引いた角度となる。
【００８１】
したがって、この場合の内積値Ｉは、最新の基準部位置Ｒｔが、信号出力位置Ｐｎへ接近しつつある場合は正の値をとり、最接近した場合にはゼロとなり、遠ざかりつつある場合には負の値をとる。つまり、内積値Ｉの変化は、図４Ｂ〜図４Ｄに示した場合と正負逆になる。
【００８２】
次に、図３に示した信号出力判定部２２ｄによって行われる信号出力判定処理の具体例について図５Ａ〜図５Ｃを用いて説明する。なお、図５Ａ〜図５Ｃは、図４Ｂ〜図４Ｄに示した向き、すなわち、信号出力位置Ｐｎから基準部位置Ｒｔへ向かう向きのベクトルＶｐを用いた場合に対応する例である。また、図５Ａ〜図５Ｃに示す座標軸は、縦軸が内積値Ｉであり、横軸が時間である。
【００８３】
図５Ａは、ベクトル間の内積値Ｉに基づく信号出力判定処理の判定例（その１）を示す図である。ここで、図５Ａに示す判定例は、内積値Ｉの「符号変化」に基づいた判定例である。
【００８４】
図４Ｂ〜図４Ｄを用いて既に説明したように、ベクトルＶｒとベクトルＶｐとの内積値Ｉは、基準部位置Ｒが信号出力位置Ｐｎへ接近して遠ざかる場合、負の値、ゼロ、正の値のように変化する。すなわち、内積値Ｉの符号は、マイナス（−）からプラス（＋）へと変化する。
【００８５】
ここで、上記したように、基準部位置Ｒは、所定のサンプリング間隔で取得されるので、基準部位置Ｒに基づいて算出される内積値Ｉは、不連続な値として算出される。したがって、算出される内積値Ｉはゼロとならない場合がある。
【００８６】
たとえば、図５Ａに示すように、内積値Ｉが、点１５０ａでは負の値、点１５０ｂでは負の値、点１５０ｃでは正の値のように増加したとする。この場合、信号出力判定部２２ｄは、内積値Ｉがはじめて正の値をとった点１５０ｃに対応するタイミングで通知信号を出力すると判定する。
【００８７】
すなわち、信号出力判定部２２ｄは、内積値Ｉの符号が、マイナス（−）から、はじめてプラス（＋）へ変化した場合に、通知信号を出力すると判定する。なお、内積値Ｉがゼロの場合には、符号が存在しないことになるが、かかる場合は符号がプラス（＋）とみなせばよい。
【００８８】
なお、ベクトルＶｐの向きを、図４Ｂ〜図４Ｄに示したベクトルＶｐと逆向きにした場合には、内積値の符号が、プラス（＋）から、はじめてマイナス（−）へ変化した場合に、通知信号を出力すればよい。
【００８９】
ところで、図５Ａでは、内積値Ｉの「符号変化」に基づいた判定例を示したが、内積値Ｉを所定の閾値と比較した結果に基づいて通知信号の出力判定を行うこととしてもよい。
【００９０】
図５Ｂは、ベクトル間の内積値に基づく信号出力判定処理の判定例（その２）を示す図である。ここで、図５Ｂに示す判定例は、内積値Ｉと所定の閾値Ｔｈとの比較結果に基づいた判定例である。なお、図５Ｂでは、図５Ａと同一の点１５０ａ、点１５０ｂおよび点１５０ｃを、それぞれ示している。
【００９１】
たとえば、図５Ｂに示すように、信号出力判定部２２ｄは、内積値Ｉがはじめて閾値Ｔｈ以上となった場合に、通知信号を出力すると判定する。すなわち、信号出力判定部２２ｄは、内積値Ｉがはじめて閾値Ｔｈ以上となった点１５０ｂに対応するタイミングで通知信号を出力すると判定する。
【００９２】
なお、図５Ｂには、負の値の閾値Ｔｈを例示したが、正の値の閾値を用いることとしてもよい。また、内積値Ｉの大きさ、すなわち、内積値Ｉの絶対値が所定値以下となった場合に、信号出力判定部２２ｄが通知信号を出力すると判定するようにしてもよい。
【００９３】
また、ベクトルＶｐの向きを、図４Ｂ〜図４Ｄに示したベクトルＶｐと逆向きにした場合には、内積値Ｉがはじめて閾値Ｔｈ以下となった場合に、通知信号を出力すればよい。
【００９４】
図５Ｃは、ベクトル間の内積値に基づく信号出力判定処理の判定例（その３）を示す図である。なお、図５Ｃでは、算出された内積値Ｉが増加する傾向にあるものの、微少に増減を繰り返す場合を示す。
【００９５】
図５Ｃに示した場合、内積値Ｉは、点１５３ａで正の値をとるものの、点１５３ｂで負の値をとり、点１５３ｃで再び正の値をとっている（図５Ｃに示す曲線１５２参照）。このような内積値Ｉの増減は、ノイズの混入などによって発生しうる。
【００９６】
ここで、信号出力判定部２２ｄは、算出した内積値Ｉを平滑化する補正処理を行う。たとえば、信号出力判定部２２ｄは、算出した内積値Ｉの移動平均をとるなどして内積値Ｉを平滑化する（図５Ｃに示す補正値１５４参照）。なお、内積値Ｉに対してローパスフィルタをかけるなどの補正処理を、信号出力判定部２２ｄが行うこととしてもよい。
【００９７】
図５Ｃに示すように、内積値Ｉは、点１５３ａで正の値をとるものの、点１５３ａに対応する時間において補正値１５４は負の値をとる。これに対し、内積値Ｉは、点１５３ｃで正の値をとり、点１５３ｃに対応する時間において補正値１５４も正の値をとる。
【００９８】
この場合、信号出力判定部２２ｄは、点１５３ａではなく点１５３ｃに対応するタイミングで通知信号を出力すると判定する。なお、かかるタイミングを、補正値１５４がはじめて正の値をとるタイミング、すなわち、点１５３ｂに対応するタイミングとしてもよい。
【００９９】
なお、上記した図５Ｃの説明では、図５Ａのように内積値Ｉを０と比較する場合に対して補正処理を適用する場合を例示したが、図５Ｂのように内積値Ｉを閾値Ｔｈと比較する場合にも、かかる補正処理を適用することができる。
【０１００】
次に、図３に示した信号出力判定部２２ｄによって行われる信号出力判定処理のバリエーションについて図６Ａ〜図６Ｃを用いて説明する。
【０１０１】
図６Ａは、ベクトルの大きさに基づく信号出力判定処理の判定例（その１）を示す図である。なお、図６Ａには、基準部位置Ｒが、まっすぐに信号出力位置Ｐｎへ近づいてくる場合を示す。
【０１０２】
この場合、図６Ａに示すように、基準部位置Ｒは、信号出力位置Ｐｎを通過する直線１６０上を移動するので、ベクトルＶｒとベクトルＶｐとのなす角θは常に１８０°である。したがって、このような場合には、図５Ａで説明した内積値Ｉの符号変化は発生しない。
【０１０３】
そこで、信号出力判定部２２ｄは、ベクトルＶｐの大きさが所定値以下となった場合に、通知信号の出力を行うと判定する。つまり、図６Ａに示すように、信号出力位置Ｐｎを中心とする所定の半径の円１６１内に最新の基準部位置Ｒｔが入ったタイミングで、通知信号の出力が行われる。
【０１０４】
すなわち、図６Ａに示す判定を行うことで、ベクトルＶｒとベクトルＶｐとの関係からは、基準部位置Ｒｔが最接近したか否かを判定出来ない場合であっても、通知信号の出力を行うことができる。
【０１０５】
図６Ｂは、ベクトルの大きさに基づく信号出力判定処理の判定例（その２）を示す図である。なお、図６Ｂには、基準部位置Ｒが、信号出力位置Ｐｎと若干ずれた経路１６２で近づいてくる場合を示す。
【０１０６】
このような場合にも、図６Ａの場合と同様に、ベクトルＶｐの大きさに基づく信号出力判定を行ってもよい。図６Ｂに示すように、円１６１の内側で基準部位置Ｒが信号出力位置Ｐｎへ最接近する場合、円１６１の外側では内積値Ｉの符号変化は発生しない。この場合、円１６１の内側では、ベクトルＶｐの大きさに基づく判定処理を行う。
【０１０７】
図６Ｃは、ベクトルの大きさに基づく信号出力判定処理の判定例（その３）を示す図である。なお、図６Ｃには、図６Ａや図６Ｂに示した円１６１の他に、円１６１よりも半径が大きい円１６３を示している。
【０１０８】
円１６３は、信号出力判定部２２ｄによる信号出力判定処理の有効範囲を示す。すなわち、信号出力判定部２２ｄは、最新の基準部位置Ｒｔが、円１６３の外側にある場合には判定処理を行わず、円１６３の内側にある場合には判定処理を行う。
【０１０９】
また、信号出力判定部２２ｄは、円１６３の内側では、内積値Ｉの符号変化に基づく判定処理を行い、円１６１の内側では、ベクトルＶｐの大きさに基づく判定処理を行う。なお、ベクトルＶｐの大きさと比較される閾値、すなわち、円１６１の半径や、円１６３の半径は、適宜定めることができる。
【０１１０】
このように、信号出力判定部２２ｄは、ベクトルＶｐの大きさを、信号出力判定処理の開始条件や終了条件として用いることができる。このようにすることで、ベクトルＶｒとベクトルＶｐとの関係に基づく判定処理を適切な領域でのみ行うことができる。
【０１１１】
次に、ベクトルＶｒの算出手順のバリエーションについて図７Ａおよび図７Ｂを用いて説明する。
【０１１２】
図７Ａは、ベクトル算出のバリエーション（その１）を示す図である。なお、図７Ａには、基準部位置Ｒｔ−３、基準部位置Ｒｔ−２、基準部位置Ｒｔ−１および基準部位置Ｒｔを示しており、これらの位置は、すべて経路１７０上にあるものとする。すなわち、基準部位置Ｒは、経路１７０上を移動するものとする。
【０１１３】
ここで、図７Ａには、上記した式（１）に示したように、最新の基準部位置Ｒｔにおける基準部１５の移動方向を示すベクトルＶｒを、最新の基準部位置Ｒｔと、基準部位置Ｒｔの１つ前に取得した基準部位置Ｒｔ−１とで算出する場合を示す（図７Ａの円１７１参照）。
【０１１４】
このように、基準部位置Ｒｔと基準部位置Ｒｔ−１とからベクトルＶｒを算出することとすれば、簡便な処理でベクトルＶｒを算出することができる。また、基準部位置Ｒのサンプリング間隔が十分に短ければ、ベクトルＶｒの精度についても全く問題はない。なお、図７ＡにおけるベクトルＶｒは、基準部位置Ｒｔ−１と基準部位置Ｒｔとを含む直線１７３上のベクトル１７２としてあらわされる。
【０１１５】
図７Ｂは、ベクトル算出のバリエーション（その２）を示す図である。なお、図７Ｂでは、図７Ａと同一の要素には同一の符号を付している。図７Ｂに示す場合、ベクトル算出部２２ｃは、最新の基準部位置Ｒｔにおける基準部１５の移動方向を示すベクトルＶｒの向きを、経路１７０にさらに近づけるように算出する。
【０１１６】
具体的には、ベクトル算出部２２ｃは、基準部位置Ｒｔ−１よりも古い基準部位置Ｒ（たとえば、基準部位置Ｒｔ−２や基準部位置Ｒｔ−３など）をさらに用いてベクトルＶｒを算出する（図７Ｂの楕円１７４参照）。
【０１１７】
たとえば、ベクトル算出部２２ｃは、基準部位置Ｒｔ−２、基準部位置Ｒｔ−１および基準部位置Ｒｔから求めた経路１７０の曲率に基づき、ベクトルＶｒを算出する（図７Ｂに示すベクトル１７５参照）。
【０１１８】
なお、基準部位置Ｒｔ−３、基準部位置Ｒｔ−２および基準部位置Ｒｔ−１から経路１７０の曲率をさらに求め、先に求めた曲率との差を加味してベクトルＶｒを求めることとしてもよい。また、図７Ａにおいていったん算出されたベクトル１７２を、上記した曲率や曲率の変化に基づいて補正することで、ベクトルＶｒを求めることとしてもよい。
【０１１９】
このように、３つ以上の基準部位置Ｒを用いてベクトルＶｒを算出することで、ベクトルＶｒの精度をさらに向上させることができる。
【０１２０】
次に、図３に示したロボット制御装置２０によって実行される処理手順について図８を用いて説明する。図８は、ロボット制御装置２０によって実行される処理手順を示すフローチャートである。
【０１２１】
図８に示すように、出力位置登録部２２ａは、経路情報２３ａを取得し（ステップＳ１０１）、取得した経路情報２３ａに基づいて信号出力位置Ｒを算出する（ステップＳ１０２）。そして、出力位置登録部２２ａは、算出した信号出力位置Ｒを、出力位置情報２３ｂへ登録する。
【０１２２】
つづいて、ロボット制御装置２０は、ロボット１０に対する動作開始指示を行い（ステップＳ１０３）、位置取得部２２ｂは、ロボット１０の基準部１５の位置を取得する（ステップＳ１０４）。また、位置取得部２２ｂは、あらたに取得した位置を用いて履歴情報２３ｃを更新する（ステップＳ１０５）。
【０１２３】
そして、ベクトル算出部２２ｃは、出力位置情報２３ｂおよび履歴情報２３ｃに基づいてベクトル算出処理を行う（ステップＳ１０６）。なお、このベクトル算出処理の詳細な処理手順については、図９を用いて後述する。
【０１２４】
つづいて、信号出力判定部２２ｄは、ベクトル算出部２２ｃによって算出されたベクトルＶｒおよびベクトルＶｐに基づいて通知信号を出力するか否かを判定する。たとえば、信号出力判定部２２ｄは、ベクトルＶｒとベクトルＶｐとの内積値Ｉが０より大きいか否かを判定する（ステップＳ１０７）。なお、ステップＳ１０７では、内積値Ｉが０以上であるか否かを判定することとしてもよい。
【０１２５】
そして、内積値Ｉが０より大きい場合には（ステップＳ１０７，Ｙｅｓ）、通知信号の出力を行う（ステップＳ１０８）。なお、ステップＳ１０７の判定条件を満たさない場合には（ステップＳ１０７，Ｎｏ）、ステップＳ１０４以降の処理を繰り返す。
【０１２６】
つづいて、信号出力判定部２２ｄから通知信号を受けた指示部２２ｅは、ロボット１０に対して所定の作業の実行指示を行う（ステップＳ１０９）。また、ロボット制御装置２０は、ロボット１０の基準部１５の位置が終了位置にきたか否かを判定する（ステップＳ１１０）。
【０１２７】
そして、ロボット１０の基準部１５の位置が終了位置にきた場合には（ステップＳ１１０、Ｙｅｓ）、ロボット制御装置２０は、ロボット１０に対して動作終了指示を行い（ステップＳ１１１）、処理を終了する。なお、ステップＳ１１０の判定条件を満たさない場合には（ステップＳ１１０，Ｎｏ）、ステップＳ１０４以降の処理を繰り返す。
【０１２８】
なお、図８に示すステップＳ１０７では、信号出力判定部２２ｄが、図５Ａに示した判定処理を行う場合について例示したが、図５Ｂ、図５Ｃ、図６Ａ、図６Ｂあるいは図６Ｃの判定処理を行うこととしてもよい。
【０１２９】
次に、図８のステップＳ１０６に示したベクトル算出処理の詳細な処理手順について図９を用いて説明する。図９は、ベクトル算出処理の処理手順を示すフローチャートである。
【０１３０】
ベクトル算出部２２ｃは、出力位置情報２３ｂから該当する信号出力位置Ｐの位置を読み出すとともに（ステップＳ２０１）、履歴情報２３ｃを取得する（ステップＳ２０２）。なお、ステップＳ２０１とステップＳ２０２との順序は逆にしてもよく、ステップＳ２０１とステップＳ２０２とを並列処理してもよい。
【０１３１】
つづいて、ベクトル算出部２２ｃは、上記した式（１）を用いてベクトルＶｒを算出するとともに（ステップＳ２０３）、上記した式（２）を用いてベクトルＶｐを算出し（ステップＳ２０４）、リターンする。なお、ステップＳ２０３とステップＳ２０４との順序は逆にしてもよく、ステップＳ２０３とステップＳ２０４とを並列処理してもよい。
【０１３２】
上述したように、実施例１では、出力位置登録部が、通知信号を出力すべき位置を示す信号出力位置（Ｐ）を登録し、位置取得部が、ロボットにおける基準部の位置を示す基準部位置（Ｒ）を取得する。また、実施例１では、ベクトル算出部が、基準部位置（Ｒ）における基準部の速度を示す第１のベクトル（Ｖｒ）と、信号出力位置（Ｐ）および基準部位置（Ｒ）間の相対位置を示す第２のベクトル（Ｖｐ）とを算出する。
【０１３３】
そして、実施例１では、信号出力判定部が、ベクトル算出部によって算出された第１のベクトル（Ｖｒ）および第２のベクトル（Ｖｐ）に基づいて通知信号を出力するか否かを判定する。
【０１３４】
したがって、実施例１に係るロボット制御装置によれば、仮に、ロボットの基準部位置（Ｒ）が、信号出力位置（Ｐ）を通過しない場合であっても、通知信号の出力を適切に行うことができる。すなわち、実施例１に係るロボット制御装置によれば、通知信号の出力自体が行われない事態や、通知信号の出力タイミングが早すぎたり遅すぎたりする事態を、回避することができる。
【０１３５】
ところで、上述した実施例１では、ロボット制御装置が、ロボットから、基準部位置（Ｒ）のみを取得する場合について説明したが、ロボットの基準部位置（Ｒ）における速度を併せて取得することとしてもよい。そこで、以下に示す実施例２では、ロボット制御装置が、基準部位置（Ｒ）における速度を取得する場合ついて説明する。
【実施例２】
【０１３６】
図１０は、実施例２に係るロボット制御装置２０ａの構成を示すブロック図である。なお、図１０では、実施例１に係るロボット制御装置２０（図３参照）の構成要素に対応する構成要素には同一の符合を付している。また、以下では、実施例１と重複する説明については省略することとする。
【０１３７】
図１０に示すように、実施例２に係るロボット制御装置２０ａは、位置取得部２２ｂの代わりに位置・速度取得部２２ｆを備える点で、実施例１に係るロボット制御装置２０とは異なる。また、実施例２に係るロボット制御装置２０ａは、履歴情報２３ｃを記憶部２３に記憶しない点でも、実施例１に係るロボット制御装置２０とは異なる。
【０１３８】
具体的には、位置・速度取得部２２ｆは、ロボット１０から通信部２１経由で、ロボット１０の最新の基準部位置Ｒｔと、基準部位置Ｒｔにおける基準部１５の速度を取得する。そして、位置・速度取得部２２ｆは、取得した基準部位置Ｒｔおよび速度を、ベクトル算出部２２ｃへ渡す。
【０１３９】
ベクトル算出部２２ｃは、位置・速度取得部２２ｆから受け取った速度を、ベクトルＶｒとしてそのまま採用する。なお、ベクトル算出部２２ｃは、位置・速度取得部２２ｆから受け取った基準部位置Ｒｔに基づき、実施例１と同様の手法で、ベクトルＶｐを算出する。
【０１４０】
このように、ロボット制御装置２０ａが、ロボット１０から基準部位置Ｒｔにおける速度を取得する場合、ロボット１０の基準部１５に速度センサを設けることとすればよい。たとえば、かかる速度センサとしては、光や音といった放射波の反射波を検出し、検出した反射波と放射波との周波数の違いから速度を検出するドップラー効果利用型センサなどを用いることができる。
【０１４１】
そして、実施例２に係るロボット制御装置２０ａによれば、実施例１よりも簡便な処理で、通知信号の出力タイミングを決定することができる。
【０１４２】
なお、上記したロボット制御装置は、たとえば、コンピュータで構成することができる。この場合、制御部は、ＣＰＵ（Central  Processing  Unit）であり、記憶部は、メモリである。また、制御部の各機能は、あらかじめ作成されたプログラムを制御部へロードして実行させることによって実現することができる。
【０１４３】
次に、実施例１および実施例２で用いるロボット１０の例について、図１１Ａおよび図１１Ｂを用いて説明する。図１１Ａは、双腕ロボット１０ａの例を示す図であり、図１１Ｂは、双腕ロボット１０ａの動作例を示す図である。なお、以下では、双腕ロボット１０ａを、人とみたてて説明する。
【０１４４】
図１１Ａに示すように、双腕ロボット１０ａは、旋回する胴部２００を備える。この胴部２００は、腰まわりに回動する。また、胴部２００には、右腕部２０１Ｒと、左腕部２０１Ｌとが接続される。ここで、右腕部２０１Ｒおよび左腕部２０１Ｌは、それぞれ、図２に示すロボット１０に対応する。
【０１４５】
すなわち、右腕部２０１Ｒおよび左腕部２０１Ｌは、肩、肘、手首といった関節を軸として動作する。なお、図１１Ａに示す双腕ロボット１０ａでは、右腕部２０１Ｒの先端に把持機構を備えるロボットハンド２０２が接続されており、一方、左腕部２０１Ｌの先端には吸着機構を備えるロボットハンド２０３が接続されている。
【０１４６】
たとえば、双腕ロボット１０ａは、右腕部２０１Ｒのロボットハンド２０２で所定の物体を把持し、かかる物体を左腕部２０１Ｌのロボットハンド２０３へ持ち替える作業を行う。
【０１４７】
具体的には、右腕部２０１Ｒのロボットハンド２０２で所定の物体を把持した状態でロボットハンド２０２を移動させ、左腕部２０１Ｌのロボットハンド２０３の近傍へ位置付ける。そして、左腕部２０１Ｌのロボットハンド２０３が物体の吸着を完了すると、右腕部２０１Ｒのロボットハンド２０２は、物体を解放する動作を行う。
【０１４８】
なお、右腕部２０１Ｒおよび左腕部２０１Ｌを連動して動作させる場合、右腕部２０１Ｒと、左腕部２０１Ｌとが接触しないように移動制御を行う必要がある。また、このように、複数のロボット１０を連動して動作させる場合、ロボット１０間の連係をスムーズに行うことが好ましい。
【０１４９】
たとえば、図１１Ｂに示すように、右腕部２０１Ｒのロボットハンド２０２が、教示点Ｓｎ−１から教示点Ｓｎへ移動するように制御され、教示点Ｓｎ近傍で待機する左腕部２０１Ｌのロボットハンド２０３が物体３００を吸着する場合について説明する。
【０１５０】
この場合、既に説明したように、教示点Ｓの手前側（図１１Ｂに示すロボットハンド２０２側）には、信号出力位置Ｐｎが設けられる。しかし、ロボットハンド２０２の実際の移動経路２０４は、信号出力位置Ｐｎを通過しない場合がある。
【０１５１】
このような場合であっても、実施例１で説明したロボット制御装置２０や、実施例２で説明したロボット制御装置２０ａを用いることで、ロボットハンド２０２が、信号出力位置Ｐｎへ最接近した時点で、通知信号を出力することが可能となる。そして、かかる通知信号に基づいてロボットハンド２０３の吸着動作を開始すれば、物体３００の受け渡し動作を確実かつスムーズに行うことができる。また、ロボット１０同士の接触を確実に防ぐこともできる。
【０１５２】
このように、各実施例に開示した内容は、種々のロボットシステムに広く適用することができる。また、各実施例では、ロボットの移動が、２次元の移動である場合について説明したが、ロボットの移動が３次元の移動である場合には、ｘｙｚ座標系で表現した座標を用いてベクトル間の内積値や、ベクトルの大きさを算出すればよい。
【０１５３】
さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な態様は、以上のように表しかつ記述した特定の詳細および代表的な実施例に限定されるものではない。したがって、添付の特許請求の範囲およびその均等物によって定義される総括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。
【符号の説明】
【０１５４】
１    ロボットシステム
１０、１０ａ  ロボット
１１    ベース部
１２    ロボットアーム
１３    サーボモータ
１４    ロボットハンド
１５    基準部
２０、２０ａ  ロボット制御装置
２１    通信部
２２    制御部
２２ａ  出力位置登録部
２２ｂ  位置取得部
２２ｃ  ベクトル算出部
２２ｄ  信号出力判定部
２２ｅ  指示部
２２ｆ  位置・速度取得部
２３    記憶部
２３ａ  経路情報
２３ｂ  出力位置情報
２３ｃ  履歴情報
２３ｄ  判定条件情報
３０    外部装置
【図１】
2012096307.tif 000003
【図２】
2012096307.tif 000004
【図３】
2012096307.tif 000005
【図４Ａ】
2012096307.tif 000006
【図４Ｂ】
2012096307.tif 000007
【図４Ｃ】
2012096307.tif 000008
【図４Ｄ】
2012096307.tif 000009
【図５Ａ】
2012096307.tif 000010
【図５Ｂ】
2012096307.tif 000011
【図５Ｃ】
2012096307.tif 000012
【図６Ａ】
2012096307.tif 000013
【図６Ｂ】
2012096307.tif 000014
【図６Ｃ】
2012096307.tif 000015
【図７Ａ】
2012096307.tif 000016
【図７Ｂ】
2012096307.tif 000017
【図８】
2012096307.tif 000018
【図９】
2012096307.tif 000019
【図１０】
2012096307.tif 000020
【図１１Ａ】
2012096307.tif 000021
【図１１Ｂ】
2012096307.tif 000022