(57)【要約】【課題】  ロボットアームに搭載されるカメラのシャッターチャンスを最適化し、組立作業効率を向上させる。【解決手段】  フィンガー４上の点Ｆと、カメラ１の位置基準であるアライメントマーク３ａに対する位置をカメラ１によって撮像し、画像処理によってカメラ１の位置を計測する。カメラ１の位置が予め設定された位置閾値以下で、かつ、カメラ１に搭載された速度センサ３によって計測されるカメラ１の移動速度が予め設定された速度閾値以下である時にカメラ１のシャッターを切る。あるいは更に、速度センサ３の微分値によって計測されるカメラ１の移動加速度が予め設定された加速度閾値以下である時と論理積を取ってシャッター切る。これによって、ワーク１２を探索するための画像のブレを防ぎ、位置誤差を低減するとともに、シャッターを早く切ることで作業効率を向上させる。【選択図】  図１
2011011330.tif 000002
【特許請求の範囲】
【請求項１】
ワークを把持するためのフィンガーを有するハンドと、
前記ハンドを駆動するロボットアームと、  前記ハンドに配置されたカメラと、  前記カメラによる画像に基づいてワークを探索し、前記ロボットアームを制御するための制御部と、
前記カメラの移動速度を検出する手段と、
前記カメラの位置を検出する手段と、
前記カメラの移動速度が予め設定された速度閾値以下であり、かつ、前記カメラの位置が予め設定された位置閾値以下である時に、ワークを探索するための前記カメラによる撮像を許可する手段と、を有することを特徴とするカメラ付きロボット。
【請求項２】
前記カメラの移動速度を検出する手段は、前記カメラに搭載された速度センサであることを特徴とする請求項１に記載のカメラ付きロボット。
【請求項３】
前記ハンドは、前記フィンガーにかかる力を計測するための力覚センサを備え、
前記カメラの移動速度を検出する手段及び前記カメラの位置を検出する手段は、それぞれ、前記力覚センサの出力に基づいて、前記カメラの移動速度及び位置を検出することを特徴とする請求項１に記載のカメラ付きロボット。
【請求項４】
前記カメラの移動加速度を検出する手段と、
前記カメラの移動加速度が予め設定された加速度閾値以下であり、かつ、前記カメラの移動速度が予め設定された速度閾値以下であり、かつ、前記カメラの位置が予め設定された位置閾値以下である時に、ワークを探索するための前記カメラによる撮像を許可する手段と、を有することを特徴とする請求項１に記載のカメラ付きロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組立作業対象であるワークを確認するためのカメラを搭載するカメラ付きロボットに関するものである。
【背景技術】
【０００２】
一般に、カメラの画像処理に必要な撮像の条件として、振動によるブレが無いことと、被写体の位置が撮像上で再現性あること、すなわち、カメラ座標と、被写体が存在する座標との相対位置が把握されていることが挙げられる。
【０００３】
振動対策として単にシャッターを速くすると、光量不足による撮像感度低下の問題がある。特に、被写界深度（ピントの合う奥行き範囲）を拡大するためにレンズを絞り込む場合に顕著である。
【０００４】
例えば、自動組立のＦＡ分野で近年一般化しているロボットアームにカメラを実装する時の振動対策として、振動収束の見込み時間の経過後にシャッターを切る手法が知られている（特許文献１参照）。
【０００５】
一方、カメラ単体の一般的な振動防止策として、ＸＹ平面の角加速度センサ（例えばジャイロへの慣性力）の積分値から角速度を算出し、その値が閾値以下のときにシャッター動作を可能とする技術が知られている（特許文献２参照）。ここで、角速度をＷ、振動の旋回中心から任意の点Ｆまでの回転半径をＲとすれば、点Ｆの速度はＶ＝ＲＷとなる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−２５２８８３号公報
【特許文献２】特許第２６０３８７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、組立用のロボットにカメラを搭載すると以下の問題が生じる。例えば、図７（ａ）に示す構成では、手首旋回Ｊ７軸１０７と下腕のＪ６軸１０８、及び図示しないＪ５軸からＪ１軸を有する７軸垂直多関節ロボットのアーム（ロボットアーム）を使う。Ｊ７軸１０７の先端にはハンド１０６を実装し、その基部にカメラ支柱１０２を介しカメラ１０１を実装する。ハンド１０６の先端部はワーク１１２を把持するフィンガー１０４で構成する。カメラ１０１の画像を処理する画像処理部１０９及び、ロボットの制御部１１０に書き込んだ組立用プログラムによって、ワーク１１２の組立作業を行う。
【０００８】
すなわち、カメラ１０１によりワーク１１２をパターンマッチなどの画像処理手法によって探索し、その結果からフィンガー１０４で把持する。フィンガー１０４上にはカメラ座標（Ｘｃ、Ｙｃ、Ｚｃ）内の基準となる点Ｆを設け、点Ｆの取得を、図７（ｂ）の破線内をパターンマッチなどの画像処理手法で行う。
【０００９】
このカメラ付きロボットで、ハンド１０６を、図６に示す始点Ｐｓと終点Ｐｅの２点間を台形状の速度指令Ｖｃｍで移動させる事を想定する。すると７軸機構を主とする機械弾性の影響でハンド１０６は振動し、加速終盤でのオーバーシュートと、減速終盤でのアンダーシュートとを生じる。アンダーシュートの振動が残留していると、点Ｆとワークの相対位置がばらつき、正確な画像処理が困難となる。尚、説明を分かり易くする為に、始点Ｐｓと終点Ｐｅはロボット座標（Ｘ、Ｙ、Ｚ、Ｘｍ、Ｙｍ、Ｚｍ）のＸ軸上にあるとする。
【００１０】
アンダーシュートへの振動対策として、特許文献１に開示されたようにロボットの振動が十分収束するまで待つ方法がある。すなわち、図５で位置指令Ｐｃｍの終了時刻ｔｅを起点とした実位置Ｐｃｍの振動収束見込み時間ＷＴを待ってからシャッターを切る方法で、組立タクトに悪影響を及ぼす。振動収束見込み時間ＷＴは１秒前後の場合もあり、実際に振動が収束した時刻ｔ７を起点とした余裕時間ＷＴｓを含める事が多い。この様に、振動収束を待つためにシャッターを切るまでの無駄時間が発生する事が課題である。
【００１１】
ところで、図５の上部に振動収束見込み時間ＷＴが経過した後の時間帯を「６  タイマＷＴ経過」の行に黒帯で明記した。黒帯の先頭に丸印で明示した時刻ｔ８にシャッターを切る。
【００１２】
また、振動収束見込み時間ＷＴはアームの移動ストロークにより異なる。そのために、マトリクス状にピック・アンド・プレイスを実施する場合では、毎回ストロークが異なることから、最大振動に合わせて振動収束の余裕時間ＷＴｓを見込む必要があり、さらなる無駄時間を発生させていた。
【００１３】
一方、カメラ単体での振動対策として、特許文献２に開示されたように、振動抑制のために、角速度が低い時にシャッターを切る方式がある。しかしこの場合は、撮像内における被写体の特定点の位置は保証されず、そのままでは組立用のロボットに適用できない。
【００１４】
本発明は、画像処理に必要な精度を満たす範囲で、ワークを探索するためのカメラのシャッターを早く切ることを可能とするカメラ付きロボットを提供することを目的とするものである。
【課題を解決するための手段】
【００１５】
本発明のカメラ付きロボットは、ワークを把持するためのフィンガーを有するハンドと、前記ハンドを駆動するロボットアームと、前記ハンドに配置されたカメラと、前記カメラによる画像に基づいてワークを探索し、前記ロボットアームを制御するための制御部と、前記カメラの移動速度を検出する手段と、前記カメラの位置を検出する手段と、前記カメラの移動速度が予め設定された速度閾値以下であり、かつ、前記カメラの位置が予め設定された位置閾値以下である時に、あるいはそれに加えて前記カメラの加速度が予め設定された加速度閾値以下である時に、ワークを探索するための前記カメラによる撮像を許可する手段と、を有することを特徴とする。
【発明の効果】
【００１６】
組立要求精度に応じて必要最小限の範囲で振動が収束したと判断した瞬間にシャッターを切ることで、ワークを探索するための画像のブレを低減し、しかも、より早くシャッターを切ることで無駄時間を抑制して組立の作業効率を向上することができる。
【図面の簡単な説明】
【００１７】
【図１】実施例１によるカメラ付きロボットの構成を示す斜視図である。
【図２】実施例１による撮像画像を説明する図である。
【図３】実施例２によるカメラ付きロボットの構成を示す斜視図である。
【図４】実施例２による力覚センサの構成を説明する模式図である。
【図５】アンダーシュートとシャッターチャンスの関係を説明するグラフである。
【図６】アーム駆動時のハンド位置、速度、加速度の変化を示すグラフである。
【図７】一従来例によるカメラ付きロボットを説明するものである。
【発明を実施するための形態】
【００１８】
［実施例１］
実施例１と、前述の従来例との主たる物理的相違は、速度センサ３の付加である。
【００１９】
図１は、実施例１によるカメラ付きロボットを示すもので、手首旋回Ｊ７軸７と下腕のＪ６軸８、及び図示しないＪ５軸からＪ１軸を有するロボットアームを使う。Ｊ７軸７の先端にはハンド６を実装し、その基部にカメラ支柱２を介しカメラ１を実装する。カメラ１には移動速度を検出する手段である速度センサ３を実装する。速度センサ３の速度情報は、画像処理部９を通じて制御部１０で把握する。ハンド６の先端部はワーク１２を把持するフィンガー４で構成する。カメラ１の画像を処理する画像処理部９及び、ロボットの制御部１０に書き込んだ組立用プログラムによって、ワーク１２の組立作業を行う。  カメラ１によって撮像された画像により、ワーク１２の位置をパターンマッチなどの画像処理手法によって探索し、フィンガー４で把持する。フィンガー４上にはカメラ座標（Ｘｃ、Ｙｃ、Ｚｃ）内の基準となる点Ｆを設ける。速度センサ３は、加速度を検出してその積分値より速度を求める方式とする。
【００２０】
また、ロボットアームと同じ架台に、カメラ位置を検出するための位置基準となるアライメントマーク３ａを配置することにより、カメラ１の画像から、カメラ１の位置を検出できる。アライメントマーク３ａのロボット座標が既知であれば、カメラ１のロボット座標を取得できる。また、フィンガー４上の点Ｆとアライメントマーク３ａとの位置座標偏差をカメラ１より取得できる。
【００２１】
図２は、カメラ１の撮像例であり、下端線のＸとＹはロボット座標、中央線ＸｃとＹｃはカメラ座標を示している。図２（ａ）は、ハンド６を駆動し、完全に静止した後、例えば図５の時刻ｔ８の時点で、ワーク１２を探索するために制御部１０から画像処理部９を通じてシャッターを切った場合の画像である。アライメントマーク３ａと点ＦとのカメラＸ座標の距離偏差がゼロという正規の値がカメラ１から取得されたとする。
【００２２】
図２（ｂ）は、最初に実速度Ｖｎが最初にゼロになった時刻ｔ０でシャッターを切った画像である。この時点では実位置Ｐｎのアンダーシュートが大きくカメラ１の位置もＸ座標の右方向へずれるために、本来はゼロであるべきアライメントマーク３ａと点Ｆとの距離偏差Ｐｘが誤差となってカメラ１から取得される。
【００２３】
図２（ｃ）は、実位置Ｐｎのアンダーシュートが小さくなってからシャッターを切った画像であり、例えば図５の時刻ｔ４の時点である。アライメントマーク３ａと点Ｆとの距離は図２（ｂ）よりも小さな値であるΔＰｘ分の誤差となってカメラ１から取得される。
【００２４】
このように、アンダーシュートが小さな状態でシャッターを切れば測定の誤差が小さくなる。例えばアンダーシュートが小さな状態を、図５の実位置Ｐｎの軸において、＋Δｐ１と−Δｐ２の範囲内とし、これを位置閾値と定義する。
【００２５】
位置閾値Δｐ１とΔｐ２の具体的な数値は、画像処理システムへの要求精度に依る。自動組立のＦＡ分野ではケースバイケースであるが、およそ０．１〜１ｍｍ程度であり、その数分の一前後としてユーザーが任意に決定する。例えば画像処理システムへの要求精度Ｒｐが０．５ｍｍで、Ｒｐの何分の一を測定誤差として許容するかの実位置Ｐｎの閾値係数Ｋｐを５と決定すれば、位置閾値Δｐ１とΔｐ２は（１）式よりそれぞれ０．１ｍｍとなる。
Δｐ１＝Δｐ２＝Ｒｐ／ｋｐ＝（０．５ｍｍ／５）＝０．１ｍｍ・・・（１）
要求精度が緩ければ、Δｐ１とΔｐ２を大きくできるので、より早いタイミングでシャッターを切れる。なお、Δｐ１とΔｐ２とは同じ数値である必要はない。
【００２６】
ただし、ある瞬間にアンダーシュートが小さくとも、その時点のカメラ１の速度が大きと、カメラ１は相応の高速シャッターを切らなければ画像がブレてしまう。例えば図５の時刻ｔ１の時点では、実位置Ｐｎが終点Ｐｅに達しているが、この時点での速度Ｖｔ１は高速であるために、ブレの可能性が極めて高い。そこで、シャッターを切る条件として、許容速度の上限を図５の速度Ｖの軸上で、＋Δｖ１と−Δｖ２の範囲内とし、これを速度閾値と定義する。
【００２７】
速度閾値Δｖ１とΔｖ２の具体的な数値は、前述の位置閾値Δｐ１とΔｐ２と同様に、画像処理システムへの要求精度に依る。例えば、シャッター速度Ｓｓ（＝シャッター開放時間）を１／１００秒（＝０．０１ｓ）とし、要求精度Ｒｐを前述の０．５ｍｍとし、その何分の一を測定誤差として許容するかの実速度Ｖｎの閾値係数Ｋｖを５とする。カメラ１の移動速度の上限を設定する速度閾値Δｖ１とΔｖ２は（２）式よりそれぞれ１０ｍｍ／ｓとなる。
Δｖ１＝Δｖ２＝（Ｒｐ／Ｋｖ）／Ｓｓ＝（０．５ｍｍ／５）／０．０１ｓ＝１０ｍｍ／ｓ・・・（２）
要求精度が緩ければ、Δｖ１とΔｖ２を大きくできるので、より早いタイミングでシャッターを切れる。なお、Δｖ１とΔｖ２とは同じ数値である必要はない。
ところで、図５の上部に位置閾値以下の時間帯を「１  実位置Ｐｎ」、速度閾値以下の時間帯を「２  実速度Ｖｎ」の行に黒帯で明記した。これらを両立する時間帯は「４  Ｐｎ×Ｖｎ」である。
【００２８】
上述した結果より、位置閾値以下であって、しかも、速度閾値以下である時間帯がシャッターを切るタイミング、すなわちシャッターチャンスとなる。従来の振動収束見込み時間ＷＴを待つよりも早いシャッターチャンスは、図５の時刻ｔ２からｔ３の間、あるいは時刻ｔ５からｔ８の間となる。最も速いチャンスは時刻ｔ２であり、「４  Ｐｎ×Ｖｎ」の黒帯の先頭に丸印で明示した。尚、位置閾値と速度閾値への到達判断は制御部１０が行い、画像処理部９を通して、シャッターを切る撮像指令を発生する。
【００２９】
従って以上説明した様に、ハンドの位置と速度の双方が閾値以下になった時にシャッターを切る事で、振動収束見込み時間ＷＴを待つ従来の手段に比較して無駄時間の課題を解決できる。
【００３０】
［実施例２］
実施例２は、図３に示すように、実施例１とは主に以下三項目の物理構成物が異なる。
１．ハンド６の代わりに、ブラケット５と同じ全長の６軸の力覚センサ１３を備えるハンド５０を使う。
２．速度センサ３が無い。
３．フィンガー４の代わりに、アライメントマーク１４ａを点Ｆと同じ位置に有するフィンガー１４を配置する。
【００３１】
力覚センサ１３は、ロボット座標の直行軸成分（Ｘ、Ｙ、Ｚ）とそれらのモーメント軸成分（Ｘｍ、Ｙｍ、Ｚｍ）とで６軸方向に対して、フィンガー１４にかかる力を、フィンガー１４の変位で検出し、これを組立のコンプライアンス制御などに利用する。物理的な検出素子としては歪みゲージによるものが広く知られているが、本実施例では歪みゲージに代わる検出素子として、磁石を用いた磁気変動を検出する構成を用いる。
【００３２】
この力覚センサは磁石とオペアンプなどのアナログ回路で構成される為、電気的には数ＫＨｚ程度の応答特性を有している。従って１０Ｈｚ前後のアンダーシュートの振動周波数に対して、力覚センサは正確な振動抽出が可能となる。すなわち、力覚センサ１３に接続されたフィンガー１４が、振動に応じた慣性で振られて力覚センサ１３が反応し、その変位の振幅は、例えば±１００μｍ前後である。力覚センサ１３で計測された変位Ｘｃｆの微分値が実速度Ｖｎとして検出できる。
【００３３】
図４は、磁石を使った力覚センサ１３の構造を示すもので、フィンガー１４に固定された取付部２０に弾性体２１、２２を介して筐体２３を結合する。そして、筐体２３に支持された磁石２４に対向する磁石２４を取付部２０に固定する。振動によって加わった慣性で力Ｆｘ（説明のために一点に印加と仮定）が加わると、旋回軸からの距離Ｌ２にある磁石２４、２５の距離が変化し、磁界の変化をアンプ２６で増幅する。
【００３４】
この動きを介在する弾性体２１、２２の動きは、力Ｆｘに対してリニアである。力Ｆｘを加えた時の旋回角θｆと、アンプ２６の出力Ｖｆの関係は、係数をＫｆとすれば、一次式である（３）式より求められる。なお、Ｋｆは弾性体４１とアンプ２６と旋回軸からの距離Ｌ１などから一義的に求められる。
θｆ×Ｋｆ  ＝Ｖｆ  ・・・（３）
また、（４）式が成り立つ。
Ｘｃｆ＝Ｌ１×ｔａｎθｆ  ・・・（４）
一方、フィンガー１４上のアライメントマーク１４ａは角度θｆの旋回動作をする。そのため、リジット構造であった実施例１のブラケット方式に比較すると、振動時の測定値は（５）式、（６）式からそれぞれ求められるΔＸｃｆｅとΔＹｃｆｅの誤差が発生する。しかし前述のように、アンプ２６の出力から変位θｆとＸｃｆとを算出できるので、アライメントマーク１４ａと撮像基準位置１２ａとの相対位置の補正が可能となる。
ΔＸｃｆｅ＝（Ｘｃｆ×ｓｉｎθｆ）×ｃｏｓθｆ・・・（５）
ΔＹｃｆｅ＝（Ｘｃｆ×ｓｉｎθｆ）×ｓｉｎθｆ・・・（６）
なお、上述の微分計算や（３）〜（６）式の計算は、任意の処理が可能な制御部１０で行い、その計算結果は、画像処理部９と共用する。
【００３５】
従って以上説明した様に、力覚センサ１３を有するロボットは、力覚センサ１３でハンドの速度を検出する事で、実施例１で説明した速度センサ３が不要となり、ローコストで小型な構成で無駄時間の課題を解決できる。
【００３６】
［実施例３］
実施例３は、実施例１の図１と同様の物理構成物である。
【００３７】
物体の加速度は速度の微分値であり、図６及び図５に実速度Ｖｎと実加速度Ａｎの経時軌跡を描く。但し、説明を分かり易くする為に図６及び図５では実加速度Ａｎの振幅を誇張している。
【００３８】
実施例１で説明した様に時刻ｔ５以降はシャッターチャンスであり、移動の実速度Ｖｎは収束へ向かいブレ像が発生し難くなっていく。ところが実加速度Ａｎは一時上昇している。
【００３９】
加速度とロボットアーム系質量との積は「ロボットアーム系を押す力」として作用し、振動の原因となる。この為、速度閾値Δｖ１とΔｖ２を下げてシャッターを切っても意外な振動が残留し、被写体の計測位置精度を劣化させる可能性がある。
【００４０】
振動振幅は、「ロボットアーム系を押す力」とロボットアーム系の弾性係数とで予測できるが、弾性係数は姿勢や減速機の構造で非線形な部分がある事から、パラメータ算出の手間や誤差や手間が発生する。
【００４１】
従って加速度が実測可能ならば、これをフィードバックさせてシャッターを切るタイミングの制御に利用する手法が有効とある。
【００４２】
加速度は、実施例１で説明した速度センサ３の速度検出値の微分値、あるいは実施例２で説明した力覚センサ１３の速度検出値の微分値が相当するので、画像処理部９または１０９、あるいは制御部１０または１１０で取得できる。
【００４３】
そこで、実施例１で説明した速度閾値Δｖ１とΔｖ２、及び位置閾値Δｐ１とΔｐ２に対し、加速度閾値Δａ１とΔａ２とを新設し、これら３種全ての閾値を下回った時刻ｔ６以降にシャッターを切る事にする。位置閾値と速度閾値への到達判断と同様に、加速度閾値への到達判断は制御部１０が行い、画像処理部９を通して、シャッターを切る撮像指令を発生する。
【００４４】
ところで、図５の上部に加速度閾値以下の時間帯を「３  実加速度Ａｎ」の行に黒帯で明記した。位置、速度、加速度の３種全ての閾値を下回る時間帯は「５  Ｐｎ×Ｖｎ×Ａｎ」の行に黒帯で示した。
【００４５】
最も速いシャッターチャンスは、黒帯の先頭に丸印で示した時刻ｔ６であるから、実施例１のシャッターチャンスの時刻ｔ２より遅れが、より振動が低い状態を実現できる。
【００４６】
加速度閾値であるΔａ１とΔａ２の具体的な数値については、例えば、許容振動振幅をＡとすると次式を目安に設定する。
Δａ１＝Ａω＾２  （Ｇ）    ・・・（７）
但し単位Ｇ＝９．８ｍ／ｓ＾２
例えば、許容振動振幅を０．１ｍｍ、振動周波数を１０Ｈｚの場合は、
Δａ１＝０．１ｍｍ×（２×π×１０Ｈｚ）＾２＝０．３９Ｇ
を設定値とする。
【００４７】
従って以上説明した様に、ハンド６の加速度、位置、速度ら全ての閾値を満足させてシャッターのタイミングを決定する。この事で、振動収束見込み時間ＷＴを待つ従来の手段に比較して無駄時間の課題を解決でき、これに併せて［実施例１］での説明以上に振動が低い状態でシャッターを切れるメリットがある。
【符号の説明】
【００４８】
１  カメラ
３  速度センサ
３ａ、１４ａ  アライメントマーク
４、１４  フィンガー
６  ハンド
９  画像処理部
１０  制御部
１３  力覚センサ
５０  力覚センサ付きハンド
【図１】
2011011330.tif 000003
【図２】
2011011330.tif 000004
【図３】
2011011330.tif 000005
【図４】
2011011330.tif 000006
【図５】
2011011330.tif 000007
【図６】
2011011330.tif 000008
【図７】
2011011330.tif 000009