(57)【要約】【課題】ロボットの教示において、ロボットの手先の向きを正確に所望の向きに一致させる。【解決手段】制御装置は：ロボットの制御を実行する制御部と；可動部ではない対象に対して固定されており可動部とともに移動または回転しない対象座標系をユーザーから受け付ける受付部と、を備える。制御部は：力検出部により力が検出されている間、検出された力に応じて可動部を移動および回転させる第１制御モードと；第１制御モードによる制御において、可動部とともに移動および回転する移動座標系のあらかじめ定められた第１軸と、対象座標系のあらかじめ定められた第２軸と、の相対角度が角度閾値未満になった場合に、あらかじめ定められた条件の下で実行される第２制御モードであって、力検出部により検出される力によらず、相対角度の大きさが０に近づくように可動部を回転させる第２制御モードと、を有する。【選択図】図４
2019209386.tif 000002
【特許請求の範囲】
【請求項１】
可動部と、前記可動部に加えられた力を検出する力検出部と、を備えるロボットを制御する制御装置であって、
前記ロボットの制御を実行する制御部と、
対象に対して固定されている対象座標系をユーザーから受け付ける受付部と、を備え、
前記制御部は、
前記力検出部により力が検出されている間、前記力検出部により検出された力に応じて前記可動部を移動および回転させる第１制御モードと、
前記第１制御モードによる制御において、前記可動部に対して固定されている移動座標系のあらかじめ定められた第１軸と、前記対象座標系のあらかじめ定められた第２軸と、の相対角度が角度閾値未満になった場合に、あらかじめ定められた条件の下で前記相対角度の大きさが０に近づくように前記可動部を回転させる第２制御モードと、を有する、制御装置。
【請求項２】
請求項１記載の制御装置であって、
前記受付部は、前記ユーザーから、前記第１軸および第２軸を受け付ける、制御装置。
【請求項３】
請求項１または２記載の制御装置であって、
前記角度閾値は、０より大きく４５度未満である、制御装置。
【請求項４】
請求項１から３のいずれか一項に記載の制御装置であって、
前記受付部は、前記角度閾値をユーザーから受け付ける、制御装置。
【請求項５】
請求項１から４のいずれか１項に記載の制御装置であって、
前記条件は、前記第１制御モードによる制御において、前記移動座標系の原点と前記対象座標系の原点との距離が、距離閾値より大きいか否かを含む、制御装置。
【請求項６】
請求項５記載の制御装置であって、
前記受付部は、前記距離閾値をユーザーから受け付ける、制御装置。
【請求項７】
請求項１から６のいずれか一項に記載の制御装置であって、
前記受付部は、前記第２制御モードを実行するか否かの指示をユーザーから受け付け、
前記条件は、前記第２制御モードを実行する旨の指示が前記受付部に入力されているか否かを含む、制御装置。
【請求項８】
請求項１から７のいずれか一項に記載の制御装置であって、
前記制御部は、前記力検出部により力が検出された場合に、前記検出された力の向きに応じて、あらかじめ定められた向きにあらかじめ定められた量だけ、前記可動部を移動または回転させる第３制御モードを有し、
前記第３制御モードによる制御においては、前記第２制御モードは行われない、制御装置。
【請求項９】
請求項１から８のいずれか１項に記載の制御装置と、
前記制御装置によって制御される前記ロボットと、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、力制御を行うロボットの教示に関する。
【背景技術】
【０００２】
特許文献１のロボットにおいては、ユーザーがロボットの手先に外力を加えてロボットの手先を移動および回転させ、ロボットに教示を行う。そのような技術においては、たとえば、第１の対象物に設けられた所定の深さを有する穴に、第２の対象物を挿入する作業をロボットに教示する場合には、第２の対象物を保持したロボットの手先の向きを、第１の対象物の穴の深さ方向に正確に一致させることが望まれる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−２３１９２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、ロボットの教示において、ロボットの手先の向きを正確に所望の向きに一致させることは容易ではない。
【課題を解決するための手段】
【０００５】
本発明の一形態によれば、可動部と、前記可動部に加えられた力を検出する力検出部と、を備えるロボットを制御する制御装置が提供される。この制御装置は：前記ロボットの制御を実行する制御部と；対象に対して固定されている対象座標系をユーザーから受け付ける受付部と、を備える。前記制御部は：前記力検出部により力が検出されている間、前記力検出部により検出された力に応じて前記可動部を移動および回転させる第１制御モードと；前記第１制御モードによる制御において、前記可動部に対して固定されて移動座標系のあらかじめ定められた第１軸と、前記対象座標系のあらかじめ定められた第２軸と、の相対角度が角度閾値未満になった場合に、あらかじめ定められた条件の下で前記相対角度の大きさが０に近づくように前記可動部を回転させる第２制御モードと、を有する。
【図面の簡単な説明】
【０００６】
【図１】本実施形態に係るロボットシステム１のハードウェア構成を示す図である。
【図２】ロボット制御装置２５のブロック図である。
【図３】教示装置５０を介してロボットシステム１に制御点の位置を教示する際の動作モードを示すフローチャートである。
【図４】第１制御モードＭ０１における処理内容を示すフローチャートである。
【図５】装置座標系ＭＣと、ワーク座標系ＷＣと、ロボット座標系ＲＣと、移動座標系ＨＣを示す図である。
【図６】装置座標系ＭＣと、ワーク座標系ＷＣと、ロボット座標系ＲＣと、移動座標系ＨＣを示す図である。
【図７】図４のステップＳ１４０において、移動座標系ＨＣのｚｈ軸と、ワーク座標系ＷＣのｚｗ軸との相対角度θｈｏが角度閾値Ａｔｈ未満であるか否かを判定する際の処理の内容を示す概念図である。
【図８】第４実施形態において、ステップＳ１４０の判定結果がＹｅｓである場合に、ステップＳ１５０に代わって行われる処理を示すフローチャートである。
【図９】複数のプロセッサーによってロボットの制御装置が構成される一例を示す概念図である。
【図１０】複数のプロセッサーによってロボットの制御装置が構成される他の例を示す概念図である。
【発明を実施するための形態】
【０００７】
Ａ．第１実施形態：
（１）ロボットシステムの構成：
図１は、本実施形態に係るロボットシステム１のハードウェア構成を示す図である。ロボットシステム１は、処理装置ＰＭと協働して、ワークＷＫに対して所定の処理を行う。ロボットシステム１は、ロボット２０と、ロボット制御装置２５を備える。ロボット制御装置２５は、ロボット２０を制御する。ロボット制御装置２５は、動作制御装置３０と、教示装置５０とによって構成される。
【０００８】
ロボット２０は、アームＡｍと、アームＡｍを支持する支持台Ｂｓを備える単腕ロボットである。アームＡｍは、６軸の垂直多関節型のアームである。アームＡｍは、６個のアーム部材であるリンクＬ１〜リンクＬ６と、６つの関節である関節Ｊ１〜Ｊ６を備える。関節Ｊ２、関節Ｊ３、関節Ｊ５は、曲げ関節であり、関節Ｊ１、関節Ｊ４、関節Ｊ６は、ねじり関節である。
【０００９】
支持台ＢｓとリンクＬ１は、関節Ｊ１を介して接続されている。リンクＬ１とリンクＬ２は、関節Ｊ２を介して接続されている。リンクＬ２とリンクＬ３は、関節Ｊ３を介して接続されている。リンクＬ３とリンクＬ４は、関節Ｊ４を介して接続されている。リンクＬ４とリンクＬ５は、関節Ｊ５を介して接続されている。リンクＬ５と、リンクＬ６、力検出部２１およびエンドエフェクターＥＥとは、関節Ｊ６を介して接続されている。力検出部２１は、リンクＬ６に取りつけられている。
【００１０】
アームＡｍの先端には、力検出部２１を介してエンドエフェクターＥＥが取り付けられている。エンドエフェクターＥＥは、ロボット２０に処理される対象物としてのワークＷＫを把持するための装置である。エンドエフェクターＥＥの位置は、ＴＣＰ（Tool  Center  Point）によって規定される。本実施形態において、ＴＣＰは、関節Ｊ６の回転軸上にある。動作制御装置３０は、アームＡｍを駆動することによって、ロボット座標系ＲＣにおいて制御点としてのＴＣＰの位置を制御する。
【００１１】
力検出部２１は、外部から加えられる力の大きさを検出することができる６軸の力センサーである。力検出部２１は、互いに直交する３個の検出軸上の力の大きさと、それら３個の検出軸周りのトルクの大きさとを検出する。
【００１２】
本実施形態においては、支持台Ｂｓの位置を基準として、ロボット２０が設置された空間を規定する座標系を、ロボット座標系ＲＣと表す。ロボット座標系ＲＣは、水平面上において互いに直交するＸ軸およびＹ軸と、鉛直上向きを正方向とするＺ軸とによって規定される三次元直交座標系である。本明細書において、単に「Ｘ軸」と称した場合、ロボット座標系ＲＣにおけるＸ軸のことを表す。単に「Ｙ軸」と称した場合、ロボット座標系ＲＣにおけるＹ軸のことを表す。単に「Ｚ軸」と称した場合、ロボット座標系ＲＣにおけるＺ軸のことを表す。ロボット座標系ＲＣにおける任意の位置は、Ｘ軸方向の位置ＤＸと、Ｙ軸方向の位置ＤＹと、Ｚ軸方向の位置ＤＺとにより特定できる。
【００１３】
本実施形態においては、Ｘ軸周りの回転の角度位置ＲＸによって表す。Ｙ軸周りの回転の角度位置ＲＹによって表す。Ｚ軸周りの回転の角度位置ＲＺによって表す。ロボット座標系ＲＣにおける任意の姿勢は、Ｘ軸周りの角度位置ＲＸ、Ｙ軸周りの角度位置ＲＹ、Ｚ軸周りの角度位置ＲＺにより表現できる。
【００１４】
本明細書において、「位置」と表記した場合、狭義の位置に加えて姿勢をも意味する。「力」と表記した場合、３次元空間において向きと大きさによって規定される狭義の力に加えて、角度位置ＲＸ、角度位置ＲＹ、角度位置ＲＺそれぞれの回転方向に作用するトルクも意味し得る。
【００１５】
アームＡｍと、力検出部２１と、エンドエフェクターＥＥとは、ケーブルによって、ロボット制御装置２５の動作制御装置３０と、通信可能に接続されている。
【００１６】
図２は、ロボット制御装置２５のブロック図である。ロボット制御装置２５は、動作制御装置３０と、教示装置５０とによって構成される。動作制御装置３０は、ユーザーによる教示作業によって設定された目標位置において、目標力が実現されるように、ロボット２０のアームＡｍを制御する。動作制御装置３０は、プロセッサーであるＣＰＵ（Central Processing Unit）３０ａやＲＡＭ（Random Access Memory）３０ｂやＲＯＭ（Read−Only Memory）３０ｃを備える。動作制御装置３０には、ロボット２０の制御を行うための制御プログラムがインストールされている。動作制御装置３０においては、これらのハードウェア資源と制御プログラムとが協働する。
【００１７】
教示装置５０は、動作制御装置３０に目標位置Ｓｔと目標力ｆｓｔとを教示する。教示装置５０は、ＣＰＵ５０ａ、ＲＡＭ５０ｂ、ＲＯＭ５０ｃ等を備える。教示装置５０には、動作制御装置３０に目標位置Ｓｔと目標力ｆｓｔとを教示するための教示プログラムがインストールされている。教示装置５０においては、これらのハードウェア資源と教示プログラムとが協働する。
【００１８】
図１に示すように、教示装置５０は、さらに、入力装置５７と、出力装置５８を備える。入力装置５７は、例えば、マウス、キーボード、タッチパネル等であり、ユーザーからの指示を受け付ける。出力装置５８は、例えば、ディスプレイやスピーカー等であり、ユーザーに各種の情報を出力する。
【００１９】
（２）ロボットシステムの動作モード：
図３は、教示装置５０を介してロボットシステム１に制御点の位置を教示する際の動作モードを示すフローチャートである。制御点は、本実施形態においてＴＣＰである。
【００２０】
教示装置５０は、まず、第１制御モードＭ０１でロボット２０を動作させて、ロボットシステム１に制御点の位置を教示する。第１制御モードＭ０１は、力検出部２１より力が検出されている間、検出された力に応じてエンドエフェクターＥＥを移動および回転させる制御モードである。第１制御モードＭ０１において、いわゆる「ダイレクトティーチ」が行われる。第１制御モードＭ０１において、ユーザーは、エンドエフェクターＥＥを手で動かして、エンドエフェクターＥＥを、３次元空間内の所望の位置に、所望の角度で配する。ただし、第１制御モードＭ０１においては、ユーザーは、厳密に所望の位置かつ所望の角度で、エンドエフェクターＥＥを配することができるわけではない。
【００２１】
第１制御モードＭ０１でロボット２０を動作させている間に、一定の条件が満たされた場合に、教示装置５０は、第２制御モードＭ０２でロボット２０を動作させる。第２制御モードＭ０２は、いわゆる「自動アライン」が行われる制御モードである。第２制御モードＭ０２によれば、ユーザーは、第１制御モードＭ０１に比べて、より所望の角度に近い角度で、エンドエフェクターＥＥを配することができる。第２制御モードＭ０２における制御内容については、後に説明する。第２制御モードＭ０２によって、エンドエフェクターＥＥの角度が調整された後も、ユーザーは、エンドエフェクターＥＥの位置を手で動かして調整することができる。
【００２２】
第１制御モードＭ０１および第２制御モードＭ０２で、おおよそユーザーの所望の位置に所望の角度で、エンドエフェクターＥＥが配された後、教示装置５０は、第３制御モードＭ０３でロボット２０を動作させる。第３制御モードＭ０３は、力検出部２１により力が検出された場合に、力が検出されている時間によらず、検出された力の向きに応じて、あらかじめ定められた向きにあらかじめ定められた量だけ、エンドエフェクターＥＥを移動または回転させる制御モードである。第３制御モードＭ０３において、いわゆる「タッチジョグ」が行われる。
【００２３】
第３制御モードＭ０３においては、検出された力がエンドエフェクターＥＥをある方向に移動させる力である場合には、Ｘ軸＋方向、Ｘ軸−方向、Ｙ軸＋方向、Ｙ軸−方向、Ｚ軸＋方向、Ｚ軸−方向のうち、検出された力の向きに最も近い方向が決定される。そして、決定された方向にあらかじめ定められた量だけ、エンドエフェクターＥＥが移動される。移動量はたとえば、０．１ｍｍとすることができる。
【００２４】
第３制御モードＭ０３においては、検出された力がエンドエフェクターＥＥをある方向に回転させる回転力である場合には、Ｘ軸を中心とする正転方向、Ｘ軸を中心とする逆転方向、Ｙ軸を中心とする正転方向、Ｙ軸を中心とする逆転方向、Ｚ軸を中心とする正転方向、Ｚ軸を中心とする逆転方向のうち、検出された回転力の回転の向きに最も近い回転方向が決定される。そして、決定された回転方向にあらかじめ定められた回転角度だけ、エンドエフェクターＥＥが回転される。回転角度はたとえば、０．５度とすることができる。
【００２５】
第３制御モードにおいて、ユーザーは、第１制御モードＭ０１に比べて、より所望の角度に近い位置および角度で、エンドエフェクターＥＥを配することができる。なお、第３制御モードＭ０３による制御においては、第２制御モードＭ０２への移行は行われない。
【００２６】
図４は、第１制御モードＭ０１における処理内容を示すフローチャートである。ステップＳ１１０において、第１制御モードＭ０１の実行に先立って、まず、入力装置５７やロボット２０を介して、教示装置５０に座標系が入力される。
【００２７】
図５および図６は、装置座標系ＭＣと、ワーク座標系ＷＣと、ロボット座標系ＲＣと、移動座標系ＨＣを示す図である。装置座標系ＭＣは、処理装置ＰＭに対して固定されている座標系である。ワーク座標系ＷＣは、ワークＷＫに対して固定されている座標系である。ロボット座標系ＲＣは、ロボット２０の支持台Ｂｓに対して固定されている座標系である。移動座標系ＨＣは、エンドエフェクターＥＥに対して固定されており、エンドエフェクターＥＥとともに移動および回転する座標系である。
【００２８】
ロボット座標系ＲＣを規定する互いに直交する３軸は、Ｘ軸、Ｙ軸、およびＺ軸である。装置座標系ＭＣを規定する互いに直交する３軸を、ｘｍ軸、ｙｍ軸、およびｚｍ軸で表す。ワーク座標系ＷＣを規定する互いに直交する３軸を、ｘｗ軸、ｙｗ軸、およびｚｗ軸で表す。移動座標系ＨＣを規定する互いに直交する３軸を、ｘｈ軸、ｙｈ軸、およびｚｈ軸で表す。装置座標系ＭＣの原点をｏｍで表す。ワーク座標系ＷＣの原点をｏｗで表す。移動座標系ＨＣの原点をｏｈで表す。本実施形態において、移動座標系ＨＣの原点ｏｈは、ＴＣＰと等しい。
【００２９】
本実施形態においては、図４のステップＳ１１０において、処理装置ＰＭに対して固定されている装置座標系ＭＣと、ワークＷＫに対して固定されているワーク座標系ＷＣと、が教示装置５０に入力される。装置座標系ＭＣとワーク座標系ＷＣとを総称して「対象座標系」と呼ぶことがある。
【００３０】
座標系は、教示装置５０内にあらかじめ用意されている座標系のデータを、そのまま、または入力装置５７を介してユーザーが改変することにより、設定されることができる。たとえば、処理装置ＰＭに対して固定されている装置座標系ＭＣの情報は、ロボットシステム１が装置座標系ＭＣとともに工場に設置された際に、あらかじめ装置座標系情報Ｉｍとして、ＲＡＭ５０ｂ内に格納しておくことができる。装置座標系情報Ｉｍを図２に示す。
【００３１】
同様に、ワークＷＫに対して固定されているワーク座標系ＷＣの情報は、教示装置５０において、ロボットシステム１が実行すべき作業が指定された際に、あらかじめワーク座標系情報Ｉｗとして、ＲＡＭ５０ｂ内に格納しておくことができる。ワーク座標系情報Ｉｗを図２に示す。
【００３２】
座標系は、ロボット２０のアームＡｍを介して、設定することができる。たとえば、図１に示すワークＷＫが有する平面上の３点に、エンドエフェクターＥＥの先端を順に配し、それら３点の３次元空間内の位置を教示装置５０に教示する。教示装置５０のＣＰＵ５０ａは、３点で規定される平面に垂直で互いに逆向きの２方向を決定する。ユーザーは、入力装置５７を介して、それら２方向のうち、一方の向きをｚｗ軸＋方向に指定する。その後、ユーザーは、たとえば、ｘｗ軸の向きを入力装置５７を介して入力し、さらに、左手系または右手系を入力装置５７を介して指定する。本実施形態においては、装置座標系ＭＣと、ワーク座標系ＷＣと、ロボット座標系ＲＣと、移動座標系ＨＣとは、いずれも右手系である。その後、ユーザーは、入力装置５７を介して、原点ｏｗの位置を決定する。
【００３３】
以上の処理により、ワーク座標系ＷＣを教示装置５０に入力することができる。装置座標系ＭＣも、同様の方法により教示装置５０に入力することができる。ステップＳ１１０の機能を実現する教示装置５０のＣＰＵ５０ａの機能部を、受付部５３として図２に示す。
【００３４】
図４のステップＳ１２０において、ユーザーは、エンドエフェクターＥＥを手で動かして、エンドエフェクターＥＥを、３次元空間内の所望の位置に、所望の角度で配する。ステップＳ１２０の機能を実現する教示装置５０のＣＰＵ５０ａの機能部を、動作制御部５４として図２に示す。
【００３５】
ステップＳ１３０において、教示装置５０は、あらかじめ定められた条件が満たされているか否かを判定する。本実施形態において、あらかじめ定められた条件は、（ｉ）移動座標系ＨＣの原点ｏｈ、すなわちＴＣＰが、装置座標系ＭＣの原点ｏｍから距離閾値Ｌｔｈｍ内の位置にあること、または（ｉｉ）移動座標系ＨＣの原点ｏｈ、すなわちＴＣＰがワーク座標系ＷＣの原点ｏｗから距離閾値Ｌｔｈｗ内の位置にあること、である。図５および図６において、原点ｏｍから距離閾値Ｌｔｈｍ内の範囲をＡｒｍで示す。原点ｏｗから距離閾値Ｌｔｈｗ内の範囲をＡｒｗで示す。
【００３６】
距離閾値Ｌｔｈｍ，Ｌｔｈｗは、ユーザーにより、入力装置５７を介して、互いに独立に設定されることができる。このような態様とすることにより、距離閾値が固定値である態様とは異なり、ユーザーは、第２制御モードＭ０２が実行される条件を、望むように設定することができる。本実施形態において、距離閾値Ｌｔｈｍ，Ｌｔｈｗは、０〜５０ｍｍの値とすることが好ましい。
【００３７】
図４のステップＳ１３０において、あらかじめ定められた条件が満たされている場合は、処理はステップＳ１４０に進む。あらかじめ定められた条件が満たされていない場合は、処理はステップＳ１２０に戻る。
【００３８】
ステップＳ１３０が設けられていることにより、第１制御モードＭ０１による制御において、移動座標系ＨＣの原点ｏｈとワーク座標系ＷＣの原点ｏｗとの距離が、距離閾値Ｌｔｈｍより大きい場合には、第２制御モードＭ０２による制御は実行されない。また、第１制御モードＭ０１による制御において、移動座標系ＨＣの原点ｏｈとワーク座標系ＷＣの原点ｏｗとの距離が、距離閾値Ｌｔｈｍより大きい場合には、第２制御モードＭ０２による制御は実行されない。
【００３９】
その結果、エンドエフェクターＥＥがワークＷＫや処理装置ＰＭから遠い位置にあり、ワークＷＫや処理装置ＰＭに対するエンドエフェクターＥＥの姿勢を正確に指定する必要がある状況である可能性が低い場合には、第２制御モードＭ０２によらない制御を、ロボット２０に実行させることができる。一方、エンドエフェクターＥＥがワークＷＫや処理装置ＰＭに近い位置にあり、ワークＷＫや処理装置ＰＭに対するエンドエフェクターＥＥの姿勢を正確に指定する必要がある状況である可能性が高い場合には、第２制御モードＭ０２による制御を、ステップＳ１４０を経て、ロボット２０に実行させることができる。
【００４０】
ステップＳ１４０において、教示装置５０は、装置座標系ＭＣのｚｍ軸またはワーク座標系ＷＣのｚｗ軸と、移動座標系ＨＣのｚｈ軸との相対角度θｈｏが角度閾値Ａｔｈ未満であるか否かを判定する。なお、装置座標系ＭＣのｚｍ軸またはワーク座標系ＷＣのｚｗ軸と、移動座標系ＨＣのｚｈ軸とがなす角θが９０度以上である場合は、ステップＳ１４０の処理において、（１８０−θ）の角度が、装置座標系ＭＣのｚｍ軸またはワーク座標系ＷＣのｚｗ軸と、移動座標系ＨＣのｚｈ軸との相対角度θｈｏとされる。ｚｍ軸またはｚｗ軸と、ｚｈ軸とがなす角θが９０度未満である場合は、ステップＳ１４０の処理において、θを、ｚｍ軸またはｚｗ軸と、ｚｈ軸との相対角度θｈｏとする。
【００４１】
角度閾値Ａｔｈは、入力装置５７を介して、あらかじめユーザーにより設定されることができる。このような態様とすることにより、角度閾値が固定値である態様とは異なり、ユーザーは、第２制御モードＭ０２が実行される条件を、望むように設定することができる。
【００４２】
本実施形態において、角度閾値Ａｔｈは４５度である。角度閾値Ａｔｈが４５度よりも大きい値に設定される態様においては、相対角度θｈｏが角度閾値Ａｔｈ未満であっても、移動座標系ＨＣのｚｈ軸の向きが、たとえば、ワーク座標系ＷＣのｚｗ軸よりも、ｘｗ軸や、ｙｗ軸に近い場合があり得る。移動座標系ＨＣのｚｈ軸の向きが、そのような向きである場合には、ユーザーは、移動座標系ＨＣのｚｈ軸の向きを、ワーク座標系ＷＣのｚｗ軸に平行にすることを望んでいない可能性がある。しかし、本実施形態においては、角度閾値Ａｔｈは４５度である。このため、角度閾値が４５度を超える場合に比べて、ユーザーが意図しない場合に第２制御モードＭ０２が実行される可能性を低減することができる。
【００４３】
ステップＳ１４０において、相対角度θｈｏが角度閾値Ａｔｈ未満でない場合は、処理はステップＳ１２０に戻る。このような処理を行うことにより、ユーザーがエンドエフェクターＥＥの向きをワークＷＫの向きに対して合わせようとしていない、と推定できる場合には、ステップＳ１５０の処理が行われないようにすることができる。
【００４４】
ステップＳ１４０において、相対角度θｈｏが角度閾値Ａｔｈ未満である場合は、処理はステップＳ１５０に進む。
【００４５】
ステップＳ１５０において、教示装置５０は、力検出部２１により検出される力によらず、移動座標系ＨＣのｚｈ軸との相対角度θｈｏが角度閾値Ａｔｈ未満である、装置座標系ＭＣのｚｍ軸またはワーク座標系ＷＣのｚｗ軸と、移動座標系ＨＣのｚｈ軸とが、平行になるように、エンドエフェクターＥＥの姿勢を制御する。
【００４６】
ロボットの教示において、ロボットの手先の向きを正確に所望の向きに一致させることは容易ではない。また、ロボットの教示に熟練していない者にとって、ロボットの手先と共に移動する座標系の向きを、対象物の向きに応じて設定することは容易ではない。しかし、ステップＳ１５０の処理を行うことにより、ユーザーは、エンドエフェクターＥＥの向きを望んだ向きと容易に一致させることができる。たとえば、ワーク座標系ＷＣのｚｗ軸を、エンドエフェクターＥＥがワークＷＫを保持する際の向きに指定することにより、エンドエフェクターＥＥがワークＷＫを保持する作業の教示において、ユーザーは、容易に、エンドエフェクターＥＥの向きを望んだ向きと一致させることができる。また、たとえば、装置座標系ＭＣのｚｍ軸を、エンドエフェクターＥＥで保持したワークＷＫを処理装置ＰＭ内に搬入する際の向きに指定することにより、エンドエフェクターＥＥがワークＷＫを処理装置ＰＭ内に搬入する作業の教示において、ユーザーは、容易に、エンドエフェクターＥＥの向きを望んだ向きと一致させることができる。
【００４７】
ステップＳ１５０において実行される制御が、第２制御モードＭ０２による制御である。ステップＳ１２０〜Ｓ１４０，Ｓ１６０において実行される制御は、第１制御モードＭ０１による制御である。ステップＳ１５０の機能を実現する教示装置５０のＣＰＵ５０ａの機能部は、動作制御部５４である。
【００４８】
ステップＳ１６０において、教示装置５０は、第１動作モードを終了すべき旨の指示が、入力装置５７を介して入力されたか否かを判定する。ステップＳ１６０において、第１動作モードを終了すべき旨の指示が入力されたと判定された場合は、処理は終了する。第１動作モードを終了すべき旨の指示が入力されていないと判定された場合は、処理はステップＳ１２０に戻る。ユーザーは、その後、たとえば、エンドエフェクターＥＥを、ワーク座標系ＷＣのｚｈ軸に沿って移動させたり、ｚｈ軸を中心に回転させたりして、エンドエフェクターＥＥの位置および姿勢を調整することができる。
【００４９】
（３）移動座標系の軸と対象座標系の軸とがなす角と角度閾値の大小判定：
図７は、図４のステップＳ１４０において、移動座標系ＨＣのｚｈ軸と、ワーク座標系ＷＣのｚｗ軸との相対角度θｈｗが角度閾値Ａｔｈ未満であるか否かを判定する際の処理の内容を示す概念図である。ワーク座標系ＷＣのｚｗ軸を中心軸とし、中心軸と側面がなす角、すなわち、中心軸と母線がなす角の大きさがＡｔｈである円錐Ｃｗを定める。この円錐Ｃｗを、回転させずに、円錐Ｃｗの頂点が移動座標系ＨＣの原点ｏｈと一致する位置に移動させる。このとき、円錐Ｃｗの側面で囲まれた範囲内に移動座標系ＨＣのｚｈ軸がある場合、移動座標系ＨＣのｚｈ軸と、ワーク座標系ＷＣのｚｗ軸との相対角度θｈｗは、角度閾値Ａｔｈ未満である。一方、円錐Ｃｗの側面で囲まれた範囲内に移動座標系ＨＣのｚｈ軸がない場合、移動座標系ＨＣのｚｈ軸と、ワーク座標系ＷＣのｚｗ軸との相対角度θｈｗは、角度閾値Ａｔｈより大きい。
【００５０】
ステップＳ１４０のより具体的な処理としては、以下のような処理を採用することができる。ロボット座標系ＲＣで、ｚｈ軸方向の単位ベクトルＶｚｈと、ｚｗ軸方向の単位ベクトルＶｚｗとを定める。移動座標系ＨＣのｚｈ軸と、ワーク座標系ＷＣのｚｗ軸との相対角度θｈｗは、以下の式（１）で求めることができる。
θｈｗ＝ａｒｃｃｏｓ（Ｖｚｈ・Ｖｚｗ）  ・・・  （１）
【００５１】
相対角度θｈｗがＡｔｈ未満であれば、図４のステップＳ１４０の判定結果は、Ｙｅｓとなる。移動座標系ＨＣのｚｈ軸と、装置座標系ＭＣのｚｍ軸との相対角度θｈｍも、同様の処理で求めることができる。本明細書では、移動座標系ＨＣのｚｈ軸とワーク座標系ＷＣのｚｗ軸との相対角度θｈｗと、移動座標系ＨＣのｚｈ軸と装置座標系ＭＣのｚｍ軸との相対角度θｈｍと、を総称して、相対角度θｈｏと呼ぶ。
【００５２】
本実施形態におけるエンドエフェクターＥＥを「可動部」とも呼ぶ。ワークＷＫおよび処理装置ＰＭを「対象」とも呼ぶ。動作制御部５４を「制御部」とも呼ぶ。移動座標系ＨＣのｚｈ軸を「第１軸」とも呼ぶ。装置座標系ＭＣのｚｍ軸およびワーク座標系ＷＣのｚｗ軸を「第２軸」とも呼ぶ。
【００５３】
Ｂ．第２実施形態：
第２実施形態においては、図４のステップＳ１３０において判定される条件の内容が、第１実施形態とは異なる。第２実施形態の他の点は、第１実施形態と同じである。
【００５４】
第１実施形態においては、ステップＳ１３０において判定される条件は、（ｉ）移動座標系ＨＣの原点ｏｈが、装置座標系ＭＣの原点ｏｍから距離閾値Ｌｔｈｍ内の位置にあること、または（ｉｉ）移動座標系ＨＣの原点ｏｈ、すなわちＴＣＰがワーク座標系ＷＣの原点ｏｗから距離閾値Ｌｔｈｗ内の位置にあること、である。これに対して、第２実施形態においては、ステップＳ１３０において判定される条件は、さらに、（ｉｉｉ）第２制御モードＭ０２を実行する旨の指示が、あらかじめ入力装置５７を介して、教示装置５０に入力されていること、を含む。第２制御モードＭ０２を実行する旨の指示を受け付ける教示装置５０のＣＰＵ５０ａの機能部は、受付部５３である。
【００５５】
第２実施形態においては、条件（ｉ）および条件（ｉｉｉ）が満たされるか、条件（ｉｉ）および条件（ｉｉｉ）が満たされる場合、図４のステップＳ１３０の判定結果はＹｅｓとなる。すなわち、第２制御モードＭ０２を実行する旨の指示が入力されていない場合には、ステップＳ１５０の処理、すなわち、第２制御モードＭ０２は実行されない。
【００５６】
第２実施形態によれば、ユーザーは、望まない場合には、第２制御モードＭ０２を実行する旨の指示を教示装置５０に入力しないことにより、第２制御モードＭ０２による制御を教示装置５０に実行させないようにすることができる。
【００５７】
Ｃ．第３実施形態：
第３実施形態においては、図４のステップＳ１１０において入力される座標系が、第１実施形態とは異なる。第２実施形態の他の点は、第１実施形態と同じである。
【００５８】
第１実施形態においては、ステップＳ１１０において入力される座標系は、処理装置ＰＭに対して固定されている装置座標系ＭＣと、ワークＷＫに対して固定されているワーク座標系ＷＣである。これに対して、第３実施形態においては、ステップＳ１１０において、さらに、エンドエフェクターＥＥに対して固定されており、エンドエフェクターＥＥとともに移動および回転する移動座標系ＨＣが入力される。
【００５９】
移動座標系ＨＣは、たとえば、リンクＬ６が伸びる方向をｚｈ軸とし、ｚｈ軸に対して直交する２軸をｘｈ軸、ｙｈ軸とすることができる。ユーザーは、たとえば、以下のような処理で、移動座標系ＨＣを教示装置５０に入力することができる。ユーザーは、ｘｈ軸の向きを入力装置５７を介して入力し、さらに、左手系または右手系を入力装置５７を介して指定する。その後、ユーザーは、入力装置５７を介して、原点ｏｈの位置を指定する。以上の処理により、移動座標系ＨＣは、教示装置５０に入力されることができる。このような機能を実現する教示装置５０のＣＰＵ５０ａの機能部は、受付部５３である。
【００６０】
第３実施形態によれば、ロボット２０に行わせる作業の内容や、ロボット２０に行わせる作業に応じて交換されるエンドエフェクターＥＥの構成に応じて、ユーザーが移動座標系ＨＣを設定することができる。
【００６１】
Ｄ．第４実施形態：
上記実施形態においては、図４のステップＳ１５０において、以下のような処理が行われる。すなわち、教示装置５０は、力検出部２１により検出される力によらず、移動座標系ＨＣのｚｈ軸との相対角度θｈｏが角度閾値Ａｔｈ未満である、装置座標系ＭＣのｚｍ軸またはワーク座標系ＷＣのｚｗ軸と、移動座標系ＨＣのｚｈ軸とが、平行になるように、エンドエフェクターＥＥの姿勢を制御する。しかし、あらかじめ定められた力閾値以上の大きさの力、またはあらかじめ定められたトルク閾値以上の大きさのトルクが、力検出部２１によって検出された場合は、そのような力が検出されていないときとは異なる動きをロボット２０にさせる制御を行うこともできる。第４実施形態は、ステップＳ１５０の処理が第１実施形態とは異なる。第４実施形態の他の点は、第１実施形態と同じである。
【００６２】
図８は、第４実施形態において、図４のステップＳ１４０の判定結果がＹｅｓである場合に、ステップＳ１５０に代わって行われる処理を示すフローチャートである。ステップＳ１５２においては、教示装置５０は、移動座標系ＨＣのｚｈ軸との相対角度θｈｏが角度閾値Ａｔｈ未満である、装置座標系ＭＣのｚｍ軸またはワーク座標系ＷＣのｚｗ軸と、移動座標系ＨＣのｚｈ軸とが、平行になるように、エンドエフェクターＥＥの姿勢を制御する。その際、教示装置５０は、同時に、力検出部２１により検出される力およびトルクがいずれも０となるように、ロボット２０のアームＡｍを制御する。すなわち、目標力が０であり、目標トルクが０である力制御が行われる。このような制御の結果、達成されるエンドエフェクターＥＥの動作を、「倣い動作」という。
【００６３】
ステップＳ１５２の処理において、ロボット２０のエンドエフェクターＥＥが他の構成に触れなければ、力検出部２１により検出される力およびトルクは、いずれも０である。しかし、ステップＳ１５２において、装置座標系ＭＣのｚｍ軸またはワーク座標系ＷＣのｚｗ軸と、移動座標系ＨＣのｚｈ軸とが、平行になるように、エンドエフェクターＥＥの姿勢を制御しているときに、エンドエフェクターＥＥが他の構成に接触した場合には、力検出部２１は力やトルクを検出する。そのような場合には、教示装置５０は、それまで駆動していたアームＡｍの各モーターに対する回転の指令とは異なる指令を、アームＡｍの各モーターに与えて、力検出部２１により検出される力およびトルクがいずれも０となるようにしつつ、エンドエフェクターＥＥの姿勢を制御する。
【００６４】
ステップＳ１５８において、教示装置５０は、力検出部２１により検出される力およびトルクがいずれも０でありつつ、移動座標系ＨＣのｚｈ軸との相対角度θｈｏが角度閾値Ａｔｈ未満であった装置座標系ＭＣのｚｍ軸またはワーク座標系ＷＣのｚｗ軸と、移動座標系ＨＣのｚｈ軸とが、平行となったか否かを判定する。前者の判断は、目標力０および目標トルク０が達成されているか否かの判断である。後者の判断については、より具体的には、教示装置５０は、装置座標系ＭＣのｚｍ軸またはワーク座標系ＷＣのｚｗ軸と、移動座標系ＨＣのｚｈ軸との相対角度θｈｏの大きさが、あらかじめ定められた終了閾値角度Ａｔｈｅ以下となったか否かを判定する（０＜Ａｔｈｅ＜Ａｔｈ）。終了閾値角度Ａｔｈｅは、装置座標系ＭＣのｚｍ軸またはワーク座標系ＷＣのｚｗ軸と、移動座標系ＨＣのｚｈ軸とが、教示している作業において平行と見なせる程度に、十分小さく設定される。
【００６５】
目標力０および目標トルク０が達成されつつ、相対角度θｈｏの大きさが、終了閾値角度Ａｔｈｅ以下である場合には、処理は、図４のステップＳ１６０に進む。そうではない場合には、処理は、ステップＳ１５２に戻る。
【００６６】
このような態様とすれば、図１に示す処理装置ＰＭおよびワークＷＫや、ユーザーと、エンドエフェクターＥＥとが接触した場合に、処理装置ＰＭやワークＷＫを毀損したり、ユーザーを傷つけることなく、装置座標系ＭＣのｚｍ軸またはワーク座標系ＷＣのｚｗ軸と、移動座標系ＨＣのｚｈ軸とが、平行になるように、エンドエフェクターＥＥの姿勢を制御することができる。また、安全を確保するため、他の構成と接触した場合には、ロボット２０が停止してしまう制御態様に比べて、効率的にロボット２０に教示を行うことができる。
【００６７】
さらに、第１のワークに設けられた所定の深さを有する穴に、第２のワークを挿入する作業をロボットに教示する場合に、本実施形態の制御を行うこととすれば、以下のような利点が得られる。すなわち、力検出部２１により検出される力およびトルクがいずれも０となるようにしつつ、エンドエフェクターＥＥの姿勢が制御される結果、第１の対象物に設けられた穴に第２の対象物をスムーズに挿入できる位置および姿勢を、自動的に、エンドエフェクターＥＥに取らせることができる。このため、第１のワークに設けられた穴に第２のワークを挿入する作業を、容易に、ロボット２０に教示することができる。
【００６８】
Ｅ．第５実施形態：
（１）図９は、複数のプロセッサーによってロボットの制御装置が構成される一例を示す概念図である。この例では、ロボット２０およびその動作制御装置３０の他に、パーソナルコンピューター４００，４１０と、ＬＡＮなどのネットワーク環境を介して提供されるクラウドサービス５００とが描かれている。パーソナルコンピューター４００，４１０は、それぞれプロセッサーとメモリーとを含んでいる。また、クラウドサービス５００においてもプロセッサーとメモリーを利用可能である。プロセッサーは、コンピューター実行可能な命令を実行する。これらの複数のプロセッサーの一部または全部を利用して、動作制御装置３０および教示装置５０を含むロボット制御装置２５を実現することが可能である。また、各種の情報を記憶する記憶部も、これらの複数のメモリーの一部または全部を利用して、実現することが可能である。
【００６９】
（２）図１０は、複数のプロセッサーによってロボットの制御装置が構成される他の例を示す概念図である。この例では、ロボット２０の動作制御装置３０が、ロボット２０の中に格納されている点が図９と異なる。この例においても、複数のプロセッサーの一部または全部を利用して、動作制御装置３０および教示装置５０を含むロボット制御装置２５を実現することが可能である。また、各種の情報を記憶する記憶部も、複数のメモリーの一部または全部を利用して、実現することが可能である。
【００７０】
Ｆ．他の実施形態：
Ｆ１．他の実施形態１：
（１）上記実施形態においては、力検出部２１として、並進３軸方向の力成分と、回転３軸回りのモーメント成分の６成分を同時に検出することができる６軸力覚センサーが、アームＡｍの先端に取りつけられている。しかし、力検出部は、たとえば、互いに直交する３個の検出軸上の力の大きさを検出する３軸センサーとすることもできる。また、力検出部は、直交する３軸のジャイロと３方向の加速度計によって、直交する３軸の角度または角速度と、加速度とを検出することができる慣性計測装置（ＩＭＵ：Inertial Measurement Unit）とすることもできる。また、力検出部は、関節に備えられたトルクセンサーで構成することもできる。さらに、力検出部は、関節に備えられたモーターの電流を計測し、その電流値からトルクを計算する装置として構成することもできる。
【００７１】
力検出部は、支持台ＢｓとリンクＬ１の間など、アームＡｍの先端以外のロボットの他の部位に設けられていてもよい。さらに、ロボットの各関節に配されたモーターのトルクから、ＴＣＰにおける３軸方向の力や３軸周りのトルクを計算して、力検出部の機能を実現することもできる。
【００７２】
（２）上記実施形態においては、対象座標系は、ワークＷＫと処理装置ＰＭに対して固定されている。しかし、対象座標系は、ワークＷＫが置かれる台や、ワークＷＫを搬送するベルトコンベア等の搬送手段に含まれる一点に対して固定されている態様とすることもできる。なお、本明細書において、「対象座標系がＡに対して固定されている」という場合、対象座標系の相対位置および相対姿勢が、Ａに対して固定されていればよい。そして、「対象座標系がＡに対して固定されている」ことは、対象座標系の原点がＡの表面や内部にあることを必ずしも意味しない。すなわち、対象座標系の原点は、Ａから離れた位置にあってもよい。
【００７３】
（３）上記実施形態においては、ワークＷＫの平面に垂直な方向が対象座標系としてのワーク座標系ＷＣのｚｗ軸とされた。しかし、対象座標系の軸は、他の基準で設定することもできる。たとえば、重力方向上側を対象座標系のｚ軸とすることもできる。
【００７４】
（４）上記実施形態においては、相対角度に関するステップＳ１４０の判定に先立って、ステップＳ１３０において、他の条件が判定される。しかし、他の条件の判定は、相対角度に関する判定の後に行われてもよい。相対角度に関するステップＳ１４０の判定の前後で、他の条件の判定が行われてもよい。
【００７５】
たとえば、ステップＳ１３０の処理が、ステップＳ１４０の前ではなく、ステップＳ１４０の後に行われてもよい。また、第２制御モードＭ０２を実行する旨の指示が、入力装置５７を介して教示装置５０に入力されたか否かが、相対角度に関するステップＳ１４０の判定の後に行われてもよい。そのような態様においては、第２制御モードＭ０２を実行する旨の指示が入力されていない場合には、処理はステップＳ１２０に戻り、第２制御モードＭ０２を実行する旨の指示が入力された場合には、処理はステップＳ１５０に進む態様とすることもできる。
【００７６】
（５）上記実施形態では、装置座標系ＭＣのｚｍ軸またはワーク座標系ＷＣのｚｗ軸と、移動座標系ＨＣのｚｈ軸とがなす角θが９０度以上である場合は、ステップＳ１４０の処理において、（１８０−θ）の角度が、装置座標系ＭＣのｚｍ軸またはワーク座標系ＷＣのｚｗ軸と、移動座標系ＨＣのｚｈ軸との相対角度θｈｏとされる。しかし、そのような処理を行わず、移動座標系の第１軸と対象座標系の第２軸のなす角をそのまま両者の相対角度として、ステップＳ１４０の処理を行うこともできる。
【００７７】
（６）上記実施形態では、図４のステップＳ１５０において、移動座標系ＨＣのｚｈ軸が、ワーク座標系ＷＣのｚｗ軸または装置座標系ＭＣのｚｍ軸と平行になるように、エンドエフェクターＥＥの姿勢が制御される。しかし、移動座標系を規定する３軸のうち、他の軸に合わせる対象である第１軸は、ｘｈ軸やｙｈ軸とすることもできる。また、対象座標系を規定する３軸のうち、移動座標系の第１軸がそれに合わせられる対象である第２軸は、ｘｍ軸、ｙｍ軸、ｘｗ軸、ｙｍ軸など、他の軸とすることもできる。
【００７８】
（７）上記実施形態では、図４のステップＳ１５０において、移動座標系ＨＣのｚｈ軸が、ワーク座標系ＷＣのｚｗ軸または装置座標系ＭＣのｚｍ軸と平行になるように、エンドエフェクターＥＥの姿勢が制御される。しかし、可動部は、移動座標系ＨＣのｚｈ軸が、ワーク座標系ＷＣのｚｗ軸または装置座標系ＭＣのｚｍ軸と、厳密に平行になるようにエンドエフェクターＥＥの姿勢が制御されなくてもよい。すなわち、移動座標系の第１軸と、対象座標系の第２軸と、の相対角度の大きさがより０に近づくように、すなわち、相対角度の大きさがより小さくなるように、可動部の姿勢が制御されればよい。
【００７９】
Ｆ２．他の実施形態２：
（１）上記第１実施形態においては、ステップＳ１１０において入力される座標系は、処理装置ＰＭに対して固定されている装置座標系ＭＣと、ワークＷＫに対して固定されているワーク座標系ＷＣである。そして、第３実施形態においては、エンドエフェクターＥＥに対して固定されている移動座標系ＨＣが入力される。しかし、これらの座標系のうち１以上が教示装置５０を含むロボット制御装置２５に入力されない態様とすることもできる。ただし、装置座標系ＭＣやワーク座標系ＷＣなどの対象座標系の少なくとも一つは、制御装置としてのロボット制御装置２５に入力されることが好ましい。
【００８０】
（２）また、互いに平行になるようにエンドエフェクターＥＥが制御される、移動座標系の軸と対象座標系の軸を、ユーザーから受け付ける態様とすることもできる。そのような態様においては、ユーザーは、たとえば、移動座標系ＨＣのｘｈ軸、ｙｈ軸およびｚｈ軸の中から任意の軸を、対象座標系の軸に平行に配する軸として選択して、制御装置に入力することができる。また、ユーザーは、たとえば、装置座標系ＭＣのｘｍ軸、ｙｍ軸およびｚｍ軸、ならびにワーク座標系ＷＣのｘｗ軸、ｙｗ軸およびｚｗ軸の中から、任意の軸を、移動座標系ＨＣの軸が平行に配される相手方の軸として選択して、制御装置に入力することができる。ただし、互いに平行になるようにエンドエフェクターＥＥが制御される二つの軸のうちの一方または両方が、あらかじめ固定されており、ユーザーから入力されない態様とすることもできる。
【００８１】
Ｆ３．他の実施形態３：
上記実施形態において、角度閾値Ａｔｈは、４５度である。しかし、角度閾値は、１５度や３０度など、４５度未満の値であってもよいし、４５度以上の値であってもよい。ただし、角度閾値Ａｔｈは、３０度未満であることが好ましく、１５度未満であることがより好ましい。
【００８２】
Ｆ４．他の実施形態４：
上記実施形態において、角度閾値Ａｔｈは、入力装置５７を介してユーザーによって指定される。しかし、角度閾値は、固定値であってもよい。また、角度閾値Ａｔｈとしては、処理装置やワークなどの対象ごとに異なる値が設定されることもできる。さらに、角度閾値Ａｔｈがユーザーによって指定される態様において、あらかじめ角度閾値Ａｔｈの上限が定められている態様とすることもできる。そのような態様においては、角度閾値Ａｔｈの上限は、４５度以下であることが好ましい。
【００８３】
Ｆ５．他の実施形態５：
第１実施形態においては、ステップＳ１３０において判定される条件は、（ｉ）移動座標系ＨＣの原点ｏｈが、装置座標系ＭＣの原点ｏｍから距離閾値Ｌｔｈｍ内の位置にあること、または（ｉｉ）移動座標系ＨＣの原点ｏｈ、すなわちＴＣＰが、ワーク座標系ＷＣの原点ｏｗから距離閾値Ｌｔｈｗ内の位置にあること、である。そして、第２実施形態においては、ステップＳ１３０において判定される条件は、さらに、（ｉｉｉ）第２制御モードＭ０２を実行する旨の指示が、あらかじめ入力装置５７を介して、教示装置５０に入力されていること、である。
【００８４】
しかし、第２制御モードの実行が許可されるか否かを定める条件は、さらに他の条件を含んでもよい。たとえば、第２制御モードの実行が許可されるか否かを定める条件は、ワークＷＫの外縁からあらかじめ定められた距離の範囲内に移動座標系の原点があることや、処理装置ＰＭの外縁からあらかじめ定められた距離の範囲内に移動座標系の原点があることを、含むことができる。また、移動座標系の原点に代えて、エンドエフェクターの先端の位置を、上記各条件の判断基準とすることもできる。また、上記のいずれかの下位条件を含まない態様とすることもできる。
【００８５】
一方、対象座標系の第２軸と移動座標系の第１軸との相対角度が、角度閾値未満である場合には、常に第２制御モードによる制御が行われる態様とすることもできる。すなわち、あらかじめ定められた条件は、常に満たされる条件とすることもできる。
【００８６】
Ｆ６．他の実施形態６：
上記実施形態において、距離閾値Ｌｔｈｗ，Ｌｔｈｍは、入力装置５７を介してユーザーによって指定される。しかし、距離閾値は、対象物に応じて定められる固定値であってもよい。また、対象物によらず定められている一つの固定値であってもよい。それらの態様においては、距離閾値は、０〜４０ｍｍとすることが好ましく、０〜３０ｍｍとすることがさらに好ましい。
【００８７】
Ｆ７．他の実施形態７：
第１実施形態においては、ステップＳ１３０において判定される条件は、（ｉ）移動座標系ＨＣの原点ｏｈが、装置座標系ＭＣの原点ｏｍから距離閾値Ｌｔｈｍ内の位置にあること、または（ｉｉ）移動座標系ＨＣの原点ｏｈ、すなわちＴＣＰがワーク座標系ＷＣの原点ｏｗから距離閾値Ｌｔｈｗ内の位置にあること、である。そして、第２実施形態において、ステップＳ１３０において判定される条件は、さらに、（ｉｉｉ）第２制御モードＭ０２を実行する旨の指示が、あらかじめ入力装置５７を介して、教示装置５０に入力されていること、である。
【００８８】
しかし、これらの下位条件のうち１以上がステップＳ１３０の判定条件に含まれない態様とすることもできる。ただし、上記各条件の少なくとも一つは、第２制御モードの実行か許可されるか否かの判定条件に含まれることが好ましい。
【００８９】
また、第２制御モードＭ０２を実行するか否かの指示を、ユーザーから受け付けず、あらかじめ定められた条件が満たされる場合は、自動的に第２制御モードＭ０２が実行される態様とすることもできる。
【００９０】
Ｆ８．他の実施形態８：
（１）上記実施形態においては、第１制御モードＭ０１の制御が実行された後、第３制御モードＭ０３による制御が実行される。しかし、第３制御モードＭ０３による制御が実行されない態様とすることもできる。そのような態様においても、第２制御モードＭ０２による制御が実行されることにより、望ましい方向に可動部としてのエンドエフェクターの向きを一致させることができる。ただし、ワークや処理装置、ロボットの実際の形状や寸法、配置の、設計値からのズレを反映して適切な制御を行うために、第３制御モードＭ０３による制御が実行されることが好ましい。
【００９１】
（２）上記実施形態においては、第３制御モードＭ０３におけるあらかじめ定められた移動量は０．１ｍｍであり、あらかじめ定められた回転角度は０．５度である。しかし、第３制御モードＭ０３におけるあらかじめ定められた移動量は０．０５ｍｍ、０．３ｍｍ、０．５ｍｍ、など、たの値とすることもできる。ただし、第３制御モードＭ０３におけるあらかじめ定められた移動量は１ｍｍ未満であることが好ましい。また、第３制御モードＭ０３におけるあらかじめ定められた回転角度は０．２度、１度、２度など、たの値とすることもできる。ただし、第３制御モードＭ０３におけるあらかじめ定められた回転角度は１度未満であることが好ましい。
【００９２】
Ｇ．さらに他の形態：
本発明は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本発明は、以下の形態（aspect）によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本発明の課題の一部又は全部を解決するために、あるいは、本発明の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【００９３】
（１）本発明の一形態によれば、可動部と、前記可動部に加えられた力を検出する力検出部と、を備えるロボットを制御する制御装置が提供される。この制御装置は：前記ロボットの制御を実行する制御部と；対象に対して固定されている対象座標系をユーザーから受け付ける受付部と、を備える。前記制御部は：前記力検出部により力が検出されている間、前記力検出部により検出された力に応じて前記可動部を移動および回転させる第１制御モードと；前記第１制御モードによる制御において、前記可動部に対して固定されている移動座標系のあらかじめ定められた第１軸と、前記対象座標系のあらかじめ定められた第２軸と、の相対角度が角度閾値未満になった場合に、あらかじめ定められた条件の下で前記相対角度の大きさが０に近づくように前記可動部を回転させる第２制御モードと、を有する。
このような態様とすれば、ユーザーは、対象座標系の第２軸を望ましい向きに設定することにより、第２制御モードにおいて、容易に、ロボットの可動部の向きを望んだ向きと一致させることができる。
【００９４】
（２）上記形態において、前記受付部が、前記ユーザーから、前記第１軸および第２軸を受け付ける、態様とすることもできる。このような態様とすれば、ロボットに行わせる作業の内容や、可動部の構成に応じて、ユーザーが第１軸および第２軸を設定することができる。
【００９５】
（３）上記形態において、前記角度閾値が、０より大きく４５度未満である、態様とすることもできる。このような態様とすれば、角度閾値が４５度を超える態様に比べて、ユーザーが望んでいない場合に第２制御モードが実行される可能性を低減することができる。
【００９６】
（４）上記形態において、前記受付部が、前記角度閾値をユーザーから受け付ける、態様とすることもできる。このような態様とすれば、角度閾値が固定値である態様に比べて、ユーザーは、第２制御モードが実行される条件を、望むように設定することができる。
【００９７】
（５）上記形態において、前記条件は、前記第１制御モードによる制御において、前記移動座標系の原点と前記対象座標系の原点との距離が、距離閾値より大きいか否かを含む、態様とすることもできる。
このような態様とすれば、作業の対象物上または作業の対象物内に対象座標系の原点を設定することにより、ロボットの可動部が対象物から遠い場合に、第２制御モードによる制御を制御部に実行させないようにすることもできる。
その結果、ロボットの可動部が対象物から遠い位置にあり、対象物に対する可動部の姿勢を正確に指定する必要がある状況にある可能性が低い場合には、第２制御モードによらない制御を、ロボットに実行させることができる。一方、ロボットの可動部が対象物に近い位置にあり、対象物に対する可動部の姿勢を正確に指定する必要がある状況にある可能性が高い場合には、第２制御モードによる制御を、ロボットに実行させることができる。
【００９８】
（６）上記形態において、前記受付部が、前記距離閾値をユーザーから受け付ける、態様とすることもできる。このような態様とすれば、距離閾値が固定値である態様に比べて、ユーザーは、第２制御モードが実行される条件を、望むように設定することができる。
【００９９】
（７）上記形態において、前記受付部が、前記第２制御モードを実行するか否かの指示をユーザーから受け付け；前記条件は、前記第２制御モードを実行する旨の指示が前記受付部に入力されているか否かを含む、態様とすることもできる。このような態様とすれば、ユーザーは、望まない場合には、第２制御モードを実行する旨の指示を受付部に入力しないことにより、第２制御モードによる制御を制御部に実行させないようにすることができる。
【０１００】
（８）上記形態において、前記制御部が、前記力検出部により力が検出された場合に、前記検出された力の向きに応じて、あらかじめ定められた向きにあらかじめ定められた量だけ、前記可動部を移動または回転させる第３制御モードを有し；前記第３制御モードによる制御においては、前記第２制御モードは行われない、態様とすることもできる。このような態様とすれば、ユーザーは、ロボットの教示において、第２制御モードと第３制御モードとを、目的に応じて使い分けることができる。
【０１０１】
（９）本発明の他の形態によれば、上記形態のいずれか１項に記載のロボット制御装置と；前記ロボット制御装置によって制御される前記ロボットと；を備えるロボットシステムが提供される。
【０１０２】
本発明は、以外の種々の形態で実現することも可能である。例えば、ロボットや、ロボットの制御方法、その制御方法を実現するコンピュータプログラム、そのコンピュータプログラムを記録した一時的でない記録媒体等の形態で実現することができる。
【０１０３】
上述した本発明の各形態の有する複数の構成要素はすべてが必須のものではなく、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、適宜、前記複数の構成要素の一部の構成要素について、その変更、削除、新たな他の構成要素との差し替え、限定内容の一部削除を行うことが可能である。また、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、上述した本発明の一形態に含まれる技術的特徴の一部又は全部を上述した本発明の他の形態に含まれる技術的特徴の一部又は全部と組み合わせて、本発明の独立した一形態とすることも可能である。
【符号の説明】
【０１０４】
１…ロボットシステム、２０…ロボット、２１…力検出部、２５…ロボット制御装置、３０…動作制御装置、３０ａ…ＣＰＵ、３０ｂ…ＲＡＭ、３０ｃ…ＲＯＭ、５０…教示装置、５０ａ…ＣＰＵ、５０ｂ…ＲＡＭ、５０ｃ…ＲＯＭ、５３…受付部、５４…動作制御部、５７…入力装置、５８…出力装置、４００，４１０…パーソナルコンピューター、５００…クラウドサービス、Ａｍ…アーム、Ａｒｍ…原点ｏｍから距離閾値Ｌｔｈｍ内の範囲、Ａｒｗ…原点ｏｗから距離閾値Ｌｔｈｗ内の範囲、Ａｔｈ…角度閾値、Ｂｓ…支持台、Ｃｗ…ｚｗ軸を中心軸とし中心軸と側面がなす角の大きさがＡｔｈである円錐、ＥＥ…エンドエフェクター、ＨＣ…移動座標系、Ｉｍ…装置座標系情報、Ｉｗ…ワーク座標系情報、Ｊ１〜Ｊ６…関節、Ｌ１〜Ｌ６…リンク、Ｌｔｈｍ，Ｌｔｈｗ…距離閾値、Ｍ０１…第１制御モード、Ｍ０２…第２制御モード、Ｍ０３…第３制御モード、ＭＣ…装置座標系、ＰＭ…処理装置、ＲＣ…ロボット座標系、ＲＸ…Ｘ軸まわりの角度位置、ＲＹ…Ｙ軸まわりの角度位置、ＲＺ…Ｚ軸まわりの角度位置、ＷＣ…ワーク座標系、ＷＫ…ワーク、Ｘ…ロボット座標系ＲＣのｘ軸、Ｙ…ロボット座標系ＲＣのｙ軸、Ｚ…ロボット座標系ＲＣのｚ軸、ｏｈ…移動座標系の原点、ｏｍ…装置座標系の原点、ｏｗ…ワーク座標系の原点、ｘｍ…装置座標系ＭＣのｘ軸、ｙｍ…装置座標系ＭＣのｙ軸、ｚｍ…装置座標系ＭＣのｚ軸、ｘｈ…移動座標系ＨＣのｘ軸、ｙｈ…移動座標系ＨＣのｙ軸、ｚｈ…移動座標系ＨＣのｚ軸、ｘｗ…ワーク座標系ＷＣのｘ軸、ｙｗ…ワーク座標系ＷＣのｙ軸、ｚｗ…ワーク座標系ＷＣのｚ軸
【図１】
2019209386.tif 000003
【図２】
2019209386.tif 000004
【図３】
2019209386.tif 000005
【図４】
2019209386.tif 000006
【図５】
2019209386.tif 000007
【図６】
2019209386.tif 000008
【図７】
2019209386.tif 000009
【図８】
2019209386.tif 000010
【図９】
2019209386.tif 000011
【図１０】
2019209386.tif 000012