(57)【要約】【課題】キャリブレーションに係る負担を軽減しても対象物への意図しない接触や、対象物やハンドが破損するおそれを低減する。【解決手段】画像取得部は対象物を含む画像を取得し、制御部はキャリブレーションの誤差、ロボットの設置の誤差、ロボットの剛性に起因する誤差、ロボットが対象物を把持した位置の誤差、撮像に関する誤差、及び作業環境に関する誤差の少なくとも１つに基づいて、取得した画像を用いたビジュアルサーボを開始する。また、制御部は、ロボットの作業部の一点と前記対象物との間の距離が２ｍｍ以上のとき、ビジュアルサーボを開始する。【選択図】図１
2015085458.tif 000002
【特許請求の範囲】
【請求項１】
対象物を含む画像を取得する画像取得部と、
キャリブレーションの誤差、ロボットの設置の誤差、前記ロボットの剛性に起因する誤差、前記ロボットが対象物を把持した位置の誤差、撮像に関する誤差、及び作業環境に関する誤差の少なくとも１つに基づいて、ビジュアルサーボを開始する制御部と、
を備えるロボット制御装置。
【請求項２】
前記作業環境は、前記対象物の明るさを示す照度である請求項１に記載のロボット制御装置。
【請求項３】
対象物を含む画像を取得する画像取得部と、
ロボットの作業部の端点と前記対象物との間の距離が２ｍｍ以上のとき、ビジュアルサーボを開始する制御部と、
を備えるロボット制御装置。
【請求項４】
前記制御部は、前記距離が２ｍｍから３００ｍｍまでのとき、前記ビジュアルサーボを開始する請求項３に記載のロボット制御装置。
【請求項５】
前記ビジュアルサーボは、前記ロボットが第１の姿勢から前記第１の姿勢とは異なる第２の姿勢へと移る間に、前記画像取得部に前記対象物を複数回撮像させる制御である請求項１から４のいずれか１項に記載のロボット制御装置。
【請求項６】
力を検出する力検出部が設けられた作業部の一点を対象物に接触させ、前記対象物と接触した位置を前記作業部の一点の基準点と定める制御部と、
を備えるロボット制御装置。
【請求項７】
力を検出する力検出部が設けられた作業部の一点を１ｍｍ以下の平面粗さを有する対象物に接触させ、前記対象物と接触した位置を前記作業部の一点の基準点と定める制御部と、
を備えるロボット制御装置。
【請求項８】
前記作業部の一点は、前記力検出部よりも前記作業部の先端に位置している請求項６又は請求項７に記載のロボット制御装置。
【請求項９】
前記制御部は、前記作業部の一点を前記対象物に接触させる際、前記作業部の一点を水平面に垂直な方向に移動させ、前記対象物と接触した位置の前記垂直な方向の座標値を前記基準点の前記垂直な方向の座標値と定める請求項６から請求項８のいずれか１項に記載のロボット制御装置。
【請求項１０】
前記制御部は、前記作業部の一点を前記対象物に接触させる際、前記作業部の一点を前記水平面に平行な方向に移動させ、前記対象物と接触した位置の前記平行な方向の座標値を前記基準点の前記平行な方向の座標値と定める前記請求項９に記載のロボット制御装置。
【請求項１１】
前記制御部は、前記定めた基準点からの相対位置を用いてロボットの動作を制御する請求項７から１０のいずれか１項に記載のロボット制御装置。
【請求項１２】
作業部を備えるロボットと、ロボット制御装置とを備えるロボットシステムであって、
前記ロボット制御装置は、
対象物を含む画像を取得する画像取得部と、
キャリブレーションの誤差、前記ロボットの設置の誤差、前記ロボットの剛性に起因する誤差、前記ロボットが対象物を把持した位置の誤差、撮像に関する誤差、及び作業環境に関する誤差の少なくとも１つに基づいて、ビジュアルサーボを開始する制御部と、
を備えるロボットシステム。
【請求項１３】
作業部を備えるロボットと、ロボット制御装置とを備えるロボットシステムであって、
前記ロボット制御装置は、
対象物を含む画像を取得する画像取得部と、
前記作業部の一点と前記対象物との間の距離が２ｍｍ以上のとき、ビジュアルサーボを開始する制御部と、
を備えるロボットシステム。
【請求項１４】
作業部を備えるロボットと、ロボット制御装置とを備えるロボットシステムであって、
前記ロボット制御装置は、
力を検出する力検出器を設けられた前記作業部の一点を対象物に接触させ、前記対象物と接触した位置を前記作業部の一点の基準点と定める制御部と、
を備えるロボットシステム。
【請求項１５】
作業部を備えるロボットと、ロボット制御装置とを備えるロボットシステムであって、
前記ロボット制御装置は、
力を検出する力検出器を設けられた前記作業部の一点を１ｍｍ以下の平面粗さを有する対象物に接触させ、前記対象物と接触した位置を前記作業部の一点の基準点と定める制御部と、
を備えるロボットシステム。
【請求項１６】
作業部と、
対象物を含む画像を取得する画像取得部と、
キャリブレーションの誤差、設置の誤差、剛性に起因する誤差、対象物を把持した位置の誤差、撮像に関する誤差、及び作業環境に関する誤差の少なくとも１つに基づいて、ビジュアルサーボを開始する制御部と、
を備えるロボット。
【請求項１７】
作業部と、
対象物を含む画像を取得する画像取得部と、
前記作業部の一点と前記対象物との間の距離が２ｍｍ以上のとき、ビジュアルサーボを開始する制御部と、
を備えるロボット。
【請求項１８】
作業部と、
前記作業部に作用する力を検出する力検出部と、
前記作業部の一点を対象物に接触させ、前記対象物と接触した位置を前記作業部の一点の基準点と定める制御部と、
を備えるロボット。
【請求項１９】
作業部と、
前記作業部に作用する力を検出する力検出部と、
前記作業部の一点を１ｍｍ以下の平面粗さを有する対象物に接触させ、前記対象物と接触した位置を前記作業部の一点の基準点と定める制御部と、
を備えるロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御装置、ロボットシステム、及びロボットに関する。
【背景技術】
【０００２】
製造等の作業現場では、製品の組み立てや検査等の作業に多軸ロボットが用いられ、人手で行っていた作業の自動化が図られてきた。ロボットを構成するハンド等の構成部を動作させる際、その位置及び姿勢には作業に応じた精度が求められる。そこで、作業環境において予めキャリブレーション（ｃａｌｉｂｒａｔｉｏｎ、校正ともいう）を行って基準点の位置を取得しておく。従来、キャリブレーションは、主に人手で厳密に行われていた。例えば、０．０２ｍｍの精度を確保するために、キャリブレーションだけで数時間から１日以上費やされることもあった。
ここで、キャリブレーションを厳密に行った上で、特許文献１、特許文献２に記載されているような作業が行われていた。
【０００３】
例えば、特許文献１には、高速、高精度、かつ制御系として安定に、マニピュレーターを対象物まで移動させる情報処理方法について記載されている。この方法では、対象物が検知されていない場合、対象物の位置に基づいてあらかじめ設定された目標位置までの経路に沿って、マニピュレーターを移動させるティーチングプレイバック制御（位置制御）を実行し、対象物が検知された場合、目標位置よりも対象物に近い位置を新たな目標位置として、新たな経路を設定して、移動制御を切り替えるための切替条件が満たされるまでの間、新たな経路に沿ってマニピュレーターを移動させるティーチングプレイバック制御を実行する。切替条件が満たされた場合、視覚サーボ制御（ビジュアルサーボ）を実行する。
【０００４】
また、例えば、特許文献２には探索動作中のワークの引っかかりを防止し、挿入位置の縁に凹凸部があってもワークを対象物上の挿入位置へ挿入することができる組み立て作業ロボットの制御方法について記載されている。特許文献２に記載の制御方法は、ロボットが把持したワークを対象物に押し当てた状態で対象物上を移動させ、対象物に設けられた挿入位置を探索し、ワークを挿入位置へ挿入する組み立て作業ロボットの制御方法において、挿入位置を探索する際に、探索進行方向のワーク端を持上げ、ワークを対象物に対して予め設定された傾斜角で傾斜させる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−９３０５５号公報
【特許文献２】特開２０１０−１３７２９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、キャリブレーションが行われていない場合や、行われていたとしても不十分な場合には、特許文献１、２に記載の方法では、ロボットが設置された位置、姿勢、その他の要因により精度が確保されない。そのため、対象物を把持するハンドが意図せずに対象物に接触することや、対象物やハンド自体が破損するおそれがあった。
【０００７】
そこで、本発明は、上記問題に鑑みてなされたものであり、キャリブレーションに係る負担を軽減しても対象物への意図しない接触や、対象物やハンドが破損するおそれを低減することができるロボット制御装置、ロボットシステム、及びロボットを提供することを課題とする。
【課題を解決するための手段】
【０００８】
（１）本発明の一態様は、対象物を含む画像を取得する画像取得部と、キャリブレーションの誤差、ロボットの設置の誤差、前記ロボットの剛性に起因する誤差、前記ロボットが対象物を把持した位置の誤差、撮像に関する誤差、及び作業環境に関する誤差の少なくとも１つに基づいて、ビジュアルサーボを開始する制御部と、を備えるロボット制御装置である。
この構成によれば、誤差に応じてビジュアルサーボ制御を開始するタイミングが定められるので、キャリブレーションに係る負担を軽減しても対象物への意図しない接触や、対象物やハンドが破損するおそれを低減することができる。
【０００９】
（２）本発明の他の態様は、上記のロボット制御装置において、前記作業環境は、前記対象物の明るさを示す照度である。
この構成によれば、対象物の照度に応じて、対象物への意図しない接触や、対象物やハンドが破損するおそれを低減することができる。
【００１０】
（３）本発明の他の態様は、対象物を含む画像を取得する画像取得部と、ロボットの作業部の端点と前記対象物との間の距離が２ｍｍ以上のとき、ビジュアルサーボを開始する制御部と、を備えるロボット制御装置である。
この構成によれば、誤差が２ｍｍ生じても対象物との距離が２ｍｍ以上のときにビジュアルサーボ制御が開始されるので、対象物への意図しない衝突や、対象物やハンドを破損するおそれを低減することができる。
【００１１】
（４）本発明の他の態様は、上記のロボット制御装置において、前記制御部は、前記距離が２ｍｍから３００ｍｍまでのとき、前記ビジュアルサーボを開始する。
この構成によれば、対象物の誤認識を回避することによる制御の失敗を防止し、制御対象のロボットの作業速度を確保することができる。
【００１２】
（５）本発明の他の態様は、上記のロボット制御装置において、前記ビジュアルサーボは、前記ロボットが第１の姿勢から前記第１の姿勢とは異なる第２の姿勢へと移る間に、前記画像取得部に前記対象物を複数回撮像させる制御である。
この構成によれば、対象物の位置や姿勢の時間変化を考慮して目標位置に移動させることができる。
【００１３】
（６）本発明の他の態様は、上記のロボット制御装置において、力を検出する力検出部が設けられた作業部の一点を対象物に接触させ、前記対象物と接触した位置を前記作業部の一点の基準点と定める制御部と、を備えるロボット制御装置である。
この構成によれば、対象物とロボットの作業部の端点とが接触した位置を作業部の位置や姿勢を制御する際の基準点として人手に頼らずに定められる。そのため、キャリブレーションに係る作業を効率化することができる。
【００１４】
（７）本発明の他の態様は、力を検出する力検出部が設けられた作業部の一点を１ｍｍ以下の平面粗さを有する対象物に接触させ、前記対象物と接触した位置を前記作業部の一点の基準点と定める制御部と、を備えるロボット制御装置である。
この構成によれば、対象物とロボットの作業部の端点とが接触した位置を作業部の位置や姿勢を制御する際の基準点として人手に頼らずに定められる。そのため、キャリブレーションに係る作業を効率化することができる。また、平面粗さを１ｍｍ以下とすることで、基準点を２ｍｍ以内の精度で取得することができる。
【００１５】
（８）本発明の他の態様は、上記のロボット制御装置であって、前記作業部の一点は、前記力検出部よりも前記作業部の先端に位置している。
この構成によれば、力検出部は、作業部が対象物に接触したときに作用する力が直接自部に作用しないため、作用部の一点に接触した力を有効に検出することができる。
【００１６】
（９）本発明の他の態様は、上記のロボット制御装置であって、前記制御部は、前記作業部の一点を前記対象物に接触させる際、前記作業部の一点を水平面に垂直な方向に移動させ、前記対象物と接触した位置の前記垂直な方向の座標値を前記基準点の前記垂直な方向の座標値と定める。
この構成によれば、基準点からの水平面に垂直な方向への基準点の座標値を人手に頼らずに定められるのでキャリブレーションに係る作業を効率化することができる。
【００１７】
（１０）本発明の他の態様は、上記のロボット制御装置であって、前記制御部は、前記作業部の一点を前記対象物に接触させる際、前記作業部の一点を前記水平面に平行な方向に移動させ、前記対象物と接触した位置の前記平行な方向の座標値を前記基準点の前記平行な方向の座標値と定める。
この構成によれば、基準点からの水平面に平行な方向への基準点の座標値を人手に頼らずに定められるのでキャリブレーションに係る作業を効率化することができる。
【００１８】
（１１）本発明の他の態様は、上記のロボット制御装置であって、前記制御部は、前記定めた基準点からの相対位置を用いてロボットの動作を制御する。
この構成によれば、その基準点からの相対位置によりロボットの作業部を制御することで作業環境等による誤差を低減又は解消することができる。
【００１９】
（１２）本発明の他の態様は、作業部を備えるロボットと、ロボット制御装置とを備えるロボットシステムであって、前記ロボット制御装置は、対象物を含む画像を取得する画像取得部と、キャリブレーションの誤差、前記ロボットの設置の誤差、前記ロボットの剛性に起因する誤差、前記ロボットが対象物を把持した位置の誤差、撮像に関する誤差、及び作業環境に関する誤差の少なくとも１つに基づいて、ビジュアルサーボを開始する制御部と、を備えるロボットシステムである。
この構成によれば、誤差に応じてビジュアルサーボ制御を開始するタイミングが定められるので、キャリブレーションに係る負担を軽減しても対象物への意図しない接触や、対象物やハンドが破損するおそれを低減することができる。
【００２０】
（１３）本発明の他の態様は、作業部を備えるロボットと、ロボット制御装置とを備えるロボットシステムであって、前記ロボット制御装置は、対象物を含む画像を取得する画像取得部と、前記作業部の一点と前記対象物との間の距離が２ｍｍ以上のとき、ビジュアルサーボを開始する制御部とを備えるロボットシステムである。
この構成によれば、誤差が２ｍｍ生じても対象物との距離が２ｍｍ以上のときにビジュアルサーボ制御が開始されるので、対象物への意図しない衝突や、対象物やハンドを破損するおそれを低減することができる。
【００２１】
（１４）本発明の他の態様は、作業部を備えるロボットと、ロボット制御装置とを備えるロボットシステムであって、前記ロボット制御装置は、力を検出する力検出器を設けられた前記作業部の一点を対象物に接触させ、前記対象物と接触した位置を前記作業部の一点の基準点と定める制御部と、を備えるロボットシステムである。
この構成によれば、対象物とロボットの作業部の端点とが接触した位置を作業部の位置や姿勢を制御する際の基準点として人手に頼らずに定められる。そのため、キャリブレーションに係る作業を効率化することができる。
【００２２】
（１５）本発明の他の態様は、作業部を備えるロボットと、ロボット制御装置とを備えるロボットシステムであって、前記ロボット制御装置は、力を検出する力検出器を設けられた前記作業部の一点を１ｍｍ以下の平面粗さを有する対象物に接触させ、前記対象物と接触した位置を前記作業部の一点の基準点と定める制御部と、を備えるロボットシステムである。
この構成によれば、対象物とロボットの作業部の端点とが接触した位置を作業部の位置や姿勢を制御する際の基準点として人手に頼らずに定められる。そのため、キャリブレーションに係る作業を効率化することができる。また、平面粗さを１ｍｍ以下とすることで、基準点を２ｍｍ以内の精度で取得することができる。
【００２３】
（１６）本発明の他の態様は、作業部と、対象物を含む画像を取得する画像取得部と、キャリブレーションの誤差、設置の誤差、剛性に起因する誤差、対象物を把持した位置の誤差、撮像に関する誤差、及び作業環境に関する誤差の少なくとも１つに基づいて、ビジュアルサーボを開始する制御部と、を備えるロボットである。
この構成によれば、誤差に応じてビジュアルサーボ制御を開始するタイミングが定められるので、キャリブレーションに係る負担を軽減しても対象物への意図しない接触や、対象物やハンドが破損するおそれを低減することができる。
【００２４】
（１７）本発明の他の態様は作業部と、対象物を含む画像を取得する画像取得部と、前記作業部の一点と前記対象物との間の距離が２ｍｍ以上のとき、ビジュアルサーボを開始する制御部と、を備えるロボットである。
この構成によれば、誤差が２ｍｍ生じてもビジュアルサーボ制御を開始するタイミングが定められるので、対象物への意図しない衝突や、対象物やハンドを破損するおそれを低減することができる。
【００２５】
（１８）本発明の他の態様は、作業部と、前記作業部に作用する力を検出する力検出部と、前記作業部の一点を対象物に接触させ、前記対象物と接触した位置を前記作業部の一点の基準点と定める制御部と、を備えるロボットである。
この構成によれば、対象物とロボットの作業部の端点とが接触した位置を作業部の位置や姿勢を制御する際の基準点として人手に頼らずに定められる。そのため、キャリブレーションに係る作業を効率化することができる。
【００２６】
（１９）本発明の他の態様は、作業部と、前記作業部に作用する力を検出する力検出部と、前記作業部の一点を１ｍｍ以下の平面粗さを有する対象物に接触させ、前記対象物と接触した位置を前記作業部の一点の基準点と定める制御部と、を備えるロボットである。
この構成によれば、対象物とロボットの作業部の端点とが接触した位置を作業部の位置や姿勢を制御する際の基準点として人手に頼らずに定められる。そのため、キャリブレーションに係る作業を効率化することができる。また、平面粗さを１ｍｍ以下とすることで、基準点を２ｍｍ以内の精度で取得することができる。
【図面の簡単な説明】
【００２７】
【図１】本実施形態に係るロボットシステムの概略図である。
【図２】作業環境の例を示す概略図である。
【図３】本実施形態に係るロボットシステムの機能構成を示すブロック図である。
【図４】本実施形態に係るロボットシステムにおける制御の流れの一例を示すブロック図である。
【図５】制御方式をビジュアルサーボ制御に切り替える条件の一例を示す表である。
【図６】本実施形態に係るキャリブレーション処理で用いられる対象物の平面粗さと位置誤差との大きさの関係の一例を示す表である。
【図７】本実施形態に係るロボット制御処理を示すフローチャートである。
【図８】本実施形態に係るキャリブレーション処理におけるハンドの動作の一例を示す図である。
【図９】本実施形態に係るキャリブレーション処理におけるハンドの動作の他の例を示す図である。
【図１０】本実施形態に係るキャリブレーション処理におけるハンドの動作のさらに他の例を示す図である。
【図１１】簡易キャリブレーションと精密キャリブレーションの比較例を示す。
【図１２】本実施形態に係るロボット制御装置の機能構成の他の例を示す図である。
【発明を実施するための形態】
【００２８】
以下、本発明の実施形態について、図面を参照しながら説明する。
図１は、本実施形態に係るロボットシステム１の概略図である。
ロボットシステム１は、ロボット制御装置１０と、ロボット２０と、１個又は複数（この例では、２個）の撮像装置３０とを備える。ロボット制御装置１０は、ロボット２０及び撮像装置３０と互いに通信することができるように接続される。
【００２９】
ロボット制御装置１０は、ロボット２０の動作を制御する。ロボット制御装置１０は、例えば、ロボット２０の作業対象となる対象物を含む画像を示す画像データを撮像装置３０から取得し、取得した画像に基づくビジュアルサーボを開始して対象物の位置を目標位置に近づける制御を行う。ビジュアルサーボを開始する条件は、キャリブレーションの誤差、ロボット２０の設置の誤差、ロボット２０の剛性に起因する誤差、ロボット２０が対象物を把持した位置の誤差、撮像に関する誤差、及び作業環境に関する誤差の少なくとも１つに基づいて予め定めておくことができる。例えば、ロボット２０の作業部２１（後述）の一点と対象物との間の相対距離が２ｍｍ又は２ｍｍより大きいときである。ビジュアルサーボとは、目標物との相対的な位置の変化を視覚情報として計測し、計測した視覚情報をフィードバック情報として用いることによって目標物を追跡する制御手法である。
【００３０】
ビジュアルサーボでは、撮像装置３０で複数回撮像された画像データのそれぞれが視覚情報として用いられる。例えば、撮像装置３０において予め定めた時間間隔（例えば、３０ｍｓ）で撮像された画像データが用いられる。つまり、ビジュアルサーボとは、より具体的には、現在撮像された対象物を含む現在画像が示す対象物の位置が、目標画像が示す対象物の位置に近づくようにロボット２０の動作を制御することである。目標画像とは、目標位置に配置された対象物を目標物として含む画像である。言い換えれば、ビジュアルサーボとは、画像取得部が複数回取得した画像を用いて対象物を目標位置へ移動させる制御である。また、ビジュアルサーボは、ロボットが第１の姿勢から前記第１の姿勢とは異なる第２の姿勢へと移る間に、画像取得部（例えば、撮像装置３０、画像取得部１４０（後述））に対象物を複数回撮像させる制御を含んでもよい。
【００３１】
また、ロボット制御装置１０は、ロボット２０の作業部２１に作用する力を検出し、検出した力に基づいて作業部２１の一点をロボット２０の作業対象となる対象物又はその対象物から予め定めた範囲内にある物体のいずれかに接触するまで接近させる（度当たり）。そして、ロボット制御装置１０は、作業部２１の一点とその物体とが接触した点を基準点として定める。その後、ロボット制御装置１０は、基準点からの相対位置を用いてロボット２０、具体的には作業部２１の位置や姿勢を制御する。作業部２１の一点に接触する対象物又はその対象物から予め定めた範囲内にある物体のいずれかは、その表面が平滑な物体、例えば、１ｍｍ又は１ｍｍよりも小さい平面粗さを有する物体である。ロボット制御装置１０の構成については、後述する。
【００３２】
ロボット２０は、ロボット制御装置１０からの制御信号に従って動作し、作業を行う。ロボット２０の作業内容は、特に限定されないが、例えば作業台Ｔ上で作業の対象となる対象物Ｗ１を対象物Ｗ２に空けられた穴Ｈに嵌め込む作業が該当する。対象物は、ワークとも呼ばれる。
【００３３】
ロボット２０は、１もしくは複数（この例では、２本）のアーム２２と、アーム２２の先端部に設けられたハンド２６と、アーム２２の手首部分に設けられた力覚センサー２５と、を備える。アーム２２の手首部分とはアーム２２の先端部とハンド２６との間の部分である。アーム２２は、１もしくは複数（この例では、左右各６個）のジョイント２３及び１もしくは複数（この例では、左右各５個）のリンク２４を含んで構成される。
【００３４】
力覚センサー２５は、例えば、ハンド２６に作用する力や、モーメントを検出する。力覚センサー２５は、検出した力やモーメントを示すセンサー値をロボット制御装置１０に出力する。センサー値は、例えば、ロボット制御装置１０においてロボット２０のインピーダンス制御に用いられる。力覚センサー２５は、例えば、６軸力覚センサーである。６軸力覚センサーは、並進３軸方向の力成分と、回転３軸まわりのモーメント成分との６成分を同時に検出することができるセンサーである。並進３軸とは、例えば、３次元直交座標系を形成する互いに直交する３つの座標軸（Ｘ軸、Ｙ軸、Ｚ軸）である。回転３軸とは、例えば、その３つの座標軸のそれぞれである。力覚センサー２５が検出する成分の個数は、６成分に限られず、例えば、３成分（３軸力覚センサー）であってもよい。なお、力覚センサー２５は、力検出部２５とも呼ばれる。
【００３５】
ハンド２６は、例えば、少なくとも２個の指状の構成部を備える。指状の構成部を、指と呼ぶ。ハンド２６は、指を用いて対象物（例えば、Ｗ１、Ｗ２）を把持することができる。ハンド２６は、アームの２２の先端部に対して着脱可能であってもよい。ハンド２６は、エンドエフェクターの一種ということができる。つまり、ロボット２０は、ハンド２６に代え、又はハンド２６とともにハンド２６以外の種類のエンドエフェクターを備えてもよい。エンドエフェクターとは、対象物を把持したり、持ち上げたり、吊り上げたり、吸着したり、加工する、等の操作を行う部材である。エンドエフェクターは、ハンドフック、吸盤、等、様々な形態をとることができる。また、エンドエフェクターは、１本のアーム２２について各１個に限らず、２個、又は２個よりも多く備えられてもよい。
【００３６】
アーム２２、力覚センサー２５、及びハンド２６を含むユニットは、作業部２１を形成し、マニピュレーターとも呼ばれる。作業部２１は、ロボット２０が命令された所定の作業を行うために動作する部位である。図１に示す例では、ロボット２０は、２本の作業部２１を備える。作業部２１は、ジョイント２３やハンド２６等の各部を動作させるための駆動部、例えば、アクチュエーター（図示せず）を備える。アクチュエーターは、例えば、サーボモーターや、エンコーダー、等を備える、エンコーダーは、自部で検出した変位をエンコード（符号化）してエンコーダー値に変換し、変換したエンコーダー値をロボット制御装置に出力する。エンコーダー値は、ロボット制御装置１０においてロボット２０に対するフィードバック制御、等に用いられる。なお、作業部２１は、所定の作業を行うために動作する部位であれば、マニピュレーターとして構成されていなくてもよく、例えば、アーム２２、ハンド２６、それぞれの単体もしくは力覚センサー２５との組み合わせ、であってもよい。
【００３７】
ロボット２０は、ロボット制御装置１０から入力された制御命令に従って、各ジョイント２３を連動して駆動する。これにより、ロボット制御装置１０は、アーム２２の先端部等に予め設定された注目位置を所定の可動範囲内で所望の位置に移動させることや、所望の方向に向けることができる。この注目位置を、端点と呼ぶ。端点は、エンドポイントとも呼ばれ、作業部２１において力検出部２５よりも先端に設置されている。ロボット制御装置１０は、例えば、端点を上述した作業部２１の一点として用いることによって作業部２１を構成するハンド２６やアーム２２を駆動することで、対象物等を把持することや、解放することができる。
【００３８】
なお、作業部２１の一点は、アーム２２の先端部に限られず、例えば、ハンド２６等のエンドエフェクターの先端部であってもよい。また、上述した作業部２１の一点は、作業部２１の制御の手掛かりとして用いることができれば、端点に限らず、例えば、ハンド２６を形成する指部が対象物Ｗ２１を把持したときに接触する部分（腹）、複数の指部のうちのいずれかの指部の先端であってもよい。但し、以下では、作業部２１の「一点」が主に「端点」である場合を例にとる。
【００３９】
作業部２１の端点の位置の誤差は、ロボット２０の剛性にも起因する。例えば、作業部２１を２本備えた双腕のロボット２０は、多機能の作業を行うために用いられ、工場その他の事業所で様々な作業を実行または補助するために用いられる。人間やその他の物品と近接するので、接触又は衝突してもその損害を低減するため、剛性が比較的低い部材（例えば、径の小さいステンレス材）で筐体や躯体が形成される。そのため、ロボット２０に重力や外力が加えられると「たわみ」が大きくなり、精度が劣化する原因になる。つまり、ロボット２０の剛性が低いほど作業部２１に作用した重力や外力に応じて姿勢が変化しやすくなり、誤差が増大する。
【００４０】
作業部２１の端点の位置の誤差は、ロボット２０の設置にも起因する。ここで、ロボット２０は、その底面に複数のキャスター２７と固定脚（アジャストフット）２８を有する。キャスター２７と固定脚２８は、ロボット２０の底面に配置された台車（図示せず）に固定されている。キャスター２７と固定脚２８は、台車の下部に昇降可能に支持された可動フレーム（図示せず）に取り付けられている。可動フレームに取り付けられた２個のペダル（図示せず）の一方が踏み下ろされることでキャスター２７が固定脚２８よりも下がる。このとき、ロボット２０に外力が加えられることにより、キャスター２７を形成する車輪が回転して移動可能になる。また、２個のペダルの他方が踏み下ろされることで固定脚２８がキャスター２７よりも下がる。このとき、ロボット２０の位置が簡易に固定されるが、作業部２１が動作することにより位置のずれが生じる。そのため、ボルト等で緊密に固定する場合よりも位置の誤差が大きくなる傾向がある。
【００４１】
従って、このような構成では、作業環境の異なる場所に移動して利用することが容易である反面、新たに設置誤差が生じる原因になるため、キャリブレーションを頻繁に行う必要が生じる。
本実施形態では、キャリブレーションに係る負担を軽減することで、キャリブレーションの実行を促す。また、後述するように、ロボット２０の設置の誤差、ロボット２０の剛性に起因する誤差に応じて定めた条件でビジュアルサーボを開始する。これにより、精度を確保することで対象物への意図しない接触や、対象物やハンドが破損するおそれを低減することができる。
【００４２】
撮像装置３０は、ロボット２０の作業領域を表す画像を撮像し、撮像した画像を示す画像データを生成する。ロボット２０の作業領域は、図１に示す例では、作業台Ｔ上において作業部２１により作業可能な範囲である３次元空間であり、作業部２１の一点を含む領域である。作業台Ｔ上には、それぞれ異なる位置に配置された２台の撮像装置３０が、対象物Ｗ２に空けられた孔Ｈに向けられている。撮像装置３０は、例えば、可視光カメラ、赤外線カメラ、等である。撮像装置３０は、生成した画像データをロボット制御装置１０に出力する。
【００４３】
上述したロボットシステム１の構成は、本実施形態の概要を説明するための一例に過ぎない。即ち、上述したロボットシステム１の構成は、上述した構成に限られず、その他の構成を有していてもよい。
例えば、図１は、ジョイント２３の数（軸数）が左右各６個（６軸）である例を示すが、ジョイント２３の数は各６個よりも少なくてもよいし、各６個よりも多くてもよい。リンク２４の数は、ジョイント２３の数に応じて定められる。また、ジョイント２３、リンク２４、ハンド２６、等の部材の形状、大きさ、配置、構造を適宜変更してもよい。
【００４４】
また、撮像装置３０の設置位置は、図１に示すように作業台Ｔ上に限られず、天井や壁面上であってもよい。また、これらの撮像装置３０に代えて、又はこれに加えて、アーム２２の先端部、胴体部、頭部、等に撮像装置３０を設けてもよい。また、撮像装置３０は、ロボット制御装置１０に代えてロボット２０に接続されてもよい。その場合には、撮像装置３０が生成した画像データは、ロボット２０を介してロボット制御装置１０に入力される。また、ロボット制御装置１０は、ロボット２０に内蔵してロボット２０に一体化されてもよい。
【００４５】
次に、ロボット２０が作業を行う作業環境の例について説明する。
図２は、作業環境の例を示す概略図である。
図２は、３通りの作業環境の例を示す。３個の作業台Ｔ１−Ｔ３がそれぞれ異なる位置に設置され、作業台Ｔ１等には各２個の対象物Ｗ１１、Ｗ１２等がそれぞれ異なる位置関係で配置されている。これらの作業環境は、それぞれ嵌め合い作業を行うための作業環境である。嵌め合い作業とは、対象物Ｗ１１を対象物Ｗ１２に空けられた孔Ｈに差し込む作業である。キャリブレーションが行われていない場合や、行われていたとしても精度が不十分な場合には、孔Ｈから離れた位置に搬送され、作業に失敗してしまうばかりではなく、対象物Ｗ１１を破損することがある。
【００４６】
作業環境により制御誤差の主な要因やその程度が異なるため、ロボット２０が作業環境を変更して新たな作業を開始する前にキャリブレーションを行うことが重要である。作業環境の要素には、例えば、照度、対象物の反射率、対象物間の位置関係がある。図２に示す例では、作業台Ｔ２等の近傍での照明ＬＴ２等の設置の有無、光量が照度に影響する。また、対象物Ｗ１１、Ｗ２１、Ｗ３１の表面に付された着色、凹凸等が反射率に影響する。ロボット２０の制御にビジュアルサーボが用いられる場合には、対象物を含む作業領域を示す画像が用いられるため、対象物間の位置関係の他、照度、対象物の反射率が誤差要因となる。
【００４７】
図２に示す例は、１つの室内で嵌め合い作業を行う場合を示すが、作業の種類や場所によって望ましい照度が大きく異なる。例えば、ＪＩＳ（日本工業規格、Ｊａｐａｎｅｓｅ  Ｉｎｄｕｓｔｒｉａｌ  Ｓｔａｎｄａｒｄｓ）Ｚ９１１１０で規定された事務所の照度基準によれば、例えば、細かい視作業を行う事務室、設計室、製図室等では７５０−１５００（ｌｕｘ）、それ以外の事務室、役員室、会議室、印刷室、電子計算機室、制御室、診療室等では３００−７５０（ｌｕｘ）、倉庫、電気室、機械室、雑作業室等では１５０−３００（ｌｕｘ）である。
また、撮像装置３０の解像度、設置位置、方向、撮像間隔（フレーム間隔）等は、対象物の認識精度に影響し、撮像に関する誤差要因になる。
【００４８】
なお、対象物Ｗ１１等を把持する作業部２１の端点の位置や姿勢には誤差が生じ、その誤差の大きさは、対象物Ｗ１１等を把持する都度、異なりうる。そのため、同じ作業環境であっても作業部２１が対象物Ｗ１１等を把持した位置にばらつきが生じる。ビジュアルサーボでは、このばらついた位置に配置された端点を示す画像に基づいて作業部２１の動作を制御することを鑑みると、作業部２１が対象物Ｗ１１等を把持した位置の誤差も、これに基づいて制御される作業部２１の端点の位置の誤差要因になる。
【００４９】
図２に示すように、ロボット２０に作業台Ｔ１−Ｔ３のいずれか（例えば、作業台Ｔ２）の正面に配置された状態で作業を行わせることを考えると、移動による設置誤差が発生する。そのため、各作業環境で作業を行わせる前に予めキャリブレーションを行うことで誤差要因を解消又は低減する必要がある。特に、多品種少量生産を行う際には、品種に応じて作業環境が異なりうるため、それぞれの作業の前にキャリブレーションを短時間で行うことが重要である。本実施形態では、以下に説明するように従来よりも格段に短時間でキャリブレーションを行うことができる。
【００５０】
図３は、本実施形態に係るロボットシステム１の機能構成を示すブロック図である。
ロボット２０は、駆動制御部２００を備える。駆動制御部２００は、ロボット制御装置１０から入力された制御信号と、アクチュエーターで取得されたエンコーダー値及び力覚センサー２５で取得されたセンサー値、等に基づいて、作業部２１の一点、例えば、端点の位置が制御信号で指示される目標位置となるように、アクチュエーターを駆動させる。なお、端点の現在位置は、例えば、アクチュエーターにおけるエンコーダー値等から求めることができる。
【００５１】
ロボット制御装置１０は、位置制御部１００と、ビジュアルサーボ部１１０と、力制御部１２０と、動作制御部１３０と、画像取得部１４０とを備える。
位置制御部１００は、経路取得部１０２と、第１軌道生成部１０４とを備える。ビジュアルサーボ部１１０は、画像処理部１１２と、第２軌道生成部１１４とを備える。力制御部１２０は、センサー情報取得部１２２と、第３軌道生成部１２４とを備える。
【００５２】
位置制御部１００は、予め設定された所定の経路に沿って作業部２１を移動させる位置制御を実行する。
経路取得部１０２は、経路に関する経路情報を取得する。経路とは、予め教示により設定された１個又は複数の教示位置を、予め設定された順序で結ぶことで形成された過程である。経路情報、例えば、各教示位置の座標や経路内の教示位置の順序を示す情報は、メモリー１２（後述）に保持されている。メモリー１２に保持される経路情報は、入力装置１５等を介して入力されてもよい。なお、経路情報には、作業部２１の一点として、例えば端点の最終的な位置、すなわち目標位置に関する情報も含まれる。
【００５３】
第１軌道生成部１０４は、駆動制御部２００から取得された現在位置と、経路取得部１０２により取得された経路に関する情報に基づいて、次の教示位置、すなわち、端点の軌道を設定する。
また、第１軌道生成部１０４は、設定された端点の軌道に基づいて次に移動させるアーム２２の位置、すなわちジョイント２３に設けられた各アクチュエーターの目標角度を決定する。また、第１軌道生成部１０４は、目標角度だけアーム２２を移動させるような指令値を生成し、動作制御部１３０へ出力する。なお、第１軌道生成部１０４が行う処理は、一般的な内容であるため、詳細な説明を省略する。
【００５４】
ビジュアルサーボ部１１０は、撮像装置３０が撮像した画像を、画像取得部１４０を介して取得する。また、ビジュアルサーボ部１１０は、取得した画像に基づいて、ビジュアルサーボを開始して、アーム２２を移動させる。なお、本実施形態では、ビジュアルサーボとして、例えば、視差が生じる２枚の画像を利用して画像を立体として認識させるステレオグラム等の方法を用いて計算した対象の３次元位置情報に基づいてロボットを制御する位置ベース法を採用する。なお、ビジュアルサーボとして、目標の画像から抽出した特徴量と現在の画像から抽出した特徴量とに基づいてロボットを制御する画像ベース法を採用してもよい。また、ビジュアルサーボとして、現在画像と目標画像についてパターンマッチングを行い、現在画像から目標画像が示す対象物と照合がとれた対象物を認識し、認識した対象物が表示されている位置や姿勢に基づいて、その対象物の位置や姿勢を特定してもよい。
【００５５】
画像処理部１１２は、画像取得部１４０から取得した画像データから端点を認識し、認識した端点を含む画像を抽出する。目標位置に存在する端点を含む目標画像は、予め取得しておきメモリー１２等の記憶部に格納しておけばよい。画像処理部１１２は、その時点で抽出された現在画像から端点の現在位置を認識し、目標画像から端点の目標位置を認識し、認識した現在位置及び目標位置を第２軌道生成部１１４に出力する。また、画像処理部１１２は、認識した現在位置から目標位置までの距離を計算し、計算した距離を動作制御部１３０に出力する。なお、画像処理部１１２が行う画像認識処理は、公知の処理を用いることができるため、詳細な説明を省略する。
【００５６】
第２軌道生成部１１４は、画像処理部１１２により認識された現在位置及び目標位置に基づいて、端点の軌道、即ち端点の移動量及び移動方向を設定する。
また、第２軌道生成部１１４は、設定した端点の移動量及び移動方向に基づいて、各ジョイント２３に設けられた各アクチュエーターの目標角度を決定する。さらに、第２軌道生成部１１４は、目標角度だけアーム２２を移動させるような指令値を生成し、動作制御部１３０へ出力する。なお、第２軌道生成部１１４が行う軌道の生成処理、目標角度の決定処理、指令値の生成処理等は、一般的な様々な技術を用いることができるため、詳細な説明を省略する。
【００５７】
力制御部１２０は、ロボット２０の力覚センサー２５からのセンサー情報（力情報やモーメント情報を示すセンサー値）に基づいて、力制御（力覚制御ともいう）を行う。本実施形態では、力制御としてインピーダンス制御を行う。インピーダンス制御は、ロボットの手先（ハンド２６等）に外から力を加えた場合に生じる機械的なインピーダンス（慣性、減衰係数、剛性）を、目的とする作業に適合した値に設定するための位置と力の制御手法である。具体的には、例えば、ロボット２０のエンドエフェクター部に質量と粘性係数と弾性要素が接続されるモデルにおいて、目標として設定した質量と粘性係数と弾性係数で物体に接触するようにする制御である。
【００５８】
なお、力制御を行うためには、ハンド２６等のエンドエフェクターに加わる力やモーメントを検出する必要があるが、エンドエフェクターに加わる力やモーメントを検出する方法は力覚センサーを用いるものに限られない。例えば、アーム２２の各軸トルク値からエンドエフェクターに及ぼす外力を推定することもできる。したがって、力制御を行うためには、直接または間接的にエンドエフェクターに加わる力を取得する手段を、アーム２２が有していればよい。
【００５９】
センサー情報取得部１２２は、ロボット２０の力覚センサー２５から出力されるセンサー情報（検出されたセンサー値など）を取得する。なお、センサー情報取得部１２２は、力検出部と呼ぶこともできる。
【００６０】
第３軌道生成部１２４は、インピーダンス制御により端点の移動方向及び移動量を決定する。また、第３軌道生成部１２４は、端点の移動方向及び移動量に基づいて、各ジョイント２３に設けられた各アクチュエーターの目標角度を決定する。また、第３軌道生成部１２４は、目標角度だけアーム２２を移動させるような指令値を生成し、動作制御部１３０へ出力する。なお、第３軌道生成部１２４が行う軌道の生成処理、目標角度の決定処理、指令値の生成処理等は、一般的な様々な技術を用いることができるため、詳細な説明を省略する。
【００６１】
なお、関節を持つロボット２０では、各関節の角度を決定すると、フォワードキネマティクス処理により端点の位置が一意に決定される。つまり、Ｎ関節ロボットではＮ個の関節角度により１つの目標位置を表現できることになるから、当該Ｎ個の関節角度の組を１つの目標関節角度とすれば、端点の軌道を目標関節角度の集合と考えることができる。よって、第１軌道生成部１０４、第２軌道生成部１１４及び第３軌道生成部１２４から出力される指令値は、位置に関する値（目標位置）であってもよいし、関節の角度に関する値（目標角度）であってもよい。
【００６２】
画像取得部１４０は、撮像装置３０が撮像した画像データを取得し、取得した画像データをビジュアルサーボ部１１０及び動作制御部１３０に出力する。
【００６３】
動作制御部（制御部）１３０は、第２軌道生成部１１４で計算された距離の大きさ及び力覚センサー２５から入力されたセンサー値に基づいて位置制御部１００から入力された指令値、ビジュアルサーボ部１１０から入力された指令値、又は力制御部１２０から入力された指令値のいずれかを選択する。動作制御部１３０は、選択した指令値に基づいて作業部２１を移動させる制御信号をロボット２０に出力する。
【００６４】
ここで、動作制御部１３０は、キャリブレーションの誤差、ロボット２０の設置の誤差、撮像に関する誤差、及び作業環境に関する誤差の少なくとも１つに基づいて、ビジュアルサーボ部１１０から入力された指令値を選択する。このとき、動作制御部１３０は、接点Ａ２と接点Ｂとの間を電気的に接続する。この指令値を選択する条件は、例えば、第２軌道生成部１１４で計算された距離、つまりロボット２０の作業部２１の端点と対象物との間の距離が第２の距離（例えば、２ｍｍ）以上、かつ、第１の距離（例えば、３００ｍｍ）以下のときである。即ち、対象物からの距離が第２の距離以上、かつ第１の距離以下である場合には、ビジュアルサーボがなされる。この対象物からの距離とは、対象物の表面上の１点と作業部２１の端点との間の距離のうちの最小となる距離（最短距離）である。
【００６５】
第２軌道生成部１１４で計算された距離が第１の距離よりも大きい場合には、動作制御部１３０は、位置制御部１００から入力された指令値を選択する。このとき、動作制御部１３０は、接点Ａ１と接点Ｂとの間を電気的に接続する。即ち、相対距離が第１の距離より大きい場合には、位置制御がなされる。
第２軌道生成部１１４で計算された距離が第２の距離よりも小さい場合には、動作制御部１３０は、力制御部１２０から入力された指令値を選択する。このとき、動作制御部１３０は、接点Ａ３と接点Ｂとの間を電気的に接続する。即ち、距離が第２の距離より小さい場合には、力制御がなされる。
【００６６】
但し、キャリブレーションを行う際、動作制御部１３０は、第２軌道生成部１１４で計算された距離が第２の距離に達した場合には、制御信号の出力を一時的に停止することで、作業部２１の動作を停止させる（寸止め）。その後、動作制御部１３０は、力制御部１２０から入力された指令値をロボット２０に出力することで、作業部２１、即ち端点の動作を再開する。ここで、動作制御部１３０は、ハンド２６を形成する２本の指の間隔が互いに最も開いた状態で所定の方向に所定の速度で再度移動させる。所定の速度は、端点と対象物もしくは他の物体が接触しても互いに損傷せず、制御信号の出力を停止することで端点の移動を即座に止めることができる程度に低い速度である。所定の方向は、ロボット座標系である３次元直交座標系の一つの方向、例えば、水平面に垂直な方向（Ｚ方向）である。
【００６７】
動作制御部１３０は、対象物（例えば、対象物Ｗ１１）又はその対象物から予め定めた範囲（例えば、作業範囲）内にある物体（例えば、対象物Ｗ２１）のいずれかに接触したか否かを判定する。動作制御部１３０は、例えば、力覚センサー２５から入力されたセンサー値の単位時間当たりの変化が予め定めたセンサー値の変化（例えば、５０ｇ重／ｓ）よりも急激であるとき接触したと判定する。
【００６８】
動作制御部１３０は、接触したと判定したとき、作業部２１の端点と対象物もしくは予め覚めた範囲内にある物体と接触した点を基準点として定め、定めた基準点を示す基準信号を第１軌道生成部１０４、第２軌道生成部１１４、第３軌道生成部１２４に出力する。ここで、第１軌道生成部１０４、第２軌道生成部１１４、第３軌道生成部１２４は、例えば、動作制御部１３０から入力された基準信号が示す基準点の所定の方向（例えば、Ｚ方向）の座標値と、作業部２１の端点のその方向の座標値が等しいものとしてリセットする。これにより、その方向の座標値を定める（位置決め）ことができ、基準点を基準とした作業部２１の端点の相対的な座標値を取得することができる。
【００６９】
なお、作業部２１の端点の停止、ロボット座標系での移動、接触、位置決めといった一連の処理ならびに動作（以下、キャリブレーション処理と呼ぶ）を、その他の方向（例えば、Ｘ方向、Ｙ方向）についても行うことで、それらの方向に係る相対的な座標値を取得することができる。
その後、動作制御部１３０は、基準点からの相対位置を用いてロボット２０の動作を制御する。ここで、動作制御部１３０は、所定の目標位置を基準点からの相対的な座標値に変換し、変換した座標値で指定された位置に作業部２１の端点を近づけるように作業部２１の位置及び姿勢を制御する。これにより、作業環境等の変化に伴う誤差を解消又は低減することができる。
【００７０】
また、ロボット座標系における各方向（例えば、Ｚ方向）へのキャリブレーション処理を、その方向に垂直な平面（例えば、ＸＹ平面）内で異なる座標について繰り返す（例えば、６回）ことで精度が向上させることができる。その方向の座標値が同一であっても、その方向に垂直な平面内で座標値が異なる場合には、作業部２１を形成するジョイント２３の角度、すなわちエンコーダー値が異なる可能性があるため、より多様な基準点が取得され、その基準点が制御に用いられるためである。
各方向へのキャリブレーション処理が行われた後、動作制御部１３０は、通常の作業、つまり目標位置に作業部２１の端点を近づける制御を行う。動作制御部１３０が行う処理の詳細は後述する。
【００７１】
次に、本実施形態に係るロボットシステム１における制御の流れの一例について説明する。
図４は、本実施形態に係るロボットシステム１における制御の流れの一例を示すブロック図である。
位置制御部１００において、位置制御により作業部２１の各ジョイント２３を目標角度に近づけるためのフィードバックループが回っている。予め設定された経路情報には、目標位置に関する情報が含まれる。第１軌道生成部１０４は、経路情報を取得すると、目標位置に関する情報と、駆動制御部２００により取得された現在位置とに基づいて軌道及び指令値（ここでは、目標角度）を生成する。
【００７２】
ビジュアルサーボ部１１０において、撮像装置３０で取得した現在画像を示す画像データを用いて現在位置を目標位置に近づけるためのビジュアルフィードバックループが回っている。第２軌道生成部１１４は、メモリー１２から目標位置に関する情報として目標画像を示す目標画像データを取得する。また、現在位置及び目標位置は、画像上における座標系（画像座標系）で表されているため、これをロボット２０における座標系（ロボット座標系）に変換する。また、第２軌道生成部１１４は、変換後の現在位置及び目標位置に基づいて、軌道及び指令値（ここでは、目標角度）を生成する。
【００７３】
力制御部１２０において、力覚センサー２５から入力されたセンサー値に基づいて、目標として設定したインピーダンス（目標インピーダンス）で、ロボット２０の作業部２１の端点を物体に接触させるためのフィードバックループが回っている。第３軌道生成部１２４は、入力されたセンサー値が、目標インピーダンスとなるように軌道及び指令値（ここでは、目標角度）を生成する。
【００７４】
動作制御部（制御部）１３０は、第２軌道生成部１１４で計算された距離の大きさ及び力覚センサー２５から入力されたセンサー値に基づいて位置制御部１００から入力された指令値、ビジュアルサーボ部１１０から入力された指令値、又は力制御部１２０から入力された指令値のいずれかを選択する。動作制御部１３０は、選択した指令値に基づいて作業部２１を移動させる制御信号をロボット２０に出力する。
なお、一般的に画像処理の負荷は高いため、ビジュアルサーボ部１１０が指令値を出力する間隔（例えば３０ミリ秒（ｍｓｅｃ）毎）は、位置制御部１００や力制御部１２０が指令値を出力する間隔（例えば、１ミリ秒（ｍｓｅｃ）毎）よりも長い。
【００７５】
駆動制御部２００には、ロボット制御装置１０から指令値（目標角度）が入力される。駆動制御部２００は、各ジョイント２３に設けられた各アクチュエーターのエンコーダー値等に基づいて現在角度を取得し、目標角度と現在角度の差分（偏差角度）を算出する。また、駆動制御部２００は、偏差角度に基づいてアーム２２の移動速度を算出し、作業部２１を算出した移動速度に応じた偏差角度だけ移動させる。
【００７６】
上述したように、動作制御部１３０は、作業部２１の位置を制御する制御方式をビジュアルサーボに切り替えるタイミングを、第１の距離、第２の距離といった閾値に基づいて制御する。これらの閾値は、作業部２１の端点と対象物との間の距離に応じて、（１）対象物への衝突する可能性の有無、（２）対象物を誤認識もしくは認識に失敗する可能性の有無、（３）作業部２１を動作させる速度の差異、に応じて定められる。
【００７７】
図５は、制御方式をビジュアルサーボに切り替える条件の一例を示す表である。
各行は、（１）対象物への衝突する可能性の有無（対象物への衝突）、（２）対象物を誤認識もしくは認識に失敗する可能性の有無（対象物の誤認識）、（３）作業部２１を動作させる速度（ロボットの作業速度）を示す。各列は、作業部２１の端点と対象物との距離（対象物からの距離）の区分を示す。
【００７８】
例えば、距離が２ｍｍ未満の場合には、（１）対象物へ衝突する可能性があるが（×）、（２）対象物を誤認識もしくは認識に失敗する可能性はなく（○）、（３）作業部２１を動作させる速度は十分確保できる（○）。距離が２ｍｍ以上、かつ３００ｍｍ以下の場合には、（１）対象物へ衝突する可能性はなく（○）、（２）対象物を誤認識もしくは認識に失敗する可能性はなく（○）、（３）作業部２１を動作させる速度は十分確保できる（○）。距離が３００ｍｍを越える場合には、（１）対象物へ衝突する可能性はないが（○）、（２）対象物を誤認識もしくは認識に失敗する可能性があり（×）、（３）作業部２１を動作させる速度が遅い（×）。
これにより、（１）、（２）、（３）の要因がいずれも問題にならない距離の範囲を画定する２ｍｍ、３００ｍｍが、それぞれ第１の距離、第２の距離として選ばれる。
【００７９】
また、第１の距離、第２の距離は、上述した誤差要因、即ち、ロボット２０の設置の誤差、ロボット２０の剛性に起因する誤差、作業部２１が対象物を把持した位置の誤差、撮像に関する誤差、作業環境に関する誤差のいずれか、または、それらの任意の組み合わせに応じて定めてもよい。これらの誤差要因は、（１）−（３）に影響するためである。
【００８０】
また、上述したキャリブレーション処理を行うことによってキャリブレーションされたロボット座標系の座標値の精度は、作業部２１の端点と接触させる物体の平面の凹凸に依存する。
図６は、本実施形態に係るキャリブレーション処理で用いられる対象物の平面粗さと位置誤差との大きさの関係の一例を示す表である。
ここで、対象物の平面粗さが１ｍｍ未満では、作業部２１の端点の位置誤差（ハンドの位置誤差）が小さく（○）、対象物の平面粗さが１ｍｍ以上では、位置誤差が大きい（×）。従って、作業部２１の端点の位置誤差が２ｍｍ以下となる精度を確保するためには、その物体の平面粗さを１ｍｍ以下とする。
【００８１】
次に、本実施形態に係るロボット制御処理について説明する。
図７は、本実施形態に係るロボット制御処理を示すフローチャートである。
この例では、動作開始時における目標位置と作業部２１の端点（開始位置）と間の距離が第１の距離よりも大きく、開始位置が目標位置から所定の座標軸の方向（例えば、Ｚ方向）にあり、目標位置が対象物（例えば、対象物Ｗ１２）の表面上の１点に設定されている場合を仮定している。
【００８２】
（ステップＳ１０１）動作制御部１３０は、位置制御を行う。ここで、動作制御部１３０は、位置制御部１００から入力された指令値を示す制御信号をロボット２０に出力する。その後、ステップＳ１０２に進む。
（ステップＳ１０２）動作制御部１３０は、対象物からの距離が第１の距離（例えば、３００ｍｍ）よりも小さいか否かを判定する。小さくないと判定した場合には（ステップＳ１０２  ＮＯ）、ステップＳ１０１を繰り返す。小さいと判定した場合には（ステップＳ１０２  ＹＥＳ）、ステップＳ１０３に進む。
【００８３】
（ステップＳ１０３）動作制御部１３０は、ビジュアルサーボ（制御）を行う。ここで、動作制御部１３０は、ビジュアルサーボ部１１０から入力された指令値を示す制御信号をロボット２０に出力する。その後、ステップＳ１０４に進む。
（ステップＳ１０４）動作制御部１３０は、対象物からの距離が第２の距離（例えば、２ｍｍ）よりも小さいか否かを判定する。小さくないと判定した場合には（ステップＳ１０４  ＮＯ）、ステップＳ１０３を繰り返す。小さいと判定した場合には（ステップＳ１０４  ＹＥＳ）、ステップＳ１０５に進む。
【００８４】
（ステップＳ１０５）動作制御部１３０は、作業部２１の端点の動作を一時的に停止（例えば、１秒）させる。その後、ステップＳ１０６に進む。
（ステップＳ１０６）動作制御部１３０は、力制御を行って再び作業部２１の端点を目標に近づける。ここで、動作制御部１３０は、力制御部１２０から入力された指令値を示す制御信号をロボット２０に出力する。その後、ステップＳ１０７に進む。
（ステップＳ１０７）動作制御部１３０は、作業部２１の端点が対象物の表面に接触したか否かを検出する。接触が検出された場合には（ステップＳ１０７  ＹＥＳ）、ステップＳ１０８に進む。接触が検出されない場合には（ステップＳ１０７  ＮＯ）、ステップＳ１０６に進む。
【００８５】
（ステップＳ１０８）動作制御部１３０は、作業部２１の端点の動作を一時的に停止させる。その後、ステップＳ１０９に進む。
（ステップＳ１０９）動作制御部１３０は、ステップＳ１０７で作業部２１の端点を動作させる方向の座標値のキャリブレーション（位置決め）を行う。ここで、動作制御部１３０は、例えば、対象物と接触した点の座標値を、その端点の基準点の座標値と定める。その後、ステップＳ１１０に進む。
【００８６】
（ステップＳ１１０）動作制御部１３０は、全ての座標軸方向について座標値のキャリブレーションを実行したか否かを判定する。実行済みと判定された場合には（ステップＳ１１０  ＹＥＳ）、図７に示す処理を終了する。その後、動作制御部１３０は、所望の作業（例えば、嵌め合い作業）をロボット２０に行わせる。全ての座標軸方向（３次元直交座標系の場合、Ｘ方向、Ｙ方向、Ｚ方向）について実行されていないと判定された場合には（ステップＳ１１０  ＮＯ）、ステップＳ１１１に進む。
（ステップＳ１１１）動作制御部１３０は、作業部２１の端点を動作させる座標軸方向を他の座標方向（例えば、Ｚ方向からＸ方向）に変更する。その後、ステップＳ１０９に進む。
【００８７】
次に、キャリブレーション処理におけるハンド２６の動作例について説明する。
図８は、本実施形態に係るキャリブレーション処理におけるハンド２６の動作の一例を示す図である。
図８において、上方、右方は、それぞれＺ方向、Ｘ方向を示す。破線で表されたハンド２６は、対象物Ｗ１２から第２の距離としてＬ２だけＺ方向に離れていることを示す（図７、ステップＳ１０４）。対象物Ｗ１２の表面は、ＸＹ平面上にある。実線で表されたハンド２６は、ハンド２６の端点（この例では、最先端）が対象物Ｗ１２に接触していることを示す（図７、ステップＳ１０７）。ハンド２６の直上に示した下向きの矢印は、ハンド２６を破線で示した位置から実線で示した位置に移動させることを示す。即ち、図８は、ハンド２６をＺ方向に移動させ、対象物Ｗ１２に接触した位置をもってＺ座標の基準点を定めることを示す（図７、ステップＳ１０９）。
【００８８】
図９は、本実施形態に係るキャリブレーション処理におけるハンド２６の動作の他の例を示す図である。
この例では、目標位置は対象物Ｗ１１の側面に設定され、ステップＳ１１１（図７）によりハンド２６をＸ方向に動作させてＸ座標の基準点を定める場合を示す。破線で表されたハンド２６は、長手方向がＺ方向を向くように配置された対象物Ｗ１１から第２の距離としてＬ２だけＸ方向に離れていることを示す。実線で表されたハンド２６は、ハンド２６の端点（この例では、側面）が対象物Ｗ１１に接触していることを示す。この位置において、ハンド２６の端点のＸ座標のキャリブレーションが行われる（図７、ステップＳ１０９）。ハンド２６の左側面に示した右向きの矢印は、ハンド２６を破線で示した位置から実線で示した位置に移動させることを示す。即ち、ハンド２６をＸ方向に移動させ、対象物Ｗ１１に接触した位置をもってＸ座標の基準点が定められる。
【００８９】
図９に示す例は、ハンド２６の向きが図８に示す例と同一である場合を示すが、これには限られない。次に説明するようにハンド２６の向きを変更し、変更後に変更前と同一の方向にハンド２６を移動させてもよい。
図１０は、本実施形態に係るキャリブレーション処理におけるハンド２６の動作のさらに他の例を示す図である。
この例では、目標位置は対象物Ｗ１２の表面に設定され、ハンド２６の向きの変更前のＸ座標の基準点を定める場合を示す。破線で表されたハンド２６は、ステップＳ１１１（図７）により向きがＺ方向からＸ方向に変更され、対象物Ｗ１２の表面から第２の距離としてＬ２だけＺ方向に離れていることを示す。実線で表されたハンド２６は、ハンド２６の端点（この例では、側面）が対象物Ｗ１１に接触していることを示す。この位置において、ハンド２６の端点のＸ座標のキャリブレーションが行われる（図７、ステップＳ１０９）。
【００９０】
ハンド２６の上側面に示した下向きの矢印は、ハンド２６を破線で示した位置から実線で示した位置に移動させることを示す。即ち、図１０は、ハンド２６をＺ方向（変更後）に移動させ、対象物Ｗ１１に接触した位置をもってＺ座標（変更後）の基準点を定めることを示す。この変更後のＺ座標は、変更前のＸ座標に相当する。作業環境により作業部２１が移動可能な領域が制限される場合（所定の対象物以外の物体が配置されている場合、等）でも、３次元のキャリブレーションを行うことができる。
【００９１】
図９、１０は、Ｘ座標の基準点を定める場合を例にとったが、Ｙ座標についてもハンド２６をＹ方向に移動させて接触した点、又はＹ方向（変更前）をＺ方向（変更後）に方向を変更したうえでＺ方向に移動させて接触した点、をもってＸ座標の基準点を定めてもよい。
本実施形態では、上述したようにビジュアルサーボを用いて作業部２１の端点を対象物に接近させ、その後、力制御を用いて対象物に接触させることで精密なキャリブレーションを実現し、キャリブレーションを簡易に行うことができる。
【００９２】
次に、本実施形態に係るキャリブレーションと従来のキャリブレーションとの効果とを比較する。本実施形態に係るキャリブレーション処理を用いたキャリブレーションを簡易キャリブレーション、従来のように人手によるキャリブレーションを精密キャリブレーションと呼ぶ。
【００９３】
図１１は、簡易キャリブレーションと精密キャリブレーションの比較例を示す。
各列は、キャリブレーション精度、作業時間を示す。作業時間とは、キャリブレーションに要する時間であり、ロボットキャリブレーションとビジョンキャリブレーションとが行われる時間が含まれる。各列は、簡易キャリブレーション、精密キャリブレーションを示す。但し、この例では、簡易キャリブレーションにおいて、作業部２１が比較的剛性が低い柔構造のアームで形成され、キャリブレーションが行われる基準点の数が２箇所である。これに対し、精密キャリブレーションにおいて、作業部２１が高剛性アームで形成され、キャリブレーションにおいて用いる基準点の数が６箇所である。
簡易キャリブレーションでは、キャリブレーション精度が±２ｍｍ以内、作業時間は合計約２０分である。精密キャリブレーションでは、キャリブレーション精度が±０．２ｍｍ以内であるが、作業時間は合計約４時間である。
【００９４】
即ち、精密キャリブレーションでは、高い精度が得られるが必要とする作業時間が長ので、頻繁に作業環境が変化する場合には現実的ではない。これに対し、簡易キャリブレーションでは、実用に耐えられる精度が得られ、作業時間を格段に低減することができる。図１１に示す例では、簡易キャリブレーションでの精度は、精密キャリブレーションよりも一見低いが、接触させようとする物体の表面粗さに依存する。即ち、簡易キャリブレーションでも、表面粗さがより小さい物体を用いることや、基準点の数を増加することで精度を高くすることができる。
【００９５】
上述したロボットシステム１の構成は、本実施形態の特徴を説明するものであって、これには限られない。ロボット制御装置１０は、コンピューターで構成されていてもよい。
図１２は、本実施形態に係るロボット制御装置１０の機能構成の他の例を示す図である。
ロボット制御装置１０は、ＣＰＵ(Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、メモリー１２、外部記憶装置１３、通信装置１４、入力装置１５、出力装置１６、及びＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）１７を含んで構成される。
ＣＰＵ１１は、上述した処理に係る演算を行う。メモリー１２は、不揮発性の記憶装置であるＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）や揮発性の記憶装置であるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を含む。通信装置１４は、ロボット２０との間で通信を行う。入力装置１５は、ユーザーの操作を受け付け、受け付けた操作に応じた操作入力信号を入力する装置、例えば、マウス、キーボード、等である。出力装置１６は、画像データを視認可能に出力する装置、例えば、ディスプレイ、等である。Ｉ／Ｆ１７は、他の装置と接続し、データを入力又は出力する。例えば、Ｉ／Ｆ１７は、例えば撮像装置３０から画像データを入力する。
【００９６】
上述の各機能部は、例えば、ＣＰＵ１１がメモリー１２に格納された所定のプログラムを読み出して実行することにより実現される。なお、所定のプログラムは、例えば、予めメモリー１２にインストールされてもよいし、通信装置１４を介してネットワークからダウンロードされてインストール又は更新されてもよい。
【００９７】
ロボット制御装置１０とロボット２０は、上述のように互いに別体で構成されてもよいが、それらが一体化されたロボット２０として構成されてもよい。
また、撮像装置３０は、上述のようにロボット制御装置１０又はロボット２０と別体であってもよいが、一体化されてもよい。
また、本実施形態では、ロボット２０の一例として、２本の作業部２１を備える双腕ロボットを示したが、１本の作業部２１を備える単腕ロボット、３本以上の作業部２１を備えるロボットであってもよい。また、ロボット２０は、スカラーロボットでもよく、垂直多関節ロボットでもよい。
【００９８】
また、ロボット２０は、移動を可能にする部材としてキャスター２７に代え、例えば、動作可能な脚部を備えてもよい。ロボット２０は、例えば、その脚部を備えた歩行ロボットとして構成されていてもよく、ロボット制御装置１０は、その脚部の動作を制御してもよい。ここで、ロボットの設置の誤差、前記ロボットの剛性に起因する誤差に基づいてビジュアルサーボを開始する制御を行うことや、作業部２１の一点を対象物に接触させ、対象物と接触した位置を作業部２１の一点の基準点と定めることで、移動に係る制御に対する要求条件が緩和される。例えば、脚部の位置に対する精度、車輪の回転速度に対する精度、等を低下させることが許容される。そのため、ロボット２０の製造、検査、等に係るコストを低減することができる。
【００９９】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
上述したロボットシステム１の機能構成は、ロボットシステム１の構成について理解を容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。ロボットシステム１の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、１つの構成要素がさらに多くの処理を実行するように分類することもできる。また、各構成要素の処理は、１つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
【０１００】
また、ロボット制御装置１０及びロボット２０の機能及び処理の分担は、図示した例に限られない。例えば、ロボット制御装置１０の少なくとも一部の機能は、ロボット２０に含まれ、ロボット２０により実現されてもよい。また、例えば、ロボット２０の少なくとも一部の機能は、ロボット制御装置１０に含まれ、ロボット制御装置１０により実現されてもよい。
【０１０１】
また、上述したフローチャートの各処理単位は、ロボット制御装置１０の処理を理解容易にするために、主な処理内容に応じて分割したものである。処理単位の分割の仕方や名称によって、本願発明が制限されることはない。ロボット制御装置１０の処理は、処理内容に応じて、さらに多くの処理単位に分割することもできる。また、１つの処理単位がさらに多くの処理を含むように分割することもできる。
【０１０２】
以上、本発明について実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に多様な変更または改良を加えることが可能であることが当業者には明らかである。また、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【符号の説明】
【０１０３】
１…ロボットシステム、
１０…ロボット制御装置、１１…ＣＰＵ、１２…メモリー、１３…外部記憶装置、
１４…通信装置、１５…入力装置、１６…出力装置、１７…Ｉ／Ｆ
１００…位置制御部、１０２…経路取得部、１０４…第１軌道生成部、
１１０…ビジュアル制御部、１１２…画像処理部、１１４…第２軌道生成部、
１２０…力制御部、１２２…センサー情報取得部、１２４…第３軌道生成部、
１３０…動作制御部、１４０…画像取得部、
２０…ロボット、２１…作業部、２２…アーム、２３…ジョイント、２４…リンク、
２５…力覚センサー、２６…ハンド、２７…キャスター、２８…固定脚、
２００…駆動制御部、
３０…撮像装置
【図１】
2015085458.tif 000003
【図２】
2015085458.tif 000004
【図３】
2015085458.tif 000005
【図４】
2015085458.tif 000006
【図５】
2015085458.tif 000007
【図６】
2015085458.tif 000008
【図７】
2015085458.tif 000009
【図８】
2015085458.tif 000010
【図９】
2015085458.tif 000011
【図１０】
2015085458.tif 000012
【図１１】
2015085458.tif 000013
【図１２】
2015085458.tif 000014