(57)【要約】【課題】ロボットに短時間、外力が加えられたことに起因して、手先が一定量、移動している間に、ロボットと他の構成との衝突を検知する。【解決手段】力検出部によって検出された第１検出力の大きさが第１力閾値より大きい時間が、０より大きく第１時間閾値より短い時間、継続したという第１条件が、教示において満たされた場合に、第１検出力の向きに応じた向きに、所定量で、可動部を移動する。力検出部によって検出された第２検出力の大きさが、第１力閾値より大きい第２力閾値より大きいという第２条件が、エンドエフェクターの移動中に満たされた場合に、可動部を減速または停止する。【選択図】図５
2020069552.tif 000002
【特許請求の範囲】
【請求項１】
基台と、前記基台に対して移動可能に設けられた可動部と、前記可動部に加えられた力を検出する力検出部と、を備えるロボットと、
前記ロボットの教示において、前記力検出部によって検出された力に応じて前記可動部を制御する制御部と、を備え、
前記制御部は、
前記力検出部によって検出された第１検出力の大きさが第１力閾値より大きい時間が、０より大きく第１時間閾値より短い時間、継続したという第１条件が、前記教示において満たされた場合に、前記第１検出力の向きに応じた向きに、あらかじめ定められた量で、前記可動部を移動し、
前記力検出部によって検出された第２検出力の大きさが、前記第１力閾値より大きい第２力閾値より大きいという第２条件が、前記可動部の前記移動中に満たされた場合に、前記可動部を減速または停止する、ロボットシステム。
【請求項２】
請求項１に記載のロボットシステムであって、
前記制御部は、
前記第１検出力の大きさが、前記第１力閾値より小さい第３力閾値より大きい時間が、第２時間閾値より長い継続時間、継続したという第３条件が、前記教示において満たされた場合に、前記第１検出力の向きに応じた向きの前記あらかじめ定められた量の前記可動部の前記移動を、前記継続時間中、繰り返し実行する、ロボットシステム。
【請求項３】
請求項２に記載のロボットシステムであって、
前記制御部は、
前記第１条件または前記第３条件が満たされたか否かを、前記教示において、第１周期で繰り返し判定し、
前記第２条件が満たされたか否かを、前記可動部の前記移動中に、第２周期で繰り返し判定し、
前記第１周期は、前記第２周期よりも長い、ロボットシステム。
【請求項４】
請求項２または３に記載のロボットシステムであって、
前記力検出部は、圧電素子を備える力検出部を含み、
前記制御部は、前記教示において、前記圧電素子を備える力検出部の出力に基づいて、前記第１検出力の向きに応じた向きの前記あらかじめ定められた量の前記可動部の前記移動を、前記継続時間中、繰り返し実行し、
前記第３力閾値は、１Ｎより大きく、１０Ｎより小さい、ロボットシステム。
【請求項５】
請求項１から４のいずれか１項に記載のロボットシステムであって、
前記力検出部は、前記基台に設けられている第１力検出部を含む、ロボットシステム。
【請求項６】
請求項５に記載のロボットシステムであって、
前記制御部は、
前記教示において、前記第１力検出部の出力に基づいて、前記第１条件の判定を行い、
前記可動部の前記移動中に、前記第１力検出部の出力に基づいて、前記第２条件の判定を行う、ロボットシステム。
【請求項７】
請求項５に記載のロボットシステムであって、
前記力検出部は、前記可動部に設けられたエンドエフェクターと、前記可動部との間に設けられた第２力検出部を含む、ロボットシステム。
【請求項８】
請求項７に記載のロボットシステムであって、
前記制御部は、
前記教示において、前記第２力検出部の出力に基づいて、前記第１条件の判定を行い、
前記可動部の前記移動中に、前記第１力検出部の出力に基づいて、前記第２条件の判定を行う、ロボットシステム。
【請求項９】
基台と、前記基台に対して移動可能に設けられた可動部と、前記可動部に加えられた力を検出する力検出部と、を備えるロボットの教示において、前記力検出部によって検出された力に応じて前記可動部を制御する制御装置であって、
前記力検出部によって検出された第１検出力の大きさが第１力閾値より大きい時間が、０より大きく第１時間閾値より短い時間、継続したという第１条件が、前記教示において満たされた場合に、前記第１検出力の向きに応じた向きに、あらかじめ定められた量で、前記可動部を移動し、
前記力検出部によって検出された第２検出力の大きさが、前記第１力閾値より大きい第２力閾値より大きいという第２条件が、前記可動部の前記移動中に満たされた場合に、前記可動部を減速または停止する、制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、外力を加えることにより動作の教示を行うロボットに関する。
【背景技術】
【０００２】
従来、教示者がロボットの手先を持って作業位置を教示する、いわゆるダイレクトティーチング機能を持ったロボットが存在する。特許文献１の技術においては、ロボットの手首に６軸の力センサーが装着され、その先にティーチング用のハンドルとスプリングコイルを介してエンドエフェクターが装着されている。ティーチング用のハンドルにはコンプライアンス制御と位置制御の制御切り替えスイッチと力情報の入力スイッチが取り付けられている。
【０００３】
モード切替スイッチからの信号に基づいて、コンプライアンス制御部の制御モードが、通常の位置制御とコンプライアンス制御との間で切り替えられる。ロボットのダイレクトティーチング時は、コンプライアンス制御部はバネ係数がゼロで自由にロボットを動かせるダイレクトティーチング状態か、各軸がロックされた位置制御の状態になる。力情報・位置情報取込手段は、力情報入力スイッチによって、そのときの力センサーの情報と各軸の現在位置を取り込み、ティーチングデータとしてティーチングデータ格納手段に格納する。
【０００４】
ロボットに外力を加えることによりロボットに動作の教示を行うダイレクトティーチの一つの態様として、ロボットの手先に外力が短時間加えられると、そのたびに、外力が加えられた向きに応じた向きに、ロボットの手先が一定量、移動する技術が存在する。ロボットの手先に連続的に外力を加えて、ロボットの手先を、おおよそ目的の位置に配した後、そのような処理を繰り返し行うことにより、ロボットの手先を、正確に目標位置に配することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−２３１９２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記の技術においては、ロボットに短時間、外力が加えられたことに起因して、手先が一定量、移動している間に、ロボットの手首よりロボットの基台の側の構成がロボット以外の構成に衝突した場合に、その衝突を正確に検知できない場合がある。その結果、ロボットが破損する可能性があった。
【課題を解決するための手段】
【０００７】
本開示の一形態によれば、ロボットシステムが提供される。このロボットシステムは、基台と、前記基台に支持されエンドエフェクターを移動させる可動部と、前記可動部に加えられた力を検出する１以上の力検出部と、を備えるロボットと、前記ロボットの教示において、前記１以上の力検出部によって検出された力に応じて前記可動部を制御して、前記エンドエフェクターの移動を実行させる制御部と、を備える。前記制御部は、前記１以上の力検出部によって検出された第１検出力の大きさが第１力閾値より大きい時間が、０より大きく第１時間閾値より短い時間、継続したという第１条件が、前記教示において満たされた場合に、前記第１検出力の向きに応じた向きに、あらかじめ定められた量で、前記エンドエフェクターの前記移動を実行し、前記１以上の力検出部によって検出された第２検出力の大きさが、前記第１力閾値より大きい第２力閾値より大きいという第２条件が、前記エンドエフェクターの前記移動中に満たされた場合に、前記エンドエフェクターの減速または停止を実行する。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態のロボットシステム１を模式的に示す説明図である。
【図２】ロボット１００に対してダイレクトティーチによる教示が行われる際のロボットの動作を示すフローチャートである。
【図３】図２のＳ１３０の条件Ｃの内容を説明するためのグラフである。
【図４】図２のＳ１３０の条件Ｂ１，Ｂ２の内容を説明するためのグラフである。
【図５】ロボット１００に対してダイレクトティーチによる教示が行われる際のロボットの動作を示すフローチャートである。
【図６】図５のＳ２２０の条件Ｄの内容を説明するためのグラフである。
【図７】図５のＳ２３０の条件Ｅの内容を説明するためのグラフである。
【図８】第２実施形態に係るロボットシステム１Ｂの構成を示す図である。
【図９】複数のプロセッサーによってロボットの制御装置が構成される一例を示す概念図である。
【図１０】複数のプロセッサーによってロボットの制御装置が構成される他の例を示す概念図である。
【発明を実施するための形態】
【０００９】
Ａ．第１実施形態：
Ａ１．ロボットシステムの構成：
図１は、第１実施形態のロボットシステム１を模式的に示す説明図である。本実施形態のロボットシステム１は、ロボット１００と、エンドエフェクターＥＥと、ロボット制御装置２５と、を備える。図１において、技術の理解を容易にするために、ロボット座標系ＲＣを示す。
【００１０】
ロボット座標系ＲＣは、水平面上において互いに直交するＸ軸とＹ軸と、鉛直上向きを正方向とするＺ軸とによって規定される３次元の直交座標系である。Ｘ軸周りの回転の角度位置ＲＸによって表す。Ｙ軸周りの回転の角度位置ＲＹによって表す。Ｚ軸周りの回転の角度位置ＲＺによって表す。ロボット座標系ＲＣにおける任意の姿勢は、Ｘ軸周りの角度位置ＲＸ、Ｙ軸周りの角度位置ＲＹ、Ｚ軸周りの角度位置ＲＺにより表現できる。
【００１１】
ロボット１００は、スカラロボットである。本明細書において、「スカラロボット」とは、いわゆる水平多関節ロボットであり、アームを構成するアーム要素であって、互いに平行な方向を回転軸として回転する複数のアーム要素を備え、それら複数のアーム要素の回転軸と垂直な方向を回転軸とするアーム要素を備えないロボットである。
【００１２】
ロボット１００は、４個の関節Ｊ１１〜Ｊ１４を備えたアーム１１０を有する４軸ロボットである。アーム１１０は、関節Ｊ１１を介して、基台ＢＳに支持されている。アーム１１０は、エンドエフェクターＥＥを移動させることができる。なお、本明細書において、「移動」は、位置の変化と、姿勢の変化と、を含む。
【００１３】
アーム１１０において、関節Ｊ１１，Ｊ１２，Ｊ１４は、ロボット座標系ＲＣのＺ軸方向に平行な方向を回転軸とする回転関節である。図１において、関節Ｊ１１，Ｊ１２，Ｊ１４における回転方向を、それぞれＤｊ１，Ｄｊ２，Ｄｊ４として示す。関節Ｊ１３は、Ｚ軸方向に平行な方向に動作する直動関節である。アーム１１０を構成する複数の関節のうち互いに隣接する関節と関節の間の構成要素を、本明細書において「アーム要素」と呼ぶ。図１において、関節Ｊ１１と関節Ｊ１２の間のアーム要素Ｌ１１、関節Ｊ１２と関節Ｊ１３の間のアーム要素Ｌ１２、およびアーム１１０の先端を構成し関節Ｊ１３，Ｊ１４によって動かされるアーム要素Ｌ１３を、符号を付して示す。アーム要素Ｌ１１は、関節Ｊ１１を介して、基台ＢＳに接続されている。
【００１４】
ロボット１００は、関節Ｊ１１〜Ｊ１４に、それぞれサーボモーター４１０と、減速機５１０と、トルクセンサー６１０と、を備える。サーボモーター４１０は、動作制御装置３０に制御されて、その出力軸を回転させる。減速機５１０は、サーボモーター４１０の出力軸の回転を減速させてアーム要素に伝達する。トルクセンサー６１０は、回転関節Ｊ１１，Ｊ１２，Ｊ１４が外部から受けているトルクを検出する。
【００１５】
図１においては、関節Ｊ１１を駆動するサーボモーター４１０ａと減速機５１０ａとトルクセンサー６１０ａ、関節Ｊ１３を駆動するサーボモーター４１０ｃと減速機５１０ｃ、関節Ｊ１４を駆動するサーボモーター４１０ｄと減速機５１０ｄとトルクセンサー６１０ｄを、符号を付して示す。本明細書において、サーボモーター４１０ａ〜４１０ｄについて、相互に区別せずに言及する場合には、サーボモーター４１０と表記する。減速機５１０ａ〜５１０ｄについて、相互に区別せずに言及する場合には、減速機５１０と表記する。トルクセンサー６１０ａ，６１０ｂ，６１０ｄについて、相互に区別せずに言及する場合には、トルクセンサー６１０と表記する。
【００１６】
アーム要素Ｌ１３の一部の外表面には、雄ネジが形成されている。アーム要素Ｌ１３の当該部分は、ボールネジとして機能する。サーボモーター４１０ｄによって、ボールネジとしてのアーム要素Ｌ１３は、アーム要素Ｌ１２に対して矢印Ｊ１３で示す方向に沿って、移動される。
【００１７】
ロボット１００は、関節Ｊ１１〜Ｊ１４をそれぞれサーボモーター４１０で回転または直進させることにより、アーム１１０の先端部に取りつけられたエンドエフェクターＥＥを、３次元空間中の指定された位置に指定された姿勢で配することができる。なお、３次元空間におけるエンドエフェクターＥＥの位置を代表する地点、すなわち制御点を、ＴＣＰ（Tool Center Point）とも呼ぶ。
【００１８】
基台ＢＳは、床部８００に対して固定され、アーム１１０を支持している。基台ＢＳには、力検出部ＳＦ１１が設けられている。より具体的には、力検出部ＳＦ１１は、基台ＢＳと床部８００との間に、位置する。力検出部ＳＦ１１は、水晶圧電素子を備える力センサーである。力検出部ＳＦ１１は、アーム１１０と、アーム１１０に取りつけられている任意の構成と、に加えられた力を検出することができる。なお、本明細書において、「力」は、直線的に作用する力と、トルクとを含む。本明細書において、力の「方向」は、直線的な方向と、回転方向と、を含む。
【００１９】
力検出部ＳＦ１１は、外部、すなわち、力検出部ＳＦ１１以外の構成から加えられる、Ｘ軸、Ｙ軸、Ｚ軸の３軸方向の力と、回転軸としてのＵ軸、Ｖ軸、Ｗ軸まわりのトルクを検出することができる。その結果、力検出部ＳＦ１１は、力検出部ＳＦ１１以外の構成であるアーム１１０に作用するＸ軸、Ｙ軸、Ｚ軸の３軸方向の力と、Ｕ軸、Ｖ軸、Ｗ軸まわりのトルクを測定することができる。力検出部ＳＦ１１の出力は、動作制御装置３０に送信され、ロボット１００の制御に使用される。
【００２０】
床部８００は、力検出部ＳＦ１１を介して、基台ＢＳを支持している。床部８００は、ロボット１００が設置される工場の床である。図１においては、技術の理解を容易にするため、床部８００を四角形で示す。
【００２１】
エンドエフェクターＥＥは、アーム１１０の先端に取りつけられている。エンドエフェクターＥＥは、動作制御装置３０に制御されて、作業の対象物であるワークピースＷＫをつかむことができ、また、つかんでいるワークピースＷＫを離すことができる。その結果、たとえば、エンドエフェクターＥＥとロボット１００とは、動作制御装置３０に制御されて、ワークピースＷＫをつかんで移動させることができる。なお、図１においては、技術の理解を容易にするため、ワークピースＷＫの図示を省略し、エンドエフェクターＥＥを単純な四角形で示している。
【００２２】
ロボット制御装置２５は、ロボット１００を制御する。ロボット制御装置２５は、動作制御装置３０と、教示装置５０とによって構成される。
【００２３】
動作制御装置３０は、ロボット１００の動作を制御する制御装置である。動作制御装置３０は、ロボット１００に接続されている。動作制御装置３０は、プロセッサーであるＣＰＵ（Central Processing Unit）３０１、ＲＡＭ（Random Access Memory）３０２、ＲＯＭ（Read-Only Memory）３０３を備える。動作制御装置３０には、ロボット１００を制御するための制御プログラムがインストールされている。動作制御装置３０においては、ハードウェア資源としてのＣＰＵ３０１、ＲＡＭ３０２、ＲＯＭ３０３と、制御プログラムとが協働する。具体的には、ＣＰＵ３０１が、ＲＯＭ３０３に記憶されたコンピュータープログラムをＲＡＭ３０２にロードして実行することによって、様々な機能を実現する。
【００２４】
教示装置５０は、動作制御装置３０に目標位置と目標力とを教示するための装置である。教示装置５０は、プロセッサーであるＣＰＵ５０１、ＲＡＭ５０２、ＲＯＭ５０３を備える。教示装置５０には、動作制御装置３０に目標位置と目標力とを教示するための制御プログラムがインストールされている。教示装置５０においては、ハードウェア資源としてのＣＰＵ５０１、ＲＡＭ５０２、ＲＯＭ５０３と、制御プログラムとが協働する。具体的には、ＣＰＵ５０１が、ＲＯＭ５０３に記憶されたコンピュータープログラムをＲＡＭ５０２にロードして実行することによって、様々な機能を実現する。たとえば、ＣＰＵ５０１は、ロボット１００の教示において、力検出部ＳＦ１１によって検出された力に応じてアーム１１０を制御して、エンドエフェクターＥＥの移動を実行させる。
【００２５】
教示装置５０は、さらに、入力装置５７と、出力装置５８を備える。入力装置５７は、ユーザーからの指示を受け付ける。入力装置５７は、例えば、マウス、キーボード、タッチパネル等である。出力装置５８は、ユーザーに各種の情報を出力する。出力装置５８は、例えば、ディスプレイやスピーカー等である。
【００２６】
図２は、ロボット１００に対してダイレクトティーチによる教示が行われる際のロボットの動作を示すフローチャートである。ロボット１００に対する教示は、教示者がエンドエフェクターＥＥに対して外力を加えることによって行われる。ここでは、教示者は、エンドエフェクターＥＥに対して外力を加えることによって、ロボットシステム１に制御点の目標位置を教示する。図２の処理は教示装置５０のＣＰＵ５０１によって実行される。
【００２７】
ステップＳ１１０において、ＣＰＵ５０１は、力検出部ＳＦ１１（図１参照）の出力を受け取る。ステップＳ１１０において、力検出部ＳＦ１１によって検出された力を、「第１検出力Ｆｄ１」と呼ぶ。
【００２８】
ステップＳ１２０において、ＣＰＵ５０１は、入力装置５７（図１参照）を介して、ダイレクトティーチによる教示の終了の指示が入力されたか否かを判定する。終了の指示が入力された場合には、図２の処理は終了する。所定の時間、具体的には、前回、ステップＳ１２０の処理が行われてから、ステップＳ１３０〜Ｓ１６０の処理を経て、再度、ステップＳ１２０の処理が行われるまでの間に、教示の終了の指示が入力されない場合には、処理はステップＳ１３０に進む。ダイレクトティーチによる教示の終了の指示が入力されるまで、ステップＳ１３０〜Ｓ１６０，Ｓ１１０の処理は、あらかじめ定められた第１周期で繰り返される。
【００２９】
ステップＳ１３０において、ＣＰＵ５０１は、力検出部ＳＦ１１の出力について、以下の条件Ａ，Ｂ，Ｃのいずれかが満たされたか否かを判定する。なお、以下の条件Ａ，Ｂ，Ｃのいずれも満たされない場合は、処理は、ステップＳ１１０に戻る。技術の理解を容易にするために、条件Ａ，Ｂ，Ｃのいずれも満たされない場合の処理フローの図示を、図２において省略する。第１検出力Ｆｄ１の大きさは、力検出部ＳＦ１１によって検出された各方向の力の成分を合成することによって、得られる。なお、以下ではまず、第１検出力Ｆｄ１が直線的な力である場合を想定して説明する。
【００３０】
条件Ａ：第１検出力Ｆｄ１の大きさが、第３力閾値Ｆｔｈ３より小さい時間が、終了時間閾値Ｔｔｈｅより長い時間、継続した。
条件Ｂ：条件Ｂ１または条件Ｂ２が満たされる。
条件Ｂ１：第１検出力Ｆｄ１の大きさが第１力閾値Ｆｔｈ１より大きい時間が、０より大きく第１時間閾値Ｔｔｈ１より短い時間、継続した。
条件Ｂ２：第１検出力Ｆｄ１の大きさが、第３力閾値Ｆｔｈ３より大きく第１力閾値Ｆｔｈ１より小さい時間が、第２時間閾値Ｔｔｈ２より長い継続時間、継続した。
条件Ｃ：第１検出力Ｆｄ１の大きさが、第１力閾値Ｆｔｈ１より大きく第２力閾値Ｆｔｈ２より小さい時間が、第３時間閾値Ｔｔｈ３より長い継続時間、継続した。
【００３１】
なお、各閾値の関係は、以下のとおりである。
［第３力閾値Ｆｔｈ３］  ＜  ［第１力閾値Ｆｔｈ１］  ＜  ［第２力閾値Ｆｔｈ２］
［第１時間閾値Ｔｔｈ１］  ≦  ［第２時間閾値Ｔｔｈ２］，［第３時間閾値Ｔｔｈ３］
【００３２】
本実施形態においては、第３力閾値Ｆｔｈ３は、２Ｎに設定される。第１力閾値Ｆｔｈ１は、６Ｎに設定される。第２力閾値Ｆｔｈ２は、３０Ｎに設定される。
【００３３】
第２時間閾値Ｔｔｈ２と第３時間閾値Ｔｔｈ３の大小関係は、第２時間閾値Ｔｔｈ２と第３時間閾値Ｔｔｈ３の具体的な設定値によって定まる。本実施形態においては、終了時間閾値Ｔｔｈｅと、第１時間閾値Ｔｔｈ１と、第２時間閾値Ｔｔｈ２と、第３時間閾値Ｔｔｈ３とは、いずれも２００ｍｓに設定される。
【００３４】
条件Ａは、大まかには、「教示者による外力がエンドエフェクターＥＥに加えられていない」ことを判定する判定条件である。図２のステップＳ１３０において、条件Ａが満たされた場合には、処理は、ステップＳ１５０に進む。
【００３５】
ステップＳ１５０においては、ダイレクトティーチによる教示が終了される。その後、処理は、ステップＳ１１０に戻る。
【００３６】
本実施形態においては、第３力閾値Ｆｔｈ３が２Ｎであり、１Ｎより大きい。このため、圧電素子を備える力検出部ＳＦ１１において想定されるノイズを排除して、「教示者による外力がエンドエフェクターＥＥに加えられていない」ことを判定することができる。
【００３７】
ステップＳ１３０における条件Ｃは、大まかには、「目標位置にむかって、大まかにエンドエフェクターＥＥを移動させるために、教示者による外力がエンドエフェクターＥＥに加えられている」ことを判定する判定条件である。図２のステップＳ１３０において、条件Ｃが満たされた場合には、処理は、ステップＳ１４０に進む。
【００３８】
図３は、図２のＳ１３０の条件Ｃの内容を説明するためのグラフである。図３のグラフの横軸は、時間Ｔを表す。図３のグラフの縦軸は、力検出部ＳＦ１１によって検出された第１検出力Ｆｄ１の大きさを表す。図３のグラフＧｆ１１は、第１検出力Ｆｄ１の時間変化の例を表す。
【００３９】
図３の例においては、時刻Ｔｃ０以降に加えられた第１検出力Ｆｄ１の大きさが、時刻Ｔｃ１から時刻Ｔｃ２の間、継続して第１力閾値Ｆｔｈ１と第２力閾値Ｆｔｈ２との間にあり、その継続時間は、第３時間閾値Ｔｔｈ３より長い。そのような場合には、時刻Ｔｃ１から第３時間閾値Ｔｔｈ３が経過すると、処理は図２のステップＳ１４０に進む。
【００４０】
また、図３の例においては、第１検出力Ｆｄ１の大きさは、時刻Ｔｃ３から継続して第１力閾値Ｆｔｈ１と第２力閾値Ｆｔｈ２との間にあり、その継続時間は、第３時間閾値Ｔｔｈ３より長い。この場合にも、時刻Ｔｃ３から第３時間閾値Ｔｔｈ３が経過すると、処理は図２のステップＳ１４０に進む。
【００４１】
ステップＳ１４０においては、ダイレクトティーチによる教示が行われる。すなわち、教示者によって加えられる力に応じて、エンドエフェクターＥＥが移動される。その結果、教示者によって、教示者の所望の位置に、エンドエフェクターＥＥが移動される。その後、処理は、ステップＳ１１０に戻る。
【００４２】
ステップＳ１３０における条件Ｂ１は、大まかには、「教示者によって、エンドエフェクターＥＥが軽く叩かれた」ことを判定する判定条件である。図２のステップＳ１３０において、条件Ｂ１が満たされた場合には、処理は、ステップＳ１６０に進む。
【００４３】
図４は、図２のＳ１３０の条件Ｂ１，Ｂ２の内容を説明するためのグラフである。図４のグラフの横軸と縦軸は、それぞれ図３のグラフの横軸と縦軸と同じである。図３のグラフＧｆ１２，Ｇｆ１３は、第１検出力Ｆｄ１の時間変化を模式的に表す。
【００４４】
図４の例においては、時刻Ｔｂ０以降に加えられた第１検出力Ｆｄ１の大きさが、時刻Ｔｂ０から時刻Ｔｂ１の間、継続して第１力閾値Ｆｔｈ１より大きく、その継続時間は、第１時間閾値Ｔｔｈ１より短い。そのような場合には、第１検出力Ｆｄ１の大きさが第３力閾値Ｆｔｈ３を下回ると、処理は図２のステップＳ１６０に進む。
【００４５】
ステップＳ１３０における条件Ｂ２は、大まかには、「教示者によって、エンドエフェクターＥＥが小さい力で継続的に押された」ことを判定する判定条件である。図２のステップＳ１３０において、条件Ｂ２が満たされた場合には、処理は、ステップＳ１６０に進む。
【００４６】
図４の例においては、時刻Ｔｂ２以降に加えられた第１検出力Ｆｄ１の大きさが、時刻Ｔｂ２から継続して第３力閾値Ｆｔｈ３と第１力閾値Ｆｔｈ１の間にあり、その継続時間は、第２時間閾値Ｔｔｈ２より長い。そのような場合には、時刻Ｔｂ２から第２時間閾値Ｔｔｈ２が経過すると、処理は図２のステップＳ１６０に進む。
【００４７】
なお、以上の図２のステップＳ１３０の処理の説明においては、技術の理解を容易にするために、第１検出力Ｆｄ１が直線的に作用する力である場合を例に、条件Ａ，Ｂ，Ｃを説明した。しかし、ステップＳ１３０における条件Ａ，Ｂ，Ｃは、第１検出力Ｆｄ１が直線的に作用する力である場合と、トルクである場合と、について、それぞれ設定される。すなわち、第１検出力Ｆｄ１がトルクである場合についても、第１力閾値〜第３力閾値、ならびに終了時間閾値および第１時間閾値〜第３時間閾値が設定されており、同様に、条件Ａ，Ｂ，Ｃが判定される。
【００４８】
図２のステップＳ１６０内のステップＳ１６２においては、第１検出力Ｆｄ１がモーメント、すなわちトルクでない場合には、処理は、ステップＳ１６４に進む。一方、第１検出力Ｆｄ１がモーメント、すなわちトルクであった場合には、処理は、ステップＳ１６６に進む。
【００４９】
ステップＳ１６６においては、トルクである第１検出力Ｆｄ１の向きに応じた向きに、あらかじめ定められた角度量で、エンドエフェクターＥＥの回転が実行される。ステップＳ１６６における第１検出力Ｆｄ１の向きに応じた向きとは、本実施形態では、Ｕ軸正方向、Ｕ軸負方向、Ｖ軸正方向、Ｖ軸負方向、Ｗ軸正方向、およびＷ軸負方向の６方向のうち、第１検出力Ｆｄ１の回転の向きとの間でなす角が最も小さい方向である。ここで、ある回転についての「回転の向き」は、その回転によって右ねじが押し込まれる向きとする。本実施形態において、ステップＳ１６６におけるあらかじめ定められた角度は、０．５°である。
【００５０】
ステップＳ１６４においては、第１検出力Ｆｄ１が直線的に作用する力でない場合には、処理は、ステップＳ１１０に戻る。一方、第１検出力Ｆｄ１が直線的に作用する力であった場合には、処理は、ステップＳ１６８に進む。
【００５１】
ステップＳ１６８においては、第１検出力Ｆｄ１の向きに応じた向きに、あらかじめ定められた直線距離で、エンドエフェクターＥＥの直線的な移動が実行される。ステップＳ１６８における第１検出力Ｆｄ１の向きに応じた向きとは、本実施形態では、Ｘ軸正方向、Ｘ軸負方向、Ｙ軸正方向、Ｙ軸負方向、Ｚ軸正方向、およびＺ軸負方向の６方向のうち、第１検出力Ｆｄ１の向きとなす角が最も小さい方向である。本実施形態において、ステップＳ１６８におけるあらかじめ定められた直線距離は、０．５ｍｍである。
【００５２】
図４においては、技術の理解を容易にするため、グラフＧｆ１３が、時刻Ｔｂ２以降、第１検出力Ｆｄ１の大きさは、一定値を保つものとして記載されている。しかし、実際には、グラフＧｆ１３において、第１検出力Ｆｄ１の大きさは、時刻Ｔｂ２以降、一定値を保つわけではない。条件Ｂ２が満たされた場合には、図２のステップＳ１６６またはステップＳ１６８において、教示者が作用させている力の方向に応じた方向に、エンドエフェクターＥＥが一定量、移動される。このため、実際には、少なくとも移動が開始された直後は、第１検出力Ｆｄ１の大きさは低下する。
【００５３】
図２のステップＳ１３０において、条件Ｂ２が満たされてステップＳ１６０に処理が移行した場合には、ＣＰＵ５０１は、ステップＳ１６６またはＳ１６８における１回の移動の後、まだ、条件Ｂ２が満たされている場合には、ステップＳ１６６またはＳ１６８における１回の移動を、再度、行う。条件Ｂ２が満たされてステップＳ１６０に処理が移行した場合には、ＣＰＵ５０１は、第１検出力Ｆｄ１の継続時間中、ステップＳ１６６またはＳ１６８において、そのような判定と移動を繰り返す。その結果、エンドエフェクターＥＥは、ユーザーによって加えられる力によって、断続的に移動される。前述のように、移動が開始された直後は、第１検出力Ｆｄ１の大きさは低下するため、グラフＧｆ１３は、実際には、第２時間閾値Ｔｔｈ２が経過した後、断続的なエンドエフェクターＥＥの移動に起因して、周期的に増減を繰り返す。教示者は、そのようなエンドエフェクターＥＥの反力の変化を体感することができる。
【００５４】
このような処理を行うことにより、教示者による一度の押圧で、あらかじめ定められた量のＮ倍（Ｎは正の整数）の量の正確な移動を、エンドエフェクターＥＥについて、実現することができる。このため、正確な位置にエンドエフェクターＥＥを配する際の教示者による教示の負荷を低減することができる。
【００５５】
本実施形態においては、第３力閾値Ｆｔｈ３が２Ｎであり、１Ｎより大きい。このため、圧電素子を備える力検出部ＳＦ１１において想定されるノイズを排除して、あらかじめ定められた量のエンドエフェクターＥＥの移動を、繰り返し実行することができる。また、第３力閾値Ｆｔｈ３が２Ｎであり、１０Ｎより小さい。このため、第３力閾値Ｆｔｈ３より大きい力によって行われる教示によって、教示者が疲れてしまう可能性が低い。また、第３力閾値Ｆｔｈ３より大きい力によって行われる教示者によるロボット１００への外力の付与が、アーム１１０の残留振動が十分小さい範囲で行われることとなる。
【００５６】
図５は、ロボット１００に対してダイレクトティーチによる教示が行われる際のロボットの動作を示すフローチャートである。図５の処理は教示装置５０のＣＰＵ５０１によって実行される。図５の処理は、図２の処理と並行して実行される。
【００５７】
図２の処理が繰り返し実行される第１周期は、図５の処理が繰り返し実行される第２周期の２０倍である。すなわち、図２のステップＳ１１０〜Ｓ１６０の処理が１回行われる間に、図５のステップＳ２１０〜Ｓ２７０の処理は、およそ２０回行われる。このため、たとえば、図２のステップＳ１４０，Ｓ１６６，Ｓ１６８によるエンドエフェクターＥＥの移動が行われている間に、図５の処理は、繰り返し行われる。
【００５８】
ステップＳ２１０において、ＣＰＵ５０１は、力検出部ＳＦ１１（図１参照）の出力を受け取る。前述の図２のステップＳ１１０の処理は、図５のステップＳ２１０の処理と同一の処理であってもよい。ただし、図５のステップＳ２１０の処理が行われても、そのときに受領された力検出部ＳＦ１１の出力は、図２のステップＳ１１０の処理に利用されないことがある。このため、図５のステップＳ２１０において、力検出部ＳＦ１１によって検出された力を、図２のステップＳ１１０の処理における第１検出力Ｆｄ１と区別するために、便宜的に「第２検出力Ｆｄ２」と呼ぶ。
【００５９】
図５のステップＳ２２０においては、ＣＰＵ５０１は、以下の条件Ｄが満たされたか否かを判定する。
【００６０】
条件Ｄ：第２検出力Ｆｄ２の大きさが、第２力閾値Ｆｔｈ２より大きい。
【００６１】
条件Ｄは、大まかには、「アーム１１０やエンドエフェクターＥＥが何かに衝突した可能性がある」ことを判定する判定条件である。ステップＳ２２０において、条件Ｄが満たされない場合には、処理は、ステップＳ２１０に戻る。ステップＳ２２０において、条件Ｄが満たされた場合には、処理は、ステップＳ２３０に進む。
【００６２】
図６は、図５のＳ２２０の条件Ｄの内容を説明するためのグラフである。図６のグラフの横軸と縦軸は、それぞれ図３のグラフの横軸と縦軸と同じである。図６のグラフＧｆ２１，Ｇｆ２２は、第２検出力Ｆｄ２の時間変化を表す。
【００６３】
図６の例においては、時刻Ｔｄ０以降、時刻Ｔｄ１までの間に加えられた第２検出力Ｆｄ２の大きさが、ある時刻において第２力閾値Ｆｔｈ２よりも大きくなる。第２検出力Ｆｄ２の大きさが第２力閾値Ｆｔｈ２よりも大きくなると、処理は図５のステップＳ２３０に進む。
【００６４】
また、図６の例においては、時刻Ｔｄ２以降、時刻Ｔｄ３までの間に加えられた第２検出力Ｆｄ２の大きさが、ある時刻において第２力閾値Ｆｔｈ２よりも大きくなる。この場合にも、第２検出力Ｆｄ２の大きさが第２力閾値Ｆｔｈ２よりも大きくなると、処理は図５のステップＳ２３０に進む。
【００６５】
図５のステップＳ２３０においては、ＣＰＵ５０１は、以下の条件Ｅが満たされたか否かを判定する。
【００６６】
条件Ｅ：第２検出力Ｆｄ２の大きさが、第４力閾値Ｆｔｈ４より大きい。
【００６７】
なお、各閾値の関係は、以下のとおりである。
［第２力閾値Ｆｔｈ２］  ＜  ［第４力閾値Ｆｔｈ４］
【００６８】
条件Ｅは、大まかには、「アーム１１０やエンドエフェクターＥＥに、激しく損傷する可能性のある大きさの力がはたらいた、または力検出部ＳＦ１１に異常が生じた」ことを判定する判定条件である。ステップＳ２３０において、条件Ｅが満たされた場合には、処理は、ステップＳ２４０に進む。ステップＳ２３０において、条件Ｅが満たされない場合には、処理は、ステップＳ２５０に進む。
【００６９】
図７は、図５のＳ２３０の条件Ｅの内容を説明するためのグラフである。図７のグラフの横軸と縦軸は、それぞれ図３のグラフの横軸と縦軸と同じである。図７のグラフＧｆ２３，Ｇｆ２４は、第２検出力Ｆｄ２の時間変化の例を表す。
【００７０】
図７の例においては、時刻Ｔｄ４以降、時刻Ｔｄ５までの間に加えられた第２検出力Ｆｄ２の大きさが、第２力閾値Ｆｔｈ２を超えて、第４力閾値Ｆｔｈ４よりも大きくなる。そのような場合には、第２検出力Ｆｄ２の大きさが第４力閾値Ｆｔｈ４よりも大きくなると、処理は図５のステップＳ２４０に進む。
【００７１】
また、図７の例においては、時刻Ｔｄ６以降、時刻Ｔｄ７までの間に加えられた第２検出力Ｆｄ２の大きさが、第２力閾値Ｆｔｈ２を超えて、第４力閾値Ｆｔｈ４よりも大きくなる。この場合にも、第２検出力Ｆｄ２の大きさが第４力閾値Ｆｔｈ４よりも大きくなると、処理は図５のステップＳ２４０に進む。
【００７２】
図５のステップＳ２４０においては、ＣＰＵ５０１は、アーム１１０の各関節のサーボモーター４１０（図１参照）の励磁を切って、ロボット１００を停止させる。すなわち、エンドエフェクターＥＥの停止が実行される。その後、図５の処理は終了する。ステップＳ２３０において、条件Ｅが満たされるまで、ステップＳ２５０〜Ｓ２７０，Ｓ２１０，Ｓ２２０の処理は、あらかじめ定められた第２周期で繰り返される。
【００７３】
ステップＳ２５０においては、ＣＰＵ５０１は、アーム１１０の各関節のサーボモーター４１０の励磁を切らずに、ロボット１００を停止させる。すなわち、エンドエフェクターＥＥの停止が実行される。
【００７４】
本実施形態においては、力検出部ＳＦ１１は、エンドエフェクターＥＥに加えられた力のみを検出するのではなく、アーム１１０に加えられた力を検出することができる（図１参照）。そして、図５のステップＳ２１０〜Ｓ２５０の処理により、アーム１１０に加えられた力を検出する力検出部ＳＦ１１を利用して、エンドエフェクターＥＥの停止を行う。このため、ロボット１００のエンドエフェクターＥＥよりも基台ＢＳ側にあるアーム１１０が、ロボット１００以外の構成に衝突した場合にも、エンドエフェクターＥＥの停止を行うことができる。
【００７５】
本実施形態においては、たとえば、条件Ｂが具備されたことに起因するエンドエフェクターＥＥの移動中に（図２のステップＳ１３０，Ｓ１６６，Ｓ１６８参照）、衝突によりアーム１１０に第２力閾値Ｆｔｈ２より大きい力が加えられた場合に、力検出部ＳＦ１１によってこれを検知して、エンドエフェクターＥＥの停止を行うことができる。このため、ロボット１００が破損する可能性を低減することができる。
【００７６】
図５のステップＳ２６０においては、ＣＰＵ５０１は、入力装置５７（図１参照）を介して、ロボット１００の処理の復帰の指示が入力されたか否かを判定する。所定の時間、処理の復帰の指示が入力されない場合には、処理はステップＳ２１０に戻る。処理の復帰の指示が入力された場合には、処理はステップＳ２７０に進む。
【００７７】
ステップＳ２７０においては、ＣＰＵ５０１は、アーム１１０を制御して、エンドエフェクターＥＥをあらかじめ定められた位置に移動させる。その後、教示者は、第２力閾値Ｆｔｈ２より大きい力が検知された原因を除いた後（図５のＳ２２０および図６参照）、希望する場合には、ダイレクトティーチによる教示の処理、すなわち、図２および図５の処理を再開することができる。
【００７８】
本実施形態においては、衝突検知を行う図５の処理が繰り返される第２周期が、教示の処理を行う図２の処理が繰り返される第１周期よりも短いため、エンドエフェクターＥＥの移動中に意図せずに発生する衝突について、迅速に検知することができる（図５のＳ２２０，Ｓ２３０参照）。一方、教示の処理を行う図２の処理が繰り返される第１周期を、衝突検知を行う図５の処理が繰り返される第２周期よりも長くすることにより、教示者によって加えられる外力については、十分な精度で検知しつつ、ＣＰＵ５０１の処理負荷を低減することができる。
【００７９】
また、本実施形態においては、教示の処理を行う図２の処理が繰り返される第１周期を、衝突検知を行う図５の処理が繰り返される第２周期の２０倍とすることにより、エンドエフェクターＥＥの移動中に意図せずに発生する衝突の迅速な検知と、教示者によって加えられる外力の十分な精度での検出を両立しつつ、ＣＰＵ５０１の処理負荷を適切に低減することができる。
【００８０】
本実施形態においては、ＣＰＵ５０１は、教示において、基台ＢＳに設けられた力検出部ＳＦ１１の出力に基づいて、エンドエフェクターＥＥの移動を実行し（図２のＳ１４０，Ｓ１６６，Ｓ１６８参照）、エンドエフェクターＥＥの移動中に、力検出部ＳＦ１１の出力に基づいて、エンドエフェクターＥＥの停止を実行する（図５のＳ２４０，Ｓ２５０参照）。このため、一つの力検出部ＳＦ１１によって、教示における外力に基づくエンドエフェクターＥＥの移動と、エンドエフェクターＥＥの移動中におけるエンドエフェクターＥＥの停止を実現することができる。
【００８１】
本実施形態におけるアーム１１０を、「可動部」とも呼ぶ。力検出部ＳＦ１１を「第１検出部」とも呼ぶ。ロボット制御装置２５を「制御装置」とも呼ぶ。教示装置５０のＣＰＵ５０１を、「制御部」とも呼ぶ。条件Ｂ１を、「第１条件」とも呼ぶ。条件Ｄを、「第２条件」とも呼ぶ。条件Ｂ２を、「第３条件」とも呼ぶ。
【００８２】
Ｂ．第２実施形態：
図８は、第２実施形態に係るロボットシステム１Ｂの構成を示す図である。図８において、技術の理解を容易にするために、ロボット座標系ＲＣを示す。ロボット座標系ＲＣは、図１に示すロボット座標系ＲＣと同じである。
【００８３】
第２実施形態のロボットシステム１Ｂは、ロボット１００Ｂと、ロボット制御装置２５を備える。第２実施形態におけるロボット制御装置２５のハードウェア構成は、第１実施形態におけるロボット制御装置２５のハードウェア構成と同じである（図１参照）。
【００８４】
ロボット１００Ｂは、垂直多関節ロボットである。ロボット１００Ｂは、６個の関節Ｊ２１〜Ｊ２６を備えたアーム１１０Ｂを有する６軸ロボットである。アーム１１０Ｂは、関節Ｊ２１を介して、基台ＢＳＢに支持されている。アーム１１０Ｂは、エンドエフェクターＥＥＢを移動させることができる。より具体的には、ロボット１００Ｂは、アーム１１０Ｂの６個の関節Ｊ２１〜Ｊ２６をそれぞれサーボモーターで回転または直進させることにより、アーム１１０Ｂの先端部に取りつけられたエンドエフェクターＥＥＢを、３次元空間中の指定された位置に指定された姿勢で配することができる。
【００８５】
アーム１１０Ｂにおいて、関節Ｊ２２、関節Ｊ２３、関節Ｊ２５は、曲げ関節であり、関節Ｊ２１、関節Ｊ２４、関節Ｊ２６は、ねじり関節である。基台ＢＳＢとアーム要素Ｌ２１は、関節Ｊ２１を介して接続されている。アーム要素Ｌ２１とアーム要素Ｌ２２は、関節Ｊ２２を介して接続されている。アーム要素Ｌ２２とアーム要素Ｌ２３は、関節Ｊ２３を介して接続されている。アーム要素Ｌ２３とアーム要素Ｌ２４は、関節Ｊ２４を介して接続されている。アーム要素Ｌ２４とアーム要素Ｌ２５は、関節Ｊ２５を介して接続されている。アーム要素Ｌ２５と力検出部ＳＦ２２およびエンドエフェクターＥＥＢとは、関節Ｊ２６を介して接続されている。
【００８６】
アーム１１０Ｂの先端には、力検出部ＳＦ２２を介してエンドエフェクターＥＥＢが取り付けられている。エンドエフェクターＥＥＢの機能は、エンドエフェクターＥＥと同じである（図１参照）。
【００８７】
力検出部ＳＦ２２は、アーム１１０ＢとエンドエフェクターＥＥＢの間に設けられている。力検出部ＳＦ２２の機能および動作原理は、第１実施形態の力検出部ＳＦ１１と同じである（図１参照）。このような構成とすることにより、教示者によってエンドエフェクターＥＥＢに加えられる力を、力検出部ＳＦ２２によって正確に検出して、エンドエフェクターＥＥＢの移動を実行することができる（図２のＳ１４０，Ｓ１６６，Ｓ１６８参照）。
【００８８】
基台ＢＳＢは、床部に対して固定され、アーム１１０Ｂを支持している。基台ＢＳＢには、力検出部ＳＦ２１が設けられている。より具体的には、力検出部ＳＦ２１は、基台ＢＳＢと床部との間に、位置する。力検出部ＳＦ２１の機能および動作原理は、力検出部ＳＦ１１と同じである（図１参照）。技術の理解を容易にするため、図８において、床部の図示を省略する。
【００８９】
第２実施形態においても、ダイレクトティーチによる教示において、教示の処理を行う図２の処理と、衝突検知を行う図５の処理とが、教示装置５０のＣＰＵ５０１によって実行される。ただし、第２実施形態においては、図２のステップＳ１１０において、ＣＰＵ５０１は、力検出部ＳＦ２２の出力を受け取る。以下、図２の処理は、力検出部ＳＦ２２の出力、すなわち力検出部ＳＦ２２が検出した力に基づいて行われる。また、第２実施形態においては、図５のステップＳ２１０において、ＣＰＵ５０１は、力検出部ＳＦ２１の出力を受け取る。以下、図５の処理は、力検出部ＳＦ２１の出力、すなわち力検出部ＳＦ２１が検出した力に基づいて行われる。
【００９０】
このような処理を行うことにより、教示者によってエンドエフェクターＥＥＢに加えられる力を、力検出部ＳＦ２２によって正確に検出して、エンドエフェクターＥＥＢの移動を実行することができる（図２のＳ１４０，Ｓ１６６，Ｓ１６８参照）。また、アーム１１０Ｂと、アーム１１０Ｂに取りつけられている任意の構成と、に加えられた力を、力検出部ＳＦ２１で検出して、エンドエフェクターＥＥＢの停止を実行することができる（図５のＳ２４０，Ｓ２５０参照）。
【００９１】
本実施形態におけるアーム１１０Ｂを、「可動部」とも呼ぶ。力検出部ＳＦ２１を「第１検出部」とも呼ぶ。力検出部ＳＦ２２を「第２検出部」とも呼ぶ。
【００９２】
Ｃ．第３実施形態：
（１）図９は、複数のプロセッサーによってロボットの制御装置が構成される一例を示す概念図である。この例では、ロボット１００およびその動作制御装置３０の他に、パーソナルコンピューター４００，４００ｂと、ＬＡＮなどのネットワーク環境を介して提供されるクラウドサービス５００とが描かれている。パーソナルコンピューター４００，４００ｂは、それぞれプロセッサーとメモリーとを含んでいる。また、クラウドサービス５００においてもプロセッサーとメモリーを利用可能である。プロセッサーは、コンピューター実行可能な命令を実行する。これらの複数のプロセッサーの一部または全部を利用して、動作制御装置３０および教示装置５０を含むロボット制御装置２５を実現することが可能である。パーソナルコンピューター４００によって実現される教示装置を符号５０で示し、パーソナルコンピューター４００ｂによって実現される教示装置を符号５０ｂで示す。また、各種の情報を記憶する記憶部も、これらの複数のメモリーの一部または全部を利用して、実現することが可能である。
【００９３】
（２）図１０は、複数のプロセッサーによってロボットの制御装置が構成される他の例を示す概念図である。この例では、ロボット１００の動作制御装置３０が、ロボット１００の中に格納されている点が図９と異なる。この例においても、複数のプロセッサーの一部または全部を利用して、動作制御装置３０および教示装置５０を含むロボット制御装置２５を実現することが可能である。また、各種の情報を記憶する記憶部も、複数のメモリーの一部または全部を利用して、実現することが可能である。
【００９４】
Ｄ．他の実施形態：
Ｄ１．他の形態１：
（１）上記第１実施形態においては、基台ＢＳは床部８００に取りつけられており、アーム１１０を支持している。上記第２実施形態においては、基台ＢＳＢは床部に取りつけられており、アーム１１０Ｂを支持している。しかし、基台は、天井や架台に取りつけられており、可動部としてのアームが、基台からつり下げられていてもよい。そのような態様においては、基台と、天井や架台との間に、力検出部を配することができる。
【００９５】
（２）上記第１実施形態のステップＳ１６６においては、Ｕ軸正方向、Ｕ軸負方向、Ｖ軸正方向、Ｖ軸負方向、Ｗ軸正方向、およびＷ軸負方向の６方向のうち、第１検出力Ｆｄ１の回転の向きとの間でなす角が最も小さい方向に、０．５°、エンドエフェクターＥＥの回転が実行される（図２参照）。また、第１実施形態のステップＳ１６８においては、Ｘ軸正方向、Ｘ軸負方向、Ｙ軸正方向、Ｙ軸負方向、Ｚ軸正方向、およびＺ軸負方向の６方向のうち、第１検出力Ｆｄ１の向きとなす角が最も小さい方向に、０．５ｍｍ、エンドエフェクターＥＥの直線的な移動が実行される。
【００９６】
しかし、条件Ｂが具備された場合に実行される移動における移動の量は、他の量とすることもできる。たとえば、回転角度は、０．１°、１°、５°であってもよい。直線的な移動の距離は、０．１ｍｍ、１ｍｍ、５ｍｍであってもよい。
【００９７】
また、条件Ｂが具備された場合に実行される移動における移動の向きは、他の向きとすることもできる。たとえば、Ｕ軸正方向、Ｕ軸負方向、Ｖ軸正方向、Ｖ軸負方向、Ｗ軸正方向、およびＷ軸負方向の６方向の中の、あらかじめ定められた２方向、４方向などの５以下の方向のうち、第１検出力Ｆｄ１の回転の向きとの間でなす角が最も小さい方向に、回転が実行されてもよい。また、第１検出力Ｆｄ１の回転の向きに、回転が実行されてもよい。たとえば、Ｘ軸正方向、Ｘ軸負方向、Ｙ軸正方向、Ｙ軸負方向、Ｚ軸正方向、およびＺ軸負方向の６方向の中の、あらかじめ定められた２方向、４方向などの５以下の方向のうち、第１検出力Ｆｄ１の回転の向きとの間でなす角が最も小さい方向に、直線的な移動が実行されてもよい。
【００９８】
（３）上記実施形態においては、条件Ｄが具備された場合に、エンドエフェクターＥＥの停止が実行される（図５のＳ２２０，Ｓ２４０，Ｓ２５０）。しかし、条件Ｄが具備された場合に、エンドエフェクターが減速される態様とすることもできる。そのような態様としても、ロボット１００が破損する可能性を低減することができる。
【００９９】
Ｄ２．他の形態２：
（１）上記実施形態においては、終了時間閾値Ｔｔｈｅと、第１時間閾値Ｔｔｈ１と、第２時間閾値Ｔｔｈ２と、第３時間閾値Ｔｔｈ３とは、いずれも２００ｍｓに設定される。しかし、終了時間閾値Ｔｔｈｅと、第１時間閾値Ｔｔｈ１と、第２時間閾値Ｔｔｈ２と、第３時間閾値Ｔｔｈ３とは、他の値に設定されてもよい。また、上記実施形態においては、第１時間閾値Ｔｔｈ１は、第２時間閾値Ｔｔｈ２および第３時間閾値Ｔｔｈ３以下の値である。しかし、第１時間閾値Ｔｔｈ１は、第２時間閾値Ｔｔｈ２と同じ値であってもよいし、より大きくてもよい。また、第１時間閾値Ｔｔｈ１は、第３時間閾値Ｔｔｈ３と同じ値であってもよいし、より大きくてもよい。
【０１００】
（２）上記実施形態においては、条件Ｂ１またはＢ２が満たされた場合に、ステップＳ１６０の処理が行われる（図２のＳ１３０，Ｓ１６０参照）。しかし、条件Ｂ２の判定は行われず、条件Ｂ１が満たされた場合にもステップＳ１６０の処理が行われる態様とすることもできる。また、条件Ｂ１の判定は行われず、条件Ｂ２が満たされた場合にもステップＳ１６０の処理が行われる態様とすることもできる。
【０１０１】
（３）上記実施形態においては、条件Ｂ２は、第１検出力Ｆｄ１の大きさが、第３力閾値Ｆｔｈ３より大きく第１力閾値Ｆｔｈ１より小さい時間が、第２時間閾値Ｔｔｈ２より長い継続時間、継続したことである。しかし、条件Ｂ２は、第１検出力Ｆｄ１の大きさが、第３力閾値Ｆｔｈ３より大きい時間が、第２時間閾値Ｔｔｈ２より長い継続時間、継続したこと、とすることもできる。すなわち、条件Ｂ２において、第１検出力Ｆｄ１の大きさについて、上限を設けない態様とすることもできる。
【０１０２】
Ｄ３．他の形態３：
（１）上記実施形態においては、図２の処理は、あらかじめ定められた第１周期で繰り返される。図５の処理は、あらかじめ定められた第２周期で繰り返される。しかし、図２の処理と図５の処理の数なくとも一方は、一定の周期で切り替えされるのではなく、あらかじめ定められた条件が満たされるごとに処理が進行する態様で実行されてもよい。
【０１０３】
（２）上記実施形態においては、第１周期は、第２周期よりも長い。しかし、第１周期は第２周期以下であってもよい。
【０１０４】
Ｄ４．他の形態４：
上記実施形態においては、図２の処理が繰り返し実行される第１周期は、図５の処理が繰り返し実行される第２周期の２０倍である。しかし、第１周期と第２周期の関係は他の関係であってもよい。たとえば、第１周期は第２周期の２倍、５倍、１０倍、３０倍、５０倍、８０倍、１００倍とすることができる。ただし、第１周期は、第２周期の１０〜５０倍であることが好ましい。
【０１０５】
Ｄ５．他の形態５：
上記第１実施形態においては、力検出部ＳＦ１１は、基台ＢＳと床部８００との間に位置する（図１参照）。上記第２実施形態においては、力検出部ＳＦ２１は、基台ＢＳＢと床部との間に位置する（図８参照）。しかし、力検出部は、たとえば、基台と基台に最も近い関節との間や、基台に最も近い関節と２番目に近い関節との間に配されているなど、他の部位に設けられていてもよい。
【０１０６】
Ｄ６．他の形態６：
上記第１実施形態においては、基台ＢＳに設けられた力検出部ＳＦ１１の出力に基づいて、条件Ａ〜Ｅが判定される（図１、図２および図５参照）。しかし、各条件についての判定は、他の方法で検出される力に基づいて、行われてもよい。
【０１０７】
たとえば、各関節に設けられたトルクセンサー６１０（図１参照）が検出した各関節に付与されたトルクと、各アーム要素Ｌ１１〜Ｌ１３の重量および各関節の位置の情報に基づいて、アーム１１０に付与された力を計算することもできる。
【０１０８】
また、各条件についての判定は、関節に設けられたトルクセンサーと、基台に設けられた力検出部と、可動部とエンドエフェクターの間に設けられた力検出部と、のいずれを使用しておこなってもよい。ただし、条件Ａ〜Ｂの判定は、可動部とエンドエフェクターの間に設けられた力検出部、または関節に設けられたトルクセンサーを使用して行われることが好ましい。また、条件Ｄ，ＥＥの判定は、関節に設けられたトルクセンサー、または基台に設けられた力検出部を使用して行われることが好ましい。
【０１０９】
関節に設けられるトルクセンサーと、基台に設けられる力検出部と、可動部とエンドエフェクターの間に設けられる力検出部の少なくとも一部を備えないロボットシステムを構築することもできる（図１および図８参照）。そのようなロボットシステムにおいても、備えられている力検出部またはトルクセンサーを使用して、上記各条件の判定を行うことができる（図２および図５参照）。
【０１１０】
Ｄ７．他の形態７：
（１）上記第２実施形態においては、力検出部ＳＦ２２は、アーム１１０ＢとエンドエフェクターＥＥＢの間に設けられている（図８参照）。しかし、力検出部は、アームとしての可動部のうち、最も先端側にある関節と、２番目に先端側にある関節との間の部位に設けられるなど、他の部位に設けられていてもよい。
【０１１１】
（２）また、ロボットがスカラロボットであるか、垂直多関節ロボットであるかによらず、力検出部は、基台、エンドエフェクターと可動部の間以外にも、任意の場所に設けることができる。そして、力検出部の数は、１以上であれば、２個、３個、４個、５個、６個など、任意の数とすることができる。
【０１１２】
Ｄ８．他の形態８：
上記第２実施形態においては、基台ＢＳＢに設けられた力検出部ＳＦ２１の出力に基づいて、条件Ｄ，Ｅが判定される（図８および図５参照）。そして、アーム１１０ＢとエンドエフェクターＥＥＢの間に設けられた力検出部ＳＦ２２の出力に基づいて、条件Ａ〜Ｃが判定される。しかし、各条件についての判定は、他の形態６で説明したように、他の方法で検出される力に基づいて、行われてもよい。
【０１１３】
Ｄ９．他の形態９：
（１）上記実施形態においては、力検出部ＳＦ１１は、水晶圧電素子を備える力センサーである。しかし、各力検出部は、半導体を利用したピエゾ素子を備える力センサーや、ひずみゲージであってもよい。
【０１１４】
（２）上記実施形態においては、第３力閾値Ｆｔｈ３は、２Ｎに設定される。第１力閾値Ｆｔｈ１は、６Ｎに設定される。第２力閾値Ｆｔｈ２は、３０Ｎに設定される。しかし、第１力閾値Ｆｔｈ１〜第３力閾値Ｆｔｈ３は、５Ｎ、１０Ｎ、４０Ｎなど、他の値に設定されてもよい。ただし、第１力閾値Ｆｔｈ１は、６〜１２Ｎに設定されることが好ましい。第２力閾値Ｆｔｈ２は、３０Ｎ以上の値に設定されることが好ましい。第３力閾値Ｆｔｈ３は、１〜１０Ｎに設定されることが好ましく、２〜６Ｎに設定されることがより好ましい。なお、本明細書において、「Ａ〜Ｂ」で示される数値範囲は、Ａより大きくＢより小さい範囲である。
【０１１５】
Ｅ．さらに他の形態：
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【０１１６】
（１）本開示の一形態によれば、ロボットシステムが提供される。このロボットシステムは、基台と、前記基台に対して移動可能に設けられた可動部と、前記可動部に加えられた力を検出する力検出部と、を備えるロボットと、前記ロボットの教示において、前記力検出部によって検出された力に応じて前記可動部を制御する制御部と、を備える。前記制御部は、前記力検出部によって検出された第１検出力の大きさが第１力閾値より大きい時間が、０より大きく第１時間閾値より短い時間、継続したという第１条件が、前記教示において満たされた場合に、前記第１検出力の向きに応じた向きに、あらかじめ定められた量で、前記可動部を移動し、前記力検出部によって検出された第２検出力の大きさが、前記第１力閾値より大きい第２力閾値より大きいという第２条件が、前記可動部の前記移動中に満たされた場合に、前記可動部を減速または停止する。
この態様においては、力検出部は、可動部に加えられた力を検出する。そして、第１条件が具備されたことに起因する可動部の移動中に、衝突により可動部に第２力閾値より大きい力が加えられた場合に、力検出部によってこれを検知して、可動部の減速または停止を行うことができる。このため、ロボットが破損する可能性を低減することができる。
【０１１７】
（２）上記形態のロボットシステムにおいて、前記制御部は、前記第１検出力の大きさが、前記第１力閾値より小さい第３力閾値より大きい時間が、第２時間閾値より長い継続時間、継続したという第３条件が、前記教示において満たされた場合に、前記第１検出力の向きに応じた向きの前記あらかじめ定められた量の前記可動部の前記移動を、前記継続時間中、繰り返し実行する、態様とすることができる。
このような態様においては、教示者による一度の押圧で、あらかじめ定められた量の倍数の量の正確な移動を、可動部について、実現することができる。このため、教示者による教示の負荷を低減することができる。
【０１１８】
（３）上記形態のロボットシステムにおいて、前記制御部は、前記第１条件または前記第３条件が満たされたか否かを、前記教示において、第１周期で繰り返し判定し、前記第２条件が満たされたか否かを、前記エンドエフェクターの前記移動中に、第２周期で繰り返し判定し、前記第１周期は、前記第２周期よりも長い、態様とすることができる。
このような態様とすれば、第２周期を第１周期よりも短くすることにより、エンドエフェクターの移動中に意図せずに発生する衝突について、迅速に検知することができる。一方、第１周期を第２周期よりも長くすることにより、教示者によって加えられる外力については、十分な精度で検知しつつ、制御部の処理負荷を低減することができる。
【０１１９】
（４）上記形態のロボットシステムにおいて、前記力検出部は、圧電素子を備える力検出部を含み、前記制御部は、前記教示において、前記圧電素子を備える力検出部の出力に基づいて、前記第１検出力の向きに応じた向きの前記あらかじめ定められた量の前記可動部の前記移動を、前記継続時間中、繰り返し実行し、前記第３力閾値は、１Ｎより大きく、１０Ｎより小さい、態様とすることができる。
このような態様とすれば、第３力閾値が１Ｎより大きいため、圧電素子を備える力検出部において想定されるノイズを排除して、あらかじめ定められた量の可動部の移動を、繰り返し実行することができる。また、第３力閾値が１０Ｎより小さいため、教示者によるロボットへの外力の付与が、可動部の残留振動が十分小さい範囲で行われることとなる。
【０１２０】
上記形態のロボットシステムにおいて、前記第１周期は、前記第２周期の１０〜５０倍である、態様とすることができる。
このような態様とすれば、エンドエフェクターの移動中に意図せずに発生する衝突の迅速な検知と、教示者によって加えられる外力の十分な精度での検出を両立しつつ、制御部の処理負荷をより低減することができる。
【０１２１】
（５）上記形態のロボットシステムにおいて、前記１以上の力検出部は、前記基台に設けられている第１力検出部を含む、態様とすることができる。
このような態様とすれば、可動部と、可動部に取りつけられている任意の構成と、に加えられた力を、第１力検出部で検出することができる。
【０１２２】
（６）上記形態のロボットシステムにおいて、前記制御部は、前記教示において、前記第１力検出部の出力に基づいて、前記第１条件の判定を行い、前記可動部の前記移動中に、前記第１力検出部の出力に基づいて、前記第２条件の判定を行う、態様とすることができる。
このような態様とすれば、一つの第１力検出部によって、教示における外力に基づく可動部の移動と、可動部の移動中における可動部の減速または停止を実現することができる。
【０１２３】
（７）上記形態のロボットシステムにおいて、前記力検出部は、前記可動部に設けられたエンドエフェクターと、前記可動部との間に設けられた第２力検出部を含む、態様とすることができる。
このような態様とすれば、教示者によってエンドエフェクターに加えられる力を、第２力検出部によって正確に検出して、可動部の移動を実行することができる。
【０１２４】
（８）上記形態のロボットシステムにおいて、前記制御部は、前記教示において、前記第２力検出部の出力に基づいて、前記第１条件の判定を行い、前記可動部の前記移動中に、前記第１力検出部の出力に基づいて、前記第２条件の判定を行う、態様とすることができる。
このような態様とすれば、教示者によってエンドエフェクターに加えられる力を、第２力検出部によって正確に検出して、エンドエフェクターの移動を実行することができる。また、可動部と、可動部に取りつけられている任意の構成と、に加えられた力を、第１力検出部で検出して、エンドエフェクターの減速または停止を実行することができる。
【０１２５】
（９）本開示の他の形態によれば、制御装置が提供される。この制御装置は、基台と、前記基台に対して移動可能に設けられた可動部と、前記可動部に加えられた力を検出する力検出部と、を備えるロボットの教示において、前記力検出部によって検出された力に応じて前記可動部を制御する制御装置である。この制御装置は、前記力検出部によって検出された第１検出力の大きさが第１力閾値より大きい時間が、０より大きく第１時間閾値より短い時間、継続したという第１条件が、前記教示において満たされた場合に、前記第１検出力の向きに応じた向きに、あらかじめ定められた量で、前記可動部を移動し、前記力検出部によって検出された第２検出力の大きさが、前記第１力閾値より大きい第２力閾値より大きいという第２条件が、前記可動部の前記移動中に満たされた場合に、前記可動部を減速または停止する。
【０１２６】
本開示は、ロボットを制御する制御装置、ロボット、ロボットシステム、およびロボットの制御方法以外の種々の形態で実現することも可能である。例えば、ロボットの製造方法やロボットの制御方法を実現するコンピュータープログラム、そのコンピュータープログラムを記録した一時的でない記録媒体等の形態で実現することができる。
【０１２７】
上述した本開示の各形態の有する複数の構成要素はすべてが必須のものではなく、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、適宜、前記複数の構成要素の一部の構成要素について、その変更、削除、新たな他の構成要素との差し替え、限定内容の一部削除を行うことが可能である。また、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、上述した本開示の一形態に含まれる技術的特徴の一部又は全部を上述した本開示の他の形態に含まれる技術的特徴の一部又は全部と組み合わせて、本開示の独立した一形態とすることも可能である。
【符号の説明】
【０１２８】
１，１Ｂ…ロボットシステム、２５…ロボット制御装置、３０…動作制御装置、５０，５０ｂ…教示装置、５７…入力装置、５８…出力装置、１００，１００Ｂ…ロボット、１１０，１１０Ｂ…アーム、３０１…ＣＰＵ、３０２…ＲＡＭ、３０３…ＲＯＭ、４００，４００ｂ…パーソナルコンピューター、４１０ａ，４１０ｃ，４１０ｄ…サーボモーター、５００…クラウドサービス、５０１…ＣＰＵ、５０２…ＲＡＭ、５０３…ＲＯＭ、５１０ａ，５１０ｃ，５１０ｄ…減速機、６１０ａ，６１０ｄ…トルクセンサー、８００…床部、ＢＳ，ＢＳＢ…基台、Ｄｊ１，Ｄｊ２，Ｄｊ４…関節Ｊ１１，Ｊ１２，Ｊ１４における回転方向、ＥＥ，ＥＥＢ…エンドエフェクター、Ｆｄ１…第１検出力、Ｆｄ２…第２検出力、Ｆｔｈ１…第１力閾値、Ｆｔｈ２…第２力閾値、Ｆｔｈ３…第３力閾値、Ｆｔｈ４…第４力閾値、Ｇｆ１１，Ｇｆ１２，Ｇｆ１３…第１検出力Ｆｄ１の時間変化を表すグラフ、Ｇｆ２１，Ｇｆ２２，Ｇｆ２３，Ｇｆ２４…第２検出力Ｆｄ２の時間変化を表すグラフ、Ｊ１１〜Ｊ１４…関節、Ｊ２１〜Ｊ２６…関節、Ｌ１１〜Ｌ１３…アーム要素、Ｌ２１〜Ｌ２５…アーム要素、ＲＣ…ロボット座標系、ＳＦ１１…力検出部、ＳＦ２１，ＳＦ２２…力検出部、Ｔｂ０〜Ｔｂ２…時刻、Ｔｃ０〜Ｔｃ３…時刻、Ｔｄ０〜Ｔｄ７…時刻、Ｔｔｈ１…第１時間閾値、Ｔｔｈ２…第２時間閾値、Ｔｔｈ３…第３時間閾値、ＷＫ…ワークピース
【図１】
2020069552.tif 000003
【図２】
2020069552.tif 000004
【図３】
2020069552.tif 000005
【図４】
2020069552.tif 000006
【図５】
2020069552.tif 000007
【図６】
2020069552.tif 000008
【図７】
2020069552.tif 000009
【図８】
2020069552.tif 000010
【図９】
2020069552.tif 000011
【図１０】
2020069552.tif 000012