(57)【特許請求の範囲】
【請求項１】
複数の関節を有するアームと、前記アームに接続されたエンドエフェクターと、力検出部と、を備えるロボットと、
前記エンドエフェクターを所望の位置及び第1姿勢にした状態で、前記力検出部からの出力値に基づいて前記アームの第２姿勢を変更した後、前記第２姿勢を記憶するロボット制御装置と、
を備え、
前記ロボット制御装置は、前記エンドエフェクターを前記所望の位置及び前記第１姿勢にした状態で、前記力検出部からの出力値に基づいて前記第２姿勢を変更する第１モードと、前記力検出部からの出力値に基づいて前記エンドエフェクターの位置及び前記第１姿勢を変更する第２モードとを切り替えるロボットシステム。
【請求項２】
前記ロボット制御装置は、ダイレクトティーチングにより加えられた力を前記力検出部が検出し、前記力検出部からの前記出力値に基づいて前記アームを動かし、前記第２姿勢を変更する、
請求項１に記載のロボットシステム。
【請求項３】
前記ロボット制御装置は、前記エンドエフェクターへの捻りにより発生するトルクに基づいて前記第２姿勢を変更する、
請求項１又は２に記載のロボットシステム。
【請求項４】
前記ロボット制御装置は、前記力検出部からの前記出力値に基づいて前記トルクを検出する、
請求項３に記載のロボットシステム。
【請求項５】
前記ロボットまたは前記ロボット制御装置は、前記第１モードと前記第２モードとを切り替えるスイッチを備える、
請求項１から４のいずれか一項に記載のロボットシステム。
【請求項６】
複数の関節を有するアームと、前記アームに接続されたエンドエフェクターと、力検出部と、を備えるロボットを制御するロボット制御装置であって、
前記エンドエフェクターを所望の位置及び第１姿勢にした状態で、前記力検出部からの出力値に基づいて前記アームの第２姿勢を変更した後、前記第２姿勢を記憶させる制御部を備え、
前記制御部は、前記エンドエフェクターを前記所望の位置及び第１姿勢にした状態で、前記力検出部からの出力値に基づいて前記第２姿勢を変更する第１モードと、前記力検出部からの出力値に基づいて前記エンドエフェクターの位置及び第１姿勢を変更する第２モードとを切り替える、
ロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボットシステム、ロボット、及びロボット制御装置に関する。
【背景技術】
【０００２】
ロボットに動作を教示する方法について研究や開発が行われている。
【０００３】
これらに関し、アームに取り付けられた操作装置を把持して、ダイレクトティーチングによってロボットに動作を教示する方法が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１８４５４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、このような方法では、ダイレクトティーチングにおいてロボットの手先の位置及び姿勢を固定したままアームの関節を動かすことができず、ロボットに所望の動作を教示することが困難な場合があった。
【課題を解決するための手段】
【０００６】
上記課題の少なくとも一つを解決するために本発明の一態様は、複数の関節を有するアームと、エンドエフェクターと、力検出部とを備えるロボットと、前記エンドエフェクターを所望の位置及び姿勢にした状態で、前記力検出部からの出力値に基づいて前記アームの姿勢を変更して教示を行うことができるロボット制御装置と、を備えるロボットシステムである。
この構成により、ロボットシステムでは、エンドエフェクターを所望の位置及び姿勢にした状態で、力検出部からの出力値に基づいてアームの姿勢を変更して教示を行うことができる。これにより、ロボットシステムは、ダイレクトティーチングによって所望の動作を教示することができる。
【０００７】
また、本発明の他の態様は、ロボットシステムにおいて、前記ロボット制御装置は、前記力検出部からの前記出力値に基づいて前記アームの肘を動かし、前記アームの姿勢を変更する、構成が用いられてもよい。
この構成により、ロボットシステムは、力検出部からの出力値に基づいてアームの肘を動かし、アームの姿勢を変更する。これにより、ロボットシステムは、アームの肘を動かすことを伴う所望の動作をダイレクトティーチングによって教示することができる。
【０００８】
また、本発明の他の態様は、ロボットシステムにおいて、前記ロボット制御装置は、前記エンドエフェクターへの捻りにより発生するトルクに基づいて前記アームの姿勢を変更する、構成が用いられてもよい。
この構成により、ロボットシステムは、エンドエフェクターへの捻りにより発生するトルクに基づいてアームの姿勢を変更する。これにより、ロボットシステムは、エンドエフェクターへの捻りにより発生するトルクに基づいて所望の動作をダイレクトティーチングによって教示することができる。
【０００９】
また、本発明の他の態様は、ロボットシステムにおいて、前記ロボット制御装置は、前記力検出部からの前記出力値に基づいて前記トルクを検出する、構成が用いられてもよい。
この構成により、ロボットシステムは、力検出部からの出力値に基づいてトルクを検出する。これにより、ロボットシステムは、力検出部からの出力値に基づいて検出されたトルクに基づいて所望の動作をダイレクトティーチングによって教示することができる。
【００１０】
また、本発明の他の態様は、ロボットシステムにおいて、前記ロボット制御装置は、前記エンドエフェクターを前記所望の位置及び姿勢にした状態で、前記力検出部からの出力値に基づいて前記アームの姿勢を変更する第１モードと、前記力検出部からの出力値に基づいて前記エンドエフェクターの位置及び姿勢を変更する第２モードとを切り替えることが可能である、構成が用いられてもよい。
この構成により、ロボットシステムは、エンドエフェクターを所望の位置及び姿勢にした状態で、力検出部からの出力値に基づいてアームの姿勢を変更する第１モードと、力検出部からの出力値に基づいて当該エンドエフェクターの位置及び姿勢を変更する第２モードとを切り替えることが可能である。これにより、ロボットシステムは、第１モードと第２モードを切り替えることにより、所望の動作をダイレクトティーチングによって教示することができる。
【００１１】
また、本発明の他の態様は、ロボットシステムにおいて、前記ロボットと前記ロボット制御装置のうちいずれか一方又は両方は、前記第１モードと前記第２モードとを切り替えるスイッチを備える、構成が用いられてもよい。
この構成により、ロボットシステムでは、ロボットとロボット制御装置のうちいずれか一方又は両方が、第１モードと第２モードとを切り替えるスイッチを備える。これにより、ロボットシステムは、第１モードと第２モードとを切り替えるスイッチにより第１モードと第２モードを切り替えることにより、所望の動作をダイレクトティーチングによって教示することができる。
【００１２】
また、本発明の他の態様は、ロボットシステムにおいて、前記ロボットは、７軸の自由度で動作する、構成が用いられてもよい。
この構成により、ロボットシステムは、７軸の自由度で動作するロボットのエンドエフェクターを所望の位置及び姿勢にした状態で、力検出部からの出力値に基づいてアームの姿勢を変更して教示を行うことができる。これにより、ロボットシステムは、７軸の自由度で動作するロボットに対して、ダイレクトティーチングによって所望の動作を教示することができる。
【００１３】
また、本発明の他の態様は、複数の関節を有し、エンドエフェクターを取り付け可能なアームを備え、前記エンドエフェクターを所望の位置及び姿勢にした状態で、力検出部からの出力値に基づいて前記アームの姿勢を変更して教示を行うことができる、ロボットである。
この構成により、ロボットは、エンドエフェクターを所望の位置及び姿勢にした状態で、力検出部からの出力値に基づいてアームの姿勢を変更して教示を行うことができる。これにより、ロボットは、ダイレクトティーチングによって所望の動作を教示することができる。
【００１４】
また、本発明の他の態様は、ロボットが備えるアームであって複数の関節を有するアームに設けられたエンドエフェクターを所望の位置及び姿勢にした状態で、力検出部からの出力値に基づいて前記アームの姿勢を変更して教示を行うことができる、ロボット制御装置である。
この構成により、ロボット制御装置は、エンドエフェクターを所望の位置及び姿勢にした状態で、力検出部からの出力値に基づいてアームの姿勢を変更して教示を行うことができる。これにより、ロボット制御装置は、ダイレクトティーチングによって所望の動作を教示することができる。
【００１５】
以上により、ロボットシステム、ロボット、及びロボット制御装置は、エンドエフェクターを所望の位置及び姿勢にした状態で、力検出部からの出力値に基づいてアームの姿勢を変更して教示を行うことができる。これにより、ロボットシステム、ロボット、及びロボット制御装置は、ダイレクトティーチングによって所望の動作を教示することができる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態に係るロボット２０の一例を示す構成図である。
【図２】第１スイッチＳ１が設けられた第１エンドエフェクターＥ１の一例を示す図である。
【図３】ロボット制御装置３０のハードウェア構成の一例を示す図である。
【図４】ロボット制御装置３０の機能構成の一例を示す図である。
【図５】制御部３６が行う処理の流れの一例を示すフローチャートである。
【図６】ステップＳ１７０において第１肘角度変化量が算出された後のステップＳ１５０において、肘ＥＬ１の角度を変化させる前の様子の一例を示す図である。
【図７】図６に示した状態から、ロボット制御部４６が第１アームのＴＣＰの位置及び姿勢を変化させずに肘ＥＬ１の角度を変化させた後の様子の一例を示す図である。
【図８】ロボット２０の第１エンドエフェクターＥ１と第１マニピュレーターＭ１との間に設けられた第１力検出部１１の一例を示す図である。
【図９】肘ＥＬ１に備えられた力検出部１０１の一例を示す図である。
【図１０】第１アームが備える７つの関節それぞれに備えられた力検出部を例示する図である。
【図１１】図８に示したように第１エンドエフェクターＥ１と第１マニピュレーターＭ１との間に第１力検出部１１を備えるとともに、図１０に示したように第１アームの各関節に力検出部１０１〜力検出部１０７のそれぞれを備える第１アームの一例を示す図である。
【図１２】第１スイッチＳ１が肘ＥＬ１の側面に設けられたロボット２０の一例を示す図である。
【図１３】第１スイッチＳ１が関節Ｊ２の側面に設けられたロボット２０の一例を示す図である。
【図１４】第１スイッチＳ１が支持台（本体）の側面に設けられたロボット２０の一例を示す図である。
【発明を実施するための形態】
【００１７】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。図１は、本実施形態に係るロボット２０の一例を示す構成図である。
まず、ロボット２０の構成について説明する。
【００１８】
ロボット２０は、第１アームと、第２アームと、第１アーム及び第２アームを支持する支持台と、ロボット制御装置３０を備える双腕ロボットである。双腕ロボットは、この一例における第１アームと第２アームのような２本のアーム（腕）を備えるロボットである。なお、ロボット２０は、双腕ロボットに代えて、単腕ロボットであってもよい。単腕ロボットは、１本のアームを備えるロボットである。例えば、単腕ロボットは、第１アームと第２アームのいずれか一方を備える。また、ロボット２０は、双腕ロボットに代えて、３本以上のアームを備える複腕ロボットであってもよい。第１アームと第２アームはそれぞれ、アームの一例である。
【００１９】
第１アームは、第１エンドエフェクターＥ１と、第１スイッチＳ１と、第１マニピュレーターＭ１と、第１力検出部１１を備える。なお、本実施形態では、第１アームに第１エンドエフェクターＥ１が含まれる場合について説明するが、第１アームと第１エンドエフェクターＥ１とが別体であってもよい。この場合、第１アームは、第１マニピュレーターＭ１と、第１力検出部１１を備える。
【００２０】
第１エンドエフェクターＥ１は、この一例において、物体を把持可能な爪部を備えるエンドエフェクターである。なお、第１エンドエフェクターＥ１は、当該爪部を備えるエンドエフェクターに代えて、電動ドライバーを備えるエンドエフェクター等の他のエンドエフェクターであってもよい。第１エンドエフェクターＥ１は、第１アームの手先に相当する部位である。第１エンドエフェクターＥ１は、エンドエフェクターの一例である。
【００２１】
第１エンドエフェクターＥ１は、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、第１エンドエフェクターＥ１は、ロボット制御装置３０から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。また、第１エンドエフェクターＥ１は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００２２】
第１スイッチＳ１は、ロボット制御装置３０がロボット２０を制御する際の制御モードを切り替えるスイッチである。第１スイッチＳ１は、この一例において、第１エンドエフェクターＥ１に設けられている。なお、第１スイッチＳ１は、これに代えて、第１マニピュレーターＭ１等の第１アームの他の部位や、ロボット制御装置３０に設けられる構成であってもよい。この場合、ロボット２０は、第１エンドエフェクターＥ１を備えない構成であってもよい。
【００２３】
ここで、図２を参照し、第１スイッチＳ１が設けられた第１エンドエフェクターＥ１について説明する。図２は、第１スイッチＳ１が設けられた第１エンドエフェクターＥ１の一例を示す図である。図２に示した三次元座標系は、第１エンドエフェクターＥ１の位置及び姿勢を表す局所座標系である。この一例において、第１アームのＴＣＰは、第１エンドエフェクターＥ１の位置及び姿勢を表す局所座標系の原点と一致するように設定されている。すなわち、当該局所座標系の原点の位置は、第１アームのＴＣＰの位置を表し、当該局所座標系の３つの座標軸の方向は、第１アームのＴＣＰ（Tool  Center  Point）の姿勢を表す。また、図２に示したように、第１スイッチＳ１は、この一例において、第１エンドエフェクターＥ１の側面に設けられている。第１エンドエフェクターＥ１の側面は、第１エンドエフェクターＥ１の第１マニピュレーターＭ１に設置されている側を裏面とし、第１エンドエフェクターＥ１の爪部側を表面とした場合の側面である。
【００２４】
第１マニピュレーターＭ１は、７つの関節である関節Ｊ１〜関節Ｊ７と、第１撮像部２１を備える。また、関節Ｊ１〜関節Ｊ７はそれぞれ、図示しないアクチュエーターを備える。すなわち、第１マニピュレーターＭ１を備える第１アームは、７軸垂直多関節型のアームである。第１アームは、支持台と、第１エンドエフェクターＥ１と、第１マニピュレーターＭ１と、第１マニピュレーターＭ１が備える７つの関節である関節Ｊ１〜関節Ｊ７それぞれのアクチュエーターとによる連携した動作によって７軸の自由度の動作を行う。なお、第１アームは、８軸以上の自由度で動作する構成であってもよい。
【００２５】
第１アームが７軸の自由度で動作する場合、第１アームは、６軸以下の自由度で動作する場合と比較して取り得る姿勢が増える。これにより第１アームは、例えば、動作が滑らかになり、更に第１アームの周辺に存在する物体との干渉を容易に回避することができる。また、第１アームが７軸の自由度で動作する場合、第１アームの制御は、第１アームが８軸以上の自由度で動作する場合と比較して計算量が少なく容易である。
【００２６】
図１に示したように、第１マニピュレーターＭ１が備える７つの関節のうちの支持台側から４つ目の関節である関節Ｊ４は、第１アームの肘ＥＬ１に相当する関節である。また、第１マニピュレーターＭ１が備える７つの関節のうちの支持台側から７つ目の関節である関節Ｊ７は、アームの関節のうちの最先端の関節の一例である。関節Ｊ７の端部のうちの支持台側とは反対側の端部には、第１エンドエフェクターＥ１を設置するためのフランジが設けられている。
【００２７】
第１マニピュレーターＭ１が備える７つの（関節に備えられた）アクチュエーターはそれぞれ、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、当該アクチュエーターは、ロボット制御装置３０から取得される制御信号に基づいて、第１マニピュレーターＭ１を動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、第１マニピュレーターＭ１が備える７つのアクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００２８】
第１撮像部２１は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤ（Charge  Coupled  Device）やＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等を備えたカメラである。この一例において、第１撮像部２１は、第１マニピュレーターＭ１の一部に備えられる。そのため、第１撮像部２１は、第１アームの動きに応じて移動する。また、第１撮像部２１が撮像可能な範囲は、第１アームの動きに応じて変化する。第１撮像部２１は、当該範囲の静止画像を撮像してもよく、当該範囲の動画像を撮像してもよい。
【００２９】
また、第１撮像部２１は、ケーブルによってロボット制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第１撮像部２１は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００３０】
第１力検出部１１は、第１エンドエフェクターＥ１と第１マニピュレーターＭ１の間に備えられる。第１力検出部１１は、例えば、力センサーである。第１力検出部１１は、第１エンドエフェクターＥ１（又は第１マニピュレーターＭ１に第１エンドエフェクターＥ１を設けるためのフランジ）に作用した力やモーメント（トルク）を検出する。第１力検出部１１は、検出した力やモーメントの大きさを示す値を出力値として含む第１力検出情報を通信によりロボット制御装置３０へ出力する。
【００３１】
第１力検出情報は、ロボット制御装置３０による第１アームの第１力検出情報に基づく制御に用いられる。第１力検出情報に基づく制御は、例えば、インピーダンス制御等のコンプライアンス制御のことである。なお、第１力検出部１１は、トルクセンサー等の第１エンドエフェクターＥ１（又は第１マニピュレーターＭ１に第１エンドエフェクターＥ１を設けるためのフランジ）に加わる力やモーメントの大きさを示す値を検出する他のセンサーであってもよい。
【００３２】
第１力検出部１１は、ケーブルによってロボット制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第１力検出部１１とロボット制御装置３０とは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって接続される構成であってもよい。
【００３３】
第２アームは、第２エンドエフェクターＥ２と、第２スイッチＳ２と、第２マニピュレーターＭ２と、第２力検出部１２を備える。なお、本実施形態では、第２アームに第２エンドエフェクターＥ２が含まれる場合について説明するが、第２アームと第２エンドエフェクターＥ２とが別体であってもよい。この場合、第２アームは、第２マニピュレーターＭ２と、第２力検出部１２を備える。
【００３４】
第２エンドエフェクターＥ２は、この一例において、物体を把持可能な爪部を備えるエンドエフェクターである。なお、第２エンドエフェクターＥ２は、当該爪部を備えるエンドエフェクターに代えて、電動ドライバーを備えるエンドエフェクター等の他のエンドエフェクターであってもよい。第２エンドエフェクターＥ２は、第２アームの手先に相当する部位である。第２エンドエフェクターＥ２は、エンドエフェクターの一例である。
【００３５】
第２エンドエフェクターＥ２は、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、第２エンドエフェクターＥ２は、ロボット制御装置３０から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、第２エンドエフェクターＥ２は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００３６】
第２スイッチＳ２は、ロボット制御装置３０がロボット２０を制御する際の制御モードを切り替えるスイッチである。第２スイッチＳ２は、この一例において、第２エンドエフェクターＥ２に設けられている。この一例において、第２スイッチＳ２は、図２に示した第１スイッチＳ１と同様に、第２エンドエフェクターＥ２の側面に設けられる。なお、第２スイッチＳ２は、これに代えて、第２マニピュレーターＭ２等の第２アームの他の部位や、ロボット制御装置３０に設けられる構成であってもよい。この場合、ロボット２０は、第２エンドエフェクターＥ２を備えない構成であってもよい。
【００３７】
第２マニピュレーターＭ２は、７つの関節である関節Ｊ１１〜関節Ｊ１７と、第２撮像部２２を備える。また、関節Ｊ１１〜関節Ｊ１７はそれぞれ、図示しないアクチュエーターを備える。すなわち、第２マニピュレーターＭ２を備える第２アームは、７軸垂直多関節型のアームである。第２アームは、支持台と、第２エンドエフェクターＥ２と、第２マニピュレーターＭ２と、第２マニピュレーターＭ２が備える７つの関節である関節Ｊ１１〜関節Ｊ１７それぞれのアクチュエーターとによる連携した動作によって７軸の自由度の動作を行う。なお、第２アームは、８軸以上の自由度で動作する構成であってもよい。
【００３８】
図１に示したように、第２マニピュレーターＭ２が備える７つの関節のうちの支持台側から４つ目の関節である関節Ｊ１４は、第２アームの肘ＥＬ２に相当する関節である。また、第２マニピュレーターＭ２が備える７つの関節のうちの支持台側から７つ目の関節である関節Ｊ１７は、アームの関節のうちの最先端の関節の一例である。関節Ｊ１７の端部のうちの支持台側とは反対側の端部には、第２エンドエフェクターＥ２を設置するためのフランジが設けられている。
【００３９】
第２アームが７軸の自由度で動作する場合、第２アームは、６軸以下の自由度で動作する場合と比較して取り得る姿勢が増える。これにより第２アームは、例えば、動作が滑らかになり、更に第２アームの周辺に存在する物体との干渉を容易に回避することができる。また、第２アームが７軸の自由度で動作する場合、第２アームの制御は、第２アームが８軸以上の自由度で動作する場合と比較して計算量が少なく容易である。
【００４０】
第２マニピュレーターＭ２が備える７つの（関節に備えられた）アクチュエーターはそれぞれ、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、当該アクチュエーターは、ロボット制御装置３０から取得される制御信号に基づいて、第２マニピュレーターＭ２を動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、第２マニピュレーターＭ２が備える７つのアクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００４１】
第２撮像部２２は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤやＣＭＯＳ等を備えたカメラである。この一例において、第２撮像部２２は、第２マニピュレーターＭ２の一部に備えられる。そのため、第２撮像部２２は、第２アームの動きに応じて移動する。また、第２撮像部２２が撮像可能な範囲は、第２アームの動きに応じて変化する。第２撮像部２２は、当該範囲の静止画像を撮像してもよく、当該範囲の動画像を撮像してもよい。
【００４２】
また、第２撮像部２２は、ケーブルによってロボット制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第２撮像部２２は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００４３】
第２力検出部１２は、第２エンドエフェクターＥ２と第２マニピュレーターＭ２の間に備えられる。第２力検出部１２は、例えば、力センサーである。第２力検出部１２は、第２エンドエフェクターＥ２（又は第２マニピュレーターＭ２に第２エンドエフェクターＥ２を設けるためのフランジ）に作用した力やモーメント（トルク）を検出する。第２力検出部１２は、検出した力やモーメントの大きさを示す値を出力値として含む第２力検出情報を通信によりロボット制御装置３０へ出力する。
【００４４】
第２力検出情報は、ロボット制御装置３０による第２アームの第２力検出情報に基づく制御に用いられる。第２力検出情報に基づく制御は、例えば、インピーダンス制御等のコンプライアンス制御のことである。なお、第２力検出部１２は、トルクセンサー等の第２エンドエフェクターＥ２（又は第２マニピュレーターＭ２に第２エンドエフェクターＥ２を設けるためのフランジ）に加わる力やモーメントの大きさを示す値を検出する他のセンサーであってもよい。
【００４５】
第２力検出部１２は、ケーブルによってロボット制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第２力検出部１２とロボット制御装置３０とは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって接続される構成であってもよい。
【００４６】
また、ロボット２０は、第３撮像部２３と、第４撮像部２４を備える。
第３撮像部２３は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤやＣＭＯＳ等を備えたカメラである。第３撮像部２３は、第４撮像部２４が撮像可能な範囲を第４撮像部２４とともにステレオ撮像可能な部位に備えられる。第３撮像部２３は、ケーブルによってロボット制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第３撮像部２３は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００４７】
第４撮像部２４は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤやＣＭＯＳ等を備えたカメラである。第４撮像部２４は、第３撮像部２３が撮像可能な範囲を第３撮像部２３とともにステレオ撮像可能な部位に備えられる。第４撮像部２４は、ケーブルによって通信可能にロボット制御装置３０と接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第４撮像部２４は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００４８】
上記で説明したロボット２０が備えるこれらの各機能部は、この一例において、ロボット２０に内蔵されたロボット制御装置３０から制御信号を取得する。そして、当該各機能部は、取得した制御信号に基づいた動作を行う。なお、ロボット２０は、ロボット制御装置３０を内蔵する構成に代えて、外部に設置されたロボット制御装置３０により制御される構成であってもよい。この場合、ロボット２０と、ロボット制御装置３０とは、ロボットシステムを構成する。また、ロボット２０は、第１撮像部２１と、第２撮像部２２と、第３撮像部２３と、第４撮像部２４のうちの一部又は全部を備えない構成であってもよい。
【００４９】
ロボット制御装置３０は、ロボット２０に制御信号を送信することにより、ロボット２０を動作させる。また、この一例におけるロボット制御装置３０には、ユーザーがダイレクトティーチングによってロボット２０の動作を教示（記憶）することが可能である。ロボット２０の動作は、第１アームの動作と第２アームの動作とのうちいずれか一方又は両方のことである。
【００５０】
ロボット制御装置３０は、ユーザーによるダイレクトティーチングの際、第１エンドエフェクターＥ１に対して加えられたモーメント（トルク）のうちの関節Ｊ７の回動軸周りに加えられたモーメントの大きさに基づいて、第１アームのＴＣＰの位置及び姿勢を変化させずに第１アームの姿勢を変化させる。また、ロボット制御装置３０は、ユーザーによるダイレクトティーチングの際、第２エンドエフェクターＥ２に対して加えられたモーメント（トルク）のうちの関節Ｊ１７の回動軸周りに加えられたモーメントの大きさに基づいて、第２アームのＴＣＰの位置及び姿勢を変化させずに第２アームの姿勢を変化させる。
【００５１】
本実施形態では、ダイレクトティーチングの際に第１エンドエフェクターＥ１に対して加えられたモーメントに基づくロボット制御装置３０の処理について詳しく説明する。以下では、この一例として、ロボット制御装置３０が、ユーザーがダイレクトティーチングによって第１アームの動作を記憶させる場合について説明する。
【００５２】
この場合、ダイレクトティーチングでは、ロボット２０の第１アームをユーザーが把持して移動させることにより、第１アームの動作がロボット制御装置３０に対して教示される。また、ダイレクトティーチングでは、ロボット制御装置３０に教示したい第１アームの動作において第１アームのＴＣＰを経由させる１以上の経由点（教示点、ポイント）の位置を示す情報と、各経由点の位置それぞれにおいて第１アームに実現させたいＴＣＰの姿勢を示す情報と、各経由点の位置それぞれにおいて第１アームに実現させたい姿勢とがロボット制御装置３０に教示される。この一例において、第１アームの姿勢は、第１マニピュレーターＭ１の７つの関節それぞれが備えるアクチュエーターの回転角によって表される。
【００５３】
また、ダイレクトティーチングによる教示において、第１アームは、第１力検出部１１から取得される第１力検出情報に基づく制御（例えば、インピーダンス制御等）によって、第１アームの姿勢が自重により変化しないようにロボット制御装置３０に制御される。
【００５４】
ここで、ダイレクトティーチングの際の本実施形態に係るロボット制御装置３０の処理の概略について説明する。ロボット制御装置３０は、第１アームの関節のうちの最先端の関節Ｊ７の先に設けられる部材である第１エンドエフェクターＥ１を所望の位置及び姿勢にした状態（すなわち、第１アームのＴＣＰの位置及び姿勢を所望の位置及び姿勢にした状態）で、第１力検出部１１からの出力値を含む第１力検出情報に基づいて第１アームの姿勢を変更して教示を行うことができる。
【００５５】
より具体的には、本実施形態に係るロボット制御装置３０は、ユーザーから第１エンドエフェクターＥ１に加えられたモーメントに基づいて、第１アームのＴＣＰを所望の位置及び姿勢にした状態で（すなわち、第１アームのＴＣＰの位置及び姿勢を所望の位置及び姿勢に固定したまま）、第１アームの姿勢を変化させる。この一例において、ロボット制御装置３０は、当該モーメントに基づいて、第１アームのＴＣＰの位置及び姿勢を所望の位置及び姿勢に固定したまま、前述の肘ＥＬ１の角度を変化させることにより第１アームの姿勢を変化させる。これにより、ロボット制御装置３０は、ダイレクトティーチングによって所望の動作を教示することができる。肘ＥＬ１の角度は、関節Ｊ４が備えるアクチュエーターの回転角のことである。なお、ロボット制御装置３０は、第１アームのＴＣＰの位置及び姿勢を所望の位置及び姿勢に固定したまま、前述の肘ＥＬ１の角度を変化させることにより第１アームの姿勢を変化させる構成に代えて、第１アームのＴＣＰの位置及び姿勢を所望の位置及び姿勢に固定したまま、他の関節の角度を変化させることにより第１アームの姿勢を変化させる構成であってもよい。
【００５６】
次に、図３を参照し、ロボット制御装置３０のハードウェア構成について説明する。図３は、ロボット制御装置３０のハードウェア構成の一例を示す図である。ロボット制御装置３０は、例えば、ＣＰＵ（Central  Processing  Unit）３１と、記憶部３２と、入力受付部３３と、通信部３４と、表示部３５を備える。また、ロボット制御装置３０は、通信部３４を介してロボット２０と通信を行う。これらの構成要素は、バスＢｕｓを介して相互に通信可能に接続されている。
【００５７】
ＣＰＵ３１は、記憶部３２に格納された各種プログラムを実行する。
記憶部３２は、例えば、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read−Only  Memory）、ＲＯＭ（Read−Only  Memory）、ＲＡＭ（Random  Access  Memory）等を含む。記憶部３２は、ロボット制御装置３０が処理する各種情報や画像、プログラム、図３に示した手先運動モデル情報３２１及び肘運動モデル情報３２２等を格納する。なお、記憶部３２は、ロボット制御装置３０に内蔵されるものに代えて、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。
【００５８】
手先運動モデル情報３２１は、第１力検出部１１から取得される第１力検出情報に基づいてロボット制御装置３０が第１アームのＴＣＰの位置及び姿勢を変化させる変化量である第１ＴＣＰ位置姿勢変化量を算出する数理モデルを示す情報である。第１アームのＴＣＰの位置を変化させる変化量は、現在の第１アームのＴＣＰの位置から変化後の第１アームのＴＣＰの位置までの変位量によって表される。また、第１アームのＴＣＰの姿勢を変化させる変化量は、現在の第１アームのＴＣＰの姿勢を表す３つの座標軸のそれぞれを、変化後の第１アームのＴＣＰの姿勢を表す３つの座標軸のそれぞれに一致させるまでのオイラー角によって表される。
【００５９】
また、手先運動モデル情報３２１は、第２力検出部１２から取得される第２力検出情報に基づいてロボット制御装置３０が第２アームのＴＣＰの位置及び姿勢を変化させる変化量である第２ＴＣＰ位置姿勢変化量を算出する数理モデルを示す情報である。第２アームのＴＣＰの位置を変化させる変化量は、現在の第２アームのＴＣＰの位置から変化後の第１アームのＴＣＰの位置までの変位量によって表される。また、現在の第２アームのＴＣＰの姿勢を表す３つの座標軸のそれぞれを、変化後の第２アームのＴＣＰの姿勢を表す３つの座標軸のそれぞれに一致させるまでのオイラー角によって表される。
【００６０】
肘運動モデル情報３２２は、第１力検出部１１から取得される第１力検出情報に基づいてロボット制御装置３０が肘ＥＬ１の角度を変化させる変化量である第１肘角度変化量を算出する数理モデルを示す情報である。肘ＥＬ１の角度を変化させる変化量は、現在の肘ＥＬ１の角度から変化後の肘ＥＬ１の角度までの回転角によって表される。
【００６１】
また、肘運動モデル情報３２２は、第２力検出部１２から取得される第２力検出情報に基づいてロボット制御装置３０が肘ＥＬ２の角度を変化させる変化量である第２肘角度変化量を算出する数理モデルを示す情報である。肘ＥＬ２の角度を変化させる変化量は、現在の肘ＥＬ２の角度から変化後の肘ＥＬ２の角度までの回転角によって表される。
【００６２】
ここで、手先運動モデル情報３２１及び肘運動モデル情報３２２について説明する。これらの数理モデルは、以下に示した式（１）が表わす運動方程式に基づく数理モデルである。なお、式（１）が表わす運動方程式の詳細な説明については、コンプライアンス制御等において従来から用いられている式であるため省略する。
【００６３】
【数１】
0006648469.tif 000002
【００６４】
Ｍは、慣性質量行列である。Ｄは、ダンパー係数行列である。Ｋは、バネ乗数行列である。慣性質量行列Ｍと、ダンパー係数行列Ｄと、バネ乗数行列Ｋとは、予め決められている。Ｆ（ｔ）は、時刻ｔにおいて第１エンドエフェクターＥ１又は第２エンドエフェクターＥ２に加えられた力及びモーメントを成分として有する行列である。また、手先運動モデル情報３２１において、ｘ（ｔ）は、行列Ｆ（ｔ）に含まれる力及びモーメントが第１エンドエフェクターＥ１に加えられたことによる第１アームのＴＣＰの位置及び姿勢の変化量、又は行列Ｆ（ｔ）に含まれる力及びモーメントが第２エンドエフェクターＥ２に加えられたことによる第２アームのＴＣＰの位置及び姿勢の変化量を成分として有するベクトルである。また、肘運動モデル情報３２２において、ｘ（ｔ）は、行列Ｆ（ｔ）に含まれる力及びモーメントが第１エンドエフェクターＥ１に加えられたことによる肘ＥＬ１の角度の変化量、又は行列Ｆ（ｔ）に含まれる力及びモーメントが第２エンドエフェクターＥ２に加えられたことによる肘ＥＬ２の角度の変化量を表す変数である。
【００６５】
例えば、ロボット制御装置３０は、第１力検出情報が示す力及びモーメント（すなわち、ユーザーから第１エンドエフェクターＥ１に対して加えられた力及びモーメント）の大きさを上記の式（１）の行列Ｆ（ｔ）に代入し、上記の式（１）を解くことにより、行列Ｆ（ｔ）に含まれる力及びモーメントが第１エンドエフェクターＥ１に加えられたことによる第１アームのＴＣＰの位置及び姿勢の変化量を成分として有するベクトルｘ（ｔ）を前述の第１ＴＣＰ位置姿勢変化量として算出する。また、ロボット制御装置３０は、第２力検出情報が示す力及びモーメント（すなわち、ユーザーから第２エンドエフェクターＥ２に対して加えられた力やモーメント）の大きさを上記の式（１）の行列Ｆ（ｔ）に代入し、上記の式（１）を解くことにより、行列Ｆ（ｔ）に含まれる力及びモーメントが第２エンドエフェクターＥ２に加えられたことによる第２アームのＴＣＰの位置及び姿勢の変化量を成分として有するベクトルｘ（ｔ）を前述の第２ＴＣＰ位置姿勢変化量として算出することができる。
【００６６】
また、例えば、ロボット制御装置３０は、第１力検出情報が示す力及びモーメントを上記の式（１）の行列Ｆ（ｔ）に代入し、上記の式（１）を解くことにより、行列Ｆ（ｔ）に含まれる力及びモーメントが第１エンドエフェクターＥ１に加えられたことによる肘ＥＬ１の角度の変化量を表す変数ｘ（ｔ）を前述の第１肘角度変化量として算出することができる。また、ロボット制御装置３０は、第２力検出情報が示す力及びモーメント（すなわち、ユーザーから第２エンドエフェクターＥ２に対して加えられた力やモーメント）の大きさを上記の式（１）の行列Ｆ（ｔ）に代入し、上記の式（１）を解くことにより、行列Ｆ（ｔ）に含まれる力及びモーメントが第２エンドエフェクターＥ２に加えられたことによる肘ＥＬ２の角度の変化量を表す変数ｘ（ｔ）を前述の第２肘角度変化量として算出することができる。
【００６７】
入力受付部３３は、例えば、キーボードやマウス、タッチパッド等を備えたティーチングペンダントや、その他の入力装置である。なお、入力受付部３３は、タッチパネルとして表示部３５と一体に構成されてもよい。
通信部３４は、例えば、ＵＳＢ等のデジタル入出力ポートやイーサネット（登録商標）ポート等を含んで構成される。
表示部３５は、例えば、液晶ディスプレイパネル、あるいは、有機ＥＬ（ElectroLuminescence）ディスプレイパネルである。
【００６８】
次に、図４を参照して、ロボット制御装置３０の機能構成について説明する。図４は、ロボット制御装置３０の機能構成の一例を示す図である。ロボット制御装置３０は、記憶部３２と、入力受付部３３と、表示部３５と、制御部３６を備える。
【００６９】
制御部３６は、ロボット制御装置３０の全体を制御する。制御部３６は、表示制御部４０と、力検出情報取得部４１と、モード切替制御部４２と、変化量算出部４３と、逆運動学処理部４４と、順運動学処理部４５と、ロボット制御部４６と、教示制御部４７を備える。
【００７０】
制御部３６が備えるこれらの機能部は、例えば、ＣＰＵ３１が、記憶部３２に記憶された各種プログラムを実行することで実現される。なお、これらの機能部のうちの一部又は全部は、ＬＳＩ（Large  Scale  Integration）やＡＳＩＣ（Application  Specific  Integrated  Circuit）等のハードウェア機能部であってもよい。
【００７１】
表示制御部４０は、ダイレクトティーチングによる教示に関する操作をユーザーから受け付ける教示画面を生成する。表示制御部４０は、生成した教示画面を表示部３５に表示させる。
力検出情報取得部４１は、第１力検出部１１から第１力検出情報を取得する。また、力検出情報取得部４１は、第２力検出部１２から第２力検出情報を取得する。
【００７２】
モード切替制御部４２は、第１スイッチＳ１が押下された場合、制御部３６の第１アームに対する制御モード（前述のロボット制御装置３０の制御モード）を第１モードに設定する（切り替える）。また、モード切替制御部４２は、第１スイッチＳ１の押下が解除された場合、制御部３６の第１アームに対する制御モードを第２モードに設定する（切り替える）。また、モード切替制御部４２は、第２スイッチＳ２が押下された場合、制御部３６の第２アームに対する制御モード（前述のロボット制御装置３０の制御モード）を第１モードに設定する（切り替える）。また、モード切替制御部４２は、第２スイッチＳ２の押下が解除された場合、制御部３６の第２アームに対する制御モードを第２モードに設定する（切り替える）。なお、モード切替制御部４２は、これに代えて、例えば、第１スイッチＳ１又は第２スイッチＳ２が押下された場合、制御部３６の第１アーム及び第２アームの両方に対する制御モードを第１モードに設定し、第１スイッチＳ１及び第２スイッチＳ２の両方への押下が解除された場合、制御部３６の第１アーム及び第２アームの両方に対する制御モードを第２モードに設定する構成であってもよい。
【００７３】
変化量算出部４３は、制御部３６の制御モードが第１モードの場合、肘運動モデル情報３２２を記憶部３２から読み出す。そして、変化量算出部４３は、力検出情報取得部４１から取得した第１力検出情報と、読み出した肘運動モデル情報３２２とに基づいて第１肘角度変化量を算出する。また、変化量算出部４３は、力検出情報取得部４１から取得した第２力検出情報と、読み出した肘運動モデル情報３２２とに基づいて第２肘角度変化量を算出する。
【００７４】
また、変化量算出部４３は、制御部３６の制御モードが第２モードの場合、手先運動モデル情報３２１を記憶部３２から読み出す。そして、逆運動学処理部４４は、力検出情報取得部４１から取得した第１力検出情報と、読み出した手先運動モデル情報３２１とに基づいて第１ＴＣＰ位置姿勢変化量を算出する。また、変化量算出部４３は、力検出情報取得部４１から取得した第２力検出情報と、読み出した手先運動モデル情報３２１とに基づいて第２ＴＣＰ位置姿勢変化量を算出する。
【００７５】
逆運動学処理部４４は、制御部３６の制御モードが第１モードの場合、変化量算出部４３が算出した第１肘角度変化量と、現在の第１アームのＴＣＰの位置及び姿勢と、逆運動学とに基づいて、当該位置及び姿勢を変化させずに現在の肘ＥＬ１の角度を第１肘角度変化量だけ変化させた場合の第１マニピュレーターＭ１の７つの関節それぞれが備えるアクチュエーターの回転角を算出する。当該回転角は、第１アームの姿勢を表す回転角である。また、逆運動学処理部４４は、制御部３６の制御モードが第１モードの場合、変化量算出部４３が算出した第２肘角度変化量と、現在の第２アームのＴＣＰの位置及び姿勢と、逆運動学とに基づいて、当該位置及び姿勢を変化させずに現在の肘ＥＬ２の角度を第２肘角度変化量だけ変化させた場合の第２マニピュレーターＭ２の７つの関節それぞれが備えるアクチュエーターの回転角を算出する。当該回転角は、第２アームの姿勢を表す回転角である。
【００７６】
また、逆運動学処理部４４は、制御部３６の制御モードが第２モードの場合、変化量算出部４３が算出した第１ＴＣＰ位置姿勢変化量と、現在の第１アームのＴＣＰの位置及び姿勢と、逆運動学とに基づいて、当該位置及び姿勢が第１ＴＣＰ位置姿勢変化量だけ変化した場合の第１マニピュレーターＭ１の７つの関節それぞれが備えるアクチュエーターの回転角を算出する。当該回転角は、第１アームの姿勢を表す回転角である。また、逆運動学処理部４４は、制御部３６の制御モードが第２モードの場合、変化量算出部４３が算出した第２ＴＣＰ位置姿勢変化量と、現在の第２アームのＴＣＰの位置及び姿勢と、逆運動学とに基づいて、当該位置及び姿勢が第２ＴＣＰ位置姿勢変化量だけ変化した場合の第２マニピュレーターＭ２の７つの関節それぞれが備えるアクチュエーターの回転角を算出する。当該回転角は、第２アームの姿勢を表す回転角である。
【００７７】
順運動学処理部４５は、現在の第１マニピュレーターＭ１の７つの関節それぞれが備えるアクチュエーターの回転角に基づいて、現在の第１アームのＴＣＰの位置及び姿勢を算出する。
【００７８】
また、順運動学処理部４５は、現在の第１アームのＴＣＰの位置及び姿勢と、順運動学とに基づいて、逆運動学処理部４４が算出した第１ＴＣＰ位置姿勢変化量に基づくロボット制御部４６による第１アームのＴＣＰの位置及び姿勢の変化が完了したか否かを判定する。また、順運動学処理部４５は、現在の第２アームのＴＣＰの位置及び姿勢と、順運動学とに基づいて、逆運動学処理部４４が算出した第２ＴＣＰ位置姿勢変化量に基づくロボット制御部４６による第２アームのＴＣＰの位置及び姿勢の変化が完了したか否かを判定する。
【００７９】
また、順運動学処理部４５は、現在の第１アームの姿勢に基づいて、逆運動学処理部４４が算出した第１アーム姿勢変化量に基づくロボット制御部４６による第１アームの姿勢の変化が完了したか否かを判定する。また、順運動学処理部４５は、現在の第２アームの姿勢と、順運動学とに基づいて、逆運動学処理部４４が算出した第２アーム姿勢変化量に基づくロボット制御部４６による第２アームの姿勢の変化が完了したか否かを判定する。
【００８０】
ロボット制御部４６は、逆運動学処理部４４が算出した第１アームの姿勢を表す回転角であって第１マニピュレーターＭ１の７つの関節それぞれが備えるアクチュエーターの回転角に基づいて、第１アームの姿勢を変化させる。また、ロボット制御部４６は、逆運動学処理部４４が算出した第２アームの姿勢を表す回転角であって第２マニピュレーターＭ２の７つの関節それぞれが備えるアクチュエーターの回転角に基づいて、第２アームの姿勢を変化させる。
【００８１】
教示制御部４７は、表示制御部４０が表示部３５に表示させた教示画面を介してユーザーから受け付けた操作に基づいて、例えば、現在の第１アームのＴＣＰの位置及び姿勢と、現在の第１アームの姿勢とを対応付けて記憶部３２に記憶させる。また、教示制御部４７は、表示制御部４０が表示部３５に表示させた教示画面を介してユーザーから受け付けた操作に基づいて、例えば、現在の第２アームのＴＣＰの位置及び姿勢と、現在の第２アームの姿勢とを対応付けて記憶部３２に記憶させる。
【００８２】
以上のような構成により、制御部３６は、ユーザーが第１スイッチＳ１を押下したまま第１エンドエフェクターＥ１を関節Ｊ７の軸周りに捻った場合、第１アームのＴＣＰの位置及び姿勢を所望の位置及び姿勢（例えば、現在の第１アームのＴＣＰの位置及び姿勢）から変化させずに、肘ＥＬ１の角度を変化させる。また、制御部３６は、ユーザーが第１スイッチＳ１を押下せずに第１エンドエフェクターＥ１に力を加えたり、第１エンドエフェクターＥ１を関節Ｊ７の軸周りに捻ったりした場合、第１アームのＴＣＰの位置及び姿勢を変化させる。以下では、図５を参照し、このような制御部３６の処理について説明する。図５は、制御部３６が行う処理の流れの一例を示すフローチャートである。
【００８３】
モード切替制御部４２は、第１スイッチＳ１が押下されているか否かに応じて制御部３６の制御モードを設定する（ステップＳ１００）。より具体的には、モード切替制御部４２は、第１スイッチＳ１が押下されているか否かを判定する。そして、第１スイッチＳ１が押下されていると判定した場合、モード切替制御部４２は、制御部３６の制御モードを第１モードに設定する（切り替える）。一方、第１スイッチＳ１が押下されていないと判定した場合、モード切替制御部４２は、制御部３６の制御モードを第２モードに設定する（切り替える）。
【００８４】
ステップＳ１００においてモード切替制御部４２が制御部３６の制御モードを設定した後、力検出情報取得部４１は、第１力検出部１１から第１力検出情報を取得する（ステップＳ１１０）。次に、変化量算出部４３は、ステップＳ１００においてモード切替制御部４２が設定した制御部３６の制御モードが第１モードか否かを判定する（ステップＳ１２０）。
【００８５】
制御部３６の制御モードが第１モードではないと判定した場合（ステップＳ１２０−Ｎｏ）、変化量算出部４３は、記憶部３２から手先運動モデル情報３２１を読み出し、読み出した手先運動モデル情報３２１と、ステップＳ１１０において力検出情報取得部４１が取得した第１力検出情報とに基づいて、第１ＴＣＰ位置姿勢変化量を算出する（ステップＳ１３０）。一方、制御部３６の制御モードが第１モードであると判定した場合（ステップＳ１２０−Ｙｅｓ）、変化量算出部４３は、記憶部３２から肘運動モデル情報３２２を読み出し、読み出した肘運動モデル情報３２２と、ステップＳ１１０において力検出情報取得部４１が取得した第１力検出情報とに基づいて、第１肘角度変化量を算出する（ステップＳ１７０）。
【００８６】
ステップＳ１３０の処理又はステップＳ１７０の処理の後、逆運動学処理部４４は、逆運動学処理を行う（ステップＳ１４０）。ここで、ステップＳ１４０の処理について説明する。
【００８７】
ステップＳ１３０において第１ＴＣＰ位置姿勢変化量が算出された後のステップＳ１４０では、逆運動学処理部４４は、現在の第１マニピュレーターＭ１の７つの関節それぞれが備えるアクチュエーターの回転角に基づいて、現在の第１アームのＴＣＰの位置及び姿勢（所望の位置及び姿勢の一例）を順運動学処理部４５に算出させる。そして、逆運動学処理部４４は、順運動学処理部４５が算出した現在の第１アームのＴＣＰの位置及び姿勢と、ステップＳ１３０において算出した第１ＴＣＰ位置姿勢変化量と、逆運動学とに基づいて、第１アームのＴＣＰの位置及び姿勢を、第１ＴＣＰ位置姿勢変化量だけ変化させた場合における第１アームの姿勢を表す回転角であって第１マニピュレーターＭ１の７つの関節それぞれが備えるアクチュエーターの回転角を算出する。
【００８８】
ステップＳ１７０において第１肘角度変化量が算出された後のステップＳ１４０では、逆運動学処理部４４は、現在の第１マニピュレーターＭ１の７つの関節それぞれが備えるアクチュエーターの回転角に基づいて、現在の第１アームのＴＣＰの位置及び姿勢を順運動学処理部４５に算出させる。そして、逆運動学処理部４４は、順運動学処理部４５が算出した現在の第１アームのＴＣＰの位置及び姿勢と、ステップＳ１７０において算出した第１肘角度変化量と、逆運動学とに基づいて、第１アームのＴＣＰの位置及び姿勢をこの一例における所望の位置及び姿勢である現在の位置及び姿勢から変化させずに、肘ＥＬ１の角度を第１肘角度変化量だけ変化させた場合における第１アームの姿勢を表す回転角であって第１マニピュレーターＭ１の７つの関節それぞれが備えるアクチュエーターの回転角を算出する。
【００８９】
ステップＳ１４０の処理の後、ロボット制御装置３０は、現在の第１アームが備える７つの関節それぞれのアクチュエーターの回転角を、ステップＳ１４０において算出された７つのアクチュエーターの回転角に一致させることにより、第１アームの姿勢を変化させる（ステップＳ１５０）。
【００９０】
ここで、ステップＳ１５０の処理について説明する。ステップＳ１３０において第１ＴＣＰ位置姿勢変化量が算出された後のステップＳ１５０では、ロボット制御部４６は、現在の第１アームが備える７つの関節それぞれのアクチュエーターの回転角を、ステップＳ１４０において算出された７つのアクチュエーターの回転角に一致させることにより、第１アームの姿勢を変化させるとともに、第１アームのＴＣＰの位置及び姿勢を変化させる。すなわち、ロボット制御部４６は、ユーザーが第１エンドエフェクターＥ１に対して力を加えた、又は第１エンドエフェクターＥ１を関節Ｊ７の軸周りに捻った結果として取得された第１力検出情報（ステップＳ１１０において取得された第１力検出情報）に基づいて、第１アームのＴＣＰの位置及び姿勢を変化させる。この際、ロボット制御部４６は、順運動学処理部４５が、現在の第１アームのＴＣＰの位置及び姿勢と、順運動学とに基づいて、逆運動学処理部４４が算出した第１ＴＣＰ位置姿勢変化量に基づくロボット制御部４６による第１アームのＴＣＰの位置及び姿勢の変化が完了したと判定するまで第１アームの姿勢、及び第１アームのＴＣＰの位置及び姿勢を変化させ続ける。
【００９１】
また、ステップＳ１７０において第１肘角度変化量が算出された後のステップＳ１５０では、ロボット制御部４６は、現在の第１アームが備える７つの関節それぞれのアクチュエーターの回転角を、ステップＳ１４０において算出された７つのアクチュエーターの回転角に一致させることにより、第１アームのＴＣＰの位置及び姿勢を現在の位置及び姿勢から変化させずに肘ＥＬ１の角度を変化させ、第１アームの姿勢を変化させる。すなわち、ロボット制御部４６は、ユーザーが第１エンドエフェクターＥ１を関節Ｊ７の軸周りに捻った結果として取得された第１力検出情報（ステップＳ１１０において取得された第１力検出情報）に基づいて、第１アームのＴＣＰの位置及び姿勢を現在の位置及び姿勢から変化させずに第１アームの姿勢を変化させる。この際、ロボット制御部４６は、順運動学処理部４５が、現在の第１アームのＴＣＰの位置及び姿勢と、現在の第１アームの姿勢と、順運動学とに基づいて、逆運動学処理部４４が算出した第１肘角度変化量に基づくロボット制御部４６による第１アームの姿勢の変化が完了したと判定するまで第１アームの姿勢を変化させ続ける。
【００９２】
図６は、ステップＳ１７０において第１肘角度変化量が算出された後のステップＳ１５０において、肘ＥＬ１の角度を変化させる前の様子の一例を示す図である。また、図７は、図６に示した状態から、ロボット制御部４６が第１アームのＴＣＰの位置及び姿勢を変化させずに肘ＥＬ１の角度を変化させた後の様子の一例を示す図である。
【００９３】
図６と図７を比較することにより、ロボット制御部４６は、第１エンドエフェクターＥ１の位置及び姿勢、すなわち第１アームのＴＣＰの位置及び姿勢を現在の位置及び姿勢から変化させずに肘ＥＬ１の角度を変化させていることが分かる。このように、第１アームのＴＣＰの位置及び姿勢を現在の位置及び姿勢から変化させずに肘ＥＬ１の角度を変化させることにより、ユーザーは、ダイレクトティーチングによって所望の動作をロボット制御装置３０に教示することができる。例えば、ある経由点に第１アームのＴＣＰの位置を一致させた際に、第１アームの肘ＥＬ１の角度を変化させなければ、第１アームが他の物体と干渉してしまうような場合、ユーザーは、第１スイッチＳ１を押下したまま第１エンドエフェクターＥ１を関節Ｊ７の軸周りに捻ることにより、第１アームのＴＣＰの位置及び姿勢を現在の位置及び姿勢から変化させずに肘ＥＬ１の角度を、第１アームが他の物体に干渉しない角度へと変化させることができる。
【００９４】
ステップＳ１５０の処理の後、教示制御部４７は、表示制御部４０が表示部３５に表示させた教示画面を介してユーザーから受け付けた操作に基づいて、現在の第１アームのＴＣＰの位置及び姿勢と、現在の第１アームの姿勢とを対応付けて記憶部３２に記憶させる（ステップＳ１５５）。次に、教示制御部４７は、ダイレクトティーチングによる教示が終了したか否かを判定する（ステップＳ１６０）。教示制御部４７は、例えば、表示制御部４０が表示部３５に表示させた教示画面を介してユーザーからダイレクトティーチングによる教示を終了させるための操作を受け付けた場合、ダイレクトティーチングによる教示が終了したと判定する。
【００９５】
ダイレクトティーチングによる教示が終了していないと教示制御部４７が判定した場合（ステップＳ１６０−Ｎｏ）、モード切替制御部４２は、ステップＳ１００に遷移し、再び制御部３６の制御モードを設定する。一方、ダイレクトティーチングによる教示が終了したと教示制御部４７が判定した場合（ステップＳ１６０−Ｙｅｓ）、制御部３６は、処理を終了する。
【００９６】
なお、上記において説明したロボット制御装置３０は、第１エンドエフェクターＥ１と第１マニピュレーターＭ１の間に設けられた第１力検出部１１から取得した第１力検出情報に基づいて第１アームの姿勢、又は第１アームのＴＣＰの位置及び姿勢を変更する構成に代えて、第１マニピュレーターＭ１が備える７つのアクチュエーターの一部又は全部のそれぞれに加わる力やモーメントを検出するセンサーやトルクセンサー、力センサーとトルクセンサーの組み合わせ等から出力される出力値（力やモーメント（トルク））に基づいて第１アームの姿勢、又は第１アームのＴＣＰの位置及び姿勢を変更する構成であってもよい。この場合、ユーザーは、第１マニピュレーターＭ１が備える７つのアクチュエーター（すなわち、７つの関節）の一部又は全部のそれぞれに力やモーメントを加えることによって、第１アームの姿勢、又は第１アームのＴＣＰの位置及び姿勢を変更し、ダイレクトティーチングを行うことができる。
【００９７】
＜実施形態の変形例１＞
以下、本発明の実施形態の変形例１について、図面を参照して説明する。なお、以下では、第１アームを例に挙げて説明するが、実施形態の変形例１において説明する内容は、第２アームについても同様に適用可能である。
【００９８】
上記で説明した実施形態では、図８に示したように、第１力検出部１１が第１エンドエフェクターＥ１と第１マニピュレーターＭ１との間に設けられていた。図８は、ロボット２０の第１エンドエフェクターＥ１と第１マニピュレーターＭ１との間に設けられた第１力検出部１１の一例を示す図である。図８において、第１力検出部１１は、図を簡略化するため、点線の四角によって表している。この場合、ロボット制御装置３０は、第１エンドエフェクターＥ１に対して加えられたモーメントに基づいて肘ＥＬ１の角度を変化させ、第１アームの姿勢を変化させることができた。これにより、ユーザーは、肘ＥＬ１の角度を変化させようとするたびに、ユーザーが第１エンドエフェクターＥ１を把持している位置から移動しなくてもよい。その結果、ロボット制御装置３０は、ユーザーのダイレクトティーチングにおける作業効率を向上させることができる。
【００９９】
しかし、上記の実施形態において説明したロボット２０は、図９及び図１０に示すように、第１エンドエフェクターＥ１と第１マニピュレーターＭ１との間と異なる他の部位に力検出部を備える構成であってもよい。図９は、肘ＥＬ１に備えられた力検出部１０１の一例を示す図である。図９において、力検出部１０１は、図を簡略化するため、点線の四角によって表している。
【０１００】
力検出部１０１は、この一例において、トルクセンサーである。力検出部１０１は、肘ＥＬ１に設けられる。力検出部１０１は、肘ＥＬ１が備えるアクチュエーターに加わるモーメント（トルク）を検出する。力検出部１０１は、検出したモーメントの大きさを示す値を出力値として含む力検出情報を通信によりロボット制御装置３０へ出力する。なお、力検出部１０１は、トルクセンサーに代えて、力センサー等の肘ＥＬ１に加わる力やモーメントを検出する他のセンサーであってもよい。
【０１０１】
第１アームが肘ＥＬ１に力検出部１０１を備える場合、ロボット制御装置３０は、力検出部１０１から肘ＥＬ１に加えられたモーメントの大きさを示す値を出力値として含む力検出情報を取得する。そして、ロボット制御装置３０は、取得した力検出情報に基づいて、肘ＥＬ１の角度を変化させることにより第１アームの姿勢を変化させる。すなわち、ユーザーは、肘ＥＬ１の角度を変えようとする場合、肘ＥＬ１に対して肘ＥＬ１の角度を変化させたい方向に力を加えること（例えば、押すこと）により、肘ＥＬ１のアクチュエーターにモーメントを生じさせ、肘ＥＬ１の角度を変化させることができる。その結果、ロボット制御装置３０は、第１エンドエフェクターＥ１に対して加えた力やモーメントによって、意図せずして第１アームのＴＣＰの位置を固定したまま第１アームの姿勢を変化させてしまうユーザーの誤操作を抑制することができる。なお、この一例において、力検出部１０１は、肘ＥＬ１に備えられていたが、これに代えて、肘ＥＬ１と異なる他の関節に備えられる構成であってもよい。
【０１０２】
図１０は、第１アームが備える７つの関節それぞれに備えられた力検出部を例示する図である。図１０において、第１アームは、力検出部１０１〜力検出部１０７の７つの力検出部を備えている。なお、図１０において、力検出部１０１〜力検出部１０７のそれぞれは、図を簡略化するため、点線の四角によって表している。
【０１０３】
力検出部１０１については、図９において既に説明しているため、説明を省略する。力検出部１０２〜力検出部１０７のそれぞれは、この一例において、トルクセンサーである。
力検出部１０２は、第１マニピュレーターＭ１が備える７つの関節のうちの支持台側から１つ目の関節である関節Ｊ１に設けられる。力検出部１０２は、関節Ｊ１が備えるアクチュエーターに加わるモーメント（トルク）を検出する。力検出部１０２は、検出したモーメントの大きさを示す値を出力値として含む力検出情報を通信によりロボット制御装置３０へ出力する。
【０１０４】
力検出部１０３は、第１マニピュレーターＭ１が備える７つの関節のうちの支持台側から２つ目の関節である関節Ｊ２に設けられる。力検出部１０３は、関節Ｊ２が備えるアクチュエーターに加わるモーメント（トルク）を検出する。力検出部１０３は、検出したモーメントの大きさを示す値を出力値として含む力検出情報を通信によりロボット制御装置３０へ出力する。
【０１０５】
力検出部１０４は、第１マニピュレーターＭ１が備える７つの関節のうちの支持台側から３つ目の関節である関節Ｊ３に設けられる。力検出部１０４は、関節Ｊ３が備えるアクチュエーターに加わるモーメント（トルク）を検出する。力検出部１０４は、検出したモーメントの大きさを示す値を出力値として含む力検出情報を通信によりロボット制御装置３０へ出力する。
【０１０６】
力検出部１０５は、第１マニピュレーターＭ１が備える７つの関節のうちの支持台側から５つ目の関節である関節Ｊ５に設けられる。力検出部１０５は、関節Ｊ５が備えるアクチュエーターに加わるモーメント（トルク）を検出する。力検出部１０５は、検出したモーメントの大きさを示す値を出力値として含む力検出情報を通信によりロボット制御装置３０へ出力する。
【０１０７】
力検出部１０６は、第１マニピュレーターＭ１が備える７つの関節のうちの支持台側から６つ目の関節である関節Ｊ６に設けられる。力検出部１０６は、関節Ｊ６が備えるアクチュエーターに加わるモーメント（トルク）を検出する。力検出部１０６は、検出したモーメントの大きさを示す値を出力値として含む力検出情報を通信によりロボット制御装置３０へ出力する。
【０１０８】
力検出部１０７は、第１マニピュレーターＭ１が備える７つの関節のうちの支持台側から７つ目の関節である関節Ｊ７に設けられる。力検出部１０７は、関節Ｊ７が備えるアクチュエーターに加わるモーメント（トルク）を検出する。力検出部１０７は、検出したモーメントの大きさを示す値を出力値として含む力検出情報を通信によりロボット制御装置３０へ出力する。
なお、力検出部１０１〜力検出部１０７の一部又は全部は、トルクセンサーに代えて、力センサー等の肘ＥＬ１に加わる力やモーメントを検出する他のセンサーであってもよい。
【０１０９】
このように、第１アームが力検出部１０１〜力検出部１０７を備える場合、ロボット制御装置３０は、力検出部１０２から関節Ｊ１に加えられたモーメントの大きさを示す値を出力値として含む力検出情報を取得する。また、ロボット制御装置３０は、力検出部１０３から関節Ｊ２に加えられたモーメントの大きさを示す値を出力値として含む力検出情報を取得する。また、ロボット制御装置３０は、力検出部１０４から関節Ｊ３に加えられたモーメントの大きさを示す値を出力値として含む力検出情報を取得する。
【０１１０】
また、ロボット制御装置３０は、力検出部１０１から関節Ｊ４、すなわち肘ＥＬ１に加えられたモーメントの大きさを示す値を出力値として含む力検出情報を取得する。また、ロボット制御装置３０は、力検出部１０５から関節Ｊ５に加えられたモーメントの大きさを示す値を出力値として含む力検出情報を取得する。また、ロボット制御装置３０は、力検出部１０６から関節Ｊ６に加えられたモーメントの大きさを示す値を出力値として含む力検出情報を取得する。また、ロボット制御装置３０は、力検出部１０７から関節Ｊ７に加えられたモーメントの大きさを示す値を出力値として含む力検出情報を取得する。
【０１１１】
そして、ロボット制御装置３０は、力検出部１０１〜力検出部１０７のそれぞれから取得した力検出情報に基づいて、第１アームの各関節の角度を変化させる。より具体的には、ロボット制御装置３０は、力検出部１０２から取得した力検出情報に基づいて、関節Ｊ１の角度を変化させる。また、ロボット制御装置３０は、力検出部１０３から取得した力検出情報に基づいて、関節Ｊ２の角度を変化させる。また、ロボット制御装置３０は、力検出部１０４から取得した力検出情報に基づいて、関節Ｊ３の角度を変化させる。
【０１１２】
また、ロボット制御装置３０は、力検出部１０１から取得した力検出情報に基づいて、関節Ｊ４の角度を変化させる。また、ロボット制御装置３０は、力検出部１０５から取得した力検出情報に基づいて、関節Ｊ５の角度を変化させる。また、ロボット制御装置３０は、力検出部１０６から取得した力検出情報に基づいて、関節Ｊ６の角度を変化させる。また、ロボット制御装置３０は、力検出部１０７から取得した力検出情報に基づいて、関節Ｊ７の角度を変化させる。
【０１１３】
つまり、ユーザーは、第１アームにおける角度を変えたい関節に対して、角度を変化させたい方向に力を加えること（例えば、押すこと）により、当該関節のアクチュエーターにモーメントを生じさせることで、当該関節の角度を変化させることができる。これにより、ロボット制御装置３０は、第１アームが備える関節のうちのユーザーが所望する関節の角度を容易に変化させることができ、ダイレクトティーチングにおいて教示可能な第１アームの姿勢の自由度を高くすることができる。
【０１１４】
なお、力検出部１０１〜力検出部１０７のそれぞれは、ユーザーにより押圧された部位の圧力の大きさを検出するセンサーであってもよい。この場合、力検出部１０１〜力検出部１０７の一部又は全部は、例えば、第１アームの各関節に備えられる構成に代えて、第１アームの関節と関節の間（例えば、関節Ｊ４と関節Ｊ５を繋ぐリンク）を繋ぐリンクの一部の表面に設けられる。そして、ロボット制御装置３０は、当該表面に対してユーザーから加えられた圧力に応じて、当該圧力を検出するセンサーと対応付けられた関節の角度を変化させる。
【０１１５】
また、ロボット２０は、図８に示したように第１エンドエフェクターＥ１と第１マニピュレーターＭ１との間に第１力検出部１１を備えるとともに、図１０に示したように第１アームの各関節に力検出部１０１〜力検出部１０７のそれぞれを備える構成であってもよい。図１１は、図８に示したように第１エンドエフェクターＥ１と第１マニピュレーターＭ１との間に第１力検出部１１を備えるとともに、図１０に示したように第１アームの各関節に力検出部１０１〜力検出部１０７のそれぞれを備える第１アームの一例を示す図である。
【０１１６】
この場合、ユーザーは、ダイレクトティーチングにおける作業の状況に応じて、第１エンドエフェクターＥ１に対してモーメントを加えることで第１アームの姿勢を変化させるか、第１アームの関節のいずれかに力を加えることで第１アームの姿勢を変化させるかを選択することができる。これにより、ロボット制御装置３０は、ユーザーの作業効率を向上させることができる。
【０１１７】
＜実施形態の変形例２＞
以下、本発明の実施形態の変形例２について、図面を参照して説明する。なお、以下では、第１アームを例に挙げて説明するが、実施形態の変形例２において説明する内容は、第２アームについても同様に適用可能である。
【０１１８】
上記で説明した実施形態では、第１スイッチＳ１が第１エンドエフェクターＥ１の側面に設けられていた。しかし、上記の実施形態において説明したロボット２０は、図１２〜図１４に示すように、第１エンドエフェクターＥ１の側面と異なる他の位置に設けられる構成であってもよい。
【０１１９】
図１２は、第１スイッチＳ１が肘ＥＬ１の側面に設けられたロボット２０の一例を示す図である。肘ＥＬ１の側面は、例えば、肘ＥＬ１が回転する軸に対する円周側の側面である。なお、図１２では、第２アームの姿勢によって第２スイッチＳ２が見えなくなっている。また、図１３は、第１スイッチＳ１が関節Ｊ２の側面に設けられたロボット２０の一例を示す図である。関節Ｊ２の側面は、例えば、関節Ｊ２が回転する軸と直交する面であって関節Ｊ１と関節Ｊ２とを結ぶリンク上の面である。なお、図１３では、第２アームの姿勢によって第２スイッチＳ２が見えなくなっている。また、図１４は、第１スイッチＳ１が支持台（本体）の側面に設けられたロボット２０の一例を示す図である。支持台の側面は、例えば、支持台の表面のうち、第１アームが設けられている側の面である。なお、図１４では、第２スイッチＳ２が支持台の第２アームが設けられている面に設けられているため、見えない。
【０１２０】
このように、第１スイッチＳ１は、第１エンドエフェクターＥ１の側面と異なる他の位置に設けることができる。これにより、ユーザーは、ロボット２０の所望の位置に第１スイッチＳ１を設けることができる。その結果、ロボット制御装置３０は、ユーザーによるダイレクトティーチングの作業効率を向上させることができる。
【０１２１】
＜実施形態の変形例３＞
以下、本発明の実施形態の変形例３について説明する。上記で説明した実施形態に係るロボット制御装置３０は、ロボット２０の動作をロボット制御装置３０に教示する教示装置（例えば、ティーチングペンダント）を備える構成であってもよい。この場合、教示装置には、ロボット制御装置３０における第１アームと第２アームのうちいずれか一方又は両方の制御モードを第１モードと第２モードのいずれかに切り替えるスイッチ（ハードウェアのボタン又はソフトウェアのボタンの両方を含む）が備えられてもよい。これにより、例えば、ユーザーは、第１スイッチＳ１よりも教示装置の近くに居る場合であり、第１スイッチＳ１の近くまで移動することなく教示装置によって第１アームの制御モードを第１モードと第２モードのうちのいずれかに切り替えることができる。その結果、ロボット制御装置３０は、ユーザーによるダイレクトティーチングの作業効率を向上させることができる。
【０１２２】
以上説明したように、本実施形態におけるロボット制御装置３０は、エンドエフェクター（この一例において、第１エンドエフェクターＥ１）を所望の位置及び姿勢にした状態で、力検出部（この一例において、第１力検出部１１）からの出力値（この一例において、第１力検出情報に含まれる力やモーメントの大きさ）に基づいてアーム（この一例において、第１アーム）の姿勢（この一例において、第１マニピュレーターＭ１が備える各アクチュエーターの回転角によって表される）を変更して教示を行うことができる。これにより、ロボット制御装置３０は、ダイレクトティーチングによって所望の動作を教示することができる。
【０１２３】
また、ロボット制御装置３０は、力検出部からの出力値に基づいてアームの肘（この一例において、関節Ｊ４）を動かし、アームの姿勢を変更する。これにより、ロボット制御装置３０は、アームの肘を動かすことを伴う所望の動作をダイレクトティーチングによって教示することができる。
【０１２４】
また、ロボット制御装置３０は、エンドエフェクターへの捻りにより発生するトルクに基づいてアームの姿勢を変更する。これにより、ロボット制御装置３０は、エンドエフェクターへの捻りにより発生するトルクに基づいて所望の動作をダイレクトティーチングによって教示することができる。
【０１２５】
また、ロボット制御装置３０は、力検出部からの出力値に基づいてトルクを検出する。これにより、ロボット制御装置３０は、力検出部からの出力値に基づいて検出されたトルクに基づいて所望の動作をダイレクトティーチングによって教示することができる。
【０１２６】
また、ロボット制御装置３０は、エンドエフェクターを所望の位置及び姿勢にした状態で、力検出部からの出力値に基づいてアームの姿勢を変更する第１モードと、力検出部からの出力値に基づいて当該エンドエフェクターの位置及び姿勢を変更する第２モードとを切り替えることが可能である。これにより、ロボット制御装置３０は、第１モードと第２モードを切り替えることにより、所望の動作をダイレクトティーチングによって教示することができる。
【０１２７】
また、ロボット制御装置３０では、ロボット２０とロボット制御装置３０のうちいずれか一方又は両方が、第１モードと第２モードとを切り替えるスイッチ（この一例において、第１スイッチＳ１）を備える。これにより、ロボット制御装置３０は、第１モードと第２モードとを切り替えるスイッチにより第１モードと第２モードを切り替えることにより、所望の動作をダイレクトティーチングによって教示することができる。
【０１２８】
また、ロボット制御装置３０では、７軸の自由度で動作するロボット２０のエンドエフェクターを所望の位置及び姿勢にした状態で、力検出部からの出力値に基づいてアームの姿勢を変更して教示を行うことができる。これにより、ロボット制御装置３０は、７軸の自由度で動作するロボット２０に対して、ダイレクトティーチングによって所望の動作を教示することができる。
【０１２９】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【０１３０】
また、以上に説明した装置（例えば、ロボット２０のロボット制御装置３０）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Operating  System）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ（Compact  Disk）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【０１３１】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【０１３２】
２０…ロボット、１１…第１力検出部、１２…第２力検出部、２１…第１撮像部、２２…第２撮像部、２３…第３撮像部、２４…第４撮像部、３０…ロボット制御装置、３１…ＣＰＵ、３２…記憶部、３３…入力受付部、３４…通信部、３５…表示部、３６…制御部、４０…表示制御部、４１…力検出情報取得部、４２…モード切替制御部、４３…変化量算出部、４４…逆運動学処理部、４５…順運動学処理部、４６…ロボット制御部、４７…教示制御部、３２１…手先運動モデル情報、３２２…肘運動モデル情報
【図１】
0006648469.tif 000003
【図２】
0006648469.tif 000004
【図３】
0006648469.tif 000005
【図４】
0006648469.tif 000006
【図５】
0006648469.tif 000007
【図６】
0006648469.tif 000008
【図７】
0006648469.tif 000009
【図８】
0006648469.tif 000010
【図９】
0006648469.tif 000011
【図１０】
0006648469.tif 000012
【図１１】
0006648469.tif 000013
【図１２】
0006648469.tif 000014
【図１３】
0006648469.tif 000015
【図１４】
0006648469.tif 000016