(57)【要約】【課題】ロボットに対して簡単に指令を与えることができ、必要な処理のみを自動的に安全で確実に実行するようにする。【解決手段】ロボット機構部１を制御するロボット制御装置２には、常時ロボットの状態を検出しロボット状態データ２２ｂとして記憶している。ヘッドセット４から音声で入力された作業命令は、音声／文字データ変換装置３で文字データに変換され制御装置２に入力される。制御装置２は、管理データ２３ｂに記憶する作業命令から入力された作業命令と一致するものを探す。一致した作業命令に対してリンクして記憶する実行プログラムグループを特定する。各実行プログラムは、実行順序とその実行プログラム及び判断部を備え、実行順序順に，  ロボット状態データに基づいて実行プログラムを実行できるか否か判断部で判断し、実行できるプログラムのみ実行して指令された作業命令を遂行する。【選択図】      図１
2004181564.tif 000002
【特許請求の範囲】
【請求項１】
複数の作業命令と各作業命令に対して、１つ又は複数の実行プログラムとが対応付けされた組合わせを記憶する記憶手段と、
前記記憶手段に記憶された複数の作業命令の中から、入力された作業命令と一致するものを検出する手段と、
検出された作業命令に対応する１つ又は複数の実行プログラムに対して、ロボットの状態に基いて実行するか否かを判断する判断手段と、
実行すると判断された前記実行プログラムを実行する手段と、
を備えることを特徴とする産業用ロボット。
【請求項２】
前記各作業命令に対応する複数の実行プログラムに対して、前記判断手段により判断する順序が予め設定されている請求項１に記載の産業用ロボット。
【請求項３】
複数の作業命令と各作業命令に対して該作業命令を実行し完了するまでに必要の可能性のある複数の所定作業単位の実行プログラムとがその実行順序と共に対応付けて記憶された記憶手段と、
前記記憶手段に記憶された複数の作業命令の中から、入力された作業命令と一致するものを検出する手段と、
検出された作業命令に対応する複数の実行プログラムに対して、その実行順位順にロボットの状態に基いて実行するか否かを判断する判断手段と、
実行すると判断された前記実行プログラムを実行する手段と、
を備えることを特徴とする産業用ロボット。
【請求項４】
前記各作業命令に対応する複数の実行プログラムに対して、前記判断手段により、１つの実行プログラムを実行すると判断した場合には、同一実行順序のほかの実行プログラムは実行しないと判断するようにした請求項２又は請求項３に記載の産業用ロボット。
【請求項５】
音声入力手段を備え、該音声入力手段より作業者の音声による作業命令を入力するようにした請求項１乃至４の内いずれか１項に記載の産業用ロボット。
【請求項６】
前記音声入力手段を前記産業用ロボットの教示操作盤に設けた、請求項５に記載の産業用ロボット。
【請求項７】
作業者の音声を拡声して知らせる手段を備えた請求項５又は請求項６に記載の産業用ロボット。
【請求項８】
前記実行すると判断された実行プログラムの内容を表示する手段と、実行許可を受け付ける手段とを備えることを特徴とする請求項１乃至７の内いずれか１項に記載の産業用ロボット。
【請求項９】
作業命令を受け付けたことを前記産業用ロボットの教示操作盤や操作パネルの画面に、前記受け付けた作業命令を文字として表示することにより知らせることを特徴とする請求項１乃至８の内いずれか１項に記載の産業用ロボット。
【請求項１０】
作業命令を受け付けたことを前記産業用ロボットに接続した情報処理装置の画面に、前記受け付けた作業命令を文字として表示することにより知らせることを特徴とする請求項１乃至９の内いずれか１項に記載の産業用ロボット。
【請求項１１】
作業命令を受けつけたことを、ランプ、または音声により知らせることを特徴とする請求項１乃至１０の内いずれか１項に記載の産業用ロボット。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は産業用ロボットに関する。特にロボットの動作指令を容易にした産業用ロボットに関する。
【０００２】
【従来の技術】
産業用ロボットを稼働させるためには、産業用ロボットに対してロボットの動作点の位置や、システムの他の構成機器とのインターロックを取るための信号入出力を記述したロボットプログラムの作成が必要である。
【０００３】
ロボットプログラムには、生産システムから、ロボットに対して生産開始の指示が行われてから、ロボットの手首先端に取り付けられたツールを用いて、ロボットが溶接作業や、搬送作業等の生産活動を行い、生産活動が終了するまでの全てのロボットの作業動作が記述されている。そのためロボットプログラムの最初から最後までを通して実行する場合には、ロボットプログラム実行させればよいものであるから問題はないが、ロボットプログラムに記述されているロボット作業のうちの一部分だけを実行したり、一部だけは一時的に実行しなかったり、ロボットプログラムのある場所で作業を停止させ、ここで他のロボットプログラムに記載されている作業の一部を実行し、停止した場所から元のロボットプログラムを再開する等の動作をさせることは困難であった。
【０００４】
例えばロボットプログラムに記述された各作業が作業者の意図した通りに正しくロボットが実行できるかどうかを検証するためには、ロボットプログラムを最初から実行するのではなく、検証したい作業だけを何度も繰り返し実行させたい場合がある。これを実行するには、まずロボットプログラムのプログラムカウンタを作業開始前の場所に強制的に移動し、ここでロボットの現在位置や、Ｉ／Ｏ信号の状態や、レジスタの値等を確認し、ロボットプログラムを最初から実行した場合におけるロボットの現在位置や、Ｉ／Ｏ信号の状態や、レジスタの値と同じになるように、これらを手動で変更した後、ロボットプログラムを再開し、検証したい作業をロボットに実行させていた。再度同じ作業を検証したい場合には、この作業を繰り返し行っていた。
【０００５】
ロボットプログラムを最初から最後まで連続して動作している場合において、一旦、ロボットプログラムを停止し、再度ロボットプログラムを最初から実行しようとした場合、例えばロボットが重量物を把持して搬送中に不用意にロボットプログラムを停止してしまった場合には、搬送物の落下や動作経路がずれることによる周辺機器との干渉等の問題が発生してしまう。そのため、作業者はロボットプログラムを停止可能なタイミングを見計らって停止させている。
【０００６】
また、重量物のワークを把持しているが、ワーク置台にまだワークが載置された状態にあるときは、ワークを把持しているハンドに対してハンドオープンをするための信号出力を手動出力しても問題はないが、ワークを置台から持ち上げた状態でハンドオープンを行った場合には、ワークが落下することとなるため、作業者は信号出力を手動で出力する前には、ロボットの状況を十分に考慮して、ハンドオープンの指令を行っている。
【０００７】
産業用ロボットが稼動しているスポット溶接ラインにおいて、溶接ガンによって車体の内部を溶接作業中にロボットにアラームが発生し、アラーム原因からロボットプログラムの再開が不可能と判断された場合には、まず溶接ガンを全開に開いた状態とし、次にロボットを手動で移動させて、溶接ガンを車体の外部に移動させ、次にロボットを車体と干渉しない場所まで手動操作で移動させた後、ロボットプログラムを再び先頭から実行する必要があった。スポット溶接ラインでは複数のロボットが稼動していることが一般的で、ロボット同士が干渉しないように、Ｉ／Ｏ信号等でインターロックを取っていることが多く、そのため、アラームが発生したロボットのスポット溶接作業の終了を他のロボットが待っていることがあり、その場合には干渉しない位置にロボットを手動で移動させた後に、手動で溶接作業完了のインターロック信号を出す必要があった。このようにアラームが発生して、ロボットが停止した後、ロボットを復旧しラインの作業を再開するには、手動で復旧作業を行わなければならなかった．
また生産ラインでアラームが発生した場合、アラームの内容を理解して、アラームの原因を特定し、それを除去するために、ロボットの教示操作盤によって、アラームコードの確認を行い、ロボットのマニュアルでアラームコードの意味を調査し、そのアラームが発生する可能性のあるロボットの部品を特定し、その部品の状態信号の状態を教示操作盤から調査している。実際にはアラームコードからアラームが発生する可能性のある部品をただちに特定して、その部品の状態を調査することは困難であり、アラームが発生する可能性のあるたくさんの部品を、可能性の高い順に一つ一つ調査して、アラーム発生個所を突き止める必要があった。調査に際しては、教示操作盤から状態信号を表示するための画面を呼び出して、状態信号を確認する必要があった。
【０００８】
アラームの原因が判明し、原因が取り除かれ、ロボットプログラムをアラーム発生個所から再開する場合においても、アラーム発生時にロボットが非常停止により惰走しているため、このままの状態でプログラム再開すると、教示した動作パスとは異なるパスを動作することになり、周辺装置や冶具等とロボットが干渉する問題が発生してしまう。再開するためには、まずロボットを本来の動作パスの上にくるように手動で移動させた後に、プログラムの再開を行わなければならなかった。
【０００９】
【発明が解決しようとする課題】
上述したように、従来の技術においては、ロボットプログラムに記述されているロボットの作業の内、その一部分だけを実行したり、一部だけは実行しなかったり、ロボットプログラムを任意の場所に停止して、ここでロボットプログラムに記述されていない作業を実行後に、元のプログラムの実行を再開したりすることが安全・容易に行えないという問題があった。又、ロボットが作業を正しく実行することができることを検証するためには、ロボットプログラムから、その作業の部分だけを何度も行いたいが、これが容易に行えなかった。
【００１０】
ロボットプログラムを停止する場合には、状況を判断して、停止するタイミングをよく考慮する必要があった。ハンドオープンのような手動でロボットを操作する場合にも、ロボットの現在の状況を十分に考慮して、操作してはいけない操作をよく検討する必要があった。アラームが発生して、ロボットプログラムを途中で終了する場合には，終了するために必要な作業を作業者は状況を判断して行う必要があった。
【００１１】
さらに、アラームの原因を特定するためには、作業者はアラーム発生する可能性のあるたくさんの部品の状態を全て教示操作盤によって確認していかなければならなかった。アラームからの再開においても、アラームを再開するために必要な作業を作業者は状況から判断し、必要な作業を実施後にロボット動作の再開を行う必要があった。
【００１２】
ロボットに何か作業を行わせるためには、ロボットがその作業を行う前に、必要と思われる作業をまず作業者が教示操作盤等から手動にて行う必要がある。つまり作業者はロボットに行わせたい作業を行わせているわけではなく、作業者は、まずその作業を行うために必要となる追加作業や、その作業をさらに細かい作業に分割することを、ロボットの状態を元に作業前に検討を行って、多くの小さな作業を教示操作盤からの手動操作もしくは、ロボットプログラムを実行するということで実行している。すなわち、作業者はロボットに直接作業命令を行うことができないものである。作業者が本来要求したかった作業をロボットは実行できないのである。
【００１３】
そのため、スキルの乏しい作業者がロボットの操作を行った場合に、正しく必要な作業を検討することができず、これによりロボットに求められた作業をさせることができない。正しく作業分析ができたとしても、ある作業は教示操作盤から手動で行い、ある作業はロボットプログラムを実行して行うといった、作業を実行する手段が異なるため、これを判断できない作業者には、ロボットに求められた作業を行わせることができないのである。つまりロボットを操作することができる作業者は、これらのことが正しく判断できる者でなければならず、熟練を必要とし、誰でもができるというものではないという問題があった。
【００１４】
そこで、本発明の目的は、上述した従来の技術の問題点を改善することにある。
【００１５】
【課題を解決するための手段】
本願請求項１に係わる発明は、複数の作業命令と各作業命令に対して１つ又は複数の実行プログラムとが対応付けされた組合わせを記憶する記憶手段と、該記憶手段に記憶された複数の作業命令の中から、入力された作業命令と一致するものを検出する手段と、検出された作業命令に対応する１つ又は複数の実行プログラムに対して、ロボットの状態に基いて実行するか否かを判断する判断手段と、実行すると判断された実行プログラムを実行する手段とを備えることを特徴とする産業用ロボットである。又、請求項２に係わる発明は、各作業命令に対応する複数の実行プログラムに対して、判断手段により判断する順序が予め設定されているものである。
【００１６】
又、請求項３に係わる発明は、複数の作業命令と各作業命令に対して該作業命令を実行し完了するまでに必要の可能性のある複数の所定作業単位の実行プログラムとがその実行順序と共に対応付けて記憶された記憶手段と、該記記憶手段に記憶された複数の作業命令の中から、入力された作業命令と一致するものを検出する手段と、検出された作業命令に対応する複数の実行プログラムに対して、その実行順位順にロボットの状態に基いて実行するか否かを判断する判断手段と、実行すると判断された実行プログラムを実行する手段とを備えることを特徴とする産業用ロボットである。
【００１７】
又、請求項４に係わる発明は、前記各作業命令に対応する複数の実行プログラムに対して、前記判断手段により、１つの実行プログラムを実行すると判断したときには、同一実行順序のほかの実行プログラムは実行しないと判断するようにした。上述した各請求項に係わる発明の産業用ロボットにおいて、請求項５に係わる発明は、音声入力手段を備え、該音声入力手段より作業者の音声による作業命令を入力するようにしたものである。請求項６に係わる発明は、この音声入力手段を産業用ロボットの教示操作盤に設けたものである。請求項７に係わる発明は、音声入力手段に入力される作業者の音声を拡声して知らせる手段を備えるようにしたものである。請求項８に係わる発明は、実行すると判断された実行プログラムの内容を表示する手段と、実行許可を受け付ける手段とを備えるようにした。又、請求項９に係わる発明は、作業命令を受け付けたことを産業用ロボットの教示操作盤の画面に、受け付けた作業命令を文字として表示することにより知らせるようにした。さらに、請求項１０に係わる発明は、作業命令を受け付けたことを産業用ロボットに接続した情報処理装置の画面に、受け付けた作業命令を文字として表示することにより知らせるようにした。又、請求項１１に係わる発明は、作業命令を受けつけたことを、ランプ、または音声により知らせるようにしたものである。
【００１８】
【発明の実施の形態】
図１は本発明の一実施形態の概要図である。１はロボット機構部、２はロボット機構部１を制御するロボット制御装置である。該ロボット制御装置２は、プロセッサ２１にバス２７を介して、システムプログラム２２ａとロボットの現在状態を表すロボット状態データ２２ｂを保存するシステムメモリ２２、ロボットプログラム２３ａと該ロボットプログラム２３ａを管理するための管理データ２３ｂとを記憶するための不揮発性のプログラムメモリ２３、通信ポート２６、外部機器と信号の入出力を行うための信号入出力器２５が接続されている。プロセッサ２１は、システムプログラム２２ａにより常にロボット機構部１の現在値や、信号入出力器２５の状態を検出しロボット状態データ２２ｂとして、システムメモリ２２内に書き込んでいる。又、通信ポート２６には、音声／文字データ変換装置３、教示操作盤６、情報処理装置７が接続されている。
【００１９】
音声／文字データ変換装置３には作業者が頭部につけるヘッドセット４が接続されている。音声／文字データ変換装置３は、入力された音声を認識し文字データに変換し、又、入力された文字データを音声に変換する音声／文字データ変換装置である。ヘッドセット４は音声出力装置であるヘッドフォン４１と音声入力装置であるマイク４２を備える。音声／文字データ変換装置３はヘッドセット４のマイク４２から入力された作業命令等の音声データを認識し、これを文字データに変換し、ロボット制御装置２に転送する。又、音声／文字データ変換装置３は、ロボット制御装置２から転送された文字データを音声データに変換し、ヘッドセット４のヘッドフォン４１に出力する。又、音声／文字データ変換装置３には、拡声装置５が接続され、作業者が該音声／文字データ変換装置３に入力された音声を該拡声５で拡声し、周囲に知らせると共に入力した音声指令を確認できるようにしている。
【００２０】
教示操作盤６は、各種のロボットの状態や動作プログラム等を表示するための液晶表示器６１と、ロボット制御装置２を介してロボット機構部１を手動で動作したり、各種のデータの設定を行うためのキーボード６２を持つ。情報処理装置７はロボット制御装置２を管理するコンピュータで、パーソナルコンピュータ等で構成されており、表示器７１、各種データ、指令を入力のためのキーボード７２を備える。なお、教示操作盤６及びヘッドセット４は、作業員が直接使用するものであるから、図１に示すように教示操作盤６と音声／文字データ変換装置３を分離して設けずに、教示操作盤６に音声／文字データ変換装置３を設けるようしてもよい。
【００２１】
図２はプログラムメモリ２３に格納されたロボットプログラム２３ａと管理データ２３ｂの詳細を示すブロック図である。管理データ２３ｂには、作業者がヘッドセット４のマイク４２を用いてロボットに音声で指示する作業命令が記録されている。例えば、ロボットの動作を停止し、生産サイクルを停止する際に命令する命令Ｍ１の“サイクルテイシ”や、該命令Ｍ１の“サイクルテイシ”で停止したサイクルの再開を準備するために命令する命令Ｍ２の“サイカイジュンビ”、又、アラームが発生した際にその原因を特定するために命令Ｍ３の“アラームシンダン”といった作業命令Ｍ１，Ｍ２，Ｍ３，……が複数格納されている。管理データ２３ｂには各作業命令Ｍ１，Ｍ２，Ｍ３，……に対応して実行プログラムのグループＧ１，Ｇ２，Ｇ３，…・を特定するための、リンク情報Ｌ１，Ｌ２，Ｌ３……をもつ。
【００２２】
ロボットプログラム２３ａには、プロセッサ２１によって実行される実行プログラムが多数記憶されている。記憶されている実行プログラムには、作業命令Ｍ１の命令を実現するために、実行する必要が生じる可能性がある１以上の実行プログラムのグループＧ１、作業命令Ｍ２の命令を実現するために、実行する必要が生じる可能性がある１以上の実行プログラムのグループＧ２、作業命令Ｍ３の命令を実現するために、実行する必要が生じる可能性がある１以上の実行プログラムのグループＧ３等、作業命令Ｍｉの命令を実現するために実行する必要が生じる可能性がある実行プログラムのグループＧｉ（但し、ｉ＝１，２，３／……）が、このプログラムメモリに格納されている。
【００２３】
さらに、各グループＧｉは１又は複数の実行プログラム有し、各実行プログラムは実行順序ｘ、該実行プログラムを実行するかどうかを判断するための判断部ｙ、該判断部ｙによって実行すべきと判断された場合に、実際に作業を実行する実行部ｚを持つ。図２に示すグループＧ１の例で、説明すると、該グループＧ１には、ｇ１１〜ｇ１６の実行プログラムを有し、実行プログラムｇ１１，ｇ１３，ｇ１５には、実行順序が「１」とされ、実行プログラムｇ１２は実行順序が「２」、実行プログラムｇ１４，ｇ１６は実行順序が「３」とされている。実行順序が同一であるものは、どの実行プログラムから実行するか否かの判断を行ってもよく、その判断結果により実行すべき場合は実行するようにしたものである。次の実行順序が付されている実行プログラムよりも前に実行するか否かの判断を行い、実行すべきものは実行するようにしたものである（例えば、実行順序１は、実行順次２よりも先に実行する）。このグループ内で、実行順序順に実行プログラムが格納さていない理由は、この実行プログラムを追加変更するとき、実行順序を指定して追加、又は訂正して格納すればよいようにしたもので、実行プログラムの追加変更を容易にしているものである。
【００２４】
又、判断部ｙは、該実行プログラムの実行部ｚに格納されたプログラムを実行すべき条件等を記憶し、該実行部ｚのプログラムを実行するか否かの判断を行うものである。
【００２５】
１つの作業命令を実行する際、その作業命令が入力されたときのロボットの動作状態によって、実際にこの指令された作業命令を実現する方法が異なる。そこで、この実施形態では、作業命令に対してロボットの動作状態に応じてその作業命令を実現する実行プログラムを複数記憶するものである。しかも、作業命令に対してその作業命令の作業を完了するまでの一連の実行プログラムを記憶するのではなく、作業をある作業単位に分け、この作業単位の組み合わせで各作業命令を実行するようにしている。そのため、作業命令に対して、実行する可能性のある実行プログラムに対して実行順序をあたえている。最初に実行すべき作業に対しては実行順位「１」を与え、ロボット動作状態に応じて、実行順位「１」の全ての実行プログラムに対して、判断部ｙで実行すべきか否か判断し、実行すべきものを実行し、次に実行順位「２」に対する全ての実行プログラムをそのときのロボット動作状態に応じて、実行すべきか否か判断部で判断し、必要ならば実行する。以下、最後の実行順位まで、これを繰り返し実行することにより、ロボット動作状態に応じて、指令された作業命令を遂行し達成するものである。
【００２６】
例えば、作業者がヘッドセット４のマイク４２を用いて音声で“サイクルテイシ”の作業命令を与えたとする。これは音声／文字データ変換装置３によって文字データに変換され、通信ポート２４を経由してプロセッサ２１に伝達される。プロセッサ２１はプログラムメモリ２３の管理データ２３ｂの中に、文字データと一致するものがあるかどうかを検索し、作業命令Ｍ１を検出する。該作業命令Ｍ１に対応して記憶されているリンク情報Ｌ１により、ロボットプログラム２３ａ内の実行プログラムグループＧ１を特定し、グループＧ１内の実行プログラムｇ１１からｇ１６の内、まず、実行順序ｘが「１」のもの（例えばｇ１１）に対して、その判断部ｙの処理を実行する。すなわち、判断部ｙの処理は、システムメモリ２２内のロボット状態データ２２ｂにおけるのロボット現在位置や信号状態を参照して、判断部ｙで実行部ｚのプログラムを実行すべき条件を満足しているか否か判断する。実行すべきと判断した場合には、実行部ｚの実行プログラムを実行する。又、実行すべきでない判断した場合には、この実行部ｚの実行プログラムの処理は実行しない。
【００２７】
例えば、図２の例で説明すると、実行順序ｘが「１」の実行プログラムｇ１１の処理が完了後は、次に同じく実行順序ｘが「１」である、実行プログラムｇ１３，ｇ１５に対して同じ処理（判断部ｙの実行するか否かの判断と、実行すると判断されたときの実行部ｚの処理）が実行される。実行プログラムのグループＧ１に実行順序ｘが「１」が付された実行プログラムを全て処理した後、実行順序ｘが「２」の実行プログラムｇ１２が処理される。その後、実行順序ｘが「３」の実行プログラムｇ１４，ｇ１６が処理される。実行順序が最大値に到達した場合に、処理は終了する。
又、実行順序ｘが「１」である実行プログラムｇ１１，ｇ１３，ｇ１５のうち、どれか１つを実行すれば、他の実行プログラムは実行しなくてよいことが予めわかっている場合には、実行順序ｘが「１」の実行プログラムｇ１１の判断部により実行するか否かの判断を行い、実行すると判断した場合には、実行順序ｘが同じ「１」である、ｇ１３，ｇ１５の判断部による判断を行うことなく、実行しないと判断し、次に実行順序ｘが「２」である実行プログラムｇ１２を処理することで、不要な判断を省くことで、処理全体の効率を図ってもよい。
【００２８】
以上のようにして、音声指令された作業指令に対して、ロボットの現在位置やＩ／Ｏ信号状態等のロボットシステムの動作状態に応じて、実行すべき実行プログラムを選別し、不必要なもの、実施すべきではないものを、実行せず、必要な実行部ｚのプログラムのみを実行することにより作業指令を出した作業者の意図どおりに、安全にかつ的確に自動的に実行するものである。
【００２９】
本発明の理解を容易にするために、図３に本発明を適用した一具体例を示す。この例は、ロボットによって重量物を搬送する際、“サイクルテイシ”と作業者から作業命令を指示された場合における、ロボット動作について説明する。
ロボットの機構部１は、コンベア１０によって搬送されてきたワークＷを把持して、パレット１２に積み上げる作業を行うものとする。コンベア１０の近くには、仮置き台１１が用意されている。まずロボットはその機構部１を駆動し、ロボットアーム先端をコンベア１０に移動し、ロボットアーム先端に取り付けられたエンドエフェクタ１３によりワークＷを把持する。ワークＷを把持したまま一定距離だけ上昇し、パレット１２の上に水平移動する。パレット１２の上に到達したら、下降してパレット１２上にワークＷを積み上げる。このような作業をロボットは繰り返し実行している。
【００３０】
このようなロボット動作作業において、“サイクルテイシ”という作業命令をに対して、図４に示すように、５つの実行プログラムがこの例では記憶されている。実行順序１のものは一つだけであり、これはロボットのエンドエフェクタがワークＷを把持していない場合であり、この場合にはロボットは直ちに停止してよいことを表している。“サイクルテイシ”の命令があった場合には、最初にこの実行順序が１の実行プログラムの条件部ｙにより、ロボットがワークを把持しているかどうかの確認が行われて、把持していない場合には、実行部ｚの処理によりロボットは停止する。
【００３１】
実行順序２の動作プログラムは三つあり、それぞれロボットが上昇中の場合、水平移動中の場合、下降中の場合、におけるロボットが行わなければならない作業を指定している。既に実行順序１の動作プログラムにより、ワークＷの把持していない場合には、ロボットは停止させられるため、実行順序２の動作プログラムの条件部ｙが評価される際には、必ずロボットはワークＷを把持していることになる。ワークＷを把持して上昇中の場合には、ロボットは下降してワークＷを仮置台１１にワークＷを置く。ワークＷを把持して水平移動中は、ロボットはそのまま水平移動を継続し、ワークＷをパレット１２に積む作業を行う。ワークＷを把持して下降中の場合は、下降を継続してワークＷをパレット１２に積む作業を行う。
【００３２】
実行順序３の実行プログラムは、ワークＷを把持している場合には、ワークＷを離してロボットが停止するように指示されている。実行順序２の実行プログラムにより、ロボットは、かならずロボットは仮置き台１１もしくはパレット１２のどちらかに、ワークＷを把持して置いた状態であるので、実行順序３の実行プログラムにより、ワークＷを離してロボットは停止する。
【００３３】
又、ワークＷを把持した状態でロボットが水平移動中の場合でも、例えばロボットの速度が低速の場合には、引き返して、仮置き台１１にワークＷを戻したいとした場合には、実行順序が２で、ロボットが水平移動中の場合に実行する実行プログラムの動作条件を、ロボットが高速にて水平移動中の場合に変更する。そして新しく、ロボットが低速にて水平移動中である場合には、水平移動を中断して、ワークＷを仮置き台に置くという実行順序が２の実行プログラムを新規に作成して、“サイクルテイシ”の作業命令に対する実行プログラムのグループに追加する。
【００３４】
これにより、作業命令が作業者から指令に対して、ロボットの状態に応じて、ロボットがどのように振る舞えばよいのかを容易にロボットに教え、動作させることができる。
【００３５】
図５、図６は、この実施形態におけるロボット制御装置２のプロセッサ２１が所定周期毎本発明に関係して実行する処理のフローチャートである。
【００３６】
プロセッサ２１は、文字データを受信したか判断し（ステップ１００）、受信してなければ、この周期の処理を終了する。又、受信していると、受信文字データと一致する作業命令が管理データ２３ｂ内にあるか判断する（ステップ１０１）。管理データ内に一致する文字データ（作業命令）がない場合には、この周期の処理を終了する。なお、一致する文字データ（作業命令）がないということは、誤った入力であることをも意味することから、誤っていることを示す情報を、音声／文字データ変換装置３（さらには、教示操作盤６、情報処理装置７）に送信し、音声、文字又はランプやブザー等で作業者に知らせるようにしてもよい。
【００３７】
管理データ２３ｂに記憶する作業命令中に入力された文字データと一致する作業命令があると、この一致した作業命令を音声／文字データ変換装置３に送信し、その作業命令を拡声装置５で発声させ（ステップ１０２）、教示操作盤６、情報処理装置７にも送信し、該作業命令を表示器６１、７１に表示させる（ステップ１０３）。さらには、図示しない操作パネルの表示画面に表示させる。又、ランプによって、作業命令を受け付けたことを知らせてもよい。この場合、作業命令を受け付けなかったときのランプの発光色とは異なる色で発光させて知らせるようにする。
【００３８】
作業者は，拡声装置５から発生されたこの作業命令、又は、表示器６１、７１に表示された作業命令を確認し、教示操作盤６又は情報処理装置７のキーボード６２，７２を操作し、誤っていれば、キャンセルキーを押し、正しければ確認キーを押す。プロセッサ２１は、キャンセルキーが押されたか、確認キーが押されたか判断し（ステップ１０４，１０５）、キャンセルキーがオンならば、この処理を終了し，再度の文字データの入力を待つ。又、確認キーがオンならば、この入力文字データと一致した作業命令に対して記憶されているリンク情報に基づいて、実行プログラムグループを特定する（ステップ１０６）。
【００３９】
この実行プログラムグループ内の各実行プログラムにおいて、それぞれが記憶する実行順序ｘを指定する指標ｊを「１」にセットし（ステップ１０７）、実行プログラム（ｇ１１，ｇ１２…等）自体を示す指標ｉを「１」にセットする（ステップ１０８）。次に、指標ｉで示される実行プログラムのセットされている実行順序ｘが指標ｊと一致するか判断し（ステップ１０９）、一致しなければ、ステップ１１３に移行して、指標ｉを「１」インクリメントし、該指標ｉに対応する実行プログラムがあるか判断し（ステップ１１４）、あるならば、再びステップ１０９に戻り，該指標ｉの実行プログラムにセットされている実行順序ｘが指標ｊと一致するか判断する。
【００４０】
以下、指標ｉの実行プログラムの実行順序ｘと指標ｊとが一致するまで、ステップ１０９、１１３、１１４の処理を繰り返し実行する。実行順序ｘと指標ｊとが一致すると、システムメモリ２２に記憶するロボット状態データを読み出し（ステップ１１０）、該読み出したロボット状態データに基づいて、指標ｊと実行順次が一致した当該作業ブログラムの判断部ｙに記憶されている処理を実行する（ステップ１１１）。すなわち、当該実行プログラムの実行部ｚに格納されている処理を実行させる条件を、読み出したロボット状態データが満足するか否か判断する処理を実行する。そして、満足しないものであれば、ステップ１１３に移行し、満足するものであれば、この指標ｉで示される実行プログラムの実行部ｚに記憶されているプログラムを教示操作盤６、情報処理装置７に送信し、表示器６１，７１に表示させる（ステップ１１５）。
【００４１】
作業員はこの表示された実行プログラムを確認し（ステップ１１６，１１７）、実行させるものであれば，教示操作盤６のキーボード６２中の確認キー又は情報処理装置７のキーボード７２中の確認キーを操作する。プロセッサ２１は、この確認キーからの入力があったことを検出すると（ステップ１１７）、この実行プログラムの実行部ｚに記憶する処理を実行する（ステップ１１８）。そして、ステップ１１３に戻る。又、ステップ１１５で表示された実行プログラムを見て作業員がキャンセルキーを操作してキャンセル指令を入力すると（ステップ１１６）、当該実行プログラムを実行することなくステップ１１３に戻る。
【００４２】
以下、ステップ１０９からステップ１１８の処理を繰り返し実行し、実行順序ｘが指標ｊで示される実行プログラムに対して、そのプログラムを実行すべきか否かをその判断部ｙの処理で判断し、実行すべきと判断された実行プログラムはその実行部ｚの処理を実行し、実行すべきではないと判断された実行プログラムは、実行されることはなく、次の実行プログラムに移行する。
【００４３】
かくして、指標ｉがステップ１１３で更新され、ステップ１１４で指標ｉに該当する登録されている実行プログラムがないことが検出されると、指標ｊで示される実行順序ｘがなくなったことを意味するから、ステップ１１４からステップ１１９に移行し、指標ｉを「１」にセットすると共に，指標ｊを「１」インクリメントする。そして、指標ｊに対応する実行順序ｘがあるか判断し、あれば、ステップ１０９以降の処理を実行し、なければ、この処理を終了する。
【００４４】
かくして、指標ｊが「１」の実行順序ｘから開始され、実行プログラムを指定する指標ｉを１から順次インクリメントして、この作業クループ内の全ての実行プログラムに対して、実行順序が「１」の実行プログラムを検出し、その実行プログラムを判断部ｙで実行すべきプログラムと判断されたときには、その実行部ｚに記憶するプログラムを実行する。そして、指標ｊを「２」に更新し、実行順序ｘ＝２に対して同様な処理を行い、以下、指標ｊを順次更新しながら、記憶する実行順序が無くなるまで、必要な実行プログラムのみを自動的に実行する。
なお、上述した実施形態では、ステップ１１８からステップ１１３に移行したが、ステップ１１８からステップ１１９に移行し、実行プロクラムの実行部ｚを実行すると判断し実行した後、同一の実行順序の実行プログラムは判断部ｙでの実行するか否かの判断を行うことなく、次の実行順序の実行プログラムを実行するか否かの判断処理に移行するようにしてもよい。
【００４５】
上述した実施形態では、ロボットに対する指令を音声によって入力するようにした。これによって、他に何ら操作することなく、ロボットに指令を与えることができるので、熟練者ではなくても、誰でも、簡単に容易にロボットに対して指令を与えることができる。又、音声ではなく、教示操作盤６や情報処理装置７から、この指令を入力するようにしてもよい。例えば、教示操作盤６や情報処理装置７のキーボード６２、７２から、作業命令のメッセージ（文字データ）を入力することによって指令してもよく、さらには、教示操作盤６や情報処理装置７の表示器６１、７２にプログラムメモリ２３内に記憶されている管理データ２３ｂの作業命令を表示しておき、この表示された作業命令を選択指定することによって、ロボットへの命令を入力するようにしてもよい。こうして入力された後の動作処理は、上述した実施形態と同一である。
【００４６】
又、上述した実施形態では、実行プログラムのグループＧ１，Ｇ２，Ｇ３，…・に記憶する実行プログラムは、作業命令に対してその作業命令の作業を完了するまでの一連の実行プログラムを記憶するのではなく、作業をある作業単位に分け、この作業単位の組み合わせで各作業命令を実行するようにしている。これは、実行プログラムの重なり等を防止するものである。しかし、作業命令に対して、該作業命令をロボット動作状態に応じて、最後まで実行する一連の作業プログラムを記憶するようにしておいてもよい。この場合には、作業命令に対して、ロボット動作状態に応じて１つの実行プログラムが実行されることになる。
【００４７】
【発明の効果】
稼動中、停止状態をも含めてロボットに対して、簡単に指令を与えることができ、かつ、ロボット自体が指令された作業指令に対して、必要な動作処理のみを実行し、指令作業を自動的に実行するから、簡単に安全にかつ容易にロボットに指令を与えることができる。
【図面の簡単な説明】
【図１】本発明の一実施形態の概要図である。
【図２】同実施形態におけるロボットの実行プログラムと管理データの詳細を示すブロック図である。
【図３】本発明を適用した一具体例の説明図である。
【図４】同具体例における作業命令“サイクルテイシ”に対して記憶された作業プログラムグループの例の説明図である。
【図５】同実施形態の動作処理のフローチャートである。
【図６】同フローチャートの続きである。
【符号の説明】
１  ロボット機構部
２  ロボット制御装置
３  音声／文字データ変換装置
４  ヘッドセット
５  拡声装置
６  教示操作盤
７  情報処理装置
１０  コンベア
１１  仮置き台
１２  パレット
４１  ヘッドフォン
４２  マイク
【図１】
2004181564.tif 000003
【図２】
2004181564.tif 000004
【図３】
2004181564.tif 000005
【図４】
2004181564.tif 000006
【図５】
2004181564.tif 000007
【図６】
2004181564.tif 000008