(57)【要約】  ティーチペンダントを用いることなく、プログラミング言語を知らない教示者がロボットの移動及び作業内容を簡単にロボットに教示することを目的とする。  本発明のロボットの動作プログラム生成方法は、ＧＵＩを用いて、あるテンプレート要素動作プログラムの変数を特定するための変数特定画面を表示し、その後、変数が特定されたテンプレート要素動作プログラムをカスタム要素動作プログラムとして記憶部に記憶させることを、複数のテンプレート要素動作プログラムに対して順次実行するステップを含み、複数のテンプレート要素動作プログラムは、その対応する要素作業に必要なロボットの運動（移動及び姿勢変化）を規定する１以上の手先位置座標（教示点）を変数として含み、且つ前記１以上の手先位置座標が全て特定されることによってロボットの運動が特定されるように構成されている。
2016103307.tif 000002
【特許請求の範囲】
【請求項１】
所定画面にＧＵＩ(graphical user interface)を表示しユーザ入力を受け付けるＧＵＩ制御部と、記憶部と、プログラム生成部とを備えるプログラム生成装置を用いて、アームを有するロボットに実行させるべき作業の全体である全体作業を前記ロボットに実行させる全体動作プログラムを作成する方法であって、  前記全体作業を構成する複数の要素作業にそれぞれ対応し、１以上の変数を含み、且つ前記１以上の変数が全て特定されることによってそれぞれの要素作業を前記ロボットが実行することが可能なように構成された複数のテンプレート要素動作プログラムが予め前記記憶部に記憶されており、  前記ＧＵＩを用いて、あるテンプレート要素動作プログラムの前記１以上の変数を全て特定するための変数特定画面を表示し、その後、当該変数特定画面を用いて前記１以上の変数が特定されたテンプレート要素動作プログラムをカスタム要素動作プログラムとして前記記憶部に記憶させることを、前記記憶部に記憶された複数のテンプレート要素動作プログラムに対して順次実行するステップＡと、  前記プログラム生成部が、前記記憶部に記憶された複数のカスタム要素動作プログラムに基づいて当該複数のカスタム要素動作プログラムを含む前記全体動作プログラムを生成するステップＢと、を含み、  前記複数のテンプレート要素動作プログラムが、少なくとも、その対応する要素作業に必要な前記ロボットの運動を規定する１以上の手先位置座標を前記変数として含み、且つ前記１以上の手先位置座標が全て特定されることによって前記ロボットの運動が特定されるように構成されたテンプレート要素動作プログラムを含む、ロボットの動作プログラム生成方法。
【請求項２】
前記複数のテンプレート要素動作プログラムが、その対応する要素作業の内容を規定する１以上の変数を含み、且つ前記１以上の変数が全て特定されることによって前記要素作業の内容が特定されるように構成されたテンプレート要素動作プログラムをさらに含む、請求項１に記載のロボットの動作プログラム生成方法。
【請求項３】
前記ステップＡは、前記ＧＵＩを用いて、前記複数のテンプレート要素動作プログラムの１つを選択するプログラム選択画面を表示するステップを含み、当該ステップにおいて前記プログラム選択画面を用いて選択されたテンプレート要素動作プログラムが前記あるテンプレート要素動作プログラムである、請求項１又は２に記載のロボットの動作プログラム生成方法。
【請求項４】
複数のロボットにそれぞれ対応する全体作業及びそれぞれの全体作業に対応する複数のテンプレート要素動作プログラムが、それぞれ、複数のロボットと関連付けて前記記憶部に記憶されており、  前記ＧＵＩを用いて、前記複数のロボットの１つを選択するロボット選択画面を表示するステップを含み、当該ステップにおいて前記ロボット選択画面を用いて選択されたロボットに対して前記ステップＡ及びＢを実行する、請求項１乃至３のいずれかに記載のロボットの動作プログラム生成方法。
【請求項５】
前記ロボット、前記全体作業、及び前記要素作業の順に上層から下層へ向かうように階層化され、各層の構成要素である個々の前記ロボット、個々の前記全体作業、及び個々の前記要素作業に、それぞれ、相互に識別するための識別名称が付与され、且つ前記複数のテンプレート要素動作プログラムが、最下層を構成する複数の要素作業にそれぞれ対応するようにして、前記複数のテンプレート要素動作プログラムが前記記憶部に記憶されている、請求項１乃至４のいずれかに記載のロボットの動作プログラム生成方法。
【請求項６】
前記ロボットが現在の手先位置座標を出力可能に構成されており、前記ステップＡにおいて、前記変数としての手先位置座標を特定する変数特定画面に前記手先位置座標の出力から取得した値を入力することにより、前記変数としての手先位置座標を特定する、請求項１乃至５のいずれかに記載のロボットの動作プログラム生成方法。
【請求項７】
前記ロボットが協調動作を行う複数のアームを有しており、前記全体作業が前記複数のアームに協調して実行させるべき作業の全体である全体作業（以下、協調全体作業という）であり、前記複数の要素作業が前記協調全体作業を構成する複数の要素作業（以下、協調要素作業という）であり、前記テンプレート要素動作プログラムが前記協調要素作業に対応するテンプレート要素動作プログラム（以下、テンプレート協調要素動作プログラムという）であり、前記カスタム要素動作プログラムが前記テンプレート協調要素動作プログラムに対応するカスタム要素動作プログラム（以下、カスタム協調要素動作プログラムという）であり、前記全体動作プログラムが前記カスタム協調要素動作プログラムに対応する全体動作プログラム（以下、協調全体動作プログラムという）であり、且つ、前記複数のテンプレート協調要素動作プログラムが、少なくとも、その対応する協調要素作業に必要な前記ロボットの複数のアームの運動をそれぞれ各アーム毎に規定する各アームの１以上の手先位置座標を前記変数として含み、且つ各アームの前記１以上の手先位置座標が全て特定されることによって前記ロボットの複数のアームの運動が特定されるように構成されたテンプレート協調要素動作プログラムを含む、請求項１乃至６のいずれかに記載のロボットの動作プログラム生成方法。
【請求項８】
前記複数のアームを有するロボットの各アーム毎に各アームの単独動作に対応する前記全体動作プログラムを生成するステップをさらに含み、前記複数のアームの協調動作に対応する協調全体動作プログラムと前記複数のアームのそれぞれの単独動作に対応する各前記全体動作プログラムとが所定のアクションをトリガとして切り替わるように構成されている、請求項７に記載のロボットの動作プログラム生成方法。
【請求項９】
前記協調動作がワークを回転させる又は並進させる動作を含む、請求項７又は８に記載のロボットの動作プログラム生成方法。
【請求項１０】
前記変数は、前記ロボットの動作速度、移動方法及び待ち時間を含む、請求項１乃至９のいずれかに記載のロボットの動作プログラム生成方法。
【請求項１１】
前記プログラム生成装置がスマートフォン又はタブレット型パソコンである、請求項１乃至１０のいずれかに記載のロボットの動作プログラム生成方法。
【請求項１２】
前記ロボットが製品組立用のロボットであり、前記全体作業が製品の組立作業である、前記要素作業が前記組立作業の工程である、請求項１乃至１１のいずれかに記載のロボットの動作プログラム生成方法。
【請求項１３】
所定画面にＧＵＩ(graphical user interface)を表示しユーザ入力を受け付けるＧＵＩ制御部と、記憶部と、プログラム生成部と、カスタマイズ部と、を備え、アームを有するロボットに実行させるべき作業の全体である全体作業を前記ロボットに実行させる全体動作プログラムを作成するロボットの動作プログラム生成装置であって、  前記全体作業を構成する複数の要素作業にそれぞれ対応し、１以上の変数を含み、且つ前記１以上の変数が全て特定されることによってそれぞれの要素作業を前記ロボットが実行することが可能なように構成された複数のテンプレート要素動作プログラムが予め前記記憶部に記憶されており、  前記カスタマイズ部は、前記ＧＵＩを用いて、あるテンプレート要素動作プログラムの前記１以上の変数を全て特定するための変数特定画面を表示し、その後、ユーザによって当該変数特定画面を用いて前記１以上の変数が特定されると、当該特定されたテンプレート要素動作プログラムをカスタム要素動作プログラムとして前記記憶部に記憶させることを、前記記憶部に記憶された複数のテンプレート要素動作プログラムに対して順次実行するよう構成されており、  前記プログラム生成部は、前記記憶部に記憶された複数のカスタム要素動作プログラムに基づいて当該複数のカスタム要素動作プログラムを含む前記全体動作プログラムを生成するよう構成されており、  前記複数のテンプレート要素動作プログラムが、少なくとも、その対応する要素作業に必要な前記ロボットの運動を規定する１以上の手先位置座標を前記変数として含み、且つ前記１以上の手先位置座標が全て特定されることによって前記ロボットの運動が特定されるように構成されたテンプレート要素動作プログラムを含む、ロボットの動作プログラム生成装置。   
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、ロボットの動作プログラム生成方法、及び、ロボットの動作プログラム生成装置に関する。
【背景技術】
【０００２】  従来、ロボットの教示はティーチペンダントを用いて行われていた。【０００３】  近年では、ＧＵＩ（グラフィカルユーザインタフェース）を用いて、ロボット言語に対する従来のキャラクタベースでの言語表現及び編集方法をグラフィカルな表現に変えることにより、ロボットの動作プログラムを作成する方法が知られている（例えば特許文献１を参照）。また、ＧＵＩを用いて、ワークの嵌合動作に関するパラメータを調整する方法が知られている（例えば特許文献２を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２４２０５４号公報
【特許文献２】特開２０１４−１６６６８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】ところで、最近、流れ作業ラインにおいて人間とロボットとが共存して一連の工程を分担しながら製品の組立を行うことが注目されている。このような流れ作業ラインにおいては、製品の種類や工程の変更に応じて、作業内容が頻繁に変更される場合がある。しかし、ティーチペンダントを用いてロボットを教示すると、時間が掛り、且つ、教示者にはプログラミンング言語を用いる能力が必要である。特許文献１及び特許文献２の技術では、ロボットの移動教示は従来通りティーチペンダントで行われる。また、特許文献２では、ＧＵＩを用いてパラメータ調整が行われるが、この作業は実際にロボットを制御により動作させて行われていた。ロボットの移動教示を、ティーチペンダントを用いて行う限り、教示者にはプログラミンング言語を用いる能力が必要とされる。また、ロボットを制御により動作させてパラメータ調整等して教示用プログラムを生成するとその分手間が掛る。そこで、本発明では、ティーチペンダントを用いることなく、プログラミング言語を知らない教示者がロボットの移動及び作業内容を簡単にロボットに教示することを目的とする。
【課題を解決するための手段】
【０００６】  本発明者等は、ティーチペンダントを用いることなく、プログラミング言語を知らない教示者がロボットの移動及び作業内容を簡単にロボットに教示する方法を鋭意検討した。【０００７】  まず、ティーチペンダントを不要にすることについて検討した。そして、その一環として、オフラインティーチングを検討した。しかし、一般に、オフラインティーチングでは、ロボットの姿勢をイメージすることができないことに起因して、オフラインティーチングが実情に沿わないため、実機による動作確認、又はオフラインティーチングにより生成された動作プログラムの修正が必要になる。【０００８】  ところが、製品の組立作業は相対的に単純な作業である工程の集合に細分化されている。各工程は人間が所定の手順で遂行できるように規定されている。従って、例えば、流れ作業ラインにおいて、人間に近い大きさの双腕ロボットに作業者の代わりに工程作業を行わせる場合は、工程作業を行う双腕ロボットの姿勢を、当該工程作業を行う作業者の姿勢に重ねてイメージすることができる。【０００９】  従って、そのようなケースにおいては、オフラインティーチングによっても比較的実情に沿った動作プログラムを生成することができる。これが本発明者等の第１の着眼点である。【００１０】  次に、プログラミング言語を知らない教示者がロボットの移動及び作業内容を簡単にロボットに教示することについて検討した。その結果、本発明者等は、製品の組立作業は相対的に単純な作業である工程の集合に細分化されていて、各工程が所定の手順で遂行できるように規定されているので、各工程を予めプログラミングしておけば、任意の工程を組み合わせてロボットの全体的な動作プログラムを生成することができる。そして、任意の工程を組み合わせてロボットの全体的な動作プログラムを生成することも予めプログラミングすることができる。これにより、プログラミング言語を知らない教示者がロボットの移動及び作業内容をロボットに教示することができる。さらに、ＧＵＩを用いれば、その教示者を簡単に行うことができる。これが本発明者等の第２の着眼点である。【００１１】  本発明は、これらの着眼点に基づいてなされたものである。【００１２】  本発明の一態様に係る、ロボットの動作プログラム生成方法は、所定画面にＧＵＩ(graphical user interface)を表示しユーザ入力を受け付けるＧＵＩ制御部と、記憶部と、プログラム生成部とを備えるプログラム生成装置を用いて、アームを有するロボットに実行させるべき作業の全体である全体作業を前記ロボットに実行させる全体動作プログラムを作成する方法であって、前記全体作業を構成する複数の要素作業にそれぞれ対応し、１以上の変数を含み、且つ前記１以上の変数が全て特定されることによってそれぞれの要素作業を前記ロボットが実行することが可能なように構成された複数のテンプレート要素動作プログラムが予め前記記憶部に記憶されており、前記ＧＵＩを用いて、あるテンプレート要素動作プログラムの前記１以上の変数を全て特定するための変数特定画面を表示し、その後、当該変数特定画面を用いて前記１以上の変数が特定されたテンプレート要素動作プログラムをカスタム要素動作プログラムとして前記記憶部に��憶させることを、前記記憶部に記憶された複数のテンプレート要素動作プログラムに対して順次実行するステップＡと、前記プログラム生成部が、前記記憶部に記憶された複数のカスタム要素動作プログラムに基づいて当該複数のカスタム要素動作プログラムを含む前記全体動作プログラムを生成するステップＢと、を含み、前記複数のテンプレート要素動作プログラムが、少なくとも、その対応する要素作業に必要な前記ロボットの運動を規定する１以上の手先位置座標を前記変数として含み、且つ前記１以上の手先位置座標が全て特定されることによって前記ロボットの運動が特定されるように構成されたテンプレート要素動作プログラムを含む。【００１３】  ここでロボットの運動とは、ロボットの移動及び姿勢変化を含む。例えばロボットの運動を規定する１以上の手先位置座標が教示点である。【００１４】  上記構成によれば、教示者が、ＧＵＩを用いて、あるテンプレート要素動作プログラムの変数特定画面を表示した後、当該変数特定画面を用いて変数を特定すると、この変数が特定されたテンプレート要素動作プログラムがカスタム要素動作プログラムとして記憶部に記憶される。そして、この操作を記憶部に記憶された複数のテンプレート要素動作プログラムに対して順次実行すると、プログラム生成部が記憶部に記憶された複数のカスタム要素動作プログラムを含む全体動作プログラムを生成する。そして、複数のテンプレート要素動作プログラムが、少なくとも、その対応する要素作業に必要なロボットの運動を規定する手先位置座標（教示点）を変数として含み、且つ手先位置座標が特定されることによってロボットの運動が特定されるように構成されたテンプレート要素動作プログラムを含む。従って、教示者はロボット言語を理解していなくても、ＧＵＩを用いてテンプレート要素動作プログラムの変数を特定するだけで、ロボットの手先位置座標（教示点）を含む運動動作に関する動作プログラムを生成することができる。そして、この動作プログラムをロボットの制御装置にダウンロードすることによって、ロボットに運動動作に関する教示を行うことができる。よって、ロボット言語を理解していなくても、ロボットを簡単に教示することができる。【００１５】  前記複数のテンプレート要素動作プログラムが、その対応する要素作業の内容を規定する１以上の変数を含み、且つ前記１以上の変数が全て特定されることによって前記要素作業の内容が特定されるように構成されたテンプレート要素動作プログラムをさらに含んでもよい。【００１６】  上記構成によれば、複数のテンプレート要素動作プログラムが、その対応する要素作業の内容を規定する変数を含み、且つ変数が特定されることによって要素作業の内容が特定されるように構成されたテンプレート要素動作プログラムをさらに含む。従って、教示者はロボット言語を理解していなくても、ＧＵＩを用いてテンプレート要素動作プログラムの変数を特定するだけで、ロボットの手先位置座標（教示点）を含む運動動作と要素作業の内容との双方に関する動作プログラムを生成することができる。そして、この動作プログラムをロボットの制御装置にダウンロードすることによって、ロボットに運動動作と要素作業の内容との双方に関する教示を行うことができる。【００１７】  前記ステップＡは、前記ＧＵＩを用いて、前記複数のテンプレート要素動作プログラムの１つを選択するプログラム選択画面を表示するステップを含み、当該ステップにおいて前記プログラム選択画面を用いて選択されたテンプレート要素動作プログラムが前記あるテンプレート要素動作プログラムでもよい。【００１８】  上記構成によれば、教示者が、複数のテンプレート要素動作プログラムの中から所望のテンプレート要素動作プログラムの組を選択することによって、ロボットが実行すべき所望の全体作業を構築し、且つ、所望の全体作業を実行するロボットの動作プログラムを容易に生成することができる。【００１９】  複数のロボットにそれぞれ対応する全体作業及びそれぞれの全体作業に対応する複数のテンプレート要素動作プログラムが、それぞれ、複数のロボットと関連付けて前記記憶部に記憶されており、前記ＧＵＩを用いて、前記複数のロボットの１つを選択するロボット選択画面を表示するステップを含み、当該ステップにおいて前記ロボット選択画面を用いて選択されたロボットに対して前記ステップＡ及びＢを実行してもよい。【００２０】  上記構成によれば、ロボット言語を理解していなくても、ＧＵＩを用いて複数のロボットを容易に教示することができる。【００２１】  前記ロボット、前記全体作業、及び前記要素作業の順に上層から下層へ向かうように階層化され、各層の構成要素である個々の前記ロボット、個々の前記全体作業、及び個々の前記要素作業に、それぞれ、相互に識別するための識別名称が付与され、且つ前記複数のテンプレート要素動作プログラムが、最下層を構成する複数の要素作業にそれぞれ対応するようにして、前記複数のテンプレート要素動作プログラムが前記記憶部に記憶されていてもよい。【００２２】  上記構成によれば、各層の構成要素の各識別名称を特定することによって、前記ロボット、前記全体作業、及びテンプレート要素動作プログラムを特定することができる。これにより、ＧＵＩを用いて、前記ロボット、前記全体作業、及びテンプレート要素動作プログラムを特定するための画面表示及び表示画面を通じた特定のための入力を好適に行うことができる。前記ロボットが現在の手先位置座標を出力可能に構成されており、前記ステップＡにおいて、前記変数としての手先位置座標を特定する変数特定画面に前記手先位置座標の出力から取得した値を入力することにより、前記変数としての手先位置座標を特定してもよい。上記構成によれば、教示者は、ロボットの手先を所望の教示点に位置させることによって、簡単にロボットの手先位置座標を特定することができる。このロボットの手先位置座標の出力は、通信によってＧＵＩに入力してもよいし、例えば、ロボットコントローラに表示されたロボットの手先位置座標の出力を教示者が見てこれをＧＵＩの特定画面から入力してもよい。【００２３】  前記ロボットが協調動作を行う複数のアームを有しており、前記全体作業が前記複数のアームに協調して実行させるべき作業の全体である全体作業（以下、協調全体作業という）であり、前記複数の要素作業が前記協調全体作業を構成する複数の要素作業（以下、協調要素作業という）���あり、前記テンプレート要素動作プログラムが前記協調要素作業に対応するテンプレート要素動作プログラム（以下、テンプレート協調要素動作プログラムという）であり、前記カスタム要素動作プログラムが前記テンプレート協調要素動作プログラムに対応するカスタム要素動作プログラム（以下、カスタム協調要素動作プログラムという）であり、前記全体動作プログラムが前記カスタム協調要素動作プログラムに対応する全体動作プログラム（以下、協調全体動作プログラムという）であり、且つ、前記複数のテンプレート協調要素動作プログラムが、少なくとも、その対応する協調要素作業に必要な前記ロボットの複数のアームの運動をそれぞれ各アーム毎に規定する各アームの１以上の手先位置座標を前記変数として含み、且つ各アームの前記１以上の手先位置座標が全て特定されることによって前記ロボットの複数のアームの運動が特定されるように構成されたテンプレート協調要素動作プログラムを含んでもよい。ここでロボットの複数のアームの運動とは、ロボットの移動及び姿勢変化を含む。例えばそれぞれ各アーム毎に規定する各アームの１以上の手先位置座標が教示点である。【００２４】  上記構成によれば、ロボット言語を理解していなくても、協調動作を行う複数のアームを有するロボットを容易に教示することができる。【００２５】  前記複数のアームを有するロボットの各アーム毎に各アームの単独動作に対応する前記全体動作プログラムを生成するステップをさらに含み、前記複数のアームの協調動作に対応する協調全体動作プログラムと前記複数のアームのそれぞれの単独動作に対応する各前記全体動作プログラムとが所定のアクションをトリガとして切り替わるように構成されていてもよい。上記構成によれば、ロボット言語を理解していなくても、複数のアームを有するロボットを、複数のアームの協調動作と各アームの単独動作と切り替えて行うように、容易に教示することができる。前記協調動作がワークを回転させる又は並進させる動作を含んでもよい。上記構成によれば、多腕ロボットによるワークの回転、並進動作を簡単に教示できる。前記変数は、前記ロボットの動作速度、移動方法及び待ち時間を含んでもよい。上記構成によれば、教示者はＧＵＩを用いて、簡単にロボットの特定の動作に関するパラメータを設定することができる。【００２６】  前記プログラム生成装置がスマートフォン又はタブレット型パソコンでもよい。上記構成によれば、教示者は端末（プログラム生成装置）を容易に持ち歩き、直観的且つ簡易な操作で教示を行うことができる。前記ロボットが製品組立用のロボットであり、前記全体作業が製品の組立作業である、前記要素作業が前記組立作業の工程でもよい。【００２７】  一般にオフラインティーチングでは、ロボットの姿勢をイメージすることができないことに起因して、オフラインティーチングが実情に沿わないため、実機による動作確認、又はオフラインティーチングにより生成された動作プログラムの修正が必要になる。【００２８】  一方、製品の組立作業は相対的に単純な作業である工程の集合に細分化されている。各工程は人間が所定の手順で遂行できるように規定されている。従って、例えば、流れ作業ラインにおいて、人間に近い大きさの双腕ロボットに作業者の代わりに工程作業を行わせる場合は、工程作業を行う双腕ロボットの姿勢を、当該工程作業を行う作業者の姿勢に重ねてイメージすることができる。【００２９】  従って、そのようなケースにおいては、オフラインティーチングによっても比較的実情に沿った動作プログラムを生成することができる。それ故、ロボットにより製品の組立作業を行うケースには、ＧＵＩを用いて一種のオフラインティーチングを行う本発明を好適に適用することができる。【００３０】  本発明のその他の態様に係る、ロボットの動作プログラム生成装置は、所定画面にＧＵＩを表示しユーザ入力を受け付けるＧＵＩ制御部と、記憶部と、プログラム生成部と、カスタマイズ部と、を備え、アームを有するロボットに実行させるべき作業の全体である全体作業を前記ロボットに実行させる全体動作プログラムを作成するロボットの動作プログラム生成装置であって、  前記全体作業を構成する複数の要素作業にそれぞれ対応し、１以上の変数を含み、且つ前記１以上の変数が全て特定されることによってそれぞれの要素作業を前記ロボットが実行することが可能なように構成された複数のテンプレート要素動作プログラムが予め前記記憶部に記憶されており、前記カスタマイズ部は、前記ＧＵＩを用いて、あるテンプレート要素動作プログラムの前記１以上の変数を全て特定するための変数特定画面を表示し、その後、ユーザによって当該変数特定画面を用いて前記１以上の変数が特定されると、当該特定されたテンプレート要素動作プログラムをカスタム要素動作プログラムとして前記記憶部に記憶させることを、前記記憶部に記憶された複数のテンプレート要素動作プログラムに対して順次実行するよう構成されており、前記プログラム生成部は、前記記憶部に記憶された複数のカスタム要素動作プログラムに基づいて当該複数のカスタム要素動作プログラムを含む前記全体動作プログラムを生成するよう構成されており、前記複数のテンプレート要素動作プログラムが、少なくとも、その対応する要素作業に必要な前記ロボットの運動を規定する１以上の手先位置座標を前記変数として含み、且つ前記１以上の手先位置座標が全て特定されることによって前記ロボットの運動が特定されるように構成されたテンプレート要素動作プログラムを含む。
【発明の効果】
【００３１】  本発明によれば、ティーチペンダントを用いることなく、プログラミング言語を知らない教示者がロボットの移動及び作業内容を簡単にロボットに教示することができる。【００３２】  本発明の上記目的、他の目的、特徴、及び利点は、添付図面参照の下、以下の好適な実施態様の詳細な説明から明らかにされる。
【図面の簡単な説明】
【００３３】
【図１】図１は、本実施形態に係るロボットの動作プログラム生成装置を備えたロボット教示システムの構成を示す斜視図である。
【図２】図２は、図１のロボットアームの関節構造を模式的に示す図である。
【図３】図３は、図１の制御装置の構成を示すブロック図である。
【図４】図４は、図１のロボット教示システムの平面図である。
【図５】図５は、図１の動作プログラム生成装置の構成を示すブロック図である。
【図６】図６は、図４の動作プログラム生成アプリケーションの機能構成例を示すブロック図である。
【図７】図７は、動作プログラムの作成手順を示すフローチャートである。
【図８】図８は、ＧＵＩを用いて表示されたナビゲーション画面の一例を示す。
【図９】図９は、ＧＵＩを用いて表示されたロボット選択画面の一例を示す。
【図１０】図１０は、ＧＵＩを用いて表示されたワーク選択画面の一例を示す。
【図１１】図１１は、ＧＵＩを用いて表示された作業選択画面の一例を示す。
【図１２】図１２は、ＧＵＩを用いて表示されたパラメータ設定画面の一例を示す。
【図１３】図１３は、生成された全体動作プログラムの一例を説明するため模式図である。
【発明を実施するための形態】
【００３４】  以下、本発明に係る実施形態について図面を参照しつつ説明する。以下では、全ての図面を通じて同一又は相当する要素には同じ符号を付して、重複する説明は省略する。
【００３５】  図１は、第１実施形態に係るロボット教示システムの構成を示す斜視図である。図１に示すように、ロボット教示システム１は、ロボット本体（以下、単にロボットという）２と、ロボット２を制御する制御装置３と、制御装置３と通信可能に接続された動作プログラム生成装置４とを備える。ロボット教示システム１は、動作プログラムに従って、ロボット２に動作を教示するシステムである。［ロボット］  ロボット２は、複数のリンクが関節によって連結されてなるロボットアーム（１又はそれ以上）を備えたロボットである。本実施の形態では、ロボット２は、人間に近い大きさの同軸双腕型のスカラロボットであり、基台９上に配置された下アーム１０と、下アーム１０の上に配置された上アーム１２を備える。ロボット２は、例えば流れ作業ラインにおいて、他の作業者と共存して作業を行う。
【００３６】  下アーム１０は、第１リンク１０ａ及び第２リンク１０ｂが回転関節によって連結されて構成される。下アーム１０の第２リンク１０ｂの先端にはＬ字形のフランジ１０ｃが取り付けられている。フランジ１０ｃには第１エンドエフェクタ１１が直動関節によって連結されている。上アーム１２は、第１リンク１２ａ及び第２リンク１２ｂが回転関節によって連結されて構成される。上アーム１２の第２リンク１２ｂの先端にはＬ字形のフランジ１２ｃが取り付けられている。フランジ１２ｃには第２エンドエフェクタ１３が直動関節によって連結されている。尚、第１エンドエフェクタ１１及び第２エンドエフェクタ１３は図１に示された形状に限定されず、ハンドその他の組立作業に適したエンドエフェクタでもよい。図２は、ロボット２の下アーム１０と、上アーム１２の関節構造を模式的に示す図である。図２に示すように、下アーム１０は、回転関節である第１軸２１及び第２軸２２と、並進（直動）関節である第３軸２３の３自由度を有する。上アーム１２は、回転関節である第４軸２４及び第５軸２５と、並進（直動）関節である第６軸２６の３自由度を有する。各アームを構成する関節軸２１〜２６には、それぞれの関節の角度を検出可能な角度検出器の一例であるエンコーダ（図示せず）等が組み込まれている。
【００３７】  下アーム１０では、基台９の上面に支持部材１０ｓが設けられ、水平に延在する第１リンク１０ａの一端部が基台９に鉛直な回転軸線を有する第１軸２１を介して支持部材１０ｓと連結される。第１リンク１０ａの他端部は、鉛直な回転軸線を有する第２軸２２を介して第２リンク１０ｂの一端と連結される。第２リンク１０ｂは水平に延在する。第２リンク１０ｂの他端に取り付けられたフランジ１０ｃには、鉛直な並進方向を有する第３軸２３を介して第１エンドエフェクタ１１が連結される。これにより、第１エンドエフェクタ１１は、第２リンク１０ｂの先端部で、第３軸２３により昇降可能に構成される。
【００３８】  上アーム１２では、下アーム１０の第１リンク１０ａの上面に支持部材１２ｓが設けられ、水平に延在する第１リンク１２ａの一端部が鉛直な回転軸線を有する第４軸２４を介して支持部材１２Ｓに連結される。第４軸２４は、その回転軸線が第１軸２１の回転軸線と一致するように配置される。第１リンク１２ａの他端部は、鉛直な回転軸線を有する第５軸２５を介して第２リンク１２ｂの一端と連結される。第２リンク１２ｂは水平に延在する。第２リンク１２ｂの他端に取り付けられたフランジ１２ｃには、鉛直な並進方向を有する第６軸２６を介して第２エンドエフェクタ１３が連結さる。これにより、第２エンドエフェクタ１３は、第２リンク１２ｂの先端部で、第６軸２６により昇降可能に構成される。第１エンドエフェクタ１１の基準位置と第２エンドエフェクタ１３の基準位置は、互いに同じ水平位置に設定される（図１参照）。
【００３９】  下アーム１０及び上アーム１２を構成する各軸２１〜２６は、サーボ機構（図示しない）により駆動される。サーボ機構は、アームを変位駆動するための駆動部と、駆動部の動力をアームに伝達するための伝達機構とを含む。本実施の形態では、駆動手段は、電動モータ、例えばサーボモータによって実現される。つまり、下アーム１０及び上アーム１２は、サーボ機構により、制御装置３の指令に従って運動するように構成される。ここで、上アーム１２の第４軸２４は、支持部材１２Ｓ及び下アーム１０の第１リンク１０ａを介して下アームの第１軸２１に回転軸線を共有するように接続されているので、第１軸２１の回転を相殺するように回転した上で所与の回転を行うよう制御される。［制御装置］  図３は、図１の制御装置３の構成を示すブロック図である。図３に示すように、制御装置３は、演算部３１と、記憶部３２と、通信インターフェース３３と、入出力インターフェース３４と、サーボ制御部３５とを備える。制御装置３は、ロボット２と制御線（図示しない）を介して接続され、例えばマイクロコントローラ等のコンピュータを備えたロボットコントローラである。制御装置３は単一の装置とは限らず、複数の装置で構成されてもよい。記憶部３２は、制御装置３の基本プログラム、ロボットの動作プログラム等の情報を記憶する。演算部３１は、ロボット制御のための演算処理を行い、ロボット２の制御指令を生成する。サーボ制御部３５は、演算部３１により生成された制御指令に基づいて、ロボット２の関節軸２１〜２６の各軸の動作を制御するように構成されている。通信インターフェース３３は、動作プログラム生成装置４に接続されている。通信インターフェース３３を介して、制御装置３及び動作プログラム生成装置４は互いにデータを送受信する。図４の平面図に示すように、制御装置３では、ロボット２の基準座標系Ｂ（以下、ベース座標系という）が設定される。この座標系Ｂは、例えば、基台９の設置面と下アーム１０の第１軸２１（図２参照）の回転軸線との交点が原点であり、第１軸２１の回転軸線がＺ軸であり、Ｚ軸に直交する任意の軸がＸ軸であり、Ｚ軸及びＸ軸に直交する軸がＹ軸である。下アーム１０の第２リンク１０ｂの先端に取り付けられたフランジ１０ｃを基準とした座標系を第１フランジ座標系Ｆ１という。上アーム１２の第２リンク１２ｂの先端に取り付けられた第２フランジ１２ｃを基準とした座標系を第２フランジ座標系Ｆ２という。制御装置３は、関節軸２１〜２６の角度と下アーム１０及び上アーム１２を構成するリンクの寸法とにより、共通のベース座標系Ｂにおけるフランジ１０ｃ、１２ｃの位置及び姿勢を特定できる。そして、制御装置３は、第１フランジ座標系Ｆ１におけるフランジ１０ｃの位置から第１エンドエフェクタ１１上の点までのベクトルと、第２フランジ座標系Ｆ２におけるフランジ１２ｃの位置から第２エンドエフェクタ１３上の点までのベクトルとを予め記憶しておくことにより、ベース座標系Ｂを基準としたロボット２の下アーム１０の手先位置と上アーム１２の手先位置を算出することができる。本実施形態では、ロボット２の下アーム１０の動作を規定する教示点はベース座標系Ｂを基準としたエンドエ��ェクタ１１の先端位置Ｐ１である。ロボット２の上アーム１２の動作を規定する教示点はベース座標系Ｂを基準としたエンドエフェクタ１３の先端位置Ｐ２である。尚、ロボットシ教示システム１においてビジョンセンサ（図示しない）を併用することにより、ロボット以外の空間上の任意な点を教示点としてもよい。ロボット２の運動は、１以上の教示点Ｐ１，Ｐ２が特定されることによって特定される。これにより、ベース座標系Ｂを基準としたロボットアーム１０，１２の動作領域２０を設定することができる。本実施形態では、動作領域２０は、平面視で矩形であって、ロボット２の正面に配置された作業台５を覆うように設定される。教示者は、この動作領域２０の範囲内において、ロボット２に実行させるべき作業の全体である全体作業の教示を行う。ロボット２は製品組立用ロボットであり、ロボットの全体作業は例えばエアコンの組み立て作業である。この場合、ロボット２の全体作業は複数の要素作業から構成され、各要素作業は例えば各組立工程である。図４の例では、要素作業は、作業台５の上に配置された４種類の部品Ｗ１、Ｗ２，Ｗ３，Ｗ４の組み立て作業である。
【００４０】  一般にオフラインティーチングでは、ロボットの姿勢をイメージすることができないことに起因して、オフラインティーチングが実情に沿わないため、実機による動作確認、又はオフラインティーチングにより生成された動作プログラムの修正が必要になる。
【００４１】  一方、製品の組立作業は相対的に単純な作業である工程の集合に細分化されている。各工程は人間が所定の手順で遂行できるように規定されている。従って、本実施形態のように、流れ作業ラインにおいて、人間に近い大きさの双腕ロボット２に作業者の代わりに工程作業を行わせる場合は、工程作業を行う双腕ロボットの姿勢を、当該工程作業を行う作業者の姿勢に重ねてイメージすることができる。従って、そのようなケースにおいては、オフラインティーチングによっても比較的実情に沿った動作プログラムを生成することができる。それ故、ロボットにより製品の組立作業を行うケースには、ＧＵＩを用いて一種のオフラインティーチングを行う本発明を好適に適用することができる。以下、具体的に説明する。［動作プログラム生成装置］教示者は、動作プログラム生成装置４を用いて、全体作業をロボット２に実行させる全体動作プログラムを生成し、制御装置３を通じてロボット２に動作を教示する。ここで教示者は、ロボット教示システム１の管理者でもよい。動作プログラム生成装置４は、ロボット２の全体動作プログラムの作成、修正、登録、又は各種パラメータの設定を実行する。図５は、動作プログラム生成装置４のハードウェア構成を示すブロック図である。  図５に示すように、動作プログラム生成装置４は、プロセッサ部４１と、タッチスクリーンディスプレイ４２と、通信部４３と、スピーカ４４と、記憶部４５を備える。本実施形態では、動作プログラム生成装置４はタブレット型パソコンである。プロセッサ部４１は、各種の処理を実行する演算装置であり、ＯＳ４５Ａ等の基本プログラムや、後述する動作プログラム生成アプリケーションを実行する。
【００４２】  タッチスクリーンディスプレイ４２は、画面表示部４Ａと、情報入力部４Ｂとを有する。画面表示部４Ａは、液晶ディスプレイ等の表示デバイスを備える。画面表示部４Ａは、文字、画像、記号、および図形等を画面に表示する。
【００４３】  情報入力部４Ｂは、ユーザによる画面への情報入力を検出する。本実施形態では、情報入力部４Ｂは、少なくとも、指、ペン、またはスタイラスペン等が画面に接触又は接近した位置を検出する。情報入力部４Ｂの検出方式は、静電容量方式等の任意の方式でもよい。
【００４４】  通信部４３は、有線または無線により、制御装置３と通信する。通信部４３は、１または複数の通信方式をサポートする。通信部４３によってサポートされる通信方式は、例えば、イーサーネット（登録商標）、携帯電話向けの通信方式等を含む。
【００４５】  スピーカ４４は、音を出力する。タブレット型パソコンは、ヘッドホン（イヤホン）を通じて音を出力するための出力端子をさらに備えてもよいし、音を入力するためのマイクをさらに備えてもよい。記憶部４５は、アプリケーションの動作を支援するオペレーティングシステム（ＯＳ）４５Ａと、フォアグランド又はバックグランドで実行されるアプリケーションプログラム（以下、単にアプリともいう）４５Ｂと、プログラムおよび属性情報４５Ｃを記憶する。アプリケーション４５Ｂには、本実施形態のＧＵＩを用いてロボットの全体動作プログラムを生成する動作プログラム生成アプリが含まれる。アプリは、例えば、ＧＵＩを用いて画面表示部４Ａに画面を表示させ、情報入力部４Ｂによって検出されるユーザのジェスチャに応じた処理をプロセッサ部４１に実行させる。アプリには、ゲーム、音楽や映像の視聴に関するもの、辞書、地図、勉強に関するものなど様々な種類のものがある。アプリは、マーケット等からタブレット端末にダウンロード（インストール）され、実行される。アプリは、通信部４３による通信または記憶媒体を介して記憶部４５にインストールされてもよい。その他、記憶部４５は、各アプリの実行ファイルおよびセーブデータ等を記憶する記憶領域、プロセッサ部４１の処理結果を一時的に記憶する作業領域としても利用される。記憶部４５は、半導体記憶媒体、および磁気記憶媒体等の任意の記憶媒体を含んでもよい。記憶部４５は、複数の種類の記憶媒体を含んでもよい。記憶部４５は、ＲＡＭ等の一時的な記憶領域として利用される記憶デバイスを含んでもよい。
【００４６】  図６は、動作プログラム生成装置４における動作プログラム生成アプリ実行時のプロセッサ部４１の機能構成を示すブロック図である。図６に示すように、プロセッサ部４１は、ＧＵＩ制御部５１と、カスタマイズ部５２と、動作プログラム生成部５３を含む各機能を実行する。プログラムおよび属性情報４５Ｃには、画面情報、ロボット情報、全体作業情報、要素作業情報、テンプレート要素動作プログラム、及び、カスタムプログラム格納領域に記憶されたその他の情報が含まれる。画面情報は、ＧＵＩ制御部５１によりタッチスクリーンディスプレイ４２上に表示される画像情報である。ロボット情報は本システム１により教示されるロボット（１又はそれ以上）に関する基本情報である。全体作業情報は各ロボットに教示する全体作業（１又はそれ以上）に関する情報である。全体作業としては例えばエアコン、カメラ等の組立作業である。要素作業情報は各全体作業を構成する要素作業（１又はそれ以上）に関する情報である。要素作業としては例えば移動、設置、つかむ(hold)、はなす(release)、信号待ち等である。テンプレート要素動作プログラムは、各要素作業に対応し且つ１以上の変数を引数として有し、これらの変数が全て特定されることによりその要素作業をロボットが実行することが可能なように予めロボット言語により記述されたプログラムリストである。テンプレート要素動作プログラムは、少なくとも、その対応する要素作業に必要なロボットの運動を規定する１以上の手先位置座標（教示点）を変数として含み、且つ１以上の手先位置座標（教示点）が全て特定されることによってロボットの運動が特定されるように構成されている。記憶部４５には、ロボット情報、全体作業情報、及び要素作業情報の順に上層から下層へ向かうように階層化され、各層の構成要素である個々のロボット、個々の全体作業、及び個々の要素作業に、それぞれ、相互に識別するための識別名称が付与され、且つ複数のテンプレート要素動作プログラムが、最下層を構成する複数の要素作業にそれぞれ対応するようにして、複数のテンプレート要素動作プログラムが記憶されている。ここでは複数のロボットにそれぞれ対応する全体作業及びそれぞれの全体作業に対応する複数のテンプレート要素動作プログラムが、それぞれ、複数のロボットと関連付けて記憶部４５に記憶されている。これらの情報は、ネットワークを通じてダウンロードされてもよいし、ユーザ入力されてもよいし、制御装置３から取得されてもよいし、記憶媒体から取得されてもよい。カスタムプログラム格納領域には、カスタム要素動作プログラムと、作成された全体動作プログラムに関する情報が格納される。ここでカスタム要素動作プログラムとは、テンプレート要素動作プログラムの１以上の変数が全て特定されたプログラムリストをいう。全体動作プログラムは、テンプレート要素動作プログラム（1又はそれ以上）の変数（１又はそれ以上）が特定されたカスタム要素動作プログラム（１又はそれ以上）に基づいて生成されたプログラムリストである。ＧＵＩ制御部５１は、記憶部４５に記憶された各種情報に基づいて、ＧＵＩにより、タッチスクリーンディスプレイ４２に所定画面を表示し、ユーザ操作に応じた処理を実行する。
【００４７】  カスタマイズ部５２は、ＧＵＩを用いて、あるテンプレート要素動作プログラムの１以上の変数を全て特定するためのパラメータ設定画面を表示し、その後、ユーザによって当該パラメータ設定画面を用いて１以上の変数が特定されると、当該特定されたテンプレート要素動作プログラムをカスタム要素動作プログラムとして記憶部４５に記憶させることを、記憶部４５に記憶された複数のテンプレート要素動作プログラムに対して順次実行するよう構成されている。プログラム生成部５３は、記憶部４５に記憶された複数のカスタム要素動作プログラムに基づいて当該複数のカスタム要素動作プログラムを含む全体動作プログラムを生成するよう構成されている。生成された全体動作プログラムは、ユーザ操作に応じて、通信部４３を介して、制御装置３にダウンロードされる。［動作プログラム生成手順］  次に、教示者による全体動作プログラムの生成手順について図７〜図１３を用いて説明する。
【００４８】  まず、ＧＵＩ制御部５１は、ＧＵＩを用いて、タッチスクリーンディスプレイ４２にナビゲーション画面を表示する（図７のステップＳ１）。具体的には、教示者がタブレット型パソコン上で動作プログラム生成アプリを起動する。アプリ起動から一定時間後に起動画面（図示せず）からナビゲーション画面に自動的に遷移する。図８は、ＧＵＩを用いて表示されたナビゲーション画面の一例を示す。同図に示すように、ナビゲーション画面では、画面左半分に選択メニューの一覧が表示される。上から順に、教示対象であるロボットの情報を設定するためのメニュー（図８では『ロボット』と表示）、教示点を編集するためのメニュー（図８では『教示点編集』と表示）、全体動作プログラムを作成するためのメニュー（図８では『作業管理』と表示）、データをバックアップするためのメニュー（図８では『バックアップ』と表示）、端末の基本設定を行うためのメニュー（図８では『設定』と表示）が表示されている。教示者は、画面上の文字またはアイコンに触れることで所望のメニューを選択する。以下では動作プログラムを生成するための典型的な手順について説明するが、教示者がナビゲーション画面において任意のメニューを選択できることは言うまでもない。
【００４９】  次に、ＧＵＩ制御部５１は、ＧＵＩを用いて、タッチスクリーンディスプレイ４２上にロボット選択画面を表示する（ステップＳ２）。具体的には、教示者が図８のナビゲーション画面で『ロボット』を選択した場合にこの画面が表示される。図９は、ＧＵＩを用いて表示されたロボット選択画面の一例を示す。ここではタブレット端末と接続され、教示可能なロボットに関する情報が表示される。同図に示すように、ロボット選択画面では、画面左半分に選択可能なロボットの一覧が表示される。ここではロボットを相互に識別するために識別名称『ロボット１』及び『ロボット２』が付与されている。例えば『ロボット１』及び『ロボット２』は図４のロボット２の下アーム１０及び上アーム１２が対応する。ロボット選択画面の画面右半分には選択したロボット（制御装置３）と接続するか否かの選択メニューが表示される。本実施形態では、ロボット２の下アーム１０及び上アーム１２のそれぞれの単独動作に対応する全体動作プログラムの生成について説明する。尚、画面（図９〜図１２）上部のツールバーに触れることにより、ファイルの新規作成、編集、複製、削除が可能である。また、ツールバー下部のタブに触れることにより、その他の画面に移行することができる。
【００５０】  次に、ＧＵＩ制御部５１は、ＧＵＩを用いて、タッチスクリーンディスプレイ４２上に全体作業選択画面を表示する（ステップＳ３）。具体的には、教示者が図８のナビゲーション画面で『作業管理』を選択した場合にこの画面が表示される。図１０は、ＧＵＩを用いて表示された全体作業選択画面の一例を示す。同図に示すように、全体作業選択画面では、選択可能な製品の一覧が表示される。ここでは全体作業を相互に識別するために識別名称『エアコン１』、『カメラ１』、『レンズ１』、『部品１』、及び『携帯電話基板１』が付与されている。教示者は特定の製品を選択する。ここでは選択された製品の組み立て作業がロボット２に実行させるべき全体作業を意味する。
【００５１】  次に、ＧＵＩ制御部５１は、ＧＵＩを用いて、タッチスクリーンディスプレイ４２上に要素作業選択画面（プログラム選択画面）を表示する（ステップＳ４）。具体的には、教示者が図１０の全体作業選択画面で特定の製品（例えば識別名称『エアコン１』）を選択した場合にこの画面が表示される。図１１は、ＧＵＩを用いて表示された要素作業選択画面（プログラム選択画面）の一例を示す。同図に示すように、要素作業選択画面（プログラム選択画面）では、選択可能な要素作業の一覧が表示される。ここでは要素作業を相互に識別するために識別名称『信号待ち』、『Ａ点移動』、『移動』、『設置』、『移動』、『つかむ(hold)』、『はなす(release)』が付与されている。尚、記憶部４５には、予め、各要素作業にそれぞれ対応し、１以上の変数を含み、且つ１以上の変数が全て特定されることによってそれぞれの要素作業をロボットが実行することが可能なように構成された複数のテンプレート要素動作プログラムが記憶されている。教示者は上記要素作業の中から、所定の要素作業（識別名称）の組を選択することにより、テンプレート要素動作プログラムの組を選択することができる。図１１では、全体作業としてエアコンの部品の搬送作業を構成する３つの要素作業の組（識別名称『つかむ(hold)』、『移動』、『はなす(release)』）が選択されている。
【００５２】  更に、カスタマイズ部５２は、ＧＵＩを用いて、タッチスクリーンディスプレイ４２上にパラメータ設定画面を表示する（ステップＳ５）。具体的には、教示者が図１１の３つの要素作業（識別名称『つかむ(hold)』、『移動』、『はなす(release)』）のうち一の要素作業（識別名称『移動』）を選択した場合に表示される。図１２は、ＧＵＩを用いて表示されたパラメータ設定画面の一例を示す。同図に示すように、パラメータ設定画面では、移動について設定可能なパラメータの一覧が表示される。ここでは教示者は、ロボットの動作速度、移動方法、待ち時間、ロボットの教示点、及びビジョンセンサについての変数を設定する。ロボット２の動作速度は任意に設定することができる。本実施形態では動作領域２０におけるロボット２の下アーム１０及び上アーム１２のそれぞれの最大動作速度を任意に設定することができる（図４参照）。例えば動作領域２０においてロボット２と人とが共存して作業を行う領域を設けた場合には最大動作速度を、ＩＳＯ１０２１８−１に低速制御として規定されている２５０ｍｍ／ｓに設定してもよい。移動方法は任意に設定できる。例えば直線補間、円弧補間、PTP制御(point to point)のうち所望の移動方法を選択することができる。待ち時間を任意に設定できる。ここではロボット２が上記『移動』動作を行うまでの待ち時間を設定することができる。ロボットの教示点を設定することができる。本実施形態ではロボットの教示点（手先位置座標）は、通信によって制御装置３から取得し、画面に表示するように構成されているが、教示者が制御装置３に表示されたロボットの手先位置座標の出力を見て、これを画面に直接入力するような構成でもよい。また、ビジョンセンサの有無を設定することができる。ロボットシ教示システム１においてビジョンセンサ（図示しない）を使用することにより、ロボット２以外の空間上の任意な点を教示点としてもよい。
【００５３】  次に、カスタマイズ部５２は、パラメータ設定画面（図１２）においてユーザによって１以上の変数が特定されると、当該特定されたテンプレート要素動作プログラムをカスタム要素動作プログラムとして記憶部４５に記憶させる（ステップＳ６）。カスタマイズ部５２は、記憶部４５に記憶されたその他のテンプレート要素動作プログラムに対して順次実行する（ステップＳ７）。教示者はその他の要素動作（識別名称『つかむ』、『はなす』）についても同様に、ＧＵＩを用いてパラメータを設定することにより、各要素作業に対応するテンプレート要素動作プログラムをカスタマイズし、カスタム要素動作プログラムとして記憶部４５に記憶する。
【００５４】  プログラム生成部５３は、記憶部４５に記憶された複数のカスタム要素動作プログラムに基づいて当該複数のカスタム要素動作プログラムを含む全体動作プログラムを生成する（ステップＳ８）。
【００５５】  図１３は、生成された全体動作プログラムの一例を説明するため模式図である。図１３（ａ）に示すように、ロボットの全体作業はエアコンの部品の搬送作業である。搬送作業は３つの要素作業（つかむ(hold)、移動、はなす(release)）から構成される。具体的には、まず原点Ｇ（Ｘａ，Ｙａ，Ｚａ，ＲＸａ，ＲＹａ，ＲＺａ）から第１所定位置まで直線移動する。次に所定位置から点Ａ１（Ｘａ，Ｙａ，Ｚａ，ＲＸａ，ＲＹａ，ＲＺａ）まで直線移動する。点Ａ１においてワークを把持し第１所定位置まで直線移動する。その後ワークを把持したまま第２所定位置まで直線移動する。次に、第２所定位置から点Ｂ１（Ｘｂ，Ｙｂ，Ｚｂ，ＲＸｂ，ＲＹｂ，ＲＺｂ）まで直線移動してワークを離す。次に点Ｂ１（Ｘｂ，Ｙｂ，Ｚｂ，ＲＸｂ，ＲＹｂ，ＲＺｂ）から第２所定位置まで直線移動する。最後に直線移動して原点Ｇまで戻る。図１３（ｂ）は作成された全体動作プログラムのソースを示している。図１３（ｃ）はソースに対応する要素作業選択画面（プログラム選択画面）の一例である。このように、教示者はロボット言語を理解していなくてもＧＵＩによる簡単な操作で動作プログラミングを作成することができる。最後に、教示者は、生成された全体動作プログラムを制御装置３に転送する。図９のロボット選択画面のタブ『転送』により転送を実行する。制御装置３は転送された動作プログラムに基づいて、ロボットに動作を教示する。また、教示者は図９のロボット選択画面のタブ『モニタ』により教示結果をプレイバックすることも可能である。
【００５６】  このように、本実施形態によれば、教示者が、ＧＵＩを用いて、あるテンプレート要素動作プログラムのパラメータ設定画面（図１２）を表示した後、パラメータ設定画面を用いて変数を特定すると、この変数が特定されたテンプレート要素動作プログラムがカスタム要素動作プログラムとして記憶部４５に記憶される。そして、この操作を記憶部４５に記憶された複数のテンプレート要素動作プログラムに対して順次実行すると、プログラム生成部５３が記憶部４５に記憶された複数のカスタム要素動作プログラムを含む全体動作プログラムを生成する。従って、教示者はロボット言語を理解していなくても、ＧＵＩを用いてテンプレート要素動作プログラムの変数を特定するだけで、ロボットの手先位置座標（教示点）を含む運動動作に関する動作プログラムを生成することができる。そして、この動作プログラムをロボットの制御装置３にダウンロードすることによって、ロボットに運動動作に関する教示を行うことができる。よって、ロボット言語を理解していなくても、ロボットを簡単に教示することができる。また、本実施形態によれば、教示者が、ＧＵＩを用いて、要素作業選択画面（図１１のプログラム選択画面）を表示し、複数のテンプレート要素動作プログラムの中から所望のテンプレート要素動作プログラムの組を選択することによって、ロボットが実行すべき所望の全体作業を構築し、且つ、所望の全体作業を実行するロボットの動作プログラムを容易に生成することができる。（その他の実施形態）尚、本実施形態では、ロボット２の下アーム１０及び上アーム１２のそれぞれの単独動作に対応する全体動作プログラムの生成について説明したが、これに限定されない。ロボット２の下アーム１０及び上アーム１２が協調動作を行い、上記全体作業が複数のアームに協調して実行させるべき作業の全体である全体作業（以下、協調全体作業という）であってもよい。この場合、上記複数の要素作業が協調全体作業を構成する複数の要素作業（以下、協調要素作業という）である。また、上記テンプレート要素動作プログラムが協調要素作業に対応するテンプレート要素動作プログラム（以下、テンプレート協調要素動作プログラムという）である。また、上記カスタム要素動作プログラムがテンプレート協調要素動作プログラムに対応するカスタム要素動作プログラム（以下、カスタム協調要素動作プログラムという）である。また、上記全体動作プログラムがカスタム協調要素動作プログラムに対応する全体動作プログラム（以下、協調全体動作プログラムという）である。また、複数のテンプレート協調要素動作プログラムが、少なくとも、その対応する協調要素作業に必要なロボットの複数のアームの運動をそれぞれ各アーム毎に規定する各アームの１以上の手先位置座標を変数として含み、且つ各アームの１以上の手先位置座標が全て特定されることによってロボットの複数のアームの運動が特定されるように構成されたテンプレート協調要素動作プログラムを含む。これにより、ロボット言語を理解していなくても、協調動作を行う複数のアームを有するロボットを容易に教示することができる。また、この協調動作にはワークを回転させる又は並進させる動作を含めることによ���、多腕ロボットによるワークの回転、並進動作を簡単に教示できる。更に、複数のアームを有するロボットの各アーム毎に各アームの単独動作に対応する全体動作プログラムを生成するステップをさらに含み、複数のアームの協調動作に対応する協調全体動作プログラムと複数のアームのそれぞれの単独動作に対応する各前記全体動作プログラムとが所定のアクションをトリガとして切り替わるように構成されていてもよい。これにより、ロボット言語を理解していなくても、複数のアームを有するロボットを、複数のアームの協調動作と各アームの単独動作と切り替えて行うように、容易に教示することができる。
【００５７】  尚、本実施形態では、動作プログラム生成装置４はロボット動作プログラム生成アプリケーションがインストールされたタブレット型パソコンとしたが、スマートフォンでもよい。これにより、教示者は端末を容易に持ち歩き、直観的且つ簡易な操作で教示を行うことができる。また、本実施形態では、動作プログラム生成装置４は、ソフトウェアをインストールして実行可能な汎用コンピュータでもよいし、専用のハードウェアでもよい。
【００５８】  上記説明から、当業者にとっては、本発明の多くの改良や他の実施形態が明らかである。従って、上記説明は、例示としてのみ解釈されるべきであり、本発明を実行する最良の態様を当業者に教示する目的で提供されたものである。本発明の精神を逸脱することなく、その構造及び機能の一方又は双方の詳細を実質的に変更できる。
【産業上の利用可能性】
【００５９】  本発明は、ロボットの動作教示に有用である。
【符号の説明】
【００６０】１    ロボット教示システム２    ロボット本体３    制御装置４    動作プログラム生成装置（タブレット型パソコン）５    台車６  作業台９  基台１０  下アーム１１  第１エンドエフェクタ１２  上アーム１３  第２エンドエフェクタ２１〜２６  第１軸〜第６軸３１  演算部３２  記憶部３３  通信インターフェース３４  入出力インターフェース３５  サーボ制御部４１  ＣＰＵ４２  タッチスクリーンディスプレイ４３  通信部４４  スピーカ４５  記憶部４５Ａ  ＯＳ４５Ｂ  動作プログラム生成アプリケーションＢ    ベース座標系Ｆ１  第１フランジ座標系Ｆ２  第２フランジ座標系
【図１】
2016103307.tif 000003
【図２】
2016103307.tif 000004
【図３】
2016103307.tif 000005
【図４】
2016103307.tif 000006
【図５】
2016103307.tif 000007
【図６】
2016103307.tif 000008
【図７】
2016103307.tif 000009
【図８】
2016103307.tif 000010
【図９】
2016103307.tif 000011
【図１０】
2016103307.tif 000012
【図１１】
2016103307.tif 000013
【図１２】
2016103307.tif 000014
【図１３】
2016103307.tif 000015
【国際調査報告】
2016103307.tif 000016
2016103307.tif 000017
2016103307.tif 000018
2016103307.tif 000019