(57)【要約】【課題】力検出部から出力された出力値に基づく作業をロボットに精度よく行わせることができるロボット制御装置を提供すること。【解決手段】アームと前記アームに設けられる力検出部とを有するロボットを制御する制御部を備え、前記力検出部は、前記力検出部の加減速度状態を示す値を検出する検出部を内蔵し、前記制御部は、前記検出部による検出結果に基づいて、前記力検出部を初期化する初期化部を備える、ロボット制御装置。【選択図】図４
2019141966.tif 000002
【特許請求の範囲】
【請求項１】
アームと前記アームに設けられる力検出部とを有するロボットを制御する制御部を備え、
前記力検出部は、前記力検出部の加減速度状態を示す値を検出する検出部を内蔵し、
前記制御部は、前記検出部による検出結果に基づいて、前記力検出部を初期化する初期化部を備える、
ロボット制御装置。
【請求項２】
前記加減速度状態を示す値は、角速度又は加速度である、
請求項１に記載のロボット制御装置。
【請求項３】
前記初期化部は、前記力検出部が加速又は減速をしていない状態を前記値が示す場合、前記力検出部を初期化する、
請求項１又は２に記載のロボット制御装置。
【請求項４】
前記初期化部は、前記値が予め決められた閾値以下である場合、前記力検出部が加速又は減速をしていない状態を前記値が示していると判定する、
請求項３に記載のロボット制御装置。
【請求項５】
前記初期化部は、予め決められた回数以上連続して前記値が前記閾値以下である場合、前記力検出部が加速又は減速をしていない状態を前記値が示していると判定する、
請求項４に記載のロボット制御装置。
【請求項６】
請求項１から５のうちいずれか一項に記載のロボット制御装置によって前記ロボットとして制御される、
ロボット。
【請求項７】
前記ロボットと、
請求項１から５のうちいずれか一項に記載のロボット制御装置と、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボット制御装置、ロボット、及びロボットシステムに関する。
【背景技術】
【０００２】
力制御によってロボットに作業を行わせる技術の研究や開発が行われている。ここで、力制御は、力検出部から出力された出力値に基づく制御のことである。力検出部は、ロボットの部位のうち予め決められた部位である力検出部位に作用した外力を検出するセンサーである。力検出部は、例えば、力センサー、トルクセンサー等のことである。当該外力には、力検出部位に作用した並進力、力検出部位に作用した回転モーメントが含まれる。また、当該並進力には、力検出部位に対応付けられた三次元座標系におけるＸ軸、Ｙ軸、Ｚ軸それぞれの方向に作用する３つの並進力が含まれている。また、当該回転モーメントには、当該Ｘ軸、当該Ｙ軸、当該Ｚ軸それぞれの周りに作用する３つの回転モーメントが含まれている。すなわち、力検出部は、当該３つの並進力と当該３つの回転モーメントとのそれぞれを当該外力として検出し、検出した当該３つの並進力のそれぞれに応じた信号と、検出した当該３つの回転モーメントのそれぞれに応じた信号とのそれぞれを示す情報を外力情報として出力する。すなわち、これらの６つの信号は、力検出部により出力される出力値である。
【０００３】
力制御において、力検出部を備えたロボット（又は当該ロボットを制御するロボット制御装置）は、力検出部から出力された出力値と、基準となる出力値である基準出力値との差分を算出する。基準出力値は、当該ロボットに外力が作用していない場合において力検出部が出力する出力値のことである。当該ロボットは、算出した差分に応じた大きさの外力が力検出部位に作用したと判定する。すなわち、当該ロボットは、力検出部から出力された出力値のうち力検出部位に作用した３つの並進力それぞれについて、並進力についての出力値と並進力についての基準出力値との差分である並進差分を算出する。また、当該ロボットは、力検出部から出力された出力値のうち力検出部位に作用した３つの回転モーメントのそれぞれについて、回転モーメントの出力値と回転モーメントについての基準出力値との差分である回転差分を算出する。そして、当該ロボットは、３つの並進差分それぞれの大きさに応じた大きさの並進力の合力が力検出部位に作用したと判定するとともに、３つの回転差分それぞれの大きさに応じた大きさの回転モーメントの合成回転モーメントが力検出部位に作用したと判定する。
【０００４】
ここで、上記の６つの基準出力値のそれぞれは、力検出部の周囲の温度、力検出部における漏れ電流のコンデンサーへの蓄積等によって変化してしまう場合（すなわち、温度ドリフト、時間ドリフト等が生じる場合）があることが知られている。当該６つの基準出力値の少なくとも１つが変化した場合、力検出部を備えたロボットは、力制御による作業の精度が低下する場合がある。このような事情から、当該ロボットは、力制御によって作業を行う前のタイミングにおいて、力検出部を初期化することが多い。力検出部の初期化は、初期化を行う際に力検出部から出力された出力値（すなわち、３つの並進力それぞれについての出力値と、３つの回転モーメントそれぞれについての出力値）の大きさを、基準出力値（すなわち、３つの並進力それぞれについての基準出力値と、３つの回転モーメントそれぞれについての基準出力値）として設定し直すこと（すなわち、力検出部のゼロ点合わせを行うこと）である。
【０００５】
これに関し、ロボットアームと、力覚センサーと、ロボットアームの作動を制御する制御部と、を備え、制御部は、ロボットアームが減速を開始した後に力覚センサーの初期化を開始し、ロボットアームの速度が等速度のときに、力覚センサーの初期化状態を解除するロボットが知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１５−１８２１６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
このロボットは、当該ロボットの部位のうち予め決められた部位である慣性検出部位の角速度又は加速度を検出するセンサー（例えば、慣性センサー、加速度センサー、ジャイロセンサー等）を備えている。このため、当該ロボットは、当該センサーから出力された出力値に基づいて、ロボットアームが減速を開始したか否かを判定することができる。ここで、当該センサーは、当該出力値として、例えば、当該角速度の大きさに応じた信号、又は当該加速度の大きさに応じた信号を出力する。しかしながら、当該ロボットでは、力覚センサーと当該センサーとは別々の位置に設けられており、力覚センサーが減速を開始したか否かを精度よく判定することができない場合があった。
【課題を解決するための手段】
【０００８】
上記課題の解決するために本発明の一態様は、アームと前記アームに設けられる力検出部とを有するロボットを制御する制御部を備え、前記力検出部は、前記力検出部の加減速度状態を示す値を検出する検出部を内蔵し、前記制御部は、前記検出部による検出結果に基づいて、前記力検出部を初期化する初期化部を備える、ロボット制御装置である。
【０００９】
また、本発明の一態様は、上記に記載のロボット制御装置によって前記ロボットとして制御される、ロボットである。
【００１０】
また、本発明の一態様は、前記ロボットと、上記に記載のロボット制御装置と、を備えるロボットシステムである。
【図面の簡単な説明】
【００１１】
【図１】実施形態に係るロボットシステム１の構成の一例を示す図である。
【図２】ある作業をロボット２０に行わせた場合における制御点Ｔの速度と当該作業において経過した時間との関係の一例を示す図である。
【図３】ロボット制御装置３０のハードウェア構成の一例を示す図である。
【図４】ロボット制御装置３０の機能構成の一例を示す図である。
【図５】ロボット制御装置３０が力検出部ＦＳの初期化を行う処理の流れの具体例１を示すフローチャートである。
【図６】ロボット制御装置３０が力検出部ＦＳの初期化を行う処理の流れの具体例２を示すフローチャートである。
【発明を実施するための形態】
【００１２】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。
【００１３】
＜ロボットシステムの構成＞
まず、ロボットシステム１の構成について説明する。
図１は、実施形態に係るロボットシステム１の構成の一例を示す図である。ロボットシステム１は、ロボット２０と、ロボット制御装置３０を備える。なお、ロボットシステム１は、撮像部、撮像部を制御する画像処理装置、ロボット制御装置３０を制御する情報処理装置、ロボット制御装置３０にロボット２０の動作を教示する教示装置等を備える構成であってもよい。
【００１４】
ロボット２０は、アームＡと、アームＡを支持する基台Ｂを備える単腕ロボットである。単腕ロボットは、この一例におけるアームＡのような１本の腕（アーム）を備えるロボットである。
【００１５】
アームＡは、エンドエフェクターＥと、マニピュレーターＭと、力検出部ＦＳを備える。なお、アームＡは、エンドエフェクターＥを備えない構成であってもよい。
【００１６】
エンドエフェクターＥは、物体を保持するエンドエフェクターである。この一例において、エンドエフェクターＥは、指部を備え、当該指部によって物体を挟んで持つことにより当該物体を保持する。
【００１７】
マニピュレーターＭは、６つの関節を備える。また、当該６つの関節はそれぞれ、図示しないアクチュエーターを備える。すなわち、マニピュレーターＭを備えるアームＡは、６軸垂直多関節型のアームである。アームＡは、基台Ｂと、エンドエフェクターＥと、マニピュレーターＭと、マニピュレーターＭが備える６つの関節それぞれのアクチュエーターとによる連携した動作によって６軸の自由度の動作を行う。なお、アームＡは、５軸以下の自由度で動作する構成であってもよく、７軸以上の自由度で動作する構成であってもよい。
【００１８】
ここで、エンドエフェクターＥと、マニピュレーターＭが備える６つの（関節に備えられた）アクチュエーターのそれぞれとは、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、エンドエフェクターＥと、マニピュレーターＭが備える６つのアクチュエーターのそれぞれとは、ロボット制御装置３０から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。また、エンドエフェクターＥは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。また、マニピュレーターＭが備える６つのアクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００１９】
力検出部ＦＳは、エンドエフェクターＥとマニピュレーターＭの間に備えられる。力検出部ＦＳは、例えば、力センサー（力覚センサー）である。力検出部ＦＳは、ロボット２０の図示しないハンドに作用した外力を検出する。当該ハンドは、エンドエフェクターＥ、又はエンドエフェクターＥにより保持された物体のことである。当該外力には、当該ハンドを並進させる並進力が含まれる。当該並進力には、力検出部ＦＳに対応付けられた三次元座標系におけるＸ軸、Ｙ軸、Ｚ軸それぞれの方向に作用する３つの並進力が含まれている。また、当該外力には、当該ハンドを回転させる回転モーメント（トルク）が含まれる。当該回転モーメントには、当該Ｘ軸、当該Ｙ軸、当該Ｚ軸それぞれの周りに作用する３つの回転モーメントが含まれている。すなわち、力検出部ＦＳは、当該３つの並進力と当該３つの回転モーメントとのそれぞれを当該外力として検出する。し、検出した当該３つの並進力のそれぞれに応じた信号と、検出した当該３つの回転モーメントのそれぞれに応じた信号とのそれぞれを示す情報を外力情報として、通信によりロボット制御装置３０へ出力する。すなわち、これらの６つの信号は、力検出部ＦＳにより出力される出力値である。
【００２０】
外力情報は、ロボット制御装置３０によるロボット２０の力制御に用いられる。力制御は、力検出部ＦＳから出力された出力値に基づく制御、すなわち、力検出部ＦＳからロボット制御装置３０へ出力された外力情報に基づく制御であり、例えば、インピーダンス制御等のコンプライアントモーション制御のことである。
【００２１】
力検出部ＦＳは、予め決められたサンプリング周期で外力の検出を行う。力検出部ＦＳのサンプリング周期は、例えば、１００ミリ秒程度であるが、１００ミリ秒より短い周期であってもよく、１００ミリ秒より長い周期であってもよい。そして、力検出部ＦＳは、外力を検出する毎に、検出した外力の大きさを示す外力情報をロボット制御装置３０へ出力する。なお、力検出部ＦＳは、ロボット制御装置３０からの要求に応じて外力を検出し、検出した外力の大きさを示す外力情報をロボット制御装置３０へ出力する構成であってもよい。
【００２２】
また、力検出部ＦＳは、検出部ＩＳを内蔵する。これにより、ロボット２０は、小型化を図ることができる。
【００２３】
検出部ＩＳは、力検出部ＦＳの加減速度状態を示す値である加減速度状態値を検出するセンサーである。ここで、力検出部ＦＳの加減速度状態は、力検出部ＦＳが加速又は減速をしていない状態と、力検出部ＦＳが加速又は減速をしている状態とのいずれかである。また、加減速度状態値は、力検出部ＦＳの角速度、又は力検出部ＦＳの加速度のことである。以下では、一例として、加減速度状態値が、力検出部ＦＳの加速度のことである場合について説明する。すなわち、検出部ＩＳは、この一例において、加速度センサーである。なお、本実施形態では、加速度と称した場合、加速度又は減速度を意味する。
【００２４】
また、検出部ＩＳは、アームＡの部位のうち力検出部ＦＳが設けられた部位の加速度を、力検出部ＦＳの加速度として検出する。すなわち、この一例では、検出部ＩＳは、力検出部ＦＳに内蔵されているため、アームＡの部位のうちエンドエフェクターＥとマニピュレーターＭとの間の部位の加速度を力検出部ＦＳの加速度として検出する。
【００２５】
検出部ＩＳは、加減速度状態値を検出した後、検出した加減速度状態値を示す情報である加減速度状態情報を、通信によりロボット制御装置３０へ出力する。ここで、検出部ＩＳは、力検出部ＦＳが外力情報をロボット制御装置３０へ出力するケーブルと接続されており、当該ケーブルによって加減速度状態情報をロボット制御装置３０へ出力する。すなわち、力検出部ＦＳと検出部ＩＳとは、共通のケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、ロボット２０は、省配線化を図ることができる。なお、力検出部ＦＳと検出部ＩＳとの少なくとも一方は、無線によって通信可能にロボット制御装置３０と接続される構成であってもよい。
【００２６】
検出部ＩＳは、予め決められたサンプリング周期で加減速度状態値の検出を行う。検出部ＩＳのサンプリング周期は、この一例において、力検出部ＦＳのサンプリング周期と同期されている。すなわち、力検出部ＦＳが外力を検出するタイミングと、検出部ＩＳが加減速度状態値を検出するタイミングとは、誤差を除いて一致している。これにより、ロボット制御装置３０は、あるタイミングにおいて検出された外力を示す外力情報と、当該タイミングにおいて検出された力検出部ＦＳの加減速度状態値を示す加減速度状態情報とを対応付けて取得することができる。その結果、ロボット制御装置３０は、あるタイミングにおいて力検出部ＦＳにより検出された外力が、当該タイミングにおける力検出部ＦＳの加減速度状態に応じた外力として特定することができる。なお、検出部ＩＳのサンプリング周期は、力検出部ＦＳのサンプリング周期と一致していない構成であってもよい。
【００２７】
ロボット制御装置３０は、ロボット２０を制御するロボットコントローラーである。ロボット制御装置３０は、ロボット制御装置３０が備えるメモリーに予め記憶された動作プログラムに基づいて、ロボット２０に予め決められた作業を行わせる。なお、当該メモリーは、図１において図示していない。
【００２８】
より具体的には、ロボット制御装置３０は、ロボット２０のアームＡとともに動く仮想的な点である制御点Ｔを、アームＡの予め決められた位置に設定する。制御点Ｔは、例えば、アームＡについてのＴＣＰ（Tool  Center  Point）である。なお、制御点Ｔは、当該ＴＣＰに代えて、制御点Ｔとともに動く他の仮想的な点であってもよい。当該予め決められた位置は、例えば、エンドエフェクターＥの重心の位置である。なお、当該予め決められた位置は、当該重心の位置に代えて、アームＡに応じた他の位置であってもよい。
【００２９】
制御点Ｔには、制御点Ｔとともに動く三次元直交座標系である制御点座標系が対応付けられている。制御点Ｔの位置は、制御点座標系の原点のロボット座標系における位置によって表される。また、制御点Ｔの姿勢は、制御点座標系における各座標軸のロボット座標系における方向によって表される。ここで、ロボット座標系は、ロボット２０の基台Ｂに対応付けられた三次元座標系のことである。
【００３０】
ロボット制御装置３０は、例えば、前述の動作プログラムによって指定された教示点に基づく位置制御によってアームＡを動作させる。アームＡの位置制御は、この一例において、動作プログラムによって指定された教示点に制御点Ｔを一致させる制御のことである。また、ロボット制御装置３０は、力検出部ＦＳから外力情報を取得し、取得した外力情報に基づく力制御によってアームＡを動作させる。また、ロボット制御装置３０は、当該位置制御と、当該力制御との両方によってアームＡを動作させる。
【００３１】
ここで、教示点は、ロボット２０が制御点Ｔを一致させる目標となる仮想的な点のことである。教示点には、ロボット座標系における教示点の位置を示す情報である教示点位置情報と、ロボット座標系における教示点の姿勢を示す情報である教示点姿勢情報とが対応付けられている。ロボット２０がある教示点に制御点Ｔを一致させた場合、制御点Ｔの位置は、当該教示点の位置と一致する。また、当該場合、制御点Ｔの姿勢は、当該教示点の姿勢と一致する。
【００３２】
ロボット制御装置３０は、アームＡを動作させ、予め決められた作業をロボット２０に行わせる。予め決められた作業は、力制御による作業を含む作業であれば如何なる作業であってもよい。力制御による作業は、力制御によってロボット２０に行わせる動作を含む作業のことである。当該動作は、換言すると、力検出部ＦＳから出力された出力値に基づいてロボット２０に行わせる動作のことである。すなわち、予め決められた作業には、例えば、物体を力制御によってエンドエフェクターＥに把持させる作業、エンドエフェクターＥによって保持された物体を力制御によって予め決められた領域に載置する作業等が、力制御による作業として含まれる。
【００３３】
また、ロボット制御装置３０は、力制御において、予め決められた周期で力検出部ＦＳから外力情報を取得する。ロボット制御装置３０は、外力情報を取得する毎に、取得した外力情報が示す出力値と、基準となる出力値である基準出力値との差分を算出する。基準出力値は、ロボット２０のハンドに外力が作用していない場合において力検出部ＦＳが出力する出力値のことである。ロボット制御装置３０は、算出した差分に応じた大きさの外力が当該ハンドに作用したと判定する。すなわち、ロボット制御装置３０は、力検出部ＦＳから出力された出力値のうち当該ハンドに作用した３つの並進力それぞれについて、並進力についての出力値と並進力についての基準出力値との差分である並進差分を算出する。また、ロボット制御装置３０は、力検出部ＦＳから出力された出力値のうち当該ハンドに作用した３つの回転モーメントのそれぞれについて、回転モーメントの出力値と回転モーメントについての基準出力値との差分である回転差分を算出する。そして、ロボット制御装置３０は、３つの並進差分それぞれの大きさに応じた大きさの並進力の合力が当該ハンドに作用したと判定するとともに、３つの回転差分それぞれの大きさに応じた大きさの回転モーメントの合成回転モーメントが当該ハンドに作用したと判定する。
【００３４】
ロボット制御装置３０は、力制御において、当該ハンドに作用したと判定した外力が予め決められた終了条件を満たすように制御点Ｔを移動させる。当該外力は、すなわち、前述の３つの並進力及び前述の３つの回転モーメントのことである。そして、ロボット制御装置３０は、終了条件が満たされた場合、力制御によるロボット２０の動作を終了させる。終了条件は、当該外力についての条件であれば如何なる条件であってもよい。例えば、終了条件は、ロボット２０のハンドに対して、力検出部ＦＳに対応付けられた三次元座標系におけるＺ軸の正方向に向かって予め決められた大きさの並進力が作用し、当該三次元座標系におけるＸ軸、Ｙ軸それぞれに沿った方向に並進力が作用せず、当該Ｘ軸、当該Ｙ軸、当該Ｚ軸のそれぞれの周りに回転モーメントが作用しないこと等、である。
【００３５】
また、ロボット制御装置３０は、力制御による作業をロボット２０に行わせる際、検出部ＩＳによる検出結果に基づいて、力検出部ＦＳを初期化する。これにより、ロボット制御装置３０は、力制御による作業をロボット２０に精度よく行わせることができる。ここで、検出部ＩＳによる検出結果は、検出部ＩＳにより検出される加減速度状態値のことである。
【００３６】
＜ロボット制御装置が力検出部を初期化する処理の概要＞
以下、図２を参照し、ロボット制御装置３０が力検出部ＦＳを初期化する処理の概要について説明する。
【００３７】
図２は、ある作業をロボット２０に行わせた場合における制御点Ｔの速度と当該作業において経過した時間との関係の一例を示す図である。図２に示したグラフの横軸は、時間を示す。当該グラフの縦軸は、当該速度を示す。また、当該グラフに示した曲線Ｆは、時間の経過に伴う当該速度の変化を示す。当該グラフに示した期間Ｒ１と期間Ｒ２とのそれぞれは、当該作業において制御点Ｔが加速又は減速している期間を示す。より具体的には、期間Ｒ１は、静止していた制御点Ｔが加速され始めてから、制御点Ｔの速度が図２に示した速度Ｖに到達した段階で加速が停止され、制御点Ｔの振動が止まるまでの期間を示す。当該振動は、換言すると、制御点Ｔの加減速の繰り返し運動のことである。また、期間Ｒ２は、速度Ｖで動いていた制御点Ｔが減速され始めてから、制御点Ｔの動きが停止され、制御点Ｔの振動が止まるまでの期間を示す。
【００３８】
制御点Ｔが加速又は減速している場合、力検出部ＦＳには、制御点Ｔの加速又は減速に応じた慣性力が作用する。制御点Ｔへの当該慣性力の作用により、制御点Ｔが加速又は減速している期間では、前述の基準出力値が制御点Ｔの加速度に応じて変動する。当該期間は、図２に示した例では、期間Ｒ１、期間Ｒ２のことである。このため、ロボット制御装置３０と異なるロボット制御装置Ｘでは、当該期間において、制御点Ｔの移動を停止させてから予め決められた待機期間が経過するまでの間、力検出部ＦＳの初期化を行わないことが多い。ロボット制御装置Ｘは、例えば、従来のロボット制御装置である。また、当該間は、換言すると、制御点Ｔの加減速が止まるまでの間のことである。しかしながら、制御点Ｔが加速又は減速している期間は、ロボット２０の動作毎に異なる。このため、待機期間は、ロボット２０が行う作業の精度を低下させないようにするためには、ロボット２０の作業において制御点Ｔが加速又は減速している期間のうち最も長い期間であると推定される期間よりも長い期間にする必要がある。その結果、ロボット制御装置Ｘは、ロボット２０が行う作業の効率を向上させることが困難な場合があった。
【００３９】
そこで、ロボット制御装置３０は、前述した通り、検出部ＩＳによる検出結果に基づいて、力検出部ＦＳを初期化する。より具体的には、ロボット制御装置３０は、力検出部ＦＳが加速又は減速をしていない状態を、検出部ＩＳから出力された加減速度状態値が示す場合、力検出部ＦＳを初期化する。これにより、ロボット制御装置３０は、力検出部ＦＳが加速又は減速をしなくなってから、時間の経過を過剰に経ることなく、力検出部ＦＳを初期化することができる。その結果、ロボット制御装置３０は、力制御による作業をロボット２０に精度よく行わせることができるとともに、当該作業の効率化を図ることができる。
【００４０】
なお、力検出部ＦＳの初期化は、初期化を行う際に力検出部ＦＳから出力された出力値の大きさを、基準出力値として設定し直すこと（すなわち、力検出部ＦＳのゼロ点合わせを行うこと）である。ここで、当該出力値は、３つの並進力それぞれについての出力値と、３つの回転モーメントそれぞれについての出力値のことである。また、当該基準出力値は、３つの並進力それぞれについての基準出力値と、３つの回転モーメントそれぞれについての基準出力値のことである。
【００４１】
また、この一例において、検出部ＩＳは、前述した通り、力検出部ＦＳに内蔵されている。このため、検出部ＩＳから出力された加減速度状態値は、力検出部ＦＳの加減速度状態を示す。これにより、ロボット制御装置３０は、当該加減速度状態値に基づいて、力検出部ＦＳの加減速度状態が、力検出部ＦＳが加速又は減速をしていない状態であるか否かを精度よく判定することができる。なお、図２に示した例では、力検出部ＦＳが加速又は減速していない状態である期間は、期間Ｒ１と期間Ｒ２との間に挟まれた期間である。
【００４２】
以下では、ロボット制御装置３０の構成と、ロボット制御装置３０が力検出部ＦＳの初期化を行う処理とについて詳しく説明する。
【００４３】
＜ロボット制御装置のハードウェア構成＞
以下、ロボット制御装置３０のハードウェア構成について説明する。図３は、ロボット制御装置３０のハードウェア構成の一例を示す図である。
【００４４】
ロボット制御装置３０は、例えば、プロセッサー３１と、メモリー３２と、通信部３４を備える。また、ロボット制御装置３０は、通信部３４を介してロボット２０と通信を行う。これらの構成要素は、バスを介して相互に通信可能に接続されている。
【００４５】
プロセッサー３１は、例えば、ＣＰＵ（Central  Processing  Unit）である。なお、プロセッサー３１は、ＣＰＵに代えて、ＦＰＧＡ（Field  Programmable  Gate  Array）等の他のプロセッサーであってもよい。プロセッサー３１は、メモリー３２に格納された各種のプログラムを実行する。
メモリー３２は、例えば、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read−Only  Memory）、ＲＯＭ（Read−Only  Memory）、ＲＡＭ（Random  Access  Memory）等を含む。なお、メモリー３２は、ロボット制御装置３０に内蔵されるものに代えて、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。メモリー３２は、ロボット制御装置３０が処理する各種の情報、各種の画像、動作プログラム等を格納する。
通信部３４は、例えば、ＵＳＢ等のデジタル入出力ポートやイーサネット（登録商標）ポート等を含んで構成される。
【００４６】
なお、ロボット制御装置３０は、キーボード、マウス、タッチパッド等の入力装置と、ディスプレイを有する表示装置とのいずれか一方又は両方を備える構成であってもよい。
【００４７】
＜ロボット制御装置の機能構成＞
以下、図４を参照し、ロボット制御装置３０の機能構成について説明する。図４は、ロボット制御装置３０の機能構成の一例を示す図である。
【００４８】
ロボット制御装置３０は、メモリー３２と、通信部３４と、制御部３６を備える。
【００４９】
制御部３６は、ロボット制御装置３０の全体を制御する。制御部３６は、取得部３６１と、初期化部３６３と、ロボット制御部３６５を備える。制御部３６が備えるこれらの機能部は、例えば、プロセッサー３１が、メモリー３２に記憶された各種の指令を実行することにより実現される。また、当該機能部のうちの一部又は全部は、ＬＳＩ（Large  Scale  Integration）、ＡＳＩＣ（Application  Specific  Integrated  Circuit）等のハードウェア機能部であってもよい。
【００５０】
取得部３６１は、力検出部ＦＳから外力情報を取得する。また、取得部３６１は、検出部ＩＳから加減速度状態情報を取得する。
初期化部３６３は、取得部３６１が取得した外力情報及び加減速度状態情報に基づいて、力検出部ＦＳの初期化を行う。
ロボット制御部３６５は、メモリー３２に予め記憶された動作プログラムに基づいてロボット２０を動作させる。この際、ロボット制御部３６５は、位置制御と力制御との少なくとも一方によってロボット２０を動作させる。
【００５１】
＜ロボット制御装置が力検出部の初期化を行う処理の流れの具体例１＞
以下、図５を参照し、ロボット制御装置３０が力検出部ＦＳの初期化を行う処理の流れの具体例１について説明する。図５は、ロボット制御装置３０が力検出部ＦＳの初期化を行う処理の流れの具体例１を示すフローチャートである。当該具体例１では、ロボット制御装置３０は、制御点Ｔが加速又は減速を行っていない状態のうち制御点Ｔが静止している状態において力検出部ＦＳの初期化を行う。なお、図５に示したフローチャートの処理は、メモリー３２に予め記憶された動作プログラムに応じてロボット制御装置３０が行う処理を示している。
【００５２】
初期化部３６３は、整数を格納可能な変数ｎを、メモリー３２の記憶領域に生成する。そして、初期化部３６３は、生成した変数ｎを初期化する（ステップＳ１１０）。より具体的には、初期化部３６３は、変数ｎを生成した後、メモリー３２に記憶された変数ｎに０を格納する。
【００５３】
次に、ロボット制御部３６５は、メモリー３２から予め読み出した動作プログラムによって指定された教示点のうち待機位置を示す教示点を特定する。待機位置は、ロボット２０が予め決められた作業を開始する際において、最初に制御点Ｔを一致させる教示点によって示される位置のことである。ロボット制御部３６５は、特定した教示点に基づいてロボット２０を動作させ、制御点Ｔの位置を待機位置へ移動させる（ステップＳ１２０）。すなわち、ロボット制御部３６５は、ロボット２０を動作させ、当該教示点に制御点Ｔを一致させる。そして、ロボット制御部３６５は、当該教示点と制御点Ｔとが一致した場合、ロボット２０の動作を停止させる。
【００５４】
次に、取得部３６１は、力検出部ＦＳから外力情報を取得するとともに、検出部ＩＳから加減速度状態情報を取得する。そして、初期化部３６３は、取得部３６１が取得した加減速度状態情報が示す加減速度状態値が予め決められた第１閾値未満であるか否かを判定する（ステップＳ１３０）。加減速度状態値が第１閾値以上であると判定した場合（ステップＳ１３０−ＮＯ）、初期化部３６３は、変数ｎを初期化する（ステップＳ１９０）。そして、取得部３６１は、ステップＳ１３０に遷移し、力検出部ＦＳから外力情報を再び取得するとともに、検出部ＩＳから加減速度状態情報を再び取得する。一方、加減速度状態値が第１閾値未満であると判定した場合（ステップＳ１３０−ＹＥＳ）、初期化部３６３は、変数ｎに１を加算する（ステップＳ１４０）。すなわち、当該場合、初期化部３６３は、メモリー３２に記憶された変数ｎに格納された整数に１を加算し、１が加算された後の当該整数を変数ｎに格納する。
【００５５】
ステップＳ１４０の処理が行われた後、初期化部３６３は、変数ｎに格納された整数が、予め決められた回数以上であるか否かを判定する（ステップＳ１５０）。ステップＳ１５０の判定は、所定の期間、ロボット２０が停止状態であることの判定に相当する。ここで、予め決められた回数は、例えば、３回である。なお、当該回数は、１回であってもよく、２回であってもよく、４回以上の回数であってもよい。変数ｎに格納された整数が、予め決められた回数未満であると初期化部３６３が判定した場合（ステップＳ１５０−ＮＯ）、取得部３６１は、ステップＳ１３０に遷移し、力検出部ＦＳから外力情報を再び取得するとともに、検出部ＩＳから加減速度状態情報を再び取得する。一方、変数ｎに格納された整数が、予め決められた回数以上であると判定した場合（ステップＳ１５０−ＹＥＳ）、初期化部３６３は、力検出部ＦＳが加速又は減速をしていない状態を、加減速度状態値が示していると判定し、力検出部ＦＳの初期化を行う（ステップＳ１６０）。すなわち、予め決められた回数以上連続して加減速度状態値が第１閾値以下である場合、初期化部３６３は、力検出部ＦＳが加速又は減速をしていない状態であると判定し、力検出部ＦＳの初期化を行う。
【００５６】
次に、ロボット制御部３６５は、ロボット２０を動作させ、力制御による作業を開始させる（ステップＳ１７０）。ステップＳ１７０においてロボット制御部３６５がロボット２０に開始させる作業は、力制御による作業であれば如何なる作業であってもよい。
【００５７】
次に、ロボット制御部３６５は、力制御において予め決められた周期で力検出部ＦＳから取得する外力情報に基づいて、ステップＳ１７０においてロボット制御部３６５がロボット２０に開始させた作業を終了させる終了条件が満たされたか否かを判定する（ステップＳ１８０）。当該終了条件が満たされていないと判定した場合（ステップＳ１８０−ＮＯ）、ロボット制御部３６５は、ステップＳ１７０において開始した作業をロボット２０に継続させる。そして、ロボット制御部３６５は、ステップＳ１８０に遷移し、当該終了条件が満たされたか否かを再び判定する。一方、当該終了条件が満たされたと判定した場合（ステップＳ１８０−ＹＥＳ）、ロボット制御部３６５は、ロボット２０の動作を停止させ、処理を終了する。
【００５８】
＜ロボット制御装置が力検出部の初期化を行う処理の流れの具体例２＞
以下、図６を参照し、ロボット制御装置３０が力検出部ＦＳの初期化を行う処理の流れの具体例６について説明する。図６は、ロボット制御装置３０が力検出部ＦＳの初期化を行う処理の流れの具体例２を示すフローチャートである。当該具体例２では、ロボット制御装置３０は、制御点Ｔが加速又は減速を行っていない状態のうち制御点Ｔが等速運動を行っている状態において力検出部ＦＳの初期化を行う。なお、図６に示したフローチャートの処理は、メモリー３２に予め記憶された動作プログラムに応じてロボット制御装置３０が行う処理を示している。また、図６に示したフローチャートにおいて、図５に示したフローチャートと同様の処理を行うステップには、同じ符号を付して説明を省略する。
【００５９】
図６に示したステップＳ１１０の処理が行われた後、ロボット制御部３６５は、メモリー３２から予め読み出した動作プログラムによって指定された教示点のうち待機位置を示す教示点を特定する。ロボット制御部３６５は、特定した教示点に基づいてロボット２０を動作させ、制御点Ｔの位置を待機位置へ移動させ始める（ステップＳ２１０）。すなわち、ロボット制御部３６５は、制御点Ｔが当該教示点へ一致するようにアームＡを動かし始める。そして、ロボット制御装置３０は、制御点Ｔの位置が待機位置へ移動している間において、ステップＳ１３０〜ステップＳ１６０の処理を行う。
【００６０】
ステップＳ１６０の処理が行われた後、ロボット制御部３６５は、制御点Ｔの位置が待機位置と一致するまで待機する（ステップＳ２２０）。制御点Ｔの位置が待機位置と一致した場合（ステップＳ２２０−ＹＥＳ）、ロボット制御部３６５は、制御点Ｔの移動を停止させる（ステップＳ２３０）。そして、ロボット制御部３６５は、ステップＳ１７０に遷移し、ロボット２０を動作させ、力制御による作業を開始させる。
【００６１】
なお、図６に示したフローチャートにおいて、ステップＳ２３０の処理は、省略されてもよい。すなわち、ロボット制御装置３０は、制御点Ｔが等速度運動を行っている間に力検出部ＦＳの初期化を行うことに加えて、当該間に力制御による作業をロボット２０に開始させる構成であってもよい。これにより、ロボット制御装置３０は、力制御によってロボット２０に行わせる作業の効率を更に向上させることができる。
【００６２】
図５及び図６において説明したように、ロボット制御装置３０は、検出部ＩＳによる検出結果に基づいて、力検出部ＦＳを初期化する。すなわち、ロボット制御装置３０は、力検出部ＦＳが加速又は減速をしていない状態を加減速度状態値が示す場合、力検出部ＦＳを初期化し、力検出部ＦＳが加速又は減速をしている状態を加減速度状態値が示す場合、力検出部ＦＳを初期化しない。これにより、ロボット制御装置３０は、力検出部ＦＳが加速又は減速をしなくなってから、時間の経過を過剰に経ることなく、力検出部ＦＳを初期化することができる。その結果、ロボット制御装置３０は、力制御による作業をロボット２０に精度よく行わせることができるとともに、当該作業の効率化を図ることができる。
【００６３】
なお、ロボット制御装置３０は、予め決められた作業をロボット２０に行わせる場合において、図５に示したフローチャートの処理と、図６に示したフローチャートの処理との両方を行う構成であってもよく、いずれか一方を行う構成であってもよい。
【００６４】
また、上記において説明したロボット２０は、単腕ロボットに代えて、複腕ロボットであってもよい。複腕ロボットは、２本以上の腕を備えるロボットである。当該２本以上の腕は、例えば、２本以上のアームＡである。ここで、複腕ロボットのうち、２本の腕を備えるロボットは、双腕ロボットとも称される。すなわち、ロボット２０は、２本の腕を備える双腕ロボットであってもよく、３本以上の腕を備える複腕ロボットであってもよい。当該２本の腕は、例えば、２本のアームＡである。当該３本以上の腕は、例えば、３本以上のアームＡである。また、ロボット２０は、スカラロボット（水平多関節ロボット）、直交座標ロボット、円筒型ロボット等の他のロボットであってもよい。直交座標ロボットは、例えば、ガントリロボットである。
【００６５】
また、上記において説明したエンドエフェクターＥは、空気の吸引や磁力、他の治具等によって物体を持ち上げることにより当該物体を保持する構成であってもよい。なお、この一例において、保持するとは、物体を持ち上げることが可能な状態にすることを意味する。
【００６６】
また、上記において説明した力検出部ＦＳは、エンドエフェクターＥに作用した外力、又はエンドエフェクターＥにより保持された物体に作用した外力を検出するトルクセンサーであってもよい。また、力検出部ＦＳは、エンドエフェクターＥに作用した外力、又は当該物体に作用した外力を検出する他のセンサーであってもよい。また、力検出部ＦＳは、エンドエフェクターＥとマニピュレーターＭの間に備えられる構成に代えて、ロボット２０の他の部位に備えられる構成であってもよい。この場合、力検出部ＦＳは、当該部位に作用する外力を検出する。
【００６７】
また、上記において説明した初期化部３６３は、制御部３６が備える構成に代えて、力検出部ＦＳが備える構成であってもよい。この場合、力検出部ＦＳは、ＣＰＵ、ＦＰＧＡ等を備える。力検出部ＦＳが初期化部３６３を備える場合、ロボットシステム１では、ユーザーに力検出部ＦＳの初期化を行わなければ力制御によってロボット２０に行わせる作業の精度が低下してしまうことを意識させることなく、力制御による作業をロボット２０に精度よく行わせることができる。
【００６８】
また、上記において説明した初期化部３６３は、制御部３６が備える構成に加えて、力検出部ＦＳが備える構成であってもよい。
【００６９】
また、上記において説明したロボット制御装置３０は、力検出部ＦＳを初期化する処理を、ロボット２０が予め決められた作業を行う期間である作業期間において、最初に１回行う構成であってもよく、作業期間内において予め決められた時間が経過する毎に繰り返し行う構成であってもよい。これは、ロボット２０が作業を行う空間における温度変化が、通常小さいためである。また、これは、力検出部ＦＳにおける漏れ電流のコンデンサーへの蓄積も通常小さいためである。
【００７０】
以上のように、ロボット制御装置は、アームとアームに設けられる力検出部とを有するロボットを制御する制御部を備え、力検出部は、力検出部の加減速度状態を示す値を検出する検出部を内蔵し、制御部は、検出部による検出結果に基づいて、力検出部を初期化する初期化部を備える。当該アームは、この一例において、アームＡのことである。当該力検出部は、この一例において、力検出部ＦＳのことである。当該制御部は、この一例において、制御部３６のことである。当該加減速度状態を示す値は、加減速度状態値のことである。当該検出部は、この一例において、検出部ＩＳのことである。当該初期化部は、この一例において、初期化部３６３のことである。これにより、ロボット制御装置は、ロボットの小型化、省配線化を図ることができるとともに、力検出部から出力された出力値に基づく作業をロボットに精度よく行わせることができる。
【００７１】
また、ロボット制御装置では、加減速度状態を示す値は、角速度又は加速度である。これにより、ロボット制御装置は、力検出部の角速度又は力検出部の加速度に基づいて、力検出部から出力された出力値に基づく作業をロボットに精度よく行わせることができる。
【００７２】
また、ロボット制御装置では、初期化部は、力検出部が加速又は減速をしていない状態を、加減速度状態を示す値が示す場合、力検出部を初期化する。これにより、ロボット制御装置は、力検出部が静止又は等速運動を行っている状態において、力検出部を初期化することができる。
【００７３】
また、ロボット制御装置では、初期化部は、加減速度状態を示す値が予め決められた閾値以下である場合、力検出部が加速又は減速をしていない状態を当該値が示していると判定する。当該閾値は、この一例において、第１閾値のことである。これにより、ロボット制御装置は、力検出部が加速又は減速をしている状態を、力検出部が加速又は減速をしていない状態であると誤判定してしまうことを抑制することができる。
【００７４】
また、ロボット制御装置では、初期化部は、予め決められた回数以上連続して加減速度状態を示す値が予め決められた閾値以下である場合、力検出部が加速又は減速をしていない状態を当該値が示していると判定する。これにより、ロボット制御装置は、力検出部が加速又は減速をしている状態を、力検出部が加速又は減速をしていない状態であると誤判定してしまうことを、より確実に抑制することができる。
【００７５】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【００７６】
また、以上に説明した装置における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。当該装置は、例えば、ロボット制御装置３０である。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Operating  System）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ（Compact  Disk）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００７７】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル、差分プログラム等であってもよい。
【符号の説明】
【００７８】
１…ロボットシステム、２０…ロボット、３０…ロボット制御装置、３１…プロセッサー、３２…メモリー、３４…通信部、３６…制御部、３６１…取得部、３６３…初期化部、３６５…ロボット制御部、Ａ…アーム、ＦＳ…力検出部、ＩＳ…検出部
【図１】
2019141966.tif 000003
【図２】
2019141966.tif 000004
【図３】
2019141966.tif 000005
【図４】
2019141966.tif 000006
【図５】
2019141966.tif 000007
【図６】
2019141966.tif 000008