(57)【要約】【課題】  所与の作業の後に異なる作業を行う場合にも、状況に応じてキャリブレーションをスキップすることで、キャリブレーションに関する処理負荷を軽減するロボット、ロボット制御システム、ロボット制御方法及びプログラム等を提供すること。【解決手段】  ロボットは、第ｉ（ｉは自然数）番目の作業後に第ｉ番目の作業とは異なる第ｉ＋１番目の作業を行い、第ｊ（ｊはｊ≠ｉを満たす自然数）番目の作業後にｊ番目の作業とは異なる第ｊ＋１番目の作業を行うロボットであって、第ｉ番目の作業後に、第ｉ番目の作業の作業時におけるロボットの関節における校正に関する情報を変更することなく、第ｉ＋１番目の作業を行い、第ｊ番目の作業後にロボットキャリブレーションを行い、ロボットキャリブレーションを行った後に第ｊ＋１番目の作業を行う。【選択図】      図１
2015089575.tif 000002
【特許請求の範囲】
【請求項１】
第ｉ（ｉは自然数）番目の作業後に前記第ｉ番目の作業とは異なる第ｉ＋１番目の作業を行い、第ｊ（ｊはｊ≠ｉを満たす自然数）番目の作業後に前記ｊ番目の作業とは異なる第ｊ＋１番目の作業を行うロボットであって、
前記第ｉ番目の作業後に、前記第ｉ番目の作業の作業時におけるロボットの関節における校正に関する情報を変更することなく、前記第ｉ＋１番目の作業を行い、
前記第ｊ番目の作業後にロボットキャリブレーションを行い、前記ロボットキャリブレーションを行った後に前記第ｊ＋１番目の作業を行うことを特徴とするロボット。
【請求項２】
請求項１において、
前記第ｉ番目の作業後に、第１の姿勢から前記第１の姿勢とは異なる第２の姿勢へと移る間に被撮像物を複数回撮像することで、前記第ｉ＋１番目の作業を行うことを特徴とするロボット。
【請求項３】
請求項１において、
力覚センサーが設けられたエンドエフェクターを含み、
前記第ｉ番目の作業後に、第１の姿勢から前記第１の姿勢とは異なる第２の姿勢へと移る間に前記エンドエフェクターを物体に接触させることで、前記第ｉ＋１番目の作業を行うことを特徴とするロボット。
【請求項４】
第ｉ（ｉは自然数）番目の作業後に前記第ｉ番目の作業とは異なる第ｉ＋１番目の作業を行い、第ｊ（ｊはｊ≠ｉを満たす自然数）番目の作業後に前記ｊ番目の作業とは異なる第ｊ＋１番目の作業を行うロボットを動作させる制御装置であって、
前記ロボットに、前記第ｉ番目の作業後に、前記第ｉ番目の作業の作業時におけるロボットの関節における校正に関する情報を変更することなく、前記第ｉ＋１番目の作業を行わせ、
前記第ｊ番目の作業後にロボットキャリブレーションを行い、前記ロボットキャリブレーションを行った後に前記第ｊ＋１番目の作業を行わせることを特徴とする制御装置。
【請求項５】
第ｉ（ｉは自然数）番目の作業後に前記第ｉ番目の作業とは異なる第ｉ＋１番目の作業を行い、第ｊ（ｊはｊ≠ｉを満たす自然数）番目の作業後に前記ｊ番目の作業とは異なる第ｊ＋１番目の作業を行うロボットを含み、
前記ロボットは、
前記第ｉ番目の作業後に、前記第ｉ番目の作業の作業時におけるロボットの関節における校正に関する情報を変更することなく、前記第ｉ＋１番目の作業を行い、
前記第ｊ番目の作業後にロボットキャリブレーションを行い、前記ロボットキャリブレーションを行った後に前記第ｊ＋１番目の作業を行うことを特徴とするロボットシステム。
【請求項６】
第ｉ（ｉは自然数）番目の作業後に前記第ｉ番目の作業とは異なる第ｉ＋１番目の作業を行い、第ｊ（ｊはｊ≠ｉを満たす自然数）番目の作業後に前記ｊ番目の作業とは異なる第ｊ＋１番目の作業を行うロボットの制御方法であって、
前記ロボットに、前記第ｉ番目の作業後に、前記第ｉ番目の作業の作業時におけるロボットの関節における校正に関する情報を変更することなく、前記第ｉ＋１番目の作業を行わせ、
前記第ｊ番目の作業後にロボットキャリブレーションを行い、前記ロボットキャリブレーションを行った後に前記第ｊ＋１番目の作業を行わせることを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット、制御装置、ロボットシステム及び制御方法等に関する。
【背景技術】
【０００２】
現在ロボットのキャリブレーションでは、作業を行なう位置・姿勢を決めて、その位置・姿勢での高精度の位置決めを実現している。ロボットに行わせる作業が変われば、その作業に応じて高精度の位置決めを実現する必要があるため、再びキャリブレーションを行う必要がある。例えば、１０種類の作業を一台のロボットに行わせる場合、１０回のキャリブレーションを行う必要がある。そのため、作業が変わる度にキャリブレーションを厳密に行おうとすると、非常に多くの時間を要することになる。
【０００３】
そこで、例えば特許文献１に記載されているように、キャリブレーションを厳密に行わなくても（つまり、簡易的なキャリブレーションであっても）、アームの位置姿勢を高精度で制御するために、ビジュアルサーボを用いることが考えられる。厳密にキャリブレーションを行った場合、丸一日掛かることもあるのに対して、簡易的なキャリブレーションであれば、１時間以内で済むことがある。そのため、ビジュアルサーボを用いることにより、キャリブレーションに掛かる時間を短縮することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−３１１６７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、多品種製造の現場においては、ロボットに行わせる作業は多数あり、それらの作業を頻繁に変える。そのため、簡易的なキャリブレーションであったとしても、ロボットに行わせる作業が変わる度に、キャリブレーションを行っていたのでは、時間や工数が多大になり、多品種製造の現場における生産性が阻害されてしまう。
【課題を解決するための手段】
【０００６】
本発明の一態様は、第ｉ（ｉは自然数）番目の作業後に前記第ｉ番目の作業とは異なる第ｉ＋１番目の作業を行い、第ｊ（ｊはｊ≠ｉを満たす自然数）番目の作業後に前記ｊ番目の作業とは異なる第ｊ＋１番目の作業を行うロボットであって、前記第ｉ番目の作業後に、前記第ｉ番目の作業の作業時におけるロボットの関節における校正に関する情報を変更することなく、前記第ｉ＋１番目の作業を行い、前記第ｊ番目の作業後にロボットキャリブレーションを行い、前記ロボットキャリブレーションを行った後に前記第ｊ＋１番目の作業を行うロボットに関係する。
【０００７】
本発明の一態様では、所与の作業の後に異なる作業を行う場合であっても、キャリブレーションを行う必要がない場合には、キャリブレーションを行わない。そのため、従来手法であれば作業が変わる度にキャリブレーションを行う必要があった多品種製造の場合であっても、キャリブレーションに関する処理負荷を軽減し、生産性を向上させることが可能になる。
【０００８】
また、本発明の一態様では、前記第ｉ番目の作業後に、第１の姿勢から前記第１の姿勢とは異なる第２の姿勢へと移る間に被撮像物を複数回撮像することで、前記第ｉ＋１番目の作業を行ってもよい。
【０００９】
これにより、被撮像物を複数回撮像することで、第ｉ番目の作業とは異なる第ｉ＋１番目の作業を行うこと等が可能になる。
【００１０】
また、本発明の一態様では、力覚センサーが設けられたエンドエフェクターを含み、前記第ｉ番目の作業後に、第１の姿勢から前記第１の姿勢とは異なる第２の姿勢へと移る間に前記エンドエフェクターを物体に接触させることで、前記第ｉ＋１番目の作業を行ってもよい。
【００１１】
これにより、力覚センサーが設けられたエンドエフェクターを物体に接触させることで、第ｉ番目の作業とは異なる第ｉ＋１番目の作業を行うこと等が可能になる。
【００１２】
また、本発明の他の態様は、第ｉ（ｉは自然数）番目の作業後に前記第ｉ番目の作業とは異なる第ｉ＋１番目の作業を行い、第ｊ（ｊはｊ≠ｉを満たす自然数）番目の作業後に前記ｊ番目の作業とは異なる第ｊ＋１番目の作業を行うロボットを動作させる制御装置であって、前記ロボットに、前記第ｉ番目の作業後に、前記第ｉ番目の作業の作業時におけるロボットの関節における校正に関する情報を変更することなく、前記第ｉ＋１番目の作業を行わせ、前記第ｊ番目の作業後にロボットキャリブレーションを行い、前記ロボットキャリブレーションを行った後に前記第ｊ＋１番目の作業を行わせる制御装置に関係する。
【００１３】
本発明の他の態様では、所与の作業の後に異なる作業を行う場合であっても、キャリブレーションを行う必要がない場合には、キャリブレーションを行わない。そのため、従来手法であれば作業が変わる度にキャリブレーションを行う必要があった多品種製造の場合であっても、キャリブレーションに関する処理負荷を軽減し、生産性を向上させることが可能になる。
【００１４】
また、本発明の他の態様は、第ｉ（ｉは自然数）番目の作業後に前記第ｉ番目の作業とは異なる第ｉ＋１番目の作業を行い、第ｊ（ｊはｊ≠ｉを満たす自然数）番目の作業後に前記ｊ番目の作業とは異なる第ｊ＋１番目の作業を行うロボットを含み、前記ロボットは、前記第ｉ番目の作業後に、前記第ｉ番目の作業の作業時におけるロボットの関節における校正に関する情報を変更することなく、前記第ｉ＋１番目の作業を行い、前記第ｊ番目の作業後にロボットキャリブレーションを行い、前記ロボットキャリブレーションを行った後に前記第ｊ＋１番目の作業を行うロボットシステムに関係する。
【００１５】
本発明の他の態様では、所与の作業の後に異なる作業を行う場合であっても、キャリブレーションを行う必要がない場合には、キャリブレーションを行わない。そのため、従来手法であれば作業が変わる度にキャリブレーションを行う必要があった多品種製造の場合であっても、キャリブレーションに関する処理負荷を軽減し、生産性を向上させることが可能になる。
【００１６】
また、本発明の他の態様は、第ｉ（ｉは自然数）番目の作業後に前記第ｉ番目の作業とは異なる第ｉ＋１番目の作業を行い、第ｊ（ｊはｊ≠ｉを満たす自然数）番目の作業後に前記ｊ番目の作業とは異なる第ｊ＋１番目の作業を行うロボットの制御方法であって、前記ロボットに、前記第ｉ番目の作業後に、前記第ｉ番目の作業の作業時におけるロボットの関節における校正に関する情報を変更することなく、前記第ｉ＋１番目の作業を行わせ、前記第ｊ番目の作業後にロボットキャリブレーションを行い、前記ロボットキャリブレーションを行った後に前記第ｊ＋１番目の作業を行わせる制御方法に関係する。
【００１７】
本発明の他の態様では、所与の作業の後に異なる作業を行う場合であっても、キャリブレーションを行う必要がない場合には、キャリブレーションを行わない。そのため、従来手法であれば作業が変わる度にキャリブレーションを行う必要があった多品種製造の場合であっても、キャリブレーションに関する処理負荷を軽減し、生産性を向上させることが可能になる。
【００１８】
このように、本発明の幾つかの態様によれば、所与の作業の後に異なる作業を行う場合にも、状況に応じてキャリブレーションをスキップすることで、キャリブレーションに関する処理負荷を軽減するロボット、制御装置、ロボットシステム及び制御方法等を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】本実施形態に係るロボットの構成例。
【図２】本実施形態に係るロボットの他の構成例。
【図３】本実施形態に係るロボットの詳細な構成例。
【図４】撮像部を含むロボットシステムの配置の例。
【図５】カメラキャリブレーションの概念図。
【図６】カメラキャリブレーションにおける座標系の関係図。
【図７】キャリブレーションの流れを説明する図。
【図８】本実施形態の処理を説明するフローチャート。
【図９】力制御の例。
【発明を実施するための形態】
【００２０】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２１】
１．本実施形態の手法
まず本実施形態の手法について説明する。ロボットによる作業を行う場合に、ロボットの位置決め精度、すなわち手先（ハンド）等をどれだけ正確に目標位置姿勢に移動させることができるかは、行われる作業に大きな影響を与える。理想的には、ロボットのモデルが決定されれば、当該モデルに従って手先位置姿勢を一意に求めることができる。ここでのモデルとは、例えば２つの関節の間に設けられるフレーム（リンク）の長さや、関節の構造（関節の回転方向や、オフセットがあるか否か等）等の情報である。
【００２２】
しかし、ロボットには種々の誤差が含まれる。具体的には、ロボットの誤差要因には、幾何学的な誤差要因と、非幾何学的な誤差要因が考えられ、前者はリンクの長さのずれ等であり、後者は重力によるたわみ等である。これらの誤差要因により、ロボットに所与の姿勢を取らせる制御（例えば各関節の角度を決定する制御）を行った場合に、ロボットベース座標系（理想的な空間）での手先位置と、ロボット手先座標系（実測空間）での手先位置とが異なる値となってしまう。
【００２３】
これに対して、上記誤差要因によるずれを補正するロボットキャリブレーションが広く用いられている。ロボットキャリブレーションとは、ユーザーがメーカーマニュアル等に従い、ティーチングペンダント等を用いてロボットを動作させることでロボットの関節を校正するものを言い、ロボット自身が判断してロボット自身で動いてロボット自身の関節を校正するものは含まない。ロボットキャリブレーションの詳細については後述するが、例えばロボットベース座標系とロボット手先座標系との対応関係を求める処理を行えばよい。２つの座標系（空間）の間での変換がどのように行われるかがわかれば、関節角等の制御パラメーターとロボット手先座標系との対応関係がわかるため、どのようなロボット制御を行えば、実際に（実測空間において）ロボットの手先がどの位置に移動するかを正確に求めることができる。
【００２４】
しかし、ロボット手先座標系とロボットベース座標系との対応関係（例えば座標変換を行う行列等の変換パラメーター）は、一般的に位置に応じて異なるものとなる。例えば、重力によるたわみを誤差要因とする誤差であれば、アームを長く伸ばした方が、アームを短く畳んでいる場合に比べてより大きくアームがたわむため、誤差が大きくなる。すなわち、アームの状態及び当該状態によって決定される手先位置が変化すれば、誤差が変化するし、当該誤差を表す２つの座標系の対応関係も変化する。
【００２５】
そのため、ロボットの手先位置として異なるＮ点の位置（広義にはＮ個の領域）が考えられ、その全てにおいて高精度でのキャリブレーションを行うのであれば、基本的にはＮ個の変換パラメーターを生成、記憶しておく必要がある。ロボットの手先は非常に多くの位置をとることができるため、あらゆる手先位置の場合にも対応できる高精度でのキャリブレーションを実行することは現実的ではない。
【００２６】
結果として、従来のロボットでも出荷前にロボットメーカーによるロボットキャリブレーションは行われていたが、当該ロボットがユーザーにより作業環境に設置された後に、再度ユーザーによるロボットキャリブレーションが必要であった。具体的には、ユーザーが望む作業での手先位置を決定し、当該手先位置での誤差を補正する高精度での変換パラメーターを求める処理を行っていた。しかしロボットキャリブレーションは専門的な知識が要求され、特に高精度（例えばキャリブレーション後の誤差をｍｍ以下のオーダーとする精度）でのキャリブレーションをユーザーに行わせるのは負担が大きい。
【００２７】
つまり、従来手法であれば、同一対象物に対して同一の作業を継続して行っている場合を除いて、必ず高精度のキャリブレーションを行う必要があった。そこで本出願人は、例えば撮像部の複数回の撮像により行われる制御（狭義にはビジュアルサーボ制御）を用いることで、キャリブレーションを状況に応じて行わない（スキップする）手法を提案する。人間が作業状況を目で見ながら腕や手の動かし方を微調整できるのと同様に、ビジュアルサーボ制御では撮像画像に対する画像処理結果をフィードバックするため、目標位置からずれていたとしても、当該ずれを認識して修正することができる。通常、キャリブレーションをスキップすればずれが生じる（高精度で手先を目標位置まで移動させることは困難となる）が、ビジュアルサーボ制御を利用することで、当該ずれを修正できる。
【００２８】
なお特許文献１には、「キャリブレーションを厳密に行わずとも、正確且つ迅速にロボットアームの位置姿勢を制御することができる」との記載がある。しかしこれは、キャリブレーションを行う上で精度が低くてもよいという趣旨の記載と考えられ、キャリブレーション自体をスキップすることを明確に示唆するとは言えない。
【００２９】
さらに、本出願人は種々の工具を用い、種々のワークに対し、種々の作業を実行可能な汎用性の高いロボットを想定している。結果として、本出願人の想定するロボットは、多品種製造（狭義には１品種当たりは少量製造）に用いられることになる。作業の対象物が変われば、作業台等の作業環境も変化するだろうし、作業位置（作業の際の手先位置）も変化する。よって上述したように、作業が変化した場合には、それ以前のキャリブレーション結果では充分な精度が出ないことが想定される。従来手法では、そのような場合には必ず再度のキャリブレーションを実行する必要があるため、多品種製造を行うロボットではキャリブレーションに関する負担が非常に大きいものになってしまう。
【００３０】
以上の点をふまえ、本出願人は第ｉ（ｉは自然数）番目の作業後に第ｉ番目の作業とは異なる第ｉ＋１番目の作業を行い、第ｊ（ｊはｊ≠ｉを満たす自然数）番目の作業後にｊ番目の作業とは異なる第ｊ＋１番目の作業を行うロボットであって、第ｉ番目の作業後に、第ｉ番目の作業の作業時におけるロボットの関節における校正に関する情報を変更することなく、第ｉ＋１番目の作業を行い、第ｊ番目の作業後にロボットキャリブレーションを行い、ロボットキャリブレーションを行った後に第ｊ＋１番目の作業を行うロボットを提案する。例えば、少なくとも２種類以上の作業を含む複数の作業を行うロボットであって、図１に示したようにロボット機構３００（図１の例であればアーム３１０とエンドエフェクター３１９）と、ロボット制御部１００とを含み、ロボット制御部１００は、複数の作業のうちの第ｋ（ｋは自然数）番目の作業の後に、第ｋ番目の作業とは異なる第ｋ＋１の作業を行う場合に、キャリブレーションが不要である場合には、キャリブレーションを行うことなく、ロボット作業中に撮像部により複数回撮影を行うことによるロボット制御により、第ｋ＋１の作業を行い、キャリブレーションが必要である場合には、キャリブレーションを行った後に、ロボット作業中に撮像部により複数回撮影を行うことによるロボット制御により、第ｋ＋１の作業を行うロボットであってもよい。
【００３１】
ここで、ｉは自然数であり、ロボットの作業が第１番目の作業〜第Ｎ（Ｎは２以上の整数）番目の作業から構成される場合には、ｉは１≦ｉ≦Ｎ−１を満たす整数となる。また、自然数ｓと自然数ｔが、ｓ＜ｔの関係を満たす場合、第ｔ番目の作業は第ｓ番目の作業に比べて時系列的に後に実行されるものとする。すなわち、第ｉ＋１番目の作業は、第ｉ番目の作業よりも時系列的に後に実行される作業であり、狭義には第ｉ＋１番目の作業は第ｉ番目の作業の次に行われる作業である。また、この点は自然数ｊ、ｋについても同様である。
【００３２】
また、複数の作業における各作業は、ロボットが繰り返し行う作業であり、処理前工程、処理工程、処理後工程という一連の流れが１つの作業である。処理前工程とは、処理工程前に行われる工程であり、例えば、処理工程において用いられるワークを当該ワークの第１載置エリアから作業台等の作業スペースに移動させる工程である。第１載置エリアにおけるワークの載置方法としては、例えば、パレット置き、バラ置き、ビン置き等がある。処理工程とは、処理前工程で移動させたワークに対して処理を行う工程である。ワークが２つ以上ある場合、処理工程では、例えば、ワークを組み立てる、一方のワークを他方のワークに嵌合する、一方のワークを他方のワークに挿入する、という処理を行う。また、例えば、ネジ等の止め具を用いて、ワーク同士を結合させる、という処理を行う。一方、ワークが１つである場合、処理工程では、例えば、当該ワークを曲げる、という処理を行う。処理後工程とは、処理工程後に行われる工程であり、例えば、２つ以上のワークを組み立てた組立品やネジを用いてワーク同士を結合させた結合品等の処理工程における完成品を第２載置エリアに載置する工程である。なお、例えば、ワークを組み立てる、一方のワークを他方のワークに嵌合する、という処理だけの場合には、本実施形態では、１つの作業には当らない。
【００３３】
第ｉの作業と第ｉ＋１の作業とは、処理前工程、処理工程、処理後工程のいずれか１つの工程内容の少なくとも一部が異なっている。例えば、処理工程において「ワークを組み立てる」処理を含む作業と、処理工程において「一方のワークを他方のワークに嵌合する」処理を含む作業とは、異なる作業であると考える。また、「バラ置きされたワークＡとワークＢとを組み立てて、第２載置エリアに載置する」作業と、「バラ置きされたワークＡとワークＢとは種類が異なるワークＣとを組み立てて、第２載置エリアに載置する」作業とは、異なる作業であると考える。さらに、処理工程において「ネジを用いてワーク同士を結合させる」処理を含む作業であっても、例えば、結合されるワークが異なる場合や、結合されるワークが同じであるが、ネジが差し込まれる位置が異なる場合には、異なる作業である。
【００３４】
また、第１の姿勢から当該第１の姿勢とは異なる第２の姿勢へと移る間に被撮像物を複数回撮像することによるロボットの動作は、ビジュアルサーボ制御により実現されてもよい。ビジュアルサーボ制御とは、撮像部からの撮像画像と、作業のゴール状態を表す参照画像（ゴール画像）との比較処理を行い、２つの画像の差が小さくなるようなフィードバック制御を行う制御である。ビジュアルサーボ制御を行うことで、徐々に現在の状態（撮像画像に撮像される状態）と、ゴール状態とが近づいていき、最終的にはゴール状態を実現することが可能になる。ビジュアルサーボ制御では、ゴール状態に近づくように徐々に関節角等のパラメーターが更新されていく。位置制御のようにパラメーターを固定された目標値に変化させる手法とは異なり、現在の状態を見つつパラメーター適切な方向へ近づけていくことができるため、高精度での位置決めが可能になる。ただし、撮像部により複数回撮影を行うことによるロボット制御としては、ビジュアルサーボ制御に限られない。例えば、パターンマッチングによる認識に基づくロボット制御であっても良い。
【００３５】
このようにすれば、第ｉの作業の後に、当該第ｉの作業と異なる第ｉ＋１の作業を行う場合にも、適切なロボット制御が可能になる。第ｉの作業から、第ｉ＋１の作業への変化タイミングとは、処理前工程、処理工程、処理後工程のいずれか１つの工程における内容が変化したタイミングであり、それまでのロボットの関節に関する校正情報（これはキャリブレーション結果であり、例えば第ｉの作業で用いていたロボットベース座標系とロボット手先座標系との対応関係を表す変換パラメーターであってもよい）をそのまま用いてしまうと精度に問題が生じる可能性が生じるタイミングである。この場合、従来手法では必ずキャリブレーションを実行するしかなかったが、本実施形態の手法ではキャリブレーションをスキップすることが可能になる。
【００３６】
キャリブレーションをスキップした場合には、例えばそれ以前に求められていたキャリブレーションの結果をそのまま用いることになるため誤差が生じる可能性が高いが、本実施形態では当該誤差を例えばビジュアルサーボ制御により吸収する。多品種少量生産の現場では、作業が変更されるケース、すなわち従来手法であればキャリブレーションが再度行われるケースが高頻度で発生することになるが、本実施形態の手法であればキャリブレーションが省略できるため、処理負荷が軽減される。
【００３７】
例えば、本実施形態に係るロボットは、力覚センサーが設けられたエンドエフェクターを含み、第ｉ番目の作業後に、少なくとも第１の姿勢から第１の姿勢とは異なる第２の姿勢へと移る間にエンドエフェクターを物体に接触させることで、第ｉ＋１番目の作業を行ってもよい。
【００３８】
ここで、力覚センサーが設けられたエンドエフェクターを物体に接触させることによるロボットの動作は、例えばロボットのエンドエフェクターにはたらく外力を力覚値として検出するインピーダンス制御等の力制御により実現されてもよい。例えば、図９に示したように、エンドエフェクターで把持した物体ＯＢを、穴部ＨＬにはめ込む作業を考えた場合、位置制御であれば穴部ＨＬの位置に関する情報を取得しておき、ロボットのアームを当該位置に合うように移動させることになる。そのため、ロボットキャリブレーションを省略することで手先位置に誤差が生じた場合、物体ＯＢを適切に穴部ＨＬにはめ込むことができない。その点、力制御によれば、図９に示すように、粗い位置決めの後に、探って位置合わせをして、物体ＯＢを穴部ＨＬにはめ込むことも可能になる。つまり、位置決め自体は多少精度が低くても作業を完了できるため、第ｉ番目の作業の作業時におけるロボットの関節における校正情報を変更することなく、第ｉ＋１番目の作業を行うことが可能になる。
【００３９】
なお、以下ではロボットキャリブレーションを省略するに当たり、ビジュアルサーボ制御を用いるものとして説明する。しかし、被撮像物を複数回撮像することがビジュアルサーボ制御以外により実現されてもよいし、そもそも被撮像物を複数回撮像するのではなく、力覚センサーが設けられたエンドエフェクターを物体に接触させることによるロボットの動作のように、他の手法を用いることでロボットキャリブレーションの省略を実現してもよく、以下の説明はそれらの手法に拡張して考えることができる。
【００４０】
なお、キャリブレーションが必要か不要かはユーザーにより判断されてもよいし，ロボット側で自動的に判断してもよい。ユーザーであれば、ロボットが所望の動作を行っているか否かを目視等で容易に判断できるため、ロボットは後述するインターフェース部６００等で判断結果を受け取り、当該判断結果に従ってキャリブレーションのスキップ或いは実行を行えばよい。或いはロボットが撮像画像やセンサー情報を取得することで、自身がユーザーの望む動作を行っているかを自動判定してもよい。キャリブレーションが必要か不要かをロボットが自動判定する手法については後述する。また、ロボットが自動判定した上で結果をユーザーに提示し、最終的な判断をユーザーに委ねる場合のように、ユーザーとロボットの両方により判定を行ってもよい。
【００４１】
以下、本実施形態に係るロボット及び制御装置等の詳細なシステム構成例を説明した後、キャリブレーションの詳細について説明する。具体的には、上述したロボットキャリブレーションの詳細、及びカメラに対して行われるカメラキャリブレーションについて説明する。最後に、ロボットの出荷前から、設置、実際の作業等の各フェーズにおけるキャリブレーションの流れを説明する。
【００４２】
２．システム構成例
本実施形態に係るロボットのシステム構成例を示す。本実施形態のロボットは、図１に示したようにロボット制御部１００と、ロボット機構３００を含む。図１の例では、ロボット機構３００は、アーム３１０と、当該アーム３１０の先端等に設けられるエンドエフェクター３１９を含む。ここでのエンドエフェクター３１９とは、ワークを把持するハンドであってもよいし、アーム３１０に対して取り付けられる工具等であってもよい。
【００４３】
ただし、本実施形態に係るロボットの構成例は図１に限定されない。例えば、図２に示したように、ロボットは、ロボット機構３００と、ベースユニット部４００を含んでもよい。図２に示したロボット機構３００は、頭部や胴体に相当する部分に加え、第１のアーム３１０と第２のアーム３２０を含む。図２では第１のアーム３１０は、関節３１１，３１３と、関節の間に設けられるフレーム３１５，３１７から構成され、第２のアーム３２０についても同様のものとしたがこれに限定されない。なお、図２では２本のアームを有する双腕ロボットの例を示したが、本実施形態のロボットは３本以上のアームを有してもよい。
【００４４】
ベースユニット部４００は、ロボット機構３００の下部に設けられ、ロボット機構３００を支持する。図２の例では、ベースユニット部４００には車輪等が設けられ、ロボット全体が移動可能な構成となっている。ただし、ベースユニット部４００が車輪等を持たず、床面等に固定される構成であってもよい。図２のロボットでは、ベースユニット部４００に制御装置（ロボット制御部１００）が格納されることで、ロボット機構３００と制御装置とが一体として構成される。
【００４５】
また、図２に示したように、本実施形態に係るロボットが頭部に設けられるグローバルカメラＧｃａｍを含んでもよい。図２の例ではＧｃａｍはステレオカメラを想定している。また図２では、エンドエフェクター３１９として指構造を有する把持部を記載したが、エンドエフェクター３１９としてハンドアイカメラＨｃａｍを用いてもよい。或いは、１つのアームに把持部とハンドアイカメラＨｃａｍを両方設けてもよい。
【００４６】
その他、本実施形態のロボットに含まれるロボット機構の構成は、種々の変形実施が可能である。
【００４７】
図３に本実施形態に係るロボットの詳細なシステム構成例を示す。図３に示したように、ロボットはロボット制御部１００と、記憶部２００と、ロボット機構３００と、インターフェース部６００を含む。
【００４８】
記憶部２００は、ロボット制御部１００等のワーク領域となるもので、その機能はＲＡＭ等のメモリーやＨＤＤ（ハードディスクドライブ）などにより実現できる。そして記憶部２００は、キャリブレーションの結果を表すロボットの関節の校正に関する情報（例えばキャリブレーション情報）を記憶する。ここで、ロボットの関節とは、ロボットを駆動させるアクチュエーターが組み込まれている部分を言う。
【００４９】
ここでのロボットの関節の校正に関する情報は、上述したとおりキャリブレーションの結果を表す情報であればよく、その形式は任意である。例えば、理想的なロボットモデルであれば所与の関節角をｘ度としたときに、ロボットの手先位置が所望の位置となるが、キャリブレーションの結果、実際のロボットでは当該関節角をｘ’度としたときに、ロボットの手先位置が所望の位置となることがわかったとする。この場合、関節角を理想的な値からｘ’−ｘだけずらすことで所望の制御が可能となるため、このずれ量が校正に関する情報となる。
【００５０】
以上の点をふまえれば、本実施形態の手法でキャリブレーションをスキップする場合には、以前のキャリブレーションの結果を流用することが自然である。つまり、記憶部２００にキャリブレーション情報を記憶しておき、ロボット制御部１００は、ｉ＋１の作業において、キャリブレーションが不要である場合には、第ｉの作業で使用した校正情報（キャリブレーション情報）を用いて、第ｉ＋１の作業を行う。
【００５１】
インターフェース部６００は、ユーザーからの情報入力を受け付ける。ここで受け付ける情報入力は、キャリブレーションが必要か否かについての情報であってもよい。その場合、ロボット制御部１００は、インターフェース部６００に対する情報入力に基づいて、キャリブレーションが必要であるか不要であるかを判断する。
【００５２】
例えば、ロボット制御部１００においてキャリブレーションが必要であるか否かの自動判定を行い、その結果を参考情報として提示しつつ、ユーザーに最終的な判断を委ねてもよい。その場合、インターフェース部６００は、キャリブレーションを実行する、しないという情報入力をユーザーから受け付け、当該入力に従ってキャリブレーションが必要か否か判断する。なお、キャリブレーションが必要か否かについての自動判定の手法の例については後述する。また、ロボット制御部１００では自動判定を行わずに、インターフェース部６００は、ユーザーからキャリブレーションを実行する、しないという情報入力を受け付けるものであってもよい。ここでのインターフェース部６００は、例えば図１に示した操作部６１０や表示部６２０等により実現される。
【００５３】
なお、ビジュアルサーボ制御に用いられる撮像部（広義にはロボット制御のためにロボット作業中に複数回の撮影を行う撮像部）は、ロボットに取り付けられた撮像部であってもよい。具体的には、上述したＧｃａｍやＨｃａｍをビジュアルサーボ制御に用いてもよい。ただし、ロボットに含まれるＧｃａｍやＨｃａｍをビジュアルサーボ制御には用いず、ロボットの外部に設けられる撮像部を利用してもよい。この場合、ビジュアルサーボ用の撮像画像を取得する撮像部を含むロボット制御システムにより、本実施形態の手法が実現される。
【００５４】
また、本実施形態の手法は、第ｉ（ｉは自然数）番目の作業後に第ｉ番目の作業とは異なる第ｉ＋１番目の作業を行い、第ｊ（ｊはｊ≠ｉを満たす自然数）番目の作業後にｊ番目の作業とは異なる第ｊ＋１番目の作業を行うロボットを動作させる制御装置であって、ロボットに、第ｉ番目の作業後に、第ｉ番目の作業の作業時におけるロボットの関節における校正情報を変更することなく、第ｉ＋１番目の作業を行わせ、第ｊ番目の作業後にロボットキャリブレーションを行い、ロボットキャリブレーションを行った後に第ｊ＋１番目の作業を行わせる制御装置に適用できる。
【００５５】
ここでの制御装置は、ロボットの外部に設けられるものであり、例えば図３に示したロボットのうち、ロボット制御部１００と、記憶部２００と、インターフェース部６００とを含む装置であってもよい。
【００５６】
また、本実施形態の手法は、第ｉ（ｉは自然数）番目の作業後に第ｉ番目の作業とは異なる第ｉ＋１番目の作業を行い、第ｊ（ｊはｊ≠ｉを満たす自然数）番目の作業後にｊ番目の作業とは異なる第ｊ＋１番目の作業を行うロボットを含み、ロボットは、第ｉ番目の作業後に、第ｉ番目の作業の作業時におけるロボットの関節における校正情報を変更することなく、第ｉ＋１番目の作業を行い、第ｊ番目の作業後にロボットキャリブレーションを行い、ロボットキャリブレーションを行った後に第ｊ＋１番目の作業を行うロボットシステムに適用できる。
【００５７】
ここでのロボットシステムは、例えばロボットと、上述した制御装置とを含むものであってもよい。或いは、ロボットシステムがロボットに加えて、制御装置以外の機器を含むものであってもよい。
【００５８】
具体的には、本実施形態の手法は、少なくとも２種類以上の作業を含む複数の作業を行うロボット制御システムであって、ロボット機構３００と、ロボット制御部１００と、ロボットの作業中に複数回撮影を行う撮像部５００を含み、ロボット制御部１００は、複数の作業のうちの第ｋの作業の後に、第ｋの作業とは異なる第ｋ＋１の作業を行う場合に、キャリブレーションが不要である場合には、キャリブレーションを行うことなく、撮像部５００の複数回の撮影によるロボット制御により、第ｋ＋１の作業を行い、キャリブレーションが必要である場合には、キャリブレーションを行った後に、撮像部５００の複数回の撮影によるロボット制御により、第ｋ＋１の作業を行うロボット制御システムに適用できる。
【００５９】
この場合の撮像部５００の配置例を図４に示す。図４の例では、撮像部５００として第１の撮像部５００−１と、第２の撮像部５００−２が設けられ、第１の撮像部５００−１と第２の撮像部５００−２は、ともに作業台上に置かれる。ただし、撮像部５００は図４の例に限定されるものではなく、配置される位置や個数等を変更してもよい。
【００６０】
３．キャリブレーション
次に本実施形態におけるキャリブレーションの詳細について説明する。キャリブレーションとしてはロボットキャリブレーションと、カメラキャリブレーションが考えられる。また、キャリブレーションとしては、μｍ以下の精度での厳密なキャリブレーションと、ｍｍ単位の精度の簡易的なキャリブレーションとがあり、本実施形態では、いずれのキャリブレーションであっても良い。厳密なキャリブレーションは、専門知識を有したユーザー（システムインテグレーター等）により行われるか、或いは専門知識を有さないユーザーにより多くの工数をかけて行われるものであるのに対して、簡易的なキャリブレーションは、専門知識を有さないユーザーでも比較的少ない工数により実現できるものである。以下、各キャリブレーションの詳細を説明する。
【００６１】
３．１  ロボットキャリブレーション
まずロボットキャリブレーションについて説明する。ロボットキャリブレーションは、上述したようにロボットベース座標系（理想的な空間）と、ロボット手先座標系（実測空間）の対応関係を求める処理である。
【００６２】
ロボットベース座標系とロボット手先座標系とのずれは、上述したように幾何学的な誤差要因と、非幾何学的な誤差要因とにより生じる。幾何学的な誤差要因は、ロボット機構３００の要素加工時の製作誤差や、組立時の寸法誤差等であり、具体的には上述したリンク長の他、リンク上に設定した隣接関節間の位置とねじれ角のずれや、各関節角のオフセット値のずれ等が考えられる。また、非幾何学的な誤差要因としては、上述した重力等によるたわみの他、歯車間の伝達誤差や、歯車におけるバックラッシュ等が考えられる。
【００６３】
ロボットキャリブレーションを行うには、実際のロボットを用いて、手先位置をロボット手先座標系の所与の位置へ移動させた場合の、各関節角の値（或いは各関節を駆動させるアクチュエーターの駆動量等）を求めればよい。各関節角の値が決まれば、ロボットのモデルからロボットベース座標系での手先位置（理想的な場合の手先位置）が求められるため、ロボット手先座標系とロボットベース座標系との対応関係を求めることができる。
【００６４】
そのためには、何らかの手法により、関節角と手先位置の組を求める必要がある。一例としては、高精度の位置決めされた治具を作成し、手先位置を当該治具に合わせればよい。このようにすれば、治具に合わせた際の手先位置は既知となるため、そのときの関節角の値を読み取れば、手先位置と関節角の組を求めることができる。或いは、所与の関節角となるように制御を行い、その際の手先の３次元位置を測定してもよい。具体的には超音波を用いた距離測定手法や、測量機を用いる手法、手先にＬＥＤ等を設けて当該ＬＥＤを検出して測量する手法、機械式の３次元測定器を用いる手法等により、手先位置を求めればよい。この場合、関節角が既知であるため、当該関節角と、測定した手先位置を組にすればよい。
【００６５】
３．２  カメラキャリブレーション
次にカメラについてのキャリブレーションであるカメラキャリブレーションについて説明する。カメラキャリブレーションとは、図５に示したように実世界のカメラとカメラモデルとを対応付ける処理である。この対応付けが正確に行えていれば、撮像画像に基づいて、当該撮像画像に撮像された被写体の実空間における３次元位置を演算すること等が可能になる。
【００６６】
例えば、図２に示したグローバルカメラＧｃａｍ等では、作業台上に配置されたワーク等の対象物の認識処理を行い、当該対象物の位置（狭義にはロボットに対する相対位置）を認識する場合がある。その場合、認識した位置に対して、エンドエフェクター３１９を移動させて作業を行うことなどが考えられるため、作業を精度よく行うためには撮像画像から精度よく位置を演算する必要があり、そのためにはカメラキャリブレーションが必要となる。
【００６７】
カメラキャリブレーションにより求める対象は、所与の被写体を撮像した場合に、当該被写体の画像上での位置姿勢（サイズを含む）に影響を与える要素であり、外部パラメーターと内部パラメーターに分けることができる。
【００６８】
外部パラメーターとは、カメラの配置される位置姿勢を表すパラメーターであり、例えばレンズの中心位置の座標と、レンズの光軸の方向である。また、内部パラメーターとは、カメラが決定されれば配置位置に関係なく決定されるパラメーターであり、例えば焦点距離、画像中心、画像サイズ（画素サイズ）、歪曲収差係数等が考えられる。
【００６９】
これらの情報は設計時に設定されているものである。例えば、図２のグローバルカメラＧｃａｍであれば、ロボットに対する位置（例えばロボットベース座標系での座標値）や光軸の方向は既知であるし、焦点距離等の情報もカメラのスペックから既知である。しかし、ロボットキャリブレーションにおけるロボットモデルと同様に、それらは理想的な状況での値であって誤差が生じうるため、カメラキャリブレーションが必要となる。
【００７０】
カメラキャリブレーションは、図６に示したように、ワールド座標系と画像座標系との関係を求める処理と考えることができ、当該関係は、ワールド座標系とカメラ座標系の関係、及びカメラ座標系と画像座標系の関係を求めれば演算できる。上記外部パラメーターとは、ワールド座標系とカメラ座標系の関係を表すパラメーターであり、内部パラメーターとはカメラ座標系と画像座標系の関係を表すパラメーターである。
【００７１】
具体的には、幾何学的特性及び光学的特性が既知の対象物を撮影し、対象物固有の特徴と、画像特徴とを対応付ける。この対応付けは、例えば特徴点のグローバル座標系での座標値と、当該特徴点に対応する画像座標系での座標値を対応づける処理等で実現できる。その後、カメラモデルに基づいてパラメーターを推定する。更に具体的な手法については、カメラキャリブレーションとして種々の手法が知られており、本実施形態におけるカメラキャリブレーションはそれらを広く適用可能であるため、詳細な説明は省略する。
【００７２】
本実施形態に用いられる撮像部のうち、図２に示したグローバルカメラＧｃａｍやハンドアイカメラＨｃａｍについては、上述したように物体の位置認識等に用いられる可能性がある。そのため、ＧｃａｍやＨｃａｍについては外部パラメーターと内部パラメーターの両方についてカメラキャリブレーションを行う必要がある。
【００７３】
一方、図４に示したロボットシステムの撮像部５００はビジュアルサーボ用の撮像部である。ビジュアルサーボ制御においては、ゴール画像と撮像画像の比較ができればよく、原理的には撮像画像に撮像された被写体の３次元位置を求める必要がない。そのため、外部パラメーターについてはカメラキャリブレーションを行わなくてもよい。それに対して、レンズ等が変化すれば被写体の見え方が変化してしまうため、内部パラメーターは求めておく必要がある。つまり、撮像部５００のように、ビジュアルサーボ用であって位置認識等に用いられないことがわかっている撮像部については、内部パラメーターを対象としたカメラキャリブレーションを行えばよい。本明細書では、外部パラメーターと内部パラメーターの両方を対象とするキャリブレーションと区別するために、内部パラメーターを対象としたキャリブレーションを第２のカメラキャリブレーションと表記する。
【００７４】
つまりロボットに設けられるカメラと、ビジュアルサーボ用のロボットシステムの撮像部５００とのキャリブレーションは別観点で行われる。そのため、ビジュアルサーボ制御に用いられる撮像部５００のレンズが変更された場合には、ロボット制御部１００は、キャリブレーション（ロボットキャリブレーション、又は外部パラメーターと内部パラメーターの両方を対象とするカメラキャリブレーション）が必要であるか不要であるかによらず、撮像部５００に対する第２のキャリブレーション（第２のカメラキャリブレーション）を行う。ここで、第２のカメラキャリブレーションを行う条件としてレンズの変更を挙げたのは、第２のカメラキャリブレーションは内部パラメーターを対象としたものであり、内部パラメーターは上述したように焦点距離等のレンズに依存する情報を含むためである。
【００７５】
また、カメラキャリブレーションを自動化する場合には、上述した手順をロボット側で実行する。内部パラメーターのキャリブレーションについて説明すれば、例えば、幾何学的特性及び光学的特性が既知の対象物として所与の模様が描かれたチェッカーボードを複数姿勢で撮影して、各画像の特徴点情報の対応を求める処理を自動化すればよい。具体的には、ロボットのエンドエフェクター３１９（狭義にはハンド等の把持部）でチェッカーボードを把持して、その状態でロボット機構３００を動かしてチェッカーボードを種々の姿勢にして撮像部で撮像を行う。この際のロボット機構３００の動作を設定しておけば、カメラキャリブレーションを自動化できる。ただしロボットキャリブレーションと同様に、キャリブレーションの開始指示（例えばユーザーがインターフェース部６００で開始ボタンを押下することによる指示）はユーザーにより行われる必要がある。
【００７６】
４．キャリブレーションの流れ
本実施形態に係るロボットについてのキャリブレーションがどのような流れで行われるかを、フェーズ別に説明する。なお、図８はロボット（ロボット制御部１００）の処理フローであるが、図７はキャリブレーションの流れを説明する図であり、ユーザーにより行われる行為も含むため、ロボットの処理フローを表すものではない。
【００７７】
図７に示したように、ロボットの出荷前に対応するＳＴＥＰ０では、ロボットのメーカーによりロボットキャリブレーションとカメラキャリブレーションが行われる。ここでのキャリブレーションは、ロボットの作業空間への設置前に行われるキャリブレーションであるため、設置前キャリブレーションとも表記する。つまり、設置前キャリブレーションは、ロボットキャリブレーション及びカメラキャリブレーションである
【００７８】
設置前キャリブレーションのうちのカメラキャリブレーションは、ロボットに設けられる撮像部（ＧｃａｍやＨｃａｍ）に対するキャリブレーションであり、外部パラメーターと内部パラメーターの両方を対象とする。設置前キャリブレーションは従来のロボットでも行われるものである。また、記憶部２００は、設置前キャリブレーションの結果を、キャリブレーション情報として記憶する。
【００７９】
設置前キャリブレーションが行われた後に、ロボットの出荷が行われ、ＳＴＥＰ１で工場等の動作位置にロボットが設置される。その後、ロボットの動作が実行される前に、ＳＴＥＰ２でビジュアルサーボ制御に用いられるカメラのカメラキャリブレーションが実行される。ここでのカメラキャリブレーションは、上述したように内部パラメーターを対象とした第２のカメラキャリブレーションである。ここで、第２のカメラキャリブレーションと、設置前キャリブレーションを分けているのは、ロボットとビジュアルサーボ用の撮像部５００が別々に販売される場合を想定しているためである。この場合、ロボットメーカーが第２のカメラキャリブレーションを行うことができないため、第２のカメラキャリブレーションは設置後にユーザーが行うことになる。或いは、ロボットメーカーがビジュアルサーボ用の撮像部５００を合わせて販売するとしても、レンズをユーザーに用意させたり、ユーザーによる自由なレンズ交換を可能にする場合もある。その場合にも、内部パラメーターに関するキャリブレーションはロボットメーカーはできないため、第２のカメラキャリブレーションはユーザーにより行われる。つまり、ビジュアルサーボ用の撮像部５００として、レンズまで含めてメーカーが用意したものをそのまま用いるのであれば、第２のカメラキャリブレーションについてもＳＴＥＰ０において、メーカーが行うものとしてもよい。
【００８０】
そして、ＳＴＥＰ３で実際にロボットを動作させる。本実施形態では例えばビジュアルサーボ制御を行うため、設置後のキャリブレーションをスキップし、設置前キャリブレーションの結果をそのまま用いたとしても高精度の位置決めが可能と考えられる。
【００８１】
つまり、記憶部２００は、ロボットの作業空間への設置前に行われた設置前キャリブレーションの結果を、キャリブレーション情報として記憶しておく。そして、ロボット制御部１００は、複数の作業のうちの第１の作業においては、キャリブレーションを行うことなく、記憶部２００に記憶されたキャリブレーション情報を読み出して、ロボット作業中に撮像部（狭義には図４の撮像部５００）により複数回撮影を行うことによるロボット制御により、第１の作業を行う。
【００８２】
ここでの第１の作業とは具体的にはロボットの設置後、初めて行われる作業であるが、これに限定されるものではない。メーカーからユーザーの工場等までの輸送や、ユーザー環境でのロボットの設置作業等において、ロボットが衝突、転倒する等の誤差要因を変化させることがなければ、設置前キャリブレーションの結果をそのまま設置後に使用しても問題がない。この場合、ユーザーにとってみれば購入したロボットを設置すれば、複雑なキャリブレーションを行うことなく作業を実行させることができ、非常に使いやすいロボットを実現することができる。ただし、上述した衝突等が起きれば、設置前キャリブレーションの結果を流用した場合に、ビジュアルサーボ制御でも吸収しきれない誤差が生じる可能性はあり得る。つまり、第１の作業でキャリブレーションをスキップできることによる効果は大きいが、必ずスキップするものには限定されず、必要な場合にはキャリブレーションを実行してもよい。
【００８３】
そして、ＳＴＥＰ３のロボット動作の実行を繰り返している中で、キャリブレーションが必要であると判断された場合には、ＳＴＥＰ４に示したようにロボットキャリブレーション及びカメラキャリブレーションを実行する。
【００８４】
具体的には、ロボット制御部１００は、第ｉ＋１の作業において、キャリブレーションが必要であると判断された場合には、設置前キャリブレーションとは異なる設置後キャリブレーションをキャリブレーションとして行ってキャリブレーション情報を更新し、更新後のキャリブレーション情報を用いて、ロボット作業中に撮像部により複数回撮影を行うことによるロボット制御により、第ｉ＋１の作業を行う。
【００８５】
ここで、設置前キャリブレーションはロボットの設置前にロボットメーカー側で行われるのに対して、設置後キャリブレーションはロボットの設置後に、ロボットを購入したユーザー側で行われることから、実行タイミング及び実行主体が異なる点で、異なるキャリブレーションとしている。つまり、設置前キャリブレーションと設置後キャリブレーションのキャリブレーション手法自体は同じものを用いることは妨げられない。ただし、設置前キャリブレーションは、ある決まった環境（作業台、環境光等が分かっている）で行えるので、例えばマーカー認識やチェッカーボード認識の精度が高い。また、作業台に治具を設置しても、作業台が微小に動くとキャリブレーション精度が落ちるが、設置前キャリブレーションではメーカー側が精度の高い（安定した）作業台を用意できる。つまり、キャリブレーション手法を同じにしたとしても、その精度については設置後よりも設置前の方が高いという違いが生じることがある。
【００８６】
つまり、基本的にはＳＴＥＰ３に示したように、キャリブレーションをスキップしながらロボットによる作業を実行し、必要に応じてＳＴＥＰ４に示したようにキャリブレーションを行ってキャリブレーション情報を更新する。更新後は、再びＳＴＥＰ３に戻り、更新後のキャリブレーション情報を用いてロボットによる作業を実行すればよい。
【００８７】
ＳＴＥＰ３，ＳＴＥＰ４におけるロボットの処理フローを図８に示す。図８のフローチャートでは、設置前キャリブレーションの結果をキャリブレーション情報として取得していることを前提とする。この処理が開始されると、まず取得していたキャリブレーション情報を用いて第１の作業を行う（Ｓ１０１）。ただし上述したように、Ｓ１０１の前にキャリブレーションが必要かの判断を行って、必要に応じてキャリブレーションを行うステップを追加してもよい。
【００８８】
そして、ロボット作業後に現在がキャリブレーションの必要か不要かの判定（以下、必要性判定とも表記する）を行うタイミングか否かを判定する（Ｓ１０２）。図８のフローチャートの例では、ロボット作業の実行後に毎回必要性判定を行うのではなく、Ｋ回（Ｋは２以上の整数）の作業の終了後に必要性判定を行う、或いは所与の時間が経過した後に必要性判定を行う場合を想定している。ただし、キャリブレーションの必要性判定を１回の作業終了ごとに毎回行ってもよく、その場合はＳ１０２のステップを省略できる。その他、必要性判定をどのようなタイミングで、或いはどの程度の頻度で行うかは種々の変形実施が可能である。
【００８９】
Ｓ１０２でＮＯの場合には、キャリブレーションを行うことなくＳ１０１に戻り、それまでのキャリブレーション情報を流用してロボット作業を継続する。一方、Ｓ１０２でＹｅｓの場合には、キャリブレーションの必要性判定を行う（Ｓ１０３）。
【００９０】
上述したように、ユーザーがキャリブレーションの必要性判定を行い、その結果を表す情報をインターフェース部６００を介して入力してもよい。その場合Ｓ１０３は、インターフェース部６００によりユーザーの入力を受け付け、当該入力に従った制御を行う処理となる。或いは、ロボット側（狭義にはロボット制御部１００）において、キャリブレーションの必要性判定を自動的に行ってもよい。
【００９１】
キャリブレーションの必要性判定の条件としては、例えば、第ｉの作業と、当該第ｉの作業と異なる作業である第ｉ＋１の作業とが、実質的に同一作業であると言える場合には、キャリブレーションが不要であると判定する。一方、例えば、第ｉ＋１の作業がロボットの動作領域の境界付近で行われる場合には、キャリブレーションが必要であると判定する。
【００９２】
Ｓ１０３でキャリブレーションが不要と判定された場合には、Ｓ１０１に戻り、キャリブレーションを行うことなくロボット作業を継続する。一方、Ｓ１０３でキャリブレーションが必要と判定された場合には、キャリブレーションを実行し（Ｓ１０４）、その結果を用いてキャリブレーション情報を更新する（Ｓ１０５）。Ｓ１０５の後はＳ１０１に戻り、更新後のキャリブレーション情報を用いてロボット作業を実行する。
【００９３】
なお、本実施形態では、ロボット制御として、撮像部により撮像された撮像画像を用いるビジュアルサーボ制御の例を挙げたが、これに限定されない。例えば上述したように、力覚センサー等の力センサーをエンドエフェクターに設け、当該力センサーによりエンドエフェクタに加わる力を検出し、その検出結果に基づいて、ロボット制御を行っても良い。
【００９４】
また、本実施形態のロボット制御部１００等は、その処理の一部または大部分をプログラムにより実現してもよい。この場合には、ＣＰＵ等のプロセッサーがプログラムを実行することで、本実施形態のロボット制御部１００等が実現される。具体的には、非一時的な情報記憶媒体に記憶されたプログラムが読み出され、読み出されたプログラムをＣＰＵ等のプロセッサーが実行する。ここで、情報記憶媒体（コンピューターにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＤＶＤ、ＣＤ等）、ＨＤＤ（ハードディスクドライブ）、或いはメモリー（カード型メモリー、ＲＯＭ等）などにより実現できる。そして、ＣＰＵ等のプロセッサーは、情報記憶媒体に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち、情報記憶媒体には、本実施形態の各部としてコンピューター（操作部、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピューターに実行させるためのプログラム）が記憶される。
【００９５】
なお、以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。またロボット、ロボット制御システム等の構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【００９６】
１００  ロボット制御部、２００  記憶部、３００  ロボット機構、３１０  アーム、
３１１，３１３  関節、３１５，３１７  フレーム、３１９  エンドエフェクター、
３２０  第２のアーム、４００  ベースユニット部、５００  撮像部、
６００  インターフェース部、６１０  操作部、６２０  表示部、
Ｇｃａｍ  グローバルカメラ、Ｈｃａｍ  ハンドアイカメラ
【図１】
2015089575.tif 000003
【図２】
2015089575.tif 000004
【図３】
2015089575.tif 000005
【図４】
2015089575.tif 000006
【図５】
2015089575.tif 000007
【図６】
2015089575.tif 000008
【図７】
2015089575.tif 000009
【図８】
2015089575.tif 000010
【図９】
2015089575.tif 000011