(57)【要約】【課題】ロボットと障害物とがぶつかってしまう場合に、自動的に教示点の修正又は追加をすることができる。【解決手段】複数のリンク及びジョイントを有するアームと、アームの先端に設けられたエンドエフェクターと、からなる可動部を複数の教示点に沿って移動させる時に、教示点の位置情報と障害物の位置情報とに基づいて可動部と障害物とが干渉するか否かを判定する。所定の教示点で可動部と障害物とが干渉すると判定された場合に、制限情報に基づいて所定の教示点の位置を変更する。また、第１の教示点と第２の教示点との間で可動部と障害物とが干渉するか否かを判定する。第１の教示点と第２の教示点との間で可動部と障害物とが干渉すると判定された場合に、接近制限情報及び離脱制限情報に基づいて第１の教示点と第２の教示点との間に教示点を追加する。【選択図】図２
2014024162.tif 000002
【特許請求の範囲】
【請求項１】
複数のリンク及びジョイントを有するアームと、
前記アームの先端に設けられたエンドエフェクターと、
前記エンドエフェクターが複数の教示点に沿って移動するように前記アームを移動させる動作制御部と、
前記複数の教示点を構成する各教示点の情報であって、前記教示点の位置情報と、前記エンドエフェクターを前記教示点へ接近させる際の制限情報とを記憶する記憶部と、
障害物の位置情報を取得する取得部と、
前記教示点の位置情報と前記障害物の位置情報とに基づいて、前記エンドエフェクターを前記複数の教示点に沿って移動させたときに、前記複数の教示点のうちの所定の教示点において、前記アーム又は前記エンドエフェクターと前記障害物とが干渉するか否かを判定する第１の判定部と、
前記所定の教示点において前記アーム又は前記エンドエフェクターと前記障害物とが干渉すると判定された場合に、前記制限情報に基づいて前記所定の教示点の位置を変更する変更部と、
を備えることを特徴とするロボットシステム。
【請求項２】
請求項１に記載のロボットシステムにおいて、
前記所定の教示点において、前記エンドエフェクターが動作を行うか否かを判定する第２の判定部を備え、
前記変更部は、前記所定の教示点において前記エンドエフェクターが動作を行わない場合には、前記所定の教示点の位置を変更する
ことを特徴とするロボットシステム。
【請求項３】
請求項１又は２に記載のロボットシステムにおいて、
前記制限情報は、前記各教示点へ前記エンドエフェクターを接近させる方向を限定する情報であり、
前記変更部は、前記所定の教示点を前記制限情報の示す方向に所定量だけ移動させることにより、前記所定の教示点の位置を変更する
ことを特徴とするロボットシステム。
【請求項４】
請求項１から３のいずれか一項に記載のロボットシステムにおいて、
前記所定の教示点の位置と、前記所定の教示点の前に前記エンドエフェクターが通過する教示点の位置と、前記障害物の形状とに基づいて、前記制限情報を生成する制限情報生成部を備え、
前記記憶部は、前記生成された制限情報を記憶する
ことを特徴とするロボットシステム。
【請求項５】
複数のリンク及びジョイントを有するアームの先端に設けられたエンドエフェクターが複数の教示点に沿って移動するように前記アームを移動させる動作制御部と、
前記複数の教示点を構成する各教示点の情報であって、前記教示点の位置情報と、前記エンドエフェクターを前記教示点へ接近させる際の制限情報と、障害物の位置情報とを取得する取得部と、
前記教示点の位置情報と前記障害物の位置情報とに基づいて、前記エンドエフェクターを前記複数の教示点に沿って移動させたときに、前記複数の教示点のうちの所定の教示点において、前記アーム又は前記エンドエフェクターと前記障害物とが干渉するか否かを判定する第１の判定部と、
前記所定の教示点において前記アーム又は前記エンドエフェクターと前記障害物とが干渉すると判定された場合に、前記制限情報に基づいて前記所定の教示点の位置を変更する変更部と、
を備えることを特徴とするロボット制御装置。
【請求項６】
複数のリンク及びジョイントを有するアームの先端に設けられたエンドエフェクターが複数の教示点に沿って移動するように前記アームを移動させるステップと、
前記複数の教示点の位置情報と、障害物の位置情報を取得するステップと、
前記複数の教示点の位置情報と前記障害物の位置情報とに基づいて、前記エンドエフェクターを前記複数の教示点に沿って移動させたときに、前記複数の教示点のうちの所定の教示点において、前記アーム又は前記エンドエフェクターと前記障害物とが干渉するか否かを判定するステップと、
前記所定の教示点において前記アーム又は前記エンドエフェクターと前記障害物とが干渉すると判定された場合に、前記所定の教示点に対する制限情報であって、前記エンドエフェクターを接近させる際の制限情報を取得し、当該取得した制限情報に基づいて前記所定の教示点の位置を変更するステップと、
を備えることを特徴とするロボット制御方法。
【請求項７】
複数のリンク及びジョイントを有するアームの先端に設けられたエンドエフェクターが複数の教示点に沿って移動するように前記アームを移動させるステップと、
前記複数の教示点の位置情報と、障害物の位置情報を取得するステップと、
前記複数の教示点の位置情報と前記障害物の位置情報と基づいて、前記エンドエフェクターを前記複数の教示点に沿って移動させたときに、前記複数の教示点のうちの所定の教示点において、前記アーム又は前記エンドエフェクターと前記障害物とが干渉するか否かを判定するステップと、
前記所定の教示点において前記アーム又は前記エンドエフェクターと前記障害物とが干渉すると判定された場合に、前記所定の教示点に対する制限情報であって、前記エンドエフェクターを接近させる際の制限情報を取得し、当該取得した制限情報に基づいて前記所定の教示点の位置を変更するステップと、
を演算装置に実行させることを特徴とするロボット制御プログラム。
【請求項８】
複数のリンク及びジョイントを有するアームと、
前記アームの先端に設けられたエンドエフェクターと、
前記エンドエフェクターが複数の教示点に沿って移動するように前記アームを移動させる動作制御部と、
前記複数の教示点を構成する各教示点の情報であって、前記教示点の位置情報と、前記エンドエフェクターを前記教示点へ接近させる際の制限情報である接近制限情報と、前記エンドエフェクターを前記教示点から離脱させる際の制限情報である離脱制限情報を記憶する記憶部と、
障害物の位置情報を取得する取得部と、
前記複数の教示点の位置情報と前記障害物の位置情報とに基づいて、前記エンドエフェクターを前記複数の教示点に沿って移動させたときに、前記複数の教示点のうちの第１の教示点と前記第１の教示点の次に前記エンドエフェクターが通過する第２の教示点との間で、前記アーム又は前記エンドエフェクターと前記障害物とが干渉するか否かを判定する判定部と、
前記第１の教示点と前記第２の教示点との間で、前記アーム又は前記エンドエフェクターと前記障害物とが干渉すると判定された場合に、前記接近制限情報及び前記離脱制限情報に基づいて前記第１の教示点と前記第２の教示点との間に前記教示点を追加する追加部と、
を備えることを特徴とするロボットシステム。
【請求項９】
請求項８に記載のロボットシステムにおいて、
前記追加部は、
前記第１の教示点についての前記離脱制限情報に基づいて、前記第１の教示点と前記第２の教示点との間に第３の教示点を追加し、かつ前記第２の教示点についての前記接近制限情報に基づいて、前記第３の教示点と前記第２の教示点との間に第４の教示点を追加する
ことを特徴とするロボットシステム。
【請求項１０】
請求項９に記載のロボットシステムにおいて、
前記接近制限情報は、前記各教示点へ前記エンドエフェクターを接近させる方向を限定する情報であり、
前記離脱制限情報は、前記各教示点から前記エンドエフェクターを離脱させる方向を限定する情報であり、
前記追加部は、前記第１の教示点を前記離脱制限情報の示す方向に所定量だけ移動させた位置を前記第３の教示点の位置とし、前記第２の教示点を前記接近制限情報の示す方向に所定量だけ移動させた位置に前記第４の教示点を追加する
ことを特徴とするロボットシステム。
【請求項１１】
請求項８から１０のいずれか一項に記載のロボットシステムにおいて、
前記第１の教示点及び前記第２の教示点の位置と、前記障害物の形状とに基づいて、前記接近制限情報及び前記離脱制限情報を生成する制限情報生成部を備え、
前記記憶部は、前記生成された接近制限情報及び前記生成された離脱制限情報を記憶する
ことを特徴とするロボットシステム。
【請求項１２】
複数のリンク及びジョイントを有するアーム先端に設けられたエンドエフェクターが複数の教示点に沿って移動するように前記アームを移動させる動作制御部と、
前記複数の教示点を構成する各教示点の情報であって、前記教示点の位置情報と、前記エンドエフェクターを前記教示点へ接近させる際の制限情報である接近制限情報と、前記エンドエフェクターを前記教示点から離脱させる際の制限情報である離脱制限情報と、障害物の位置情報を取得する取得部と、
前記複数の教示点の位置情報と前記障害物の位置情報とに基づいて、前記エンドエフェクターを前記複数の教示点に沿って移動させたときに、前記複数の教示点のうちの第１の教示点と前記第１の教示点の次に前記エンドエフェクターが通過する第２の教示点との間で、前記アーム又は前記エンドエフェクターと前記障害物とが干渉するか否かを判定する第２の判定部と、
前記第１の教示点と前記第２の教示点との間で、前記アーム又は前記エンドエフェクターと前記障害物とが干渉すると判定された場合に、前記接近制限情報及び前記離脱制限情報に基づいて前記第１の教示点と前記第２の教示点との間に前記教示点を追加する追加部と、
を備えることを特徴とするロボット制御装置。
【請求項１３】
複数のリンク及びジョイントを有するアーム先端に設けられたエンドエフェクターが複数の教示点に沿って移動するように前記アームを移動させるステップと、
前記複数の教示点の位置情報と、障害物の位置情報とを取得するステップと、
前記複数の教示点の位置情報と前記障害物の位置情報とに基づいて、前記エンドエフェクターを前記複数の教示点に沿って移動させたときに、前記複数の教示点のうちの第１の教示点と前記第１の教示点の次に前記エンドエフェクターが通過する第２の教示点との間で、前記アーム又は前記エンドエフェクターと前記障害物とが干渉するか否かを判定するステップと、
前記第１の教示点と前記第２の教示点との間で、前記アーム又は前記エンドエフェクターと前記障害物とが干渉すると判定された場合に、前記エンドエフェクターを前記教示点へ接近させる際の制限情報である接近制限情報であって、前記第２の教示点についての接近制限情報を取得し、かつ前記エンドエフェクターを前記教示点から離脱させる際の制限情報である離脱制限情報であって、前記第１の教示点についての離脱制限情報を取得するステップと、
前記第１の教示点についての離脱制限情報に基づいて前記第１の教示点と前記第２の教示点との間に第３の教示点を追加するステップと、
前記第２の教示点についての接近制限情報に基づいて前記第３の教示点と前記第２の教示点との間に第４の教示点を追加するステップと、
を備えることを特徴とするロボット制御方法。
【請求項１４】
複数のリンク及びジョイントを有するアーム先端に設けられたエンドエフェクターが複数の教示点に沿って移動するように前記アームを移動させるステップと、
前記複数の教示点の位置情報と、障害物の位置情報とを取得するステップと、
前記複数の教示点の位置情報と前記障害物の位置情報とに基づいて、前記エンドエフェクターを前記複数の教示点に沿って移動させたときに、前記複数の教示点のうちの第１の教示点と前記第１の教示点の次に前記エンドエフェクターが通過する第２の教示点との間で、前記アーム又は前記エンドエフェクターと前記障害物とが干渉するか否かを判定するステップと、
前記第１の教示点と前記第２の教示点との間で、前記アーム又は前記エンドエフェクターと前記障害物とが干渉すると判定された場合に、前記エンドエフェクターを前記教示点へ接近させる際の制限情報である接近制限情報であって、前記第２の教示点についての接近制限情報を取得し、かつ前記エンドエフェクターを前記教示点から離脱させる際の制限情報である離脱制限情報であって、前記第１の教示点についての離脱制限情報を取得するステップと、
前記第１の教示点についての離脱制限情報に基づいて前記第１の教示点と前記第２の教示点との間に第３の教示点を追加するステップと、
前記第２の教示点についての接近制限情報に基づいて前記第３の教示点と前記第２の教示点との間に第４の教示点を追加するステップと、
を演算装置に実行させることを特徴とするロボット制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットシステム、ロボット制御装置、ロボット制御方法及びロボット制御プログラムに関する。
【背景技術】
【０００２】
特許文献１には、教示点をつなげた移動パスに沿ってロボットを移動させる時に、移動パスが障害物に干渉する場合には、干渉しないようにパスに経由点を追加し、教示修正作業を行うロボットプログラム作成装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２５４１７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の発明では、経由点の追加は作業者自身が行わなければならないという問題がある。
【０００５】
そこで、本発明は、ロボットと障害物とがぶつかってしまう場合に、自動的に教示点の修正又は追加をすることができるロボットシステム、ロボット制御装置、ロボット制御方法及びロボット制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するための第一の態様は、ロボットシステムであって、複数のリンク及びジョイントを有するアームと、前記アームの先端に設けられたエンドエフェクターと、前記エンドエフェクターが複数の教示点に沿って移動するように前記アームを移動させる動作制御部と、前記複数の教示点を構成する各教示点の情報であって、前記教示点の位置情報と、前記エンドエフェクターを前記教示点へ接近させる際の制限情報とを記憶する記憶部と、障害物の位置情報を取得する取得部と、前記教示点の位置情報と前記障害物の位置情報とに基づいて、前記エンドエフェクターを前記複数の教示点に沿って移動させたときに、前記複数の教示点のうちの所定の教示点において、前記アーム又は前記エンドエフェクターと前記障害物とが干渉するか否かを判定する第１の判定部と、前記所定の教示点において前記アーム又は前記エンドエフェクターと前記障害物とが干渉すると判定された場合に、前記制限情報に基づいて前記所定の教示点の位置を変更する変更部と、を備えることを特徴とする。
これにより、教示点でロボットと障害物とがぶつかってしまう場合に、自動的に教示点を修正し、ロボットと障害物とがぶつからないようにすることができる。
【０００７】
ここで、前記所定の教示点において、前記エンドエフェクターが動作を行うか否かを判定する第２の判定部を備え、前記変更部は、前記所定の教示点において前記エンドエフェクターが動作を行わない場合には、前記所定の教示点の位置を変更してもよい。これにより、エンドエフェクターが動作を行わない場合にのみ教示点の修正を行うことができる。ことができる。
【０００８】
ここで、前記制限情報は、前記各教示点へ前記エンドエフェクターを接近させる方向を限定する情報であり、前記変更部は、前記所定の教示点を前記制限情報の示す方向に所定量だけ移動させることにより、前記所定の教示点の位置を変更してもよい。これにより、教示点の修正候補を一方向に限定し、処理時間を短縮することができる。
【０００９】
ここで、前記所定の教示点の位置と、前記所定の教示点の前に前記エンドエフェクターが通過する教示点の位置と、前記障害物の形状とに基づいて、前記制限情報を生成する制限情報生成部を備え、前記記憶部は、前記生成された制限情報を記憶してもよい。これにより、修正した教示点についての制限情報を生成、記憶することができる。
【００１０】
第一の態様の変形例は、ロボット制御装置であって、複数のリンク及びジョイントを有するアームの先端に設けられたエンドエフェクターが複数の教示点に沿って移動するように前記アームを移動させる動作制御部と、前記複数の教示点を構成する各教示点の情報であって、前記教示点の位置情報と、前記エンドエフェクターを前記教示点へ接近させる際の制限情報と、障害物の位置情報とを取得する取得部と、前記教示点の位置情報と前記障害物の位置情報とに基づいて、前記エンドエフェクターを前記複数の教示点に沿って移動させたときに、前記複数の教示点のうちの所定の教示点において、前記アーム又は前記エンドエフェクターと前記障害物とが干渉するか否かを判定する第１の判定部と、前記所定の教示点において前記アーム又は前記エンドエフェクターと前記障害物とが干渉すると判定された場合に、前記制限情報に基づいて前記所定の教示点の位置を変更する変更部と、を備えることを特徴とする。
【００１１】
第一の態様の変形例は、ロボット制御方法であって、複数のリンク及びジョイントを有するアームの先端に設けられたエンドエフェクターが複数の教示点に沿って移動するように前記アームを移動させるステップと、前記複数の教示点の位置情報と、障害物の位置情報を取得するステップと、前記複数の教示点の位置情報と前記障害物の位置情報とに基づいて、前記エンドエフェクターを前記複数の教示点に沿って移動させたときに、前記複数の教示点のうちの所定の教示点において、前記アーム又は前記エンドエフェクターと前記障害物とが干渉するか否かを判定するステップと、前記所定の教示点において前記アーム又は前記エンドエフェクターと前記障害物とが干渉すると判定された場合に、前記所定の教示点に対する制限情報であって、前記エンドエフェクターを接近させる際の制限情報を取得し、当該取得した制限情報に基づいて前記所定の教示点の位置を変更するステップと、を備えることを特徴とする。
【００１２】
第一の態様の変形例は、ロボット制御プログラムであって、複数のリンク及びジョイントを有するアームの先端に設けられたエンドエフェクターが複数の教示点に沿って移動するように前記アームを移動させるステップと、前記複数の教示点の位置情報と、障害物の位置情報を取得するステップと、前記複数の教示点の位置情報と前記障害物の位置情報と基づいて、前記エンドエフェクターを前記複数の教示点に沿って移動させたときに、前記複数の教示点のうちの所定の教示点において、前記アーム又は前記エンドエフェクターと前記障害物とが干渉するか否かを判定するステップと、前記所定の教示点において前記アーム又は前記エンドエフェクターと前記障害物とが干渉すると判定された場合に、前記所定の教示点に対する制限情報であって、前記エンドエフェクターを接近させる際の制限情報を取得し、当該取得した制限情報に基づいて前記所定の教示点の位置を変更するステップと、を演算装置に実行させることを特徴とする。
【００１３】
第二の態様は、ロボットシステムであって、複数のリンク及びジョイントを有するアームと、前記アームの先端に設けられたエンドエフェクターと、前記エンドエフェクターが複数の教示点に沿って移動するように前記アームを移動させる動作制御部と、前記複数の教示点を構成する各教示点の情報であって、前記教示点の位置情報と、前記エンドエフェクターを前記教示点へ接近させる際の制限情報である接近制限情報と、前記エンドエフェクターを前記教示点から離脱させる際の制限情報である離脱制限情報を記憶する記憶部と、障害物の位置情報を取得する取得部と、前記複数の教示点の位置情報と前記障害物の位置情報とに基づいて、前記エンドエフェクターを前記複数の教示点に沿って移動させたときに、前記複数の教示点のうちの第１の教示点と前記第１の教示点の次に前記エンドエフェクターが通過する第２の教示点との間で、前記アーム又は前記エンドエフェクターと前記障害物とが干渉するか否かを判定する判定部と、前記第１の教示点と前記第２の教示点との間で、前記アーム又は前記エンドエフェクターと前記障害物とが干渉すると判定された場合に、前記接近制限情報及び前記離脱制限情報に基づいて前記第１の教示点と前記第２の教示点との間に前記教示点を追加する追加部と、を備えることを特徴とする。
【００１４】
これにより、教示点と教示点との間でロボットと障害物とがぶつかってしまう場合に、自動的に教示点を追加し、教示点と教示点との間でロボットと障害物とがぶつからないようにすることができることができる。
【００１５】
ここで、前記追加部は、前記第１の教示点についての前記離脱制限情報に基づいて、前記第１の教示点と前記第２の教示点との間に第３の教示点を追加し、かつ前記第２の教示点についての前記接近制限情報に基づいて、前記第３の教示点と前記第２の教示点との間に第４の教示点を追加してもよい。これにより、教示点の追加を自動的に行いやすくすることができる。
【００１６】
ここで、前記接近制限情報は、前記各教示点へ前記エンドエフェクターを接近させる方向を限定する情報であり、前記離脱制限情報は、前記各教示点から前記エンドエフェクターを離脱させる方向を限定する情報であり、前記追加部は、前記第１の教示点を前記離脱制限情報の示す方向に所定量だけ移動させた位置を前記第３の教示点の位置とし、前記第２の教示点を前記接近制限情報の示す方向に所定量だけ移動させた位置に前記第４の教示点を追加してもよい。これにより、教示点の追加候補を一方向に限定し、処理時間を短縮することができる。
【００１７】
ここで、前記第１の教示点及び前記第２の教示点の位置と、前記障害物の形状とに基づいて、前記接近制限情報及び前記離脱制限情報を生成する制限情報生成部を備え、前記記憶部は、前記生成された接近制限情報及び前記生成された離脱制限情報を記憶してもよい。これにより、追加した教示点の接近制限情報、離脱制限情報を生成、記憶することができる。
【００１８】
第二の態様の変形例は、ロボット制御装置であって、複数のリンク及びジョイントを有するアーム先端に設けられたエンドエフェクターが複数の教示点に沿って移動するように前記アームを移動させる動作制御部と、前記複数の教示点を構成する各教示点の情報であって、前記教示点の位置情報と、前記エンドエフェクターを前記教示点へ接近させる際の制限情報である接近制限情報と、前記エンドエフェクターを前記教示点から離脱させる際の制限情報である離脱制限情報と、障害物の位置情報を取得する取得部と、前記複数の教示点の位置情報と前記障害物の位置情報とに基づいて、前記エンドエフェクターを前記複数の教示点に沿って移動させたときに、前記複数の教示点のうちの第１の教示点と前記第１の教示点の次に前記エンドエフェクターが通過する第２の教示点との間で、前記アーム又は前記エンドエフェクターと前記障害物とが干渉するか否かを判定する第２の判定部と、前記第１の教示点と前記第２の教示点との間で、前記アーム又は前記エンドエフェクターと前記障害物とが干渉すると判定された場合に、前記接近制限情報及び前記離脱制限情報に基づいて前記第１の教示点と前記第２の教示点との間に前記教示点を追加する追加部と、を備えることを特徴とする。
【００１９】
第二の態様の変形例は、ロボット制御方法であって、複数のリンク及びジョイントを有するアーム先端に設けられたエンドエフェクターが複数の教示点に沿って移動するように前記アームを移動させるステップと、前記複数の教示点の位置情報と、障害物の位置情報とを取得するステップと、前記複数の教示点の位置情報と前記障害物の位置情報とに基づいて、前記エンドエフェクターを前記複数の教示点に沿って移動させたときに、前記複数の教示点のうちの第１の教示点と前記第１の教示点の次に前記エンドエフェクターが通過する第２の教示点との間で、前記アーム又は前記エンドエフェクターと前記障害物とが干渉するか否かを判定するステップと、前記第１の教示点と前記第２の教示点との間で、前記アーム又は前記エンドエフェクターと前記障害物とが干渉すると判定された場合に、前記エンドエフェクターを前記教示点へ接近させる際の制限情報である接近制限情報であって、前記第２の教示点についての接近制限情報を取得し、かつ前記エンドエフェクターを前記教示点から離脱させる際の制限情報である離脱制限情報であって、前記第１の教示点についての離脱制限情報を取得するステップと、前記第１の教示点についての離脱制限情報に基づいて前記第１の教示点と前記第２の教示点との間に第３の教示点を追加するステップと、前記第２の教示点についての接近制限情報に基づいて前記第３の教示点と前記第２の教示点との間に第４の教示点を追加するステップと、を備えることを特徴とする。
【００２０】
第二の態様の変形例は、ロボット制御プログラムであって、複数のリンク及びジョイントを有するアーム先端に設けられたエンドエフェクターが複数の教示点に沿って移動するように前記アームを移動させるステップと、前記複数の教示点の位置情報と、障害物の位置情報とを取得するステップと、前記複数の教示点の位置情報と前記障害物の位置情報とに基づいて、前記エンドエフェクターを前記複数の教示点に沿って移動させたときに、前記複数の教示点のうちの第１の教示点と前記第１の教示点の次に前記エンドエフェクターが通過する第２の教示点との間で、前記アーム又は前記エンドエフェクターと前記障害物とが干渉するか否かを判定するステップと、前記第１の教示点と前記第２の教示点との間で、前記アーム又は前記エンドエフェクターと前記障害物とが干渉すると判定された場合に、前記エンドエフェクターを前記教示点へ接近させる際の制限情報である接近制限情報であって、前記第２の教示点についての接近制限情報を取得し、かつ前記エンドエフェクターを前記教示点から離脱させる際の制限情報である離脱制限情報であって、前記第１の教示点についての離脱制限情報を取得するステップと、前記第１の教示点についての離脱制限情報に基づいて前記第１の教示点と前記第２の教示点との間に第３の教示点を追加するステップと、前記第２の教示点についての接近制限情報に基づいて前記第３の教示点と前記第２の教示点との間に第４の教示点を追加するステップと、を演算装置に実行させることを特徴とする。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態におけるロボットシステム１の構成の一例を示すシステム構成図である。
【図２】ロボットシステム１の機能構成の一例を示すブロック図である。
【図３】教示点情報の一例を示す図である。
【図４】干渉情報の一例を示す図である。
【図５】障害物情報の一例を示す図である。
【図６】制御部２０のハードウェア構成を示す図である。
【図７】ロボットシステム１の教示点修正処理の流れを示すフローチャートである。
【図８】教示点修正処理を説明する図である。
【図９】ロボットシステム１の接近制限情報生成処理の流れを示すフローチャートである。
【図１０】接近制限情報生成処理を説明する図である。
【図１１】教示点修正処理の教示点修正ステップ（ステップＳ１６）の処理の流れを示すフローチャートである。
【図１２】教示点修正ステップ（ステップＳ１６）を説明する図である。
【図１３】ロボットシステム１の教示点追加処理の流れを示すフローチャートである。
【図１４】教示点追加処理を説明する図である。
【図１５】ロボットシステム１の離脱制限情報生成処理の流れを示すフローチャートである。
【図１６】教示点追加処理を説明する図である。
【発明を実施するための形態】
【００２２】
本発明の一実施形態について、図面を参照しながら説明する。
【００２３】
図１は、本発明の一実施形態におけるロボットシステム１の構成の一例を示すシステム構成図である。本実施形態におけるロボットシステム１は、主として、ロボット１０と、制御部２０と、撮影部３０とを備える。
【００２４】
ロボット１０は、アーム部１１と、アーム部１１の先端に設けられたハンド１４とを備えたアーム型のロボットである。なお、図１においては、２本のアーム部１１を有するいわゆる双腕ロボットを図示したが、１本のロボットアームを有していてもよい。以下、アーム部１１及びハンド１４を可動部１５（図２等参照）という。
【００２５】
アーム部１１は、複数のジョイント（関節）１２と、複数のリンク１３とを含む。
各ジョイント１２は、リンク１３同士や、ロボットの台座（胴体）とリンク１３等を回動自在に連結する。各ジョイント１２は、例えば、回転ジョイントであり、リンク１３間の角度を変化させたり、リンク１３を軸回転させたりできるように設けられている。従って、各ジョイント１２を連動させて駆動することにより、ハンド１４を所定の可動範囲内で自在に移動させることができるとともに、自由な方向へ向けることもできる。
【００２６】
ハンド１４は、例えば、２本以上の指を備え、これらを曲げたり移動させたりすることによりワーク４０を挟んで把持する。もちろん、ハンド１４の構成は、ワーク４０を把持できれば特に限定されない。なお、本実施形態では、ハンド１４の位置を、可動部１５の「作業点」と呼ぶ（いわゆる、エンドエフェクター）。
ハンド１４には、センサー（図示せず）が設けられる。センサーは、例えば、ハンド１４に加えられた外力などを検出する。
【００２７】
また、ジョイント１２及びハンド１４には、それらを動作させるためのアクチュエーター（図示せず）が設けられる。アクチュエーターは、例えば、サーボモーターやエンコーダーなどを備える。エンコーダーが出力するエンコーダー値は、制御部２０によるロボット１０のフィードバック制御に使用される。
【００２８】
なお、ロボット１０の構成は、本実施形態の特徴を説明するにあたって主要構成を説明したのであって、上記の構成に限られない。一般的な把持ロボットが備える構成を排除するものではない。例えば、図１では６軸のアームが示されているが、軸数（ジョイント数）をさらに増加させてもよいし、減らしてもよい。リンクの数を増減させてもよい。また、アーム、ハンド、リンク、ジョイント等の各種部材の形状、大きさ、配置、構造等も適宜変更してよい。
【００２９】
撮影部３０は、ロボット１０の外部環境（例えば、図示する作業台付近）を撮影して、画像データを生成するユニットである。撮影部３０は、例えば、カメラを含み、作業台、天井、壁などに設けられる。
【００３０】
撮影部３０は、ハンド１４の注目点Ｘ及びワーク４０を所定の方向、図１においては右斜め前方向から撮影する。なお、撮影部３０の撮影方向はこれに限られない。
【００３１】
制御部２０は、ロボット１０の全体を制御する処理を行う。制御部２０は、ロボット１０の本体とは離れた場所に（遠隔操作可能に）設置してもよいし、ロボット１０に内蔵してもよい。
【００３２】
次に、ロボットシステム１の機能構成例について説明する。図２は、ロボットシステム１の機能ブロック図である。
ロボット１０は、主として、中央制御部１０１と、動作制御部１０２とを備える。
中央制御部１０１は、他の各部（１０２）等を統括的に制御する。
【００３３】
動作制御部１０２は、出力部２０４から出力された情報、アクチュエーターのエンコーダー値、及びセンサーのセンサー値等に基づいて可動部１５を制御する。例えば、動作制御部１０２は、出力部２０４から出力された教示点の情報に沿って可動部１５を移動させるように、アクチュエーターを駆動させる。また、動作制御部１０２は、教示点の情報にエンドエフェクターを動作することが指示されている場合には、ハンド１４を動作してワーク４０を把持させる。
【００３４】
制御部２０は、中央制御部２０１と、記憶部２０２と、障害物情報生成部２０３と、出力部２０４と、教示点干渉確認部２０５と、教示点パラメーター修正部２０６と、新規教示点追加部２０７と、新規教示点パラメーター算出部２０８と、エンドエフェクター動作確認部２０９と、教示点ＤＢ２１０と、障害物ＤＢ２１１とを備える。
【００３５】
中央制御部２０１は、他の各部（２０２〜２１１）を統括的に制御する。
【００３６】
記憶部２０２は、各種データやプログラムを記憶する。
【００３７】
障害物情報生成部２０３は、撮影部３０で撮影された画像データを取得し、画像データに基づいて障害物情報を生成して障害物ＤＢ２１１に記憶する。障害物情報については後に詳述する。
【００３８】
出力部２０４は、可動部１５の移動量、移動方向等を示す情報を動作制御部１０２に出力する。例えば、出力部２０４は、教示点干渉確認部２０５で教示点とワーク４０とが干渉しない場合には、教示点ＤＢ２１０から教示点の情報を取得し、これを動作制御部１０２に出力する。
【００３９】
教示点干渉確認部２０５は、教示点ＤＢ２１０に記憶された教示点の情報と、障害物ＤＢ２１１に記憶された障害物の情報とに基づいて、可動部１５とワーク４０（障害物）とが干渉するか否かを確認する。また、教示点干渉確認部２０５は、教示点ＤＢ２１０に記憶された教示点の情報と、障害物ＤＢ２１１に記憶された障害物の情報とに基づいて、教示点と教示点とを結んだ移動経路（パス）上で、可動部１５とワーク４０（障害物）とが干渉するか否かを確認する。
【００４０】
教示点パラメーター修正部２０６は、教示点干渉確認部２０５により可動部１５と障害物とが干渉することが確認された教示点のパラメーター（後に詳述）を算出する。また教示点パラメーター修正部２０６は、算出したパラメーターを用いて教示点ＤＢ２１０の教示点を修正する。
【００４１】
新規教示点追加部２０７は、教示点干渉確認部２０５によりパス上で可動部１５と障害物とが干渉することが確認された時に、新たな教示点を追加する。
【００４２】
新規教示点パラメーター算出部２０８は、新規教示点追加部２０７により追加された教示点のパラメーターを算出する。また、新規教示点パラメーター算出部２０８は、算出したパラメーターが設定された教示点を教示点ＤＢ２１０に追加する。
【００４３】
エンドエフェクター動作確認部２０９は、教示点ＤＢ２１０に記憶された教示点の情報と、障害物ＤＢ２１１に記憶された障害物の情報とに基づいて、ワーク４０（障害物）と干渉する教示点においてエンドエフェクター動作が設定されているか否かを確認する。
【００４４】
なお、教示点干渉確認部２０５、教示点パラメーター修正部２０６、新規教示点追加部２０７、新規教示点パラメーター算出部２０８及びエンドエフェクター動作確認部２０９が行う処理の詳細については、後に詳述する。
【００４５】
教示点ＤＢ２１０には、教示点情報２１０１と、干渉情報２１０２とが記憶される。障害物ＤＢ２１１には、障害物情報２１１１が記憶される。
【００４６】
教示点情報２１０１は、ロボットの教示点群の情報である。あらかじめ設定されている教示点の情報は、教示点情報２１０１にあらかじめ記憶されている。変更、追加された教示点の情報は、教示点パラメーター修正部２０６又は新規教示点パラメーター算出部２０８により、教示点情報２１０１に追加される。
【００４７】
図３は、教示点情報２１０１を示す図である。教示点情報２１０１は、主として、教示点番号格納領域２１０１ａと、先端位置姿勢格納領域２１０１ｂと、パラメーター格納領域２１０１ｃと、フラグ格納領域２１０１ｄと、接近制限情報格納領域２１０１ｅと、離脱制限情報格納領域２１０１ｆとを備える。教示点番号格納領域２１０１ａと、先端位置姿勢格納領域２１０１ｂと、パラメーター格納領域２１０１ｃと、フラグ格納領域２１０１ｄと、接近制限情報格納領域２１０１ｅと、離脱制限情報格納領域２１０１ｆとは互いに関連付けられている。
【００４８】
教示点番号格納領域２１０１ａには、教示点の識別情報（例えば、番号）が格納される。動作制御部１０２は、教示点を番号の小さい順につなげたパスに沿って可動部１５を移動させる。
【００４９】
先端位置姿勢格納領域２１０１ｂには、ロボット先端の目標位置及び姿勢が格納される。ロボット先端の目標位置は、ハンド１４の先端のｘ座標、ｙ座標及びｚ座標により決定される。ロボット先端の姿勢は、ハンド１４のロール角、ピッチ角及びヨー角と、パラメーターとにより決定される。なお、ｘ座標、ｙ座標及びｚ座標は、制御部２０が認識しているロボット１０の座標系（ロボット座標系）における座標である。
【００５０】
パラメーター格納領域２１０１ｃには、ロボットの冗長自由度を一意に決めるためのパラメーターが格納される。たとえば、３次元７軸ロボットの場合には、アーム部１１の肘に相当する部分の位置を定めるパラメーターとすることができる。
【００５１】
フラグ格納領域２１０１ｄには、ロボット先端の目標位置姿勢においてエンドエフェクター動作処理を実行するか否かのフラグが格納される。フラグ格納領域２１０１ｄに「０」が格納されている場合には、エンドエフェクター動作を行わないことを示す。フラグ格納領域２１０１ｄに「１」が格納されている場合には、エンドエフェクター動作を行うことを示す。
【００５２】
接近制限情報格納領域２１０１ｅは、先端位置姿勢格納領域２１０１ｂに格納された教示点に可動部１５を接近させるときの可動部１５の位置及び姿勢に関する制限の有無及び制限内容が格納される。接近制限情報格納領域２１０１ｅに情報が格納されていない場合には、可動部１５を教示点へ接近させる場合に制限がないことを示す。本実施の形態では、接近制限情報格納領域２１０１ｅに格納される情報（例えばＤＩＲ［１］）は、制限の方向を示す方向ベクトルであり、ＤＩＲ［１］の示す方向からしか可動部１５を接近させることができないことを示す。接近制限情報格納領域２１０１ｅに格納される情報の詳細については、後に詳述する。
【００５３】
離脱制限情報格納領域２１０１ｆは、先端位置姿勢格納領域２１０１ｂに格納されたロボット先端の目標位置から可動部１５を離脱（遠ざける）させる（次の教示点へ移動させる）ときの可動部１５の位置及び姿勢に関する制限の有無及び制限内容が格納される。離脱制限情報格納領域２１０１ｆに情報が格納されていない場合には、可動部１５を教示点から離脱させる場合に制限がないことを示す。本実施の形態では、離脱制限情報格納領域２１０１ｆに格納される情報（例えばＤＩＲ［３］）は、制限の方向を示す方向ベクトルであり、ＤＩＲ［３］の示す方向にしか可動部１５を離脱させることができないことを示す。離脱制限情報格納領域２１０１ｆに格納される情報の詳細については、後に詳述する。
【００５４】
干渉情報２１０２は、設定されたロボットの教示点群の情報である。図４は、干渉情報２１０２を例示する図である。干渉情報２１０２は、主として、教示点番号格納領域２１０２ａと、インデックス格納領域２１０２ｂと、ロボット動作可能／不可能フラグ格納領域２１０２ｃとを備える。教示点番号格納領域２１０２ａは、教示点番号格納領域２１０１ａと同一であるため、説明を省略する。
【００５５】
インデックス格納領域２１０２ｂには、教示点番号格納領域２１０２ａに番号が格納された各教示点について、その教示点に可動部１５を位置させたときにロボット１０と障害物との干渉が発生することを示すインデックスが格納される。また、インデックス格納領域２１０２ｂには、教示点をつないだパスに沿って可動部１５を移動させたときにロボット１０と障害物との干渉が発生することを示すインデックスが格納される。
【００５６】
本実施の形態では、インデックス格納領域２１０２ｂの一桁目に「０」が格納された場合は、その教示点においては、教示点に可動部１５を位置させたときにロボット１０と障害物との干渉が発生しないことを示し、「１」が格納された場合は、教示点に可動部１５を位置させたときにロボット１０と障害物との干渉が発生することを示す。また、インデックス格納領域２１０２ｂの二桁目に「０」が格納された場合は、その教示点から次の教示点にロボット１０を移動させる間にロボット１０と障害物との干渉が発生しないことを示し、「１」が格納された場合は、その教示点から次の教示点にロボット１０を移動させる間にロボット１０と障害物との干渉が発生することを示す。また、インデックス格納領域２１０２ｂの三桁目に「０」が格納された場合には、一つ前の教示点からその教示点にロボット１０を移動させる間にロボット１０と障害物との干渉が発生しないことを示し、「１」が格納された場合には、一つ前の教示点からその教示点にロボット１０を移動させる間にロボット１０と障害物との干渉が発生することを示す。
【００５７】
図４に示す例では、教示点番号格納領域２１０２ａに番号２が格納された場合に、インデックス格納領域２１０２ｂに「０１１」が格納されているため、番号２の教示点に可動部１５を位置させたときにロボット１０と障害物との干渉が発生し、番号２の教示点から番号３の教示点に移動させる間にロボット１０と障害物との干渉が発生することがわかる。教示点番号格納領域２１０２ａに番号３が格納された場合に、インデックス格納領域２１０２ｂに「１００」が格納されているため、番号３の教示点の一つ前の教示点である教示点２から移動する間にロボット１０と障害物との干渉が発生することがわかる。
【００５８】
ロボット動作可能／不可能フラグ格納領域２１０２ｃには、その教示点が実現可能な否かを示すフラグが格納される。ロボット動作可能／不可能フラグ格納領域２１０２ｃに「０」が格納されている場合は、その教示点が実現可能であることを示す。ロボット動作可能／不可能フラグ格納領域２１０２ｃに「１」が格納されている場合は、その教示点が実現不可能であることを示す。
【００５９】
図４に示す例では、教示点番号格納領域２１０２ａに番号２が格納された場合に、ロボット動作可能／不可能フラグ格納領域２１０２ｃに「１」が格納されているため、番号２の教示点は実現できないことを示す。
【００６０】
障害物情報２１１１は、作業空間に存在するロボット１０以外のワーク、周辺機器等の寸法や位置姿勢を表す情報である。図５は、障害物情報２１１１を示す図である。障害物情報２１１１は、主として、障害物番号格納領域２１１１ａと、障害物座標格納領域２１１１ｂと、障害物寸法格納領域２１１１ｃとを備える。
【００６１】
障害物番号格納領域２１１１ａには、障害物の番号が格納される。障害物の番号は、便宜上、障害物情報生成部２０３が障害物を認識した順に付与される。
【００６２】
障害物座標格納領域２１１１ｂには、ロボット座標系における障害物の位置を示すｘ座標、ｙ座標、ｚ座標及び障害物の姿勢を表すロール角、ピッチ角、ヨー角が格納される。本実施の形態では、障害物を取り囲む直方体を仮定しているため、１つの障害物に対して幅、高さ、奥行きの代表寸法が格納される。なお、障害物が球形の場合には、中心を示す１組のｘ座標、ｙ座標、ｚ座標を障害物座標格納領域２１１ｂに格納し、半径の値を障害物寸法格納領域２１１１ｃに格納してもよい。障害物座標格納領域２１１１ｂのｘ座標、ｙ座標及びｚ座標は、先端位置姿勢格納領域２１０１ｂに格納された座標系、すなわち制御部２０が認識しているロボット１０の座標と同一である。
【００６３】
なお、ロボット１０及び制御部２０の各機能構成は、ロボット１０及び制御部２０の構成を理解容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。ロボット１０及び制御部２０の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、１つの構成要素がさらに多くの処理を実行するように分類することもできる。また、各構成要素の処理は、１つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
【００６４】
図６は、制御部２０の概略構成の一例を示すブロック図である。図示するように、制御部２０は、演算装置であるＣＰＵ５１と、揮発性の記憶装置であるＲＡＭ５２と、不揮発性の記憶装置であるＲＯＭ５３と、ハードディスクドライブ（ＨＤＤ）５４と、制御部２０と他のユニットを接続するインターフェイス（Ｉ／Ｆ）回路５５と、ロボット１０の外部の装置と通信を行う通信装置５６と、これらを互いに接続するバス５７とを備える。
【００６５】
上記の記憶部２０２以外の各機能部は、例えば、ＣＰＵ５１がＲＯＭ５３に格納された所定のプログラムをＲＡＭ５２に読み出して実行することにより実現される。記憶部２０２は、例えば、ＲＡＭ５２、ＲＯＭ５３又はＨＤＤ５４により実現される。なお、前記所定のプログラムは、例えば、予めＲＯＭ５３にインストールされてもよいし、通信装置５６を介してネットワークからダウンロードされてインストール又は更新されてもよい。
【００６６】
以上のロボットシステム１の構成は、本実施形態の特徴を説明するにあたって主要構成を説明したのであって、上記の構成に限られない。ロボット１０は、制御部２０を備えていてもよいし、撮影部３０を備えていてもよい。また、一般的なロボットが備える構成を排除するものではない。
【００６７】
次に、本実施形態における、上記構成からなるロボットシステム１の特徴的な処理について説明する。本実施の形態では、ロボットシステム１の特徴的な処理として、教示点修正処理及び教示点追加処理の２つがある。以下、この２つの処理について順番に説明する。なお、説明の簡略化のため、ロボット１０は２次元で移動可能（３次元では移動しない）として説明する。また、ロボット１０自身の干渉はなく、ロボット１０と障害物の干渉のみ発生すると仮定して説明する。
【００６８】
図７は、ロボットシステム１の教示点修正処理の流れを示すフローチャートである。この処理は、例えば、図示しないボタン等を介して干渉確認指示が入力されることにより開始される。
【００６９】
＜ステップＳ１０＞
教示点干渉確認部２０５は、教示点情報２１０１から各教示点の位置情報を取得する。また、教示点干渉確認部２０５は、障害物ＤＢ２１１から障害物情報２１１１を取得する。そして、教示点干渉確認部２０５は、教示点情報２１０１に格納された各教示点について、障害物ＤＢ２１１に格納された障害物と干渉するか否かを判定する。当該処理について、図８を用いて具体的に説明する。
【００７０】
教示点干渉確認部２０５は、障害物情報２１１１に基づいて、障害物の存在する領域を認識する。障害物座標格納領域２１１１ｂから位置(Ｘａ, Ｙａ)、姿勢(θa)、代表寸法Ｌａ、Ｗａで表される長方形の障害物（ここではワーク４０）が取得されているため、教示点干渉確認部２０５は、長方形領域（図８ハッチング部）を障害物の存在する領域として認識する。
【００７１】
教示点干渉確認部２０５は、先端位置姿勢格納領域２１０１ｂから取得した教示点の位置情報（ｘ座標、ｙ座標、ｚ座標）が、障害物の存在する領域に含まれるか否かを判定する。教示点２が障害物の存在する領域に含まれるため、教示点干渉確認部２０５は、教示点２が障害物と干渉すると判定する。
【００７２】
なお、図８において、各教示点に表示された矢印は、先端姿勢方向を示す矢印である。先端姿勢方向とは、ハンド１４の先端が向く方向であり、先端位置姿勢格納領域２１０１ｂに格納されたハンド１４のロール角、ピッチ角及びヨー角と、パラメーター格納領域２１０１ｃに格納されたパラメーターとから求めることができる。
【００７３】
また、教示点干渉確認部２０５は、判定結果に基づいて干渉情報２１０２を生成する。具体的には、教示点干渉確認部２０５は、教示点番号格納領域２１０２ａに教示点の番号を格納する。また、教示点干渉確認部２０５は、教示点が障害物の存在する領域に含まれない場合にはインデックス格納領域２１０２ｂの一桁目に「０」を格納し、教示点が障害物の存在する領域に含まれる場合にはインデックス格納領域２１０２ｂの一桁目に「１」を格納する。さらに、教示点干渉確認部２０５は、インデックス格納領域２１０２ｂのすべての桁に「０」を格納した場合にはロボット動作可能／不可能フラグ格納領域２１０２ｃに「０」を格納し、インデックス格納領域２１０２ｂのいずれかの桁に「１」を格納した場合にはロボット動作可能／不可能フラグ格納領域２１０２ｃに「１」を格納する。これにより、次回の処理からは、干渉情報２１０２を取得することで干渉の有無を知ることができる。
【００７４】
図７の説明に戻る。教示点が障害物と干渉しないと判定された場合（ステップＳ１０でＮＯ）は、ステップＳ１８へ進む。教示点が障害物と干渉すると判定された場合（ステップＳ１０でＹＥＳ）は、ステップＳ１２へ進む。
【００７５】
＜ステップＳ１２＞
教示点干渉確認部２０５は、干渉が発生する教示点の情報をエンドエフェクター動作確認部２０９へ出力する。エンドエフェクター動作確認部２０９は、教示点ＤＢ２１０から教示点情報２１０１を取得し、教示点情報２１０１に基づいて教示点干渉確認部２０５から入力された教示点でエンドエフェクターの動作を行う設定となっているか否かを判定する。
【００７６】
図８に示す例では、教示点２が障害物の存在する領域に含まれると判断されたので、エンドエフェクター動作確認部２０９は、教示点情報２１０１のフラグ格納領域２１０１ｄに格納された情報であって、教示点番号格納領域２１０１ａに格納された番号が「２」の情報に関連付けられた情報を取得する。図３に示す教示点情報２１０１では、教示点番号格納領域２１０１ａが「２」の場合におけるフラグ格納領域２１０１ｄの情報は「０」である。したがって、エンドエフェクター動作確認部２０９は、教示点２ではエンドエフェクター動作を行わないと判定する。
【００７７】
干渉が発生する教示点でエンドエフェクター動作が行う設定となっている場合（ステップＳ１２でＹＥＳ）は、エンドエフェクター動作確認部２０９はこの情報を中央制御部２０１へ出力し、中央制御部２０１は処理Ｂを行う。干渉が発生する教示点でエンドエフェクター動作を行わない設定となっている場合（ステップＳ１２でＮＯ）は、ステップＳ１４へ進む。
【００７８】
＜処理Ｂ＞
処理Ｂは、エラー処理である。エラー処理は、作業が不可能であることを、作業者等へ認識させると共に、教示点修正処理を含むロボットシステム１のすべての処理停止させる処理である。作業者等へ認識させる処理としては、例えば、ラインの見直しが必要であることを図示しない表示部に表示させる処理が考えられる。
【００７９】
＜ステップＳ１４＞
エンドエフェクター動作確認部２０９は、障害物との干渉が発生する教示点の番号及びこの教示点でエンドエフェクター動作が行われないことを教示点パラメーター修正部２０６へ出力する。教示点パラメーター修正部２０６は、エンドエフェクター動作確認部２０９から取得された教示点の番号に関連付けられた情報であって、教示点情報２１０１の接近制限情報格納領域２１０１ｅに格納された情報を教示点ＤＢ２１０から取得する。
【００８０】
教示点パラメーター修正部２０６は、接近制限情報格納領域２１０１ｅに情報が格納されていない場合には、接近制限情報を生成して接近制限情報格納領域２１０１ｅに格納する。
【００８１】
教示点パラメーター修正部２０６が接近制限情報を生成する方法について説明する。図９は、教示点パラメーター修正部２０６が接近制限情報を生成する処理の流れを示すフローチャートである。
【００８２】
教示点パラメーター修正部２０６は、障害物との干渉が発生する教示点ＴＰ［ｉ］の位置に関する情報、すなわち先端位置姿勢格納領域２１０１ｂに格納された情報であって、教示点ＴＰ［ｉ］に関連付けられたｘ座標、ｙ座標、及びｚ座標を、教示点ＤＢ２１０から取得する（ステップＳ１４１）。教示点の番号が２の場合には−ＴＰ［ｉ］＝２、すなわちｉ＝２である。障害物との干渉が発生する教示点が教示点２である場合に、教示点パラメーター修正部２０６は、ｘ座標「ｘ２」、ｙ座標「ｙ２」、ｚ座標「ｚ２」を教示点情報２１０１（図３参照）から取得する。
【００８３】
教示点パラメーター修正部２０６は、障害物との干渉が発生する教示点の一つ前の教示点ＴＰ［ｉ−１］の位置に関する情報、すなわち先端位置姿勢格納領域２１０１ｂに格納された情報であって、教示点ＴＰ［ｉ−１］に関連付けられたｘ座標、ｙ座標、及びｚ座標を、教示点ＤＢ２１０から取得する（ステップＳ１４２）。ステップＳ１４１でｉ＝２であった場合には−ＴＰ［ｉ−１］＝１、すなわち教示点１の位置に関する情報を教示点情報２１０１から取得する。
【００８４】
教示点パラメーター修正部２０６は、ステップＳ１４１、Ｓ１４２で取得された教示点の位置情報に基づいて、教示点ＴＰ［ｉ］から教示点ＴＰ［ｉ−１］への方向ベクトルＴＰ［ｉ］−ＴＰ［ｉ−１］を求める。また、障害物ＤＢ２１１から障害物情報２１１１を取得し、方向ベクトルＴＰ［ｉ］−ＴＰ［ｉ−１］と干渉する障害物の面における法線ベクトルＮ＿ＤＩＲを求める（ステップＳ１４３）。
【００８５】
ステップＳ１４３の処理について、図１０を用いて説明する。ｉ＝２であるため、方向ベクトルＴＰ［ｉ］−ＴＰ［ｉ−１］は、図１０において、教示点２から教示点１へ向かう点線の矢印で表される。
【００８６】
教示点パラメーター修正部２０６は、障害物（ここではワーク４０）の位置(Ｘａ, Ｙａ)、姿勢θａ、代表寸法Ｌａ、Ｗａであらわされる長方形を障害物座標格納領域２１１１ｂから取得する。方向ベクトルＴＰ［ｉ］−ＴＰ［ｉ−１］と交わるワーク４０の面は、節点１と節点２とを結んだ線である。教示点パラメーター修正部２０６は、図１０において、節点１と節点２とを結んだ線と直交し、ワーク４０の外側へ向かう矢印を法線ベクトルＮ＿ＤＩＲとして求める。
【００８７】
なお、ワーク４０の面が平面でない場合(例えば、ワークが直方体でない場合)には、方向ベクトルＴＰ［ｉ］−ＴＰ［ｉ−１］と交わる位置における法線ベクトルとすればよい。
【００８８】
図９の説明に戻る。教示点パラメーター修正部２０６は、教示点ＴＰ［ｉ］における方向単位ベクトルＤＩＲ［０］〜ＤＩＲ［５］を取得する（ステップＳ１４４）。方向単位ベクトルＤＩＲ［０］〜ＤＩＲ［５］について、図１０を用いて説明する。
【００８９】
ＤＩＲ［０］は、ｘ座標を固定値に制限（すなわち、ｘ座標が教示点ＴＰ［ｉ］のｘ座標と同一）し、ｙ座標を＋△ｙ方向に増分していく方向の単位ベクトルである。
ＤＩＲ［１］は、ｘ座標を固定値に制限し、ｙ座標-△ｙ方向に増分していく方向の単位ベクトルである。
ＤＩＲ［２］は、ｙ座標を固定値に制限（すなわち、ｙ座標が教示点ＴＰ［ｉ］のｙ座標と同一）し、ｘ座標を＋△ｘ方向に増分していく方向の単位ベクトルである。
ＤＩＲ［３］は、ｙ座標を固定値に制限し、ｘ座標を-△ｘ方向に増分していく方向の単位ベクトルである。
ＤＩＲ［４］は、先端姿勢方向と同じ方向の単位ベクトルである。
ＤＩＲ［５］は、先端姿勢方向と逆方向の単位ベクトルである。
なお、方向単位ベクトルは、図１０に表示されたＤＩＲ［０］〜ＤＩＲ［５］に限られない。方向単位ベクトルの数は６個に限らず、５個以下でもよいし、７個以上でもよい。また、方向単位ベクトルの方向もこれに限られない。
【００９０】
図９の説明に戻る。教示点パラメーター修正部２０６は、方向単位ベクトルＤＩＲ［０］〜ＤＩＲ［５］のうち、法線ベクトルＮ＿ＤＩＲと内積が最も大きい方向単位ベクトルを、接近方向制限情報として求める（ステップＳ１４５）。内積が最も大きいとは、法線ベクトルＮ＿ＤＩＲと最も近いことを意味する。図１０に示す場合においては、方向単位ベクトルＤＩＲ［１］が、法線ベクトルＮ＿ＤＩＲと最も近いため、接近制限情報として求められる。ステップＳ１４５で求められた接近方向制限情報は、障害物の表面から遠ざかる方向となる。
【００９１】
これにより、接近方向制限情報が算出される。教示点パラメーター修正部２０６は、算出した接近方向制限情報を教示点情報２１０１の接近制限情報格納領域２１０１ｅに格納し、接近方向制限情報算出処理を終了する。なお、図９に示す処理は、接近制限情報を生成する処理の一例であり、特に接近制限情報の内容はこれに限られない。
【００９２】
＜ステップＳ１６＞
図７の説明に戻る。教示点パラメーター修正部２０６は、取得した制限情報に基づいて、障害物との干渉が発生する教示点の位置を修正する。図１１は、当該処理の詳細を示すフローチャートである。
【００９３】
教示点パラメーター修正部２０６は、障害物との干渉が発生する教示点ＴＰ［ｉ］の位置に関する情報、すなわち先端位置姿勢格納領域２１０１ｂに格納された情報であって、教示点ＴＰ［ｉ］に関連付けられたｘ座標、ｙ座標及びｚ座標を、教示点ＤＢ２１０から取得する（ステップＳ１６１）。ここで取得される情報は、ステップＳ１４１で取得される情報と同一である。
【００９４】
教示点パラメーター修正部２０６は、接近制限情報格納領域２１０１ｅからＴＰ［ｉ］の接近方向制限情報を取得する（ステップＳ１６２）。
【００９５】
教示点パラメーター修正部２０６は、教示点ＴＰ［ｉ］の位置からステップＳ１６２で取得された接近方向制限情報の方向に修正量△を加算して、教示点ＴＰ［ｉ］の位置を修正する（ステップＳ１６３）。接近方向制限情報を用いることで、教示点の修正方向が障害物表面から遠ざかる方向に制約されている。
【００９６】
修正量△は、あらかじめ所定の値を設定しておいてもよいし、作業者が任意の大きさに変更できるようにしてもよい。修正量△が大きい場合には、可動部１５が障害物を避けるための動作が大きくなってしまう欠点があるが、教示点を修正する処理の処理時間が短縮できるという利点がある。それに対し、修正量△が小さい場合には、可動部１５が障害物を避けるための動作が小さくなるので、可動部１５の動作が元々の動作に近く効率的である利点があるが、教示点を修正する処理の処理時間が長くなるという欠点がある。したがって、ロボット１０の大きさやワーク４０の大きさに応じて、教示点パラメーター修正部２０６が修正量△を変更できるようにするとよい。
【００９７】
教示点パラメーター修正部２０６は、ステップＳ１６３で修正された教示点ＴＰ［ｉ］の位置で、可動部１５と障害物とが干渉するか否かを判断する（ステップＳ１６４）。
【００９８】
ステップＳ１６３修正された教示点ＴＰ［ｉ］の位置で可動部１５と障害物とが干渉しない場合（ステップＳ１６４でＹＥＳ）は、教示点パラメーター修正部２０６は、ステップＳ１６３修正された教示点ＴＰ［ｉ］の位置を、修正された教示点の位置として教示点情報２１０１に格納する（ステップＳ１６５）。教示点情報２１０１における修正された教示点の情報は、修正前の教示点の情報と先端位置姿勢格納領域２１０１ｂのｘ座標、ｙ座標及びｚ座標のみが異なり、その他は同一である（後に例示する）。
【００９９】
ステップＳ１６３修正された教示点ＴＰ［ｉ］の位置で可動部１５と障害物とが干渉する場合（ステップＳ１６４でＮＯ）は、教示点パラメーター修正部２０６は、修正回数が制限されている所定回数以下であるか否かを判断する（ステップＳ１６７）。所定回数は、あらかじめ設定しておけばよい。修正回数は、修正量△の大きさとの関係で変更できるようにしてもよい。
【０１００】
修正回数が所定回数以下である場合（ステップＳ１６７でＹＥＳ）には、教示点パラメーター修正部２０６は、最後に修正された教示点の位置からステップＳ１６２で取得された接近方向制限情報の方向に修正量△を加算して、教示点ＴＰ［ｉ］の位置を修正する（ステップＳ１６８）。その後、教示点パラメーター修正部２０６は、ステップＳ１６８で修正された教示点ＴＰ［ｉ］の位置で、可動部１５と障害物とが干渉するか否かを判断する（ステップＳ１６４）。
【０１０１】
修正回数が所定回数以下ではない場合（ステップＳ１６７でＮＯ）には、教示点パラメーター修正部２０６は、教示点の修正ができないことを示す情報を中央制御部２０１へ出力し、中央制御部２０１は処理Ｂ（エラー処理）を行う。
【０１０２】
＜ステップＳ１８＞
図７の説明に戻る。教示点パラメーター修正部２０６は、教示点修正(ステップＳ１６)が終了したことを示す情報を教示点干渉確認部２０５へ出力する。教示点干渉確認部２０５は、すべての教示点についてステップＳ１０〜Ｓ１６に示す処理が終了したか否かを判定する。
【０１０３】
すべての教示点についてステップＳ１０〜Ｓ１６に示す処理が終了していない場合（ステップＳ１８でＮＯ）には、教示点干渉確認部２０５は、また処理が終了していない教示点についてステップＳ１０の処理を行う。
【０１０４】
すべての教示点についてステップＳ１０〜Ｓ１６に示す処理が終了した場合（ステップＳ１８でＹＥＳ）には、教示点干渉確認部２０５は、教示点の修正終了したことを示す情報を中央制御部２０１へ出力し、中央制御部２０１は処理Ａを行う。処理Ａは教示点追加処理（後に詳述）である。
【０１０５】
教示点修正処理について、図１２を用いて説明する。図１２は、図８及び図１０と同じ位置関係の図である。図１２では、教示点２がワーク４０と干渉し、接近方向制限情報は方向単位ベクトルＤＩＲ［１］である。したがって、教示点パラメーター修正部２０６は、教示点２の位置からの方向単位ベクトルＤＩＲ［１］の方向に修正量△だけ移動させた位置を修正された教示点２’とする。教示点２’ではワーク４０との干渉が発生するため、教示点パラメーター修正部２０６は、教示点２’の位置から方向単位ベクトルＤＩＲ［１］の方向に修正量△だけ移動させた位置を修正された教示点２’’とする。教示点２’’ではワーク４０との干渉は発生しないため、教示点パラメーター修正部２０６は、教示点２’’の位置を教示点情報２１０１に格納する。
【０１０６】
教示点情報２１０１に格納される教示点２’’の情報について説明する。教示点番号格納領域２１０１ａには、教示点２を２回修正した結果であることを示す２’’が格納される。教示点２’’の位置が（ｘ２’’，  ｙ２’’，  ｚ２’’)とすると、先端位置姿勢格納領域２１０１ｂのｘ座標にはｘ２’’、ｙ座標にはｙ２’’、ｚ座標にはｚ２’’が格納される。先端位置姿勢格納領域２１０１ｂのロール角、ピッチ角及びヨー角は、教示点２の情報と同じR２, P２及びＹ２がそれぞれ格納される。パラメーター格納領域２１０１ｃ、フラグ格納領域２１０１ｄ、接近制限情報格納領域２１０１ｅ、及び離脱制限情報格納領域２１０１ｆに格納される情報は、教示点２の情報と同じ情報が格納される。
【０１０７】
これにより、教示点修正処理を終了する。障害物に干渉する教示点であって、エンドエフェクター動作処理を伴わない教示点に関しては、教示点の位置を変更することで、ロボット１０の動作が実現可能となる。また、教示点の修正候補を一方向に限定することにより、処理時間を短縮することができる。さらに、教示点の修正候補を一方向に限定することにより、アーム部１１の位置姿勢の変更量を小さくすることができる。
【０１０８】
＜処理Ａ＞
次に、教示点追加処理（処理Ａ）について説明する。図１３は、ロボットシステム１の教示点追加処理の流れを示すフローチャートである。
【０１０９】
＜ステップＳ２０＞
教示点干渉確認部２０５は、ステップＳ１０と同様に、教示点情報２１０１から教示点ＴＰ［ｉ］及び次の教示点ＴＰ［ｉ＋１］の位置情報（ｘ座標、ｙ座標、ｚ座標）を取得する。教示点修正処理により教示点が修正された場合には、修正された教示点の位置情報を取得する。
【０１１０】
＜ステップＳ２２＞
教示点干渉確認部２０５は、ステップＳ１０と同様に、障害物ＤＢ２１１から障害物情報２１１１を取得する。そして、教示点干渉確認部２０５は、教示点情報２１０１に格納されたある教示点ＴＰ［ｉ］と次の教示点ＴＰ［ｉ＋１］との間で、障害物ＤＢ２１１に格納された障害物とロボット１０とが干渉するか否かを判定する。当該処理について、図１４を用いて具体的に説明する。図１４の教示点の位置及び障害物の位置は、図１２と同じである。
【０１１１】
教示点干渉確認部２０５は、ステップＳ１０と同様に、障害物情報２１１１に基づいて、障害物の存在する領域（図１４ハッチング部）を認識する。
【０１１２】
教示点干渉確認部２０５は、先端位置姿勢格納領域２１０１ｂから取得した教示点の座標を結んだ線が、障害物の存在する領域と重なるか否かを判定する。図１４においては、教示点２と教示点３とを結んだ線が障害物の存在する領域と重なる。したがって、教示点干渉確認部２０５は、ｉ＝２の場合に教示点ＴＰ［ｉ］と教示点ＴＰ［ｉ＋１］との間で障害物と干渉すると判定する。
【０１１３】
教示点ＴＰ［ｉ］と教示点ＴＰ［ｉ＋１］との間で障害物と干渉しない場合(ステップＳ２２でＮＯ)には、ステップＳ４０へ進む。
教示点ＴＰ［ｉ］と教示点ＴＰ［ｉ＋１］との間で障害物と干渉する場合（ステップＳ２２でＹＥＳ）には、ステップＳ２４へ進む。
【０１１４】
＜ステップＳ２４＞
教示点干渉確認部２０５は、教示点ＴＰ［ｉ］及び教示点ＴＰ［ｉ＋１］の番号（すなわち、ｉ）及び位置情報を教示点パラメーター修正部２０６に出力する。教示点パラメーター修正部２０６は、教示点ＴＰ［ｉ］の離脱制限情報を離脱制限情報格納領域２１０１ｆから取得する。教示点パラメーター修正部２０６は、離脱制限情報格納領域２１０１ｆに情報が格納されていない場合には、離脱制限情報を生成して離脱制限情報格納領域２１０１ｆに格納する。
【０１１５】
教示点パラメーター修正部２０６が離脱制限情報を生成する方法について説明する。図１５は、教示点パラメーター修正部２０６が離脱制限情報を生成する処理の流れを示すフローチャートである。
【０１１６】
教示点パラメーター修正部２０６は、障害物との干渉が発生する教示点ＴＰ［ｉ］の位置に関する情報、すなわち先端位置姿勢格納領域２１０１ｂに格納された情報であって、教示点ＴＰ［ｉ］に関連付けられたｘ座標、ｙ座標、及びｚ座標を、教示点ＤＢ２１０から取得する（ステップＳ２６１）。当該処理は、ステップＳ１４１と同一である。
【０１１７】
教示点パラメーター修正部２０６は、障害物との干渉が発生する教示点の一つ後の教示点ＴＰ［ｉ＋１］の位置に関する情報、すなわち先端位置姿勢格納領域２１０１ｂに格納された情報であって、教示点ＴＰ［ｉ＋１］に関連付けられたｘ座標、ｙ座標、及びｚ座標を、教示点ＤＢ２１０から取得する（ステップＳ２６２）。ステップＳ１４１でｉ＝２であった場合には−ＴＰ［ｉ＋１］＝３、すなわち教示点３の位置に関する情報を教示点情報２１０１から取得する。当該処理は、対象となる教示点のみがステップＳ１４２と異なり、処理内容についてはステップＳ１４２と同一である。
【０１１８】
教示点パラメーター修正部２０６は、ステップＳ２６１、Ｓ２６２で取得された教示点の位置情報に基づいて、教示点ＴＰ［ｉ］から教示点ＴＰ［ｉ＋１］への方向ベクトルＴＰ［ｉ＋１］−ＴＰ［ｉ］を求める。また、障害物ＤＢ２１１から障害物情報２１１１を取得し、障害物の方向ベクトルＴＰ［ｉ＋１］−ＴＰ［ｉ］と干渉する面における法線ベクトルＮ＿ＤＩＲを求める（ステップＳ２６３）。当該処理は、対象となる教示点のみがステップＳ１４３と異なり、処理内容についてはステップＳ１４３と同一である。
【０１１９】
教示点パラメーター修正部２０６は、教示点ＴＰ［ｉ］における方向単位ベクトルＤＩＲ［０］〜ＤＩＲ［５］を取得する（ステップＳ２６４）。当該処理は、ステップＳ１４４と同一である。
【０１２０】
教示点パラメーター修正部２０６は、方向単位ベクトルＤＩＲ［０］〜ＤＩＲ［５］のうち、法線ベクトルＮ＿ＤＩＲと内積が最も大きい方向単位ベクトルを、離脱方向制限情報として求める（ステップＳ２６５）。当該処理は、ステップＳ１４５と同一である。
【０１２１】
これにより、離脱方向制限情報が算出される。教示点パラメーター修正部２０６は、算出した離脱方向制限情報を教示点情報２１０１の離脱制限情報格納領域２１０１ｆに格納し、離脱方向制限情報算出処理を終了する。なお、図１５に示す処理は、離脱制限情報を生成する処理の一例であり、特に離脱制限情報の内容はこれに限られない。
【０１２２】
＜ステップＳ２６＞
図１３の説明に戻る。教示点パラメーター修正部２０６は、教示点ＴＰ［ｉ＋１］の接近制限情報を接近制限情報格納領域２１０１ｅから取得する。教示点パラメーター修正部２０６は、接近制限情報格納領域２１０１ｅに情報が格納されていない場合には、接近制限情報を生成して接近制限情報格納領域２１０１ｅに格納する。当該処理は、対象となる教示点のみがステップＳ１４と異なり、処理内容についてはステップＳ１４と同一である。
【０１２３】
＜ステップＳ２８＞
教示点パラメーター修正部２０６は、教示点ＴＰ［ｉ］の離脱制限情報に基づいて新たな教示点ＴＰ［ｉ］＿１を追加する。教示点ＴＰ［ｉ］＿１は、教示点ＴＰ［ｉ］の後ろ（教示点ＴＰ［ｉ］と教示点ＴＰ［ｉ＋１］との間）に追加される。
【０１２４】
図１６に示すように、教示点２’’の離脱方向制限情報が方向単位ベクトルＤＩＲ［１］であるとすると、教示点パラメーター修正部２０６は、教示点２’’の位置から方向単位ベクトルＤＩＲ［１］の方向に修正量△だけ移動させた位置に、教示点２’’＿１（教示点ＴＰ［ｉ］＿１）を追加する。
【０１２５】
また、教示点パラメーター修正部２０６は、教示点ＴＰ［ｉ］＿１の情報を教示点情報２１０１に格納する。教示点パラメーター修正部２０６は、教示点ＴＰ［ｉ］＿１の位置の情報を教示点干渉確認部２０５に出力する。
【０１２６】
教示点情報２１０１に格納される教示点ＴＰ［ｉ］＿１の情報について説明する。教示点番号格納領域２１０１ａには、教示点を追加したことを示す教示点[ｉ]＿１が格納される。先端位置姿勢格納領域２１０１ｂのｘ座標、ｙ座標’’、及びｚ座標には、教示点ＴＰ［ｉ］の位置から離脱制限情報の示す方向に修正量△だけ移動させた座標が格納される。先端位置姿勢格納領域２１０１ｂのロール角、ピッチ角及びヨー角は−ＴＰ［ｉ］の情報と同じ情報がそれぞれ格納される。パラメーター格納領域２１０１ｃ、フラグ格納領域２１０１ｄ、接近制限情報格納領域２１０１ｅ、及び離脱制限情報格納領域２１０１ｆに格納される情報は−ＴＰ［ｉ］の情報と同じ情報が格納される。
【０１２７】
＜ステップＳ３０＞
教示点パラメーター修正部２０６は、教示点ＴＰ［ｉ＋１］の接近制限情報に基づいて新たな教示点ＴＰ［ｉ＋１］＿１を追加する。教示点ＴＰ［ｉ＋１］＿１は、教示点ＴＰ［ｉ＋１］の前（教示点ＴＰ［ｉ］＿１と教示点ＴＰ［ｉ＋１］との間）に追加される。教示点パラメーター修正部２０６は、教示点ＴＰ［ｉ＋１］＿１の位置の情報を教示点干渉確認部２０５に出力する。
【０１２８】
図１６に示すように、教示点３の離脱方向制限情報が方向単位ベクトルＤＩＲ［３］であるとすると、教示点パラメーター修正部２０６は、教示点３の位置から方向単位ベクトルＤＩＲ［３］の方向に修正量△だけ移動させた位置に、教示点３＿１（教示点ＴＰ［ｉ＋１］＿１）を追加する。
【０１２９】
また、教示点パラメーター修正部２０６は、ステップＳ２８と同様の方法により、教示点ＴＰ［ｉ＋１］＿１の情報を教示点情報２１０１に格納する。
【０１３０】
＜ステップＳ３２＞
教示点干渉確認部２０５は、教示点ＴＰ［ｉ］＿１及び教示点ＴＰ［ｉ＋１］＿１の位置の情報を取得する。教示点干渉確認部２０５は、ステップＳ２２と同様の方法により、教示点ＴＰ［ｉ］＿１と次の教示点ＴＰ［ｉ＋１］＿１との間（教示点ＴＰ［ｉ］＿１と次の教示点ＴＰ［ｉ＋１］＿１とを結んだ直線）で、障害物とロボット１０とが干渉するか否かを判定する。
【０１３１】
教示点ＴＰ［ｉ］＿１と次の教示点ＴＰ［ｉ＋１］＿１との間で、障害物とロボット１０とが干渉しない場合（ステップＳ３２でＮＯ）には、ステップＳ４０へ進む。
【０１３２】
教示点ＴＰ［ｉ］＿１と次の教示点ＴＰ［ｉ＋１］＿１との間で障害物とロボット１０とが干渉する場合（ステップＳ３２でＹＥＳ）には、ステップＳ３４へ進む。
【０１３３】
＜ステップＳ３４＞
教示点干渉確認部２０５は、教示点ＴＰ［ｉ］＿１及び教示点ＴＰ［ｉ＋１］＿１を修正すべきであることを教示点パラメーター修正部２０６に出力する。教示点パラメーター修正部２０６は、修正回数が制限されている所定回数以下であるか否かを判断する（ステップＳ３４）。当該処理は、ステップＳ１６７と同一である。
【０１３４】
修正回数が所定回数以下ではない場合（ステップＳ１６７でＮＯ）には、教示点パラメーター修正部２０６は、教示点の修正ができないことを示す情報を中央制御部２０１へ出力し、中央制御部２０１は処理Ｂ（エラー処理）を行う。
修正回数が所定回数以下である場合（ステップＳ１６７でＹＥＳ）には、ステップＳ３６へ進む。
【０１３５】
＜ステップＳ３６＞
教示点パラメーター修正部２０６は、ステップＳ２８と同様の方法により、教示点ＴＰ［ｉ］＿１の位置から離脱方向制限情報の方向に修正量△を加算して、教示点ＴＰ［ｉ］＿１の位置を修正する。教示点パラメーター修正部２０６は、教示点情報２１０１に格納された教示点ＴＰ［ｉ］＿１の位置情報を、ステップＳ３６で求められた位置に書き換える。
【０１３６】
＜ステップＳ３８＞
教示点パラメーター修正部２０６は、ステップＳ３０と同様の方法により、教示点ＴＰ［ｉ＋１］＿１の位置から接近方向制限情報の方向に修正量△を加算して、教示点ＴＰ［ｉ＋１］＿１の位置を修正する。教示点パラメーター修正部２０６は、教示点情報２１０１に格納された教示点ＴＰ［ｉ＋１］＿１の位置情報を、ステップＳ３６で求められた位置に書き換える。
【０１３７】
ステップＳ３８が終了したら、教示点パラメーター修正部２０６は、教示点ＴＰ［ｉ］＿１及び教示点ＴＰ［ｉ＋１］＿１の位置の情報を教示点干渉確認部２０５に出力する。その後、教示点干渉確認部２０５はステップＳ３２に戻る。
【０１３８】
＜ステップＳ４０＞
教示点干渉確認部２０５は、すべての教示点（すべてのｉ）についてステップＳ２０〜Ｓ３８の処理が行われたか否かを判断する。
【０１３９】
すべての教示点についてステップＳ２０〜Ｓ３８の処理が行われていない場合（ステップＳ４０でＮＯ）には、教示点干渉確認部２０５は、ステップＳ２０の処理に戻る。
【０１４０】
すべての教示点についてステップＳ２０〜Ｓ３８の処理が行われた場合（ステップＳ４０でＹＥＳ）には、この教示点で作業が実行できることを示す情報を中央制御部２０１へ出力し、中央制御部２０１は処理を終了する。
【０１４１】
これにより、教示点追加処理を終了する。教示点を追加するときに、新たな教示点の位置を接近制限情報及び離脱制限情報を用いて制限することにより、新たな教示点の位置を障害物表面から遠ざかる方向に制限することができる。また、教示点の追加候補位置を一方向に限定することにより、確実かつ効率のよい教示点追加処理を行うことができる。
【０１４２】
なお、教示点追加処理は、特に、教示点ＴＰ［ｉ］の後に教示点ＴＰ［ｉ］＿１を追加し、かつ教示点ＴＰ［ｉ＋１］の前に教示点ＴＰ［ｉ＋１］＿１を追加する点に特徴の一つである。教示点ＴＰ［ｉ］と教示点ＴＰ［ｉ］＿１との間に１つだけ教示点を追加する場合には、追加する教示点の位置の候補が無限となり、追加する教示点の位置を簡単に決めることはできない。それに対し、追加する教示点を、教示点ＴＰ［ｉ］に対応した教示点と、教示点ＴＰ［ｉ＋１］に対応した教示点の２個の教示点とすることで、確実にかつ短時間に追加する教示点を決定することができる。
【０１４３】
本実施の形態によれば、ロボットと障害物とがぶつかってしまう場合に、自動的に教示点の修正又は追加をすることができる。これにより、ユーザが何ら作業を行うことなく、所望の作業を実現するための教示点群を自動的に生成することができる。
【０１４４】
例えば、図８に示すように、当初は教示点１、２、３であったのが、障害物をよけるために、自動的に教示点２が教示点２’’に変更され、さらに自動的に教示点２’’＿１’、３＿１が追加された。その結果、可動部１５は、教示点１、２’’＿１、２’’、３＿１、３の順で、障害物にぶつかることなく移動することができる。
【０１４５】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に多様な変更または改良を加えることが可能であることが当業者には明らかである。また、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【符号の説明】
【０１４６】
１：ロボットシステム、１０：ロボット、１１：アーム部、１２：ジョイント、１３：リンク、１４：ハンド、１５：可動部、２０：制御部、３０：撮影部、４０：ワーク、５１：ＣＰＵ、５２：ＲＡＭ、５３：ＲＯＭ、５４：ＨＤＤ、５５：Ｉ／Ｆ回路、５６：通信装置、５７：バス、１０１：中央制御部、１０２：動作制御部、２０１：中央制御部、２０２：記憶部、２０３：障害物情報生成部、２０４：出力部、２０５：教示点干渉確認部、２０６：教示点パラメーター修正部、２０７：新規教示点追加部、２０８：新規教示点パラメーター算出部、２０９：エンドエフェクター動作確認部、２１０：教示点ＤＢ、２１１：障害物ＤＢ、２１０１：教示点情報、２１０１ａ：教示点番号格納領域、２１０１ｂ：先端位置姿勢格納領域、２１０１ｃ：パラメーター格納領域、２１０１ｄ：フラグ格納領域、２１０１ｅ：接近制限情報格納領域、２１０１ｆ：離脱制限情報格納領域、２１０２：干渉情報、２１０２ａ：教示点番号格納領域、２１０２ｂ：インデックス格納領域、２１０２ｃ：不可能フラグ格納領域、２１１１：障害物情報、２１１１ａ：障害物番号格納領域、２１１１ｂ：障害物座標格納領域
【図１】
2014024162.tif 000003
【図２】
2014024162.tif 000004
【図３】
2014024162.tif 000005
【図４】
2014024162.tif 000006
【図５】
2014024162.tif 000007
【図６】
2014024162.tif 000008
【図７】
2014024162.tif 000009
【図８】
2014024162.tif 000010
【図９】
2014024162.tif 000011
【図１０】
2014024162.tif 000012
【図１１】
2014024162.tif 000013
【図１２】
2014024162.tif 000014
【図１３】
2014024162.tif 000015
【図１４】
2014024162.tif 000016
【図１５】
2014024162.tif 000017
【図１６】
2014024162.tif 000018
【手続補正書】
【提出日】平成25年7月29日(2013.7.29)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
ここで、前記所定の教示点において、前記エンドエフェクターが動作を行うか否かを判定する第２の判定部を備え、前記変更部は、前記所定の教示点において前記エンドエフェクターが動作を行わない場合には、前記所定の教示点の位置を変更してもよい。これにより、エンドエフェクターが動作を行わない場合にのみ教示点の修正を行うことができる。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
第二の態様の変形例は、ロボット制御装置であって、複数のリンク及びジョイントを有するアーム先端に設けられたエンドエフェクターが複数の教示点に沿って移動するように前記アームを移動させる動作制御部と、前記複数の教示点を構成する各教示点の情報であって、前記教示点の位置情報と、前記エンドエフェクターを前記教示点へ接近させる際の制限情報である接近制限情報と、前記エンドエフェクターを前記教示点から離脱させる際の制限情報である離脱制限情報と、障害物の位置情報を取得する取得部と、前記複数の教示点の位置情報と前記障害物の位置情報とに基づいて、前記エンドエフェクターを前記複数の教示点に沿って移動させたときに、前記複数の教示点のうちの第１の教示点と前記第１の教示点の次に前記エンドエフェクターが通過する第２の教示点との間で、前記アーム又は前記エンドエフェクターと前記障害物とが干渉するか否かを判定する判定部と、前記第１の教示点と前記第２の教示点との間で、前記アーム又は前記エンドエフェクターと前記障害物とが干渉すると判定された場合に、前記接近制限情報及び前記離脱制限情報に基づいて前記第１の教示点と前記第２の教示点との間に前記教示点を追加する追加部と、を備えることを特徴とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００６２
【補正方法】変更
【補正の内容】
【００６２】
障害物座標格納領域２１１１ｂには、ロボット座標系における障害物の位置を示すｘ座標、ｙ座標、ｚ座標及び障害物の姿勢を表すロール角、ピッチ角、ヨー角が格納される。本実施の形態では、障害物を取り囲む直方体を仮定しているため、１つの障害物に対して幅、高さ、奥行きの代表寸法が格納される。なお、障害物が球形の場合には、中心を示す１組のｘ座標、ｙ座標、ｚ座標を障害物座標格納領域２１１１ｂに格納し、半径の値を障害物寸法格納領域２１１１ｃに格納してもよい。障害物座標格納領域２１１１ｂのｘ座標、ｙ座標及びｚ座標は、先端位置姿勢格納領域２１０１ｂに格納された座標系、すなわち制御部２０が認識しているロボット１０の座標と同一である。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００９０
【補正方法】変更
【補正の内容】
【００９０】
図９の説明に戻る。教示点パラメーター修正部２０６は、方向単位ベクトルＤＩＲ［０］〜ＤＩＲ［５］のうち、法線ベクトルＮ＿ＤＩＲと内積が最も大きい方向単位ベクトルを、接近方向制限情報として求める（ステップＳ１４５）。内積が最も大きいとは、法線ベクトルＮ＿ＤＩＲと最も近いことを意味する。図１０に示す場合においては、方向単位ベクトルＤＩＲ［１］が、法線ベクトルＮ＿ＤＩＲと最も近いため、接近方向制限情報として求められる。ステップＳ１４５で求められた接近方向制限情報は、障害物の表面から遠ざかる方向となる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１１７
【補正方法】変更
【補正の内容】
【０１１７】
教示点パラメーター修正部２０６は、障害物との干渉が発生する教示点の一つ後の教示点ＴＰ［ｉ＋１］の位置に関する情報、すなわち先端位置姿勢格納領域２１０１ｂに格納された情報であって、教示点ＴＰ［ｉ＋１］に関連付けられたｘ座標、ｙ座標、及びｚ座標を、教示点ＤＢ２１０から取得する（ステップＳ２６２）。ステップＳ２６１でｉ＝２であった場合には−ＴＰ［ｉ＋１］＝３、すなわち教示点３の位置に関する情報を教示点情報２１０１から取得する。当該処理は、対象となる教示点のみがステップＳ１４２と異なり、処理内容についてはステップＳ１４２と同一である。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１３４
【補正方法】変更
【補正の内容】
【０１３４】
修正回数が所定回数以下ではない場合（ステップＳ３４でＮＯ）には、教示点パラメーター修正部２０６は、教示点の修正ができないことを示す情報を中央制御部２０１へ出力し、中央制御部２０１は処理Ｂ（エラー処理）を行う。
修正回数が所定回数以下である場合（ステップＳ３４でＹＥＳ）には、ステップＳ３６へ進む。