(57)【要約】【課題】ユーザーが入力した所望のコマンドによってロボットを動作させることができる教示装置を提供すること。【解決手段】教示装置は、ロボット制御装置にロボットの動作を教示する教示装置であって、コマンドを入力可能で、前記コマンドを表示可能な表示部を備え、前記コマンドの実行を前記ロボット制御装置に指示可能である。【選択図】図３
2017019056.tif 000002
【特許請求の範囲】
【請求項１】
ロボット制御装置にロボットの動作を教示する教示装置であって、
コマンドを入力可能で、前記コマンドを表示可能な表示部を備え、
前記コマンドの実行を前記ロボット制御装置に指示可能である、
教示装置。
【請求項２】
イネーブルスイッチを備え、
前記イネーブルスイッチが押下されている状態においてのみ前記コマンドの実行を前記ロボット制御装置に指示可能である、
請求項１に記載の教示装置。
【請求項３】
前記ロボット制御装置において前記コマンドが実行されており、且つ前記イネーブルスイッチが押下されている状態から、押下されていない状態に変化した場合、前記コマンドの実行を前記ロボット制御装置に中断させる、
請求項２に記載の教示装置。
【請求項４】
前記コマンドを編集可能である、
請求項１から３のうちいずれか一項に記載の教示装置。
【請求項５】
前記コマンドに含まれる命令語の先頭の文字が入力されると、前記命令語を表示する、
請求項１から４のうちいずれか一項に記載の教示装置。
【請求項６】
前記コマンドの実行ボタンを有する、
請求項１から５のうちいずれか一項に記載の教示装置。
【請求項７】
１画面に、前記コマンドを入力する第１領域と、前記コマンドの実行結果を表示する第２領域を有する、
請求項１から６のうちいずれか一項に記載の教示装置。
【請求項８】
請求項１から７のうちいずれか一項に記載の教示装置により教示される、
ロボット。
【請求項９】
請求項１から７のうちいずれか一項に記載の教示装置と、
請求項８に記載のロボットと、
前記ロボット制御装置と、を備える、
ロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、教示装置、ロボット、及びロボットシステムに関する。
【背景技術】
【０００２】
ロボットに動作を教示する作業を容易にする技術の研究や開発が行われている。
【０００３】
これに関し、ロボットを動作させるプログラムを修正することができる教示操作盤が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭６２−２１９１０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の教示操作盤では、修正後のプログラムが正常に動作するか否かを確認するためには、プログラムの全体を実行させなければならず、プログラムのうちの修正した箇所に関連する部分のみを実行させることができなかった。その結果、当該教示操作盤は、例えば、ユーザーにプログラムの修正作業を効率的に行わせることができなかった。
【課題を解決するための手段】
【０００６】
上記課題の少なくとも一つを解決するために本発明の一態様は、ロボット制御装置にロボットの動作を教示する教示装置であって、コマンドを入力可能で、前記コマンドを表示可能な表示部を備え、前記コマンドの実行を前記ロボット制御装置に指示可能である、教示装置である。
この構成により、教示装置は、コマンドを入力可能であり、当該コマンドを表示可能であり、当該コマンドの実行をロボット制御装置に指示可能である。これにより、教示装置は、ユーザーが入力した所望のコマンドをロボット制御装置に指示することができる。その結果、教示装置は、例えば、ユーザーにプログラムの修正作業を効率的に行わせることができる。
【０００７】
また、本発明の他の態様は、教示装置において、イネーブルスイッチを備え、前記イネーブルスイッチが押下されている状態においてのみ前記コマンドの実行を前記ロボット制御装置に指示可能である、構成が用いられてもよい。
この構成により、教示装置は、イネーブルスイッチが押下されている状態においてのみコマンドの実行をロボット制御装置に指示可能である。これにより、教示装置は、ユーザーが意図せずしてコマンドの実行をロボット制御装置に指示してしまうことを抑制することができる。
【０００８】
また、本発明の他の態様は、教示装置において、前記ロボット制御装置において前記コマンドが実行されており、且つ前記イネーブルスイッチが押下されている状態から押下されていない状態に変化した場合、前記コマンドの実行を前記ロボット制御装置に中断させる、構成が用いられてもよい。
この構成により、教示装置は、ロボット制御装置においてコマンドが実行されており、且つイネーブルスイッチが押下されている状態から押下されていない状態に変化した場合、コマンドの実行をロボット制御装置に中断させる。これにより、教示装置は、例えば、コマンドの実行によってロボットが意図しない動作を行った場合等の緊急にロボットを停止させなければならない場合、ユーザーがイネーブルスイッチから手を離すことによってロボットを停止させることができる。
【０００９】
また、本発明の他の態様は、教示装置において、前記コマンドを編集可能である、構成が用いられてもよい。
この構成により、教示装置は、コマンドを編集可能である。これにより、教示装置は、ユーザーが編集した所望のコマンドの実行をロボット制御装置に指示することができる。
【００１０】
また、本発明の他の態様は、教示装置において、前記コマンドに含まれる命令語の先頭の文字を入力すると、前記命令語が表示される、構成が用いられてもよい。
この構成により、教示装置は、コマンドに含まれる命令語の先頭の文字が入力されると、当該命令語を表示する。これにより、教示装置は、コマンドの入力作業を短縮することができる。
【００１１】
また、本発明の他の態様は、教示装置において、前記コマンドの実行ボタンを有する、構成が用いられてもよい。
この構成により、教示装置は、コマンドの実行ボタンを有する。これにより、教示装置は、ユーザーが所望のタイミングでコマンドをロボット制御装置に実行させることができる。
【００１２】
また、本発明の他の態様は、教示装置において、１画面に、前記コマンドを入力する第１領域と、前記コマンドの実行結果を表示する第２領域を有する、構成が用いられてもよい。
この構成により、教示装置は、１画面に、コマンドを入力する第１領域と、コマンドの実行結果を表示する第２領域とを表示する。これにより、教示装置は、ユーザーに、入力したコマンドと、当該コマンドの実行結果とを見比べさせながら作業を行わせることができる。
【００１３】
また、本発明の他の態様は、上記のいずれかに記載の教示装置により教示される、ロボットである。
この構成により、ロボットは、コマンドを入力可能であり、当該コマンドを表示可能であり、当該コマンドの実行をロボット制御装置に指示可能である教示装置により教示される。これにより、ロボットは、ユーザーが入力した所望のコマンドにより動作することができる。
【００１４】
また、本発明の他の態様は、上記のいずれかに記載の教示装置と、上記に記載のロボットと、前記ロボット制御装置と、を備える、ロボットシステムである。
この構成により、ロボットシステムは、教示装置が、コマンドを入力可能で表示可能であり、コマンドの実行をロボット制御装置に指示可能である。これにより、ロボットシステムは、ユーザーが入力した所望のコマンドをロボット制御装置に指示することができる。その結果、ロボットシステムは、例えば、ユーザーにプログラムの修正作業を効率的に行わせることができる。
【００１５】
以上により、教示装置、及びロボットシステムは、コマンドを入力可能で表示可能であり、コマンドの実行をロボット制御装置に指示可能である。これにより、教示装置、及びロボットシステムは、ユーザーが入力した所望のコマンドをロボット制御装置に指示することができる。
また、ロボットは、コマンドを入力可能であり、当該コマンドを表示可能であり、当該コマンドの実行をロボット制御装置に指示可能である教示装置により教示される。これにより、ロボットは、ユーザーが入力した所望のコマンドにより動作することができる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態に係るロボットシステム１の一例を示す構成図である。
【図２】教示装置１０のハードウェア構成の一例を示す図である。
【図３】教示装置１０の機能構成の一例を示す図である。
【図４】制御部１８がロボット制御装置３０にコマンドを実行させる処理の流れの一例を示すフローチャートである。
【図５】コマンド実行画面の一例を示す図である。
【図６】コマンド実行画面Ｐ１上に表示された確認画面の一例を示す図である。
【図７】第２領域Ｒ２にコマンドの実行結果を示す情報が表示されたコマンド実行画面の一例を示す図である。
【図８】ロボット制御装置３０がコマンドを実行してからコマンドの実行を完了するまでの間に所定の条件が満たされなくなった場合に制御部１８がロボット制御装置３０にコマンドの実行を中断させる処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００１７】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。図１は、本実施形態に係るロボットシステム１の一例を示す構成図である。ロボットシステム１は、教示装置１０と、ロボット制御装置３０と、ロボット５０を備える。
まず、ロボットシステム１が備える各構成について説明する。
【００１８】
教示装置１０は、ロボット制御装置３０にロボット５０の動作を示す情報を教示する。また、教示装置１０は、動作プログラムをロボット制御装置３０に実行させ、当該動作プログラムに応じた所定の作業をロボット５０に行わせる。動作プログラムは、例えば、プログラム言語の一種であるロボット言語によって記述され、ロボット５０に所定の作業を行わせるプログラムである。また、動作プログラムは、ロボット５０を動作させ、所定の作業をロボット５０に行わせるプログラムである。なお、動作プログラムは、ロボット言語とは異なる他のプログラム言語によって記述される構成であってもよい。
【００１９】
また、教示装置１０は、コマンド実行画面を表示する。コマンド実行画面には少なくとも、コマンドを入力可能で表示可能な第１領域Ｒ１と、第１領域Ｒ１に入力されたコマンドの実行結果を表示する第２領域Ｒ２とが含まれる。この一例において、コマンドは、ロボット５０を動作させる命令を示す命令語のみ、又は当該命令語と、当該命令語に付随する引数とによって構成される命令文である。この一例において、命令語は、ロボット言語において定義される語であり、動作プログラムを記述することにも用いられる。なお、命令語は、ロボット５０を動作させる命令を示す語であれば、ロボット言語とは異なる他のプログラム言語によって定義される語であってもよく、動作プログラムを記述することには用いられない語であってもよい。
【００２０】
引数は、例えば、ポイント位置情報やポイント情報である。ポイントは、ロボット５０の所定部位を移動させる際に当該所定部位を経由させる点のことである。ロボット５０の所定部位は、この一例において、ロボット５０のＴＣＰ（Tool  Center  Point）である。なお、ロボット５０の所定部位は、これに代えて、他の部位であってもよい。ポイント位置情報は、ポイントの位置を示す情報のことである。例えば、ポイント位置情報は、ロボット座標系においてポイントの位置を示す座標である。ポイント情報は、ポイント位置情報に対応付けられたＴＣＰの位置及び姿勢を示す情報、すなわちポイント位置情報が示すポイントの位置におけるＴＣＰの位置及び姿勢を示す情報のことである。なお、引数は、ポイント位置情報やポイント情報に代えて、他の情報であってもよい。
【００２１】
教示装置１０は、ユーザーから受け付けられた操作に基づいて、第１領域Ｒ１に入力されたコマンドの実行をロボット制御装置３０に指示可能である。より具体的には、教示装置１０は、ユーザーから受け付けられた操作に基づいて、第１領域Ｒ１に入力されたコマンドを示す情報をロボット制御装置３０に出力する。そして、教示装置１０は、当該コマンドの実行をロボット制御装置３０に指示する。
【００２２】
すなわち、教示装置１０は、ユーザーが入力した所望のコマンドの実行をロボット制御装置３０に指示することができる。例えば、ユーザーが入力した所望のコマンドが動作プログラムに含まれる１以上のコマンドの一部であった場合、教示装置１０は、動作プログラムの一部のみをロボット制御装置に実行させる。すなわち、教示装置１０は、動作プログラムをコマンド単位で修正した場合に、修正したコマンドのみをユーザーに入力されることにより、入力された当該コマンドの実行をロボット制御装置３０に指示することができる。その結果、教示装置１０は、ユーザーが行う動作プログラムの修正作業の効率を向上させることができる。
【００２３】
また、教示装置１０は、ユーザーに入力されたコマンドの実行をロボット制御装置３０に指示した場合、ロボット制御装置３０に指示したコマンドの実行結果を示す情報をロボット制御装置３０から取得する。教示装置１０は、取得した当該実行結果を示す情報を第２領域Ｒ２に表示させる。以下では、当該実行結果を示す情報を第２領域Ｒ２に表示させることを、当該実行結果を第２領域Ｒ２に表示させると称して説明する。
【００２４】
ロボット制御装置３０は、教示装置１０により教示されたロボット５０の動作を示す情報に基づいて、ロボット５０を動作させる。また、ロボット制御装置３０は、教示装置１０からの指示に基づいて、教示装置１０から取得したコマンドを実行してロボット５０を動作させる。また、ロボット制御装置３０は、教示装置１０から取得した動作プログラムを実行してロボット５０に所定の作業を行わせる。ロボット制御装置３０は、ロボット５０を動作させる際、ロボット５０が備える各機能部のそれぞれに制御信号を送信する。これにより、ロボット制御装置３０は、ロボット５０を動作させる。
【００２５】
ロボット５０は、１本のアーム（腕）を備える単腕ロボットである。なお、ロボット５０は、単腕ロボットに代えて、２本のアームを備える双腕ロボットであってもよく、パラレルリンクロボットであってもよく、直交軸ロボットであってもよく、単軸ロボットであってもよく、スカラロボットであってもよい。
【００２６】
アームは、エンドエフェクターＥと、マニピュレーターＭと、図示しない複数のアクチュエーターによって構成される。アームは、７軸垂直多関節型のアームである。具体的には、アームは、支持台と、エンドエフェクターＥと、マニピュレーターＭとがアクチュエーターによる連携した動作によって７軸の自由度の動作を行う。
【００２７】
各アクチュエーターは、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、アクチュエーターは、ロボット制御装置３０から取得される制御信号に基づいて、エンドエフェクターＥとマニピュレーターＭを動作させることができる。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。また、アクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００２８】
上記で説明したロボット５０が備える各機能部は、ロボット制御装置３０から制御信号を取得する。そして、これらの各機能部は、取得した制御信号に基づいた動作を行う。すなわち、ロボット５０は、ロボット５０の外部に設置されたロボット制御装置３０により制御される。なお、ロボット５０は、これに代えて、ロボット５０に内蔵されたロボット制御装置３０により制御される構成であってもよい。
【００２９】
次に、図２を参照し、教示装置１０のハードウェア構成について説明する。図２は、教示装置１０のハードウェア構成の一例を示す図である。教示装置１０は、例えば、ＣＰＵ（Central  Processing  Unit）１１と、記憶部１２と、入力受付部１３と、通信部１４と、表示部１５と、イネーブルスイッチ１６と、ジョグキー１７を備える。また、教示装置１０は、通信部１４を介してロボット制御装置３０と通信を行う。これらの構成要素は、バスＢｕｓを介して相互に通信可能に接続されている。
【００３０】
ＣＰＵ１１は、記憶部１２に格納された各種プログラムを実行する。
記憶部１２は、例えば、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read−Only  Memory）、ＲＯＭ（Read−Only  Memory）、ＲＡＭ（Random  Access  Memory）などを含む。記憶部１２は、教示装置１０が処理する各種情報やプログラム、前述の命令語を示す情報等を格納する。なお、記憶部１２は、教示装置１０に内蔵されるものに代えて、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置でもよい。
【００３１】
入力受付部１３は、例えば、キーボードやマウス、タッチパッド等の入力装置である。この一例において、入力受付部１３は、タッチパネルとして表示部１５と一体に構成されている。
通信部１４は、例えば、ＵＳＢ等のデジタル入出力ポートやイーサネット（登録商標）ポート等を含んで構成される。
表示部１５は、例えば、液晶ディスプレイパネル、あるいは、有機ＥＬ（ElectroLuminescence）ディスプレイパネルである。
【００３２】
イネーブルスイッチ１６は、押下されることにより教示装置１０の状態を、コマンドを実行可能な状態にするスイッチである。イネーブルスイッチ１６が押下された状態において、教示装置１０は、コマンドの実行をロボット制御装置３０に指示することが可能である。一方、イネーブルスイッチ１６が押下されていない状態では、教示装置１０は、コマンドの実行をロボット制御装置３０に指示することが不可能である。
ジョグキー１７は、ロボット制御装置３０にロボット５０を動作させるハードウェアキーである。なお、ジョグキー１７は、これに代えて、ソフトウェアキーである構成であってもよく、ジョグキー１７のうちの一部がハードウェアキーであり、ジョグキー１７のうちの残りの一部がソフトウェアキーである構成であってもよい。
【００３３】
次に、図３を参照し、教示装置１０の機能構成について説明する。図３は、教示装置１０の機能構成の一例を示す図である。教示装置１０は、記憶部１２と、入力受付部１３と、通信部１４と、表示部１５と、イネーブルスイッチ１６と、ジョグキー１７と、制御部１８を備える。
【００３４】
制御部１８は、教示装置１０の全体を制御する。制御部１８は、表示制御部２０と、コマンド実行部２３を備える。制御部１８が備えるこれらの機能部は、例えば、ＣＰＵ１１が、記憶部１２に記憶された各種プログラムを実行することで実現される。また、これらの機能部のうち一部又は全部は、ＬＳＩ（Large  Scale  Integration）やＡＳＩＣ（Application  Specific  Integrated  Circuit）等のハードウェア機能部であってもよい。
【００３５】
なお、制御部１８は、ロボット５０の動作を示す情報をロボット制御装置３０に教示する機能や、ジョグキー１７により受け付けた操作に基づいてロボット制御装置３０にロボット５０を動作させる機能を有するが、これらの機能について図３では図示を省略している。
【００３６】
表示制御部２０は、教示装置１０が有する各機能に対応した画面（ＧＵＩ（Graphical  User  Interface））を生成する。また、表示制御部２０は、入力受付部１３を介してユーザーから受け付けた操作に基づいて、コマンド実行画面を生成する。また、表示制御部２０は、コマンドの実行をロボット制御装置３０に指示するか否かをユーザーに確認する確認画面を生成する。表示制御部２０は、生成したこれらの画面（コマンド実行画面、確認画面等）を表示部１５に表示させる。また、表示制御部２０は、ロボット制御装置３０によるコマンドの実行結果を示す情報を、第２領域Ｒ２を介して表示部１５に表示させる。
【００３７】
コマンド実行部２３は、所定の条件が満たされた状態において教示装置１０が備える図示しない実行ボタンが押下された場合、入力受付部１３から第１領域Ｒ１を介して入力されたコマンドを示す情報をロボット制御装置３０に通信部１４を介して出力する。そして、コマンド実行部２３は、当該コマンドの実行をロボット制御装置３０に指示する。実行ボタンは、コマンド実行部２３に当該コマンドの実行をロボット制御装置３０へ指示させるボタンである。また、実行ボタンは、この一例において、ハードウェアキーである。なお、実行ボタンは、ハードウェアキーに代えて、ソフトウェアキーであってもよい。
【００３８】
また、コマンド実行部２３は、ロボット制御装置３０により当該コマンドが実行されている場合において、所定の条件が満たされた状態から満たされていない状態に教示装置１０の状態が変化したと判定部２７が判定した場合、当該コマンドの実行をロボット制御装置３０に中断させる。
【００３９】
以下、図４〜図７を参照し、制御部１８がロボット制御装置３０にコマンドの実行を指示する処理について説明する。図４は、制御部１８がロボット制御装置３０にコマンドの実行を指示する処理の流れの一例を示すフローチャートである。なお、図４に示したフローチャートにおいて、表示部１５には、表示制御部２０が生成したコマンド実行画面がすでに表示されている場合について説明する。
【００４０】
表示制御部２０は、コマンド実行画面に含まれる第１領域Ｒ１がタップされるまで待機する（ステップＳ１００）。ここで、図５を参照し、コマンド実行画面について説明する。図５は、コマンド実行画面の一例を示す図である。図５に示したコマンド実行画面Ｐ１には、一例として、第１領域Ｒ１と、第２領域Ｒ２と、メニューリストＭ０と、ボタンＢ１〜ボタンＢ４と、プルダウンメニューＬ１とが含まれている。
【００４１】
図５に示した第１領域Ｒ１には、コマンドＣ１として「Ｇｏ  ｘｘｘ」が入力されている。このコマンドは、命令語「Ｇｏ」によって現在のロボット５０のＴＣＰの位置を、目標点となるポイントの位置を示すポイント位置情報「ｘｘｘ」が示す位置まで、ロボット５０が機械的に最も動きやすい経路によって移動させる命令文である。ユーザーは、入力受付部１３を介して、第１領域Ｒ１にコマンドＣ１のようなコマンドの入力又は編集を行うことができる。
【００４２】
また、表示制御部２０は、ユーザーが第１領域Ｒ１に命令語の先頭の文字を入力した場合、入力された先頭の文字と一致する先頭の文字を有する命令語のリストを表示する。ユーザーは、表示されたリストから命令語を選択することにより、第１領域Ｒ１に選択した命令語を入力することができる。例えば、ユーザーが命令語の先頭の文字として「Ｇ」を入力した場合、命令語「Ｇｏ」のように先頭の文字が「Ｇ」の命令語を含むリストが表示される。また、例えば、ユーザーが命令語の先頭の文字として「Ｍ」を入力した場合、命令語「Ｍｏｖｅ」のように先頭の文字が「Ｍ」の命令語を含むリストが表示される。表示制御部２０は、記憶部１２に予め記憶された命令語を示す情報を読み出し、読み出した命令語を示す情報に基づいてこのようなリストを表示する。このように、表示制御部２０は、ユーザーが行う第１領域Ｒ１へのコマンドの入力を支援する。なお、表示制御部２０は、このような支援に代えて、又はこのような支援に加えて、命令語に付随して入力される可能性のある引数や変数のリストを表示させる等の他の支援を行う構成であってもよい。
【００４３】
なお、命令語「Ｍｏｖｅ」は、ロボット５０のＴＣＰを、「Ｍｏｖｅ」の後に付随するポイント位置情報が示す位置まで直線的に移動させる命令文である。また、第１領域Ｒ１に入力される命令語は、「Ｇｏ」や「Ｍｏｖｅ」に限られるわけではなく、例えば、「Ａｒｃ」や「Ｊｕｍｐ３」、「Ｓｐｅｅｄ」、「Ｂａｓｅ」、「Ｍｏｔｏｒ」等であってもよい。「Ａｒｃ」は、目標位置となるポイントまでの経路を規定して円弧補完動作をロボット５０に行わせる命令語である。また、「Ｊｕｍｐ３」は、ゲートモーション、すなわち円の形のような上から横、横から下という動作をロボット５０に行わせる命令語である。「Ｓｐｅｅｄ」は、ロボット５０のＴＣＰを、ロボット５０が機械的に最も動きやすい経路によって目標点となるポイントまで移動させる際の移動速度を設定する命令語である。「Ｂａｓｅ」は、ロボット制御装置３０にＢａｓｅ座標系を設定する命令語である。「Ｍｏｔｏｒ」は、ロボット５０の各アクチュエーターが備えるモーターの電源をオン又はオフに設定する命令語である。これらの命令語は、ロボット５０を動作させるためのコマンドである。ロボット５０を動作させないコマンドには、例えば、「ｄａｔｅ」等が含まれる。「ｄａｔｅ」は、「ｄａｔｅ」の実行結果として日付を第２領域Ｒ２に表示させるコマンドである。
【００４４】
また、図５に示したコマンド実行画面Ｐ１は、コマンド実行部２３がコマンドＣ１をロボット制御装置３０に実行させていない状態におけるコマンド実行画面である。このため、表示制御部２０は、第２領域Ｒ２に何も表示していない。
【００４５】
メニューリストＭ０には、メニューボタンＭ１〜Ｍ６が含まれている。メニューボタンＭ１は、教示装置１０の動作を制御するための制御画面を表示するボタンである。表示制御部２０は、入力受付部１３を介してメニューボタンＭ１がタップされた場合、当該制御画面を表示する。メニューボタンＭ２は、ジョグキー１７を用いた教示であるオンラインティーチングによって教示を行うための第１教示画面を表示するボタンである。表示制御部２０は、入力受付部１３を介してメニューボタンＭ２がタップされた場合、第１教示画面を表示する。
【００４６】
なお、図５に示したコマンド実行画面Ｐ１は、この一例において、教示装置１０がユーザーから受け付けた操作に基づいて第１教示画面から切り替え可能な１以上の画面のうちの１つである。第１教示画面には、プルダウンメニューＬ１が表示される。ユーザーは、第１教示画面に表示されているプルダウンメニューＬ１をタップすることにより、第１教示画面から切り替え可能な１以上の画面のリストを表示することができる。なお、第１教示画面から切り替え可能な１以上の画面のそれぞれにも、プルダウンメニューＬ１が表示される。ユーザーは、第１教示画面に表示されたリストからコマンド実行画面Ｐ１を選択することにより、コマンド実行画面Ｐ１を表示部１５に表示することができる。なお、ユーザーが第１教示画面に表示されたリストからコマンド実行画面Ｐ１を選択した場合、表示制御部２０は、コマンド実行画面Ｐ１をポップアップ表示する構成であってもよい。
【００４７】
メニューボタンＭ３は、ダイレクトティーチングによって教示を行うための第２教示画面を表示するボタンである。表示制御部２０は、入力受付部１３を介してメニューボタンＭ３がタップされた場合、第２教示画面を表示する。メニューボタンＭ４は、ロボット５０を動作させる動作プログラムを編集するための編集画面を表示するボタンである。表示制御部２０は、入力受付部１３を介してメニューボタンＭ４がタップされた場合、編集画面を表示する。
【００４８】
メニューボタンＭ５は、編集画面において作成された動作プログラムがロボット５０を意図通りに動作させることができるか否かを検査する試験である動作試験を行うための試験画面を表示するボタンである。表示制御部２０は、入力受付部１３を介してメニューボタンＭ５がタップされた場合、試験画面を表示する。メニューボタンＭ６は、ロボット５０を動作させるために必要なパラメーターを設定するためのパラメーター設定画面を表示するボタンである。表示制御部２０は、入力受付部１３を介してメニューボタンＭ６がタップされた場合、パラメーター設定画面を表示する。
【００４９】
ボタンＢ１は、第１領域Ｒ１へのコマンドの入力を確定させるボタンである。表示制御部２０は、入力受付部１３を介してボタンＢ１がタップされた場合、第１領域Ｒ１へのコマンドの入力が確定したと判定する。
【００５０】
ボタンＢ２は、第１領域Ｒ１へ入力されたコマンドを削除するボタンである。表示制御部２０は、入力受付部１３を介してボタンＢ２がタップされた場合、第１領域Ｒ１へ入力されたコマンドを削除する。
【００５１】
ボタンＢ３は、第２領域Ｒ２に表示されたコマンドの実行結果を示す情報を削除するボタンである。表示制御部２０は、入力受付部１３を介してボタンＢ３がタップされた場合、第２領域Ｒ２に表示された当該実行結果を示す情報を削除する。
【００５２】
ボタンＢ４は、第１領域Ｒ１へ入力されたコマンドと、第２領域Ｒ２に表示された当該実行結果を示す情報とを両方とも削除するボタンである。表示制御部２０は、入力受付部１３を介してボタンＢ４がタップされた場合、第１領域Ｒ１へ入力されたコマンドと、第２領域Ｒ２に表示された当該実行結果を示す情報とを両方とも削除する。
【００５３】
ステップＳ１００において第１領域Ｒ１がタップされた場合（ステップＳ１００−Ｙｅｓ）、表示制御部２０は、コマンド実行画面上にソフトウェアキーボードを表示する（ステップＳ１１０）。ユーザーは、このソフトウェアキーボードを用いて第１領域Ｒ１にコマンドを入力することができる。次に、表示制御部２０は、入力受付部１３を介して第１領域Ｒ１へのコマンドの入力が確定するまで、すなわちコマンド実行画面に含まれるボタンＢ１がタップされるまで待機する（ステップＳ１２０）。
【００５４】
第１領域Ｒ１へのコマンドの入力が確定した場合（ステップＳ１２０−Ｙｅｓ）、表示制御部２０は、前述の確認画面を表示部１５に表示させる（ステップＳ１３０）。ここで、図６を参照し、確認画面について説明する。図６は、コマンド実行画面Ｐ１上に表示された確認画面の一例を示す図である。図６に示した確認画面Ｐ２には、一例として、メッセージＭＳと、ボタンＢ５が含まれている。
【００５５】
メッセージＭＳは、第１領域Ｒ１へ入力されたコマンドをロボット制御装置３０に実行させるか否かをユーザーに確認させるためのメッセージである。また、図６に示したメッセージＭＳには、第１領域Ｒ１へ入力されたコマンドを実行するために必要な操作（所定の条件を満たすために必要な操作）をユーザーに通知するメッセージも含まれている。
ボタンＢ５は、第１領域Ｒ１へのコマンドの入力の確定をキャンセルするボタンである。
【００５６】
ステップＳ１３０において確認画面が表示部１５に表示された後、コマンド実行部２３は、所定の条件が満たされた状態において実行ボタンが押下されたか否かを判定する（ステップＳ１４０）。
【００５７】
ここで、所定の条件について説明する。所定の条件は、例えば、教示装置１０の状態が、イネーブルスイッチ１６が押下されている状態であることである。なお、所定の条件は、教示装置１０の状態が、イネーブルスイッチ１６が押下されている状態であることに代えて、イネーブルスイッチ１６以外の他のスイッチが押下されている状態であること等の他の状態であることであってもよい。ステップＳ１４０において所定の条件が満たされていないと判定した場合（ステップＳ１４０−Ｎｏ）、表示制御部２０は、ボタンＢ５、すなわちキャンセルボタンが押下（例えば、タップ）されたか否かを判定する（ステップＳ１４５）。
【００５８】
ボタンＢ５がタップされたと判定した場合（ステップＳ１４５−Ｙｅｓ）、表示制御部２０は、ステップＳ１２０に遷移し、再び入力受付部１３を介して第１領域Ｒ１へのコマンドの入力が終了するまで待機する。一方、ボタンＢ５がタップされていないと表示制御部２０が判定した場合（ステップＳ１４５−Ｎｏ）、コマンド実行部２３は、ステップＳ１４０に遷移し、再び所定の条件が満たされた状態において実行ボタンが押下されたか否かを判定する。
【００５９】
一方、ステップＳ１４０において所定の条件が満たされた状態において実行ボタンが押下されたと判定した場合（ステップＳ１４０−Ｙｅｓ）、コマンド実行部２３は、第１領域Ｒ１に入力されたコマンドを示す情報をロボット制御装置３０に通信部１４を介して出力する。そして、コマンド実行部２３は、ロボット制御装置３０に当該コマンドの実行を指示する（ステップＳ１５０）。
【００６０】
すなわち、コマンド実行部２３は、この一例において、教示装置１０の状態が、イネーブルスイッチ１６が押下されている状態において実行ボタンが押下された場合に、ステップＳ１５０においてコマンドの実行をロボット制御装置３０に指示する。なお、コマンド実行部２３は、教示装置１０の状態が、イネーブルスイッチ１６が押下されていない状態において実行ボタンが押下された場合、コマンドの実行をロボット制御装置３０に指示しない。
【００６１】
また、コマンド実行部２３は、ロボット制御装置３０がコマンドを実行してからコマンドの実行を完了するまでの間に上記の所定の条件が満たされなくなった場合、図８において説明するようにロボット制御装置３０にコマンドの実行を中断させる。なお、所定の条件が満たされなくなった場合とは、この一例において、イネーブルスイッチ１６の押下が解除された場合のことである。すなわち、コマンド実行部２３は、ロボット制御装置３０がコマンドを実行してからコマンドの実行を完了するまでの間にイネーブルスイッチ１６の押下が解除された場合、図８において説明するようにロボット制御装置３０にコマンドの実行を中断させる。
【００６２】
次に、表示制御部２０は、ステップＳ１５０においてロボット制御装置３０に出力したコマンドを示す情報に対する応答として、コマンドの実行結果を示す情報をロボット制御装置３０から通信部１４を介して取得する。そして、表示制御部２０は、ステップＳ１３０において表示部１５に表示させた確認画面を表示部１５から削除する（閉じる）。また、表示制御部２０は、取得したコマンドの実行結果を示す情報を第２領域Ｒ２に表示させ（ステップＳ１６０）、処理を終了する。
【００６３】
このステップＳ１６０において、表示制御部２０は、図７に示すように第２領域Ｒ２にコマンドの実行結果を示す情報を表示する。図７は、第２領域Ｒ２にコマンドの実行結果を示す情報が表示されたコマンド実行画面の一例を示す図である。図７に示したように、ステップＳ１６０において第２領域Ｒ２には、コマンドの実行結果を示す情報Ｃ２が表示される。
以上のように、教示装置１０は、コマンドを入力可能で表示可能であり、コマンドの実行をロボット制御装置に指示可能である。これにより、教示装置１０は、ユーザーが入力した所望のコマンドをロボット制御装置３０に指示することができる。その結果、教示装置１０は、例えば、ユーザーに動作プログラムの修正作業を効率的に行わせることができる。
【００６４】
以下、図８を参照し、ロボット制御装置３０がコマンドを実行してからコマンドの実行を完了するまでの間に所定の条件が満たされなくなった場合に制御部１８がロボット制御装置３０にコマンドの実行を中断させる処理について説明する。図８は、ロボット制御装置３０がコマンドを実行してからコマンドの実行を完了するまでの間に所定の条件が満たされなくなった場合に制御部１８がロボット制御装置３０にコマンドの実行を中断させる処理の流れの一例を示すフローチャートである。なお、図８に示したフローチャートにおいて、ロボット制御装置３０がコマンドを実行している最中である場合について説明する。
【００６５】
コマンド実行部２３は、ロボット制御装置３０がコマンドの実行を完了したか否かを判定する（ステップＳ２００）。なお、コマンド実行部２３は、ロボット制御装置３０に出力したコマンドを示す情報に対する応答をロボット制御装置３０から取得したか否かによって、ロボット制御装置３０がコマンドの実行を完了したか否かの判定を行う。具体的には、コマンド実行部２３は、当該応答をロボット制御装置３０から取得した場合、ロボット制御装置３０がコマンドの実行を完了したと判定する。一方、コマンド実行部２３は、当該応答をロボット制御装置３０から取得していない場合、ロボット制御装置３０がコマンドの実行を完了していないと判定する。
【００６６】
ステップＳ２００においてロボット制御装置３０がコマンドの実行を完了したと判定した場合（ステップＳ２００−Ｙｅｓ）、コマンド実行部２３は、処理を終了する。一方、ロボット制御装置３０がコマンドの実行を完了していないと判定した場合（ステップＳ２００−Ｎｏ）、コマンド実行部２３は、上記の所定の条件が満たされなくなったか否かを判定する（ステップＳ２１０）。
【００６７】
所定の条件が満たされていると判定した場合（ステップＳ２１０−Ｎｏ）、すなわちイネーブルスイッチ１６が押下されている場合、コマンド実行部２３は、ステップＳ２００に遷移し、再びロボット制御装置３０がコマンドの実行を完了したか否かを判定する。一方、所定の条件が満たされていないと判定した場合（ステップＳ２１０−Ｙｅｓ）、すなわちイネーブルスイッチ１６が押下が解除されている場合、コマンド実行部２３は、ロボット制御装置３０にコマンドの実行を中断させる（ステップＳ２２０）。
【００６８】
ここで、ステップＳ２２０においてコマンド実行部２３は、コマンドの実行の中断として、ロボット制御装置３０が実行中のコマンドの実行をロボット制御装置３０に一時停止させる構成であってもよく、当該実行をロボット制御装置３０にキャンセルさせる構成であってもよい。一時停止させる構成の場合、コマンド実行部２３は、ステップＳ２２０の処理が実行された後に再び所定の条件が満たされた場合、ロボット制御装置３０に一時停止を解除させ、コマンドの実行を続行させる。また、ロボット制御装置３０が実行中のコマンドの実行をロボット制御装置３０にキャンセルさせる構成の場合、コマンド実行部２３は、ステップＳ２２０の処理が実行された後に再び所定の条件が満たされた場合であっても、コマンドの実行を続行させない。
【００６９】
以上のように、教示装置１０は、ロボット制御装置３０がコマンドを実行してからコマンドの実行を完了するまでの間に所定の条件が満たされなくなった場合、ロボット制御装置３０にコマンドの実行を中断させる。これにより、教示装置１０は、例えば、コマンドの実行によってロボット５０が意図しない動作を行った場合等の緊急にロボットを停止させなければならない場合、ユーザーがイネーブルスイッチ１６から手を離すことによって、ロボット５０を停止させる他の方法よりも早くロボット５０を停止させることができる。
【００７０】
なお、教示装置１０は、上記において説明したコマンド実行画面とは異なる他の画面においても、コマンドの実行をロボット制御装置３０に指示可能である。当該他の画面の一例としては、Ｈｏｍｅボタンを含む画面が挙げられる。Ｈｏｍｅボタンは、ロボット５０のＴＣＰの位置を予め決められた位置であるＨｏｍｅ位置へと移動させるコマンドに対応付けられたボタンである。例えば、教示装置１０は、Ｈｏｍｅボタンを含む画面においてユーザーによりＨｏｍｅボタンをタップされた場合、上記において説明した確認画面とは異なる確認画面を表示する。当該確認画面には、例えば、「イネーブルスイッチ１６を押下し続けたまま、実行ボタンを押下し続けてください」というメッセージが表示される。
【００７１】
ユーザーがイネーブルスイッチ１６を押下し続けたまま実行ボタンを押下し続けた場合、教示装置１０は、ロボット制御装置３０にロボット５０を動作させ、ロボット５０のＴＣＰの位置を前述のＨｏｍｅ位置へ移動させる。なお、教示装置１０は、ロボット５０のＴＣＰの位置がＨｏｍｅ位置に到着する前にイネーブルスイッチ１６と実行ボタンとのうちいずれか一方または両方の押下が解除された場合、ロボット制御装置３０に実行させているロボット５０の動作、すなわちロボット５０のＴＣＰの位置を前述のＨｏｍｅ位置へ移動させる動作を中断又は一時停止させる。ロボット制御装置３０にロボット５０の動作を一時停止させる構成の場合、教示装置１０は、ロボット５０の動作が一時停止されている状態において再びユーザーがイネーブルスイッチ１６を押下し続けたまま実行ボタンを押下し続けた状態を実現すると、ロボット制御装置３０にロボット５０の動作を再開させる。
【００７２】
なお、ここでは、Ｈｏｍｅボタンがロボット５０のＴＣＰの位置を予め決められた位置であるＨｏｍｅ位置へと移動させるコマンドに対応付けられている場合を説明したが、これに代えて、Ｈｏｍｅボタンが他のコマンドに対応付けられている構成であってもよい。
【００７３】
以上説明したように、実施形態における教示装置１０は、コマンドを入力可能であり、当該コマンドを表示可能であり、当該コマンドの実行をロボット制御装置３０に指示可能である。これにより、教示装置１０は、ユーザーが入力した所望のコマンドをロボット制御装置に指示することができる。その結果、教示装置は、例えば、ユーザーにプログラムの修正作業を効率的に行わせることができる。
【００７４】
また、教示装置１０は、イネーブルスイッチ１６が押下されている状態においてのみコマンドの実行をロボット制御装置３０に指示可能である。これにより、教示装置１０は、ユーザーが意図せずしてコマンドの実行をロボット制御装置３０に指示してしまうことを抑制することができる。
【００７５】
また、教示装置１０は、ロボット制御装置３０においてコマンドが実行されており、且つイネーブルスイッチ１６が押下されている状態から押下されていない状態に変化した場合、コマンドの実行をロボット制御装置３０に中断させる。これにより、教示装置１０は、例えば、コマンドの実行によってロボット５０が意図しない動作を行った場合等の緊急にロボットを停止させなければならない場合、ユーザーがイネーブルスイッチから手を離すことによって、ロボット５０を停止させる他の方法よりも早くロボット５０を停止させることができる。
【００７６】
また、教示装置１０は、コマンドを編集可能である。これにより、教示装置１０は、ユーザーが編集した所望のコマンドの実行をロボット制御装置３０に指示することができる。
【００７７】
また、教示装置１０は、コマンドに含まれる命令語の先頭の文字が入力されると、当該命令語を表示する。これにより、教示装置は、コマンドの入力作業を短縮することができる。
【００７８】
また、教示装置１０は、コマンドの実行ボタンを有する。これにより、教示装置１０は、ユーザーが所望のタイミングでコマンドをロボット制御装置３０に実行させることができる。
【００７９】
また、教示装置１０は、１画面、すなわちコマンド実行画面に、コマンドを入力する第１領域Ｒ１と、コマンドの実行結果を表示する第２領域Ｒ２とを表示する。これにより、教示装置１０は、ユーザーに、入力したコマンドと、当該コマンドの実行結果とを見比べさせながら作業を行わせることができる。
【００８０】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【００８１】
また、以上に説明した装置（例えば、教示装置１０）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のように、一定時間プログラムを保持しているものも含むものとする。
【００８２】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【００８３】
１  ロボットシステム、１０  教示装置、１１  ＣＰＵ、１２  記憶部、１３  入力受付部、１４  通信部、１５  表示部、１６  イネーブルスイッチ、１７  ジョグキー、１８  制御部、２０  表示制御部、２３  コマンド実行部
【図１】
2017019056.tif 000003
【図２】
2017019056.tif 000004
【図３】
2017019056.tif 000005
【図４】
2017019056.tif 000006
【図５】
2017019056.tif 000007
【図６】
2017019056.tif 000008
【図７】
2017019056.tif 000009
【図８】
2017019056.tif 000010