(57)【要約】【課題】熟練していないユーザーは、力制御パラメーターの調整に膨大な試行錯誤を要するか、または、事実上、力制御パラメーターの調整を行うことができない。【解決手段】ロボット制御装置は：前記力検出部によって検出される力の大きさに基づいて行われる力制御を含む第１動作を実行すべき第１位置を表す第１位置情報を受け付ける受付部と；記憶部に記憶されている前記ロボットの構成に関する固有情報と、前記第１位置情報と、に基づいて、前記第１動作の前記力制御において使用されるべき質量係数と粘性係数との少なくとも一方の初期値を決定し、記憶部に記憶させる初期値決定部と、を備える。【選択図】図４
2019188555.tif 000002
【特許請求の範囲】
【請求項１】
外部から加えられる力の大きさを検出する力検出部を備えるロボットの動作を制御するロボット制御装置であって、
前記力検出部によって検出される力の大きさに基づいて行われる力制御を含む第１動作を開始する第１位置を表す第１位置情報を受け付ける受付部と、
前記ロボットの構成に関する固有情報と、前記第１位置情報と、に基づいて、前記第１動作の前記力制御において使用される質量係数と粘性係数とのいずれかの初期値を決定し、記憶部に記憶させる初期値決定部と、
を備える、ロボット制御装置。
【請求項２】
請求項１記載のロボット制御装置であって、
前記受付部は、
前記ロボットに取りつけられているエンドエフェクターと、
前記ロボットに処理される対象物と、
前記対象物が置かれる台と、のうちの１以上の構成に関する選択情報を受け付けることができ、
前記初期値決定部は、前記選択情報に基づいて、前記初期値を決定する、ロボット制御装置。
【請求項３】
請求項１または２記載のロボット制御装置であって、
前記初期値決定部は、前記初期値を、前記第１位置情報と対応づけて前記記憶部に記憶させ、
前記受付部は、前記力制御を含む第２動作を開始する位置であって前記第１位置とは異なる第２位置を表す第２位置情報を受け付け、
前記初期値決定部は、前記第１位置情報と対応づけられた前記初期値と、前記第１位置情報と、前記第２位置情報と、に基づいて、前記第２動作の前記力制御において使用される前記いずれかの係数の初期値を決定し、前記第２位置情報と対応づけて前記記憶部に記憶させる、ロボット制御装置。
【請求項４】
請求項３記載のロボット制御装置であって、さらに、
前記第２動作の前記力制御において使用される前記いずれかの係数の設定値を受け取って、前記記憶部に記憶させる設定部を備え、
前記設定部は、前記第２動作の前記力制御において使用される前記いずれかの係数の前記初期値に基づいてあらかじめ定められる範囲内に、前記受け取った設定値が含まれない場合は、エラーメッセージの出力を行う、ロボット制御装置。
【請求項５】
請求項１または２記載のロボット制御装置であって、さらに、
前記第１動作の前記力制御において使用される前記いずれかの係数の設定値を受け取って、前記記憶部に記憶させる設定部を備え、
前記設定部は、前記初期値に基づいてあらかじめ定められる範囲内に、前記受け取った設定値が含まれない場合は、エラーメッセージの出力を行う、ロボット制御装置。
【請求項６】
請求項１から５のいずれか１項に記載のロボット制御装置と、
前記ロボット制御装置によって制御される前記ロボットと、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、力制御を行うロボットの力制御パラメーターの設定に関する。
【背景技術】
【０００２】
従来、力制御パラメーターの初期値と、操作部から入力される操作内容と、力センサー等のセンサーからのフィードバック値に基づいて、力制御パラメーターを調整する技術が存在する（特許文献１）。力制御パラメーターの初期値は、動作によらず一定の値である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−２３３８１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上記の技術においては、動作によらず一定の力制御パラメーターの初期値を、操作部の操作によって、具体的な各動作に適した値に調整することは、初心者には容易ではない。このため、そのような処理に熟練していないユーザーは、力制御パラメーターの調整に膨大な試行錯誤を要するか、または、事実上、力制御パラメーターの調整を行うことができない。
【課題を解決するための手段】
【０００５】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態または適用例として実現することが可能である。
【０００６】
本発明の一形態によれば、外部から加えられる力の大きさを検出する力検出部を備えるロボットの動作を制御するロボット制御装置が提供される。このロボット制御装置は：前記力検出部によって検出される力の大きさに基づいて行われる力制御を含む第１動作を開始する第１位置を表す第１位置情報を受け付ける受付部と；前記ロボットの構成に関する固有情報と、前記第１位置情報と、に基づいて、前記第１動作の前記力制御において使用される質量係数と粘性係数とのいずれかの初期値を決定し、記憶部に記憶させる初期値決定部と、を備える。
【図面の簡単な説明】
【０００７】
【図１】本実施形態に係るロボットシステム１の構成を示す図である。
【図２】ロボット２０と、動作制御装置３０と、教示装置５０との機能構成を示す図である。
【図３】力制御を含む動作のパラメーターを決定する際の処理を示すフローチャートである。
【図４】力制御パラメーターの初期値を決定する際の処理を示すフローチャートである。
【図５】力制御パラメーターの設定値を決定する際の処理を示すフローチャートである。
【図６】図５のステップＳ５１０においてにおいて表示されるメイン画面を示す図である。
【図７】第１対象動作の力制御パラメーターの設定値に基づいて、第２対象動作の力制御パラメーターの初期値を決定する際の処理を示すフローチャートである。
【図８】図５のステップＳ５３０，Ｓ５５０，Ｓ５５５内の詳細な処理を示すフローチャートである。
【図９】図８のステップＳ５５３においてにおいて表示されるメイン画面を示す図である。
【図１０】複数のプロセッサーによってロボットの制御装置が構成される一例を示す概念図である。
【図１１】複数のプロセッサーによってロボットの制御装置が構成される他の例を示す概念図である。
【発明を実施するための形態】
【０００８】
Ａ．第１実施形態：
Ａ１．ロボットシステムの構成：
図１は、本実施形態に係るロボットシステム１の構成を示す図である。ロボットシステム１は、ロボット２０と、ロボット制御装置２５を備える。ロボット制御装置２５は、ロボット２０を制御する。ロボット制御装置２５は、動作制御装置３０と、教示装置５０とによって構成される。
【０００９】
動作制御装置３０は、ユーザーによる教示作業によって設定された目標位置において、目標力が実現されるように、ロボット２０のアームＡを制御する。動作制御装置３０は、プロセッサーであるＣＰＵ（Central Processing Unit）３０ａやＲＡＭ（Random Access Memory）３０ｂやＲＯＭ（Read−Only Memory）３０ｃを備える。動作制御装置３０には、ロボット２０の制御を行うための制御プログラムがインストールされている。動作制御装置３０においては、これらのハードウェア資源と制御プログラムとが協働する。動作制御装置３０の機能については、後に詳細に説明する。
【００１０】
教示装置５０は、動作制御装置３０に目標位置Ｓｔと目標力ｆｓｔとを教示する。教示装置５０は、ＣＰＵ５０ａ、ＲＡＭ５０ｂ、ＲＯＭ５０ｃ等を備える。教示装置５０には、動作制御装置３０に目標位置Ｓｔと目標力ｆｓｔとを教示するための教示プログラムがインストールされている。教示装置５０においては、これらのハードウェア資源と教示プログラムとが協働する。
【００１１】
教示装置５０は、さらに、入力装置５７と、出力装置５８を備える。入力装置５７は、例えば、マウス、キーボード、タッチパネル等であり、ユーザーからの指示を受け付ける。出力装置５８は、例えば、ディスプレイやスピーカー等であり、ユーザーに各種の情報を出力する。教示装置５０の機能については、後に詳細に説明する。
【００１２】
ロボット２０は、アームＡと、アームＡを支持する支持台Ｂを備える単腕ロボットである。アームＡは、６軸の垂直多関節型のアームである。アームＡは、５個のアーム部材であるリンクＬ１〜リンクＬ５と、６つの関節である関節Ｊ１〜Ｊ６を備える。関節Ｊ２、関節Ｊ３、関節Ｊ５は、曲げ関節であり、関節Ｊ１、関節Ｊ４、関節Ｊ６は、ねじり関節である。
【００１３】
支持台ＢとリンクＬ１は、関節Ｊ１を介して接続されている。リンクＬ１とリンクＬ２は、関節Ｊ２を介して接続されている。リンクＬ２とリンクＬ３は、関節Ｊ３を介して接続されている。リンクＬ３とリンクＬ４は、関節Ｊ４を介して接続されている。リンクＬ４とリンクＬ５は、関節Ｊ５を介して接続されている。リンクＬ５と力検出部２１およびエンドエフェクターＥとは、関節Ｊ６を介して接続されている。
【００１４】
アームＡの先端には、力検出部２１を介してエンドエフェクターＥが取り付けられている。エンドエフェクターＥは、ワークＷを把持するための装置である。エンドエフェクターＥの位置は、ＴＣＰ（Tool  Center  Point）によって規定される。本実施形態において、ＴＣＰは、関節Ｊ６の回転軸上にある。動作制御装置３０は、アームＡを駆動することによって、ロボット座標系ＲＣにおいてＴＣＰの位置を制御する。
【００１５】
力検出部２１は、外部から加えられる力の大きさを検出することができる６軸の力センサーである。力検出部２１は、互いに直交する３個の検出軸上の力の大きさと、それら３個の検出軸周りのトルクの大きさとを検出する。
【００１６】
本実施形態においては、支持台Ｂの位置を基準として、ロボット２０が設置された空間を規定する座標系をロボット座標系ＲＣと表す。ロボット座標系ＲＣは、水平面上において互いに直交するＸ軸およびＹ軸と、鉛直上向きを正方向とするＺ軸とによって規定される三次元直交座標系である。本明細書において、単に「Ｘ軸」と称した場合、ロボット座標系ＲＣにおけるＸ軸のことを表す。単に「Ｙ軸」と称した場合、ロボット座標系ＲＣにおけるＹ軸のことを表す。単に「Ｚ軸」と称した場合、ロボット座標系ＲＣにおけるＺ軸のことを表す。ロボット座標系ＲＣにおける任意の位置は、Ｘ軸方向の位置ＤＸと、Ｙ軸方向の位置ＤＹと、Ｚ軸方向の位置ＤＺとにより特定できる。
【００１７】
本実施形態においては、Ｘ軸周りの回転の角度位置ＲＸによって表す。Ｙ軸周りの回転の角度位置ＲＹによって表す。Ｚ軸周りの回転の角度位置ＲＺによって表す。ロボット座標系ＲＣにおける任意の姿勢は、Ｘ軸周りの角度位置ＲＸ、Ｙ軸周りの角度位置ＲＹ、Ｚ軸周りの角度位置ＲＺにより表現できる。
【００１８】
本明細書において、「位置」と表記した場合、狭義の位置に加えて姿勢をも意味する。「力」と表記した場合、３次元空間において向きと大きさによって規定される狭義の力に加えて、角度位置ＲＸ、角度位置ＲＹ、角度位置ＲＺそれぞれの回転方向に作用するトルクも意味し得る。
【００１９】
アームＡと、力検出部２１と、エンドエフェクターＥとは、ケーブルによって動作制御装置３０と通信可能に接続されている。
【００２０】
Ａ２．動作制御装置３０により動作制御：
図２は、ロボット２０と、動作制御装置３０と、教示装置５０との機能構成を示す図である。図２に示したＳは、ロボット座標系ＲＣを規定する軸の方向（Ｘ軸方向、Ｙ軸方向、Ｚ軸方向、角度位置ＲＸの方向、角度位置ＲＹの方向、角度位置ＲＺの方向）のうちのいずれか１つの方向を表す。例えば、Ｓが表わす方向がＸ軸方向の場合、ロボット座標系ＲＣにおいて設定された目標位置のＸ軸方向成分がＳｔ＝Ｘｔと表記され、目標力のＸ軸方向成分がｆｓｔ＝ｆＸｔと表記される。また、Ｓは、Ｓが表わす方向の軸に沿った位置も表す。
【００２１】
ロボット２０は、関節Ｊ１〜Ｊ６に、それぞれ、駆動部としてのモーターＭ１〜Ｍ６と、エンコーダーＥ１〜エンコーダーＥ６とを、備える（図２の上段参照）。モーターＭ１とエンコーダーＥ１は、関節Ｊ１に備えられている。モーターＭ１は、関節Ｊ１を駆動する。エンコーダーＥ１は、モーターＭ１の駆動位置を検出する。モーターＭ２〜Ｍ６と、エンコーダーＥ２〜Ｅ６も、関節Ｊ２〜Ｊ６において、同様の機能を奏する。
【００２２】
動作制御装置３０は、モーターＭ１〜Ｍ６の角度位置の組み合わせと、ロボット座標系ＲＣにおけるＴＣＰの位置との対応関係Ｕを、ＲＡＭ内に記憶している（図２の中段右側参照）。動作制御装置３０は、ロボット２０が行う作業の工程ごとに、目標位置Ｓｔと目標力ｆｓｔとを対応付けて、ＲＡＭ内に記憶している。目標位置Ｓｔと目標力ｆｓｔは、後述する教示作業によって設定される。
【００２３】
動作制御装置３０は、モーターＭ１〜Ｍ６の回転角度Ｄａを取得すると、対応関係Ｕに基づいて、回転角度Ｄａをロボット座標系ＲＣにおけるＴＣＰの位置に変換する（図２の右側中段参照）。より具体的には、回転角度Ｄａは、位置ＤＸ、位置ＤＹ、位置ＤＺ、角度位置ＲＸ、角度位置ＲＹ、および角度位置ＲＺの組み合わせに変換される。
【００２４】
力検出部２１は、独自の座標系において力ｆｓを検出する（図２の右上部参照）。力検出部２１とＴＣＰとの相対位置および相対方向が、既知のデータとして動作制御装置３０のＲＡＭ３０ｂに記憶されている（図２において図示省略）。このため、動作制御装置３０は、ＴＣＰの位置Ｓと、力検出部２１の出力に基づいて、ロボット座標系ＲＣにおける力ｆｓを特定できる。
【００２５】
動作制御装置３０は、ロボット座標系ＲＣに変換した後の力ｆｓに対して重力補償を行う（図２の右下部参照）。「重力補償」とは、力ｆｓから重力成分を除去する処理である。重力補償を行った力ｆｓは、エンドエフェクターＥに作用している重力以外の力を表す。エンドエフェクターＥに作用している重力以外の力を、以下では「作用力」とも呼ぶ。
【００２６】
動作制御装置３０は、目標力ｆｓｔと作用力ｆｓとをコンプライアントモーション制御の運動方程式に代入することにより、力由来補正量ΔＳを特定する（図２の左側中段参照）。本実施形態では、コンプライアントモーション制御として、インピーダンス制御を採用する。「インピーダンス制御」とは、仮想の機械的インピーダンスをモーターＭ１〜Ｍ６によって実現する制御である。以下に示した式（１）は、インピーダンス制御の運動方程式である。
【００２７】
【数１】
2019188555.tif 000003
【００２８】
式（１）において、ｍは、質量パラメーターである。質量パラメーターは、慣性パラメーターとも呼ぶ。ｄは、粘性パラメーターである。ｋは、弾性パラメーターである。各パラメーターｍ、ｄ、ｋは、教示装置５０から得られる。各パラメーターｍ、ｄ、ｋは、方向毎に異なる値に設定される構成であってもよく、方向にかかわらず共通の値に設定されてもよい。
【００２９】
式（１）において、Δｆｓ（ｔ）は、目標力ｆｓｔに対する作用力ｆｓの偏差である。ｔは、時間を表す。目標力ｆｓｔは、ロボット２０が行う工程において、一定値として設定されてもよく、時間に依存する関数によって設定されてもよい。式（１）における微分とは、時間による微分を意味する。
【００３０】
式（１）から得られる力由来補正量ΔＳとは、ＴＣＰが機械的インピーダンスによる作用力ｆｓを受けた場合に、目標力ｆｓｔと作用力ｆｓとの力偏差Δｆｓ（ｔ）を解消して目標力ｆｓｔを達成するために、ＴＣＰが移動すべき変位を意味する。ここで、「変位」は、直線進距離および／または回転角で表される。
【００３１】
動作制御装置３０は、目標位置Ｓｔに、力由来補正量ΔＳを加算することにより、インピーダンス制御を考慮した補正目標位置（Ｓｔ＋ΔＳ）を特定する（図２の中段右側参照）。
【００３２】
動作制御装置３０は、対応関係Ｕに基づいて、ロボット座標系ＲＣにおける６つの方向（Ｘ軸方向、Ｙ軸方向、Ｚ軸方向、角度位置ＲＸの方向、角度位置ＲＹの方向、角度位置ＲＺの方向）それぞれについての補正目標位置（Ｓｔ＋ΔＳ）を、モーターＭ１〜Ｍ６それぞれの目標の駆動位置である目標角度Ｄｔに変換する（図２の中段右側参照）。
【００３３】
動作制御装置３０は、エンコーダーＥ１〜Ｅ６の出力が示すモーターＭ１〜Ｍ６の回転角度Ｄａと、制御目標である目標角度Ｄｔと、を一致させるフィードバック制御を実行する。より具体的には、動作制御装置３０は、回転角度Ｄａと目標角度Ｄｔとの偏差Ｄｅ、その偏差Ｄｅの積分、およびその偏差Ｄｅの微分を使用して、位置についてのＰＩＤ制御を実行する。図２において、比例ゲインＫｐｐ、積分ゲインＫｐｉ、微分ゲインＫｐｄを示す（図２の中央部参照）。
【００３４】
動作制御装置３０は、上記Ｋｐｐ，Ｋｐｉ，Ｋｐｄを使用した位置についてのＰＩＤ制御の出力と、回転角度Ｄａの微分との偏差、その偏差の積分、その偏差の微分を使用して、速度についてのＰＩＤ制御を実行する。図２において、比例ゲインＫｖｐ、積分ゲインＫｖｉ、微分ゲインＫｖｄを示す（図２の中段左側参照）。
【００３５】
以上の処理の結果、モーターＭ１〜Ｍ６の制御量Ｄｃが決定される。動作制御装置３０は、各モーターＭ１〜Ｍ６の制御量Ｄｃで、各モーターＭ１〜Ｍ６を制御する。
【００３６】
以上のような処理により、動作制御装置３０は、目標位置Ｓｔと目標力ｆｓｔとに基づいてアームＡを制御することができる。
【００３７】
Ａ３．教示装置５０における処理：
（１）力制御パラメーターの初期値の決定と設定値の決定：
図３は、力制御を含む動作のパラメーターを決定する際の処理を示すフローチャートである。力制御を含む動作は、力検出部２１（図１参照）によって検出される力の大きさに基づいて行われる。力制御を含む動作のパラメーターには、質量パラメーターｍ、粘性パラメーターｄ、弾性パラメーターｋが含まれる。以下では、質量パラメーターｍ、粘性パラメーターｄ、弾性パラメーターｋを、「力制御パラメーター」と総称する。
【００３８】
ステップＳ２０において、ロボット制御装置２５（図１参照）を使用して、力制御を含む動作を実行すべき位置および姿勢、ならびに生じさせるべき力（トルクを含む）の向きおよび大きさに応じて、力制御パラメーターの初期値が決定される。その後、ステップＳ４０において、力制御パラメーターの初期値に基づいて、ロボット制御装置２５によロボット２０を動かして、力制御パラメーターの設定値が決定される。ステップＳ４０の処理を、ロボット２０に対する「教示」とも呼ぶ。ステップＳ４０の後、処理は終了する。以下、図３の処理によって力制御パラメーターを決定される動作を、「対象動作」と呼ぶ。
【００３９】
（２）力制御パラメーターの初期値の決定：
図４は、力制御パラメーターの初期値を決定する際の処理を示すフローチャートである（図３のＳ２０参照）。図４の処理は、具体的には、教示装置５０のＣＰＵ５０ａによって実行される。ステップＳ１２０において、ユーザーは、教示装置５０に、対象動作を開始すべきＴＣＰの位置およびエンドエフェクターＥの姿勢を表す位置情報を入力する。「対象動作を開始すべき位置およびエンドエフェクターＥの姿勢」は、たとえば、力制御において、力検出部２１に対して力が作用するようにアームＡを制御する直前のＴＣＰの位置および姿勢や、加工具を把持したエンドエフェクターＥによって他の物体を加工する直前の位置および姿勢等である。位置情報は、具体的には、ロボット座標系ＲＣのＸ軸方向の位置、Ｙ軸方向の位置、Ｚ軸方向の位置、Ｘ軸周りの回転の角度位置ＲＸ、Ｙ軸周りの回転の角度位置ＲＹ、Ｚ軸周りの回転の角度位置ＲＺの組み合わせである。
【００４０】
ユーザーは、教示装置５０に、対象動作を実行する際にワークＷに加えるべき目標力ｆｓｔの方向と大きさを表す力情報を入力する。力情報は、具体的には、ロボット座標系ＲＣのＸ軸方向の力成分、Ｙ軸方向の力成分、Ｚ軸方向の力成分、角度位置ＲＸの方向のトルク成分、角度位置ＲＹの方向のトルク成分、角度位置ＲＺの方向のトルク成分の組み合わせによって特定される。ただし、本実施形態のステップＳ１２０においては、目標力ｆｓｔの方向として、上記の６つの方向のうちのいずれか一つの方向が選択的に入力されるように、教示装置５０は構成されている。また、目標力ｆｓｔの大きさとして、任意の数値が入力されるように、教示装置５０が構成されている。目標力ｆｓｔの大きさは、正の値と負の値を取りうる。
【００４１】
位置情報および力情報の具体的な値は、対象動作に基づいて一意に決まる値である。このため、力制御パラメーターの設定に熟練していないユーザーでも、これらの値は入力可能である。これらの値は、入力装置５７（図１参照）を介して教示装置５０に入力される。入力された位置情報と力情報は、対象動作を識別することができる情報と対応づけられて、受付部５３によって、ＲＡＭ５０ｂに格納される。ステップＳ１２０において、位置情報および力情報を受け付ける教示装置５０の機能部を、図２において、「受付部５３」として示す。
【００４２】
図４のステップＳ１４０において、ユーザーは、教示装置５０に、エンドエフェクターＥの情報と、ワークＷの情報と、を入力する。エンドエフェクターＥの情報は、（ｉ）エンドエフェクターＥの重量の情報と、（ｉｉ）アームＡの先端の位置と、アームＡに取りつけられたエンドエフェクターＥの重心位置と、の相対位置関係の情報と、を含む。これらの情報を、「エンドエフェクター情報」と呼ぶ。
【００４３】
ワークＷの情報は、（ｉ）ワークＷの重量の情報と、（ｉｉ）対象動作においてワークＷがエンドエフェクターＥに把持された際のワークＷの重心位置と、エンドエフェクターＥの重心位置と、の相対位置関係の情報と、（ｉｉｉ）対象動作においてワークＷがエンドエフェクターＥに把持された際のエンドエフェクターＥとワークＷの接触点の位置と、エンドエフェクターＥの重心位置と、の相対位置関係の情報と、を含む。これらの情報を、「ワーク情報」と呼ぶ。
【００４４】
エンドエフェクター情報とワーク情報とは、対象動作を識別するための情報と対応づけられて、教示装置５０のＲＡＭ５０ｂに格納される。ＲＡＭ５０ｂ内のエンドエフェクター情報を、図１において「エンドエフェクター情報Ｉｅ」として示す。ＲＡＭ５０ｂ内のワーク情報を、図１において「ワーク情報Ｉｗ」として示す。
【００４５】
エンドエフェクター情報およびワーク情報の具体的な値も、対象動作に基づいて決まる値である。このため、力制御の動作パラメーターの設定に熟練していないユーザーでも、これらの値は入力可能である。これらの値は、教示装置５０の入力装置５７を介して入力される。ステップＳ１４０において、エンドエフェクターＥの情報と、ワークＷの情報と、を受け付ける教示装置５０の機能部は、受付部５３である。
【００４６】
図４のステップＳ１６０において、教示装置５０は、動作制御装置３０のＲＡＭ３０ｂ（図１参照）から、ロボット２０のハードウェア構成に関する固有情報Ｉｃを取得する。ロボット２０の固有情報Ｉｃは、具体的には、（ｉ）隣り合う関節同士の間の長さ（すなわち、リンクＬ１〜リンクＬ５の長さ）、（ｉｉ）リンクＬ１〜リンクＬ５の重量、（ｉｉｉ）関節Ｊ１〜Ｊ６の剛性である。なお、「関節の剛性」とは、関節の回転角度がある値に設定されている状態で、その関節を中心とする回転力を外部から受けた場合に、どの程度、その関節の回転角度がずれるかを示す値である。これらの値は、ロボット２０に固有の値である。これらの値は、動作制御装置３０のＲＡＭ３０ｂにあらかじめ格納されている。ステップＳ１６０において、ロボット２０の固有情報Ｉｃを取得する教示装置５０の機能部を、図２において、「取得部５５」として示す。
【００４７】
教示装置５０は、位置情報（Ｓ１２０参照）と、エンドエフェクター情報およびワーク情報（Ｓ１４０参照）と、固有情報Ｉｃと、に基づいて、位置情報が表す位置にＴＣＰがある状態での、エンドエフェクターＥとワークＷの接触点における、Ｘ軸方向、Ｙ軸方向、Ｚ軸方向についての剛性を求める。接触点におけるＸ軸方向の剛性とは、接触点においてＸ軸方向に沿った力をロボット２０が受けた場合に、接触点がどの程度ずれるかを示す値である。Ｙ軸方向の剛性およびＺ軸方向の剛性も、Ｙ軸方向およびＺ軸方向についての同様の概念である。
【００４８】
教示装置５０は、上記の各情報に加えて、動作制御装置３０のＲＡＭ３０ｂに格納されているモーターＭ１〜Ｍ６の角度位置の組み合わせとロボット座標系ＲＣにおけるＴＣＰの位置との対応関係Ｕ（図２参照）を参照して、接触点における、Ｘ軸方向、Ｙ軸方向、Ｚ軸方向についての剛性を求める。
【００４９】
ステップＳ１８０において、教示装置５０は、Ｘ軸方向、Ｙ軸方向、Ｚ軸方向についての剛性と、力情報（Ｓ１２０参照）が含む力の向きの情報と、に基づいて、接触点における力を加える方向についてのロボット２０の剛性を計算する。力を加える方向についての剛性は、対象動作を識別するための情報と対応づけられて、教示装置５０のＲＡＭ５０ｂに格納される。ＲＡＭ５０ｂ内に格納された、接触点における力を加える方向についてのロボット２０の剛性の情報を、図１において「第１動作の剛性Ｉｓ１」として示す。
【００５０】
教示装置５０は、接触点における力を加える方向についての剛性と、対象動作において加える力の大きさとに基づいて、対象動作において力を加える方向についての質量パラメーターｍ、粘性パラメーターｄ、弾性パラメーターｋの初期値を決定する。なお、本実施形態においては、弾性パラメーターｋの初期値は、一定値に設定される。
【００５１】
教示装置５０は、対象動作についての質量パラメーターｍ、粘性パラメーターｄ、および弾性パラメーターｋの初期値を、対象動作を識別するための情報と対応づけて、教示装置５０のＲＡＭ５０ｂに格納する。ＲＡＭ５０ｂ内に格納された質量パラメーターｍ、粘性パラメーターｄ、および弾性パラメーターｋの初期値を、図１において「力制御パラメーターの初期値Ｉｖ１」として示す。ステップＳ１６０，Ｓ１８０において、質量パラメーターｍ、粘性パラメーターｄ、および弾性パラメーターｋの初期値を決定し、ＲＡＭ５０ｂに格納する教示装置５０の機能部を、図２において、「初期値決定部５６」として示す。ステップＳ１８０の後、処理は終了する。
【００５２】
（３）力制御パラメーターの設定値の決定：
図５は、力制御パラメーターの設定値を決定する際の処理を示すフローチャートである（図３のＳ４０参照）。ステップＳ５００において、教示装置５０は、力制御を含む対象動作の開始位置までＴＣＰを移動させる。対象動作の開始位置は、図５の力制御パラメーターの決定の処理に先立って、あらかじめ入力されている。
【００５３】
ステップＳ５１０において、教示装置５０は、ＧＵＩ（Graphical  User  Interface）であるメイン画面を、出力装置５８に表示する。
【００５４】
図６は、図５のステップＳ５１０においてにおいて表示されるメイン画面を示す図である。メイン画面には、入力窓Ｎ１〜入力窓Ｎ６と、グラフ領域Ｇ１及びグラフ領域Ｇ２と、動作ボタンＢ１及び決定ボタンＢ２とが含まれている。
【００５５】
入力窓Ｎ１は、目標力ｆｓｔの方向を受け付けるためのユーザーインターフェイスである。入力窓Ｎ２は、目標力ｆｓｔの大きさを受け付けるためのユーザーインターフェイスである。入力窓Ｎ１，Ｎ２には、図４のＳ１２０で入力された力情報に基づいて、目標力ｆｓｔの方向と目標力ｆｓｔの大きさとが、それぞれ表示されている。
【００５６】
入力窓Ｎ３は、弾性パラメーターｋを受け付けるためのユーザーインターフェイスである。入力窓Ｎ４は、粘性パラメーターｄを受け付けるためのユーザーインターフェイスである。入力窓Ｎ５は、質量パラメーターｍを受け付けるためのユーザーインターフェイスである。入力窓Ｎ３〜Ｎ５には、図４の処理で決定された質量パラメーターｍ、粘性パラメーターｄ、および弾性パラメーターｋの初期値が、それぞれ表示されている。入力窓Ｎ６は、力制御パラメーターの値の組み合わせに対応付けられる候補識別情報の選択を受け付けるためのユーザーインターフェイスである。
【００５７】
グラフ領域Ｇ１は、ユーザーが入力した力制御パラメーターの組み合わせに基づいてロボット２０を動作させ測定された作用力ｆｓの時間応答の波形を示す領域である。グラフ領域Ｇ２は、力制御パラメーターの組み合わせと対応づけられて教示装置５０のＲＡＭ５０ｂに記憶されている、作用力ｆｓの時間応答の波形Ｗｄを示す領域である。
【００５８】
動作ボタンＢ１は、入力窓Ｎ３〜Ｎ５に入力された力制御パラメーターの組み合わせの候補にしたがってロボット２０を動作させ、作用力ｆｓの時間応答波形のグラフをグラフ領域Ｇ１に表示させるためのボタンである。決定ボタンＢ２は、入力窓Ｎ６を介して選択されている力制御パラメーターの組み合わせの候補を、力制御パラメーターの設定値として確定させるボタンである。
【００５９】
図５のステップＳ５２０において、教示装置５０は、メイン画面の入力窓Ｎ１，Ｎ２を介して目標力ｆｓｔの方向と、目標力ｆｓｔの大きさとを受け付ける。より具体的には、入力窓Ｎ１を介して、目標力ｆｓｔの方向として、ロボット座標系ＲＣにおける６つの方向、すなわち、Ｘ軸方向、Ｙ軸方向、Ｚ軸方向、Ｕ軸方向（Ｘ軸周りの回転方向）、Ｖ軸方向（Ｙ軸周りの回転方向）、Ｗ軸方向（Ｚ軸周りの回転方向）のうちのいずれかの方向が入力される。入力窓Ｎ２を介して、目標力ｆｓｔの大きさを表す任意の数値が入力され得る。目標力ｆｓｔの大きさは、正の値と負の値を取り得る。なお、本実施形態においては、入力窓Ｎ１，Ｎ２には、あらかじめ、図４のステップＳ１２０で入力された力情報に基づく値が入力されている。ユーザーは、通常は、入力窓Ｎ１，Ｎ２の入力値を変更する必要はない。ただし、ユーザーは、必要に応じて、入力窓Ｎ１，Ｎ２に入力されている値を変更することができる。
【００６０】
ステップＳ５３０において、教示装置５０は、入力窓Ｎ３を介して、弾性パラメーターｋを受け付ける。教示装置５０は、図４の処理で決定された弾性パラメーターｋの初期値を、あらかじめＲＡＭ５０ｂから読み出して、入力窓Ｎ３に提示する。ユーザーは、弾性パラメーターｋの初期値を参照しつつ、必要に応じて初期値とは異なる弾性パラメーターｋの値を入力窓Ｎ３に入力する。このような構成とすることにより、力制御パラメーターの調整に熟練していないユーザーであっても、容易に、弾性パラメーターの設定値を決定することができる。
【００６１】
第１実施形態においては、弾性パラメーターｋの値としては、任意の数値が入力され得る。入力された弾性パラメーターｋの設定値は、対象動作を識別するための情報と対応づけられて、教示装置５０のＲＡＭ５０ｂに格納される。
【００６２】
ステップＳ５４０において、教示装置５０は、受け付けた弾性パラメーターｋに対応する１以上の記憶波形Ｗｍをグラフ領域Ｇ２（図６参照）において表示する。グラフ領域Ｇ２の横軸は、時刻を示す。グラフ領域Ｇ２の縦軸は、力の大きさを示す。記憶波形Ｗｍは、入力窓Ｎ３を介して設定された弾性パラメーターｋに基づいてロボット２０が制御された場合に、力検出部２１が検出する力ｆｓの時間応答の波形である。記憶波形Ｗｍは、入力窓Ｎ１において受け付けられた目標力ｆｓｔに収束する波形である。
【００６３】
教示装置５０のＲＡＭ５０ｂは、弾性パラメーターｋの値、粘性パラメーターｄの値、および質量パラメーターｍの値の組み合わせと対応づけて、それらの値の組み合わせにしたがって力制御が行われた場合に力検出部２１によって検出される力ｆｓの時間応答を表す記憶波形Ｗｍを記憶している。それぞれの記憶波形Ｗｍは、さらに、ユーザーが理解しやすい候補識別情報と対応付けて記憶されている。
【００６４】
記憶波形Ｗｍは、ロボット２０のメーカーが推奨する波形、言い換えれば、ロボット２０のメーカーが推奨する力制御パラメーターの設定値の組み合わせに対応する力ｆｓの波形とすることができる。記憶波形Ｗｍは、ロボット２０が正常に作業を行った際に実際に測定された波形であってもよい。また、記憶波形Ｗｍは、シミュレーションによって得られた波形であってもよい。
【００６５】
教示装置５０は、あらかじめ記憶されている複数の記憶波形Ｗｍの中から、受け付けた弾性パラメーターｋと、図４の処理で定められた粘性パラメーターｄの初期値、および質量パラメーターｍの初期値と、の組み合わせに対応付けられた記憶波形Ｗｍ１を選択する。そして、記憶波形Ｗｍ１と、記憶波形Ｗｍ１に対応づけられた設定識別情報ＰＴＲ１を、グラフ領域Ｇ２に示す。本実施形態においては、説明の便宜のため、設定識別情報ＰＴＲ１として、「設定１」という名称を示す。
【００６６】
設定識別情報ＰＴＲ１は、チェックボックスとともに示される。設定識別情報ＰＴＲ１のチェックボックスはデフォルトでチェックされている。設定識別情報ＰＴＲ１のチェックボックスのチェックがはずされると、記憶波形Ｗｍ１は、グラフ領域Ｇ２において表示されなくなる。
【００６７】
教示装置５０は、あらかじめ記憶されている複数の記憶波形Ｗｍの中から、受け付けた弾性パラメーターｋを所定割合だけ増加させた値と、図４の処理で定められた粘性パラメーターｄの初期値、および質量パラメーターｍの初期値と、の組み合わせと対応付けられた記憶波形Ｗｍ２を選択する。そして、記憶波形Ｗｍ２と、記憶波形Ｗｍ２に対応づけられた設定識別情報ＰＴＲ２を、グラフ領域Ｇ２に示す。本実施形態においては、説明の便宜のため、設定識別情報ＰＴＲ２として、「設定２」という名称を示す。
【００６８】
設定識別情報ＰＴＲ２は、チェックボックスとともに示される。設定識別情報ＰＴＲ２のチェックボックスは、デフォルトでチェックされていない。設定識別情報ＰＴＲ２のチェックボックスがチェックされると、記憶波形Ｗｍ２は、グラフ領域Ｇ２において表示される。
【００６９】
教示装置５０は、同様に、あらかじめ記憶されている複数の記憶波形Ｗｍの中から、受け付けた弾性パラメーターｋを所定割合だけ減少させた値と、図４の処理で定められた粘性パラメーターｄの初期値、および質量パラメーターｍの初期値と、の組み合わせと対応付けられた記憶波形Ｗｍ３を選択する。そして、記憶波形Ｗｍ３と、記憶波形Ｗｍ３に対応づけられた設定識別情報ＰＴＲ３を、グラフ領域Ｇ２に示す。本実施形態においては、説明の便宜のため、設定識別情報ＰＴＲ３として、「設定３」という名称を示す。
【００７０】
設定識別情報ＰＴＲ３は、チェックボックスとともに示される。設定識別情報ＰＴＲ３のチェックボックスも、デフォルトでチェックされていない。設定識別情報ＰＴＲ３のチェックボックスがチェックされると、記憶波形Ｗｍ３は、グラフ領域Ｇ２において表示される。
【００７１】
図６に示した例では、ユーザーは、設定識別情報ＰＴＲ１に対応付けられたチェックボックスのみをチェックしている。このため、図６に示したグラフ領域Ｇ２には、設定識別情報ＰＴＲ１に対応付けられた記憶波形Ｗｍ１のみが表示されている。
【００７２】
弾性パラメーターｋの変化は、粘性パラメーターｄの変化および質量パラメーターｍの変化に比べて、力ｆｓの波形、より具体的には力ｆｓのグラフの傾きに、大きく影響する。このため、グラフ領域Ｇ２においては、記憶波形Ｗｍ１に加えて、入力された弾性パラメーターｋに対して、所定割合だけ値を変化させた弾性パラメーターｋに対応する二つの記憶波形Ｗｍ２，Ｗｍ３が、ユーザーの入力に応じて、表示される。
【００７３】
ユーザーは、グラフ領域Ｇ２において表示される記憶波形Ｗｍ１〜Ｗｍ３を見て、再度、入力窓Ｎ３に弾性パラメーターｋを入力し直すことができる（図５のＳ５３０参照）。その場合には、ステップＳ５３０，Ｓ５４０の処理が、再度、実行される。
【００７４】
ステップＳ５５０において、教示装置５０は、入力窓Ｎ４を介して、粘性パラメーターｄを受け付ける。ただし、教示装置５０は、図４の処理で決定された粘性パラメーターｄの初期値を、あらかじめＲＡＭ５０ｂから読み出して、入力窓Ｎ４に提示する。ユーザーは、粘性パラメーターｄの初期値を参照しつつ、必要に応じて初期値とは異なる粘性パラメーターｄの値を入力窓Ｎ４に入力する。このような構成とすることにより、力制御パラメーターの調整に熟練していないユーザーであっても、容易に、粘性パラメーターの設定値を決定することができる。
【００７５】
第１実施形態においては、粘性パラメーターｄの値としては、任意の数値が入力され得る。入力された粘性パラメーターｄの設定値は、対象動作を識別するための情報と対応づけられて、教示装置５０のＲＡＭ５０ｂに格納される。
【００７６】
ステップＳ５５５において、教示装置５０は、入力窓Ｎ５を介して、質量パラメーターｍを受け付ける。ただし、教示装置５０は、図４の処理で決定された質量パラメーターｍの初期値を、あらかじめＲＡＭ５０ｂから読み出して、入力窓Ｎ５に提示する。ユーザーは、質量パラメーターｍの初期値を参照しつつ、必要に応じて初期値とは異なる質量パラメーターｍの値を入力窓Ｎ５に入力する。このような構成とすることにより、力制御パラメーターの調整に熟練していないユーザーであっても、容易に、質量パラメーターの設定値を決定することができる。
【００７７】
第１実施形態においては、質量パラメーターｍの値としては、任意の数値が入力され得る。入力された質量パラメーターｍの設定値は、対象動作を識別するための情報と対応づけられて、教示装置５０のＲＡＭ５０ｂに格納される。
【００７８】
ステップＳ５６０において、教示装置５０は、弾性パラメーターｋ、粘性パラメーターｄ、質量パラメーターｍの組み合わせの候補を決定する。具体的には、以下の組み合わせが、候補として決定される。（ｉ）ステップＳ５３０で受け付けた弾性パラメーターｋと、ステップＳ５５０で受け付けた粘性パラメーターｄと、ステップＳ５５５で受け付けた質量パラメーターｍと、の組み合わせ。（ｉｉ）ステップＳ５３０で受け付けた弾性パラメーターｋと、ステップＳ５５０で受け付けた粘性パラメーターｄを所定割合だけ増加させた値と、ステップＳ５５５で受け付けた質量パラメーターｍを前記所定割合だけ増加させた値と、の組み合わせ。（ｉｉｉ）ステップＳ５３０で受け付けた弾性パラメーターｋと、ステップＳ５５０で受け付けた粘性パラメーターｄを前記所定割合だけ減少させた値と、ステップＳ５５５で受け付けた質量パラメーターｍを前記所定割合だけ減少させた値と、の組み合わせ。
【００７９】
ステップＳ５７０において、動作ボタンＢ１を押されると、教示装置５０は、ステップＳ５６０で決定された力制御パラメーターの組み合わせの候補にしたがって、ステップＳ５８０，Ｓ５９０の処理を繰り返し行う。なお、ワークＷは、ステップＳ５８０の処理に先立って、あらかじめ作業台Ｔ上の対象動作の開始時の位置に配されるものとする。
【００８０】
ステップＳ５８０において、教示装置５０は、力制御パラメーターの組み合わせの候補の一つに基づいてアームＡに所定の動作を行わせる。すなわち、教示装置５０は、対象動作の開始位置を表す位置情報と、目標力ｆｓｔの方向および大きさを表す力情報と、ステップＳ５６０において決定された候補値としての力制御パラメーターと、を動作制御装置３０に出力し、それらの値に基づいてアームＡに所定の動作を行わせるように動作制御装置３０に対して指令する。
【００８１】
図６の例においては、エンドエフェクターＥが所定の動作として−Ｚ方向に移動し、−Ｚ方向においてエンドエフェクターＥが他の物体に接触してメイン画面において設定された大きさの力ｆｓが力検出部２１によって検出されるようにアームＡが制御される（図６のＮ１，Ｎ２参照）。
【００８２】
動作制御装置３０がアームＡを制御している間、教示装置５０は、所定のサンプリング周期で測定された重力補償後の力ｆｓを、動作制御装置３０から取得する（図２の右下部参照）。そして、教示装置５０は、取得した力ｆｓをＲＡＭ５０ｂに格納する。
【００８３】
ステップＳ５９０において、教示装置５０は、ＲＡＭ５０ｂに格納した力ｆｓに基づく検出波形を、対象動作に使用された組み合わせ候補に対応する候補識別情報とともにグラフ領域Ｇ１に表示する。検出波形は、力検出部２１によって検出された作用力ｆｓの時間応答波形である。グラフ領域Ｇ１の縦軸と横軸は、本実施形態において、グラフ領域Ｇ２の縦軸と横軸と同じスケールである。検出波形は、入力窓Ｎ１において受け付けられた目標力ｆｓｔに収束する波形である。
【００８４】
力制御パラメーターの組み合わせの候補のそれぞれについて、ステップＳ５８０，Ｓ５９０の処理が実行され、グラフ領域Ｇ１には３個の検出波形Ｗｄ１，Ｗｄ２，Ｗｄ３が、候補識別情報ＳＲ１，ＳＲ２，ＳＲ３とともに表示される（図６参照）。本実施形態においては、説明の便宜のため、候補識別情報ＳＲ１，ＳＲ２，ＳＲ３として、「設定１」、「設定２」、「設定３」いう名称を示す。なお、ＲＡＭ５０ｂ内に格納されている検出波形Ｗｄ１，Ｗｄ２，Ｗｄ３のデータを、図２において、まとめて「検出波形Ｗｄ」として示す。
【００８５】
ユーザーは、グラフ領域Ｇ１において表示されたチェックボックスの中から１以上のチェックボックスにチェックを入れることにより、チェックしたチェックボックスに対応付けられた検出波形をグラフ領域Ｇ１に表示させることができる。そして、チェックボックスのチェックをはずすことにより、チェックを外されたチェックボックスに対応付けられた検出波形をグラフ領域Ｇ１に表示させないようにすることができる。なお、グラフ領域Ｇ１に表示されるチェックボックスには、デフォルトでチェックが入れられている。
【００８６】
このような処理により、ユーザーは、力制御パラメーターの値を変化させた場合に検出波形がどのように変化するのかを容易に視認し、かつ比較することができる。図６の例では、ユーザーは、候補識別情報ＳＲ１〜ＳＲ３に対応付けられたチェックボックスにチェックを入れている。このため、グラフ領域Ｇ１には、候補識別情報ＳＲ１〜ＳＲ３にそれぞれ対応付けられた検出波形Ｗｄ１〜Ｗｄ３が表示されている。
【００８７】
図５のステップＳ６００において、教示装置５０は、入力窓Ｎ６を介して、ユーザーから候補識別情報の選択を受け付ける。すなわち、ユーザーは、グラフ領域Ｇ１に表示された検出波形Ｗｄ１，Ｗｄ２，Ｗｄ３を見て、そのうちの一つを選択し、選択したグラフに対応する候補識別情報を、入力窓Ｎ６を介して、教示装置５０に入力する。入力窓Ｎ６は、グラフ領域Ｇ１に表示されている候補識別情報ＳＲ１〜ＳＲ３のいずれかの候補識別情報（ここでは、「候補１」〜「候補３」）を選択的に入力できるように構成されている。図６の例では、入力窓Ｎ６には、候補識別情報ＳＲ１が入力されている。
【００８８】
ステップＳ６１０において、教示装置５０は、決定ボタンＢ２がＯＮされたか否かを判定する。決定ボタンＢ２が操作されない場合、処理は、ステップＳ６００に戻る。決定ボタンＢ２が操作された場合、処理は、ステップＳ６２０に進む。
【００８９】
ステップＳ６２０において、教示装置５０は、入力窓Ｎ６において受け付けた候補識別情報に対応する力制御パラメーターの組み合わせを、候補識別情報に対応付けられた検出波形とともに、対象動作を識別するための情報と対応付けて、ＲＡＭ５０ｂに格納する。また、教示装置５０は、入力窓Ｎ６において受け付けた候補識別情報に対応する力制御パラメーターの組み合わせを、対象動作を識別するための情報とともに動作制御装置３０に出力する。動作制御装置３０は、両者を対応づけてＲＡＭ３０ｂに記憶する。ステップＳ６２０においてＲＡＭ５０ｂおよびＲＡＭ３０ｂ内に格納された質量パラメーターｍ、粘性パラメーターｄ、および弾性パラメーターｋの設定値を、「力制御パラメーターの設定値ＳＶ」として示す。
【００９０】
力制御パラメーターの初期値をユーザーに提示し、対象動作の力制御において使用されるべき力制御パラメーターの設定値を受け取って、記憶部としてのＲＡＭ５０ｂおよびＲＡＭ３０ｂに記憶させる教示装置５０の機能部（図５、ならびに図６のＮ３〜Ｎ５，Ｂ１，Ｂ２参照）を、「設定部５４」として図２に示す。ステップＳ６２０の後、処理は終了する。
【００９１】
各種の設定が完了した後、動作制御装置３０のＣＰＵ３０ａは、ＲＡＭ３０ｂに記憶されている質量パラメーターｍ、粘性パラメーターｄ、弾性パラメーターｋの設定値に基づいて、力制御の開始位置において行われるロボット２０の対象動作の制御を行う。
【００９２】
本実施形態においては、対象動作に基づいて決まる値を教示装置５０に入力することにより、教示装置５０があらかじめ力制御パラメーターの初期値を決定する（図４のＳ１８０参照）。そして、力制御パラメーターの設定値の決定に際して、それらの初期値がユーザーに提示される（図５のＳ５３０，Ｓ５５０，Ｓ５５５、ならびに図６のＮ３〜Ｎ５参照）。このため、力制御パラメーターの調整に熟練していないユーザーであっても、容易に、力制御において使用されるべきパラメーターの設定値を決定することができる。
【００９３】
（４）ある動作の設定値に基づく他の動作の力制御パラメーターの初期値の決定：
以下では、すでにある動作について、力制御パラメーターの設定値が決定されている場合に（図４および図５参照）、動作を開始すべき位置のみが異なる別の動作の力制御パラメーターの初期値を決定する際の処理を説明する。すでに力制御パラメーターの設定値が決定されている動作を、「第１動作」と呼ぶ。新たに力制御パラメーターの初期値が決定される対象動作を、「第２動作」と呼ぶ。
【００９４】
図７は、第１動作の力制御パラメーターの設定値に基づいて、第２動作の力制御パラメーターの初期値を決定する際の処理を示すフローチャートである（図３のＳ２０参照）。ステップＳ２２０において、ユーザーは、教示装置５０に、第２動作を開始すべき位置を表す位置情報を入力する。なお、第２動作を開始する際のエンドエフェクターＥの姿勢は、第１動作を開始する際のエンドエフェクターＥの姿勢と同じであるものとする。第２動作の位置情報を、「第２位置情報」と呼ぶ。
【００９５】
第２動作を実行する際にワークＷに加えるべき目標力ｆｓｔの方向と大きさは、第１動作を実行する際にワークＷに加えるべき目標力ｆｓｔの方向と大きさと、同じである（図４のＳ１２０参照）。また、エンドエフェクター情報とワーク情報は、すでに、第１動作についての初期値の設定において、入力され、ＲＡＭ５０ｂに格納されている（図４のＳ１４０参照）。
【００９６】
ステップＳ２６０において、教示装置５０は、動作制御装置３０のＲＡＭ３０ｂ（図１参照）から、ロボット２０の固有情報Ｉｃを取得する。また、教示装置５０は、教示装置５０のＲＡＭ５０ｂから、エンドエフェクター情報と、ワーク情報とを取得する。
【００９７】
ステップＳ２６０において、教示装置５０は、第２位置情報（Ｓ２２０参照）と、エンドエフェクター情報およびワーク情報と、固有情報Ｉｃと、に基づいて、第２位置情報が表す位置にＴＣＰがある状態での、エンドエフェクターＥとワークＷの接触点における、Ｘ軸、Ｙ軸、Ｚ軸についての剛性を求める。ステップＳ２６０の処理は、対象動作が第２動作である点、およびエンドエフェクター情報とワーク情報とをＲＡＭ５０ｂから取得する点を除いて、図４のステップＳ１６０の処理と同じである。
【００９８】
ステップＳ２８０において、教示装置５０は、Ｘ軸、Ｙ軸、Ｚ軸についての剛性（Ｓ２６０参照）と、力情報（Ｓ１２０参照）と、に基づいて、接触点における力を加える方向についてのロボット２０の剛性を計算する。得られた力を加える方向についての剛性は、第２動作を識別するための情報と対応づけられて、教示装置５０のＲＡＭ５０ｂに格納される。ＲＡＭ５０ｂ内に格納された剛性の情報を、図１において「第２動作の剛性Ｉｓ２」として示す。
【００９９】
教示装置５０は、以下の情報に基づいて、第２動作の質量パラメーターｍ、粘性パラメーターｄ、弾性パラメーターｋの初期値を決定する。（ｉ）第２動作における接触点における力を加える方向についての剛性（図１のＩｓ２参照）。（ｉｉ）ＲＡＭ５０ｂに格納されている第１動作における剛性（図４のステップＳ１８０および図１のＩｓ１参照）。（ｉｉｉ）ＲＡＭ５０ｂに格納されている第１動作についての質量パラメーターｍ、粘性パラメーターｄ、弾性パラメーターｋの初期値（図５のステップＳ１８０および図１のＩｖ１参照）。
【０１００】
より具体的には、教示装置５０は、（ｉ）第１動作における剛性に対する、第２動作における剛性の比Ｒと、（ｉｉ）第１動作における質量パラメーターｍ、粘性パラメーターｄ、弾性パラメーターｋの初期値と、に基づいて、第２動作についての質量パラメーターｍ、粘性パラメーターｄ、弾性パラメーターｋの初期値を決定する。第２動作についての質量パラメーターｍ、粘性パラメーターｄ、弾性パラメーターｋの初期値は、第１動作についての質量パラメーターｍ、粘性パラメーターｄ、弾性パラメーターｋの初期値にそれぞれ上記比Ｒを掛けた値として、決定される。
【０１０１】
教示装置５０は、第２動作についての質量パラメーターｍ、粘性パラメーターｄ、および弾性パラメーターｋの初期値を、第２動作を識別するための情報と対応づけて、教示装置５０のＲＡＭ５０ｂに格納する。ＲＡＭ５０ｂ内に格納された第２動作の質量パラメーターｍ、粘性パラメーターｄ、および弾性パラメーターｋの初期値を、図１において「力制御パラメーターの初期値ＩＶ２」として示す。ステップＳ２６０，Ｓ２８０において、第２動作の質量パラメーターｍ、粘性パラメーターｄ、および弾性パラメーターｋの初期値を決定し、ＲＡＭ５０ｂに格納する教示装置５０の機能部は、「初期値決定部５６」である（図２）。ステップＳ２８０の後、処理は終了する。
【０１０２】
第２動作についての力制御パラメーターの設定値の決定は、第１動作についての力制御パラメーターの設定値の決定と同様に行われる（図５参照）。
【０１０３】
このような処理を行うことにより、すでに決定されている第１動作の初期値を利用して、第１動作とは異なる位置で行われる第２動作の力制御において使用されるべき力制御パラメーターの初期値を、簡易な処理で決定することができる。たとえば、同じ動作を異なる場所で行う場合や、レイアウトを変更するために、動作の位置を変更する場合などに、短時間で新たな設定値を決定することができる。
【０１０４】
本実施形態において、第１動作を開始すべきＴＣＰの位置およびエンドエフェクターＥの姿勢を、「第１位置」とも呼ぶ。「第１位置」を表す位置情報を、「第１位置情報」とも呼ぶ。固有情報Ｉｃを記憶している動作制御装置３０のＲＡＭ３０ｂを、「記憶部」とも呼ぶ。力制御パラメーターの初期値を記憶する教示装置５０のＲＡＭ５０ｂを、「記憶部」とも呼ぶ。質量パラメーターｍを「質量係数」とも呼ぶ。粘性パラメーターｄを「粘性係数」とも呼ぶ。弾性パラメーターｋを「弾性係数」とも呼ぶ。
【０１０５】
力制御パラメーターの設定値を記憶する教示装置５０のＲＡＭ５０ｂおよび動作制御装置３０のＲＡＭ３０ｂを、「記憶部」とも呼ぶ。動作制御装置３０のＣＰＵ３０ａを、「動作制御部」とも呼ぶ。ワークＷを、「対象物」とも呼ぶ。エンドエフェクター情報Ｉｅとワーク情報Ｉｗとを、まとめて「選択情報」とも呼ぶ。
【０１０６】
本実施形態において、第２動作を開始すべきＴＣＰの位置およびエンドエフェクターＥの姿勢を、「第２位置」とも呼ぶ。「第２位置」を表す位置情報を、「第２位置情報」とも呼ぶ。
【０１０７】
Ｂ．第２実施形態：
第２実施形態においては、教示装置５０における力制御パラメーターの設定値の決定の処理が、第１実施形態とは異なる。具体的には、図５のステップＳ５３０，Ｓ５５０，Ｓ５５５内の処理において、メイン画面（図６）においてなされる表示が異なる。第２実施形態の他の点は、第１実施形態と同じである。
【０１０８】
図８は、図５のステップＳ５３０，Ｓ５５０，Ｓ５５５内の詳細な処理を示すフローチャートである。以下では、ステップＳ５５０の処理を例に説明する。ステップＳ５５１において、ユーザーが、教示装置５０によって入力窓Ｎ４に表示された初期値１０を参照しつつ、入力窓Ｎ４に、粘性パラメーターｄの設定値を入力する（図６参照）。教示装置５０は、入力窓Ｎ４を介して粘性パラメーターｄの設定値を受け取る。図９の例では、入力窓Ｎ４に設定値２０が入力されている。
【０１０９】
ステップＳ５５２において、教示装置５０は、受け取った粘性パラメーターｄの設定値が、あらかじめ定められた許容範囲であるか否かを判定する。粘性パラメーターｄの許容範囲は、粘性パラメーターｄの初期値（図４のＳ１８０、図７のＳ２８０参照）の０．８〜１．２倍の範囲である。なお、ステップＳ５５２の処理は、粘性パラメーターｄの初期値が、図４の処理にしたがって決定されたか、図７の処理にしたがって決定されたか、を問わず実行される。受け取った粘性パラメーターｄの設定値が、許容範囲である場合は、処理は、ステップＳ５５４に進む。受け取った粘性パラメーターｄの設定値が、許容範囲ではない場合は、処理は、ステップＳ５５３に進む。
【０１１０】
ステップＳ５５３において、教示装置５０は、メイン画面上にエラーメッセージを表示する。
【０１１１】
図９は、図８のステップＳ５５３においてにおいて表示されるメイン画面を示す図である。粘性パラメーターｄの設定値が入力される入力窓Ｎ４と関連づけて、エラーメッセージＥＭが表示されている。エラーメッセージＥＭは、ユーザーに、許容範囲内の設定値の入力を促すメッセージである。ここでは、粘性パラメーターｄの初期値が１０であるため、エラーメッセージＥＭは、「粘性パラメーターは、８〜１２で設定してください」という表示を含んでいる。
【０１１２】
ステップＳ５５３の後、処理は、ステップＳ５５１に戻る。
【０１１３】
ステップＳ５５４において、教示装置５０は、入力された粘性パラメーターｄの設定値を、対象動作を識別するための情報と対応づけて、教示装置５０のＲＡＭ５０ｂに格納する。
【０１１４】
図５のステップＳ５３０における弾性パラメーターｋの入力、ステップ５５５における質量パラメーターの入力も、同様に行われる。
【０１１５】
このような処理を行うことにより、ユーザーが、力制御パラメーターについて、初期値とは大きく異なる値を設定値として設定しようとした場合に、ユーザーに、より初期値に近い設定値の再入力を促すことができる。このため、力制御パラメーターの調整に熟練していないユーザーであっても、力制御において使用されるべきパラメーターの設定値を、妥当な値に決定することができる。
【０１１６】
たとえば、力制御においては、エンドエフェクターＥがワークＷに接触して力を加える必要がある。しかし、初心者が力制御パラメーターを設定した場合であって、質量パラメーターや粘性パラメーターが望ましい値に対して大きすぎると、現実的な時間内にエンドエフェクターＥがワークＷに接触するに至らない場合がある。また、初心者が力制御パラメーターを設定した場合であって、質量パラメーターや粘性パラメーターが望ましい値に対して小さすぎると、エンドエフェクターＥが振動して、長時間、振動が収束しない場合がある。しかし、本実施形態の態様とすれば、そのような事態の発生を防止できる。
【０１１７】
Ｃ．第３実施形態：
図１０は、複数のプロセッサーによってロボットの制御装置が構成される一例を示す概念図である。この例では、ロボット２０およびその動作制御装置３０の他に、パーソナルコンピューター４００，４１０と、ＬＡＮなどのネットワーク環境を介して提供されるクラウドサービス５００とが描かれている。パーソナルコンピューター４００，４１０は、それぞれプロセッサーとメモリーとを含んでいる。また、クラウドサービス５００においてもプロセッサーとメモリーを利用可能である。プロセッサーは、コンピューター実行可能な命令を実行する。これらの複数のプロセッサーの一部または全部を利用して、動作制御装置３０および教示装置５０を含むロボット制御装置２５を実現することが可能である。また、各種の情報を記憶する記憶部も、これらの複数のメモリーの一部または全部を利用して、実現することが可能である。
【０１１８】
Ｄ．第４実施形態：
図１１は、複数のプロセッサーによってロボットの制御装置が構成される他の例を示す概念図である。この例では、ロボット２０の動作制御装置３０が、ロボット２０の中に格納されている点が図１０と異なる。この例においても、複数のプロセッサーの一部または全部を利用して、ロボット２０の制御装置を実現することが可能である。また、各種の情報を記憶する記憶部も、複数のメモリーの一部または全部を利用して、実現することが可能である。
【０１１９】
Ｅ．他の形態：
Ｅ１．他の形態１：
（１）上記実施形態においては、弾性パラメーターｋの初期値は固定値である。しかし、弾性パラメーターｋの初期値は、ロボットの固有情報と対象動作の位置情報とに基づいて、定めることができる。
【０１２０】
また、上記実施形態においては、粘性パラメーターｄと質量パラメーターｍの両方の初期値が、ロボットの固有情報と対象動作の位置情報とに基づいて、定められる。しかし、粘性係数と質量係数の一方の初期値のみを、ロボットの固有情報と対象動作の位置情報とに基づいて定め、他方の初期値については、ロボットの固有情報と対象動作の位置情報と以外の要素に基づいて定めることもできる。また、他方の初期値については、固定値とすることもできる。
【０１２１】
（２）上記実施形態においては、ロボット２０は、６軸の垂直多関節型ロボットである。しかし、制御装置に制御されるロボットは、スカラロボットや、直角座標ロボット等の他のロボットであってもよい。また、アームＡは、５個以下の軸を備える構成であってもよく、７個以上の軸を備える構成であってもよい。
【０１２２】
（３）対象動作の目標位置Ｓｔは、ユーザーがアームＡを手で移動させることによりロボットシステム１に教示してもよく、ロボット制御装置を介して座標を指定することにより教示されてもよい。また、対象動作の位置を表す位置情報は、直交座標系で指定されてもよく、各関節の角度位置で指定されてもよい。
【０１２３】
対象動作を開始すべき位置およびエンドエフェクターＥの姿勢（図４のＳ１２０参照）も、ユーザーがアームＡを手で移動させることによりロボットシステム１に教示してもよく、ロボット制御装置を介して座標を指定することにより教示されてもよい。また、対象動作を開始すべきＴＣＰの位置およびエンドエフェクターＥの姿勢は、直交座標系で指定されてもよく、各関節の角度位置で指定されてもよい。
【０１２４】
（４）上記実施形態においては、力制御パラメーターの設定値の入力は、弾性パラメーターｋ、粘性パラメーターｄ、質量パラメーターｍの順で行われる（図５のＳ５３０，Ｓ５５０，Ｓ５５５参照）。しかし、各力制御パラメーターの設定値の入力においては、ｋ、ｄ、ｍのいずれが最初に入力されてもよく、いずれが２番目に入力されてもよい。ただし、弾性係数は、作用力の時間応答の波形に大きな影響を与えるため、弾性係数、粘性係数、質量係数のうち、最初に入力されて決定されることが好ましい。
【０１２５】
（５）上記実施形態においては、弾性パラメーターｋ、粘性パラメーターｄ、質量パラメーターｍの設定値は、独立に入力される（図５のＳ５３０，Ｓ５５０，Ｓ５５５参照）。しかし、たとえば、粘性係数と質量係数の一定に設定し、粘性係数と質量係数のいずれか一方、または粘性係数と質量係数のいずれか一方と１対１で対応するパラメーターを入力することとしてもよい。
【０１２６】
（６）上記実施形態のステップＳ１２０においては、目標力ｆｓｔの方向として、Ｘ軸方向、Ｙ軸方向、Ｚ軸方向、Ｘ軸周りの回転方向、Ｙ軸周りの回転方向、Ｚ軸周りの回転方向の６つの方向のうちのいずれか一つの方向が選択的に入力されるように、教示装置５０は構成されている。しかし、目標力ｆｓｔの方向は、Ｘ軸方向の力成分、Ｙ軸方向の力成分、Ｚ軸方向の力成分、角度位置ＲＸの方向のトルク成分、角度位置ＲＹの方向のトルク成分、角度位置ＲＺの方向のトルク成分の組み合わせによって特定される態様とすることができる。
【０１２７】
（７）上記実施形態においては、力制御パラメーターは、ワークＷとＥのエンドエフェクターＥとの接触点におけるロボット２０の剛性に基づいて、定められる。しかし、力制御パラメーターは、ＴＣＰなど、他の基準点におけるロボット２０の剛性に基づいて、定められることもできる。
【０１２８】
（８）上記実施形態においては、力制御パラメーターの初期値および設定値は、動作に先立って、一つの動作に対して一組ずつ設定される。しかし、力制御パラメーターの設定値は、動作を実行中に繰り返し設定されることもできる。そのような態様とすれば、アームの姿勢に応じた力制御パラメーターの設定値を、適切に設定することができる。ただし、力制御パラメーターの設定値は、動作に先立って、一つの動作に対して一組だけ設定され、動作中は一貫してその設定値が使用されてもよい。
【０１２９】
（９）上記実施形態においては、力検出部２１として、並進３軸方向の力成分と、回転３軸回りのモーメント成分の６成分を同時に検出することができる６軸力覚センサーが、アームＡの先端に取りつけられている（図１参照）。しかし、力検出部は、たとえば、互いに直交する３個の検出軸上の力の大きさを検出する３軸センサーとすることもできる。そのような態様においては、入力窓Ｎ１で受け付けることができる目標力ｆｓｔの方向（図６および図５のＳ５２０参照）は、たとえば、ロボット座標系ＲＣにおけるＸ軸方向、Ｙ軸方向、Ｚ軸方向の３つの方向のうちのいずれかの方向となる。
【０１３０】
また、力検出部は、支持台ＢとリンクＬ１の間など、アームＡの先端以外のロボットの他の部位に設けられていてもよい。さらに、ロボットの各関節に配されたモーターのトルクから、ＴＣＰにおける３軸方向の力や３軸周りのトルクを計算して、力検出部の機能を実現することもできる。
【０１３１】
Ｅ２．他の形態２：
上記実施形態においては、力制御パラメーターの初期値の設定（図４のＳ１６０，Ｓ１８０、ならびに図７のＳ２６０，Ｓ２８０参照）に先立って、エンドエフェクター情報Ｉｅとワーク情報Ｉｗとが入力される（図４のＳ１４０参照）。しかし、エンドエフェクター情報Ｉｅとワーク情報Ｉｗの一方または両方が入力されない態様とすることもできる。そのような態様においても、対象動作によらず初期値が一定に設定される態様に比べれば、好ましい設定値に近い初期値を設定することができる。
【０１３２】
上記実施形態においては、エンドエフェクター情報は、（ｉ）エンドエフェクターＥの重量の情報と、（ｉｉ）アームＡの先端の位置と、アームＡに取りつけられたエンドエフェクターＥの重心位置と、の相対位置関係の情報と、を含む。しかし、エンドエフェクター情報は、エンドエフェクターの剛性の情報を含む態様とすることができる。エンドエフェクターの剛性の情報は、接触点またはＴＣＰにおける、Ｘ軸、Ｙ軸、Ｚ軸の各方向についての剛性として、表されることができる。また、エンドエフェクターの剛性の情報は、接触点またはＴＣＰにおける、力制御において加えられる力の方向についての剛性として、表されることができる。そのような態様においては、教示装置５０は、図４のＳ１６０および図７のＳ２６０において、エンドエフェクターの剛性の情報も考慮して、接触点における、ロボットのＸ軸、Ｙ軸、Ｚ軸についての剛性を求める。
【０１３３】
上記実施形態においては、ワーク情報は、以下を含む。（ｉ）ワークＷの重量の情報。（ｉｉ）対象動作においてワークＷがエンドエフェクターＥに把持された際のワークＷの重心位置と、エンドエフェクターＥの重心位置と、の相対位置関係の情報。（ｉｉｉ）対象動作においてワークＷがエンドエフェクターＥに把持された際のエンドエフェクターＥとワークＷの接触点の位置と、エンドエフェクターＥの重心位置と、の相対位置関係の情報。
【０１３４】
しかし、ワーク情報は、対象物としてのワークの剛性の情報を含む態様とすることができる。対象物の剛性の情報は、接触点またはＴＣＰにおける、Ｘ軸、Ｙ軸、Ｚ軸の各方向についての剛性として、表されることができる。また、対象物の剛性の情報は、接触点またはＴＣＰにおける、力制御において加えられる力の方向についての剛性として、表されることができる。そのような態様においては、教示装置５０は、図４のＳ１６０および図７のＳ２６０において、ワークの剛性の情報も考慮して、接触点における、ロボットのＸ軸、Ｙ軸、Ｚ軸についての剛性を求める。
【０１３５】
また、力制御パラメーターの初期値の設定に先立って、選択情報の一態様として、ワークＷが置かれる作業台ＴのＺ軸方向の剛性が入力され、その情報に基づいて、力制御パラメーターの初期値を設定することもできる。また、ワークが所定のジグに取りつけられる場合には、ジグのＸ方向、Ｙ方向、Ｚ軸方向の剛性が入力され、それらの剛性の情報に基づいて、力制御パラメーターの初期値を設定することもできる。
【０１３６】
また、力制御パラメーターの初期値の設定に先立って、選択情報の一態様として、作業台の剛性を表す数値の情報に代えて、作業台の素材を表す情報を入力する態様とすることもできる。そのような態様においては、素材と対応づけられた剛性の情報を参照して、力制御において力が加えられる方向の剛性、さらに、力制御パラメーターを得ることができる。
【０１３７】
すなわち、ロボット制御装置は、力制御を含む動作においてロボットに取りつけられているエンドエフェクターと、力制御を含む動作においてロボットに処理される対象物と、力制御を含む動作において対象物が置かれる台と、のうちの１以上の構成に関する選択情報が受け付けられる態様とすることができる。
【０１３８】
Ｅ３．他の形態３：
（１）上記実施形態においては、第１動作の力制御パラメーターの初期値Ｉｖ１は、対象動作としての第１動作を識別するための情報と対応づけて、教示装置５０のＲＡＭ５０ｂに格納される（図４のＳ１８０参照）。そして、教示装置５０のＲＡＭ５０ｂには、対象動作としての第１動作の位置情報も、第１動作を識別するための情報と対応づけて、格納されている。すなわち、第１動作の力制御パラメーターの初期値Ｉｖ１は、第１動作を識別するための情報を介して、第１動作の位置情報と対応づけられて、記憶部に格納されている。
【０１３９】
しかし、第１動作の力制御パラメーターの初期値は、他の態様で記憶されてもよい。たとえば、第１動作の力制御パラメーターの初期値は、第１動作の位置情報と直接、対応づけられて、記憶されることもできる。すなわち、第１動作の力制御パラメーターの初期値は、直接または間接に、対象動作を開始すべき位置および姿勢を表す位置情報と、対応づけられて、記憶部に格納されていればよい。
【０１４０】
（２）上記実施形態において、第２動作は、第１動作とは、動作を開始すべき位置のみが異なる動作である。第２動作は、第１動作に対して、３次元空間内の位置が異なり、エンドエフェクターの姿勢が同じ動作であってもよいし、３次元空間内の位置が同じで、エンドエフェクターの姿勢が異なる動作であってもよいし、３次元空間内の位置とエンドエフェクターの姿勢のそれぞれが同じ動作であってもよい。
【０１４１】
（３）上記実施形態において、第２動作の力制御パラメーターの初期値は、第１動作についての力制御パラメーターの初期値（図４のＳ１８０参照）に、第１動作における剛性に対する第２動作の剛性の比Ｒを掛けた値として、決定される（図７のＳ２８０参照）。しかし、第２動作の力制御パラメーターは、他の要素に起因するパラメーターを使用して、さらに補正されてもよい。また、剛性の比Ｒが他の要素に起因するパラメーターを使用して、補正されてもよい。さらに、第２動作の力制御パラメーターは、他の方法で決定されてもよい。
【０１４２】
たとえば、第２動作の力制御パラメーターの初期値は、第１動作についての力制御パラメーターの初期値に代えて、設定値（図５のＳ６２０参照）に、第１動作の剛性に対する第２動作の剛性の比Ｒを掛けた値として、決定されることもできる（図７のＳ２８０参照）。このような態様とすれば、ユーザーが実際にロボットを動かして決定した第１動作の設定値に基づいて、第２動作の初期値が決定される。このため、より好ましい初期値が設定される可能性が高い。この態様においても、剛性の比Ｒを掛けて得られる初期値、または剛性の比Ｒ自体を、さまざまなパラメーターで補正することができる。
【０１４３】
また、力制御パラメーターの一部、すなわち、質量パラメーター、粘性パラメーター、弾性パラメーター個のうちの１または２個のパラメーターについては、剛性の比Ｒを使用した改変を行わず、第１動作についての値を第２動作についても適用してもよい。また、剛性の比Ｒを使用した改変をおこなう力制御パラメーターの一部については、他の要素に起因する補正を行い、剛性の比Ｒを使用した改変をおこなう力制御パラメーターの他の一部については、他の要素に起因する補正を行わない態様とすることもできる。
【０１４４】
さらに、剛性の比Ｒを使用せず、他の態様で、第１動作における剛性と、第２動作における剛性と、を使用して、第１動作の力制御パラメーターの初期値または設定値に基づいて、第２動作の力制御パラメーターの初期値を決定してもよい。
【０１４５】
Ｅ４．他の形態４：
（１）上記実施形態においては、粘性パラメーターｄの許容範囲は、粘性パラメーターｄの初期値の０．８〜１．２倍の範囲である（図８のＳ５５２参照）。しかし、力制御パラメーターの許容範囲の下限は、初期値の０．９倍、初期値の０．７倍など、他の値とすることができる。また、力制御パラメーターの許容範囲の上限は、初期値の１．１倍、初期値の１．３倍など、他の値とすることができる。
【０１４６】
さらに、力制御パラメーターの許容範囲は、初期値に対する比で定められる態様に限らず、初期値から一定値を減算した下限や、初期値から一定値を加算した上限を設定することもできる。
【０１４７】
また、力制御パラメーターの許容範囲は、弾性係数、粘性係数、質量係数について、独立に設定することができる。一方、初期値に対して掛ける係数を、弾性係数、粘性係数、質量係数について、統一することもできる。
【０１４８】
（２）上記実施形態においては、入力された設定値が許容範囲を超えている場合は、エラーメッセージＥＭが表示され、設定値の再入力が促される（図９参照）。しかし、入力された設定値を、ロボット制御装置が強制的に許容範囲内の値に変更した上で、ユーザーに対して、設定値の再入力を促す旨のメッセージ、または、設定値が変更された旨のメッセージを発する態様とすることもできる。また、画像表示（図９のＥＭ参照）ではなく、音声による出力を行うこともできる。また、ロボット制御装置による入力値の変更を行わせるか否かを、チェックボックスへのチェックなどを介して、ユーザーに選択させる態様とすることもできる。
【０１４９】
ロボット制御装置は、各力制御パラメーターについて、それぞれの初期値に基づいて定められた許容範囲を個別に持ち、許容範囲内の値に入力値を変更することができる。一方、力を加える方向についての剛性に基づいて、各力制御パラメーターについて、許容範囲を設定することもできる。たとえば、剛性が高い場合には、各力制御パラメーター（たとえば、質量パラメーターと粘性パラメーター）の値またはその許容範囲を大きく設定することが好ましい。そのような態様とすれば、エンドエフェクターが振動しにくくなるように、各力制御パラメーターの値を設定することができる。ただし、剛性が高い場合には、各力制御パラメーター（たとえば、質量パラメーターと粘性パラメーター）の値またはその許容範囲を小さく設定することもできる。
【０１５０】
（３）また、入力された設定値が許容範囲を超えている場合は、ロボットの動作を制御する動作制御部が、ロボットの制御の際に参照する記憶部に、入力された設定値を格納しない態様とすることができる。また、入力された設定値が許容範囲を超えている場合にも、動作制御部がロボットの制御の際に参照する記憶部に、入力された設定値を格納する態様とすることもできる。
【０１５１】
（４）各種の情報を格納する記憶部は、同一の筐体内に存在する記憶手段であってもよく、互いに通信可能に接続されている複数の構成要素の内部にそれぞれ備えられている記憶手段であってもよい。
【０１５２】
Ｆ．さらに他の形態：
適用例１
本発明の一形態によれば、外部から加えられる力の大きさを検出する力検出部を備えるロボットの動作を制御するロボット制御装置が提供される。このロボット制御装置は：前記力検出部によって検出される力の大きさに基づいて行われる力制御を含む第１動作を開始する第１位置を表す第１位置情報を受け付ける受付部と；前記ロボットの構成に関する固有情報と、前記第１位置情報と、に基づいて、前記第１動作の前記力制御において使用される質量係数と粘性係数とのいずれかの初期値を決定し、記憶部に記憶させる初期値決定部と、を備える。
このような態様とすれば、力制御パラメーターの調整に熟練していないユーザーであっても、初期値を利用して、容易に、力制御において使用されるべき質量係数と粘性係数との少なくとも一方の設定値を決定することができる。
【０１５３】
なお、上記形態のロボット制御装置は、さらに：前記初期値をユーザーに提示し、前記第１動作の前記力制御において使用されるべき前記少なくとも一方の設定値を受け取って、記憶部に記憶させる設定部と；前記設定値に基づいて、前記ロボットに前記第１動作を行わせる動作制御部と、を備える態様とすることもできる。
【０１５４】
適用例２
上記形態のロボット制御装置であって；前記受付部は：前記ロボットに取りつけられているエンドエフェクターと；前記ロボットに処理される対象物と；前記対象物が置かれる台と、のうちの１以上の構成に関する選択情報を受け付けることができ；前記初期値決定部は、前記選択情報に基づいて、前記初期値を決定する、態様とすることもできる。
このような態様とすれば、エンドエフェクターと対象物と台とのうちの１以上の構成に関する選択情報を利用して、より望ましい設定値に近い初期値を決定することができる。このため、力制御パラメーターの調整に熟練していないユーザーであっても、より容易に、力制御において使用されるべき質量係数と粘性係数との少なくとも一方の設定値を決定することができる。
【０１５５】
適用例３
上記形態のロボット制御装置であって；前記初期値決定部は、前記初期値を、前記第１位置情報と対応づけて前記記憶部に記憶させ；前記受付部は、前記力制御を含む第２動作を開始する位置であって前記第１位置とは異なる第２位置を表す第２位置情報を受け付け；前記初期値決定部は、前記第１位置情報と対応づけられた前記初期値と、前記第１位置情報と、前記第２位置情報と、に基づいて、前記第２動作の前記力制御において使用される前記いずれかの係数の初期値を決定し、前記第２位置情報と対応づけて前記記憶部に記憶させる、態様とすることもできる。
このような態様とすれば、すでに決定されている第１位置情報と対応づけられた初期値を利用して、第１位置とは異なる第２位置において行われる第２動作の力制御において使用されるべき質量係数と粘性係数との少なくとも一方の初期値を、簡易な処理で決定することができる。
【０１５６】
なお、前記設定部は、前記第２動作の前記力制御において使用される前記少なくとも一方の前記初期値をユーザーに提示し、前記第２動作の前記力制御において使用されるべき前記少なくとも一方の設定値を受け取って、前記記憶部に記憶させことができ；前記動作制御部は、前記第２動作の前記力制御において使用されるべき前記少なくとも一方の前記設定値に基づいて、前記ロボットに前記第２動作を行わせることができる、態様とすることもできる。
【０１５７】
適用例４
上記形態のロボット制御装置であって、さらに；前記第２動作の前記力制御において使用される前記いずれかの係数の設定値を受け取って、前記記憶部に記憶させる設定部を備え；前記設定部は、前記第２動作の前記力制御において使用される前記いずれかの係数の前記初期値に基づいてあらかじめ定められる範囲内に、前記受け取った設定値が含まれない場合は、エラーメッセージの出力を行う、態様とすることもできる。
このような態様とすれば、ユーザーが、質量係数と粘性係数との少なくとも一方について、初期値とは大きく異なる値を設定値として設定しようとした場合に、ユーザーに、より初期値に近い設定値の再入力を促すことができる。このため、力制御パラメーターの調整に熟練していないユーザーであっても、力制御において使用されるべき質量係数と粘性係数との少なくとも一方の設定値を、妥当な値に決定することができる。
【０１５８】
適用例５
上記形態のロボット制御装置であって、さらに；前記第１動作の前記力制御において使用される前記いずれかの係数の設定値を受け取って、前記記憶部に記憶させる設定部を備え；前記設定部は、前記初期値に基づいてあらかじめ定められる範囲内に、前記受け取った設定値が含まれない場合は、エラーメッセージの出力を行う、態様とすることもできる。
このような態様とすれば、ユーザーが、質量係数と粘性係数との少なくとも一方について、初期値とは大きく異なる値を設定値として設定しようとした場合に、ユーザーに、より初期値に近い設定値の再入力を促すことができる。このため、力制御パラメーターの調整に熟練していないユーザーであっても、力制御において使用されるべき質量係数と粘性係数との少なくとも一方の設定値を、妥当な値に決定することができる。
【０１５９】
適用例６
本発明の他の形態によれば、上記形態のロボット制御装置と、前記ロボット制御装置によって制御される前記ロボットと、を備えるロボットシステムが提供される。
【０１６０】
上述した本発明の各形態の有する複数の構成要素はすべてが必須のものではなく、上述の課題の一部または全部を解決するため、あるいは、本明細書に記載された効果の一部または全部を達成するために、適宜、前記複数の構成要素の一部の構成要素について、その変更、削除、新たな他の構成要素との差し替え、限定内容の一部削除を行うことが可能である。また、上述の課題の一部または全部を解決するため、あるいは、本明細書に記載された効果の一部または全部を達成するために、上述した本発明の一形態に含まれる技術的特徴の一部または全部を上述した本発明の他の形態に含まれる技術的特徴の一部または全部と組み合わせて、本発明の独立した一形態とすることも可能である。
【符号の説明】
【０１６１】
１…ロボットシステム、２０…ロボット、２１…力検出部、２５…ロボット制御装置、３０…動作制御装置、３０ａ…ＣＰＵ、３０ｂ…ＲＡＭ、３０ｃ…ＲＯＭ、５０…教示装置、５０ａ…ＣＰＵ、５０ｂ…ＲＡＭ、５０ｃ…ＲＯＭ、５３…受付部、５４…設定部、５５…取得部、５６…初期値決定部、５７…入力装置、５８…出力装置、４００，４１０…パーソナルコンピューター、５００…クラウドサービス、Ａ…アーム、Ｂ…支持台、Ｂ１…動作ボタン、Ｂ２…決定ボタン、Ｄａ…回転角度、Ｄｃ…制御量、Ｄｅ…偏差、Ｄｔ…目標角度、Ｅ…エンドエフェクター、Ｅ１〜Ｅ６…エンコーダー、ＥＭ…エラーメッセージ、Ｇ１…グラフ領域、Ｇ２…グラフ領域、Ｉｖ１…第１動作の力制御パラメーターの初期値、ＩＶ２…第２動作の力制御パラメーターの初期値、Ｉｃ…ロボットの固有情報、Ｉｅ…エンドエフェクター情報、Ｉｓ１…第１動作の力の方向についての剛性、Ｉｓ２…第２動作の力の方向についての剛性、Ｉｗ…ワーク情報、Ｊ１〜Ｊ６…関節、Ｋｐｄ…微分ゲイン、Ｋｐｉ…積分ゲイン、Ｋｐｐ…比例ゲイン、Ｋｖｄ…微分ゲイン、Ｋｖｉ…積分ゲイン、Ｋｖｐ…比例ゲイン、Ｌ１〜Ｌ５…リンク、Ｍ１〜Ｍ６…モーター、Ｎ１〜Ｎ６…入力窓、ＰＴＲ１〜ＰＴＲ３…設定識別情報、ＲＣ…ロボット座標系、ＲＸ…角度位置、ＲＹ…角度位置、ＲＺ…角度位置、Ｓ…位置、ＳＲ１〜ＳＲ３…候補識別情報、ＳＶ…対象動作（第１動作）の力制御パラメーターの設定値、Ｓｔ…目標位置、Ｔ…ワークＷが置かれる台、Ｕ…モーターの角度位置とロボット座標系の対応関係、Ｗ…ワーク、Ｗｄ１〜Ｗｄ３…検出波形、Ｗｍ…記憶波形、Ｗｍ１…個別の記憶波形、ｄ…粘性パラメーター、ｆｓ…作用力、ｆｓｔ…目標力、ｋ…弾性パラメーター、ｍ…質量パラメーター、ΔＳ…力由来補正量、Δｆｓ…力偏差
【図１】
2019188555.tif 000004
【図２】
2019188555.tif 000005
【図３】
2019188555.tif 000006
【図４】
2019188555.tif 000007
【図５】
2019188555.tif 000008
【図６】
2019188555.tif 000009
【図７】
2019188555.tif 000010
【図８】
2019188555.tif 000011
【図９】
2019188555.tif 000012
【図１０】
2019188555.tif 000013
【図１１】
2019188555.tif 000014