(57)【要約】【課題】命令やつなぎ情報を用いることなく、ポイント種別の組込クラスにループ開始あるいはループ終了の性質をもったクラスを用意し、ポイント種別の組込クラスにループ開始あるいはループ終了の性質をもったクラスによって、繰り返し動作を実現させる。【解決手段】ポイントデータ列は、繰り返しの開始の性質を持つ組込ポイント種別である繰り返し開始点と、繰り返し終了の性質を持つ組込ポイント種別である繰り返し終了点と、組込ポイント種別を継承元として定義されたポイント種別からなるポイントデータと、を含み、制御部は、繰り返し開始点を継承した定義から作られたポイントデータにおいて運転の繰り返しを開始し、繰り返し終了点を継承した定義から作られたポイントデータにおいて運転の繰り返しを終了することにより、運転を繰り返す制御を行う。【選択図】図２
2019150888.tif 000002
【特許請求の範囲】
【請求項１】
本体と、制御部と、を備え、前記制御部が、作業ツールの運転条件を含むポイント種別の定義に基づくポイントデータを含むポイントデータ列に基づいて作業を実行するロボットであって、
前記ポイント種別は、繰り返しの開始の性質を持つ組込ポイント種別である繰り返し開始点と、繰り返し終了の性質を持つ組込ポイント種別である繰り返し終了点と、前記繰り返し開始点又は前記繰り返し終了点を継承元として定義されたポイント種別と、を含み、
前記制御部が、前記繰り返し開始点又は該繰り返し開始点を承継元として定義されたポイント種別のいずれかに基づくポイントデータに基づいて前記作業ツールの運転の繰り返しを開始し、前記繰り返し終了点又は該繰り返し終了点を承継元として定義されたポイント種別のいずれかに基づくポイントデータに基づいて前記作業ツールの運転の繰り返しを終了することにより、前記作業ツールの運転を繰り返す制御を行うことを特徴とするロボット。
【請求項２】
前記繰り返し開始点又は該繰り返し開始点を承継元として定義されたポイント種別のいずれかに基づくポイントデータのポイントを繰り返し開始ポイントとし、前記繰り返し終了点又は該繰り返し終了点を承継元として定義されたポイント種別のいずれかに基づくポイントデータのポイントを繰り返し終了ポイントとし、
前記制御部は、１の前記繰り返し開始ポイントに複数の前記繰り返し終了ポイントを対応させ、あるいは、複数の前記繰り返し開始ポイントに１の前記繰り返し終了ポイントを対応させることを特徴とする請求項１に記載のロボット。
【請求項３】
前記制御部は、前記１の繰り返し開始ポイントと、該１の繰り返し開始ポイントに対応する前記複数の前記繰り返し終了ポイントのうち、１の繰り返し終了ポイントと、において、前記運転を繰り返す、あるいは、前記１の繰り返し終了ポイントと、該１の繰り返し終了ポイントに対応する前記複数の繰り返し開始ポイントのうち、１の繰り返し開始ポイントと、において、前記運転を繰り返すことを特徴とする請求項２に記載のロボット。
【請求項４】
前記制御部は、前記１の繰り返し開始ポイントと、該１の繰り返し開始ポイントに対応する前記複数の繰り返し終了ポイントと、において、順に、前記運転を繰り返す、あるいは、前記１の繰り返し終了ポイントと対応する前記複数の繰り返し開始ポイントと、において、順に、前記運転を繰り返すことを特徴とした請求項２に記載のロボット。
【請求項５】
前記制御部は、前記運転の繰り返しが予め設定された回数に達した場合、予め設定された該運転の繰り返しを終了する終了条件が成立した場合、あるいは、該運転の繰り返しを終了する終了命令が実行された場合に、該運転の繰り返しを終了することを特徴とする請求項１から請求項４のいずれか１項に記載のロボット。
【請求項６】
前記制御部は、前記運転の繰り返しが終了した後に、他の運転の繰り返しを行うことを特徴とする請求項５に記載のロボット。
【請求項７】
本体と、制御部と、を備え、前記制御部が、作業ツールの運転条件を含むポイント種別の定義に基づくポイントデータを含むポイントデータ列に基づいて作業を実行するロボットにおける制御方法であって、
前記ポイント種別は、繰り返しの開始の性質を持つ組込ポイント種別である繰り返し開始点と、繰り返し終了の性質を持つ組込ポイント種別である繰り返し終了点と、前記繰り返し開始点又は前記繰り返し終了点を継承元として定義されたポイント種別と、を含み、
前記制御部が、前記繰り返し開始点又は該繰り返し開始点を承継元として定義されたポイント種別のいずれかに基づくポイントデータに基づいて前記作業ツールの運転の繰り返しを開始する第１の工程と、
前記制御部が、前記繰り返し終了点又は該繰り返し終了点を承継元として定義されたポイント種別のいずれかに基づくポイントデータに基づいて前記作業ツールの運転の繰り返しを終了する第２の工程と、
を備え、
前記制御部が、前記第１の工程と第２の工程とを実行することにより、前記作業ツールの運転を繰り返す制御を行うことを特徴とする制御方法。
【請求項８】
本体と、制御部と、を備え、前記制御部が、作業ツールの運転条件を含むポイント種別の定義に基づくポイントデータを含むポイントデータ列に基づいて作業を実行するロボットにおける制御方法をコンピュータに実行させるためのプログラムであって、
前記ポイント種別は、繰り返しの開始の性質を持つ組込ポイント種別である繰り返し開始点と、繰り返し終了の性質を持つ組込ポイント種別である繰り返し終了点と、前記繰り返し開始点又は前記繰り返し終了点を継承元として定義されたポイント種別と、を含み、
前記制御部が、前記繰り返し開始点又は該繰り返し開始点を承継元として定義されたポイント種別のいずれかに基づくポイントデータに基づいて前記作業ツールの運転の繰り返しを開始する第１の工程と、
前記制御部が、前記繰り返し終了点又は該繰り返し終了点を承継元として定義されたポイント種別のいずれかに基づくポイントデータに基づいて前記作業ツールの運転の繰り返しを終了する第２の工程と、
を備え、
前記制御部が、前記第１の工程と第２の工程とを実行することにより、前記作業ツールの運転を繰り返す制御を行うことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット、制御方法およびプログラムに関する。
【背景技術】
【０００２】
ポイントオブジェクトを主体とした産業用ロボットのティーチングシステムが知られている。この種のポイントオブジェクト指向型ティーチングシステムＰＯＯＴＳ（プーツ；Ｐｏｉｎｔ  Ｏｂｊｅｃｔ  Ｏｒｉｅｎｔｅｄ  Ｔｅａｃｈｉｎｇ  Ｓｙｓｔｅｍ）では、カプセル化や継承の特性を持ったクラスであるポイント種別を定義することができ、フログラムはこのクラスのインスタンスであるポイントの並びからなる（例えば、特許文献１、２参照）。
なお、ここで、「クラス」とは、ポイントデータの定義であり、「ポイントデータ」とは、座標と運転条件を含んだデータであり、「継承」とは、基底クラスの性質を引き継ぐことをいい、「組込クラス」とは、開発時に予め定義されたクラスをいう。また、「ポイントデータ列」とは、「ポイントデータ」が、例えば、時系列的に並んだデータ群をいい、「インスタンス」とは、ポイント種別より作成された実際のポイントデータをいう。なお、ここで、「ポイント種別」とは、ポイントデータの定義を基に作成されたポイントデータの雛形をいう。
【０００３】
産業用ロボットの作業の一つに、ピックアップアンドプレイス作業がある。例えば、１点から部品を取って（ピックアップ）、それをパレットに配置していく（プレイス）作業である。このピックアップアンドプレイスの作業では、本質的に、ピックアップ点とプレイス点を行ったり来たりして繰り返し作業を行う。
【０００４】
パレットに部品をプレイスしていく、あるいはパレットから部品をピックアップするといった場合、パレットを設定し、これをポイントに対して属性として付加することにより、繰り返す毎に位置をずらしていくといったことが行われている。この場合、位置をずらしていくために、特に命令を設定する必要は無い。
ここで、「パレット」とは、同じ場所、あるいは等間隔にポイントデータを配置したものをいう。また、パレットにより、開始点、終了点が確定し、「先頭戻り」、「折り返し」を指定することによって、ロボットの移動経路も決定されるパレットの特徴を「パレット属性」という。
【０００５】
しかし、一方で、部品をピックアップして、この部品をプレイスした後に、部品をピックアップする点に「戻る」ためには、ポイントをジャンプする命令を設定する必要がある。また、特許文献３では、次の実行ポイントを示すための、つながりデータといったものをポイントあるいは、ポイントとポイントとの間に持たせることにより、命令無しで「戻り」を実現する方法を提案している。
この特許文献３に記載の方法は、命令を使わずに済むという点において有効であるが、一方で、ポイント毎に明示的に「戻り」を示す方法であるため、場合によっては、煩雑になる。より具体的には、パレットの機能には、「戻り」の条件が示されているが、ポイント種別やパレットそれぞれの特徴を理解した上で、ポイントティーチングを行う必要があるため、ティーチングの内容によっては、その作業は煩雑なものとなる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−２２６７３０号公報
【特許文献２】特開２０１７−００１１４５号公報
【特許文献３】特許第４６６７４１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ポイントオブジェクト指向型ティーチングシステムでは、基本的に、ポイント列の実行はポイント列の並び順で行われる。そのため、ピックアップアンドプレイス作業を行う場合には、単純な場合でも、ポイントだけでは設定できず、命令やつなぎ情報といったものが必要となってしまう。
【０００８】
また、ポイントオブジェクト指向型ティーチングシステムでは、原則として「命令」は、ポイント種別定義を作成する場合に利用するものであり、ユーザが、命令を書く必要が無い、というのが特徴であるが、ピックアップアンドプレイスの作業では、この原則が覆され、特徴が活かされていないという問題がある。
【０００９】
また、部品の多パレットから多パレットへの載せ替えはともかく、１つのパレットから１つのパレット、１つのパレットから多パレット、あるいは多パレットから１つのパレットへの載せ替え（ピックアップアンドプレイス）では、命令やつなぎ情報を使わなくても良い様にしたいという要求もあった。
【００１０】
そこで、本発明は、上述の課題に鑑みてなされたものであり、命令やつなぎ情報を用いることなく、ポイント種別の組込クラスにループ開始あるいはループ終了の性質をもったクラスを用意し、ポイント種別の組込クラスにループ開始あるいはループ終了の性質をもったクラスによって、繰り返し動作を実現させるロボット、制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
形態１；本発明の１またはそれ以上の実施形態は、本体と、制御部と、を備え、前記制御部が、作業ツールの運転条件を含むポイント種別の定義に基づくポイントデータを含むポイントデータ列に基づいて作業を実行するロボットであって、前記ポイント種別は、繰り返しの開始の性質を持つ組込ポイント種別である繰り返し開始点と、繰り返し終了の性質を持つ組込ポイント種別である繰り返し終了点と、前記繰り返し開始点又は前記繰り返し終了点を継承元として定義されたポイント種別と、を含み、前記制御部が、前記繰り返し開始点又は該繰り返し開始点を承継元として定義されたポイント種別のいずれかに基づくポイントデータに基づいて前記作業ツールの運転の繰り返しを開始し、前記繰り返し終了点又は該繰り返し終了点を承継元として定義されたポイント種別のいずれかに基づくポイントデータに基づいて前記作業ツールの運転の繰り返しを終了することにより、前記作業ツールの運転を繰り返す制御を行うことを特徴とするロボットを提案している。
【００１２】
形態２；本発明の１またはそれ以上の実施形態は、前記繰り返し開始点又は該繰り返し開始点を承継元として定義されたポイント種別のいずれかに基づくポイントデータのポイントを繰り返し開始ポイントとし、前記繰り返し終了点又は該繰り返し終了点を承継元として定義されたポイント種別のいずれかに基づくポイントデータのポイントを繰り返し終了ポイントとし、前記制御部は、１の前記繰り返し開始ポイントに複数の前記繰り返し終了ポイントを対応させ、あるいは、複数の前記繰り返し開始ポイントに１の前記繰り返し終了ポイントを対応させることを特徴とするロボットを提案している。
【００１３】
形態３；本発明の１またはそれ以上の実施形態は、前記制御部は、前記１の繰り返し開始ポイントと、対応する前記複数の前記繰り返し終了ポイントのうち、１の繰り返し終了ポイントと、において、前記運転を繰り返す、あるいは、前記１の繰り返し終了ポイントと、対応する前記複数の繰り返し開始ポイントのうち、１の繰り返し開始ポイントと、において、前記運転を繰り返す制御を行うロボットを提案している。
【００１４】
形態４；本発明の１またはそれ以上の実施形態は、前記制御部は、前記１の繰り返し開始ポイントと、対応する前記複数の繰り返し終了ポイントと、において、順に、前記運転を繰り返す、あるいは、前記１の繰り返し終了ポイントと対応する前記複数の繰り返し開始ポイントと、において、順に、前記運転を繰り返すロボットを提案している。
【００１５】
形態５；本発明の１またはそれ以上の実施形態は、前記制御部は、前記運転の繰り返しが予め設定された回数に達した場合、予め設定された該運転の繰り返しを終了する終了条件が成立した場合、あるいは、該運転の繰り返しを終了する終了命令が実行された場合に、該運転の繰り返しを終了することを特徴とするロボットを提案している。
【００１６】
形態６；本発明の１またはそれ以上の実施形態は、前記制御部は、前記運転の繰り返しが終了した後に、他の運転の繰り返しを行うロボットを提案している。
【００１７】
形態７；本発明の１またはそれ以上の実施形態は、本体と、制御部と、を備え、前記制御部が、作業ツールの運転条件を含むポイント種別の定義に基づくポイントデータを含むポイントデータ列に基づいて作業を実行するロボットにおける制御方法であって、前記ポイント種別は、繰り返しの開始の性質を持つ組込ポイント種別である繰り返し開始点と、繰り返し終了の性質を持つ組込ポイント種別である繰り返し終了点と、前記繰り返し開始点又は前記繰り返し終了点を継承元として定義されたポイント種別と、を含み、前記制御部が、前記繰り返し開始点又は該繰り返し開始点を承継元として定義されたポイント種別のいずれかに基づくポイントデータに基づいて前記作業ツールの運転の繰り返しを開始する第１の工程と、前記制御部が、前記繰り返し終了点又は該繰り返し終了点を承継元として定義されたポイント種別のいずれかに基づくポイントデータに基づいて前記作業ツールの運転の繰り返しを終了する第２の工程と、を備え、前記制御部が、前記第１の工程と第２の工程とを実行することにより、前記作業ツールの運転を繰り返す制御を行うことを特徴とする制御方法を提案している。
【００１８】
形態８；本発明の１またはそれ以上の実施形態は、本体と、制御部と、を備え、前記制御部が、作業ツールの運転条件を含むポイント種別の定義に基づくポイントデータを含むポイントデータ列に基づいて作業を実行するロボットにおける制御方法をコンピュータに実行させるためのプログラムであって、前記ポイント種別は、繰り返しの開始の性質を持つ組込ポイント種別である繰り返し開始点と、繰り返し終了の性質を持つ組込ポイント種別である繰り返し終了点と、前記繰り返し開始点又は前記繰り返し終了点を継承元として定義されたポイント種別と、を含み、前記制御部が、前記繰り返し開始点又は該繰り返し開始点を承継元として定義されたポイント種別のいずれかに基づくポイントデータに基づいて前記作業ツールの運転の繰り返しを開始する第１の工程と、前記制御部が、前記繰り返し終了点又は該繰り返し終了点を承継元として定義されたポイント種別のいずれかに基づくポイントデータに基づいて前記作業ツールの運転の繰り返しを終了する第２の工程と、を備え、前記制御部が、前記第１の工程と第２の工程とを実行することにより、前記作業ツールの運転を繰り返す制御を行うことを特徴とするプログラムを提案している。
【発明の効果】
【００１９】
本発明の１またはそれ以上の実施形態によれば、命令やつなぎ情報を用いることなく、ポイント種別の組込クラスにループ開始あるいはループ終了の性質をもったクラスを用意し、ポイント種別の組込クラスにループ開始あるいはループ終了の性質をもったクラスによって、繰り返し動作を実現させることができるという効果がある。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施形態に係るロボットの構成を示す図である。
【図２】本発明の実施形態に係る制御部の電気的構成を示す図である。
【図３】従来と本発明の実施形態とにおける「ポイント種別」、「ポイントデータ」との関係を対比した図である。
【図４】本発明の実施形態に係るポイント種別定義のデータ例を示す図である。
【図５】本発明の実施形態に係るポイントを例示的に示す図である。
【図６】本発明の実施形態に係る繰り返しの種類が交互である場合のポイントデータを例示的に示す図である。
【図７】本発明の実施形態に係る繰り返しの種類が個別である場合のポイントデータを例示的に示す図である。
【図８】本発明の実施形態に係るループの順序を処理するための制御フロー図である。
【図９】本発明の実施形態に係る１対１ループ処理の制御フロー図である。
【図１０】本発明の実施形態に係る１対Ｎループ処理の制御フロー図である。
【図１１】本発明の実施形態に係るＮ対１ループ処理の制御フロー図である。
【図１２】本発明の実施形態に係るＮ対１ループ処理の制御フロー図である。
【図１３】本発明の実施形態に係る開始と終了だけではないポイントを例示的に示す図である。
【発明を実施するための形態】
【００２１】
＜実施形態＞
以下、本発明の実施形態について、図１から図１３を用いて説明する。
【００２２】
＜ロボットの構成＞
図１を用いて、本実施形態に係るロボットの構成について説明する。
【００２３】
図１に示すように、ロボット１は、主として、制御部（コントローラ）１０と、本体２０とから構成されている。本体２０は、後述する作業ツールを横方向であるＸ方向に稼働するＸスライダー３０と、Ｘ方向への稼働部に載置され、作業ツールを奥行き方向であるＹ方向に稼働するＹスライダー４０と、Ｙ方向への稼働部に載置され、作業ツールを垂直方向であるＺ方向に稼働するＺスライダー５０とを含んで構成されている。
【００２４】
また、Ｚスライダー５０のＺ方向への稼働部には、作業ツールが取り付けられている。そして、各スライダーは、図示しないモータにより駆動され、制御部（コントローラ）１０からの指令に基づいて、それぞれのモータを稼働させることにより、作業ツールをＸ方向、Ｙ方向、Ｚ方向に移動させ、作業ツールを所定のポイントに移動させる。
【００２５】
＜制御部の電気的構成＞
図２〜図４を用いて、本実施形態に係る制御部１０の電気的構成について説明する。
【００２６】
図２に示すように、本実施形態に係る制御部１０は、中央演算処理装置（ＣＰＵ）１１と、制御プログラム記憶部１２と、表示部１３と、操作部１４と、一時記憶部１５と、ポイント種別定義記憶部１６と、ポイント列記憶部１７と、モータ駆動制御部２１Ａ〜２１Ｃと、モータ２２Ａ〜２２Ｃと、信号入出力部２３とを含んで構成されている。
【００２７】
マイクロコンピュータを主体に構成される中央演算処理装置（ＣＰＵ）１１は、ロボット１全体の制御を行う。中央演算処理装置（ＣＰＵ）１１は、制御プログラム記憶部１２に記憶されている制御プログラムに従って、入力操作、表示、記憶、モータ駆動、信号入出力の処理を実行する。また、これらの制御動作のために、一時記憶部１５が用いられる。
【００２８】
本実施形態において、中央演算処理装置（ＣＰＵ）１１は、主として、モータ駆動制御部２１Ａ〜２１Ｃに指令信号を出力し、モータ２２Ａ〜２２Ｃを駆動して、各種の動作を実行させる。モータ駆動制御部２１Ａ〜２１Ｃとモータ２２Ａ〜２２Ｃとは、必要とする任意の数だけ設けられ、モータ２２Ａ〜２２Ｃには、モータ２２Ａ〜２２Ｃの動力により、作業及び動作を実行する図示しない作業ツールが接続されている。
また、中央演算処理装置（ＣＰＵ）１１は、信号入出力部２３に指令信号を出力し、外部からの信号を入力し、外部への信号出力を実行させる。そして、外部から入力した信号をロボット１の制御に反映させ、外部への信号に基づいて外部機器の制御を行う。
【００２９】
操作部１４は、キーボード等の入力装置、ティーチングのためのハード的、ソフト的機構等であり、ロボット１のプログラムやデータの入力を行う。また、表示部１３は、ＬＣＤ表示装置等であり、設定値の表示や操作部１４による入力状態を表示する。
【００３０】
一時記憶部１５は、ＲＡＭ等の書き換え可能なメモリであり、中央演算処理装置（ＣＰＵ）１１が制御指令を出力する際に、必要な情報を一時的に記憶する。
【００３１】
ポイント種別定義記憶部１６は、図４に示すように、ポイント種別名、及びそこで実行する作業命令列により定義されるポイント種別定義データテーブル６０を記憶する。ポイント種別定義データ（本実施形態では、クラス定義に相当する）としては、ポイント種別を一意に区別するためのポイント種別ＩＤ６１（本実施形態では、ＩＤを構成する文字列がクラス名に相当する）、継承元ポイント種別が何であるかを示す基底種別ＩＤ６２、所有者以外では内容を参照できないよう制限を設けるための所有者情報や保護モード６３（この保護モードを「カプセル化」という）、指定の位置に移動する前に実行する作業命令列を指定する移動前作業６４、指定の位置に移動する途中で実行する作業命令列を指定する移動中作業６５、指定の位置に移動してから実行する作業命令列を指定する移動後作業６６、ＣＰ駆動中作業６７といったものを含む。
なお、移動前作業６４、移動中作業６５、移動後作業６６、ＣＰ駆動中作業６７等は、特定の場面で呼び出される（実行される）命令列、すなわち、メソッドとなる。
また、従来の組込ポイント種別（クラス）としては、ＰＴＰ駆動点、ＰＴＰ回避点又はＰＴＰ経由点、ＣＰ開始点、ＣＰ連続通過点、ＣＰ停止通過点、ＣＰ円弧補助点、ＣＰ終了点等を例示することができる。これらは、開発時に予め定義されたクラスである。
ユーザは、既存のポイント種別の機能を発展させて、独自のポイント種別を定義することができるが、上記の例示は、そのベースとなるポイント種別をいう。
【００３２】
図３は、従来と本実施形態とにおける「ポイント種別」、「ポイントデータ」との関係を対比している。
図３において、二重線で分けた上側が「ポイント種別」、下側が「ポイントデータ」を示している。ここで、「ポイントデータ」は、ポイント種別のインスタンス、つまり、座標と運転条件を含んだデータである。
なお、ポイント種別は、ポイントデータの雛形をいう。また、図３の左側は、従来の関係を示し、右側は、本実施形態における関係を示している。
【００３３】
図３の上側のポイント種別は２つに分けられる。このうち、「組込ポイント種別」は、予めシステムに組み込まれた（システムが供給する）ポイント種別であり、「ポイント種別定義」は、組込ポイント種別あるいは定義されているポイント種別を継承元種別として指定して、ポイント種別を定義したものであって、定義したポイント種別をいう。
【００３４】
本実施形態では、組込ポイント種別である「繰り返し開始点」、「繰り返し終了点」及び「ＰＴＰ駆動点」という継承元種別を用いて、ピックアップ点に「繰り返し開始点」及び「ＰＴＰ駆動点」のポイント種別を継承させ、ポイント種別を定義し、プレイス点に「繰り返し終了点」及び「ＰＴＰ駆動点」のポイント種別を継承させ、ポイント種別を定義している。
【００３５】
なお、ポイント種別定義を作るうえで、継承元種別を指定する必要があるが、これは組込ポイント種別に基づく定義であっても、他の定義（ポイント種別定義）であっても良い。
また、ポイントデータを作る上では（使う側では）、組込みなのか、定義されたものなのかの区別は無い。駆動のしかたの性質のみを組み込んだものが一般的であり、駆動のみにフォーカスするのであれば、組込ポイント種別から作成したポイントデータであっても良い。
【００３６】
図４に、ポイント種別定義記憶部１６に記憶するポイント種別定義データの一例を示す。図４では、「ポイント種別ＩＤ」として「Ｓｃｒｅｗ  Ｔｉｇｈｔｉｎｇ」、「基底種別」として「ＰＴＰＰｏｉｎｔ」、「所有者」として「Ｊａｎｏｍｅ  Ｂｕｉｔｌｎ」、「保護モード」として「保護」等が定義されている。
【００３７】
ポイント列記憶部１７は、作業ツールを移動させるポイントと、そのポイントにおいて実行するポイント種別とを対応付けたポイント列を記憶する。ポイント種別は、予め記憶されたポイント列に関連づけられたポイント種別名、ポイント種別定義へのアドレス、または、ポイント種別コードを持つ。
【００３８】
＜ＰＴＰ駆動点に対してループ開始、ループ終了の性質を持った組み込みクラス＞
ＰＴＰ駆動点に対してループ開始、ループ終了の性質を持った組み込みクラスについて、以下、説明する。なお、ＣＰ駆動に関しての説明は省略するが、以下と同様に考えることができる。
【００３９】
まず、ＰＴＰループ開始、ＰＴＰループ終了といった組込ポイント種別（クラス）を用意する。ロボットの運転制御では、ＰＴＰループ終了ポイントの処理を終了した時、次のポイントとして、そのループ終了ポイントと対になるループ開始のポイントに制御を移す。こうした制御を行うことにより、繰り返しループを実行することができる。
【００４０】
繰り返しを抜けるには、
（１）繰り返し回数を予め指定しておいて、この回数繰り返したら抜ける。
（２）ループを抜ける条件（例えば、論理式等）を予め設定しておいて、この条件が成立したら抜ける。
（３）ループを抜ける命令（Ｐｏｉｎｔ  Ｌｏｏｐ  Ｂｒａｋｅ）の実行によってループから強制的に抜ける。
といった方法がある。ワークを載せるパレットの属性をポイントに付加することにより、繰り返し毎に位置をずらしながら動作を繰り返し、パレットオーバー（パレットの最後まで行き、これを超えた状態）の条件でループを抜けるといったことも可能である。これは、予め回数が決まっているという意味では、（１）のバリエーションと考えることができる。
【００４１】
＜ループ開始、ループ終了の性質をもったポイント列＞
１対１の場合には、ループ開始ポイントとループ終了ポイントとは、それぞれ１つで一対となる。１対Ｎの場合は、ループ開始ポイントは１つで、それに対するループ終了ポイントが複数（Ｎ）ある。また、Ｎ対１の場合は、ループ開始ポイントは、複数（Ｎ）であり、それに対するループ終了ポイントは１つである。なお、Ｎ対Ｎは許さないものとする。この様にすると、ループ開始、ループ終了の特性をもったポイントの並びの解釈、すなわち、開始と終了との対が一意に決まる。
ここで、Ｎ対Ｎを許さないのは、「Ｎ対Ｎ」の場合、ロボットの動作（軌跡）を決定する条件が飛躍的に増えるために、簡単なティーチングにより、ロボットを制御できるというメリットが活かせないためである。
【００４２】
一方で、このルールに従わない並びも作り出すことができる。例えば、ループ開始ポイントが無いのにループ終了ポイントがある、あるいはループ開始ポイントのみで対応するループ終了ポイントが無いといったものが該当する。この様な場合には、
（１）エラーとして実行処理を中止する。
（２）無効なポイントと解釈してそのポイントを実行しない。
（３）ループ開始、終了といった性質をもつポイントがないものとして実行する。
といった処理とする方法が考えられる。
【００４３】
＜ポイント列の具体例＞
ポイント列の具体例を図５に示す。図５では、ポイント列が１４個のポイントからなっている。ポイント１は、開始が無く、終了があるため、ルール違反である。ポイント２からポイント５までは、１つのループ（ループＡ）を構成している。このループは開始ポイントが１つで終了ポイントが３つある１対Ｎ（Ｎ＝３）の例である。ポイント６からポイント８までは、１つのループ（ループＢ）を構成している。このループは、開始ポイントが２つで、終了ポイントが１つあるＮ対１（Ｎ＝２）の例である。
【００４４】
図５のループＡは、ループ開始ポイントが１点で、ループ終了ポイントが３点ある１対Ｎ（Ｎ＝３）のループである。
ここで、「１対Ｎ」の処理とは、ひとつのパレットから、別のパレットへの配置変えを行うことにより、ワークの分別を行う処理であり、例えば、大きいパレットにある大量のワークを配布先ごとのパレットに小分けにしていく場合等の処理を例示できる。
【００４５】
この実行順について、以下、説明する。
実行順には（１）交互と（２）個別の２通りがある。ここで、「１対Ｎ」の処理における「交互」とは、１つのパレット上にある異なるワークを、Ｎ個のパレット上にひとつずつ配置していく処理のことであり、パレット毎に均等な分量でワークを配置することができる。
また、「個別」とは、パレット上にあるワークを、一定量に分けて配置する処理のことであり、例えば、３０個のワークを配置したパレットＡから、１５個のワークを配置できるパレットＢ、１０個のワークを配置できるパレットＣ、５個のワークを配置できるパレットＤへ配置する場合等、パレットＢ、Ｃ、Ｄと順々にパレットを満杯にしていくことができる。
【００４６】
交互では、ループ終了の点を交互に実行する。具体的には、ポイント２（開始）→ポイント３（終了）→ポイント２（開始）→ポイント４（終了）→ポイント２（開始）→ポイント５（終了）の順に実行する。
【００４７】
個別の場合は、一旦、１つのループを繰り返し、これを抜けて、次の開始ループ、終了ループの実行となる。具体的には、ポイント２（開始）→ポイント３（終了）→ポイント２（開始）→ポイント３（終了）の繰り返しを抜けて、次には、ポイント２（開始）→ポイント４（終了）→ポイント２（開始）→ポイント４（終了）を繰り返し、この繰り返しを抜けて、次には、ポイント２（開始）→ポイント５（終了）→ポイント２（開始）→ポイント５（終了）を実行するといった処理順となる。
なお、図６は、交互の例を、図７は、個別の例を示す。図６、図７において、箱の中の括弧に入った数字は実行順につけた番号である。
【００４８】
図５におけるループＢは、ループ開始ポイントが２点に対して、ループ終了ポイントが１点であるＮ対１（Ｎ＝２）のループである。
ここで、「Ｎ対１」の処理とは、分別されたパレットから、ひとつのパレットへの集積することでワークの集約を行う処理であり、例えば、多種の部品の載ったパレットから、組み立てに必要な部品をひとつのパレットへ集約する場合等を例示できる。また、「１対１」の処理とは、単純な移動処理であり、例えば、２つのベルトコンベア間での部品の移動等を例示できる。
【００４９】
この実行順について説明する。
実行順には、（１）交互と（２）個別の２通りがある。ここで、「Ｎ対１」の処理における「交互」とは、Ｎ個のパレット上にある異なるワークを、ひとつのパレット上に集約して配置していく処理のことであり、例えば、パレットＡにはシャリがあり、パレットＢにネタがある場合、交互にピックアップし、パレットＣに配置することで、パレットＣには、シャリとネタが配置されるようになる。
また、「個別」とは、Ｎ個のパレット上にある異なるワークを、ひとつのパレット上に集約して配置していく処理のことであり、例えば、１５個のワークを配置したパレットＡ、１０個のワークを配置したパレットＢ、５個のワークを配置したパレットＣのそれぞれから、順番にワークをピックアップして、パレットＤへ配置する場合等、パレットＡ、Ｂ、Ｃ上のワークをパレットＤ上に集約することができる。
【００５０】
交互では、ループ開始の点を交互に実行する。すなわち、図５に示すように、ポイント６（開始）→ポイント８（終了）→ポイント７（開始）→ポイント８（終了）→ポイント６（開始）→ポイント８（終了）の順に実行する。
【００５１】
個別の場合は、一旦、１つのループを繰り返し、これを抜けて、次の開始、終了ループの実行となる。具体的には、ポイント６（開始）→ポイント８（終了）→ポイント６（開始）→ポイント８（終了）のループを実行し、この繰り返しを抜けて、次に、ポイント７（開始）→ポイント８（終了）→ポイント７（開始）→ポイント８（終了）といった処理順となる。
【００５２】
＜ループ処理＞
図８を用いて、本実施形態に係るロボット１のループの処理について説明する。
なお、実際のプログラム実行では、命令や、つなぎ情報といったものにより実行順序は変化するが、図８では、そういった要素を除いて示している。また、このループ制御は、優先度が一番低く、命令や、つなぎ情報が優先される。言い換えれば、命令や、つなぎ情報の指示が無い場合の制御、実行順序を示したものである。
【００５３】
また、この制御では、開始ポンイト番号配列（Ｓｔａｒｔ  Ｐｏｉｎｔ）と終了ポイント配列（Ｅｎｄ  Ｐｏｉｎｔ）といった２つの配列を用意し、ここに、ポイント番号を格納していく。
また、添え字の変数として、Ｉｓは、開始ポイント配列のインデックス、Ｉｅは、終了ポイント配列のインデックスとして使用する。
【００５４】
ループ処理（ステップＳ４０）において、ＰＮは、ポイント番号を持つ変数であり、ここに、開始するポイント番号が入っているものとする。そして、処理は、この番号から始める。
【００５５】
まず、ＰＮで示されたポイントが、ループ終了のポイントであるか否かを判断する（ステップＳ４１）。
ＰＮで示されたポイントが、ループ終了のポイントであると判断した場合（ステップＳ４１の「ＹＥＳ」）には、ループ開始ポイントがなく、ループ終了ポイントが出きているため、開始の無いエラーと判定する（ステップＳ４２）。
【００５６】
一方で、ＰＮで示されたポイントが、ループ終了のポイントでないと判断した（ステップＳ４１の「ＮＯ」）場合、すなわち、先頭がループ開始ポイントである場合には、開始ポイント配列の１（Ｉｓ）番目に、現在のポイント番号ＰＮを格納する（ステップＳ４３）。
【００５７】
次に、ポンイト番号ＰＮを１つ増やして、次の点へ移る（ステップＳ４４）。
そして、次のポイントがあるか否かを判断する（ステップＳ４５）。
判断の結果、次のポイントがないと判断した場合（ステップＳ４５の「ＮＯ」）には、ループ開始のポイントはあるが、終了ループのポイントがないため、終了の無いエラーとして処理する（ステップＳ４６）。
【００５８】
一方で、次のポイントがあると判断した場合（ステップＳ４５の「ＹＥＳ」）には、そのポイントがループ開始のポイントであるか否かを判断する（ステップＳ４７）。
判断の結果、次のポイントがループ開始のポイントであると判断した場合（ステップＳ４７の「ＹＥＳ」）には、ループ開始のポイントが複数続く、つまり、Ｎ対１の繰り返しループであると判断する。
【００５９】
Ｎ対１の繰り返しループであると判断した場合には、ステップＳ４３におけるポイントの格納に続いて、開始ポイント番号配列のＩｓ番目にＰＮを格納する（ステップＳ４８）。
【００６０】
以下、ポイント番号を増やしながら（ステップＳ４９）、次のポイントがあるか否かを判断する（ステップＳ５０）。
判断の結果、次のポイントがないと判断した場合（ステップＳ５０の「ＮＯ」）には、ループ開始のポイントはあるが、終了ループのポイントがないため、終了の無いエラーとして処理する（ステップＳ５１）。
【００６１】
また、次のポイントがあると判断し（ステップＳ５０の「ＹＥＳ」）、そのポイントがループ開始のポイントである場合（ステップＳ５２の「ＹＥＳ」）には、処理をステップＳ４８に戻し、開始ポイント番号配列に格納を繰り返す。
また、そのポイントがループ開始のポイントではない場合（ステップＳ５２の「ＮＯ」）には、終了ポイント番号配列の先頭にＰＮを登録する（ステップＳ５３）。
なお、この場合、実際には配列と言っているが先頭の要素しか使われない。
そして、ステップＳ５３の処理が終了すると、Ｎ対１ループ処理に遷移する。なお、Ｎ対１ループ処理の詳細については、後述する。
【００６２】
ステップＳ４７において、次のポイントがループ開始のポイントではないと判断した場合（ステップＳ４７の「ＮＯ」）には、終了ポイント番号配列の先頭にポイント番号を格納する。
そして、ポンイト番号ＰＮを１つ増やして、次の点へ移る（ステップＳ５６）。
さらに、次のポイントがあるか否かを判断する（ステップＳ５７）。
判断の結果、次のポイントがないと判断した場合（ステップＳ５７の「ＮＯ」）には、ここで、ループが終わっているため、ループ開始のポイント１点とループ終了のポイント１点の２点の繰り返しループとなるため、１対１ループ処理に遷移する（ステップＳ５９）。なお、１対１ループ処理の詳細については、後述する。
【００６３】
ステップＳ５７において、次のポイントがあると判断し（ステップＳ５７の「ＹＥＳ」）、そのポイントがループ開始のポイントである場合（ステップＳ５８の「ＹＥＳ」）には、ここで、ループが終わっているため、ループ開始のポイント１点とループ終了のポイント１点の２点の繰り返しループとなるため、１対１ループ処理に遷移する（ステップＳ５９）。
【００６４】
ステップＳ５８において、そのポイントがループ開始のポイントではないと判断した場合（ステップＳ５８の「ＮＯ」）には、終了ポイント番号配列の先頭にＰＮを登録する（ステップＳ６０）。
そして、ポンイト番号ＰＮを１つ増やして、次の点へ移る（ステップＳ６１）。さらに、次のポイントがあるか否かを判断する（ステップＳ６２）。
判断の結果、次のポイントがないと判断した場合（ステップＳ６２の「ＮＯ」）には、１対Ｎループ処理に遷移する（ステップＳ６４）。なお、１対Ｎループ処理の詳細については、後述する。
【００６５】
一方で、次のポイントがあると判断し（ステップＳ６２の「ＹＥＳ」）、そのポイントがループ開始のポイントである場合（ステップＳ６３の「ＹＥＳ」）には、１対Ｎループ処理に遷移する（ステップＳ６４）。
また、次のポイントがあると判断し（ステップＳ６２の「ＹＥＳ」）、そのポイントがループ開始のポイントではないと判断した場合（ステップＳ６３の「ＮＯ」）には、処理をステップＳ６０に戻し、次の点がなくなる、あるいは、ループ開始のポイントとなるまで、処理を繰り返す。
【００６６】
＜１対１のループ処理＞
図９を用いて、１対１のループ処理について説明する。
【００６７】
１対１のループ処理（ステップＳ７０）では、開始ポイントの実行（ステップＳ７１）と終了ポイントの実行（ステップＳ７２）を行った後、繰り返しを抜けるかどうか判断する（ステップＳ７３）。
繰り返しを抜けない、つまり、繰り返しを続ける場合には（ステップＳ７３の「ＮＯ」）、処理をステップＳ７１に戻す。
【００６８】
一方で、繰り返しを抜ける場合には（ステップＳ７３の「ＹＥＳ」）、ステップＳ７４に移行する。ここで、繰り返しを抜けるかどうかの判断は、以下の通りである。
（１）繰り返し回数を予め指定しておいて、その回数繰り返したら抜ける。
（２）ループを抜ける条件（例えば、論理式等）を予め設定しておいて、この条件が成立したら抜ける。
（３）ループを抜ける命令（Ｐｏｉｎｔ  ＬｏｏｐＢｒａｋｅ）の実行によってループから強制的に抜ける、といった方法がある。
【００６９】
＜１対Ｎのループ処理＞
図１０を用いて、１対Ｎのループ処理について説明する。なお、図１０では、終了ポイントの数をＮとし、これをカウントする変数としてＩを使用する。
【００７０】
１対Ｎのループでは、繰り返しの種類として、「交互」と「個別」とがある。これをまず判別する（ステップＳ８１）。
【００７１】
以下では、まず、「交互」の場合のフローを説明する。
１対Ｎのループ処理では、終了ポイントがＮ個あるため、これをカウントする変数Ｉを用意し、初期値として、１を代入する（ステップＳ８２）。
次に、１つだけある開始ポイントを実行する（ステップＳ８３）。
次いで、Ｉ番目の終了ポイントを実行する（ステップＳ８４）。さらに、次の番目へとカウンタＩを進める（ステップＳ８５）。
【００７２】
繰り返しが終了かどうか、すなわち、Ｉ＞Ｎであるか否かをカウンタＩの値に従って判断する（ステップＳ８６）。
ここで、Ｉ＜Ｎであると判断した場合には（ステップＳ８６の「ＮＯ」）、処理をステップＳ８３に戻す。一方で、Ｉ＞Ｎであると判断した場合には（ステップＳ８６の「ＹＥＳ」）、繰り返しを抜けるか否かを判断（ステップＳ８７）する。
【００７３】
このとき、繰り返しを抜けない場合（ステップＳ８７の「ＮＯ」）には、ステップＳ８２に処理を戻す。
一方で、繰り返しを抜ける場合には（ステップＳ８７の「ＹＥＳ」）、処理をステップＳ８８に遷移させる。
なお、ステップＳ８７において、繰り返しを抜けるかどうかの判断は、
（１）繰り返し回数を予め指定しておいて。この回数繰り返したら抜ける。
（２）ループを抜ける条件（例えば、論理式等）を予め設定しておいてこの条件が成立したら抜ける。
（３）ループを抜ける命令（Ｐｏｉｎｔ  ＬｏｏｐＢｒａｋｅ）の実行によってループから強制的に抜ける、といった方法がある。
【００７４】
以下、「個別」の場合のフローを説明する。
「個別」の場合も、同様に、カウント変数Ｉを用意し、初期値として、１を代入する（ステップＳ９０）。
次に、１つだけある開始ポイントを実行する（ステップＳ９１）。さらに、Ｉ番目の終了ポイントを実行する（ステップＳ９２）。
【００７５】
次に、繰り返しを抜けるかどうかを判断する（ステップＳ９３）。繰り返しを抜けないのであれば（ステップＳ９３の「ＮＯ」）、処理をステップＳ９１に戻す。
そして、以降、開始ポイントとＩ番目の終了ポイントを繰り返す。
一方で、繰り返しを抜けるのであれば（ステップＳ９３の「ＹＥＳ」）、カウンタＩを１だけ増やし（ステップＳ９４）、繰り返しが終了かどうか、すなわち、Ｉ＞Ｎであるか否かをカウンタＩの値に従って判断する（ステップＳ９５）。
ここで、Ｉ＜Ｎであると判断した場合には（ステップＳ９５の「ＮＯ」）、処理をステップＳ９１に戻す。
また、Ｉ＞Ｎであると判断した場合（ステップＳ９５の「ＹＥＳ」）には、ステップＳ８８に遷移する。
【００７６】
＜Ｎ対１のループ処理＞
図１１、図１２を用いて、Ｎ対１のループ処理について説明する。
Ｎ対１のループ処理は、１対Ｎのループ処理と同様に、「交互」と「個別」を判別した後、２重の繰り返し処理を行う。
１対Ｎのループ処理と異なるのは、開始ポイントが複数あり、終了ポイントが１つである点である。
また、Ｎ対１のループ処理においては、繰り返しの種類として、「交互」を選択した上で、ピックアップ点とプレイス点とをパレットとした場合に、「重複プレイス」という配置方法を別途設ける点に特徴がある。
【００７７】
以下では、まず、「交互」の場合のフローを説明する。
Ｎ対１のループ処理では、開始ポイントがＮ個あるため、これをカウントする変数Ｉ、スタートポイントの部品数をカウントする変数ｎ、エンドポイントの部品数をカウントする変数ｍを用意し、初期値として、１を代入する（ステップＳ９８）。
次に、Ｎ個ある開始ポイントのうち、１つの開始ポイントを実行する（ステップＳ９９）。
このとき、スタートポイントの部品数カウンタｎの値を進め（ステップＳ１００）、次の番目に移行する（ステップＳ１０１）。
【００７８】
次いで、１つだけある終了ポイントを実行する（ステップＳ１０２）。
ここでは、Ｎ対１ループにおいて、繰り返しの種類として「交互」を選択したうえで、ピックアップ点、プレイス点をパレットとした場合の「重複プレイス」という配置方法を別途、設ける。
【００７９】
そして、プレイス点のパレットに配置できる部品数カウンタをｍとした場合、「重複プレイス」を実施しないとき（ステップＳ１０３の「Ｙｅｓ」）には、Ｉ＞Ｎの判定（ステップＳ１０５）の前に、部品数カウンタｍを進める（ステップＳ１０４）。
【００８０】
一方で、「重複プレイス」を実施する場合（ステップＳ１０３の「Ｎｏ」）には、Ｉ＞Ｎの判定（ステップＳ１０５）の後、Ｉ＞Ｎである場合（ステップＳ１０５の「Ｙｅｓ」）に限り、部品数カウンタｍを進める（ステップＳ１０７）。
なお、ピックアップ点の部品数カウンタｎは、ピックアップのタイミングで進めるものとする（ステップＳ１００）。
【００８１】
以下、「個別」の場合のフローを説明する。
「個別」の場合も、同様に、カウント変数Ｉを用意し、初期値として、１を代入する（ステップＳ１１０）。
次に、Ｎ個ある開始ポイントのうち、１つの開始ポイントを実行する（ステップＳ１１１）。
さらに、１つだけある終了ポイントを実行する（ステップＳ１１２）。
【００８２】
次に、繰り返しを抜けるかどうかを判断する（ステップＳ１１３）。
繰り返しを抜けないのであれば（ステップＳ１１３の「ＮＯ」）、処理をステップＳ１１１に戻す。
そして、以降、開始ポイントと終了ポイントとを繰り返す。
一方で、繰り返しを抜けるのであれば（ステップＳ１１３の「ＹＥＳ」）、カウンタＩを１だけ増やし（ステップＳ１１４）、繰り返しが終了かどうか、すなわち、Ｉ＞Ｎであるか否かをカウンタＩの値に従って判断する（ステップＳ１１５）。
ここで、Ｉ＜Ｎであると判断した場合には（ステップＳ１１５の「ＮＯ」）、処理をステップＳ１１１に戻す。
また、Ｉ＞Ｎであると判断した場合（ステップＳ１１５の「ＹＥＳ」）には、ステップＳ１０９に遷移する。
【００８３】
＜処理の変形例＞
上記では、ポイントが、開始ポイントあるいは終了ポイントかのいずれかであるとして説明したが、実際には、開始ポイントでも終了ポイントでもない、ポイント種別のものもある。この例を図１３に示す。
【００８４】
この例では、ループの開始ポイントでも終了ポイントでもない、その他のポイント種別を、その後にあるループ開始ポイントあるいは、ループ終了ポイントとの組として、一緒に扱うようにしている。
図１３に示すように、ポイント２、ポイント３は、ループ開始ポイントでもループ終了ポイントでもない、その他のポイント種別とする。
【００８５】
ループＡは、ループ開始ポイントが１ポイント、ループ終了ポイントが３ポイントある、１：３の繰り返しとなっている。
この時、ポイント２、ポイント３のその他のポイントは、ポイント４のループ終了ポイントと組になっていると考える。
同様にポイント５はポイント６と組になっていると考える。
【００８６】
ループＡの繰り返しが個別であれば、ポイント１→ポイント２→ポイント３→ポイント４→ポイント１→ポイント２・・・・、ポイント１→ポイント５→ポイント６→ポイント１・・・・、ポイント１→ポイント７→ポイント１→ポイント７・・・・といったような繰り返し処理となる。
【００８７】
また、上記説明では、ループ開始ポイント、ループ終了ポイントの性質をもった組込クラスとして説明したが、既存の組込クラスにループ開始ポイント、あるいはループ終了ポイントの性質を属性として後から設定することでも同じ効果が得られる。
クラスの属性（性質）として、これを付けることも考えられるし（この場合、そのクラスから作成したインスタンスポイントは全てこの性質を持つ）、あるいはポイントの属性（インスタンスの持つ属性）として、これを実現するといった方法も考えられる。
なお、「組込クラス」とは、開発時に予め定義されたクラスをいい、「派生クラス」とは、組込クラスから、性質を継承して生成されたクラスをいう。また、「継承」とは、性質が基底クラスから引き継がれることをいう。
【００８８】
後者の場合、ポイント毎に設定をすることになるが、次のポイントを直接指定する、つなぎ情報を使った方法と比較すると、ループ開始ポイントあるいは、ループ終了ポイントといったものは、ポイント列の構成により、「対」が規定され、処理先が決まってくるといった点で、異なったものと考えられる。
【００８９】
以上、説明したように、本実施形態に係るロボットによれば、従来のポイント種別定義、そのインスタンスであるポイント列の作成、及び実行に加えて、繰り返しのためにループ開始ポイントの性質を持った組込クラス、ループ終了ポイントの性質をもった組込クラスを用意し、これを継承する手段を用意する。
そして、ループ開始ポイント、ループ終了ポイントの性質を持った組込クラス、及びその派生クラスのポイントに対しては、ループ終了ポイントからループ開始ポイントに戻る様な繰り返しの制御を行う。
そのため、命令やつなぎ情報を用いることなく、ポイント種別の組込クラスにループ開始あるいはループ終了の性質をもったクラスを用意し、ポイント種別の組込クラスにループ開始あるいはループ終了の性質をもったクラスによって、繰り返し動作を実現させることができる。
【００９０】
また、本実施形態に係るロボットによれば、直接、ループ開始ポイントの性質を持った「ピックアップ点」と、ループ終了ポイントの性質をもった「プレイス点」とを用意し、これらのポイントインスタンスや、これらを継承したクラスのインスタンスに対して、ループ制御を行う。
そのため、命令やつなぎ情報を用いることなく、ポイント種別の組込クラスにループ開始あるいはループ終了の性質をもったクラスを用意し、ポイント種別の組込クラスにループ開始あるいはループ終了の性質をもったクラスによって、繰り返し動作を実現させることができる。
【００９１】
さらに、本実施形態に係るロボットによれば、命令やつなぎ情報を用いることなく、繰り返し動作を実現させる。
すなわち、「命令」を含んだクラスを予め用意し、ユーザはそれを用いてポイントティーチングを実施することにより、ユーザを「命令」の記述等の煩雑な作業から解放することができる。
【００９２】
なお、ロボットの処理をコンピュータシステムあるいはコンピュータが読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをロボットに読み込ませ、実行することによって本発明のロボットを実現することができる。ここでいうコンピュータシステムあるいはコンピュータとは、ＯＳや周辺装置等のハードウェアを含む。
【００９３】
また、「コンピュータシステムあるいはコンピュータ」は、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）システムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムあるいはコンピュータから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムあるいはコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【００９４】
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムあるいはコンピュータにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００９５】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００９６】
１；ロボット
１０；制御部
１１；中央演算処理装置（ＣＰＵ）
１２；制御プログラム記憶部
１３；表示部
１４；操作部
１５；一時記憶部
１６；ポイント種別定義記憶部
１７；ポイント列記憶部
２０；本体
２１Ａ〜２１Ｃ；モータ駆動制御部
２２Ａ〜２２Ｃ；モータ
２３；信号入出力部
３０；Ｘスライダー
４０；Ｙスライダー
５０；Ｚスライダー
【図１】
2019150888.tif 000003
【図２】
2019150888.tif 000004
【図３】
2019150888.tif 000005
【図４】
2019150888.tif 000006
【図５】
2019150888.tif 000007
【図６】
2019150888.tif 000008
【図７】
2019150888.tif 000009
【図８】
2019150888.tif 000010
【図９】
2019150888.tif 000011
【図１０】
2019150888.tif 000012
【図１１】
2019150888.tif 000013
【図１２】
2019150888.tif 000014
【図１３】
2019150888.tif 000015