(57)【要約】【課題】選択されたプログラムに基づいたロボットの動作の移動軌跡を使用者にとって理解し易い形態で表示させることができるロボットシステムを提供する。【解決手段】制御装置は、仮想動作開始指令が与えられると第１の仮想制御を実行する。第１の仮想制御が行われることにより、パソコンのディスプレイ１４には、ロボット２のエンドエフェクタ８の初期位置を起点とし、選択したプログラムに記述された最初の５個の教示目標点Ｐ１〜Ｐ５を通るロボット２の動作の軌跡が、その移動順番が分かる状態で表示される。【選択図】図３
2011045937.tif 000002
【特許請求の範囲】
【請求項１】
選択指令、実動作開始指令および仮想動作開始指令を入力する入力手段と、
表示手段と、
ロボットを動作させるためのプログラムを記憶する記憶手段と、
入力される前記選択指令に従い前記記憶手段に記憶されたプログラムの中から１つのプログラムを選択する選択手段と、
前記選択されたプログラムを実行して前記ロボットの動作を自動制御する実動作制御手段と、
前記選択されたプログラムに基づいた前記ロボットの動作を仮想的に前記表示手段に表示させる仮想動作制御手段とを備え、
前記実動作制御手段は、前記実動作開始指令が入力されることにより、前記ロボットの自動制御を開始し、
前記仮想動作制御手段は、前記仮想動作開始指令が入力されることにより、前記選択されたプログラムを最初のステップから順に実行し、その結果として前記ロボットの教示目標点を所定の個数取得した時点で当該プログラムの実行を停止し、前記ロボットの初期位置の座標から取得した最後の教示目標点の座標までの移動軌跡をその移動順番が分かるように前記表示手段に表示させる第１の仮想制御を実行することを特徴とするロボットシステム。
【請求項２】
前記入力手段は、前記第１の仮想制御の実行が終了するまでの期間は前記実動作開始指令の入力を受け付けないことを特徴とする請求項１記載のロボットシステム。
【請求項３】
前記仮想動作制御手段は、
前記第１の仮想制御の実行を開始した時点または終了した時点から所定の時間が経過するまでの間に前記実動作開始指令が入力されない場合には、前記プログラムを前回停止させたステップから順に実行し、その結果として前記ロボットの教示目標点を所定の個数取得した時点で当該プログラムの実行を停止し、前回取得した最後の教示目標点の座標から今回取得した最後の教示目標点の座標までの前記ロボットの移動軌跡をその移動順番が分かるように前記表示手段に表示させる第２の仮想制御を実行し、
前記第２の仮想制御の実行を開始した時点または終了した時点から所定の時間が経過するまでの間に前記実動作開始指令が入力されない場合には、前記第２の仮想制御を再び実行し、
前記第２の仮想制御の実行中に前記プログラムを全て実行し終えた場合にはその時点で前回取得した最後の教示目標点の座標から今回取得した最後の教示目標点までの前記ロボットの移動軌跡をその移動順番が分かるように前記表示手段に表示させ、
前記第２の仮想制御を実行する際、前回実行した前記第１の仮想制御または前記第２の仮想制御において前記表示手段に表示させた移動軌跡を消去することを特徴とする請求項１または２記載のロボットシステム。
【請求項４】
前記ロボットの現在位置を取得する現在位置取得手段と、
前記現在位置取得手段により取得される現在位置が前記ロボットの初期位置と一致するか否かを判断する位置判断手段と、
前記現在位置に対応した教示目標点を含むプログラムのステップを求める対応ステップ検出手段とを備え、
前記仮想動作制御手段は、
前記現在位置が初期位置と一致すると判断された状態で前記仮想動作開始指令が入力されると、前記第１の仮想制御を実行し、
前記現在位置が初期位置と異なると判断された状態で前記仮想動作開始指令が入力されると、前記対応ステップ検出手段が求めたステップの次のステップが前記プログラムの最初のステップであるとともに前記現在位置取得手段により取得された現在位置が初期位置であると置き換えた上で前記第１の仮想制御を実行することを特徴とする請求項１ないし３のいずれかに記載のロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶手段に記憶されているプログラムの中から１つのプログラムを選択し、その選択されたプログラムを実行してロボットの動作を自動制御するロボットシステムに関する。
【背景技術】
【０００２】
現在のロボットシステムにおいては、作業者（使用者）がティーチングペンダントなどの操作手段を操作し、制御装置内に記憶されたプログラムの中から１つのプログラムを選択し、そのプログラムを実行させることで制御装置によるロボットの自動制御動作が開始されるようになっている。このようなロボットシステムが用いられる例えば工場などでは、その安全対策が行われている。すなわち、自動で動作するロボットと、人またはロボットの周囲に配置される設備などとが干渉しないよう安全性を確保する作業が行われる。ロボットは自動制御動作が開始されると、その後は選択されたプログラムによって設定された軌跡に沿って移動する。従って、作業者がプログラムに基づくロボットの移動軌跡を把握しておけば、上記安全性を容易に確保することができる。つまり、把握している移動軌跡に基づいて、ロボットの周囲にいる作業者自身を含む人がその移動軌跡から離れた安全な場所に移動することができる。
【０００３】
また、自動制御されるロボットが、その周囲に固定的に配置される設備と干渉しないようにティーチング（教示）を行い、その結果に基づいて上記プログラムが作成されている。ところで、ロボットの周囲には、その位置が基本的に変化しない設備だけでなく、その位置が毎回変わる可能性がある設備も配置される。その例としては、例えば付された品番（品種）毎に形状が異なるワークが挙げられる。このワークは、ロボットを自動制御する際、毎回同じ品種のものが用いられるとは限らず、例えば日ごとに品種が異なることがある。このため、異なる形状のワークにそれぞれ対応したプログラムが予め準備されている。従って、作業者がその日に用いられるワークに対応した適切なプログラムを選択すれば、ロボットとワークとの干渉が発生することを防止できる。
【０００４】
操作に慣れた熟練者は、どのプログラムがロボットに対しどのような動作をさせるものであるのかを把握していることが多いので、ロボットの自動制御動作に対する上記安全性を確保する作業を容易に行うことができる。しかし、ロボットシステムの操作は、熟練者だけが行うことはない。例えば、工場内における人事異動などにより、その作業者が突発的に変更されることがある。そうすると、その操作に慣れていない者が操作することも十分に考えられる。通常、操作に慣れていない者は、選択したプログラムがロボットに対しどのような動作をさせるものであるかを把握していない。従って、実際の自動制御動作を開始する前に、通常よりも十分に遅い速度でロボットが動作するように自動制御動作を行って、周囲に配置される設備（ワーク）と干渉しないかどうかを検証する必要がある。この場合、検証作業に多くの時間を要してしまい、その結果、自動制御動作の開始までに多大な時間がかかる。
【０００５】
一方、特許文献１には、ロボットの自動制御動作を開始する前に、プログラムに基づくロボットの動作軌跡（移動軌跡）を画面表示させる技術が開示されている。この技術によれば、作業者は、どのプログラムがロボットをどのように動作させるものであるのかを画面に表示された動作軌跡によって確認し、その確認結果を元に上記した安全性を確保する作業を行うことができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−１４２４８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一般に、上記したようなプログラムに基づく自動制御動作では、少なくとも５０個以上の教示目標点を含む経路を辿ってロボットが移動することになる。従って、特許文献１記載の技術では、多数の教示目標点を含むような長い経路（移動軌跡）が画面に表示されることになる。そうすると、表示された移動軌跡は非常に見難いものとなり、特にロボットの操作に慣れていない作業者にとっては、ロボットがどのような移動軌跡を辿って動作するのかを誤解するおそれがある。また、このような長い移動軌跡を短時間で把握することは難しいため、たとえロボットの移動軌跡を正確に把握できたとしても、多大な時間を要してしまうことになる。
【０００８】
このようなことから特許文献１記載のロボットの移動軌跡の全てを画面表示させる技術では、安全性を確保する作業に多くの時間を要してしまい、自動制御動作を開始するまでに長い時間がかかる可能性があった。一般に、ロボットシステムが用いられる工場などでは、生産性向上のために作業時間の短縮が秒単位で行われている。従って、このように効率作業が重視される場所で用いられるロボットシステムにとっては、自動制御開始までに多大な時間を要するということは、非常に大きな問題であった。
【０００９】
本発明は上記事情に鑑みてなされたものであり、その目的は、選択されたプログラムに基づいたロボットの動作の移動軌跡を使用者にとって理解し易い形態で表示させることができるロボットシステムを提供することにある。
【課題を解決するための手段】
【００１０】
請求項１記載の手段によれば、仮想動作制御手段は、仮想動作開始指令が入力されることにより第１の仮想制御を実行する。この第１の仮想制御では、記憶手段に記憶されたプログラムの中から選択指令に従って選択された１つのプログラムを最初のステップから順に実行する。そして、その結果としてロボットの教示時に予め設定されプログラムに記述されている教示目標座標を表す教示目標点を所定の個数取得した時点でプログラムの実行を停止する。続いて、ロボットの初期位置の座標から取得した最後の教示目標点の座標までの移動軌跡を、その移動順番が分かるように表示手段に表示する。
【００１１】
このような第１の仮想制御により、表示手段には、選択したプログラムに基づいたロボットの動作の軌跡のうち、初期位置から所定個数の教示目標点を順に通って移動する一部の動作に対応した軌跡（一部の移動軌跡）のみが表示される。このため、全ての移動軌跡を表示する従来技術と比較すると、表示手段に表示される移動軌跡が格段に短くなるのでその認識性が向上する。これにより、使用者は、選択したプログラムによってロボットが初期位置からどのような軌跡に沿って移動するのかを短い時間で容易に把握することができる。
【００１２】
そして、実動作制御手段は、実動作開始命令が入力されることにより、選択されたプログラムを実行してロボットの自動制御を開始する。この自動制御を開始する時点でのロボットの位置は、通常は初期位置となっている。従って、上記第１の仮想制御を実行してから実動作制御手段によるロボットの自動制御を開始すれば、把握した一部の移動軌跡を元にロボットの自動制御動作に対する安全性を確保することができる。
【００１３】
この場合、ロボットの移動軌跡の全てを把握していなくてもよい理由は以下のとおりである。すなわち、ロボットの周囲にいる人（例えば使用者）は、ロボットが自動制御開始の時点における位置（初期位置）から最初にどの方向にどのように動くのかが分かれば、自動制御開始直後（最初）の安全を確保することができる。例えば、使用者は、最初に自分がいる方向にロボットが向かってくるような場合には、自分が安全な場所に移動するまで自動制御動作を開始させないことで安全を確保できる。従って、使用者は、最初の動作に対応した移動軌跡さえ把握していれば、ロボットの移動軌跡から離れた安全な位置に回避することが可能となる。このように、本手段は、全ての移動軌跡を表示する従来技術と比較した場合でも、安全性を確保するという点について全く遜色はない。
【００１４】
また、作業者は、把握した移動軌跡に基づいて、選択したプログラムが、そのときに用いられるワークに対応したものであるか否かを判断することができる。そして、例えば、選択したプログラムが上記ワークに対応したものでないと判断した場合には、実際の自動制御動作を開始させずに、正しいプログラムを選択し直すことが可能となる。これにより、ロボットとワークとの干渉を未然に防止することができる。
【００１５】
また、上述したように移動軌跡の把握が短時間で行えるので、その分だけ自動制御開始までの時間を短縮することができる。これにより、例えば次の作業を前倒しで行うことができるなど、生産性の向上にも寄与できる。さらに、このような構成によれば、上記プログラムを作成する者（プログラム開発者）は、自身の作成したプログラムに基づいたロボットの移動軌跡を容易に確認することができるので、プログラムのデバッグ作業などを容易に行うことができる。
【００１６】
請求項２記載の手段によれば、第１の仮想制御の実行が終了するまでの期間は、入力手段が実動作開始指令の入力を受け付けない。つまり、ロボットの動作における一部の移動軌跡を表示手段に表示させてからでないと、ロボットの自動制御は開始されない。このようにすれば、選択したプログラムに基づくロボットの移動軌跡を使用者が把握する機会を確実に与えた上で自動制御を開始することになるので、安全性が一層向上する。
【００１７】
請求項３記載の手段によれば、仮想動作制御手段は、第１の仮想制御の実行を開始した時点または終了した時点から所定の時間が経過するまでの間に実動作開始指令が入力されない場合には、第２の仮想制御を実行する。この第２の仮想制御では、プログラムを前回停止させたステップから順に実行し、その結果として教示目標点を所定の個数取得した時点でプログラムの実行を停止する。そして、前回取得した最後の教示目標点の座標から今回取得した最後の教示目標点の座標までのロボットの移動軌跡を、その移動順番が分かるように表示手段に表示させる。また、この第２の仮想制御を実行する際、前回の仮想制御において表示手段に表示させた移動軌跡は消去されるようになっている。
【００１８】
これにより、表示手段には、選択したプログラムに基づいたロボットの動作の軌跡のうち、前回取得した最後の教示目標点から所定個数の教示目標点を順に通って移動する一部の動作に対応した軌跡のみが表示される。このように、前回表示された一部の移動軌跡の後に続く一部の移動軌跡のみが表示されるので、表示手段に表示される移動軌跡は短く、その認識性は高い。従って、使用者は、表示された移動軌跡を短時間で正確に把握することができる。
【００１９】
また、第２の仮想制御の実行を開始した時点または終了した時点から所定の時間が経過するまでの間に実動作開始指令が入力されない場合には第２の仮想制御を再び実行する。すなわち、実動作開始指令が入力されない限り、第２の仮想制御が繰り返し実行される。そして、この第２の仮想制御の実行中にプログラムを全て実行し終えた場合には、その時点までに取得した教示目標点を含む一部の移動軌跡を表示させて当該制御を終了する。このように第２の仮想制御が繰り返し実行される際、表示手段には常に一部の移動軌跡のみが表示される。従って、使用者は、表示された移動軌跡をその都度短時間で正確に把握することができる。
【００２０】
さらに、このように、各移動軌跡を順次正確に把握していけば、使用者は、それら移動軌跡を、自身の頭の中で整理して順番に結合させ、一連の移動軌跡としてイメージすることが可能となる。特に、第２の仮想制御がプログラムを全て実行し終えるまで繰り返された場合には、使用者は、プログラムに基づくロボットの移動軌跡の全体を正確にイメージすることができる。従って、使用者は、選択したプログラムがロボットに対しどのような動作を行わせるものであるかを一層容易に理解することができる。
【００２１】
請求項１記載の手段では、自動制御を開始する時点でのロボットの位置が通常は初期位置となっているという前提で、初期位置を起点とした移動軌跡の一部を表示させていた。しかし、例えば、前回の自動制御動作を停止した後、作業者がロボットの位置（例えば手先の位置）を手動で移動させた場合など、自動制御を開始する時点でのロボットの位置が初期位置と異なっている場合もあり得る。請求項４記載の手段によれば、このようなケースにも、以下のように対応することができる。
【００２２】
請求項４記載の手段によれば、現在位置取得手段により取得される現在位置がロボットの初期位置と一致するか否かを判断する位置判断手段と、現在位置に対応した教示目標点を含むプログラムのステップを求める対応ステップ検出手段とを備えている。そして、仮想動作制御手段は、現在位置が初期位置と一致すると判断された状態で仮想動作開始指令が入力されると第１の仮想制御を実行する。この場合の第１の仮想制御は、請求項１記載の手段におけるものと全く同様である。
【００２３】
また、現在位置が初期位置と異なると判断された状態で仮想動作開始指令が入力されると、対応ステップ検出手段が求めたステップの次のステップがプログラムの最初のステップであるとともに現在位置取得手段により取得された現在位置がロボットの初期位置であると置き換えた上で第１の仮想制御を実行する。この場合の第１の仮想制御では、選択されたプログラムを現在位置に対応した教示目標点を含むステップの次から順に実行する。そして、その結果として教示目標点を所定の個数取得した時点でプログラムの実行を停止する。続いて、ロボットの現在位置の座標から取得した最後の教示目標点の座標までの移動軌跡を、その移動順番が分かるように表示手段に表示する。
【００２４】
すなわち、本手段では、ロボットの現在位置が初期位置と一致している場合には、請求項１記載の手段と同様に初期位置を起点とした移動軌跡の一部を表示させる第１の仮想制御を実行し、ロボットの現在位置が初期位置と異なる場合にはその現在位置を起点とした移動軌跡の一部を表示させる第１の仮想制御を実行する。これにより、自動制御を開始する時点でのロボットの位置が初期位置であるか否かに関係なく、その時点での位置を起点とした一部の移動軌跡が表示手段に表示される。従って、このような第１の仮想制御を実行してからロボットの自動制御を開始すれば、ロボットが初期位置にあるか否かに関係なく把握した一部の移動軌跡を元に自動制御動作に対する安全性を確保することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の第１の実施形態を示すロボットシステムの構成図
【図２】ティーチングペンダントの画面表示例を示す図
【図３】第１の仮想制御実行後の画面表示例を示す図
【図４】第２の仮想制御実行後の画面表示例を示す図
【図５】仮想動作制御の内容を示すフローチャート
【図６】本発明の第２の実施形態を示す図５相当図
【図７】本発明の第３の実施形態を示す図５相当図
【図８】本発明の第４の実施形態を示す図５相当図
【発明を実施するための形態】
【００２６】
（第１の実施形態）
以下、本発明の第１の実施形態について図１〜図５を参照しながら説明する。
図１は、ロボットシステムの構成を示す図である。ロボットシステム１は、ロボット２および制御装置３（コントローラ）を備えている。ロボット２は、例えば部品の組み立て用あるいは部品の検査用など、任意の構成のロボットである。制御装置３は、周辺機器としてティーチングペンダント４（タッチパネル式入力装置）およびパーソナルコンピュータ５（パソコン）などが接続されている。なお、パソコン５は、必要に応じて接続されるものであり、常時接続されているとは限らない。
【００２７】
ロボット２は、例えば６軸の垂直多関節型のロボットとして構成されている。ロボット２は、周知の通り、それぞれアクチュエータであるサーボモータ６などからの駆動力で駆動されるアーム７を有している。アーム７は、先端にエンドエフェクタ８を有している。例えばロボット２で部品の運搬や組み立てなどを行う場合、エンドエフェクタ８としてこれらの部品を保持するためのハンドが用いられる。また、例えばロボット２で部品の検査などを行う場合、エンドエフェクタ８として対象となる部品を撮影するカメラなどが用いられる。
【００２８】
このように、エンドエフェクタ８は、ロボット２を適用する工程に応じて任意に選択することができる。サーボモータ６からアーム７のエンドエフェクタ８までの間には、図示しない減速機構やリンクなどの駆動力伝達機構が設けられている。これにより、アーム７の先端に設けられているエンドエフェクタ８は、サーボモータ６からの駆動力によって駆動される。ロボット２と制御装置３との間は、接続ケーブル９によって接続されている。これにより、ロボット２の各軸を駆動するサーボモータ６、および作業を実施するエンドエフェクタ８は、制御装置３によって制御される。
【００２９】
ティーチングペンダント４は、例えば使用者が携帯あるいは手に所持して操作可能な程度の大きさで、例えば薄型の略矩形箱状に形成されている。ティーチングペンダント４は、表面部の中央部に例えば液晶ディスプレイからなる表示部１０を有している。表示部１０には、各種の画面が表示される。表示部１０は、タッチパネルで構成されている。またティーチングペンダント４には、表示部１０の周囲に各種のキースイッチ１１が設けられており、使用者は、キースイッチ１１やタッチパネルによって種々の入力操作を行う。
【００３０】
ティーチングペンダント４は、ケーブル１２を経由して制御装置３に接続され、通信インターフェイスを経由して制御装置３との間で高速のデータ転送を実行するようになっており、キースイッチ１１等やタッチ操作により入力された操作信号等の情報はティーチングペンダント４から制御装置３へ送信される。また、制御装置３は、ティーチングペンダント４へ制御信号や表示用の信号などと共に駆動用の電力を供給する。
【００３１】
使用者は、上記のティーチングペンダント４を用いてロボット２の運転や設定などの各種の機能を実行可能であり、例えばキースイッチ１１等を操作することで、予め記憶されている制御プログラムを呼び出して、ロボット２の起動や各種のパラメータの設定などを実行できる。また、ロボット２をマニュアル操作で動作させて各種の教示作業も実行可能であり、表示部１０には、例えばメニュー画面、設定入力画面、状況表示画面など必要に応じて所望の画面が表示される。
【００３２】
パソコン５は例えば汎用のノートパソコンなどであり、使用者は、プログラミングソフトを実行させることでアプリケーションに応じてロボット２の動作手順などを記述したプログラムを作成できる。このパソコン５は、ケーブル１３を経由して制御装置３に接続されており、作成されたロボット２を動作させるためのプログラムは、パソコン５から制御装置３へ転送される。
【００３３】
制御装置３は、図示しない記憶装置（記憶手段に相当）を備えており、パソコン５から転送されるロボット２を動作させるためのプログラムを複数記憶することが可能となっている。制御装置３は、この記憶装置に記憶されたプログラムを実行してロボット２の動作を自動制御する実動作制御機能（実動作制御手段に相当）を有している。また、制御装置３は、上記プログラムに基づいたロボット２の動作をパソコン５のディスプレイ１４（表示手段に相当）に仮想的に画面表示させる仮想動作制御機能（仮想動作制御手段に相当）を有している。この仮想動作制御を実行する際、制御装置３からパソコン５に対し、後述する教示目標点の座標データや、ロボット２の初期位置の座標データなどが送信される。パソコン５は、これらデータに基づいてロボット２の動作を仮想的に表す移動軌跡をディスプレイ１４に表示させる。
【００３４】
使用者は、上記のティーチングペンダント４を用いて、例えばキースイッチ１１等を操作することで、制御装置３に予め記憶されたプログラムの中から１つのプログラムを選択し、そのプログラムに基づいた自動制御を開始させたり、そのプログラムに基づいた動作を画面表示させたりすることができる。この場合、ティーチングペンダント４から制御装置３に対し、所定のプログラムを選択するための選択指令、実動作制御の実行を指令する実動作開始指令、仮想動作制御の実行を指令する仮想動作開始指令などが送信される。このように、本実施形態では、ティーチングペンダント４が入力手段に相当し、制御装置３が選択手段に相当する。
【００３５】
ティーチングペンダント４は、記憶手段に記憶されたプログラムの一覧を表示部１０に表示させる機能を備えている（図示せず）。これにより、使用者が表示された一覧を見ながら任意のプログラムを選択することが可能となっている。ティーチングペンダント４は、このようにして選択されたプログラムの内容を分かり易く表したプログラムリストとして表示する機能を備えている。
【００３６】
図２は、ティーチングペンダント４に表示されるプログラムリストの一例を示している。図２に示すように、ロボット２を動作させるためのプログラムは、複数のステップ（行）から構成されており、通常は一番上のステップから順に実行される。このうち、最初の２つのステップ（０００１、０００２）は、「ＰＲＯ２」という名前のプログラムによりロボット２を動作させるという宣言である。
【００３７】
続くステップ０００３〜０００７は、ロボット２の動作手順を示すステップ（動作ステップ）である。これらのステップにおけるＰ１〜Ｐ５は、教示時に予め設定された目標点の座標を示す教示目標点である。例えば、ステップ０００３は、ロボット２を現在の位置から教示目標点Ｐ１まで最短距離で移動させるという内容となっている。また、図示しないが、プログラムのステップには、条件分岐のステップなど、上記した動作ステップ以外のステップも含まれている。
【００３８】
このようなプログラムは、通常、少なくとも５０個以上の教示目標点を含んでいるため、そのステップ数は多い。ティーチングペンダント４の画面上には、画面の大きさの都合上、一部のステップしか表示できないが、使用者は、画面をスクロール表示することで全てのステップの内容を確認することが可能である。
【００３９】
次に、上記構成の作用および効果について図３〜図５も参照して説明する。
図５は、仮想動作制御の内容を示すフローチャートである。図５に示す制御は、ティーチングペンダント４から仮想制御開始指令が与えられると開始される（スタート）。まず、ティーチングペンダント４から与えられる選択指令に従い記憶されたプログラムの中から１つのプログラムを選択する（ステップＡ１）。続くステップＡ２では、本制御で用いる変数の初期設定を行う。すなわち、待ち時間ＴＷ、表示個数Ｎの値を設定し、表示個数カウンタＣｎｔをリセット（Ｃｎｔ＝０）する。そして、ステップＡ３では、ステップ番号Ｓを１に設定する（Ｓ＝１）。なお、本実施形態では、待ち時間ＴＷの値は３０秒に設定し、表示個数Ｎの値は５に設定しているが、これらの値は適宜変更可能である。
【００４０】
続いて、選択したプログラムにおける初期位置にエンドエフェクタ８が位置している状態のロボット２を描画する（ステップＡ４）。ステップＡ５では、現在のステップ番号Ｓに対応するプログラムのステップ（行）を読み込む。ステップＡ６では、読み込んだステップが動作ステップであるか否かを判断する。動作ステップではない場合（ＮＯ）にはステップＡ１２に進む。動作ステップである場合（ＹＥＳ）には、ステップＡ７に進んで教示目標座標を抽出する。
【００４１】
続いて、抽出した教示目標座標を表す教示目標点を描画し（ステップＡ８）、ロボット２のエンドエフェクタ８（手先）の位置または前回描画した教示目標点と今回抽出した教示目標点とを結ぶ線を描画する（ステップＡ９）。その後、ステップＡ１０では、表示個数カウンタＣｎｔの値をインクリメントする（Ｃｎｔ＋１）。そして、ステップＡ１１では、表示個数カウンタＣｎｔの値が表示個数Ｎ以上であるか否かを判断する。表示個数Ｎ以上である場合（ＹＥＳ）にはステップＡ１４に進む。一方、表示個数Ｎ未満である場合（ＮＯ）には、ステップＡ１２に進んでステップ番号Ｓをインクリメントする（Ｓ＋１）。
【００４２】
続くステップＡ１３では、未だ読み込んでいないステップがあるか否かを判断する。全てのステップを読み込んでいる場合（ＮＯ）には、この時点で制御を終了する（エンド）。全てのステップを読み込んでいない場合（ＹＥＳ）には、ステップＡ５に戻る。この後は、表示個数カウンタＣｎｔの値が表示個数Ｎ以上（ステップＡ１１で「ＹＥＳ」）になるまで、つまり教示目標点を表示個数Ｎだけ含む軌跡を描画するまでステップＡ５〜Ａ１３を繰り返し実行する。このようにして、表示個数である５個の教示目標点Ｐ１〜Ｐ５およびそれらの間の線が描画されると（ステップＡ１１で「ＹＥＳ」）、ステップＡ１４に進む。
【００４３】
図３に示すように、このステップＡ１４の時点において、パソコン５のディスプレイ１４には、エンドエフェクタ８が初期の位置にある状態のロボット２と、５個の教示目標点Ｐ１〜Ｐ５と、各教示目標点間を結ぶ直線が表示されている。すなわち、エンドエフェクタ８の初期位置を起点とし、最初の５個の教示目標点Ｐ１〜Ｐ５を通るロボット２の動作の軌跡（一部の移動軌跡）のみが表示されることになる。なお、本実施形態においては、この最初の５個の教示目標点Ｐ１〜Ｐ５を通る動作の軌跡を描画するためにステップＡ５〜Ａ１３を繰り返して実行する制御が第１の仮想制御に相当する。
【００４４】
続いて、ステップＡ１４において計測開始時刻Ｔｓを取得し、ステップＡ１５において現在時刻Ｔｐを取得する。なお、本実施形態では、制御装置３はソフトウエアタイマを備えており、これら時刻は、そのソフトウエアタイマにより計測された時刻としている。ステップＡ１６では、現在時刻Ｔｐと計測開始時刻Ｔｓとの差が待ち時間Ｔｗ以上であるか否かを判断する。つまり、第１の仮想制御が終了した時点から待ち時間Ｔｗが経過したか否かを判断する。上記差が待ち時間Ｔｗ以上である場合（ＹＥＳ）には、ステップＡ１９に進む。一方、上記差が待ち時間Ｔｗ未満である場合（ＮＯ）には、ステップＡ１７に進む。
【００４５】
ステップＡ１７では、ロボット２の自動制御開始の操作がなされたか否かを判断する。つまり、ティーチングペンダント４から実動作開始指令が与えられたか否かを判断する。自動制御開始の操作がなされたと判断した場合（ＹＥＳ）には、ロボット２の自動制御を開始し（ステップＡ１８）、制御を終了する（エンド）。一方、自動制御開始の操作がなされていないと判断した場合（ＮＯ）にはステップＡ１５に戻り、ステップＡ１５〜Ａ１７を繰り返し実行する。
【００４６】
そして、第１の仮想制御が終了した時点（ステップＡ１４の時点）から待ち時間Ｔｗが経過するまでの間に自動制御開始の操作がなされなかった場合（ステップＡ１６で「ＹＥＳ」）には、ステップＡ１９に進んでステップ番号Ｓをインクリメントする（Ｓ＋１）。続くステップＡ２０では、未だ読み込んでいないステップがあるか否かを判断する。全てのステップを読み込んでいる場合（ＮＯ）には、この時点で制御を終了する（エンド）。全てのステップを読み込んでいない場合（ＹＥＳ）には、ステップＡ２１に進む。
【００４７】
ステップＡ２１では、その時点で表示されている表示内容のうち、教示目標点および各教示目標点を結ぶ線を一括して消去する。そして、ステップＡ２２では、前回表示した最後の教示目標点を再描画し、ステップＡ２３に進む。ステップＡ２３にて表示個数カウンタＣｎｔの値をリセットし、ステップＡ５に戻る。この後は、表示個数カウンタＣｎｔの値が再び表示個数Ｎ以上（ステップＡ１１で「ＹＥＳ」）になるまでステップＡ５〜Ａ１３を繰り返し実行する。このようにして、５個の教示目標点Ｐ６〜Ｐ１０およびそれらの間の直線が描画されると（ステップＡ１１で「ＹＥＳ」）、ステップＡ１４に進む。
【００４８】
図４に示すように、このステップＡ１４の時点において、パソコン５のディスプレイ１４には、エンドエフェクタ８が初期の位置にある状態のロボット２と、前回表示した最後の教示目標点Ｐ５と、新たに表示される５個の教示目標点Ｐ６〜Ｐ１０と、各教示目標点間を結ぶ直線が表示されている。すなわち、前回表示した最後の教示目標点であるＰ５の座標を起点とし、それに続く５個の教示目標点Ｐ６〜Ｐ１０を通るロボット２の動作の軌跡（一部の移動軌跡）のみが表示されることになる。なお、本実施形態においては、ステップＡ１９〜Ａ２３の制御と、第１の仮想制御で表示された教示目標点以降の教示目標点を通る動作の軌跡を描画するためにステップＡ５〜Ａ１３を繰り返して実行する制御とが第２の仮想制御に相当する。
【００４９】
この第２の仮想制御が終了した時点（ステップＡ１４の時点）から所定の待ち時間Ｔｗが経過するまでの間に自動制御開始の操作がなされなかった場合（ステップＡ１６で「ＹＥＳ」）には、ステップＡ１９〜Ａ２３を再び実行し、ステップＡ５に戻る。そして、表示個数カウンタＣｎｔが表示個数Ｎ以上（ステップＡ１１で「ＹＥＳ」）になるまで、ステップＡ５〜Ａ１３を繰り返し実行する。すなわち、再び第２の仮想制御を実行する。このように、本実施形態では、自動制御開始の操作がなされない限り、第２の仮想制御が繰り返し実行される。ただし、プログラムの全てのステップを読み込んだと判断した場合（ステップＡ１３またはＡ２０で「ＮＯ」）には、その時点で制御を終了する（エンド）。
【００５０】
上記した本実施形態の仮想動作制御によれば、次のような効果が得られる。
制御装置３は、ティーチングペンダント４から仮想動作開始指令が与えられると、まず第１の仮想制御を実行する。この第１の仮想制御が行われることにより、パソコン５のディスプレイ１４には、ロボット２のエンドエフェクタ８の初期位置を起点とし、選択したプログラムに記述された最初の５個の教示目標点Ｐ１〜Ｐ５を通るロボット２の動作の軌跡が、その移動順番が分かる状態で表示される。このため、全ての移動軌跡を表示する従来技術と比較すると、表示される移動軌跡が格段に短くなるので、その認識性が向上する。これにより、使用者は、選択したプログラムによってロボット２が初期位置からどのような軌跡に沿って移動するのかを短時間で把握できる。
【００５１】
制御装置３は、第１の仮想制御が終了した時点から待ち時間Ｔｗが経過するまでの間に自動制御開始の操作がなされたと判断すると、選択されたプログラムを実行してロボット２の自動制御を開始する。この自動制御を開始する時点でのロボット２の位置は、通常は初期位置となっている。従って、使用者は、第１の仮想制御を実行してからロボットの自動制御を開始すれば、把握したロボット２の初期位置からの一部の移動軌跡を元にロボット２の自動制御動作に対する安全性を確保することができる。なぜなら、ロボット２の周囲にいる人間（この場合には使用者）は、ロボット２が自動制御開始の時点における位置から最初にどの方向にどのように動くのかが分かれば、制御開始直後の安全を確保することが容易だからである。例えば、使用者は、ロボット２が最初に自分に対して向かってくるような場合には、自分が安全な場所に移動するまで自動制御を開始させないことで安全を確保できる。
【００５２】
従って、本実施形態によれば、安全性の確保という面においては、全ての移動軌跡を表示する従来技術と同等であると考えられる。また、作業者は、把握した移動軌跡に基づいて、選択したプログラムが、そのときに用いられるワークに対応したものであるか否かを確認できる。そして、選択したプログラムがそのワークに対応したものでないと判断した場合には、実際の自動制御動作を開始させずに、正しいプログラムを選択し直すことが可能となる。これにより、ロボット２とワークとの干渉を未然に防止することができる。
【００５３】
さらに、本実施形態では、上記したとおり、移動軌跡の把握が短時間で行えるので、その分だけ自動制御開始までの時間を短縮することができる。これにより、例えば次の作業を前倒しで行うことができるなど、生産性の向上にも寄与できる。また、本実施形態の構成によれば、ロボット２を動作させるためのプログラムを作成した者は、そのプログラムに基づいた移動軌跡を容易に確認することができるので、プログラムのデバッグ作業などを容易に行うことができる。
【００５４】
制御装置３は、第１の仮想制御を実行している間は、ティーチングペンダント４から実動作開始指令が与えられたとしても、ロボット２の自動制御を開始させない。つまり、制御装置３は、第１の仮想制御の実行が終了するまでの期間は、実動作開始指令の入力を受け付けない。これにより、使用者に対し、選択したプログラムに基づくロボット２の移動軌跡を把握する機会を確実に与えた上で自動制御を開始することになるので、安全性が一層向上する。
【００５５】
制御装置３は、第１の仮想制御が終了した時点から待ち時間Ｔｗが経過するまでの間に自動制御開始の操作がなされなかった場合には、第２の仮想制御を実行する。この第２の仮想制御が行われることにより、前回表示した表示内容は一括して消去される。そして、パソコン５のディスプレイ１４には、前回表示した最後の教示目標点であるＰ５の座標を起点とし、教示目標点Ｐ５に続く５個の教示目標点Ｐ６〜Ｐ１０を通るロボット２の動作の軌跡のみが表示される。このように、前回表示された一部の移動軌跡の後に続く一部の移動軌跡のみが表示されるので、表示される移動軌跡は短く、その認識性は高まる。従って、使用者は、表示された移動軌跡を短時間で正確に把握することができる。
【００５６】
制御装置３は、第２の仮想制御が終了した時点から待ち時間Ｔｗが経過するまでの間に自動制御開始の操作がなされなかった場合には、第２の仮想制御を再び実行する。すなわち、自動制御開始の操作がなされない限りは、プログラムを全て実行し終えるまで第２の仮想制御を繰り返し実行する。このように第２の仮想制御が繰り返し実行される際、パソコン５のディスプレイ１４には常に一部の移動軌跡のみが表示される。従って、使用者は、表示された移動軌跡をその都度短時間で正確に把握することができる。さらに、このように各移動軌跡を順次正確に把握していけば、使用者は、それら移動軌跡を自身の頭の中で整理して順番に結合させ、一連の移動軌跡としてイメージすることが可能となる。特に、プログラムを全て実行し終えるまで第２の仮想制御が繰り返された場合には、使用者は、ロボットの移動軌跡の全体像を正確にイメージすることができる。
【００５７】
また、上記したようにして各移動軌跡が順次表示されていく際、パソコン５のディスプレイ１４には、常にエンドエフェクタ８が初期位置にある状態のロボット２が描画されている。これにより、表示される移動軌跡と、ロボット２の初期位置との関係が把握し易くなるという効果が得られる。
【００５８】
（第２の実施形態）
次に、仮想動作制御の内容を一部変更した本発明の第２の実施形態について図６を参照しながら説明する。
図６は、本実施形態の仮想動作制御の内容を示すフローチャートである。この図６に示す制御は、図５に示した第１の実施形態における制御に対し、ステップＡ４とＡ５の間にステップＢ１が追加されている点が異なっている。このステップＢ１では、ステップＡ１７と同様に自動制御開始の操作がなされたか否かを判断する。自動制御開始の操作がなされたと判断した場合（ＹＥＳ）には、ロボット２の自動制御を開始し（ステップＡ１８）、制御を終了する（エンド）。一方、自動制御開始の操作がなされていないと判断した場合（ＮＯ）にはステップＡ５に進む。
【００５９】
このような制御内容の本実施形態によれば、第１の仮想制御および第２の仮想制御によりロボット２の動作の軌跡を描画している途中や、その描画を行う前の時点でも、ロボット２の自動制御開始の指令を受け付けることができる。例えば、ロボットシステム１の操作に慣れた熟練の作業者は、選択したプログラムがロボット２にどのような動作をさせるものであるかを把握していることが多い。このような熟練者は、表示された一部の移動軌跡を少し見るだけでまたは全く見ることなくその軌跡を把握できる場合もある。その場合に、移動軌跡の表示が完了するまで自動制御を開始できなければ、その待ち時間を煩わしく感じてしまう可能性もある。本実施形態によれば、使用者は、移動軌跡を把握した時点で、直ちに自動制御を開始することが可能であるので、利便性が向上する。
【００６０】
（第３の実施形態）
次に、仮想動作制御の内容を一部変更した本発明の第３の実施形態について図７を参照しながら説明する。
図７は、本実施形態の仮想動作制御の内容を示すフローチャートである。この図７に示す制御は、図５に示した第１の実施形態における制御に対し、ステップＡ７とＡ８の間にステップＣ１およびＣ２が追加されている点と、ステップＡ２１、Ａ２２が削除されている点とが異なっている。
【００６１】
ステップＣ１では、その時点で教示目標点が表示個数Ｎ以上表示されているか否かを判断する。表示個数Ｎ以上表示されていない場合（ＮＯ）には、何も行わずにステップＡ８に進む。一方、表示個数Ｎ以上表示されている場合（ＹＥＳ）には、ステップＣ２に進む。ステップＣ２では、表示された教示目標点のうち最も古い点（最初に描画された点）と、表示された線のうち最も古い線（最初に描画された線）とを消去し、ステップＡ８に進む。
【００６２】
このような制御内容の本実施形態によれば、第２の仮想制御が実行される際、最初に一括して前回表示した内容が消去されない。ただし、新たにそれぞれ１つの教示目標点および線を表示する前の時点において、その時点で最も古い教示目標点および線がそれぞれ１つだけ消去される。このため、本実施形態によっても、パソコン５のディスプレイ１４には常に５個（表示個数Ｎ）の教示目標点を含む移動軌跡のみが表示されることになるので、表示される移動軌跡は短く、その認識性は高まる。
【００６３】
また、新たな教示目標点が１つずつ順に表示されることにより、ロボット２が各教示目標点をどのような順番で通過するのかについて理解し易くなる。このため、例えばロボットシステム１の操作に慣れていない使用者であっても、容易にその移動軌跡がどのようなものであるのかを理解し、把握することができる。
【００６４】
（第４の実施形態）
次に、仮想動作制御の内容を一部変更した本発明の第４の実施形態について図８を参照しながら説明する。
図８は、本実施形態の仮想動作制御の内容を示すフローチャートである。この図８に示す制御は、図５に示した第１の実施形態における制御に対し、ステップＡ３、Ａ４に代えてステップＤ１〜Ｄ６が設けられている点が異なっている。ステップＤ１では、その時点でのロボット２のエンドエフェクタ８の現在位置を取得する。
【００６５】
通常、ロボットシステム１における制御装置３は、ロボット２の各軸の位置（回転角度）を検出する機能を備えている。本実施形態では、その検出した各軸の位置を用いて所定の演算を行い、ロボット２のエンドエフェクタ８の現在位置を取得するようにしている。なお、エンドエフェクタ８の現在位置を取得する手法はこれに限らずともよく、適宜変更可能である。また、本実施形態では、制御装置３は、現在位置取得手段、位置判断手段、対応ステップ検出手段としても機能する。
【００６６】
ステップＤ２では、ステップＤ１にて取得した現在位置が、選択したプログラムにおけるエンドエフェクタ８の初期位置と一致するか否かを判断する。その結果、現在位置が初期位置と一致すると判断した場合（ＹＥＳ）には、ステップＤ３に進む。ステップＤ３は、ステップＡ３と同様、プログラムのステップ番号Ｓを１に設定し（Ｓ＝１）、ステップＤ６に進む。一方、現在位置が初期位置と異なると判断した場合（ＮＯ）には、ステップＤ４に進む。ステップＤ４では、選択されたプログラムのステップの中から、現在位置に対応した教示目標点を含むステップの番号ｎを抽出する。ステップＤ５では、ステップ番号ＳをステップＤ４で抽出した番号ｎの次の番号ｎ＋１に設定し（Ｓ＝ｎ＋１）、ステップＤ６に進む。ステップＤ６では、エンドエフェクタ８が現在位置となる状態でロボット２を描画する。
【００６７】
第１の実施形態では、自動制御を開始する時点でのロボット２のエンドエフェクタ８の位置が通常は初期位置となっているという前提で、初期位置を起点として移動軌跡の一部を表示させていた。しかし、例えば、前回の自動制御動作を停止した後、作業者がエンドエフェクタ８の位置を手動で移動させた場合など、自動制御を開始する時点でのエンドエフェクタ８の位置が初期位置と異なっている場合も想定される。本実施形態によれば、このように想定されるケースであっても、以下のように対応することができる。
【００６８】
すなわち、上記した制御内容の本実施形態によれば、仮想動作制御を開始した時点におけるエンドエフェクタ８の現在位置が初期位置と一致すると判断した場合には、第１の実施形態と同様の内容の第１の仮想制御を行う。一方、現在位置が初期位置と異なると判断した場合には、選択されたプログラムを、現在位置に対応した教示目標点を含むステップの次のステップから順に実行する第１の仮想制御を行う。
【００６９】
従って、本実施形態では、エンドエフェクタ８の現在位置が初期位置と一致している場合には、初期位置を起点とした移動軌跡の一部が表示され、上記現在位置が初期位置と異なる場合には、その現在位置を起点とした移動軌跡の一部が表示される。これにより、自動制御を開始する時点でのロボット２の位置が初期位置にあるか否かに関係なく、その時点での位置を起点とした一部の移動軌跡が表示される。使用者は、この移動軌跡を把握することにより、ロボット２の初期位置にかかわらず、安全性を確保することが可能となる。
【００７０】
（その他の実施形態）
なお、本発明は上記し且つ図面に記載した各実施形態に限定されるものではなく、次のような変形または拡張が可能である。
第１または第２の仮想制御の実行に要する時間Ｔｘ（ステップの読み込み、教示目標座標の抽出、点および線の表示などに要する時間）は、プログラムの内容等により変動するが、これが概ね一定の時間になると仮定すれば、第１の制御または第２の制御の実行を開始した時点において計測開始時間Ｔｓを取得し、その時間Ｔｓを基準として待ち時間の判断を行うように変更してもよい。その場合には、上記各実施形態における待ち時間Ｔｗに上記時間Ｔｘを加えた時間を待ち時間として設定すればよい。
表示する一部の移動軌跡の起点にエンドエフェクタ８が常に位置するように、ロボット２を再描画するようにしてもよい。さらには、ロボット２のエンドエフェクタ８が、順次表示される移動軌跡をトレースして移動するように表示（ロボット２の動画表示）してもよい。ただし、この場合には、ロボット２の表示を半透明にするなど、移動軌跡が見難くならないように配慮する必要がある。
【００７１】
図５〜図８の仮想動作制御について、第１の仮想制御を実行した後、第２の仮想制御を実行することなく制御を終了するように変更してもよい。このように変更した場合であっても、ディスプレイ１４には、ロボット２の初期位置を起点とした最初の一部の移動軌跡については表示されるので、安全性を確保するという面において問題は生じない。
仮想動作制御を実行する際、実際にロボット２の周囲に配置される各種機器や設備などのイメージをディスプレイ１４に表示させるようにしてもよい。このようにすれば、ロボット２の移動軌跡が一層把握し易くなる上、ロボット２が周囲の物体と干渉することがないか否かをディスプレイ１４上で確認することができる。
【００７２】
入力手段は、ティーチングペンダント４に限らずともよい。例えば、汎用のパーソナルコンピュータ（例えばノートパソコン）に所定のプログラムをインストールすることで、ティーチングペンダント４と同等の機能を実現させて、これを入力手段として用いてもよい。また、表示手段は、パソコン５のディスプレイ１４に限らずともよい。例えば、ディスプレイを有する他の機器を用いてよいし、または単体の表示装置を用いてもよい。
上記各実施形態では、プログラム中の動作ステップは、ロボット２を最短距離で移動させるものとしていたが、これに限らずともよく、例えば所定の半径の円弧を描きながら各教示目標点を通過して移動するような動作ステップでもよい。従って、仮想動作制御において表示される各教示目標点間を結ぶ線は直線に限らない。
仮想動作制御は、第１の実施形態である図５の制御内容に対し、第２〜第４の実施形態である図６〜図８において変更した部分の、いずれか２つの変更部分を盛り込んだ制御内容としてもよいし、または、全ての変更部分を盛り込んだ制御内容としてもよい。従って、第２、第３の実施形態の組み合わせ、第３、第４の実施形態の組み合わせ、第２、第４の実施形態の組み合わせ、第２〜第４の実施形態の組み合わせが可能である。
【符号の説明】
【００７３】
図面中、１はロボットシステム、２はロボット、３は制御装置（記憶手段、選択手段、実動作制御手段、仮想動作制御手段、現在位置取得手段、位置判断手段、対応ステップ検出手段）、４はティーチングペンダント（入力手段）、１４はディスプレイ（表示手段）を示す。
【図１】
2011045937.tif 000003
【図２】
2011045937.tif 000004
【図３】
2011045937.tif 000005
【図４】
2011045937.tif 000006
【図５】
2011045937.tif 000007
【図６】
2011045937.tif 000008
【図７】
2011045937.tif 000009
【図８】
2011045937.tif 000010