(57)【要約】【課題】第１物体と第２物体とを接面させる作業に要する時間が長くなることを抑制することができるロボット制御装置を提供すること。【解決手段】第１物体を第２物体に近づけ、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが所定の第１閾値を超えた場合、所定距離及び所定速度に基づいて前記第１物体の第１面を位置制御と力制御とに基づき前記第２物体の第２面に接面させる動作をロボットに行わせ始める、ロボット制御装置。【選択図】図３
2017159426.tif 000002
【特許請求の範囲】
【請求項１】
第１物体を第２物体に近づけ、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが所定の第１閾値を超えた場合、所定距離及び所定速度に基づいて前記第１物体の第１面を位置制御と力制御とに基づき前記第２物体の第２面に接面させる動作をロボットに行わせ始める、
ロボット制御装置。
【請求項２】
第１物体を第２物体に近づけ、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが所定の第１閾値を超えた場合、所定距離及び所定速度に基づいて前記第１物体の第１嵌合部を位置制御と力制御とに基づき前記第２物体の第２嵌合部に嵌合させる動作をロボットに行わせ始める、
ロボット制御装置。
【請求項３】
前記所定距離は、前記大きさが前記第１閾値を超えたタイミングにおける前記第１物体を前記所定速度に基づいて動かした場合に、前記大きさが所定の第２閾値未満となるまで前記第１物体が動く距離として決められる、
請求項１又は２に記載のロボット制御装置。
【請求項４】
前記大きさが前記第２閾値未満となった後において、前記位置制御を行わずに力制御を行う、
請求項３に記載のロボット制御装置。
【請求項５】
前記大きさが前記第１閾値を超える前において、前記位置制御を行わずに力制御を行う、
請求項１から４のうちいずれか一項に記載のロボット制御装置。
【請求項６】
請求項１から５のうちいずれか一項に記載のロボット制御装置に制御される、
ロボット。
【請求項７】
請求項１から５のうちいずれか一項に記載のロボット制御装置と、
前記ロボット制御装置に制御されるロボットと、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボット制御装置、ロボット、及びロボットシステムに関する。
【背景技術】
【０００２】
ロボットが備える力センサーにより検出される力及びモーメントに基づいて、ロボットに物体同士を組み付けさせる技術の研究や開発が行われている。
【０００３】
これに関し、ハンドと力センサーとを備えるロボットにおいて、２つのワークを嵌合させる際、力センサーにより検出される力及びモーメントが所定の閾値以下になるまで、嵌合方向に対して垂直な方向に関するハンドの位置と、嵌合方向に対するハンドの姿勢とを修正するロボットが知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−３０７６３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、このようなロボットでは、ハンドの位置及び姿勢を修正する際の移動量が、力センサーにより検出される力及びモーメントに応じて算出される。このため、当該ロボットでは、当該力及びモーメントが小さい場合、当該移動量も小さくなる。その結果、当該ロボットでは、２つのワークを嵌合させるために要する時間が長くなる場合があり、作業効率を低下させてしまう可能性があった。
【課題を解決するための手段】
【０００６】
上記課題の少なくとも一つを解決するために本発明の一態様は、第１物体を第２物体に近づけ、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが所定の第１閾値を超えた場合、所定距離及び所定速度に基づいて前記第１物体の第１面を位置制御と力制御とに基づき前記第２物体の第２面に接面させる動作をロボットに行わせ始める、ロボット制御装置である。
この構成により、ロボット制御装置は、第１物体を第２物体に近づけ、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが所定の第１閾値を超えた場合、所定距離及び所定速度に基づいて第１物体の第１面を位置制御と力制御とに基づき第２物体の第２面に接面させる動作をロボットに行わせ始める。これにより、ロボット制御装置は、第１物体と第２物体とを接面させる作業に要する時間が長くなることを抑制することができる。
【０００７】
また、本発明の他の態様は、第１物体を第２物体に近づけ、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが所定の第１閾値を超えた場合、所定距離及び所定速度に基づいて前記第１物体の第１嵌合部を位置制御と力制御とに基づき前記第２物体の第２嵌合部に嵌合させる動作をロボットに行わせ始める、ロボット制御装置である。
この構成により、ロボット制御装置は、第１物体を第２物体に近づけ、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが所定の第１閾値を超えた場合、所定距離及び所定速度に基づいて第１物体の第１嵌合部を位置制御と力制御とに基づき第２物体の第２嵌合部に嵌合させる動作をロボットに行わせ始める。これにより、ロボット制御装置は、第１物体と第２物体とを嵌合させる作業に要する時間が長くなることを抑制することができる。
【０００８】
また、本発明の他の態様は、ロボット制御装置において、前記所定距離は、前記大きさが前記第１閾値を超えたタイミングにおける前記第１物体を前記所定速度に基づいて動かした場合に、前記大きさが所定の第２閾値未満となるまで前記第１物体が動く距離として決められる、構成が用いられてもよい。
この構成により、ロボット制御装置は、ロボット２０により、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが第１閾値を超えたタイミングにおける第１物体を所定速度に基づいて動かした場合に、当該大きさが所定の第２閾値未満となるまで第１物体が動く距離である所定距離及び所定速度に基づいて第１物体を位置制御によって動かす。これにより、ロボット制御装置は、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが所定の第２閾値未満となるまで第１物体が動く距離である所定距離及び所定速度に基づいて、第１物体と第２物体とを接面させる作業に要する時間が長くなることを抑制することができる。
【０００９】
また、本発明の他の態様は、ロボット制御装置において、前記大きさが前記第２閾値未満となった後において、前記位置制御を行わずに力制御を行う、構成が用いられてもよい。
この構成により、ロボット制御装置は、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが第２閾値未満となった後において、位置制御を行わずに力制御を行う。これにより、ロボット制御装置は、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが第２閾値未満となった後において、位置制御によるロボットの動作によって物体を変形させてしまうことを抑制することができる。
【００１０】
また、本発明の他の態様は、ロボット制御装置において、前記大きさが前記第１閾値を超える前において、前記位置制御を行わずに力制御を行う、構成が用いられてもよい。
この構成により、ロボット制御装置は、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが第１閾値を超える前において、位置制御を行わずに力制御を行う。これにより、ロボット制御装置は、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが第２閾値未満となった前において、位置制御によるロボットの動作によって物体を変形させてしまうことを抑制することができる。
【００１１】
また、本発明の他の態様は、上記に記載のロボット制御装置に制御される、ロボットである。
この構成により、ロボットは、第１物体を第２物体に近づけ、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが所定の第１閾値を超えた場合、所定距離及び所定速度に基づいて第１物体の第１面を位置制御と力制御とに基づき第２物体の第２面に接面又は嵌合させる動作を行い始める。これにより、ロボットは、第１物体と第２物体とを接面又は嵌合させる作業に要する時間が長くなることを抑制することができる。
【００１２】
また、本発明の他の態様は、上記に記載のロボット制御装置と、前記ロボット制御装置に制御されるロボットと、を備えるロボットシステムである。
この構成により、ロボットシステムは、第１物体を第２物体に近づけ、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが所定の第１閾値を超えた場合、所定距離及び所定速度に基づいて第１物体の第１面を位置制御と力制御とに基づき第２物体の第２面に接面又は嵌合させる動作をロボットに行わせ始める。これにより、ロボットシステムは、第１物体と第２物体とを接面又は嵌合させる作業に要する時間が長くなることを抑制することができる。
【００１３】
以上により、ロボット制御装置、及びロボットシステムは、第１物体を第２物体に近づけ、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが所定の第１閾値を超えた場合、所定距離及び所定速度に基づいて第１物体の第１面を位置制御と力制御とに基づき第２物体の第２面に接面又は嵌合させる動作をロボットに行わせ始める。これにより、ロボット制御装置、及びロボットシステムは、第１物体と第２物体とを接面又は嵌合させる作業に要する時間が長くなることを抑制することができる。
また、ロボットは、第１物体を第２物体に近づけ、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが所定の第１閾値を超えた場合、所定距離及び所定速度に基づいて第１物体の第１面を位置制御と力制御とに基づき第２物体の第２面に接面又は嵌合させる動作を行い始める。これにより、ロボットは、第１物体と第２物体とを接面又は嵌合させる作業に要する時間が長くなることを抑制することができる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態に係るロボットシステム１の構成の一例を示す図である。
【図２】ロボット制御装置３０のハードウェア構成の一例を示す図である。
【図３】ロボット制御装置３０の機能構成の一例を示す図である。
【図４】ロボット制御装置３０がロボット２０に所定の作業を行わせる処理の流れの一例を示すフローチャートである。
【図５】待機教示点と制御点Ｔ１とが一致した状態の一例を示す図である。
【図６】ステップＳ１３０の処理によって第１物体Ｏ１が第２物体Ｏ２に近づいている状態の一例を示す図である。
【図７】ステップＳ１３０の処理によって第１物体Ｏ１が第２物体Ｏ２と接触したタイミングにおける第１物体Ｏ１と第２物体Ｏ２との状態の一例を示す図である。
【図８】所定距離と所定方向について説明するために図７に補助線等を追加した図である。
【図９】第１物体Ｏ１の第１面Ｍ１が第２物体Ｏ２の第２面Ｍ２に接面した状態の一例を示す図である。
【図１０】所定の作業において制御点Ｔ１に加わるモーメントのうちのＸ軸周りのモーメントの変化一例を示す図である。
【図１１】本実施形態の変形例においてロボット２０が嵌合させる第１物体Ｏ３と第２物体Ｏ４を例示する図である。
【発明を実施するための形態】
【００１５】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。
【００１６】
＜ロボットシステムの構成＞
まず、ロボットシステム１の構成について説明する。
図１は、本実施形態に係るロボットシステム１の構成の一例を示す図である。ロボットシステム１は、ロボット２０と、ロボット制御装置３０を備える。
【００１７】
ロボット２０は、アームＡと、アームＡを支持する支持台Ｂを備える単腕ロボットである。単腕ロボットは、この一例におけるアームＡのような１本のアーム（腕）を備えるロボットである。なお、ロボット２０は、単腕ロボットに代えて、複腕ロボットであってもよい。複腕ロボットは、２本以上のアーム（例えば、２本以上のアームＡ）を備えるロボットである。なお、複腕ロボットのうち、２本のアームを備えるロボットは、双腕ロボットとも称される。すなわち、ロボット２０は、２本のアームを備える双腕ロボットであってもよく、３本以上のアーム（例えば、３本以上のアームＡ）を備える複腕ロボットであってもよい。また、ロボット２０は、スカラロボットや、直角座標ロボット等の他のロボットであってもよい。直角座標ロボットは、例えば、ガントリロボットである。
【００１８】
アームＡは、エンドエフェクターＥと、マニピュレーターＭと、力検出部２１を備える。
エンドエフェクターＥは、この一例において、物体を把持可能な指部を備えるエンドエフェクターである。なお、エンドエフェクターＥは、当該指部を備えるエンドエフェクターに代えて、空気の吸引や磁力、治具等によって物体を持ち上げることが可能なエンドエフェクターや、他のエンドエフェクターであってもよい。
【００１９】
エンドエフェクターＥは、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、エンドエフェクターＥは、ロボット制御装置３０から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。また、エンドエフェクターＥは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００２０】
マニピュレーターＭは、７つの関節を備える。また、７つの関節はそれぞれ、図示しないアクチュエーターを備える。すなわち、マニピュレーターＭを備えるアームＡは、７軸垂直多関節型のアームである。アームＡは、支持台Ｂと、エンドエフェクターＥと、マニピュレーターＭと、マニピュレーターＭが備える７つの関節それぞれのアクチュエーターとによる連携した動作によって７軸の自由度の動作を行う。なお、アームＡは、６軸以下の自由度で動作する構成であってもよく、８軸以上の自由度で動作する構成であってもよい。
【００２１】
アームＡが７軸の自由度で動作する場合、アームＡは、６軸以下の自由度で動作する場合と比較して取り得る姿勢が増える。これによりアームＡは、例えば、動作が滑らかになり、更にアームＡの周辺に存在する物体との干渉を容易に回避することができる。また、アームＡが７軸の自由度で動作する場合、アームＡの制御は、アームＡが８軸以上の自由度で動作する場合と比較して計算量が少なく容易である。
【００２２】
マニピュレーターＭが備える７つの（関節に備えられた）アクチュエーターはそれぞれ、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、当該アクチュエーターは、ロボット制御装置３０から取得される制御信号に基づいて、マニピュレーターＭを動作させる。また、各アクチュエーターは、エンコーダーを備えている。各エンコーダーは、各エンコーダーが備えられたアクチュエーターの回転角を示す情報をロボット制御装置３０に出力する。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、マニピュレーターＭが備える７つのアクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００２３】
力検出部２１は、エンドエフェクターＥとマニピュレーターＭの間に備えられる。力検出部２１は、例えば、力センサーである。力検出部２１は、エンドエフェクターＥ、又はエンドエフェクターＥにより把持された物体に作用した力及びモーメントを検出する。具体的には、力検出部２１は、エンドエフェクターＥ又は当該物体に作用した力であって、力検出座標系のＸ軸、Ｙ軸、Ｚ軸それぞれの方向に作用した力の大きさを検出する。また、力検出部２１は、エンドエフェクターＥ又は当該物体に作用したモーメントであって、当該Ｘ軸、当該Ｙ軸、当該Ｚ軸それぞれの周りに作用したモーメントの大きさを検出する。力検出部２１は、検出したこれらの大きさを示す力検出値を含む力検出情報を通信によりロボット制御装置３０へ出力する。力検出座標系は、力検出部２１とともに動くように力検出部２１に対応付けられた三次元局所座標系である。
【００２４】
力検出情報は、ロボット制御装置３０によるアームＡの力検出情報に基づく制御である力制御に用いられる。力制御は、例えば、インピーダンス制御等のコンプライアントモーション制御のことである。なお、力検出部２１は、トルクセンサー等のエンドエフェクターＥ、又はエンドエフェクターＥにより把持された物体に加わる力及びモーメントを検出する他のセンサーであってもよい。
【００２５】
力検出部２１は、ケーブルによってロボット制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、力検出部２１とロボット制御装置３０とは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって接続される構成であってもよい。
【００２６】
ロボット制御装置３０は、この一例において、ロボットコントローラーである。ロボット制御装置３０は、マニピュレーターＭの各関節に備えられたエンコーダーから、各アクチュエーターの回転角を示す情報を取得する。ロボット制御装置３０は、取得した当該回転角を示す情報に基づいて制御信号を生成する。ロボット制御装置３０は、生成した制御信号をロボット２０に送信し、当該各アクチュエーターを動作させることによってロボット２０を動作させる。ここで、当該制御信号には、エンドエフェクターＥを制御する制御信号も含まれる。ロボット制御装置３０は、このようにしてロボット２０を動作させ、ロボット２０に所定の作業を行わせる。なお、ロボット制御装置３０は、ロボット２０の外部に設置される構成に代えて、ロボット２０に内蔵される構成であってもよい。
【００２７】
＜ロボットに行う所定の作業＞
以下、ロボット２０が行う所定の作業について説明する。
【００２８】
ロボット２０は、所定の作業として、エンドエフェクターＥにより把持された第１物体Ｏ１の第１面Ｍ１を、第２物体の第２面Ｍ２に接面させる作業を行う。
【００２９】
第１物体Ｏ１は、例えば、産業用の部品や部材、製品等である。なお、第１物体Ｏ１は、これに代えて、産業用と異なる日用品の部品や部材、製品等や、生体等の他の物体であってもよい。図１に示した例では、第１物体Ｏ１が直方体形状の物体として表されている。なお、第１物体Ｏ１の形状は、直方体形状に代えて、他の形状であってもよい。
【００３０】
第１物体Ｏ１の第１面Ｍ１は、この一例において、エンドエフェクターＥにより把持された第１物体Ｏ１の面のうちのエンドエフェクターＥの重心から最も離れた面である。なお、第１面Ｍ１は、これに代えて、エンドエフェクターＥにより把持された第１物体Ｏ１の面のうちの、エンドエフェクターＥの重心から最も離れた面を除く他の面であってもよい。
【００３１】
図１に示したように、第１物体Ｏ１は、エンドエフェクターＥに予め把持されている。なお、第１物体Ｏ１は、エンドエフェクターＥに予め把持されていない構成であってもよい。この場合、所定の作業には、図示しない給材領域に配置された第１物体Ｏ１を、ロボット２０がエンドエフェクターＥにより把持する作業が含まれる。
【００３２】
第２物体Ｏ２は、例えば、産業用の部品や部材、製品等である。なお、第２物体Ｏ２は、これに代えて、産業用と異なる日用品の部品や部材、製品等や、生体等の他の物体であってもよい。図１に示した例では、第２物体Ｏ２が平板状の物体として表されている。なお、第２物体Ｏ２の形状は、平板状に代えて、他の形状であってもよい。また、第２物体Ｏ２は、作業台ＴＢの上面に予め載置されている。作業台ＴＢは、この一例において、テーブル等の台である。なお、作業台ＴＢは、これに代えて、床面や棚等の第２物体Ｏ２を載置可能な面を有する物体であれば、他の物体であってもよい。
【００３３】
第２物体Ｏ２の第２面Ｍ２は、例えば、第２物体Ｏ２の上面である。当該上面は、この一例において、第２物体Ｏ２の面のうちの作業台ＴＢと接面している面である下面と反対側の面である。なお、第２面Ｍ２は、これに代えて、当該面ではない第２物体Ｏ２の他の面であってもよい。
【００３４】
＜ロボット制御装置が行う処理の概要＞
以下、ロボット制御装置３０が行う処理の概要について説明する。
【００３５】
ロボット制御装置３０は、エンドエフェクターＥに予め対応付けられた位置に、エンドエフェクターＥとともに動くＴＣＰ（Tool  Center  Point）である制御点Ｔ１を設定する。エンドエフェクターＥに予め対応付けられた位置は、例えば、エンドエフェクターＥにより予め把持された第１物体Ｏ１の重心の位置である。なお、エンドエフェクターＥに対応付けられた位置は、これに代えて、エンドエフェクターＥの重心の位置等の他の位置であってもよく、マニピュレーターＭに対応付けられた何らかの位置であってもよい。
【００３６】
制御点Ｔ１には、制御点Ｔ１の位置を示す情報である制御点位置情報と、制御点Ｔ１の姿勢を示す情報である制御点姿勢情報とが対応付けられている。なお、制御点Ｔ１には、これらに加えて、他の情報が対応付けられる構成であってもよい。制御点位置情報及び制御点姿勢情報をロボット制御装置３０が指定（決定）すると、制御点Ｔ１の位置及び姿勢が決まる。ロボット制御装置３０は、制御点位置情報及び制御点姿勢情報を指定する。ロボット制御装置３０は、アームＡを動作させ、指定した制御点位置情報が示す位置に制御点Ｔ１の位置を一致させるとともに、指定した制御姿勢情報が示す姿勢に制御点Ｔ１の姿勢を一致させる。すなわち、ロボット制御装置３０は、制御点位置情報及び制御点姿勢情報を指定することにより、ロボット２０を動作させる。
【００３７】
この一例において、制御点Ｔ１の位置は、制御点座標系ＴＣ１の原点のロボット座標系ＲＣにおける位置によって表される。また、制御点Ｔ１の姿勢は、制御点座標系ＴＣ１の各座標軸のロボット座標系ＲＣにおける方向によって表される。制御点座標系ＴＣ１は、制御点Ｔ１とともに動くように制御点Ｔ１に対応付けられた三次元局所座標系である。なお、この一例において、前述の第１物体Ｏ１の位置及び姿勢は、制御点Ｔ１の位置及び姿勢によって表される。また、この一例において、制御点座標系ＴＣ１の各座標軸の方向は、前述の力検出座標系の各座標軸の方向と一致している。なお、制御点座標系ＴＣ１の各座標軸の方向は、力検出座標系の各座標軸の方向と一致しない構成であってもよい。
【００３８】
ロボット制御装置３０は、ユーザーから予め入力された制御点設定情報に基づいて制御点Ｔ１を設定する。制御点設定情報は、例えば、エンドエフェクターＥの重心の位置及び姿勢と制御点Ｔ１の位置及び姿勢との相対的な位置及び姿勢を示す情報である。なお、制御点設定情報は、これに代えて、エンドエフェクターＥに対応付けられた何らかの位置及び姿勢と制御点Ｔ１の位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよく、マニピュレーターＭに対応付けられた何らかの位置及び姿勢と制御点Ｔ１の位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよく、ロボット２０の他の部位に対応付けられた何らかの位置及び姿勢と制御点Ｔ１の位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよい。
【００３９】
ロボット制御装置３０は、後述する位置制御によって制御点Ｔ１を移動させる場合、ユーザーにより予め記憶された教示点情報に基づいて制御点Ｔ１を移動させる。教示点情報は、教示点を示す情報である。教示点は、ロボット制御装置３０がアームＡを動作させる際に制御点Ｔ１を移動させる目標である。教示点には、教示点位置情報と、教示点姿勢情報と、教示点識別情報とが対応付けられている。教示点位置情報は、教示点の位置を示す情報である。また、教示点姿勢情報は、教示点の姿勢を示す情報である。教示点識別情報は、教示点を識別する情報である。
【００４０】
この一例において、教示点の位置は、教示点に対応付けられた三次元局所座標系である教示点座標系の原点のロボット座標系ＲＣにおける位置によって表される。また、教示点の姿勢は、教示点座標系の各座標軸のロボット座標系ＲＣにおける方向によって表される。
【００４１】
ロボット制御装置３０は、この一例において、位置制御と力制御とに基づいてロボット２０を動作させる。
【００４２】
位置制御は、ロボット制御装置３０に予め記憶された教示点に基づく制御、又はロボット制御装置３０に予め記憶された速さ、方向、距離のそれぞれに基づく制御である。
【００４３】
具体的には、ロボット制御装置３０は、ユーザーにより予め入力された動作プログラムに基づいて、教示点情報が示す１以上の教示点を順に指定する。ロボット制御装置３０は、指定した教示点である指定教示点に対応付けられた教示点位置情報を制御点位置情報として指定するとともに、指定教示点に対応付けられた教示点姿勢情報を制御点姿勢情報として指定する。すなわち、ロボット制御装置３０は、指定教示点に基づいて制御点位置情報及び制御点姿勢情報を指定する位置制御を行う。これにより、ロボット制御装置３０は、制御点Ｔ１を指定教示点に一致させることができる。なお、この一例において、ある教示点と制御点Ｔ１とが一致することは、当該教示点の位置及び姿勢と制御点Ｔ１の位置及び姿勢とが一致することを意味する。
【００４４】
また、ロボット制御装置３０は、ユーザーにより予め入力された動作プログラムに基づいて、予め記憶された方向及び距離に基づいて、制御点Ｔ１を移動させる位置及び姿勢を算出する。当該方向は、並進方向であってもよく、回転方向であってもよい。また、当該距離は、並進距離であってもよく、回転角度であってもよい。ロボット制御装置３０は、算出した位置を示す情報を制御点位置情報として指定するとともに、算出した姿勢を示す情報を制御点姿勢情報として指定する位置制御を行う。これにより、ロボット制御装置３０は、予め記憶された速さによって制御点Ｔ１を移動させ、指定した制御点位置情報及び制御点姿勢情報が示す位置及び姿勢に制御点Ｔ１の位置及び姿勢を一致させることができる。
【００４５】
力制御は、前述したように、ロボット制御装置３０が力検出部２１から取得した力検出情報に基づく制御である。具体的には、ロボット制御装置３０は、力検出部２１から力検出情報を取得する。そして、ロボット制御装置３０は、取得した力検出情報に含まれる力検出値のそれぞれが予め決められた条件を満たす状態を実現する位置及び姿勢まで制御点Ｔ１の位置及び姿勢を変化させる力制御を行う。これにより、ロボット制御装置３０は、エンドエフェクターＥ又はエンドエフェクターＥに把持された物体に作用した力及びモーメントに応じて制御点Ｔ１を移動させることができる。その結果、ロボット制御装置３０は、エンドエフェクターＥ又はエンドエフェクターＥにより把持された物体と他の物体との干渉により当該物体を変形させてしまうことを抑制することができる。
【００４６】
ロボット制御装置３０は、制御点Ｔ１を移動させる際、逆運動学に基づいて、制御点位置情報及び制御点姿勢情報が示す位置及び姿勢に制御点Ｔ１の位置及び姿勢が一致する場合の回転角であってマニピュレーターＭが備える各アクチュエーターの回転角を算出する。ロボット制御装置３０は、算出した当該回転角を示す制御信号を生成する。ロボット制御装置３０は、生成した制御信号をロボット２０に送信し、当該各アクチュエーターを動作させることによって制御点Ｔ１を移動させる。これにより、ロボット制御装置３０は、ロボット２０に所定の作業を行わせる。
【００４７】
ここで、ロボット制御装置３０が力制御のみによって所定の作業をロボット２０に行わせた場合、誤差によって前述の第１面Ｍ１が第２面Ｍ２に対して傾いていると、第１面Ｍ１が第２面Ｍ２に接面するために要する時間が長くなる場合がある。これは、力制御では、エンドエフェクターＥ又はエンドエフェクターＥに把持された物体に作用した力及びモーメントの大きさが小さいほど、制御点Ｔ１の移動量が小さくなるためである。
【００４８】
そこで、この一例におけるロボット制御装置３０は、ロボット制御装置３０がロボット２０に所定の作業を行わせる際、第１物体Ｏ１を第２物体Ｏ２に近づけ、力検出部２１により検出される力とモーメントのうち少なくとも一方の大きさが所定の第１閾値を超えた場合、所定距離及び所定速度に基づいて第１物体Ｏ１の第１面を位置制御と力制御とに基づき第２物体Ｏ２の第２面に接面させる動作をロボット２０に行わせ始める。これにより、ロボット制御装置３０は、第１物体Ｏ１と第２物体Ｏ２とを接面させる作業に要する時間が長くなることを抑制することができる。ここで、所定距離は、以下で説明するように、予め決められた角度であって制御点Ｔ１を回転させる角度のことであってもよく、予め決められた距離であって制御点Ｔ１を並進させる距離のことであってもよい。
以下では、ロボット２０に所定の作業を行わせる際にロボット制御装置３０が行う処理について詳しく説明する。
【００４９】
＜ロボット制御装置及び情報処理装置のハードウェア構成＞
以下、図２を参照し、ロボット制御装置３０のハードウェア構成について説明する。図２は、ロボット制御装置３０のハードウェア構成の一例を示す図である。図２は、ロボット制御装置３０のハードウェア構成の一例を示す図である。
【００５０】
ロボット制御装置３０は、例えば、ＣＰＵ（Central  Processing  Unit）３１と、記憶部３２と、入力受付部３３と、通信部３４と、表示部３５を備える。また、ロボット制御装置３０は、通信部３４を介してロボット２０と通信を行う。これらの構成要素は、バスＢｕｓを介して相互に通信可能に接続されている。
【００５１】
ＣＰＵ３１は、記憶部３２に格納された各種プログラムを実行する。
記憶部３２は、例えば、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read−Only  Memory）、ＲＯＭ（Read−Only  Memory）、ＲＡＭ（Random  Access  Memory）等を含む。なお、記憶部３２は、ロボット制御装置３０に内蔵されるものに代えて、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。記憶部３２は、ロボット制御装置３０が処理する各種情報や画像、動作プログラムを含む各種のプログラム、教示点情報を格納する。
【００５２】
入力受付部３３は、例えば、表示部３５と一体に構成されたタッチパネルである。なお、入力受付部３３は、キーボードやマウス、タッチパッド、その他の入力装置であってもよい。
通信部３４は、例えば、ＵＳＢ等のデジタル入出力ポートやイーサネット（登録商標）ポート等を含んで構成される。
表示部３５は、例えば、液晶ディスプレイパネル、あるいは、有機ＥＬ（ElectroLuminescence）ディスプレイパネルである。
【００５３】
＜ロボット制御装置及び情報処理装置の機能構成＞
以下、図３を参照し、ロボット制御装置３０の機能構成について説明する。図３は、ロボット制御装置３０の機能構成の一例を示す図である。
【００５４】
ロボット制御装置３０は、記憶部３２と、制御部３６を備える。
【００５５】
制御部３６は、ロボット制御装置３０の全体を制御する。制御部３６は、力検出情報取得部３６１と、情報読出部３６３と、ロボット制御部３６７を備える。制御部３６が備えるこれらの機能部は、例えば、ＣＰＵ３１が、記憶部３２に記憶された各種プログラムを実行することにより実現される。また、当該機能部のうちの一部又は全部は、ＬＳＩ（Large  Scale  Integration）やＡＳＩＣ（Application  Specific  Integrated  Circuit）等のハードウェア機能部であってもよい。
【００５６】
力検出情報取得部３６１は、力検出部２１から力検出情報を取得する。
情報読出部３６３は、記憶部３２から教示点情報を読み出す。
ロボット制御部３６７は、情報読出部３６３が読み出した教示点情報に基づいて、位置制御によってロボット２０を動作させる。また、ロボット制御部３６７は、力検出情報取得部３６１が取得した力検出情報に基づいて、力制御によってロボット２０を動作させる。これらにより、ロボット制御部３６７は、ロボット２０に所定の作業を行わせる。
【００５７】
＜ロボット制御装置がロボットに所定の作業を行わせる処理＞
以下、図４を参照し、ロボット制御装置３０がロボット２０に所定の作業を行わせる処理について説明する。図４は、ロボット制御装置３０がロボット２０に所定の作業を行わせる処理の流れの一例を示すフローチャートである。なお、図４に示したフローチャートでは、ユーザーにより予め教示点情報がロボット制御装置３０に記憶されている場合について説明する。
【００５８】
情報読出部３６３は、記憶部３２に予め記憶された教示点情報を読み出す（ステップＳ１１０）。ここで、ステップＳ１１０の処理について説明する。以下では、一例として、ステップＳ１１０において情報読出部３６３が読み出した教示点情報は、ユーザーにより予め記憶された教示点である待機教示点を示す場合について説明する。なお、当該教示点情報は、これに代えて、他の教示点を示す構成であってもよく、２以上の教示点を示す構成であってもよい。
【００５９】
待機教示点は、待機教示点と制御点Ｔ１が一致した場合に第１物体Ｏ１が第２物体Ｏ２と接触しない教示点であれば、如何なる教示点であってもよい。以下では、一例として、待機教示点の位置が、第２物体Ｏ２の重心の位置に予め設定された第２物体座標系Ｏ２ＣのＺ軸上の位置であり、第２物体Ｏ２の上面から所定高さ離れた位置である場合について説明する。所定高さは、待機教示点に制御点Ｔ１が一致した場合に、第１物体Ｏ１が第２物体Ｏ２に接触しない高さであれば、如何なる高さであってもよい。
【００６０】
第２物体座標系Ｏ２Ｃは、第２物体Ｏ２のロボット座標系ＲＣにおける位置及び姿勢を表す三次元局所座標系である。第２物体Ｏ２のロボット座標系ＲＣにおける位置は、第２物体座標系の原点のロボット座標系ＲＣにおける位置によって表される。また、第２物体Ｏ２のロボット座標系ＲＣにおける姿勢は、第２物体座標系の各座標軸のロボット座標系ＲＣにおける方向によって表される。
【００６１】
第２物体座標系Ｏ２ＣのＺ軸は、この一例において、第２物体Ｏ２の上面と直交する座標軸である。また、第２物体座標系Ｏ２ＣのＸ軸は、平板状である第２物体Ｏ２の４辺のうちの１辺と平行な座標軸である。また、第２物体座標系Ｏ２ＣのＹ軸は、当該Ｘ軸及び当該Ｚ軸と直交する座標軸である。なお、第２物体座標系Ｏ２Ｃの各座標軸の方向は、これらに限られず、それぞれ他の方向であってもよい。また、第２物体座標系Ｏ２Ｃの各座標軸の方向は、この一例において、ロボット座標系ＲＣの各座標軸の方向と一致する。なお、第２物体座標系Ｏ２Ｃの各座標軸の方向は、これに代えて、ロボット座標系ＲＣの各座標軸の方向と一致しない構成であってもよい。
【００６２】
また、以下では、一例として、待機教示点の姿勢が、第２物体Ｏ２の姿勢と同じ姿勢である場合について説明する。第２物体Ｏ２の姿勢は、第２物体座標系Ｏ２Ｃの各座標軸のロボット座標系ＲＣにおける方向によって表される。なお、待機教示点の姿勢は、これに代えて、他の姿勢であってもよい。
【００６３】
ステップＳ１１０において情報読出部３６３が記憶部３２から教示点情報を読み出した後、ロボット制御部３６７は、位置制御により制御点Ｔ１を移動させ、読み出した教示点情報が示す待機教示点に制御点Ｔ１を一致させる（ステップＳ１２０）。ここで、図５を参照し、ステップＳ１２０の処理について説明する。図５は、待機教示点と制御点Ｔ１とが一致した状態の一例を示す図である。また、図５は、当該状態における第１物体Ｏ１と第２物体Ｏ２とを、図５に示した第２物体座標系Ｏ２ＣのＸ軸の負方向から正方向に向かって見た場合の側面図である。
【００６４】
図５に示したように、ステップＳ１２０においてロボット制御部３６７は、制御点Ｔ１を待機教示点Ｐ１と一致させる。この場合、制御点Ｔ１の姿勢と、第２物体Ｏ２の姿勢とは一致するはずである。しかし、ロボット制御部３６７が位置制御により制御点Ｔ１を待機教示点と一致させた際、制御点Ｔ１の姿勢、すなわち第１物体Ｏ１の姿勢は、誤差によって第２物体Ｏ２の姿勢と一致しない場合がある。当該誤差には、例えば、マニピュレーターＭを構成する部材の剛性による誤差や、マニピュレーターＭ及びマニピュレーターＭの支持台Ｂへの組み付けによる誤差等が含まれる。図５に示した例では、第１物体Ｏ１の姿勢と第２物体Ｏ２の姿勢とは、このような誤差によって一致していない。
【００６５】
以下では、一例として、待機教示点と制御点Ｔ１とが一致した状態において第２物体座標系Ｏ２ＣのＸ軸の負方向から正方向に向かって第１物体Ｏ１及び第２物体Ｏ２を見た場合に、前述の誤差によって第１面Ｍ１が第２面Ｍ２に対して角度θだけ傾いている場合について説明する。すなわち、この一例において、当該場合、第１物体Ｏ１の姿勢は、制御点座標系ＴＣ１のＸ軸周りにおいて反時計回りに角度θだけ回転しており、第２物体Ｏ２の姿勢に対して傾いている。なお、第１面Ｍ１の姿勢は、制御点座標系ＴＣ１の他の座標軸周りにおいて反時計回り又は時計回りに回転していてもよく、制御点座標系ＴＣ１の２以上の座標軸周りにおいて反時計回り又は時計回りに回転していてもよい。また、前述の誤差によって第１面Ｍ１が第２面Ｍ２に対して角度θだけ傾く場合、第１面Ｍ１と第２面Ｍ２とが平行になるように、制御点Ｔ１は、待機教示点と一致させられる際、制御点座標系ＴＣ１のＸ軸周りにおいて常に反時計回り又は時計回りに角度θだけ予め回転させられる構成であってもよい。
【００６６】
ステップＳ１２０において制御点Ｔ１を待機教示点と一致させた後、ロボット制御部３６７は、力制御による制御点Ｔ１の移動を開始させ、第１物体Ｏ１と第２物体Ｏ２とを近づける（ステップＳ１３０）。ここで、図６を参照し、ステップＳ１３０の処理について説明する。図６は、ステップＳ１３０の処理によって第１物体Ｏ１が第２物体Ｏ２に近づいている状態の一例を示す図である。
【００６７】
図６に示したように、ステップＳ１３０の処理によって、ロボット制御部３６７は、制御点Ｔ１を第２物体Ｏ２に近づけることにより、第１物体Ｏ１と第２物体Ｏ２を近づける。この一例において、ロボット制御部３６７は、制御点Ｔ１を図６に示した矢印が示す方向Ａ１に向かって移動させることにより、第１物体Ｏ１と第２物体Ｏ２を近づける。方向Ａ１は、例えば、第２物体座標系Ｏ２ＣのＺ軸に沿った方向であり、第１物体Ｏ１と第２物体Ｏ２が近づく方向である。なお、方向Ａ１は、これに代えて、第１物体Ｏ１と第２物体Ｏ２が近づく方向であれば、他の方向であってもよい。
【００６８】
具体的には、ロボット制御部３６７は、力検出情報取得部３６１が取得した力検出情報に含まれる力検出値が第１所定条件を満たす状態を実現する位置及び姿勢まで力制御によって制御点Ｔ１の位置及び姿勢を変化させる。第１所定条件は、この一例において、以下に示した１）〜３）の３つの条件のそれぞれを満たすことである。なお、第１所定条件は、当該３つの条件の一部又は全部に代えて、他の条件を満たす構成であってもよく、当該３つの条件に加えて、他の条件を満たす構成であってもよい。
【００６９】
１）制御点Ｔ１に加わる力のうちの制御点座標系ＴＣ１のＺ軸方向の正方向に加わる力の大きさが所定値以上となること（すなわち、力検出部２１が検出した力のうちの力検出座標系のＺ軸方向の正方向に作用した力の大きさが所定値以上となること）
２）制御点Ｔ１に加わる力のうちの制御点座標系ＴＣ１のＸ軸方向及びＹ軸方向に加わる力の大きさが０［Ｎ］となること（すなわち、力検出部２１が検出した力のうちの力検出座標系のＸ軸方向及びＹ軸方向に作用した力の大きさが０［Ｎ］となること）
３）制御点Ｔ１に加わるモーメントのうちの制御点座標系ＴＣ１の各座標軸それぞれの周りのモーメントの大きさがすべて０［Ｎ・ｍ］となること（すなわち、力検出部２１が検出したモーメントのうちの力検出座標系の各座標軸それぞれの周りのモーメントの大きさがすべて０［Ｎ・ｍ］となること）
【００７０】
制御点座標系ＴＣ１のＺ軸方向の正方向は、この一例において、制御点Ｔ１の位置である第１物体Ｏ１の重心の位置からエンドエフェクターＥに向かう方向であって、マニピュレーターＭが備える関節のうちのエンドエフェクターＥを回動させる関節の回動軸に沿った方向である。図５に示した例では、前述したように第１物体Ｏ１の姿勢と第２物体Ｏ２の姿勢とが誤差によって一致していない。しかし、ロボット制御部３６７は、ステップＳ１２０において制御点Ｔ１の姿勢を待機教示点の姿勢と一致させたと判断している、すなわち第１物体Ｏ１の姿勢を第２物体Ｏ２の姿勢に一致させたと判断している。このため、ロボット制御部３６７は、力制御によって上記の第１所定条件を満たすまで制御点Ｔ１を移動させる場合、前述の第１所定条件を満たす状態を実現するため、制御点Ｔ１を前述の方向Ａ１に向かって移動させる。
【００７１】
ステップＳ１３０においてロボット制御部３６７が力制御による制御点Ｔ１の移動を開始した後、ロボット制御部３６７は、力検出情報取得部３６１から力検出情報を取得する。そして、ロボット制御部３６７は、取得した力検出情報に含まれる力検出値が示すモーメントの大きさが第２所定条件を満たすまでステップＳ１３０において開始した力制御による制御点Ｔ１の移動を継続する（ステップＳ１４０）。第２所定条件は、この一例において、以下に示す１Ａ）の条件である。なお、第２所定条件は、当該１Ａ）の条件を満たす構成に代えて、他の条件を満たす構成であってもよく、当該１Ａ）の条件を満たす構成に加えて、他の条件を満たす構成であってよい。
【００７２】
１Ａ）制御点Ｔ１に加わるモーメントのうちのＸ軸周りのモーメントが所定の第１閾値を超えること（すなわち、力検出部２１が検出したモーメントのうちの力検出座標系のＸ軸周りのモーメントの大きさが第１閾値を超えること）
【００７３】
第１閾値は、第１物体Ｏ１に第２面Ｍ２から加わるモーメントの最大値よりも少し小さな値である。当該少し小さな値は、例えば、当該最大値よりも１０％程度小さな値である。なお、当該少し小さな値は、これに代えて、当該最大値よりも他の割合だけ小さな値であってもよい。第１閾値は、制御点Ｔ１が移動する速さと、エンドエフェクターＥが第１物体Ｏ１を第２面Ｍ２に押し付ける力とによって算出することができる。また、第１閾値は、予め行われる実験により決めることもできる。当該実験は、ステップＳ１３０の処理による動作をロボット２０に繰り返し行わせ、第１物体Ｏ１に第２面Ｍ２から加わるモーメントを繰り返し検出する実験である。
【００７４】
なお、ステップＳ１４０においてロボット制御部３６７は、取得した力検出情報に含まれる力検出値が示す力が何らかの条件を満たすまでステップＳ１３０において開始した制御点Ｔ１の移動を継続する構成であってもよい。当該条件は、例えば、当該力のうちのＺ軸の正方向の力が所定力を超えること等である。
【００７５】
力検出情報取得部３６１が取得した力検出情報に含まれる力検出値が示すモーメントが第２所定条件を満たしたと判定した場合（ステップＳ１４０−ＹＥＳ）、ロボット制御部３６７は、力制御及び位置制御による制御点Ｔ１の移動を開始する（ステップＳ１５０）。具体的には、ロボット制御部３６７は、位置制御によって第１物体Ｏ１に第２面Ｍ２から加わるモーメントの大きさが、現在の当該モーメントの大きさよりも０［Ｎ・ｍ］に近い大きさとなる状態を実現する姿勢に、制御点Ｔ１の姿勢を位置制御によって変化させる。この際、ロボット制御部３６７は、ステップＳ１３０において開始した力制御による制御点Ｔ１の移動を継続させたまま、制御点Ｔ１の姿勢を変化させる。これにより、ロボット制御部３６７は、力制御よりも早く制御点Ｔ１の位置及び姿勢を変化させることができる位置制御によって、制御点Ｔ１の姿勢を変化させることができる。その結果、ロボット制御部３６７は、第１物体Ｏ１と第２物体Ｏ２とを接面させる作業に要する時間が長くなることを抑制することができる。
【００７６】
ここで、図７及び図８を参照し、ステップＳ１４０〜ステップＳ１５０の処理について説明する。図７は、ステップＳ１３０の処理によって第１物体Ｏ１が第２物体Ｏ２と接触したタイミングにおける第１物体Ｏ１と第２物体Ｏ２との状態の一例を示す図である。ステップＳ１３０の処理によって図６に示した方向Ａ１に向かって制御点Ｔ１を移動させた場合、第１物体Ｏ１は、図７に示したように、第２面Ｍ２と接触する。この一例において、前述したように第１面Ｍ１が第２面Ｍ２に対して角度θだけ傾いている。このため、第２面Ｍ２には、第１面Ｍ１が有する４辺のうちの制御点座標系ＴＣ１におけるＹ軸の負方向側の辺が接触する。この場合、制御点Ｔ１が図６に示した方向Ａ１に移動し続けると、第１物体Ｏ１には、制御点座標系ＴＣ１のＸ軸周りのモーメントが第２面Ｍ２から加えられる。ステップＳ１４０の処理は、当該モーメントの大きさが第１閾値を超えたか否かの判定である。
【００７７】
また、ステップＳ１５０の処理において、ロボット制御部３６７は、ステップＳ１３０において開始した力制御による制御点Ｔ１の移動を継続させたまま、位置制御によって制御点Ｔ１の姿勢を変化させる。具体的には、ロボット制御部３６７は、当該力制御による制御点Ｔ１の移動を継続させたまま、所定速度に基づいて制御点Ｔ１を所定距離移動させ始める。所定速度には、所定速さと、所定方向とが含まれる。すなわち、ロボット制御部３６７は、当該力制御による制御点Ｔ１の移動を継続させたまま、所定速さによって所定方向に制御点Ｔ１を所定距離移動させる位置制御を行う。前述したように、ステップＳ１５０の処理において、ロボット制御部３６７は、制御点Ｔ１の姿勢を変化させる。すなわち、この一例において、所定方向は、制御点Ｔ１の姿勢を変化させる回転方向である。また、所定距離は、制御点Ｔ１の姿勢を変化させる回転角度である。また、所定速さは、制御点Ｔ１の姿勢を回転させる角速度である。
【００７８】
ここで、図８を参照し、所定距離と所定方向について説明する。図８は、所定距離と所定方向について説明するために図７に補助線等を追加した図である。図８に示した補助線ＣＬ１は、制御点座標系ＴＣ１の原点を通る直線であって第２面Ｍ２に直交する線である。また、補助線ＣＬ２は、制御点座標系ＴＣ１の原点を通る直線であって第１面Ｍ１に直交する線である。前述したように、第１物体Ｏ１の姿勢は、誤差によって第２物体Ｏ２の姿勢に対して傾いているため、補助線ＣＬ１と補助線ＣＬ２とは一致していない。補助線ＣＬ１と補助線ＣＬ２との間の角度は、図５に示したように第１面Ｍ１と第２面Ｍ２との間の角度が角度θであるため、角度θである。
【００７９】
第１物体Ｏ１に第２面Ｍ２から加わるモーメントの大きさが、ステップＳ１５０の処理が開始されるタイミングにおける当該モーメントの大きさよりも０［Ｎ・ｍ］に近い大きさ（略０［Ｎ・ｍ］）となる状態を実現するためには、第１物体Ｏ１の姿勢を回転させ、補助線ＣＬ１と補助線ＣＬ２との間の角度を０°に近い角度にする必要がある。誤差によって第１面Ｍ１が第２面Ｍ２に対してどのように傾いていたとしても、誤差が最大の場合における第１面Ｍ１と第２面Ｍ２との間の角度だけ第１物体Ｏ１の姿勢を回転させることにより、ロボット制御部３６７は、確実に当該状態を実現することができる。また、当該状態において、第１物体Ｏ１に第２面Ｍ２から加わるモーメントの大きさは、前述したように略０［Ｎ・ｍ］となる。そこで、この一例では、第１物体Ｏ１に第２面Ｍ２から加わるモーメントの大きさが第１閾値を超えたタイミングから第２閾値未満となるまでに所定速さによって所定方向に制御点Ｔ１が回転する角度を、所定距離として決定する。第２閾値は、例えば、第１閾値の５％程度の大きさの値である。なお、第２閾値は、これに代えて、０［Ｎ・ｍ］等の他の値であってもよい。また、所定方向は、予め行われる実験によって決定される。当該実験は、ステップＳ１２０の処理を繰り返し、誤差による第１面Ｍ１の第２面Ｍ２に対する傾きを正す方向を特定する実験である。また、所定速さは、ユーザーにより予め入力される角速度であり、如何なる角速度であってもよい。
【００８０】
図８に示した補助線ＣＬ３は、角度θ１だけ第１面Ｍ１が第２面Ｍ２に対して傾いている場合における第１面Ｍ１に直交する直線であって、制御点座標系ＴＣ１の原点を通る直線である。角度θ１は、前述した誤差が最大の場合における第１面Ｍ１と第２面Ｍ２との間の角度である。以下では、一例として、前述の所定距離が、図８に示した角度θ１として決定された場合について説明する。この場合、所定方向は、図８に示した矢印が示す方向Ａ２である。
【００８１】
以上のようにして、所定距離と所定方向が決定される。なお、所定速さを大きくするほど、ロボット２０が第１面Ｍ１を第２面Ｍ２に接面させるために要する時間が短くなる。所定距離、所定方向、所定速さのそれぞれが決定された後、ユーザーは、ロボット制御部３６７に所定距離を示す情報と、所定方向を示す情報と、所定速さを示す情報とを予め入力する。ロボット制御部３６７は、ユーザーにより予め入力されたこれらの３つの情報に基づいて、ステップＳ１５０において開始する位置制御によって、所定速さにより所定方向に制御点Ｔ１を所定距離移動させることにより、制御点Ｔ１の姿勢を変化させる。
【００８２】
しかし、ロボット制御部３６７がステップＳ１５０の処理を実行するだけでは、第１物体Ｏ１により第２物体Ｏ２を変形させてしまう可能性がある。例えば、前述の誤差が最大ではない場合、ロボット制御部３６７は、第１物体Ｏ１の姿勢を回転させ過ぎてしまい、図８において当該第２面Ｍ２に接触している当該第１面Ｍ１が有する辺と反対側の辺を、位置制御によって当該第２面Ｍ２に接触させてしまう。これにより、ロボット制御部３６７は、第１物体Ｏ１により第２物体Ｏ２を変形させてしまう可能性がある。当該可能性を抑制するため、ロボット制御部３６７は、ステップＳ１５０の処理を実行した後、ステップＳ１６０〜ステップＳ１７０の処理を実行する。
【００８３】
ステップＳ１５０において位置制御による制御点Ｔ１の移動が開始された後、ロボット制御部３６７は、力検出情報取得部３６１から取得した力検出情報に含まれる力検出値が示すモーメントが第３所定条件を満たすまでステップＳ１５０において開始した制御点Ｔ１の移動を継続する（ステップＳ１６０）。第３所定条件は、この一例において、以下に示す１Ｂ）の条件である。なお、第３所定条件は、当該１Ｂ）の条件に代えて、他の条件を満たす構成であってもよく、当該１Ｂ）の条件に加えて、他の条件を満たす構成であってよい。
【００８４】
１Ｂ）制御点Ｔ１に加わるモーメントのうちのＸ軸周りのモーメントが所定の第２閾値未満となること（すなわち、力検出部２１が検出したモーメントのうちの力検出座標系のＸ軸周りのモーメントの大きさが第２閾値未満となること）
【００８５】
力検出情報取得部３６１が取得した力検出情報に含まれる力検出値が示すモーメントが第３所定条件を満たしたと判定した場合（ステップＳ１６０−ＹＥＳ）、ロボット制御部３６７は、ステップＳ１５０において開始した位置制御によって制御点Ｔ１を移動させることを停止し、ステップＳ１３０において開始した力制御のみによって制御点Ｔ１を移動させる（ステップＳ１７０）。ここで、ステップＳ１６０〜ステップＳ１７０の処理について説明する。
【００８６】
図８に示した第１物体Ｏ１と第２物体Ｏ２との状態において、方向Ａ２に向かって第１物体Ｏ１の姿勢を回転させた場合、制御点Ｔ１に加わるモーメントのうちのＸ軸周りのモーメントは、小さくなる。そして、当該モーメントの大きさが第２閾値未満となった場合、ロボット制御部３６７は、ステップＳ１５０において開始した位置制御によって制御点Ｔ１を移動させることを停止し、ステップＳ１３０において開始した力制御のみによって制御点Ｔ１を移動させる。すなわち、ステップＳ１７０の処理において、ロボット制御部３６７は、力検出情報取得部３６１が取得した力検出情報に含まれる力検出値が示す力が前述の第１所定条件を満たすまで力制御によって制御点Ｔ１を移動させる。
【００８７】
ステップＳ１７０において力制御のみによる制御点Ｔ１の移動が開始された後、ロボット制御部３６７は、第１面Ｍ１が第２面Ｍ２に接面したか否かを判定する（ステップＳ１８０）。ロボット制御部３６７は、ステップＳ１８０において、力検出情報取得部３６１が取得した力検出情報に含まれる力検出値が示す力及びモーメントが前述の第１所定条件を満たしていないと判定した場合、第１面Ｍ１が第２面Ｍ２に接面していないと判定する。一方、ロボット制御部３６７は、ステップＳ１８０において、力検出情報取得部３６１が取得した力検出情報に含まれる力検出値が示す力及びモーメントが第１所定条件を満たしたと判定した場合、図９に示したように第１面Ｍ１が第２面Ｍ２に接面したと判定する。図９は、第１物体Ｏ１の第１面Ｍ１が第２物体Ｏ２の第２面Ｍ２に接面した状態の一例を示す図である。
【００８８】
ステップＳ１８０において第１面Ｍ１が第２面Ｍ２に接面していないと判定した場合（ステップＳ１８０−ＮＯ）、ロボット制御部３６７は、ステップＳ１８０に遷移し、再び第１面Ｍ１が第２面Ｍ２に接面したか否かを判定する。一方、第１面Ｍ１が第２面Ｍ２に接面したと判定した場合（ステップＳ１８０−ＹＥＳ）、ロボット制御部３６７は、制御点Ｔ１を所定の終了位置へ移動させ、処理を終了する。
【００８９】
ここで、図１０を参照し、図４に示したフローチャートの処理によって所定の作業をロボット２０に行わせた場合と、当該フローチャートにおいてステップＳ１４０〜ステップＳ１７０の処理を省略した処理によって当該作業をロボット２０に行わせた場合との当該作業に要する時間を比較する。図１０は、所定の作業において制御点Ｔ１に加わるモーメントのうちのＸ軸周りのモーメントの変化一例を示す図である。
【００９０】
図１０に示したグラフは、ロボット２０が所定の作業を行った場合における制御点Ｔ１に加わるモーメントのうちのＸ軸周りのモーメントの時間的な変化を示すグラフである。当該グラフの縦軸は、当該モーメントの大きさを示す。当該グラフの横軸は、経過時間を示す。また、当該グラフの原点は、ロボット制御部３６７がステップＳ１３０の処理を開始したタイミングと一致している。
【００９１】
また、図１０に示したグラフの縦軸におけるモーメントの大きさＴＨ１は、前述の第１閾値を示す。また、当該モーメントの大きさＴＨ２は、前述の第２閾値を示す。当該グラフにおける曲線ＬＮ１は、ロボット制御部３６７が図４に示したフローチャートの処理によってロボット２０に所定の作業を行わせた場合における変化であって、制御点Ｔ１に加わるモーメントのうちのＸ軸周りのモーメントの時間的な変化を表す曲線である。また、当該グラフにおける曲線ＬＮ２は、ロボット制御部３６７が当該フローチャートにおいてステップＳ１４０〜ステップＳ１７０の処理を省略した処理によってロボット２０に所定の作業を行わせた場合における変化であって、制御点Ｔ１に加わるモーメントのうちのＸ軸周りのモーメントの時間的な変化を表す曲線である。また、当該グラフの横軸における時刻ｔ１は、当該モーメントが第１閾値を超えたタイミングを示す。また、当該グラフの横軸における時刻ｔ２は、当該モーメントが第２閾値未満となったタイミングを示す。また、当該グラフの横軸における時刻ｔ３は、前述の第１所定条件が満たされたタイミングを示す。
【００９２】
また、図１０に示したグラフにおける区間Ｗ１は、ロボット制御部３６７が制御点Ｔ１を力制御のみによって移動させている区間を示す。また、図１０に示したグラフにおける区間Ｗ２は、ロボット制御部３６７が制御点Ｔ１を力制御及び位置制御によって移動させている区間を示す。また、図１０に示したグラフにおける区間Ｗ３は、ロボット制御部３６７が制御点Ｔ１を力制御のみによって移動させている区間を示す。
【００９３】
図１０に示したグラフから、ロボット制御部３６７が図４に示したフローチャートの処理によってロボット２０に所定の作業を行わせた場合、ロボット制御部３６７が当該フローチャートにおいてステップＳ１４０〜ステップＳ１７０の処理を省略した処理によってロボット２０に所定の作業を行わせた場合よりも早く第１物体Ｏ１の第１面Ｍ１と第２物体Ｏ２の第２面Ｍ２とを接面させることができることが分かる。
【００９４】
以上のように、ロボット制御装置３０は、第１物体Ｏ１を第２物体Ｏ２に近づけ、力検出部２１により検出されるモーメントの大きさが第１閾値を超えた場合、所定距離及び所定速度に基づいて第１物体Ｏ１の第１面Ｍ１を位置制御によって第２物体Ｏ２の第２面Ｍ２に接面させる動作をロボット２０に行わせ始める。これにより、ロボット制御装置３０は、第１物体Ｏ１と第２物体Ｏ２とを接面させる作業に要する時間が長くなることを抑制することができる。
【００９５】
＜実施形態の変形例＞
以下、図１１を参照し、実施形態の変形例について説明する。上記において説明した所定の作業は、第１物体Ｏ３の第１嵌合部Ｍ３を第２物体Ｏ４の第２嵌合部Ｍ４に嵌合させる作業等の他の作業であってもよい。そこで、以下では、本実施形態の変形例に係るロボット制御装置３０が、所定の作業として、ロボット２０に第１物体Ｏ３の第１嵌合部Ｍ３を、第２物体Ｏ４の第２嵌合部Ｍ４に嵌合させる作業を行わせる場合について説明する。
【００９６】
図１１は、本実施形態の変形例においてロボット２０が嵌合させる第１物体Ｏ３と第２物体Ｏ４を例示する図である。
【００９７】
第１物体Ｏ３は、例えば、産業用の部品や部材、製品等である。なお、第１物体Ｏ３は、これに代えて、産業用と異なる日用品の部品や部材、製品等や、生体等の他の物体であってもよい。図１１に示した例では、第１物体Ｏ３が直方体形状の物体として表されている。なお、第１物体Ｏ３の形状は、直方体形状に代えて、他の形状であってもよい。第１物体Ｏ３は、この一例において、エンドエフェクターＥにより予め把持されている。
【００９８】
第１物体Ｏ３の重心の位置には、第１物体Ｏ１と同様に、制御点Ｔ１が設定されている。図１１に示したＸ軸ＴＣ１Ｘは、制御点座標系ＴＣ１のＸ軸を示す。また、図１１に示したＹ軸ＴＣ１Ｙは、制御点座標系ＴＣ１のＹ軸を示す。また、図１１に示したＺ軸ＴＣ１Ｚは、制御点座標系ＴＣ１のＺ軸を示す。上記において説明した実施形態と同様に、制御点座標系ＴＣ１の各座標軸のロボット座標系ＲＣにおける方向は、第１物体Ｏ３の姿勢を表す。
【００９９】
第１物体Ｏ３は、第２物体Ｏ４の第２嵌合部Ｍ４と嵌合する第１嵌合部Ｍ３を有する。この一例において、第１嵌合部Ｍ３は、第１物体Ｏ３が有する面のうちの図１１に示したＺ軸ＴＣ１Ｚの負の方向側の面である底面を含む部位のことである。なお、第１嵌合部Ｍ３は、これに代えて、第１物体Ｏ３の全体であってもよく、第１物体Ｏ３の他の部位であってもよい。
【０１００】
第２物体Ｏ４は、例えば、産業用の部品や部材、製品等である。なお、第２物体Ｏ４は、これに代えて、産業用と異なる日用品の部品や部材、製品等や、生体等の他の物体であってもよい。図１１に示した例では、第２物体Ｏ４が直方体形状の物体として表されている。なお、第１物体Ｏ３の形状は、直方体形状に代えて、他の形状であってもよい。また、第２物体Ｏ４の上面には、第２嵌合部Ｍ４が設けられている。第２嵌合部Ｍ４は、第２物体Ｏ４に設けられた凹部であって、第１嵌合部Ｍ３と嵌合する凹部である。
【０１０１】
ロボット制御装置３０は、前述したように、第１物体Ｏ３の第１嵌合部Ｍ３を第２物体Ｏ４の第２嵌合部Ｍ４に嵌合させる作業を所定の作業として行う。ロボット制御装置３０が前述の待機教示点に制御点Ｔ１を一致させた場合、前述したように、誤差によって第１物体Ｏ３の姿勢が第２物体Ｏ４の姿勢に対して傾く場合がある。図１１に示した例では、第１物体Ｏ３の姿勢は、第２物体Ｏ４の姿勢と一致する姿勢から、Ｘ軸ＴＣ１Ｘ周り及びＹ軸ＴＣ１Ｙ周りに回転されており、第２物体Ｏ４の姿勢に対して傾いている。
【０１０２】
ここで、ロボット制御装置３０は、上記において説明した実施形態では、制御点Ｔ１が待機教示点と一致している場合において、誤差によって第１物体Ｏ１の姿勢が第２物体Ｏ２の姿勢に対して傾いていた。具体的には、第１物体Ｏ１の姿勢は、第２物体Ｏ２の姿勢と一致する姿勢から、制御点座標系ＴＣ１のＸ軸周りに回転されており、第２物体Ｏ２の姿勢に対して傾いていた。ロボット制御装置３０は、当該実施形態において、図４に示したフローチャートの処理を実行することにより、制御点Ｔ１の姿勢を当該Ｘ軸周りに回転させることによって、第１面Ｍ１と第２面Ｍ２とを接面させた。
【０１０３】
本実施形態の変形例では、第１物体Ｏ３の姿勢は、第２物体Ｏ４の姿勢と一致する姿勢から、Ｘ軸ＴＣ１Ｘ周り及びＹ軸ＴＣ１Ｙ周りに回転されており、第２物体Ｏ４の姿勢に対して傾いている。このため、ロボット制御装置３０は、図４に示したフローチャートの処理によって、制御点Ｔ１の姿勢をＸ軸ＴＣ１Ｘ周りに回転させる。また、ロボット制御装置３０は、図４に示したフローチャートの処理によって、制御点Ｔ１の姿勢をＹ軸ＴＣ１Ｙ周りに回転させる。これにより、ロボット制御装置３０は、第１物体Ｏ３の底面を、第２嵌合部Ｍ４の底面Ｍ５と平行にし、力制御によって第１嵌合部Ｍ３と第２嵌合部Ｍ４とを嵌合させる。
【０１０４】
このように、本実施形態の変形例に係るロボット制御装置３０は、所定の作業として、ロボット２０に第１物体Ｏ３の第１嵌合部Ｍ３を、第２物体Ｏ４の第２嵌合部Ｍ４に嵌合させる作業を行わせる。これにより、ロボット制御装置３０は、第１物体Ｏ３と第２物体Ｏ４とを嵌合させる作業に要する時間が長くなることを抑制することができる。
【０１０５】
以上のように、ロボット制御装置３０は、第１物体（この一例において、第１物体Ｏ１）を第２物体（この一例において、第２物体Ｏ２）に近づけ、力検出器（この一例において、力検出部２１）により検出される力とモーメントのうち少なくとも一方の大きさが所定の第１閾値を超えた場合、所定距離及び所定速度に基づいて第１物体の第１面を位置制御と力制御とに基づき第２物体の第２面に接面させる動作をロボット２０に行わせ始める。これにより、ロボット制御装置３０は、第１物体と第２物体とを接面させる作業に要する時間が長くなることを抑制することができる。
【０１０６】
また、ロボット制御装置３０は、第１物体（この一例において、第１物体Ｏ３）を第２物体（この一例において、第２物体Ｏ４）に近づけ、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが所定の第１閾値を超えた場合、所定距離及び所定速度に基づいて第１物体の第１嵌合部（この一例において、第１嵌合部Ｍ３）を位置制御と力制御とに基づき第２物体の第２嵌合部（この一例において、第２嵌合部Ｍ４）に嵌合させる動作をロボットに行わせ始める。これにより、ロボット制御装置３０は、第１物体と第２物体とを嵌合させる作業に要する時間が長くなることを抑制することができる。
【０１０７】
また、ロボット制御装置３０は、ロボット２０により、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが第１閾値を超えたタイミングにおける第１物体を所定速度に基づいて動かした場合に、当該大きさが所定の第２閾値未満となるまで第１物体が動く距離である所定距離及び所定速度に基づいて第１物体を位置制御によって動かす。これにより、ロボット制御装置３０は、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが所定の第２閾値未満となるまで第１物体が動く距離である所定距離及び所定速度に基づいて、第１物体と第２物体とを接面させる作業に要する時間が長くなることを抑制することができる。
【０１０８】
また、ロボット制御装置３０は、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが第２閾値未満となった後において、位置制御を行わずに力制御を行う。これにより、ロボット制御装置３０は、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが第２閾値未満となった後において、位置制御によるロボット２０の動作によって物体を変形させてしまうことを抑制することができる。
【０１０９】
また、ロボット制御装置３０は、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが第１閾値を超える前において、位置制御を行わずに力制御を行う。これにより、ロボット制御装置３０は、力検出器により検出される力とモーメントのうち少なくとも一方の大きさが第２閾値未満となった前において、位置制御によるロボット２０の動作によって物体を変形させてしまうことを抑制することができる。
【０１１０】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【０１１１】
また、以上に説明した装置（例えば、ロボット制御装置３０）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Operating  System）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ（Compact  Disk）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【０１１２】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【０１１３】
１…ロボットシステム、２０…ロボット、２１…力検出部、３０…ロボット制御装置、３１…ＣＰＵ、３２…記憶部、３３…入力受付部、３４…通信部、３５…表示部、３６…制御部、３６１…力検出情報取得部、３６３…情報読出部、３６７…ロボット制御部
【図１】
2017159426.tif 000003
【図２】
2017159426.tif 000004
【図３】
2017159426.tif 000005
【図４】
2017159426.tif 000006
【図５】
2017159426.tif 000007
【図６】
2017159426.tif 000008
【図７】
2017159426.tif 000009
【図８】
2017159426.tif 000010
【図９】
2017159426.tif 000011
【図１０】
2017159426.tif 000012
【図１１】
2017159426.tif 000013