(57)【要約】      （修正有）【課題】ロボット装置に搭載されたステレオ・カメラの経年変化や機体の転倒などに伴うカメラ位置ずれなどの診断を支援する。【解決手段】診断用マットは、ランダム・ドット・パターン、フラクタル、自然画などの、均一で繰り返しの無いパターンなど、診断、キャリブレーションにおいて誤マッチングを避けられるようなテクスチャを備える。診断マット上に設置されたロボットは診断用マットを撮影するために適した姿勢をとり、ステレオ・カメラにおいて取得した画像から距離画像を生成し、この距離画像から得られる診断用マットの平面度に基づいて、ステレオ・カメラの性能を検証する。【選択図】図８
2004306249.tif 000002
【特許請求の範囲】
【請求項１】
ロボットに搭載されたステレオ・カメラの診断用装置において、
ステレオ・カメラ診断用のテクスチャが設けられた略平面状の表面部と、
前記表面部に設けられた、前記ロボットと前記表面部との位置関係を指示する指示部と、
を具備することを特徴とするステレオ・カメラ診断用装置。
【請求項２】
前記ロボットは、床面に接地する接地部位を備え、
前記指示部は、前記表面部上で前記ロボットの接地部位を配置する場所を指示する、
ことを特徴とする請求項１に記載のステレオ・カメラ診断用装置。
【請求項３】
前記ロボットは、足部を有する１以上の可動脚を備え、
前記指示部は、前記表面部上で前記ロボットの足部の足底を設置する場所を指示する、
ことを特徴とする請求項１に記載のステレオ・カメラ診断用装置。
【請求項４】
前記ステレオ・カメラ診断補助装置は折り畳み構造をなし、該折り畳み構造の開成時に略平面状となり、前記表面部を露出する、
ことを特徴とする請求項１に記載のステレオ・カメラ診断用装置。
【請求項５】
前記表面部は、テンプレート・マッチングによるステレオ・カメラ・システムの場合、テンプレート内のテクスチャが、エピポーラ・ライン上で正しくマッチングを行なえるようなテクスチャを備える、
ことを特徴とする請求項１に記載のステレオ・カメラ診断用装置。
【請求項６】
前記表面部は、診断、キャリブレーションにおいて誤マッチングを避けられるようなテクスチャを備える、
ことを特徴とする請求項１に記載のステレオ・カメラ診断用装置。
【請求項７】
前記表面部は、均一なテクスチャに斜線を入れたパターンを持つ、
ことを特徴とする請求項１に記載のステレオ・カメラ診断用装置。
【請求項８】
前記表面部は、幾何形状が既知となるキャリブレーション・パターンを備える、
ことを特徴とする請求項１に記載のステレオ・カメラ診断用装置。
【請求項９】
ロボット装置に搭載されたステレオ・カメラの診断方法において、
所定のテクスチャを持つ診断用マット上に載せたロボットが該診断用マットを撮影するために適した姿勢をとるステップと、
前記ステレオ・カメラにおいて取得した画像を基に距離画像を生成するステップと、
前記生成された距離画像から前記診断用マットの平面を検出するステップと、
前記検出した平面の平面度を測定し、該平面度が基準平面度より高いかどうかに応じて、ステレオ・カメラの性能を検証するステップと、
を具備することを特徴とするロボット装置に搭載されたステレオ・カメラの診断方法。
【請求項１０】
前記のステレオ・カメラの性能を検証するステップでは、前記生成された距離画像に基づいて前記診断用マットを構成する平面の方程式を求め、前記診断用マットの各点と該平面との距離の偏差に基づいて、該平面度が基準平面度より高いかどうかを判定する、
ことを特徴とする請求項９に記載のロボット装置に搭載されたステレオ・カメラの診断方法。
【請求項１１】
ロボット装置に搭載されたステレオ・カメラの診断方法において、
所定のテクスチャを持つ診断用マット上に載せたロボットが該診断用マットを撮影するために適した姿勢をとるステップと、
前記ステレオ・カメラにおいて取得した画像を基に距離画像を生成するステップと、
ロボットの関節のキネマティクスを解くことによって、床面座標系を基準としたカメラ座標系への変換式を求め、該変換式に基づいてカメラ座標系を基準とした床面の平面の方程式を求めるステップと、
ステレオ・カメラによる距離値とキネマティクスによる平面とを比較することにより、ステレオ・カメラを診断するステップと、
を具備することを特徴とするロボット装置に搭載されたステレオ・カメラの診断方法。
【請求項１２】
ロボット装置に搭載されたステレオ・カメラの診断方法において、
均一のテクスチャに斜線が施された診断用マット上に載せたロボットが該診断用マットを撮影するために適した姿勢をとるステップと、
前記ステレオ・カメラにおいて取得した画像を基に距離画像を生成するステップと、
斜線付近の距離値と基準平面を比較し、両者の差異に基づいてステレオ・カメラを診断するステップと、
を具備することを特徴とするロボット装置に搭載されたステレオ・カメラの診断方法。
【請求項１３】
ロボット装置に搭載されたステレオ・カメラの診断方法において、
所定のテンプレートを含んだテクスチャを持つ診断用マット上に載せたロボットが該診断用マットを撮影するために適した姿勢をとるステップと、
前記ステレオ・カメラにおいて基準カメラ画像及び検出カメラ画像を取得するステップと、
基準カメラ画像中のテンプレートを、検出カメラ画像中でエピポーラ・ラインに沿って探索し、それぞれのテンプレートに対してエピポーラ・ラインに沿って、相関値を表すマッチング・スコアを得るステップと、
マッチング・スコア値と基準値の比較結果に基づいて、エピポーラ・ラインのずれを判定するステップと、
を具備することを特徴とするロボット装置に搭載されたステレオ・カメラの診断方法。
【請求項１４】
ロボット装置に搭載されたステレオ・カメラの診断方法において、
所定のテンプレートを含んだテクスチャを持つ診断用マット上に載せたロボットが該診断用マットを撮影するために適した姿勢をとるステップと、
前記ステレオ・カメラにおいてキャリブレーションに必要な枚数の画像を取得するステップと、
取得された複数枚の画像を用いて前記ステレオ・カメラのキャリブレーション・パラメータを算出するステップと、
を具備することを特徴とするロボット装置に搭載されたステレオ・カメラの診断方法。
【請求項１５】
前記のロボットが該診断用マットを撮影するために適した姿勢をとるステップは、
前記ステレオ・カメラの撮影画像中の診断対象となる領域に前記テクスチャが収まるように前記ステレオ・カメラの視線方向を探索するステップと、
該視線方向において、前記ステレオ・カメラの撮影画像内で診断対象となる領域を前記テクスチャが覆う大きさとなるように大きさを調整するステップと、
を備えることを特徴とする請求項９、１１、１２、１３、１４のいずれかに記載のロボット装置に搭載されたステレオ・カメラの診断方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の位置関係を持つ複数の視点（投影中心）から撮像した画像を用いて撮像画像中の各点と投影中心との距離を三角測量の原理により測定するステレオ・カメラの診断時に使用されるステレオ・カメラ診断用装置並びにステレオ・カメラの診断方法に係り、特に、ロボットに搭載されたステレオ・カメラの診断作業を支援するステレオ・カメラ診断用装置、並びにロボット装置に搭載されたステレオ・カメラの診断方法に関する。
【０００２】
さらに詳しくは、本発明は、ロボット装置に搭載されたステレオ・カメラの経年変化や機体の転倒などに伴うカメラ位置ずれなどの診断作業を支援するステレオ・カメラ診断用装置、並びにロボット装置に搭載されたステレオ・カメラの診断方法に係り、特に、インテリジェントなロボット装置の自動診断機能を用いてステレオ・カメラを診断する際に適用されるステレオ・カメラ診断用装置、並びにロボット装置に搭載されたステレオ・カメラの診断方法に関する。
【背景技術】
【０００３】
電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行う機械装置のことを「ロボット」という。ロボットの語源は、スラブ語のＲＯＢＯＴＡ（奴隷機械）に由来すると言われている。最近では、ヒトのような２足直立歩行を行う動物の身体メカニズムや動作をモデルにしてデザインされた「人間形」若しくは「人間型」のロボット（ｈｕｍａｎｏｉｄ ｒｏｂｏｔ）を始めとして、各種の脚式移動ロボットに関する研究開発が進展し、実用化への期待も高まってきている。
【０００４】
人間の作業空間や居住空間のほとんどは、２足直立歩行という人間が持つ行動様式に合わせて形成されている。言い換えれば、人間の住空間は、車輪などを移動手段とした現状の機械システムが移動するには多くの障壁が存在する。ロボットがさまざまな人的作業を支援又は代行し、さらに人間の住空間に深く浸透していくためには、ロボットの移動可能範囲が人間のそれとほぼ同じであることが好ましい。これが、脚式移動ロボットの実用化が大いに期待されている所以でもある。
【０００５】
このような人間型ロボットを、産業活動・生産活動などにおける各種作業の代行に適用することができる。例えば、原子力発電プラントや火力発電プラント、石油化学プラントにおけるメンテナンス作業、製造工場における部品の搬送・組立作業、高層ビルにおける清掃、火災現場その他における救助といったような、人間が容易に踏み込むことができない現場での危険作業・難作業を人間型ロボットに代行してもらう。
【０００６】
また、人間型ロボットの他の用途として、人間と居住空間を同一にする「共生」、若しく「エンターティンメント」と呼ばれるものが挙げられる。この種の用途では、ロボットは、家庭環境など人と同じ作業環境に設置されて利用に供される。この場合、作業代行などの生活支援というよりも、生活密着という性格が濃厚である。
【０００７】
インテリジェントな移動ロボットは、自律的な思考及び動作制御を行なうとともに、動作生成の時系列モデルに従って自律的な動作を実行することができる。また、ロボットが画像入力装置や音声入出力装置を装備し、画像処理や音声処理により環境認識を行なうことにより、自律的な動作や作業範囲を拡張したり、より高度な知的レベルで人間とのリアリスティックなコミュニケーションを実現したりすることが可能となる（例えば、特許文献１を参照のこと）。
【０００８】
例えば、移動ロボットが画像入力並びに画像処理・画像認識機能を装備することにより、ロボットは作業環境内の各場所に置かれたランドマークを検出して所定の動作を実行することができるので、無人状態でもロボットを誘導することができる（例えば、特許文献２、特許文献３を参照のこと）。
【０００９】
さらに、ロボットが画像入力装置としてステレオ・カメラを搭載することにより、作業空間に散在する障害物までの距離をより正確に把握してこれを回避したり、床面を特定したりその凹凸を認識して、歩行経路の修正や姿勢安定制御に活用することができる。ステレオ・カメラは、所定の位置関係に保たれた異なる視点（投影中心）を持つ複数（多くは２台）のカメラで構成され、撮像画像中の各点と投影中心との距離を三角測量の原理により測定することができる。
【００１０】
ところで、２足の脚式移動ロボットは、冗長な自由度を含む多リンク系により構成されており、このような特徴を生かし、複雑な動作を行なうことが可能であるとともに、移動・バランス維持・アーム作業といった複数のタスクを同時実行することができる。その反面、姿勢安定性を保つことが困難であり、歩行やその他の脚式作業中において、転倒してしまうことが想定される。
【００１１】
例えば、ロボットの頭部にステレオ・カメラが搭載されている場合、カメラが破損してしまわなくとも、カメラの相対位置が変化し、ステレオ距離計測が正しく行なえなくなる、という問題がある。また、転倒やその他の衝撃が印加されなくとも、経年変化によってもカメラの相対位置が変化する可能性がある。
【００１２】
再度キャリブレーションを行なうことでステレオ・カメラの性能を取り戻すことができるが、特殊な治具が必要となり、工数・時間・技術の点で容易に行なえるものではない。
【００１３】
また、左右のカメラから得られる画像中の適当な対応点を用いて簡単に再キャリブレーションを行なう方法なども提案されているが、キャリブレーション精度の点で問題がある。
【００１４】
【特許文献１】特開２００２−２８３２６１号公報
【特許文献２】特開２００２−１４９２４０号公報
【特許文献３】特開２００３−１６６８２４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
本発明の目的は、ロボット装置に搭載されたステレオ・カメラの経年変化や機体の転倒などに伴うカメラ位置ずれなどの診断作業を支援することができる、優れたステレオ・カメラ診断用装置、並びにロボット装置に搭載されたステレオ・カメラの診断方法を提供することにある。
【課題を解決するための手段】
【００１６】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、ロボットに搭載されたステレオ・カメラの診断用装置において、
ステレオ・カメラ診断用のテクスチャが設けられた略平面状の表面部と、
前記表面部に設けられた、前記ロボットと前記表面部との位置関係を指示する指示部と、
を具備することを特徴とするステレオ・カメラ診断用装置である。
【００１７】
ここで、前記ロボットは、床面に接地する接地部位を備え、前記指示部は、前記表面部上で前記ロボットの接地部位を配置する場所を指示するようになっている。例えば、前記ロボットが足部を有する１以上の可動脚を備えた脚式移動ロボットである場合には、前記指示部は、前記表面部上で前記ロボットの足部の足底を設置する場所を指示することにより、その機能を実現することができる。勿論、ロボットが指示部に設置するのは足部に限定されるものではなく、手部や臀部など、指示部に配置することができる部位や、指示部に配置することでステレオ・カメラの視線方向を定め易くなるなる部位、ステレオ・カメラの視線方向を調整する姿勢がとり易くなる部位であれば、他でも構わない。
【００１８】
前記ステレオ・カメラ診断用装置は折り畳み構造をなし、該折り畳み構造の開成時に略平面状となり、前記表面部を露出するように構成することができる。
【００１９】
ここで、前記表面部は、テンプレート・マッチングによるステレオ・カメラ・システムの場合、テンプレート内のテクスチャが、エピポーラ・ライン上で正しくマッチングを行なえるようなテクスチャを備えている。
【００２０】
テクスチャは、例えば、ランダム・ドット・パターン、フラクタル、自然画などの、均一で繰り返しの無いパターンなど、診断、キャリブレーションにおいて誤マッチングを避けられるようなものであることが好ましい。
【００２１】
また、前記表面部は、均一なテクスチャに斜線を入れたパターンを持つことにより、高精度なステレオ・カメラ診断に用いることができる。
【００２２】
また、前記表面部は、幾何形状が既知となるキャリブレーション・パターンを備えていてもよい。
【００２３】
また、本発明の第２の側面は、ロボット装置に搭載されたステレオ・カメラの診断方法において、
所定のテクスチャを持つ診断用マット上に載せたロボットが該診断用マットを撮影するために適した姿勢をとるステップと、
前記ステレオ・カメラにおいて取得した画像を基に距離画像を生成するステップと、
前記生成された距離画像から前記診断用マットの平面を検出するステップと、
前記検出した平面の平面度を測定し、該平面度が基準平面度より高いかどうかに応じて、ステレオ・カメラの性能を検証するステップと、
を具備することを特徴とするロボット装置に搭載されたステレオ・カメラの診断方法である。
【００２４】
距離画像とは、基準カメラによる撮影画像と、参照カメラによる撮影画像との画像マッチング処理により視差データを算出し、その視差データとカメラ・キャリブレーションにより得られたカメラ・パラメータに基づいて、基準カメラにより撮影画像の各画素に写っている物体までの距離を算出し、得られた各画素の値により構成される画像のことである。
【００２５】
ここで、検出された平面の平面度が基準となる平面度より高い場合は、ステレオ・カメラの性能が十分あるとして、そのキャリブレーションは不要であると判断することができる。一方、検出された平面の平面度が低い場合は、ステレオ・カメラの性能が不十分であるとして、そのキャリブレーションを行なう必要があると判断することができる。
【００２６】
前記のステレオ・カメラの性能を検証するステップでは、前記生成された距離画像に基づいて前記診断用マットを構成する平面の方程式を求め、前記診断用マットの各点と該平面との距離の偏差に基づいて、該平面度が基準平面度より高いかどうかを判定するようにしてもよい。
【００２７】
また、本発明の第３の側面は、ロボット装置に搭載されたステレオ・カメラの診断方法において、
所定のテクスチャを持つ診断用マット上に載せたロボットが該診断用マットを撮影するために適した姿勢をとるステップと、
前記ステレオ・カメラにおいて取得した画像を基に距離画像を生成するステップと、
ロボットの関節のキネマティクスを解くことによって、床面座標系を基準としたカメラ座標系への変換式を求め、該変換式に基づいてカメラ座標系を基準とした床面の平面の方程式を求めるステップと、
ステレオ・カメラによる距離値とキネマティクスによる平面とを比較することにより、ステレオ・カメラを診断するステップと、
を具備することを特徴とするロボット装置に搭載されたステレオ・カメラの診断方法である。
【００２８】
ここで、検出された平面の平面度がカメラ座標系の平面度より高い場合は、ステレオ・カメラの性能が十分あるとして、キャリブレーションは不要であると判断することができる。一方、検出された平面の平面度が低い場合は、ステレオ・カメラの性能が不十分であるとして、キャリブレーションが必要であると判断することができる。
【００２９】
また、本発明の第４の側面は、ロボット装置に搭載されたステレオ・カメラの診断方法において、
均一のテクスチャに斜線が施された診断用マット上に載せたロボットが該診断用マットを撮影するために適した姿勢をとるステップと、
前記ステレオ・カメラにおいて取得した画像を基に距離画像を生成するステップと、
斜線付近の距離値と基準平面を比較し、両者の差異に基づいてステレオ・カメラを診断するステップと、
を具備することを特徴とするロボット装置に搭載されたステレオ・カメラの診断方法である。
【００３０】
ここで、距離値と基準平面との差異が閾値以内であれば、ステレオ・カメラの性能が十分あるとして、キャリブレーションは不要であると判断することができる。一方、閾値を越える場合には、ステレオ・カメラの性能が不十分であるとして、キャリブレーションが必要であると判断することができる。
【００３１】
また、本発明の第５の側面は、ロボット装置に搭載されたステレオ・カメラの診断方法において、
所定のテンプレートを含んだテクスチャを持つ診断用マット上に載せたロボットが該診断用マットを撮影するために適した姿勢をとるステップと、
前記ステレオ・カメラにおいて基準カメラ画像及び検出カメラ画像を取得するステップと、
基準カメラ画像中のテンプレートを、検出カメラ画像中でエピポーラ・ラインに沿って探索し、それぞれのテンプレートに対してエピポーラ・ラインに沿って、相関値を表すマッチング・スコアを得るステップと、
マッチング・スコア値と基準値の比較結果に基づいて、エピポーラ・ラインのずれを判定するステップと、
を具備することを特徴とするロボット装置に搭載されたステレオ・カメラの診断方法である。
【００３２】
ここで、エピポーラ・ラインのずれが十分に小さければ、ステレオ・カメラの性能が十分あるとして、キャリブレーションは不要であると判断することができる。一方、エピポーラ・ラインのずれが大きい場合には、ステレオ・カメラの性能が不十分であるとして、キャリブレーションが必要であると判断することができる。
【００３３】
また、本発明の第６の側面は、ロボット装置に搭載されたステレオ・カメラの診断方法において、
所定のテンプレートを含んだテクスチャを持つ診断用マット上に載せたロボットが該診断用マットを撮影するために適した姿勢をとるステップと、
前記ステレオ・カメラにおいてキャリブレーションに必要な枚数の画像を取得するステップと、
取得した複数枚の画像を用いて前記ステレオ・カメラのキャリブレーション・パラメータを算出するステップと、
を具備することを特徴とするロボット装置に搭載されたステレオ・カメラの診断方法である。
【００３４】
なお、本発明の第２乃至第６の各側面に係るステレオ・カメラの診断方法において、前記のロボットが該診断用マットを撮影するために適した姿勢をとるステップは、具体的には、前記ステレオ・カメラの撮影画像中の診断対象となる領域に前記テクスチャが収まるように前記ステレオ・カメラの視線方向を探索するステップと、該視線方向において、前記ステレオ・カメラの撮影画像内で診断対象となる領域を前記テクスチャが覆う大きさとなるように大きさを調整するステップとで構成することができる。
【００３５】
ステレオ・カメラの視線方向を探索するステップでは、例えば、ステレオ・カメラを搭載した首を振るという動作により実現することができる。また、大きさを調整するステップは、可動脚を利用して診断用マットまでの距離を調整したり、ズーミングを行なうような動作により実現することができる。
【発明の効果】
【００３６】
本発明によれば、ロボット装置に搭載されたステレオ・カメラの経年変化や機体の転倒などに伴うカメラ位置ずれなどの診断作業を好適に支援することができる、優れたステレオ・カメラ診断用装置、並びにロボット装置に搭載されたステレオ・カメラの診断方法を提供することができる。
【００３７】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【発明を実施するための最良の形態】
【００３８】
以下、図面を参照しながら本発明の実施形態について詳解する。
【００３９】
Ａ．ロボット構成
図１には、本発明に実施に供されるロボット装置１の機能構成を模式的に示している。同図に示すように、ロボット装置１は、全体の動作の統括的制御やその他のデータ処理を行なう制御ユニット２０と、入出力部４０と、駆動部５０と、電源部６０とで構成される。以下、各部について説明する。
【００４０】
入出力部４０は、入力部としてロボット装置１の目に相当するカメラ１５や、耳に相当するマイクロフォン１６、頭部や背中などの部位に配設されてユーザの接触を感知するタッチ・センサ１８、あるいは五感に相当するその他の各種のセンサを含む。また、出力部として、口に相当するスピーカ１７、あるいは点滅の組み合わせや点灯のタイミングにより顔の表情を形成するＬＥＤインジケータ（目ランプ）１９などを装備している。これら出力部は、音声やランプの点滅など、脚などによる機械運動パターン以外の形式でもロボット装置１からのユーザ・フィードバックを表現することができる。
【００４１】
ここで、カメラ１５は、所定の位置関係に保たれた異なる視点（投影中心）を持つ２台のカメラによりステレオ・カメラを構成し、撮像画像中の各点と投影中心との距離を三角測量の原理により測定することができる。
【００４２】
駆動部５０は、制御部２０が指令する所定の運動パターンに従ってロボット装置１の機体動作を実現する機能ブロックであり、行動制御による制御対象である。駆動部５０は、ロボット装置１の各関節における自由度を実現するための機能モジュールであり、それぞれの関節におけるロール、ピッチ、ヨーなど各軸毎に設けられた複数の駆動ユニットで構成される。各駆動ユニットは、所定軸回りの回転動作を行なうモータ５１と、モータ５１の回転位置を検出するエンコーダ５２と、エンコーダ５２の出力に基づいてモータ５１の回転位置や回転速度を適応的に制御するドライバ５３の組み合わせで構成される。
【００４３】
駆動ユニットの組み合わせ方によって、ロボット装置１を例えば２足歩行又は４足歩行などの脚式移動ロボットとして構成することができる。
【００４４】
電源部６０は、その字義通り、ロボット装置１内の各電気回路などに対して給電を行なう機能モジュールである。本実施形態に係るロボット装置１は、バッテリを用いた自律駆動式であり、電源部６０は、充電バッテリ６１と、充電バッテリ６１の充放電状態を管理する充放電制御部６２とで構成される。
【００４５】
充電バッテリ６１は、例えば、複数本のリチウムイオン２次電池セルをカートリッジ式にパッケージ化した「バッテリ・パック」の形態で構成される。
【００４６】
また、充放電制御部６２は、バッテリ６１の端子電圧や充電／放電電流量、バッテリ６１の周囲温度などを測定することでバッテリ６１の残存容量を把握し、充電の開始時期や終了時期などを決定する。充放電制御部６２が決定する充電の開始及び終了時期は制御ユニット２０に通知され、ロボット装置１が充電オペレーションを開始及び終了するためのトリガとなる。
【００４７】
制御ユニット２０は、「頭脳」に相当し、例えばロボット装置１の機体頭部あるいは胴体部に搭載されている。
【００４８】
図２には、制御ユニット２０の構成をさらに詳細に図解している。同図に示すように、制御ユニット２０は、メイン・コントローラとしてのＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）２１が、メモリやその他の各回路コンポーネントや周辺機器とバス接続された構成となっている。バス２７は、データ・バス、アドレス・バス、コントロール・バスなどを含む共通信号伝送路である。バス２７上の各装置にはそれぞれに固有のアドレス（メモリ・アドレス又はＩ／Ｏアドレス）が割り当てられている。ＣＰＵ２１は、アドレスを指定することによってバス２８上の特定の装置と通信することができる。
【００４９】
ＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）２２は、ＤＲＡＭ（Ｄｙｎａｍｉｃ ＲＡＭ）などの揮発性メモリで構成された書き込み可能メモリであり、ＣＰＵ２１が実行するプログラム・コードをロードしたり、実行プログラムによる作業データの一時的な保存したりするために使用される。
【００５０】
ＲＯＭ（Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）２３は、プログラムやデータを恒久的に格納する読み出し専用メモリである。ＲＯＭ２３に格納されるプログラム・コードには、ロボット装置１の電源投入時に実行する自己診断テスト・プログラムや、ロボット装置１の動作を規定する動作制御プログラムなどが挙げられる。
【００５１】
ロボット装置１の制御プログラムには、ステレオ・カメラ１５やマイクロフォン１６などのセンサ入力を処理してシンボルとして認識する「センサ入力・認識処理プログラム」や、短期記憶や長期記憶などの記憶動作を司りながらセンサ入力と所定の行動制御モデルとに基づいてロボット装置１の行動を制御する「行動制御プログラム」、行動制御モデルに従って各関節モータの駆動やスピーカ１７の音声出力などを制御する「駆動制御プログラム」、さらにはステレオ・カメラ１５の診断やキャリブレーションを行なうための機体動作を行なう「カメラ診断／キャリブレーション・プログラム」などが含まれる。
【００５２】
不揮発性メモリ２４は、例えばＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ Ｅｒａｓａｂｌｅ ａｎｄ Ｐｒｏｇｒａｍｍａｂｌｅ ＲＯＭ）のように電気的に消去再書き込みが可能なメモリ素子で構成され、逐次更新すべきデータを不揮発的に保持するために使用される。逐次更新すべきデータには、暗号鍵やその他のセキュリティ情報、出荷後にインストールすべき装置制御プログラムなどが挙げられる。
【００５３】
インターフェース２５は、制御ユニット２０外の機器と相互接続し、データ交換を可能にするための装置である。インターフェース２５は、例えば、カメラ１５やマイクロフォン１６、スピーカ１７との間でデータ入出力を行なう。また、インターフェース２５は、駆動部５０内の各ドライバ５３−１…との間でデータやコマンドの入出力を行なう。
【００５４】
また、インターフェース２５は、ＲＳ（Ｒｅｃｏｍｍｅｎｄｅｄ Ｓｔａｎｄａｒｄ）−２３２Ｃなどのシリアル・インターフェース、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ ｏｆ Ｅｌｅｃｔｒｉｃａｌ ａｎｄ Ｅｌｅｃｔｒｏｎｉｃｓ Ｅｎｇｉｎｅｅｒｓ）１２８４などのパラレル・インターフェース、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ Ｓｅｒｉａｌ Ｂｕｓ）インターフェース、ｉ−Ｌｉｎｋ（ＩＥＥＥ１３９４）インターフェース、ＳＣＳＩ（Ｓｍａｌｌ Ｃｏｍｐｕｔｅｒ Ｓｙｓｔｅｍ Ｉｎｔｅｒｆａｃｅ）インターフェース、ＰＣカードやメモリ・スティックを受容するメモリ・カード・インターフェース（カード・スロット）などのような、コンピュータの周辺機器接続用の汎用インターフェースを備え、ローカル接続された外部機器との間でプログラムやデータの移動を行なうようにしてもよい。
【００５５】
また、インターフェース２５の他の例として、赤外線通信（ＩｒＤＡ）インターフェースを備え、外部機器と無線通信を行なうようにしてもよい。
【００５６】
さらに、制御ユニット２０は、無線通信インターフェース２６やネットワーク・インターフェース・カード（ＮＩＣ）２７などを含み、Ｂｌｕｅｔｏｏｔｈのような近接無線データ通信や、ＩＥＥＥ  ８０２．１１ｂのような無線ネットワーク、あるいはインターネットなどの広域ネットワークを経由して、外部のさまざまなホスト・コンピュータとデータ通信を行なうことができる。
【００５７】
このようなロボット装置１とホスト・コンピュータ間におけるデータ通信により、遠隔のコンピュータ資源を用いて、ロボット装置１の複雑な動作制御を演算したり、リモート・コントロールしたりすることができる。
【００５８】
Ｂ．ステレオ・カメラの診断
本実施形態に係るロボット装置１は、ステレオ・カメラ１５による距離測定に基づいて、作業空間に散在する障害物までの距離をより正確に把握してこれを回避したり、床面を特定したりその凹凸を認識して、歩行経路の修正や姿勢安定制御に活用することができる。
【００５９】
他方、衝撃や経年変化によって２つのカメラの相対位置が変化し、ステレオ距離計測が正しく行なえなくなるという問題がある。本実施形態では、衝撃や経年変化によって悪化したステレオ・カメラ１５の診断を、自動的に、且つ簡単に行なうことができる。また、ステレオ・カメラ１５の性能の悪化が認められた場合も、ユーザが簡単に高精度の再キャリブレーションを行ない、本来の距離計測性能を得ることができる。
【００６０】
図３並びに図４には、ステレオ・カメラ診断マットの構成例を示している。図３は２足歩行ロボット用であり、図４は４足歩行ロボット用である。マットの表面にはステレオ・カメラ診断用テクスチャとロボットの足底を設置する場所のマークが記されているので、ユーザが間違いなく、簡単に扱うことができる。なお、このマークに設置するのは、足部に限定されるものではなく、手部や臀部など、床面に接地することが可能な他の部位であっても構わない。いずれの接地部位をマークに配置する場合であっても、ステレオ・カメラの視線方向を定め易くなるなること、ステレオ・カメラの視線方向を調整する姿勢がとり易くなることが好ましい。
【００６１】
マットの表面のテクスチャは、ステレオ・カメラ１５によって距離測定が行い易いものが好ましい。例えば、テンプレート・マッチングによるステレオ・カメラ・システムの場合、テンプレート内のテクスチャが、エピポーラ・ライン（後述）上で正しくマッチングを行なえるようなものがよい。
【００６２】
図５〜図７には、ステレオ・カメラ診断マット表面のテクスチャの例を挙げている。一般的な、テンプレート・マッチングによるステレオ・カメラ・システムの場合、診断やキャリブレーションには、誤マッチングを避けられるようなテクスチャが好ましい。ここで言う誤マッチングには、ステレオ距離計測のためのテクスチャ・マッピングを行なったときの、左右のカメラ画像の誤対応のことである。
【００６３】
例えば図５に示すような、ランダム・ドット・パターン、フラクタル、自然画などの、均一で繰り返しの無いパターンが、誤マッチングを避けられるテクスチャとして挙げられる。また、図６に示すような、均一なテクスチャに斜線を入れたパターンは、高精度なステレオ・カメラ診断に用いることができる。
【００６４】
一方、キャリブレーション・パターンは、幾何形状が既知であれば特にパターンの形状や寸法や色彩は限定されない。計算機内での生成処理（後述）が容易な、単純な基本図形の組み合わせであれば充分である。キャリブレーション・パターンは、例えば、図７に示すような、白黒２値の市松模様や、２値の３角形の組み合わせでもよい。
【００６５】
図８には、ステレオ・カメラ診断マットの使用方法を示している。ロボットをマット上の設置マークに合わせて乗せ、診断モーションを再生する。
【００６６】
ステレオ・カメラ１５の診断とキャリブレーションには、マットの平面性を用いるため、診断用マットが折り畳み式の場合は、広げたときに平面でなくてはならない。また、視野全体を覆う必要はないが、診断・キャリブレーションを行なうために必要とするデータを得ることが出来るほどの、十分な大きさが必要である。
【００６７】
ここで言う十分な大きさとは、カメラ画像のうちキャリブレーションしたい領域を覆うだけの十分な大きさでマット上のキャリブレーション・パターンを撮ることを意味する。ロボット装置は、例えば自律動作により、診断用マットを撮影するために適した姿勢をとる。この場合、まず、ステレオ・カメラの撮影画像中の診断対象となる領域にテクスチャが収まるように、首を振りながらステレオ・カメラの視線方向を探索する。そして、見出された視線方向において、ステレオ・カメラの撮影画像内で診断対象となる領域をテクスチャが覆う大きさとなるように、脚で移動して位置を変えたりズーミングを行なったりするなどして大きさを調整する。
【００６８】
Ｂ−１．平面検出による診断方法
図９には、平面検出によるステレオ・カメラ診断処理の手順をフローチャートの形式で示している。診断用マットにロボットを載せた後（ステップＳ１）、所定のコマンドを入力することにより、ロボットは診断モーションを再生する（ステップＳ２）。このモーションによって、診断用マットを撮影するために適した姿勢をとる。
【００６９】
診断用マットを撮影するために適した姿勢は、診断・キャリブレーションを行なうために必要とするデータを得ることが出来るほどの十分な大きさ、すなわちカメラ画像のうちキャリブレーションしたい領域を覆うだけの十分な大きさでマット上のキャリブレーション・パターンを撮ることができる姿勢のことである。この適した姿勢を探索する動作オペレーションについては後に詳解する。
【００７０】
この状態で、ステレオ・カメラ１５から画像を取得し、距離画像を生成する（ステップＳ３）。
【００７１】
距離画像とは、基準カメラによる撮影画像と、参照カメラによる撮影画像との画像マッチング処理により視差データを算出し、その視差データとカメラ・キャリブレーションにより得られたカメラ・パラメータに基づいて、基準カメラにより撮影画像の各画素に写っている物体までの距離を算出し、得られた各画素の値により構成される画像のことである。例えば、撮像画像中の各点と投影中心との距離に応じた濃淡値が各画素に与えて、距離画像を構成する。
【００７２】
次いで、生成した距離画像より、診断用マットの平面を検出する（ステップＳ３）。
【００７３】
そして、検出された平面の平面度を測定し、その平面度が基準となる平面度より高いかどうかを判断する（ステップＳ４）。
【００７４】
検出された平面の平面度が基準となる平面度より高い場合は、ステレオ・カメラ１５の性能が十分あるとして、キャリブレーションは不要であると判断する。一方、検出された平面の平面度が低い場合は、ステレオ・カメラ１５の性能が不十分であるとして、キャリブレーションは必要であると判断する。
【００７５】
ここで、ステップＳ４において実行される、平面度を閾値判別する具体的な方法について説明する。
【００７６】
まず、平面からの距離値を閾値判別する方法が挙げられる。この方法の原理は、判定の対象となる平面上に複数の観測点を設け、カメラ中心から各観測点までの距離を求め、これらの距離から平面を推定した後、この推定平面と各観測点の距離の偏差を基に、推定平面の確からしさを判定する。より多くの観測点が推定平面に近ければキャリブレーションは不要であるし、逆に多くの観測点が推定平面から遠ければキャリブレーションが必要となる（図２２を参照のこと）。
【００７７】
この判別方法は、以下の手順に従って処理される。
【００７８】
（１）ステレオ・カメラによって測定される診断マットの３次元座標をＸi：（ｘi，ｙi，ｚi）とする。ここで、ｉは距離画像中のそれぞれの画素点番号を表す。これらの３次元座標値を用いて検出される平面の方程式を下式によって表す。
【００７９】
【数１】
2004306249.tif 000003
【００８０】
上式において、ｎは平面の法線ベクトルで、ｘは平面の座標である。ここで、ｎ＝（ａ，ｂ，ｃ）、並びにｘ＝（ｘ，ｙ，ｚ）とおくと、上式はａｘ＋ｂｙ＋ｃｚ＋ｄ＝０という一般的な平面方程式として表記することができる。
【００８１】
この平面とｉ番目の観測点Ｘｉ（ｘi，ｙi，ｚi）との距離Ｄiを、下式を用いて算出する（図２３を参照のこと）。
【００８２】
【数２】
2004306249.tif 000004
【００８３】
（２）基準距離ＤthとＤiを比較して、Ｄth＜Ｄiとなる点の数Ｎoverをカウントする。
【００８４】
（３）基準個数ＮthとＮoverを比較して、Ｎover＜Ｎthとなる場合は平面度が高く、Ｎth＜Ｎoverとなる場合は平面度が低いと判定する。
【００８５】
また、平面からの距離値の分散値を閾値判別する方法が挙げられる。この場合、以下の手順で処理される。
【００８６】
（１）距離画像中のそれぞれの点ｉにおいて、検出された平面からの距離Ｄiを上式［数２］を用いて算出する。
【００８７】
（２）すべてのＤiから、平面からの距離の分散値ＶDを求める。
【００８８】
【数３】
2004306249.tif 000005
【００８９】
（３）基準分散値Ｖｔｈと比較して、ＶD＜Ｖthとなる場合は平面度が高く、Ｖth＜ＶDとなる場合は平面度が低いと判定する。
【００９０】
Ｂ−２．キネマティクスを解いて得られる平面との比較による診断方法
図１０には、キネマティクスを解いて得られる平面と、ステレオ・カメラによる距離値を比較する方法の原理を示している。
【００９１】
ロボットの関節のキネマティクスを解くことによって、床面座標系を基準としたカメラ座標系への変換行列を求めることができる。この変換式から、カメラ座標系を基準とした床面の平面の方程式を求めることができる。そして、ステレオ・カメラによる距離値とキネマティクスによる平面とを比較することにより、ステレオ・カメラを診断することができる。
【００９２】
図１１には、キネマティクスを解いて得られる平面と、ステレオ・カメラによる距離値との比較によるステレオ・カメラの診断処理の手順をフローチャートの形式で示している。
【００９３】
診断用マットにロボットを載せた後（ステップＳ１１）、所定のコマンドを入力することにより、ロボットは診断モーションを再生する（ステップＳ１２）。このモーションによって、診断用マットを撮影するために適した姿勢をとる。
【００９４】
診断用マットを撮影するために適した姿勢とは、診断・キャリブレーションを行なうために必要とするデータを得ることが出来るほどの十分な大きさ、すなわちカメラ画像のうちキャリブレーションしたい領域を覆うだけの十分な大きさでマット上のキャリブレーション・パターンを撮ることができる姿勢のことである。この適した姿勢を探索する動作オペレーションについては後に詳解する。
【００９５】
この状態で、ステレオ・カメラ１５から画像を取得し、距離画像を生成する（ステップＳ１３）。距離画像は、撮像画像中の各点と投影中心との距離に応じた濃淡値が各画素に与えられた画像である（前述）。
【００９６】
次いで、床面からカメラまでの関節の角度を取得し（ステップＳ１４）、ロボットの関節のキネマティクスを解くことによって、床面座標系を基準としたカメラ座標系への変換行列を求め、この変換式からカメラ座標系を基準とした床面の平面の方程式を求める（ステップＳ１５）。
【００９７】
そして、距離画像から得られた平面の平面度を測定し、ステレオ・カメラによる距離値とキネマティクスによるカメラ座標系を基準とした平面の平面度との比較により、ステレオ・カメラを診断する（ステップＳ１６）。
【００９８】
検出された平面の平面度がカメラ座標系の平面度より高い場合は、ステレオ・カメラ１５の性能が十分あるとして、キャリブレーションは不要であると判断する。一方、検出された平面の平面度が低い場合は、ステレオ・カメラ１５の性能が不十分であるとして、キャリブレーションが必要であると判断する。
【００９９】
なお、平面度を比較判別する方法は上述と同様でよい。
【０１００】
ここで、カメラ座標系を基準とした床面の平面方程式の求め方について説明しておく。
【０１０１】
カメラ座標系における任意の点の同次座標系表現は、床面座標系を基準としたカメラ座標系への変換行列を用いて、下式に示すように床面座標系を基準とした点に変換される。
【０１０２】
【数４】
2004306249.tif 000006
【０１０３】
一方、床面座標系での床面の方程式は下式のように表すことができる。
【０１０４】
【数５】
2004306249.tif 000007
【０１０５】
この式に上式［数４］を代入して下式を得る。
【０１０６】
【数６】
2004306249.tif 000008
【０１０７】
ここで、Ｎ’を以下の通りとする。
【０１０８】
【数７】
2004306249.tif 000009
【０１０９】
すると、下式が導かれ、カメラ座標系を基準とした床面の平面方程式は［数７］のように表現される。
【０１１０】
【数８】
2004306249.tif 000010
【０１１１】
この手法により得られた平面の方程式［数７］を、Ｂ−１項で説明した、検出した平面の代わりに用いることで、ステレオ・カメラの診断を行なうことができる。
【０１１２】
Ｂ−３．均一のテクスチャに斜線がある診断用マットを用いた診断方法
ここで、ステレオ法の基本的な仕組みについて説明する。２台のカメラでステレオ・カメラ１５が構成される場合、１つのカメラは基準カメラとして使用され、正面と正対した位置から対象物を撮像して、基準画像を出力する。また、他方のカメラは参照カメラとして使用され、斜め方向から対象物を撮像して、参照画像を出力する。図１２には、撮像対象に対する基準カメラと参照カメラの配置を模式的に示しており、また、図１３には、略正方形のパターンを基準カメラと参照カメラそれぞれによって撮像した場合の基準画像と参照画像を模式的に示している。
【０１１３】
図１３に示すように、略正方形のパターンに正対する基準カメラで撮像した撮像画像は正方形となる。これに対し、このパターンを斜視する参照カメラで撮像した画像は、視点からの距離が長い辺が縮小される結果として、台形として現れる。これは、同じ大きさの物体であっても、カメラの投影中心Ｃに近づくにつれて大きな像として投影され、逆に、投影中心Ｃから遠ざかるにつれ小さく投影されるという、中心投影の基本的性質に依拠する。
【０１１４】
また、基準カメラの視線は、参照カメラの投影スクリーンＳd上では「エピポーラ・ライン」と呼ばれる直線として現れる（図１２を参照のこと）。基準カメラの視線上に存在する点Ｐは、点Ｐの奥行き、すなわち基準カメラとの距離の大小に拘らず、基準カメラの投影スクリーンＳb上では同じ観察点ｎb上に現れる。これに対し、参照カメラの投影スクリーンＳd上における点Ｐの観察点ｎdは、エピポーラ・ライン上で基準カメラと観察点Ｐとの距離の大小に応じた位置に現れる。
【０１１５】
図１４には、エピポーラ・ラインと、参照カメラの投影スクリーンＳd上における観察点ｎdの様子を図解している。同図に示すように、点Ｐの位置がＰ1，Ｐ2，Ｐ3へと変化するに従って、参照画像中の観察点はｎd1，ｎd2，ｎd3へとシフトする。言い換えれば、エピポーラ・ライン上の位置が観察点Ｐの奥行きに相当する訳である。このような幾何光学的性質を利用して、基準カメラの観察点ｎbに対応する観察点ｎdをエピポーラ・ライン上で探索することにより、点Ｐの距離を同定することができる。これが「ステレオ法」の基本的原理である。
【０１１６】
ここで、図６に示したような、均一のテクスチャに斜線がある診断用マットを用いて、テンプレート・マッチングによるステレオ・カメラを診断したとする。
【０１１７】
経年変化などによりカメラ位置がずれたステレオ・カメラで距離計測を行なうと、図１５に示すように、正しいエピポーラ・ラインよりも近距離又は遠距離に観測される（図示の例では、遠距離に計測される）。
【０１１８】
この特性を利用すると、微小なエピポーラ・ラインのずれを計測距離の差として測定できるため、ステレオ・カメラのより精密な診断を行なうことができる。
【０１１９】
図１６には、均一のテクスチャに斜線がある診断用マットを用いたステレオ・カメラの診断処理の手順をフローチャートの形式で示している。
【０１２０】
図６に示した診断用マットにロボットを載せた後（ステップＳ２１）、所定のコマンドを入力することにより、ロボットは診断モーションを再生する（ステップＳ２２）。このモーションによって、診断用マットを撮影するために適した姿勢をとる。
【０１２１】
診断用マットを撮影するために適した姿勢は、診断・キャリブレーションを行なうために必要とするデータを得ることが出来るほどの十分な大きさ、すなわちカメラ画像のうちキャリブレーションしたい領域を覆うだけの十分な大きさでマット上のキャリブレーション・パターンを撮ることができる姿勢のことである。この適した姿勢を探索する動作オペレーションについては後に詳解する。
【０１２２】
この状態で、ステレオ・カメラ１５から画像を取得し、距離画像を生成する（ステップＳ２３）。距離画像は、撮像画像中の各点と投影中心との距離に応じた濃淡値が各画素に与えられた画像である。
【０１２３】
次いで、斜線付近の距離値と基準平面を比較する（ステップＳ２４）。ここで言う基準平面は、例えば、Ｂ−１又はＢ−２項で説明した処理により得られた平面である。
【０１２４】
そして、距離値と基準平面との差異が閾値以内であれば、ステレオ・カメラ１５の性能が十分あるとして、キャリブレーションは不要であると判断する。一方、閾値を越える場合には、ステレオ・カメラ１５の性能が不十分であるとして、キャリブレーションが必要であると判断する。
【０１２５】
Ｂ−４．マッチング・スコア値からステレオ・カメラを診断する方法
テンプレート・マッチング方法によるステレオ・カメラの場合、図１４に示したように、基準カメラ画像中のテンプレートを、検出カメラ画像中でエピポーラ・ラインに沿って探索する。この際に、それぞれのテンプレートに対してエピポーラ・ラインに沿って、相関値を表すマッチング・スコアを得ることができる。図１７には、マッチング・スコアの例として、輝度差の総和のグラフを示している。図示の例では、スコア値が低いほど、相関が高いことを表している。
【０１２６】
衝撃や経年変化などでステレオ・カメラ間の位置関係がずれた場合、エピポーラ・ライン上で正しいマッチングが得られなくなるため、マッチング・スコア値が高くなる。この値を判定することで、ステレオ・カメラの診断が行なうことができる。
【０１２７】
マッチング・スコア値からエピポーラ・ラインのずれを判定する方法の例を以下に示す。
【０１２８】
（１）画像の各画素ｉに対する最小のマッチング・スコア値Ｍiを算出する。
（２）基準スコア値ＭthとＭiを比較して、Ｍth＜Ｍiとなる点の数Ｎoverをカウントする。
（３）基準個数ＮthとＮoverを比較して、Ｎover＜Ｎthとなる場合はエピポーラ・ラインのずれが小さく、Ｎth＜Ｎoverとなる場合はずれが大きいと判定する。
【０１２９】
図１８には、マッチング・スコア値からステレオ・カメラを診断する処理手順をフローチャートの形式で示している。
【０１３０】
まず、診断用マットにロボットを載せた後（ステップＳ３１）、所定のコマンドを入力することにより、ロボットは診断モーションを再生する（ステップＳ３２）。このモーションによって、診断用マットを撮影するために適した姿勢をとる。
【０１３１】
診断用マットを撮影するために適した姿勢は、診断・キャリブレーションを行なうために必要とするデータを得ることが出来るほどの十分な大きさ、すなわちカメラ画像のうちキャリブレーションしたい領域を覆うだけの十分な大きさでマット上のキャリブレーション・パターンを撮ることができる姿勢のことである。この適した姿勢を探索する動作オペレーションについては後に詳解する。
【０１３２】
次いで、各テンプレートに対するマッチング・スコア値を算出し（ステップＳ３３）、マッチング・スコア値と基準値を比較して、エピポーラ・ラインのずれを判定する（ステップＳ３４）。
【０１３３】
そして、エピポーラ・ラインのずれが小さいかどうかを判別する（ステップＳ３５）。エピポーラ・ラインのずれが十分に小さければ、ステレオ・カメラ１５の性能が十分あるとして、キャリブレーションは不要であると判断する。一方、エピポーラ・ラインのずれが大きい場合には、ステレオ・カメラ１５の性能が不十分であるとして、キャリブレーションが必要であると判断する。
【０１３４】
Ｂ−５．モーションを再生して複数の診断結果を得る方法
診断マット上でモーションを再生し、複数の角度や距離から得られたデータを用いて（図１９を参照のこと）、ステレオ・カメラの診断性能を上げることができる。
【０１３５】
Ｂ−６．診断用マットを撮影するために適した姿勢
本実施形態では、ステレオ・カメラを搭載したロボット装置が、診断用マットを撮影することによりカメラのキャリブレーションを行なう。
【０１３６】
ここで、診断用マットを撮影するために適した姿勢とは、診断・キャリブレーションを行なうために必要とするデータを得ることが出来るほどの十分な大きさ、すなわちカメラ画像のうちキャリブレーションしたい領域を覆うだけの十分な大きさでマット上のキャリブレーション・パターンを撮ることができる姿勢のことである。
【０１３７】
ロボットが該診断用マットを撮影するために適した姿勢をとるための動作は、例えば、ステレオ・カメラの撮影画像中の診断対象となる領域に診断用マット表面に形成されたテクスチャが収まるようにステレオ・カメラの視線方向を探索するステップと、この視線方向において、ステレオ・カメラの撮影画像内で診断対象となる領域をテクスチャが覆う大きさとなるように大きさを調整するステップという２段階で構成することができる。
【０１３８】
ステレオ・カメラの視線方向を探索するステップでは、例えば、ステレオ・カメラを搭載した首を振るという動作により実現することができる。また、大きさを調整するステップは、可動脚を利用して診断用マットまでの距離を調整したり、ズーミングを行なうような動作により実現することができる。
【０１３９】
図２４には、ロボット装置が診断用マットを撮影するのに適した姿勢をとるための動作手順をフローチャートの形式で示している。また、図２５には、この動作手順の各段階におけるロボット装置の姿勢と、ステレオ・カメラにおいて取得されている画像を示している。以下、各図を参照しながら、ロボット装置が診断用マットを撮影するのに適した姿勢をとるための動作手順について説明する。
【０１４０】
まず、ステレオ・カメラ診断用マットにロボット装置を乗せる（ステップＳ６１）。あるいは、ロボット装置が、可動脚を利用した歩行動作により自律的にステレオ・カメラ診断用マットに乗るようにしてもよい。
【０１４１】
そして、ロボット装置は、例えば首を振る動作により、ステレオ・カメラ診断用マットの画面中の位置を調整する（ステップＳ６２）。この位置調整動作は、ステレオ・カメラの撮影画像中の診断対象となる領域に診断用マット表面に形成されたテクスチャが収まるまで（図２５（Ａ）を参照のこと）、繰り返し行なわれる（ステップＳ６３）。
【０１４２】
そして、位置調整が完了すると、この視線方向を確定させたまま、今度は、脚部を作動させ、撮影画像内におけるステレオ・カメラ診断用マットの大きさの調整を行なう（ステップＳ６４）。この大きさ調整動作は、ステレオ・カメラの撮影画像内で診断対象となる領域をテクスチャが覆う大きさとなるようになるまで（図２５（Ｂ）を参照のこと）、繰り返し行なわれる（ステップＳ６５）。
【０１４３】
このようにして、診断に適した姿勢が定まると、ステレオ・カメラの診断処理（前述）が開始される。
【０１４４】
なお、ステレオ・カメラの撮影画像中の診断対象となる領域に診断用マット表面に形成されたテクスチャが収まる視線方向を確保することと、この視線方向において、ステレオ・カメラの撮影画像内で診断対象となる領域を覆う大きさでテクスチャを撮影することは、最低限満たす条件である。
【０１４５】
このような最低限の条件を満たした上で、さらに診断・キャリブレーションの性能を向上させるための付加的な条件として、基準カメラの光軸を診断用マットに対し９０度に近づけるということが挙げられる。
【０１４６】
すなわち、基準カメラの光軸とキャリブレーションマットの角度が、９０度に近ければ近いほど、両眼視差による左右画像のテクスチャの見え方の違いが小さくなるため、マッチングが正確に行なわれるようになり、キャリブレーションの精度は向上する。逆に、角度が浅いと、左右画像がパースの影響を受けて、テクスチャの見え方の違いが大きくなり、マッチングが合いにくくなる。
【０１４７】
本実施形態のように２速歩行のロボット装置の場合、カメラの垂直視野角度やロボット装置の四肢のプロポーション（背の高さや首の長さなど）にも依るが、基準カメラの光軸と診断用マットの角度を９０度に設定すると、足が視野に入り易くなり、診断用マットが見える面積が減少してしまう。一方、角度を浅くすると、遠くまで見えてしまうため、その面積を覆うような大きなキャリブレーションマットが必要になってしまうので、注意を要する。
【０１４８】
Ｃ．ステレオ・カメラのキャリブレーション方法
ステレオ法に基づいて複数台のカメラによる複数の画像から物体の距離を計測することは、カメラが持つ撮像光学系が理論と完全に一致する特性を持っていることを前提としている。このため、実写により取得した画像に対して所定の補正を施す必要である。例えば、カメラのレンズは一般に歪みパラメータを有し、観察点は理論上の点から変位した位置に結像される。したがって、カメラ特有のパラメータを算出し、射影変換に際してこのパラメータに従った画像データの補正を行なわなければ、正面画像から正確な射影画像を得ることができず、また、ステレオ法により正確な奥行き計測を行なうことができない。
【０１４９】
カメラが持つパラメータは、レンズの歪みパラメータの他、カメラ特性をあらわす内部パラメータ、カメラの３次元位置を示す外部パラメータに区分される。これらカメラのパラメータを算出する方法のことを、一般に、「カメラ・キャリブレーション」と呼ぶ。
【０１５０】
図２０には、診断用マットを用いたカメラ・キャリブレーション処理の手順をフローチャートの形式で示している。
【０１５１】
まず、診断用マットにロボットを載せた後（ステップＳ４１）、所定のコマンドを入力することにより、ロボットはキャリブレーション・モーションを再生する（ステップＳ４２）。そして、この状態で、ステレオ・カメラ１５から画像を取得する（ステップＳ４３）。
【０１５２】
このような処理をキャリブレーションに必要な枚数の画像を取得するまで、繰り返し実行する（ステップＳ４４）。キャリブレーション方法にも依存するが、異なる角度からの画像が必要な場合は、必要な角度から画像が得られるようなモーションを再生する。
【０１５３】
そして、キャリブレーションに必要な画像がすべて得られたら、キャリブレーション・パラメータを算出する（ステップＳ４５）。
【０１５４】
以下では、ステップＳ４５におけるキャリブレーション・パラメータの算出方法の一例を、図２１を参照しながら説明する。
【０１５５】
まず、幾何形状の定義に基づいてキャリブレーション・パターンを合成し、この合成画像を基準画像Ｉoとしてフレーム・メモリに格納する（ステップＳ５１）。
【０１５６】
次いで、キャリブレーション・パターンが形成された診断用マットを、基準カメラ及び参照カメラによって撮像する。各カメラが撮像した濃淡画像ＩA及びＩBは、フレーム・メモリに一時格納される（ステップＳ５２）。診断用マット上に形成されたパターンは、キャリブレーションに用いるキャリブレーション・パターンであり、その幾何形状は基準画像Ｉoの定義とは一義的である。
【０１５７】
キャリブレーション・パターンは、幾何形状が既知であれば特にパターンの形状や寸法や色彩は限定されず、画像合成処理が容易な、単純な基本図形の組み合わせであれば充分である（前述）。ここでは、図７に示すような白黒２値の市松模様のテクスチャ付き平面が用いられているものとする。このテクスチャ付き平面と各カメラまでの距離は限定されない。
【０１５８】
次いで、基準画像Ｉoと撮像画像ＩAとの対応関係の初期値を設定する（ステップＳ５３Ａ）。この対応関係は、射影変換行列ＨAによって記述される。但し、この時点では、基準カメラのレンズ歪みについては考慮せず、２枚の画像間の対応を設定するだけでよい。初期値としては、４点以上の対応点の設定が可能であればよく、設定方法を特に限定する必要はない。
【０１５９】
次いで、画像合わせ込み処理を効率的且つ高精度に行なうために、撮像画像ＩAの輝度値を用いて基準画像Ｉoの輝度値を補正する（ステップＳ５４Ａ）。
【０１６０】
次いで、Ｌｅｖｅｎｂｅｒｇ−Ｍａｒｑｕａｒｄｔ最小化法を用いて画像合わせ込み（Ｉｍａｇｅ Ｒｅｇｉｓｔｒａｔｉｏｎ）を行ない、射影変換行列ＨAと歪みパラメータκA、ＣxA、ＣyAを算出する（ステップＳ５５Ａ）。但し、κAは基準カメラのレンズ歪み係数であり、点（ＣxA，ＣyA）はレンズの歪み中心である。
【０１６１】
また、他方の参照カメラの撮像画像ＩBに対しても、同様に、基準画像Ｉoとの対応関係の初期値の設定（ステップＳ５３Ｂ）、撮像画像ＩBの輝度値を用いた基準画像Ｉoの輝度値の補正（ステップＳ５４Ｂ）、及び、射影変換行列ＨBと歪みパラメータκB、ＣxB、ＣyBの算出（ステップＳ５５Ｂ）を行なう。
【０１６２】
基準カメラの撮像画像ＩAから参照カメラの撮像画像ＩBへの射影変換行列Ｈtransは、ＨA×ＨB-1という形で表すことができる（ステップＳ５７）。この射影変換処理の前後において、歪みパラメータκA、ＣxA、ＣyAを用いて撮像画像ＩAの歪みを除去する（ステップＳ５６）とともに、歪みパラメータκB、ＣxB、ＣyBを用いて撮像画像ＩB相当の歪みを付加する（ステップＳ５７）。
【０１６３】
なお、画像合わせ込みを行う際に、それぞれの画像の座標系を一致させる必要がある（すなわち、カメラ１７Ａ及び１７Ｂの各々の撮像画像ＩA、ＩBにおいて、対応する正方形が基準画像Ｉoの同じ正方形と合わせ込まれる必要がある）。そこで、キャリブレーション・パターン中に１箇所（又は数箇所）に特別なパターンを設けて、各画像間の整合をとるようにしてもよい。
【産業上の利用可能性】
【０１６４】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。
【０１６５】
本発明の要旨は、必ずしも「ロボット」と称される製品には限定されない。すなわち、電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行なう機械装置あるいはその他一般的な移動体装置であるならば、例えば玩具などのような他の産業分野に属する製品であっても、同様に本発明を適用することができる。
【０１６６】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【図面の簡単な説明】
【０１６７】
【図１】図１は、本発明に実施に供されるロボット装置１の機能構成を模式的に示した図である。
【図２】図２は、制御ユニット２０の構成をさらに詳細に示した図である。
【図３】図３は、ステレオ・カメラ診断マットの構成例を示した図である。
【図４】図４は、ステレオ・カメラ診断マットの構成例を示した図である。
【図５】図５は、ステレオ・カメラ診断マット表面のテクスチャの例を示した図である。
【図６】図６は、ステレオ・カメラ診断マット表面のテクスチャの例を示した図である。
【図７】図７は、ステレオ・カメラ診断マット表面のテクスチャの例を示した図である。
【図８】図８は、ステレオ・カメラ診断マットの使用方法を示した図である。
【図９】図９は、平面検出によるステレオ・カメラ診断方法を示した図である。
【図１０】図１０は、キネマティクスを解いて得られる平面と、ステレオ・カメラによる距離値を比較する方法の原理を説明するための図である。
【図１１】図１１は、キネマティクスを解いて得られる平面と、ステレオ・カメラによる距離値との比較によるステレオ・カメラの診断処理の手順を示したフローチャートである。
【図１２】図１２は、撮像対象に対する基準カメラと参照カメラの配置を模式的に示した図である。
【図１３】図１３は、略正方形のパターンを基準カメラと参照カメラの各々によって撮像した場合の基準画像と参照画像を模式的に示した図である。
【図１４】図１４は、エピポーラ・ラインと、参照カメラの投影スクリーンＳd上における観察点ｎdEの様子を示した図である。
【図１５】図１５は、均一のテクスチャに斜線がある診断用マットによる診断方法を説明するための図である。
【図１６】図１６は、均一のテクスチャに斜線がある診断用マットを用いたステレオ・カメラの診断処理の手順を示したフローチャートである。
【図１７】図１７は、マッチング・スコアの例を示した図である。
【図１８】図１８は、マッチング・スコア値からステレオ・カメラを診断する処理手順を示したフローチャートである。
【図１９】図１９は、モーションを再生して複数の診断結果を得る方法を示した図である。
【図２０】図２０は、診断用マットを用いたカメラ・キャリブレーション処理の手順を示したフローチャートである。
【図２１】図２１は、キャリブレーション・パラメータの算出方法の一例を示したフローチャートである。
【図２２】図２２は、平面検出によるステレオ・カメラ診断方法の原理を説明するための図である。
【図２３】図２３は、平面とｉ番目の観測点Ｘi（ｘi，ｙi，ｚi）との距離Ｄiを示した図である。
【図２４】図２４は、ロボット装置が診断用マットを撮影するのに適した姿勢をとるための動作手順を示したフローチャートである。
【図２５】図２５は、図２４で示した動作手順の各段階におけるロボット装置の姿勢と、ステレオ・カメラにおいて取得されている画像を示した図である。
【符号の説明】
【０１６８】
１…ロボット装置
１５…ＣＣＤカメラ
１６…マイクロフォン
１７…スピーカ
１８…タッチ・センサ
１９…ＬＥＤインジケータ
２０…制御部
２１…ＣＰＵ
２２…ＲＡＭ
２３…ＲＯＭ
２４…不揮発メモリ
２５…インターフェース
２６…無線通信インターフェース
２７…ネットワーク・インターフェース・カード
２８…バス
２９…キーボード
４０…入出力部
５０…駆動部
５１…モータ
５２…エンコーダ
５３…ドライバ
【図１】
2004306249.tif 000011
【図２】
2004306249.tif 000012
【図３】
2004306249.tif 000013
【図４】
2004306249.tif 000014
【図５】
2004306249.tif 000015
【図６】
2004306249.tif 000016
【図７】
2004306249.tif 000017
【図８】
2004306249.tif 000018
【図９】
2004306249.tif 000019
【図１０】
2004306249.tif 000020
【図１１】
2004306249.tif 000021
【図１２】
2004306249.tif 000022
【図１３】
2004306249.tif 000023
【図１４】
2004306249.tif 000024
【図１５】
2004306249.tif 000025
【図１６】
2004306249.tif 000026
【図１７】
2004306249.tif 000027
【図１８】
2004306249.tif 000028
【図１９】
2004306249.tif 000029
【図２０】
2004306249.tif 000030
【図２１】
2004306249.tif 000031
【図２２】
2004306249.tif 000032
【図２３】
2004306249.tif 000033
【図２４】
2004306249.tif 000034
【図２５】
2004306249.tif 000035