(57)【要約】【課題】検出位置と記憶位置との間に位置ずれが生じた場合であっても、作業の精度が低下してしまうことを抑制することができるロボットを提供すること。【解決手段】アームを備え、検出部により検出された対象物の位置である検出位置と、記憶部により記憶された前記対象物の位置である記憶位置とに基づいて、前記アームを移動させる、ロボット。【選択図】図４
2017124470.tif 000002
【特許請求の範囲】
【請求項１】
アームを備え、
検出部により検出された対象物の位置である検出位置と、記憶部により記憶された前記対象物の位置である記憶位置とに基づいて、前記アームを移動させる、
ロボット。
【請求項２】
前記検出位置及び前記記憶位置は、前記対象物の一部、又は前記対象物に設けられたマーカーの少なくともいずれか一方に基づいた位置である、
請求項１に記載のロボット。
【請求項３】
前記検出部は、撮像部であり、
前記検出位置は、前記撮像部により撮像された撮像画像に基づいて検出される、
請求項１又は２に記載のロボット。
【請求項４】
前記対象物を前記アームにより移動させる、
請求項１から３のうちいずれか一項に記載のロボット。
【請求項５】
力を検出する力検出部を備え、
前記力検出部の出力に基づいたダイレクトティーチングによる教示によって、位置を示す情報である位置情報を含む教示点情報が前記記憶部に記憶される、
請求項１から４のうちいずれか一項に記載のロボット。
【請求項６】
前記教示点情報は、前記教示において所定の時間が経過する毎に前記記憶部に記憶される、
請求項５に記載のロボット。
【請求項７】
前記位置情報が示す位置に、前記アームに対応付けられた位置である制御点を一致させる位置制御によって前記アームを移動させる、
請求項５又は６に記載のロボット。
【請求項８】
前記位置制御と前記力検出部の出力に基づく制御とによって前記アームを移動させる、
請求項７に記載のロボット。
【請求項９】
前記力検出部の出力に基づいて前記教示の開始又は前記教示の終了のうち少なくとも一方を行う、
請求項５から８のうちいずれか一項に記載のロボット。
【請求項１０】
前記検出位置と前記記憶位置との位置ずれと前記教示点情報とに基づいて、前記アームを移動させる、
請求項５から９のうちいずれか一項に記載のロボット。
【請求項１１】
前記位置ずれに基づいて前記教示点情報を補正して、前記アームを移動させる、
請求項１０に記載のロボット。
【請求項１２】
座標変換により前記教示点情報を補正する、
請求項１１に記載のロボット。
【請求項１３】
前記検出部により検出された前記対象物の姿勢である検出姿勢及び前記検出位置と、前記記憶部により記憶された前記対象物の姿勢である記憶姿勢及び前記記憶位置とに基づいて、前記アームを移動させる、
請求項１から１２のうちいずれか一項に記載のロボット。
【請求項１４】
請求項１から１３のうちいずれか一項に記載のロボットと、
前記ロボットを制御するロボット制御装置と、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボット、及びロボットシステムに関する。
【背景技術】
【０００２】
ロボットを動作させるロボット制御装置にロボットの動作を教示する方法の研究や開発が行われている。
【０００３】
これに関し、ロボットを人手で動作させてその位置・姿勢をロボット制御装置に記憶させる直接教示装置が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０８−２１６０７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、この直接教示装置によってロボットの動作を教示されたロボット制御装置は、ロボットのアームの位置及び姿勢を、教示された位置及び姿勢と一致させるため、教示が行われた際の対象物の位置と、ロボットを動作させる際の対象物の位置との間に位置ずれが生じた場合、ロボットによる作業の精度が低下してしまう場合があった。
【課題を解決するための手段】
【０００６】
上記課題の少なくとも一つを解決するために本発明の一態様は、アームを備え、検出部により検出された対象物の位置である検出位置と、記憶部により記憶された前記対象物の位置である記憶位置とに基づいて、前記アームを移動させる、ロボットである。
この構成により、ロボットは、検出部により検出された対象物の位置である検出位置と、記憶部により記憶された対象物の位置である記憶位置とに基づいて、アームを移動させる。これにより、ロボットは、検出位置と記憶位置との位置ずれが生じた場合であっても、作業の精度が低下してしまうことを抑制することができる。
【０００７】
また、本発明の他の態様は、ロボットにおいて、前記検出位置及び前記記憶位置は、前記対象物の一部、又は前記対象物に設けられたマーカーの少なくともいずれか一方に基づいた位置である、構成が用いられてもよい。
この構成により、ロボットは、対象物の一部、又は対象物に設けられたマーカーの少なくともいずれか一方に基づいた位置である検出位置及び記憶位置に基づいて、アームを移動させる。これにより、ロボットは、対象物の一部、又は対象物に設けられたマーカーの少なくともいずれか一方に基づいた位置である検出位置及び記憶位置との間に位置ずれが生じた場合であっても、作業の精度が低下してしまうことを抑制することができる。
【０００８】
また、本発明の他の態様は、ロボットにおいて、前記検出部は、撮像部であり、前記検出位置は、前記撮像部により撮像された撮像画像に基づいて検出される、構成が用いられてもよい。
この構成により、ロボットは、撮像部により撮像された撮像画像に基づいて検出される検出位置と、記憶位置とに基づいて、アームを移動させる。これにより、ロボットは、撮像部により撮像された撮像画像に基づいて検出される検出位置と記憶位置との位置ずれが生じた場合であっても、作業の精度が低下してしまうことを抑制することができる。
【０００９】
また、本発明の他の態様は、ロボットにおいて、前記対象物を前記アームにより移動させる、構成が用いられてもよい。
この構成により、ロボットは、対象物をアームにより移動させる。これにより、ロボットは、検出位置と記憶位置との位置ずれが生じた場合であっても、対象物をアームにより移動させる作業の精度が低下してしまうことを抑制することができる。
【００１０】
また、本発明の他の態様は、ロボットにおいて、力を検出する力検出部を備え、前記力検出部の出力に基づいたダイレクトティーチングによる教示によって、位置を示す情報である位置情報を含む教示点情報が前記記憶部に記憶される、構成が用いられてもよい。
この構成により、ロボットは、力検出部の出力に基づいたダイレクトティーチングによる教示によって、位置を示す情報である位置情報を含む教示点情報が記憶部に記憶される。これにより、ロボットは、ダイレクトティーチングによる教示によって記憶された教示点情報に基づいてアームを移動させることができる。
【００１１】
また、本発明の他の態様は、ロボットにおいて、前記教示点情報は、前記教示において所定の時間が経過する毎に前記記憶部に記憶される、構成が用いられてもよい。
この構成により、ロボットは、教示点情報を、ダイレクトティーチングによる教示において所定の時間が経過する毎に記憶部に記憶される。これにより、ロボットは、ダイレクトティーチングによる教示において所定の時間が経過する毎に記憶部に記憶された教示点情報に基づいてアームを移動させることができる。
【００１２】
また、本発明の他の態様は、ロボットにおいて、前記位置情報が示す位置に、前記アームに対応付けられた位置である制御点を一致させる位置制御によって前記アームを移動させる、構成が用いられてもよい。
この構成により、ロボットは、位置情報が示す位置に、アームに対応付けられた位置である制御点を一致させる位置制御によってアームを移動させる。これにより、ロボットは、位置制御により行われる作業の精度が低下してしまうことを抑制することができる。
【００１３】
また、本発明の他の態様は、ロボットにおいて、前記位置制御と前記力検出部の出力に基づく制御とによって前記アームを移動させる、構成が用いられてもよい。
この構成により、ロボットは、位置制御と力検出部の出力に基づく制御とによってアームを移動させる。これにより、ロボットは、位置制御と力検出部の出力に基づく制御とにより行われる作業の精度が低下してしまうことを抑制することができる。
【００１４】
また、本発明の他の態様は、ロボットにおいて、前記力検出部の出力に基づいて前記教示の開始又は前記教示の終了のうち少なくとも一方を行う、構成が用いられてもよい。
この構成により、ロボットは、力検出部の出力に基づいてダイレクトティーチングによる教示の開始又はダイレクトティーチングによる教示の終了のうち少なくとも一方を行う。これにより、ロボットは、作業の効率を向上させることができる。
【００１５】
また、本発明の他の態様は、ロボットにおいて、前記検出位置と前記記憶位置との位置ずれと前記教示点情報とに基づいて、前記アームを移動させる、構成が用いられてもよい。
この構成により、ロボットは、検出位置と記憶位置との位置ずれと教示点情報とに基づいて、アームを移動させる。これにより、ロボットは、検出位置と記憶位置との位置ずれと教示点情報とに基づいて、作業の精度が低下してしまうことを抑制することができる。
【００１６】
また、本発明の他の態様は、ロボットにおいて、前記位置ずれに基づいて前記教示点情報を補正して、前記アームを移動させる、構成が用いられてもよい。
この構成により、ロボットは、位置ずれに基づいて教示点情報を補正して、アームを移動させる。これにより、ロボットは、補正した教示点情報に基づいて、作業の精度が低下してしまうことを抑制することができる。
【００１７】
また、本発明の他の態様は、ロボットにおいて、座標変換により前記教示点情報を補正する、構成が用いられてもよい。
この構成により、ロボットは、座標変換により教示点情報を補正する。これにより、ロボットは、座標変換により補正した教示点情報に基づいて、作業の精度が低下してしまうことを抑制することができる。
【００１８】
また、本発明の他の態様は、ロボットにおいて、前記検出部により検出された前記対象物の姿勢である検出姿勢及び前記検出位置と、前記記憶部により記憶された前記対象物の姿勢である記憶姿勢及び前記記憶位置とに基づいて、前記アームを移動させる、構成が用いられてもよい。
この構成により、ロボットは、検出部により検出された対象物の姿勢である検出姿勢及び検出位置と、記憶部により記憶された対象物の姿勢である記憶姿勢及び記憶位置とに基づいて、アームを移動させる。これにより、ロボットは、検出位置と記憶位置との位置ずれ及び検出姿勢と記憶姿勢との姿勢ずれが生じた場合であっても、作業の精度が低下してしまうことを抑制することができる。
【００１９】
また、本発明の他の態様は、上記に記載のロボットと、前記ロボットを制御するロボット制御装置と、を備えるロボットシステムである。
この構成により、ロボットシステムは、検出部により検出された対象物の位置である検出位置と、記憶部により記憶された対象物の位置である記憶位置とに基づいて、アームを移動させる。これにより、ロボットシステムは、検出位置と記憶位置との位置ずれが生じた場合であっても、作業の精度が低下してしまうことを抑制することができる。
【００２０】
以上により、ロボット、及びロボットシステムは、検出部により検出された対象物の位置である検出位置と、記憶部により記憶された対象物の位置である記憶位置とに基づいて、アームを移動させる。これにより、ロボット、及びロボットシステムは、検出位置と記憶位置との位置ずれが生じた場合であっても、作業の精度が低下してしまうことを抑制することができる。
【図面の簡単な説明】
【００２１】
【図１】第１実施形態に係るロボットシステム１の構成の一例を示す図である。
【図２】ロボット２０がツールＴ１を用いて対象物Ｏ１の外周部を研磨している様子の一例を示す図である。
【図３】ロボット制御装置３０のハードウェア構成の一例を示す図である。
【図４】ロボット制御装置３０の機能構成の一例を示す図である。
【図５】第１実施形態におけるロボット制御装置３０がロボット２０に第１作業を行わせる処理の流れの一例を示すフローチャートである。
【図６】第１実施形態におけるロボット制御装置３０が基準位置姿勢情報と、教示点情報とを記憶する処理の流れの一例を示すフローチャートである。
【図７】ステップＳ１４０の処理が開始された後にダイレクトティーチングによる教示によって対象物Ｏ１と作業部位Ｔ１Ｅとが接触させられている様子の一例を示す図である。
【図８】第２実施形態に係るロボットシステム１の構成の一例を示す図である。
【図９】ロボット２０がツールＴ２を用いて対象物Ｏ２の内周面を研磨している様子の一例を示す図である。
【図１０】第２実施形態におけるロボット制御装置３０がロボット２０に第２作業を行わせる処理の流れの一例を示すフローチャートである。
【図１１】第２実施形態におけるロボット制御装置３０が基準位置姿勢情報と、教示点情報とを記憶する処理の流れの一例を示すフローチャートである。
【図１２】ステップＳ３４０の処理が開始された後にダイレクトティーチングによる教示によって対象物Ｏ２とツールＴ２の研磨部とが接触させられている様子の一例を示す図である。
【発明を実施するための形態】
【００２２】
＜第１実施形態＞
以下、本発明の第１実施形態について、図面を参照して説明する。
【００２３】
＜ロボットシステムの構成＞
まず、ロボットシステム１の構成について説明する。
図１は、第１実施形態に係るロボットシステム１の構成の一例を示す図である。ロボットシステム１は、撮像部１０と、ロボット２０と、ロボット制御装置３０を備える。
【００２４】
撮像部１０は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤ（Charge  Coupled  Device）やＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等を備えたカメラである。この一例において、撮像部１０は、ロボット２０が作業を行うことが可能な領域を含む範囲を撮像可能な位置に設置される。
【００２５】
撮像部１０は、ケーブルによってロボット制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（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）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【０１４５】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【０１４６】
１…ロボットシステム、１０…撮像部、２０…ロボット、２１…力検出部、３０…ロボット制御装置、３１…ＣＰＵ、３２…記憶部、３３…入力受付部、３４…通信部、３５…表示部、３６…制御部、４０…撮像制御部、４１…画像取得部、４２…力検出情報取得部、４３…位置姿勢検出部、４４…補正部、４５…計時部、４６…教示制御部、４７…ロボット制御部
【図１】
2017124470.tif 000003
【図２】
2017124470.tif 000004
【図３】
2017124470.tif 000005
【図４】
2017124470.tif 000006
【図５】
2017124470.tif 000007
【図６】
2017124470.tif 000008
【図７】
2017124470.tif 000009
【図８】
2017124470.tif 000010
【図９】
2017124470.tif 000011
【図１０】
2017124470.tif 000012
【図１１】
2017124470.tif 000013
【図１２】
2017124470.tif 000014
【手続補正書】
【提出日】平成28年8月18日(2016.8.18)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図４
【補正方法】変更
【補正の内容】
【図４】
2017124470.tif 000015
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図５
【補正方法】変更
【補正の内容】
【図５】
2017124470.tif 000016