(57)【要約】　　　（修正有）【課題】外部機器からの指令によって自由にロボットを動作させることが可能であるとともに、ネットワークを介して他のロボット制御装置、計測制御装置などと通信することにより、ロボットに高度な作業をさせることが可能となるロボット制御装置の通信方法およびロボット制御装置を提供する。【解決手段】外部機器２ａ，２ｂとの通信手段３と、プログラム記憶手段１０３に記憶されているロボットの動作を記述したプログラムを実行するプログラム実行手段１０２からの指示に従って、当該ロボット制御装置１００内部で指令値を生成する指令値生成手段１０４と、この指令値生成手段１０４からの指令値と通信手段３で外部機器２ａ，２ｂより受け取った指令値とを切り替えて、選択した指令値を制御手段１０６，１０７に伝達する切替手段１０５を設けた。【選択図】　　　　図１
2004025428.tif 000002
【特許請求の範囲】
【請求項１】
ロボットを制御するための指令値を与える外部機器と、
ネットワークを介して通信するための通信手段と、
前記ロボットの動作を記述したプログラムを記憶しておくプログラム記憶手段と、
前記プログラム記憶手段に記憶されたプログラムを実行するプログラム実行手段と、
前記プログラム実行手段からの指示に従って当該ロボット制御装置内部で指令値を生成する指令値生成手段と、
前記指令値生成手段の生成した指令値と前記通信手段で外部機器より受け取った指令値の選択・切替を行う切替手段と、
前記切替手段によって選択された指令値に基づいて動作する制御手段と
を備えたロボット制御装置。
【請求項２】
ロボットを制御するための指令値を与える外部機器と、
ネットワークを介して通信するための通信手段と、
前記ロボットの動作を記述したプログラムを記憶しておくプログラム記憶手段と、
前記プログラム記憶手段に記憶されたプログラムを実行するプログラム実行手段と、
前記プログラム実行手段からの指示に従って当該ロボット制御装置内部で指令値を生成する指令値生成手段と、
前記指令値生成手段の生成した指令値を前記通信手段で外部機器より受け取った指令値の補正量で補正する補正手段と、
前記指令値生成手段で生成された指令値、および前記補正手段によって補正された指令値のいずれかに基づいて動作する制御手段と
を備えたロボット制御装置。
【請求項３】
ロボットを制御するロボット制御装置と、前記ロボット制御装置に指令値を与える外部機器とがネットワークを介して接続され、前記ロボットの現在の位置および姿勢や前記指令値を通信するロボット制御装置の通信方法において、
前記ネットワークにつながる各機器毎に固有に割り当てられる番号で、他の機器に割り当てられていないものを選定して、それを自機器に固有の番号として割り当て、それぞれの機器に対して自由に付与される名前として自機器に付与された名前と、前記割り当てられた固有の番号とを、前記ネットワークにつながる他の機器に通知することを特徴とするロボット制御装置の通信方法。
【請求項４】
ロボットを制御するための指令値を与える外部機器とネットワークを介して接続された、通信機能を有するロボット制御装置において、
前記外部機器に対してロボットの現在の状態を通知する通信手段と、
前記外部機器から送られてきた指令値を蓄えておく記憶手段と、
前記ロボットに指令を与えるために、前記記憶手段に蓄えられている指令値を一定の時間間隔毎に読み出す読出手段と
を備えたことを特徴とするロボット制御装置。
【請求項５】
前記読出手段が、前記記憶手段から読み出した指令値の補間機能を有することを特徴とする請求項４記載のロボット制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ロボットを制御するロボット制御装置がネットワークを介して外部機器と通信するロボット制御装置の通信方法およびそのロボット制御装置に関するものである。
【０００２】
【従来の技術】
図６は例えば、日本ロボット学会誌Ｖｏｌ．１２，Ｎｏ．８，ｐｐ１１３７−１１４２に示された、従来のロボット制御装置を示す構成図である。図において、２０はロボット制御装置であり、２１はこのロボット制御装置２０内にあって、ロボットを制御するための指令値などを計算する中央演算処理装置（以下ＣＰＵという）、２２は後述するネットワークを経由して、後述するサーボドライバにその指令値を送るネットワークインタフェース、２３はＣＰＵ２１とネットワークインタフェース２２との間でデータの受け渡しを行うためのデータバス、２４はロボット制御装置２０とサーボドライバを結ぶネットワーク、２５はロボットのサーボモータを駆動するサーボドライバである。２６はこのように構成されたロボット制御装置によって制御されるロボット本体である。
【０００３】
次に動作について説明する。
ロボット制御装置２０内のＣＰＵ２１は、ロボットの逆キネマティクスや軌道補間計算を行い、サーボドライバ２５への指令値を生成する。ＣＰＵ２１で生成された指令値は、データバス２３を通してネットワークインタフェース２２に送られる。ネットワークインタフェース２２に送られた指令値は、ネットワーク２４を介してサーボドライバ２５に送られ、サーボドライバ２５は指令値の通りにロボット本体２６内のサーボモータを回転させることによってロボットが動作する。
【０００４】
また、図７は例えば特開平６−２６２５５８号公報に示された、従来のロボット制御装置の通信方法を示す構成図である。図において、２７はロボットであり、２８はこのロボット２７を制御するロボット制御装置、２９はこのロボット制御装置２８に接続された外部計算機である。また、３０および３２はこの外部計算機２９とロボット制御装置２８との間で指令値を通信するパラレルインタフェース、３１および３３はロボット制御装置２８と外部計算機２９の間でコマンドを通信するシリアルインタフェースである。
【０００５】
次に動作について説明する。
外部計算機２９は、ロボット制御装置２８に接続されており、ロボット２７の各関節の次の移動点までの速度データ（指令値）を求める。この速度データは、例えばパラレルインタフェース３０、３２を通してロボット制御装置２８から送られてくるロボット２７の各関節角度に基づいて計算される。ロボット制御装置２８は外部計算機２９から出力された速度データをパラレルインタフェース３０、３２を通して受け取った後、それをロボット２７に出力してロボット２７の各関節を速度データによって動作させる。
【０００６】
【発明が解決しようとする課題】
従来のロボット制御装置は以上のように構成されているので、ロボット制御装置以外の機器をネットワークにつないで指令値をロボットに与える場合、指令値を生成する機器から直接ネットワークを介してサーボドライバに指令値を与えるため、ロボットの速度オーバーや可動範囲外などのチェックを指令値を出す機器内で行わなければならず、指令値の生成が容易でないという問題点があった。
【０００７】
また、外部機器から指令値を受け取る場合、パラレルインタフェースなどを用いて通信を行っているため、１対１でしか通信ができなかった。
【０００８】
また、ロボット制御装置内部で生成した指令値と、ネットワークに接続された他の機器から送られてきた指令値を容易に切り替えられないという問題点があった。
【０００９】
また、ネットワークにつながった機器にはあらかじめ機器固有の番号をつけておかなければならないので、機器が多くなると番号の管理が困難になるなどの問題点があった。
【００１０】
この発明は上記のような問題点を解消するためになされたもので、外部機器からの指令によって自由にロボットを動作させることが可能であるとともに、ネットワークを介して他のロボット制御装置、計測制御装置などと通信することにより、ロボットに高度な作業をさせることが可能となるロボット制御装置の通信方法およびロボット制御装置を提供することを目的とする。
【００１１】
【課題を解決するための手段】
この発明に係るロボット制御装置は、外部機器との通信手段と、プログラム記憶手段に記憶されているロボットの動作を記述したプログラムを実行するプログラム実行手段からの指示に従って、当該ロボット制御装置内部で指令値を生成する指令値生成手段と、この指令値生成手段からの指令値と通信手段で外部機器より受け取った指令値とを切り替えて、選択した指令値を制御手段に伝達する切替手段を設けたものである。
【００１２】
この発明に係るロボット制御装置は、指令値生成手段の生成した指令値を直接、あるいはその指令値を通信手段が外部機器より受け取った指令値の補正量で補正して、制御手段に供給する補正手段で代替したものである。
【００１３】
この発明に係るロボット制御装置の通信方法は、ネットワークにつながる各機器毎に固有の番号の割り当てを自動的に行い、各機器に自由に付与される名前として自機器に付与された名前と、自機器に割り当てられた固有の番号とを、ネットワークにつながった各機器に通知するようにしたものである。
【００１４】
この発明に係るロボット制御装置は、通信手段が外部機器より受け取った指令値を蓄えておく記憶手段と、この記憶手段から一定の時間間隔毎に指令値の読み出しを行う読出手段を設けたものである。
【００１５】
この発明に係るロボット制御装置は、記憶手段から読み出した指令値の補間機能を読出手段に持たせたものである。
【００１６】
【発明の実施の形態】
実施の形態１．
図１はこの発明の実施の形態１によるロボット制御装置を示す構成図である。図において、１００は当該ロボット制御装置であり、１はこのロボット制御装置１００によって制御されるロボットである。２ａ、２ｂはロボット１の指令値を計算してそれをロボット制御装置１００に与える、外部機器としてのパーソナルコンピュータ、３はこのロボット制御装置１００とパーソナルコンピュータ２ａ、２ｂを接続し、通信を可能とするネットワークである。なお、４はロボット制御のためのプログラムなどを保持して、別途ロボット制御装置１００に接続されたパーソナルコンピュータである。
【００１７】
また、ロボット制御装置１００内において、１０１はネットワーク３に接続されて、このロボット制御装置１００がそれを介してパーソナルコンピュータ２ａおよび２ｂと通信するための通信手段としてのネットワーク通信部であり、１０２はロボット１の動作を記述したプログラムを実行する、プログラム実行手段としてのプログラム実行部、１０３はそのプログラムを記憶しておくプログラム記憶手段としてのプログラム記憶部である。１０４はプログラム実行部１０２からの指示に従って当該ロボット制御装置１００内部の指令値を生成する、指令値生成手段としての内部指令値生成部であり、１０５はプログラム実行部１０２からの指示に従って、内部指令値生成部１０４からの指令値とネットワーク通信部１０１で受け取った指令値を切り替えてその一方を選択する、切替手段としての指令値選択部である。１０６はロボットの現在の位置姿勢を管理したり、指令値選択部１０５から出力された指令値を後述するサーボドライバに与えたりするロボット状態チェック部、１０７はロボット１を動作させるサーボドライバであり、これらロボット状態チェック部１０６およびサーボドライバ１０７は指令値選択部１０５で選択された指令値に基づいて動作する制御手段を形成している。
【００１８】
次に動作について説明する。
まず、プログラム実行部１０２はプログラム記憶部１０３またはパーソナルコンピュータ４からプログラムを読み出してそれを実行する。ここでは、例えば次のようなロボット１を動作させるプログラムが実行される場合を考える。
【００１９】
ｍｏｖｅ　Ａ
ｃｏｍ　２ａ
ｎｅｔ＿ｏｎ
ｃｏｍ　２ｂ
ｎｅｔ＿ｏｎ
ｍｏｖｅ　Ｂ
【００２０】
ここで、ｍｏｖｅ　Ａ、ｍｏｖｅ　Ｂはロボット１の位置および姿勢を位置姿勢ＡまたはＢに移動させるコマンド、ｃｏｍは通信相手を選択するコマンド、ｎｅｔ＿ｏｎはコマンドｃｏｍで選択した通信相手から指令値をネットワーク３経由でもらうコマンドである。このようなプログラムを実行する場合、プログラム実行部１０２はまず、ｍｏｖｅ　Ａというコマンドを実行し、ロボット１を位置姿勢Ａまで動作させる。このときプログラム実行部１０２は内部指令値生成部１０４に指令値の生成を指示し、内部指令値生成部１０４はロボット１が位置姿勢Ａに動くまでの動作のための指令値を生成する。また、プログラム実行部１０２は指令値選択部１０５に対しても、ロボット１への指令値として内部指令値生成部１０４が生成した指令値を用いるように指示を出す。
【００２１】
このようにして、ｍｏｖｅ　Ａというコマンドを実行している間は、指令値は内部指令値生成部１０４で生成されたものが、指令値選択部１０５を経由してロボット状態チェック部１０６に渡される。ロボット状態チェック部１０６では、現在のロボット１の位置・姿勢と指令値選択部１０５から渡された指令値をもとに、ロボット１の動作速度が適正範囲内であるか、位置・姿勢が動作範囲内であるかなどのチェックを行う。チェックの結果が正常であればその指令値はサーボドライバ１０７に与えられ、サーボドライバ１０７がロボット１内のサーボモータを駆動してロボット１が動作する。
【００２２】
ロボット１が位置姿勢Ａまで移動した後、プログラム実行部１０２はｃｏｍ　２ａのコマンドを実行し、通信相手としてパーソナルコンピュータ２ａを選択する。次に、ｎｅｔ＿ｏｎのコマンドが実行され、プログラム実行部１０２は指令値選択部１０５に対して、ネットワーク３経由で送られてくる指令値を有効にするように指示を出す。指令値選択部１０５はその指示を受け取ると、内部指令値生成部１０４で生成された指令値を使うのをやめ、ネットワーク通信部１０１を経由して得られた指令値をロボット状態チェック部１０６に送り出す。なお、ネットワーク通信部１０１はロボット制御装置１００の外部のネットワーク３とつながっており、ネットワーク３とつながったパーソナルコンピュータ２ａと通信を行って、ロボット１を制御するための指令値を受け取る。
【００２３】
パーソナルコンピュータ２ａから通信終了のコマンドがネットワーク３経由でネットワーク通信部１０１に送られてくると、指令値選択部１０５はネットワーク３経由での指令値の受信を終了するとともに、通信が終了したことをプログラム実行部１０２に知らせる。
【００２４】
プログラム実行部１０２は通信が終了すると、プログラム記憶部１０３またはパーソナルコンピュータ４から読み出した次のコマンドｃｏｍ　２ｂを実行し、次の通信相手としてパーソナルコンピュータ２ｂを選択する。次にプログラム実行部１０２はコマンドｎｅｔ＿ｏｎを実行し、パーソナルコンピュータ２ｂとの通信を開始し、ネットワーク３経由で指令値を受け取り、それに基づいてロボット１を動作させる。
【００２５】
パーソナルコンピュータ２ｂから通信終了のコマンドがネットワーク３経由でネットワーク通信部１０１に送られてくると、指令値選択部１０５はネットワーク３経由での指令値の受信を終了するとともに、通信が終了したことをプログラム実行部１０２に知らせる。
【００２６】
プログラム実行部１０２は通信が終了すると、プログラム記憶部１０３またはパーソナルコンピュータ４から次のコマンドｍｏｖｅ　Ｂを読み出して、ロボット１を位置姿勢Ｂに移動させる。
【００２７】
上記のようにロボット制御装置１００の内部で生成した指令値と、ネットワーク３経由で送られてきた指令値とを切り替えてロボット１を動作させるようにすることによって、大まかな動作はロボット制御装置１００内部の指令値生成方式によって行い、細かい動作は外部から指令値を与えて動作させるということが可能となる。
【００２８】
また、コマンドによって切り替えられるようにしたことにより、自由に内部指令値と外部指令値の切り替えが可能となる。
【００２９】
なお、上記実施の形態１では、パーソナルコンピュータ４またはプログラム記憶部１０３からコマンドを読み出すものを示したが、オペレータがコマンドをパーソナルコンピュータ４などから１つずつ入力してゆくようにしても良いことはいうまでもない。
【００３０】
また、上記実施の形態１では、プログラム記憶部１０３やパーソナルコンピュータ４から与えられたコマンドによって指令値が切り替えられる場合について説明したが、ティーチングボックスなど他の外部機器からの指令によって切り替えるようにしても良い。
【００３１】
また、上記実施の形態１では、ネットワーク３につながったパーソナルコンピュータ２ａ、２ｂから外部指令値を受け取るものとしたが、パーソナルコンピュータ以外の機器、例えば、他のロボット制御装置、ワークステーションなどから受け取るようにしても良い。
【００３２】
実施の形態２．
図２はこの発明の実施の形態２によるロボット制御装置を示す構成図である。図において、図１と相当部分には同一符号を付して詳細な説明を省略する。１０８はプログラム実行部１０２からの指示に従って、内部指令値生成部１０４の生成した指令値をそのまま、あるいは内部指令値生成部１０４の生成した指令値にネットワーク通信部１０１で受け取ったパーソナルコンピュータ２ａあるいは２ｂからの指令値の補正量を合成して補正したものを、ロボット状態チェック部１０６に送出する補正手段としての指令値合成部である。この実施の形態２は指令値選択部１０５をこの指令値合成部１０８によって代替した点で実施の形態１とは異なっている。
【００３３】
次に動作について説明する。
まず、プログラム実行部１０２はプログラム記憶部１０３またはパーソナルコンピュータ４からプログラムを読み出してそれを実行する。ここでは、例えば次のようなロボット１を動作させるプログラムが実行される場合を考える。
【００３４】
ｍｏｖｅ　Ａ
ｃｏｍ　２ａ
ｍｏｖｅ　Ｃ　ｗｉｔｈ　ｎｅｔ
ｃｏｍ　２ｂ
ｍｏｖｅ　Ｄ　ｗｉｔｈ　ｎｅｔ
ｍｏｖｅ　Ｂ
【００３５】
ここで、ｍｏｖｅ　Ｃ　ｗｉｔｈ　ｎｅｔ、ｍｏｖｅ　Ｄ　ｗｉｔｈ　ｎｅｔは指令値の補正量をネットワーク３経由でもらうコマンドであり、その他のコマンドは実施の形態１のそれらと同様である。このようなプログラムを実行する場合、プログラム実行部１０２はまず、ｍｏｖｅ　Ａというコマンドを実行し、ロボット１を位置姿勢Ａまで動作させる。このときプログラム実行部１０２は内部指令値生成部１０４に指令を出し、内部指令値生成部１０４はロボットの手先が位置姿勢Ａに動くまでの動作の指令値を生成する。また、プログラム実行部１０２は指令値合成部１０８に対して、ロボット１への指令値として内部指令値生成部１０４が生成した指令値のみを用いるように指示を出す。このようにして、ｍｏｖｅ　Ａというコマンドを実行している間、指令値は内部指令値生成部１０４で生成されたものがそのまま、指令値合成部１０８を経由してロボット状態チェック部１０６に与えられる。
【００３６】
ロボットが位置姿勢Ａまで移動した後、プログラム実行部１０２はｃｏｍ　２ａのコマンドで通信相手を選択し、さらに次のコマンドｍｏｖｅ　Ｃ　ｗｉｔｈｎｅｔを実行する。このコマンドが実行されると、内部指令値生成部１０４は位置姿勢Ｃにロボット１が動くように指令値を生成する。また、プログラム実行部１０２は指令値合成部１０８にネットワーク３経由で送られてくる指令値の補正量を有効にするように指示を出す。指令値合成部１０８はこの指示を受け取ると、内部指令値生成部１０４で生成された指令値に、ネットワーク通信部１０１を経由して得られた指令値の補正量を合成して補正し、補正された指令値をロボット状態チェック部１０６に送り出す。なお、ネットワーク通信部１０１はロボット制御装置１００の外部のネットワーク３とつながっており、ネットワーク３とつながったパーソナルコンピュータ２ａと通信を行って、ロボット１を制御するための指令値の補正量を受け取る。
【００３７】
パーソナルコンピュータ２ａから通信終了のコマンドがネットワーク３経由でネットワーク通信部１０１に送られてくるか、内部指令値生成部１０４が位置姿勢Ｃの指令値を生成すると、指令値合成部１０８はネットワーク３経由での指令値の補正量の受信を終了する。
【００３８】
内部指令値生成部１０４が位置姿勢Ｃの指令値を出し終わるとプログラム実行部１０２はプログラム記憶部１０３またはパーソナルコンピュータ４から次のコマンドｃｏｍ　２ｂを読み出し、次の通信相手としてパーソナルコンピュータ２ｂを選択する。以下の動作は前述のコマンドｍｏｖｅ　Ｃ　ｗｉｔｈ　ｎｅｔを実行する場合と同様に、ネットワーク３経由でパーソナルコンピュータ２ｂの送出する指令値の補正量を受け取りながらロボット１を位置姿勢Ｄへ移動させる。
【００３９】
上記のようにロボット制御装置１００の内部で生成した指令値だけで動作するモードと、ネットワーク３経由で送られてきた指令値の補正量を合成して動作するモードを持つことにより、大まかな動作はロボット内部の指令値生成方式によって行い、細かい動作は外部から指令値の補正量で補正して動作させるということが可能となる。
【００４０】
また、動作の概略の軌道はロボット制御装置１００が生成し、細かい動きだけを外部機器から与えればよいので、指令値の生成が容易になる。
【００４１】
また、コマンドによって切り替えられるようにしたことにより、内部指令値のみで動くモードと外部から補正量を与えるモードの切り替えが自由かつ容易になる。
【００４２】
なお、上記実施の形態２では、パーソナルコンピュータ４またはプログラム記憶部１０３からコマンドを読み出すものを示したが、オペレータがコマンドをパーソナルコンピュータ４などから１つずつ入力してゆくようにしても良いことはいうまでもない。
【００４３】
また、上記実施の形態２では、プログラム記憶部１０３やパーソナルコンピュータ４から与えられたコマンドによって動作モードが切り替えられる場合について説明したが、ティーチングボックスなど他の外部機器からの指令によって切り替えられるようにしても良い。
【００４４】
また、上記実施の形態２では、ネットワーク３につながったパーソナルコンピュータ２ａ、２ｂから指令値の補正量を受け取るものとしたが、パーソナルコンピュータ以外の機器、例えば、他のロボット制御装置、ワークステーションなどから受け取るようにしても良い。
【００４５】
実施の形態３．
図３はこの発明の実施の形態３によるロボット制御装置の通信方法における、新規に立ち上がった機器の通信手順を示すフローチャート、図４は同じくすでに稼働中の機器の通信手順を示すフローチャートであり、１つのネットワークにつながる複数のロボット制御装置、画像計測装置などの各機器のそれぞれに固有の番号を自動的に割り振る方法と、各機器につけられた名前と自動的に割り振られた機器固有の番号との対応をとる方法について示している。
【００４６】
新たにネットワークにつながれた機器の電源が投入されたとき、当該機器は次のようにしてネットワーク内における自分に固有の番号を決定し、さらに、ネットワークにつながっている他の機器の名前とそれらに固有の番号とを対応付けたデータベースを作成する。
【００４７】
電源が投入されると、図３のステップＳＴ２１に示すとおり、まず、自分のＩＤ（ネットワーク内での固有の番号）を１と仮定する。次にステップＳＴ２２において、自分のＩＤと同じＩＤを有する他の機器が存在するかどうかを調べる。同じＩＤを有する機器が存在する場合はステップＳＴ２３に進み、自分のＩＤを２にインクリメントしてステップＳＴ２２に戻り、再び、同じＩＤを持つ機器が存在するか否かを調べる。
【００４８】
ステップＳＴ２２で同じＩＤを持った機器が存在しないことが検出された場合には、ステップＳＴ２４においてそのＩＤを自分のＩＤに割り当てる。次にステップＳＴ２５に進んで、あらかじめ設定されている自分の機器名、例えば、”ｒｏｂｏｔ＿１”という名前と、ステップＳＴ２４で割り当てられた自分のＩＤとを、ネットワークにつながる全ての機器に対して通知する。
【００４９】
ネットワークにつながった各機器は上記ＩＤと機器名を受け取ると、図４に示す手順にしたがって自分のＩＤと機器名を返信する。すなわち、まずステップＳＴ３１において、新しくつながった機器からの機器名とそのＩＤとを受信し、それを機器名とＩＤとの対応を記述したデータベースに追加する。次にステップＳＴ３２に進み、送信元の機器に対して自分の機器名とＩＤを送り返す。
【００５０】
新しくネットワークにつながった機器は図３のステップＳＴ２６において、ネットワーク上の他の機器から送り返されてきた他の機器の機器名とＩＤを受信して、このネットワークにつながっている各機器の名前とＩＤの対応を記述したデータベースを作成する。
【００５１】
以上の手順によって、ネットワーク上の機器が単なる番号ではなく、”ｒｏｂｏｔ＿１”などの人間にもなじみやすい名前を用いて管理できるため、ネットワーク上の機器の識別が容易になる。また、ＩＤが自動的に割り当てられるため、ネットワークに接続される機器が増えた場合に、同じＩＤを重複して割り当てるという問題がなくなる。
【００５２】
実施の形態４．
図５はこの発明の実施の形態４よるロボット制御装置を示す構成図であり、図１と相当部分には同一符号を付してその説明を省略する。図において、１０９はネットワーク３を経由してネットワーク通信部１０１が外部機器としてのパーソナルコンピュータ２より受け取った指令値を蓄える記憶手段としての指令値バッファであり、１１０はこの指令値バッファ１０９に蓄えられている指令値を一定時間間隔毎に読み出して、その指令値とロボット１の現在の姿勢に基づいてより細かな指令値を補間して計算し、それを外部指令値として指令値選択部１０５に与える、読出手段としての指令値補間部である。
【００５３】
次に動作について説明する。
まず、プログラム実行部１０２はプログラム記憶部１０３またはパーソナルコンピュータ４からプログラムを読み出してそれを実行する。ここでは、例えば次のようなロボット１を動作させるプログラムが実行される場合を考える。
【００５４】
ｍｏｖｅ　Ａ
ｃｏｍ　２
ｎｅｔ＿ｏｎ
ｍｏｖｅ　Ｂ
【００５５】
ここで、ｍｏｖｅ　Ａ、ｍｏｖｅ　Ｂはロボット１の位置及び姿勢を位置姿勢ＡまたはＢに移動させるコマンド、ｃｏｍは通信相手を選択するコマンド、ｎｅｔ＿ｏｎはコマンドｃｏｍで選択した通信相手から指令値をネットワーク３経由でもらうコマンドである。このようなプログラムを実行する場合、プログラム実行部１０２はまず、ｍｏｖｅ　Ａというコマンドを実行し、ロボット１を位置姿勢Ａまで動作させる。このとき、プログラム実行部１０２は内部指令値生成部１０４に指令を出し、内部指令値生成部１０４はロボット１が位置姿勢Ａに動くまでの動作の指令値を生成する。また、プログラム実行部１０２は指令値選択部１０５にも、ロボット１への指令値として内部指令値生成部１０４が生成した指令値を用いるように指示を出す。
【００５６】
このようにして、ｍｏｖｅ　Ａというコマンドを実行している間、指令値は内部指令値生成部１０４で生成され、指令値選択部１０５を経由してロボット状態チェック部１０６に渡される。ロボット状態チェック部１０６では、現在のロボット１の位置姿勢と指令値選択部１０５から渡された指令値をもとに、ロボット１の動作速度が適正範囲内にあるか、位置姿勢が動作範囲内にあるかなどのチェックを行う。チェックの結果が適正であればその指令値はサーボドライバ１０７に与えられ、サーボドライバ１０７がロボット１内のサーボモータを駆動してロボット１が動作する。
【００５７】
ロボットが位置姿勢Ａまで移動した後、プログラム実行部１０２はｃｏｍ　２のコマンドを実行し、指令値をもらう通信相手としてパーソナルコンピュータ２を選択する。次に、ｎｅｔ＿ｏｎというコマンドを実行し、プログラム実行部１０２は指令値選択部１０５にネットワーク３経由で送られてくる指令値を有効にするように指示する。指令値選択部１０５はその指示を受け取ると、内部指令値生成部１０４で生成された指令値を使うのをやめ、ネットワーク通信部１０１を経由して得られた指令値に基づく外部指令値をロボット状態チェック部１０６に送り出す。
【００５８】
すなわち、ネットワーク通信部１０１はロボット制御装置１００の外部のネットワーク３とつながっており、ネットワーク３とつながったパーソナルコンピュータ２などの外部機器と通信を行って、ロボット１を制御するための指令値を受け取る。このネットワーク通信部１０１で受信されたパーソナルコンピュータ２からの指令値は、指令値バッファ１０９に送られて一旦蓄えられる。指令値補間部１１０はこの指令値バッファ１０９に蓄えられた指令値を一定時間間隔毎に読み出し、その指令値とロボット１の現在の位置姿勢から、より細かい指令値を補間によって計算し、その指令値を外部指令値として指令値選択部１０５に送る。
【００５９】
パーソナルコンピュータ２から通信終了のコマンドがネットワーク３経由でネットワーク通信部１０１に送られてくると、指令値選択部１０５はネットワーク３経由での指令値の受信を終了するとともに、通信が終了したことをプログラム実行部１０２に知らせる。
【００６０】
プログラム実行部１０２は通信が終了すると、プログラム記憶部１０３またはパーソナルコンピュータ４から読み出した次のコマンドｍｏｖｅ　Ｂを実行してロボット１を位置姿勢Ｂに移動させる。
【００６１】
ここで、サーボドライバ１０７への指令値は、通常非常に短い一定周期毎に与える必要があるが、上記のように指令値バッファ１０９と指令値補間部１１０を設けることにより、一定周期毎にネットワーク３経由で指令値が送られてこなくても、指令値補間部１１０にて必要な周期で指令値バッファ１０９より指令値を読み出すことによってそれに対応することができ、さらに、その指令値補間部１１０が指令値を補間してくれるので、より滑らかなロボット１の動作が可能になる。
【００６２】
なお、上記実施の形態４では、ネットワーク３経由の外部指令値と、内部指令値生成手段１０４で生成した内部指令値とを、指令値選択部１０５で切り替えてロボット状態チェック部１０６に与えるものを示したが、指令値選択部１０５の代わりに実施の形態２における指令値合成部１０８を用いて、ネットワーク３経由で受信した指令値の補正量を、外部からの指令値として指令値バッファ１０９に蓄え、それを指令値補間部１１０によって一定時間間隔毎に読み出して内部指令値に合成し、その補正された指令値をロボット状態チェック部１０６に与えるようにしても良い。
【００６３】
【発明の効果】
以上のように、この発明によれば、切替手段によって、ロボット制御装置内部の指令値生成手段で生成した指令値と、通信手段で外部機器より受け取った指令値との切替・選択を行い、選択された指令値でロボットの制御・駆動を行うように構成したので、ロボットの大まかな動作については内部で生成した指令値に従って、細かな動作については外部から与えられる指令値に従って、それぞれ制御することができ、多様な動作が可能となる効果がある。
【００６４】
この発明によれば、補正手段を設けて、ロボット制御装置内部の指令値生成手段で生成した指令値のみで動作するモードと、その指令値を外部機器より通信手段が受け取った指令値の補正量で補正した指令値で動作するモードのいずれかで動作するように構成したので、ロボットの大まかな動作については内部で生成した指令値に従って、細かな動作については内部で生成した指令値を外部から与えられる補正量で補正した指令値に従って、それぞれ制御することができ、多様な動作が可能となる効果がある。
【００６５】
この発明によれば、ネットワークにつながる各機器毎に固有の番号の割当を自動的に行い、当該番号と、それとは別に自由に付けられた自機器の名前をネットワークにつながる他の機器に通知するように構成したので、それぞれの機器には人間になじみやすい名前を自由につけることが可能となって、機器の管理を容易化できる効果がある。
【００６６】
この発明によれば、通信手段を介して外部機器より受け取った指令値を記憶手段に蓄えておき、読出手段によって一定の時間間隔毎にこの記憶手段に蓄えられている指令値を読み出して、ロボットの制御に用いるように構成したので、一定時間毎に外部機器からロボット制御装置に指令値を送信する必要がなくなり、通信の自由度が高くなる効果がある。
【００６７】
この発明によれば、その読出手段が記憶手段から読み出した指令値の補間を行うように構成したので、ロボットをより滑らかに動作させることが可能になる効果がある。
【図面の簡単な説明】
【図１】この発明の実施の形態１によるロボット制御装置を示す構成図である。
【図２】この発明の実施の形態２によるロボット制御装置を示す構成図である。
【図３】この発明の実施の形態３によるロボット制御装置の通信方法の新たに立ち上がった機器の動作を示すフローチャートである。
【図４】この発明の実施の形態３によるロボット制御装置の通信方法のすでに稼働中の機器の動作を示すフローチャートである。
【図５】この発明の実施の形態４によるロボット制御装置を示す構成図である。
【図６】従来のロボット制御装置を示す構成図である。
【図７】従来のロボット制御装置の通信方法を示す構成図である。
【符号の説明】
１　ロボット、２，２ａ，２ｂ　パーソナルコンピュータ（外部機器）、３　ネットワーク、１００　ロボット制御装置、１０１　ネットワーク通信部（通信手段）、１０２　プログラム実行部（プログラム実行手段）、１０３　プログラム記憶部（プログラム記憶手段）、１０４　内部指令値生成部（指令値生成手段）、１０５　指令値選択部（切替手段）、１０６　ロボット状態チェック部（制御手段）、１０７　サーボドライバ（制御手段）、１０８　指令値合成部（補正手段）、１０９　指令値バッファ（記憶手段）、１１０　指令値補間部（読出手段）。
【図１】
2004025428.tif 000003
【図２】
2004025428.tif 000004
【図３】
2004025428.tif 000005
【図４】
2004025428.tif 000006
【図５】
2004025428.tif 000007
【図６】
2004025428.tif 000008
【図７】
2004025428.tif 000009