(57)【特許請求の範囲】
【請求項１】
周囲の障害物を撮像する撮像手段と、
上記撮像手段の近傍に設けられ、上記障害物までの距離を測定する距離測定手段と、
上記撮像手段によって床面及び上記障害物としての壁面を含んだ視野範囲の領域を撮像した画像を記憶する画像記憶手段と、
上記画像に対し所定の演算処理を施すことにより当該画像に表示される上記床面と上記壁面との境界であるエッジ線を強調した当該画像である水平エッジ画像を生成するエッジ画像生成手段と、
上記水平エッジ画像を複数の縦方向に引かれた短冊ラインで分割することによって得られる当該複数の上記短冊ラインと上記エッジ線とが交差する複数のエッジ点を結んだ位置を、上記画像で表示された画像座標系における上記床面から上記壁面に変わる位置とし、当該壁面を壁面障害物として認識する壁面障害物認識手段と、
上記画像座標系における上記壁面障害物の存在位置を表す上記複数のエッジ点の座標値に対し、所定の計算式を用いることによって当該複数のエッジ点の座標値を、上記床面を基準とした床面基準座標系における上記エッジ点床面基準座標値に座標変換するエッジ壁面障害物座標変換手段と、
上記距離測定手段によって測定される上記壁面までの距離情報に基づいて得られた位置を当該距離測定手段の測定に対応した距離測定座標系における上記壁面障害物の上記存在位置として検出し、当該壁面障害物の上記存在位置を表す座標値に対し上記所定の計算式を用いることによって当該壁面障害物の上記存在位置を表す座標値を上記床面基準座標系における上記壁面障害物の上記存在位置を表す距離床面基準座標値に座標変換する距離壁面障害物座標変換手段と、
上記床面基準座標系に座標変換された上記壁面障害物の上記存在位置を表す上記エッジ点床面基準座標値と上記壁面障害物の上記存在位置を表す上記距離床面基準座標値とを重ね合わせることによって上記エッジ点によって上記壁面障害物を表す上記エッジ点床面基準座標値及び上記距離情報によって上記壁面障害物を表す上記距離床面基準座標値を１つの上記床面基準座標系に重畳して表示する障害物座標値マップを生成する障害物座標値マップ生成手段と
を具えるロボット装置。
【請求項２】
上記障害物座標値マップに基づいて検出された上記障害物を避けながら移動する移動手段と
を具える請求項１に記載のロボット装置。
【請求項３】
周囲の障害物を撮像する撮像ステップと、
上記撮像手段の近傍に設けられ、上記障害物までの距離を測定する距離測定ステップと、
画像記憶手段に上記撮像ステップによって床面及び上記障害物としての壁面を含んだ視野範囲の領域を撮像された画像を記憶する画像記憶ステップと、
上記画像に対し所定の演算処理を施すことにより当該画像に表示される上記床面と上記壁面との境界であるエッジ線を強調した当該画像である水平エッジ画像を生成するエッジ画像生成ステップと、
上記水平エッジ画像を複数の縦方向に引かれた短冊ラインで分割することによって得られる当該複数の上記短冊ラインと上記エッジ線とが交差する複数のエッジ点を結んだ位置を、上記画像で表示された画像座標系における上記床面から上記壁面に変わる位置とし、当該壁面を壁面障害物として認識する壁面障害物認識ステップと、
上記画像座標系における上記壁面障害物の存在位置を表す上記複数のエッジ点の座標値に対し、所定の計算式を用いることによって当該複数のエッジ点の座標値を、上記床面を基準とした床面基準座標系における上記エッジ点床面基準座標値に座標変換するエッジ壁面障害物座標変換ステップと、
上記距離測定ステップによって測定される上記壁面までの距離情報に基づいて得られた位置を当該距離測定手段の測定に対応した距離測定座標系における上記壁面障害物の上記存在位置として検出し、当該壁面障害物の上記存在位置を表す座標値に対し上記所定の計算式を用いることによって当該壁面障害物の上記存在位置を表す座標値を上記床面基準座標系における上記壁面障害物の上記存在位置を表す距離床面基準座標値に座標変換する距離壁面障害物座標変換ステップと、
上記床面基準座標系に座標変換された上記壁面障害物の上記存在位置を表す上記エッジ点床面基準座標値と上記壁面障害物の上記存在位置を表す上記距離床面基準座標値とを重ね合わせることによって上記エッジ点によって上記壁面障害物を表す上記エッジ点床面基準座標値及び上記距離情報によって上記壁面障害物を表す上記距離床面基準座標値を１つの上記床面基準座標系に重畳して表示する障害物座標値マップを生成する障害物座標値マップ生成ステップと
を具えるロボット装置の障害物マップ生成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はロボット装置及びロボット装置の行動決定方法に関し、例えば４足動物のように動作するペットロボットに適用して好適なものである。
【０００２】
【従来の技術】
従来、ユーザからの指令によって決まった動作を行うロボットが提案及び開発されている。このようなロボットにおいては、自分の周囲に壁などの障害物が存在する場合、その障害物に接触又は衝突すると、破損や故障の原因になることから、当該障害物に衝突するような事態が生じることを回避することが望ましい。そこでロボットにおいては、自分の周囲に存在する障害物を検出する方法として種々の方法が考えられている。
【０００３】
障害物を検出する方法としては、例えば超音波センサでなる距離センサをロボットが移動する移動平面に対して平行になるように当該ロボットの側面のあらゆる方向に取り付け、移動平面に存在する障害物の位置を検出する方法がある。
【０００４】
しかしながら、距離センサを用いて障害物を検出する方法は、多数のセンサをロボットに取り付ける必要があることから、当該ロボットの重量が重くなってしまって軽量化を図ることが困難になる。
【０００５】
また障害物を検出する方法としては、ビデオカメラをロボットの頭部に取り付け、当該ビデオカメラによって撮像された画像を基に障害物を検出する方法も考えられる。一般にビデオカメラは超音波センサに比べて広い範囲で周囲の状況を認識し得ることから、１台のビデオカメラで多くの障害物を検出することができ、これにより多数の超音波センサをロボットに取り付ける場合のように当該ロボットの重量が重くなることを回避することができる。またロボットでは、ビデオカメラを障害物を検出する方法以外の目的でも用いることから、新たに超音波センサを取り付ける場合に比べて効率的である。
【０００６】
従って障害物検出方法としては、ビデオカメラをロボットに搭載し、当該ビデオカメラによって撮像された画像を基に障害物を検出する方法が提案されており、具体的な方法は特開昭63-71604号公報、特開平02-212906 号公報、特開平07-280518 号公報及び特開昭60-90697号公報に開示されている。
【０００７】
このうち特開昭63-71604号公報に開示されている手法は、ビデオカメラによって撮像された画像のうち灰色の領域を道路と見なし、当該灰色の領域以外の領域を障害物とみなすことにより障害物を検出する手法である。特開平02-212906 号公報に開示されている手法は、予め地図を用意しておき、当該地図に基づいてロボットの移動経路などを計画する手法である。
【０００８】
特開平07-280518 号公報に開示されている手法は、焦点距離を変化させ得る焦点可変レンズ付きのビデオカメラを用いることにより床と壁のなどの境界を強調したエッジ画像を生成し、当該生成したエッジ画像を基に障害物を検出する手法である。この手法では、ビデオカメラの焦点距離を変化させて画像の濃淡が最も明確に現れた領域をエッジとみなし、当該エッジの位置とそのときの焦点距離とからエッジの位置を求めることによりエッジ画像を生成している。
【０００９】
また特開昭60-90697号公報に開示されている手法は、ビデオカメラから連続して入力される画像の各画素の濃淡変化に基づいて各画素の距離を算出し、当該各画素のうち予め設定された空間以外に位置する画素を検出してこれを障害物とみなす手法である。
【００１０】
【発明が解決しようとする課題】
ところで多数の関節を有するロボットは、移動する際にその姿勢が複雑に遷移し、当該ロボットの動作に連動してビデオカメラの位置も動くことから、ビデオカメラを移動平面に対して平行に位置させることを維持し得ず、この場合、障害物の位置を正確に検出できない問題があった。
【００１１】
因みに、特開昭63-71604号公報に開示されてる手法は、撮像された画像のうち特定の色の領域をロボットが移動し得る領域と見なしていることから、例えば室内のような様々な色が施された領域が存在する場合には障害物を検出することができず、特開平02-212906 号公報や特開平07-280518 号公報に開示されているような手法は、予め地図など周囲の状況を認識させておく必要があるため、用途が限定されてしまうことになる。
【００１２】
本発明は以上の点を考慮してなされたもので、自律的に障害物を回避しながら行動するロボット装置及びロボット装置の行動決定方法を提案しようとするものである。
【００１３】
【課題を解決するための手段】
かかる課題を解決するため本発明においては、周囲の障害物を撮像する撮像手段と、撮像手段の近傍に設けられ、当該障害物までの距離を測定する距離測定手段と、撮像手段によって床面及び障害物としての壁面を含んだ視野範囲の領域を撮像した画像を記憶する画像記憶手段と、画像に対し所定の演算処理を施すことにより当該画像に表示される床面と壁面との境界であるエッジ線を強調した画像である水平エッジ画像を生成するエッジ画像生成手段と、水平エッジ画像を複数の縦方向に引かれた短冊ラインで分割することによって得られる当該複数の短冊ラインとエッジ線とが交差する複数のエッジ点を結んだ位置を、画像で表示された画像座標系における床面から壁面に変わる位置とし、当該壁面を壁面障害物として認識する壁面障害物認識手段と、画像座標系における壁面障害物の存在位置を表す複数のエッジ点の座標値に対し、所定の計算式を用いることによって当該複数のエッジ点の座標値を、床面を基準とした床面基準座標系におけるエッジ点床面基準座標値に座標変換するエッジ壁面障害物座標変換手段と、距離測定手段によって測定される壁面までの距離情報に基づいて得られた位置を当該距離測定手段の測定に対応した距離センサ座標系における壁面障害物の存在位置として検出し、当該壁面障害物の存在位置を表す座標値に対し所定の計算式を用いることによって当該壁面障害物の存在位置を表す座標値を床面基準座標系における壁面障害物の存在位置を表す距離床面基準座標値に座標変換する距離壁面障害物座標変換手段と、床面基準座標系に座標変換された壁面障害物の存在位置を表すエッジ点床面基準座標値と壁面障害物の存在位置を表す距離床面基準座標値とを重ね合わせることによってエッジ点によって壁面障害物を表すエッジ点床面基準座標値及び距離情報によって壁面障害物を表す距離床面基準座標値を１つの床面基準座標系に重畳して表示する障害物座標値マップを生成する障害物座標値マップ生成手段とを設けるようにした。
【００１４】
この結果、撮像手段によって撮像された障害物の位置を正確に検出することができる。
【００１５】
【発明の実施の形態】
以下図面について、本発明の一実施の形態を詳述する。
【００１６】
（１）ペットロボットの構成
図１において、１は全体として動物の外観形状を有するペットロボットを示し、頭に相当する頭部２と、胴体に相当する本体部３と、足に相当する足部４Ａ〜４Ｄと、尻尾に相当する尻尾部５とを連結することによって構成され、本体部３に対して頭部２、足部４Ａ〜４Ｄ及び尻尾部５を動かすことによって実際の４足動物のように動作させるようになされている。
【００１７】
頭部２には、目に相当し、画像を撮像する撮像手段としてのＣＣＤ（Charge Coupled Device ）カメラ１０と、耳に相当し、音声を集音するマイク１１と、口に相当し、音声を発するスピーカ１２とがそれぞれ所定位置に取り付けられている。また頭部２には、ユーザの手などが接触されたことを検出するためのタッチセンサ１４と、ペットロボット１の進行方向に対して前方に位置する障害物までの距離を検出する距離検出手段としての距離センサ１５とが取り付けられている。
【００１８】
本体部３には、腹に相当する位置にバッテリ１６が取り付けられるとと共に、その内部にペットロボット１全体の動作を制御するための電子回路（図示せず）等が収納されている。
【００１９】
足部４Ａ〜４Ｄの関節部分、足部４Ａ〜４Ｄと本体部３を連結する関節部分、本体部３と頭部２を連結する関節部分、本体部３と尻尾部５を連結する関節部分などは、それぞれのアクチュエータ１７1 〜１７N によって連結されており、本体部３内部に収納される電子回路の制御に基づいて駆動するようになされている。このようにペットロボット１は、各アクチュエータ１７1 〜１７N を駆動させることにより、頭部２を上下左右に振らせたり、尻尾部５を振らせたり、足部４Ａ〜４Ｄを動かして歩かせたり走らせたりして、実際の４足動物のような動作を行わせる。またペットロボット１は、ＣＣＤカメラ１０及び距離センサ１５を支持する支持手段を構成し、当該ＣＣＤカメラ１０の撮像方向及び距離センサ１５の測定方向を任意に変化させ得るようになされている。
【００２０】
（２）ペットロボットの回路構成
ここでペットロボット１の回路構成を図２に示す。ＣＰＵ（Central Processing Unit ）２０は、ペットロボット１全体の動作を制御するためのものであり、フラッシュＲＯＭ（Read Only Memory）２１に格納されている制御プログラムをバスＢ１を介して必要に応じて読み出すと共に、ＰＣ（Personal Computer ）カードスロット（図示せず）に挿入されたメモリカード２２に格納されている制御プログラムをＰＣカードインターフェイス２３及びバスＢ１を順次介して読み出し、これら読み出した制御プログラムをＤＲＡＭ（Dynamic Random Access Memory）２４に転送して記憶するようになされている。ＣＰＵ２０は、このＤＲＡＭ２４に転送された制御プログラムを読み出して実行することによりペットロボット１の各回路を制御している。
【００２１】
信号処理回路３０は、ＣＰＵ２０の制御に基づいて各種信号処理を行うためのものであり、図３に示すように、ＣＰＵ２０（図２）に接続するためのホストインターフェイス３１と、フラッシュＲＯＭ２１（図２）に接続するためのＲＯＭインターフェイス３２と、ＤＲＡＭ２４（図２）に接続するためのＤＲＡＭインターフェイス３３とを有し、バスＢ１を介してＣＰＵ２０、フラッシュＲＯＭ２１及びＤＲＡＭ２４に接続されている。
【００２２】
信号処理回路３０は、アービトレーション（バス使用権の調停作業）を行うためのバスアービタ３４を有し、当該バスアービタ３４は、バスＢ２を介してホストインターフェイス３１、ＲＯＭインターフェイス３２及びＤＲＡＭインターフェイス３３に接続されている。
【００２３】
また図２において、ペットロボット１には、各関節部分を駆動するアクチュエータ１７1 〜１７N における駆動量を検出するためのポテンショメータ４０1 〜４０N がそれぞれ設けられ、アクチュエータ１７1 〜１７N 、ポテンショメータ４０1 〜４０N 、タッチセンサ１４、距離センサ１５、マイク１１及びスピーカ１２がそれぞれハブ４１1 〜４１X を介して信号処理回路３０のシリアルバスホストコントローラ４５（図３）にツリー接続されている。図３に示すように、シリアルバスホストコントローラ４５は、バスＢ３を介してバスアービタ３４に接続され、各ポテンショメータ４０1 〜４０N によって検出された角度情報、タッチセンサ１４によって検出された接触情報、距離センサ１５によって検出された障害物の距離情報をバスＢ３、バスアービタ３４、バスＢ２、ＤＲＡＭインターフェイス３３及びバスＢ１（図２）を順次介してＤＲＡＭ２４（図２）に転送して記憶するようになされている。
【００２４】
ＦＢＫ／ＣＤＴ（Filter Bank/Color Detection ）４６は、ＣＣＤカメラ１０（図２）に接続されるためのものであり、当該ＣＣＤカメラ１０によって撮像された画像データの色認識を行いながら複数の解像度に分けて取り込み、当該取り込んだ画像データをバスアービタ３４及びＤＲＡＭインターフェイス３３を順次介してＤＲＡＭ２４（図２）に転送して記憶する。
【００２５】
ＩＰＥ（Inner Product Engine）４７は、２次元ディジタルフィルタでなり、ＤＲＡＭ２４（図２）からＤＲＡＭインターフェイス３３及びバスアービタ３４を順次介して画像データが供給されると、当該画像データから床と壁や壁と壁の境界を強調したエッジ画像を生成し、当該生成したエッジ画像をバスアービタ３４及びＤＲＡＭインターフェイス３３を順次介してＤＲＡＭ２４（図２）に戻して記憶する。
【００２６】
ＤＭＡ（Direct Memory Access）コントローラ４８は、データの転送を司るためのものであり、例えばＦＢＫ／ＣＤＴ４６のバッファ（図示せず）から画像データを読み出してＤＲＡＭ２４（図２）に転送したり、ＤＲＡＭ２４（図２）から画像データを読み出してＩＰＥ４７に転送し、当該ＩＰＥ４７による演算結果であるエッジ画像をＤＲＡＭ２４（図２）に転送するようになされている。
【００２７】
ＤＳＰ（Digital Signal Processor）４９は、マイク１１（図２）からハブ４１X 〜４１X-2 、シリアルバスホストコントローラ４５及びバスＢ３を順次介して例えばユーザの指令を示す音声信号が入力されると、当該音声信号に対して所定のデータ処理を施し、その処理結果でなる音声情報をバスアービタ３４及びＤＲＡＭインターフェイス３３を順次介してＤＲＡＭ２４（図２）に転送して記憶する。
【００２８】
シリアルバス５０は、パーソナルコンピュータ（ＰＣ）などのリモートコンピュータ（図示せず）に接続するためのインターフェイスであり、バスＢ３を介してバスアービタ３４に接続されている。同様にバスＢ３を介してバスアービタ３４に接続されるペリフェラルインターフェイス５１は、リモートコンピュータに接続するためのシリアルポート５２及びパラレルポート５３に接続されると共に、バッテリ１６（図２）に接続するためのバッテリマネージャ５１に接続されている。バッテリマネージャ５１は、バッテリ１６から通知されるベッテリ残量情報をペリフェラルインターフェイス５１、バスアービタ３４及びＤＲＡＭインターフェイス３３を順次介してＤＲＡＭ２４に転送して記憶する。タイマー５５は、ペットロボット１内部の時計としての役割を果たすものであり、バスＢ３を介してバスアービタ３４に接続されている。
【００２９】
ＣＰＵ２０は、ＤＲＡＭ２４に展開されている各種情報に基づいて自律的に次の動作を決定し、当該決定した動作に応じた駆動信号を生成する。そしてＣＰＵ２０は、この駆動信号を信号処理回路３０内部のホストインターフェイス３１、バスアービタ３４及びシリアルバスホストコントローラ４５並びにハブ４１1 〜４１N を順次介してアクチュエータ１７1 〜１７N に送出することにより、当該各アクチュエータ１７1 〜１７N を駆動して当該ペットロボット１を自律的に動作させる。
【００３０】
その際ＣＰＵ２０は、ＤＲＡＭ２４に展開されているエッジ画像や距離情報に基づいて自分の周囲に存在する障害物を検出することにより、障害物の分布でなる障害物マップを得る。ＣＰＵ２０は、この障害物マップに基づいて自律的に行動を決定し、当該決定した行動に応じた駆動信号を生成する。そしてＣＰＵ２０は、この駆動信号を信号処理回路３０及びハブ４１1 〜４１N を順次介してアクチュエータ１７1 〜１７N に送出して当該各アクチュエータ１７1 〜１７N を駆動することにより、自分の周囲に存在する障害物を回避しながら自律的に行動するようになされている。
【００３１】
なおＣＰＵ２０は、ＤＲＡＭ２４に展開されている各種情報に基づいて音声情報を生成し、当該音声情報をホストインターフェイス３１及びバスアービタ３４を順次介してＤＳＰ４９に送出し、当該ＤＳＰ４９において音声信号に変換した後、当該音声信号をシリアルバスホストコントローラ４５、ハブ４１X を順次介してスピーカ１２から出力する。
【００３２】
（３）行動決定方法
ここでペットロボット１の行動決定方法について図４に示すフローチャートを用いて説明する。ここではペットロボット１が例えば図５に示すような壁６０〜６３に挟まれた通路に沿って床面６４を移動する場合について説明する。この場合、ステップＳＰ１から入ったステップＳＰ２において、ペットロボット１は、ＣＣＤカメラ１０の視野範囲に含まれる領域を当該ＣＣＤカメラ１０によって撮像し、その結果得た図６に示すような画像データを入力画像として信号処理回路３０を介してＤＲＡＭ２４に記憶する。
【００３３】
信号処理回路３０は、ＤＲＡＭ２４から入力画像を読み出し、当該入力画像から３×３画素でなる検索画像を１画素分ずつ移動させながら順次切り出し、当該切り出した各検索画像と、フィルタ係数を示す次式
【００３４】
【数１】
0004235858.tif 000002
【００３５】
でなる参照画像との積和演算をそれぞれ並列的に施すことにより、床面と壁や壁と壁の境界すなわち水平エッジを強調した図７に示すようなエッジ画像を生成し、当該エッジ画像をＤＲＡＭ２４に記憶する。このようにエッジ画像の生成は、信号処理回路３０によって行われ、ＣＰＵ２０を用いることはないため、ＣＰＵ２０は他の演算処理に従事することができる。
【００３６】
ステップＳＰ３において、ＣＰＵ２０は、エッジ画像を縦方向に沿って短冊状の領域Ｒ１〜Ｒ８に分割することにより図８に示すような短冊画像を生成する。そしてＣＰＵ２０は、短冊状の各領域Ｒ１〜Ｒ８それぞれに対してエッジ画像の下部から各ライン毎に走査し、最初に境界（以下、これをエッジと呼ぶ）を検出した位置を求める。
【００３７】
ところでペットロボット１が床６４に置かれている場合にはその足元が床面６４に位置することから、エッジ画像の下部付近の領域は床面６４であることが想定される。従って、エッジ画像の下部から走査した場合に最初に検出されるエッジは、床面６４の領域が終了することを意味して障害物と認識される。
【００３８】
このようにＣＰＵ２０は、信号処理回路３０と共に障害物検出手段を構成し、領域Ｒ１中の複数のラインそれぞれに対して走査することによりエッジの位置をそれぞれ検出し、当該検出された各ライン毎のエッジ位置のうち縦方向のレベルが中間のものを領域Ｒ１の障害物の位置（ｘ1 、ｙ1 ）とする。以下、同様にしてＣＰＵ２０は、各領域Ｒ２〜Ｒ８の障害物の位置（ｘ2 、ｙ2 ）〜（ｘ8 、ｙ8 ）をそれぞれ検出し、当該検出した各位置（ｘi 、ｙi ）を画像座標系における障害物の位置とする。
【００３９】
続くステップＳＰ４において、ＣＰＵ２０は、位置変換手段として動作し、画像座標系における障害物の位置（ｘi 、ｙi ）を、ペットロボット１が置かれている床面６４を基準とした床面基準座標系における位置（ｘb 、ｙb 、ｚb ）に座標変換する。以下、この座標変換について具体的に説明する。まずＣＰＵ２０は、図１０に示すようなピンホール・カメラモデル７０において、エッジ画像の画像中心を原点とする画像座標系における障害物の位置を（ｘi 、ｙi ）とする一方、ＣＣＤカメラ１０の焦点位置を原点とするカメラ座標系における障害物の位置を（ｘc 、ｙc 、ｚc ）とすると共に焦点距離をｆとすると、画像座標系における障害物の位置（ｘi 、ｙi ）とカメラ座標系における障害物の位置（ｘc 、ｙc 、ｚc ）との関係は、次式
【００４０】
【数２】
0004235858.tif 000003
【００４１】
のように表される。
【００４２】
画像座標系は、奥行き方向の位置情報が欠落しているため、画像座標系における障害物の位置（ｘi 、ｙi ）からカメラ座標系における障害物の位置（ｘc 、ｙc 、ｚc ）への変換は実行できない。従ってＣＰＵ２０は、上述の（２）式を、ｚc を未知数として（ｘc 、ｙc ）について解くことにより、次式
【００４３】
【数３】
0004235858.tif 000004
【００４４】
を得る。
【００４５】
次いでＣＰＵ２０は、図１１に示すような座標系において、床面基準座標系における位置をロボット中心座標系における位置に変換するための４×４行列の同次変換行列をＢ、ロボット中心座標系から頭部２をチルト（上下）方向に駆動する第１関節における座標系に変換するための同次変換行列をＴ1 、第１関節における座標系から頭部２をパン（左右）方向に駆動する第２関節における座標系に変換するための同次変換行列をＴ2 、第２関節における座標系から頭部２をロール（回転）方向に駆動する第３関節における座標系に変換するための同次変換行列をＴ3 、第３関節における座標系の位置をカメラ座標系における位置に変換するための同次変換行列をＴ4 として、カメラ座標系における障害物の位置Ｘc を、次式
【００４６】
【数４】
0004235858.tif 000005
【００４７】
によって床面座標系における位置Ｘb に変換する。ここでｃ11〜ｃ33は同次変換行列Ｔの回転量を示し、ｔx 、ｔy 、ｔz は同次変換行列Ｔの並行移動量を示し、ｃ11′〜ｃ33′及びｃ11″〜ｃ33″は床面基準座標系及びカメラ座標系の回転量を示し、ｘb 、ｙb 、ｚb 及びｘc 、ｙc 、ｚc は床面基準座標系及びカメラ座標系の平行移動量を示す。
【００４８】
そしてＣＰＵ２０は、上述の（４）式を展開することによりｘb 、ｙb 、ｚb の計算式を求め、障害物が床面６４上に存在するという拘束条件ｚb ＝０を用いることにより、次式
【００４９】
【数５】
0004235858.tif 000006
【００５０】
を得る。ＣＰＵ２０は、この（５）式に上述の（３）式を代入した後、拘束条件ｚb ＝０からｚc を算出し、当該算出したｚc を（５）式の第１式及び第２式に代入することにより、画像座標系における障害物の位置（ｘi 、ｙi ）を床面基準座標系における位置（ｘb 、ｙb 、０）に座標変換する変換式である次式
【００５１】
【数６】
0004235858.tif 000007
【００５２】
を生成する。かくしてＣＰＵ２０は、この（６）式を用いてエッジ画像中の各領域に存在する障害物の位置を床面基準座標系における位置（ｘb 、ｙb 、０）に座標変換する。
【００５３】
ステップＳＰ５において、ＣＰＵ２０は、図１２に示す座標系において、画像座標系における障害物の位置（ｘi 、ｙi ）を床面基準座標系における位置（ｘb 、ｙb 、０）に座標変換する場合と同様にして、距離センサ座標系における障害物の位置Ｘd （０、０、ｘd ）を床面基準座標系における位置（ｘe 、ｙe 、０）に座標変換する。すなわちＣＰＵ２０は、距離センサ１５の検出結果である距離情報ｘd を距離センサ座標系における障害物の位置Ｘd （０、０、ｘd ）とし、当該位置Ｘd （０、０、ｘd ）を上述の同次変換行列Ｂ、Ｔ1 、Ｔ2 、Ｔ3 及び第３関節における座標系の位置を距離センサ座標系における位置に変換するための同次変換行列Ｔ5 を用いて床面基準座標系における位置（ｘe 、ｙe 、０）に座標変換する。
【００５４】
ステップＳＰ６において、ＣＰＵ２０は、障害物分布生成手段として動作し、ＣＣＤカメラ１０によって撮像された入力画像に基づいて算出された床面基準座標系における障害物の位置（ｘb 、ｙb ）と、距離センサ１５によって検出された距離情報に基づいて算出された床面基準座標系における障害物の位置（ｘe 、ｙe ）とを重ねて表示することにより、図１３に示すような障害物の分布でなる障害物マップ８０を生成し、当該生成した障害物マップ８０をＤＲＡＭ２４に記憶する。図中丸印はＣＣＤカメラ１０によって検出された障害物を示し、図中二重丸印は距離センサ１５によって検出された障害物を示す。
【００５５】
ところでＣＣＤカメラ１０によって撮像された入力画像にノイズが含まれていると、信号処理回路３０はエッジ画像を正しく生成し得ない場合がある。この場合、ペットロボット１は、距離センサ１５を併用して障害物を検出しており、障害物の検出における信頼性を向上させることができる。因みに、ＣＰＵ２０は、ペットロボット１の周囲の所定範囲を安全圏８１として選定して表示するようになされており、安全圏８１に障害物等が侵入した場合、移動速度を所定の速度に制限するなどして警戒行動モードに入る。
【００５６】
ステップＳＰ７において、ＣＰＵ２０は、さらに障害物の位置を検出する必要があるか否か判断し、その結果、さらに障害物の位置を検出する必要があると判断した場合にはステップＳＰ２に戻って動作を繰り返すことにより広い範囲の障害物マップを生成し、周囲に存在する障害物を十分検出することはできたと判断した場合にはステップＳＰ８に移行する。
【００５７】
そしてステップＳＰ８において、ＣＰＵ２０は、行動決定手段として動作し、生成した障害物マップに基づいてペットロボット１から最も近くに位置する障害物を避けながら最も遠くに位置する障害物に向かって進むという行動計画を立てて、当該行動計画に応じて各アクチュエータ１７1 〜１７N を駆動する。これによりペットロボット１は、自分の周囲に存在する障害物を回避しながら自律的に行動又は移動することができる。そしてステップＳＰ９に移って処理を終了する。
【００５８】
（４）動作及び効果
以上の構成において、信号処理回路３０は、ＣＣＤカメラ１０によって撮像された入力画像から所定の周波数成分の画像信号を抽出するようなフィルタ演算を施すことにより、ペットロボット１が移動する移動面と当該移動面上に存在する障害物との境界を強調したエッジ画像を生成する。
【００５９】
ＣＰＵ２０は、このエッジ画像上に存在する最下部の境界の位置から障害物の位置を特定し、当該最下部の境界の位置を画像座標系における障害物の位置と見なす。そしてＣＰＵ２０は、アクチュエータ１７1 〜１７N が駆動することに応じて変化したＣＣＤカメラ１０の撮像方向に基づいて、画像座標系における障害物の位置を、ペットロボット１が移動する移動面を基準とした基準座標系における位置に座標変換する。このように複数の関節を有し、動作する毎に複雑に姿勢遷移するペットロボット１であっても、周囲の環境にかかわらずに障害物の位置を正確に検出することができる。
【００６０】
同様にしてＣＰＵ２０は、アクチュエータ１７1 〜１７N が駆動することに応じて変化した距離センサ１５の測定方向に基づいて、、距離センサ座標系における障害物の位置を基準座標系における位置に座標変換する。次いでＣＰＵ２０は、ＣＣＤカメラ１０によって検出された障害物の基準座標系における位置と、距離センサ１５によって検出された障害物の基準座標系における位置とを基に、障害物の分布でなる障害物マップを生成する。ＣＰＵ２０は、この生成した障害物マップに基づいて自律的に次の動作を決定し、自分の周囲に存在する障害物を回避しながら自律的に行動及び移動する。これによりユーザはペットロボット１の行動を常に監視する必要がなくなる。
【００６１】
以上の構成によれば、撮像された入力画像からペットロボット１が移動する移動面と当該移動面上に存在する障害物との境界を検出してこれを障害物の位置と見なし、ＣＣＤカメラ１０の撮像方向に基づいてこの障害物の位置を移動面上の位置に変換することにより、自分の周囲に存在する障害物の位置を正確に検出することができ、かくして当該検出した障害物の位置に基づいて次の動作を決定すれば、確実に障害物を回避しながら自律的に行動することができる。
【００６２】
また、ＣＣＤカメラ１０は距離センサ１５に比べて広い範囲で周囲の状況を認識し得ることから、１台のＣＣＤカメラ１０で多くの障害物を検出することができ、ペットロボット１の構成を簡易にし得る。
【００６３】
また、ＣＣＤカメラ１０から供給される入力画像を基に検出された画像座標系における障害物の位置を、床面基準座標系における位置に座標変換して障害物マップに表示することにより、距離センサ１５によって検出された障害物の位置も座標変換を施せば、障害物マップに表示することができ、従って障害物の位置に対する信頼性を向上することができる。
【００６４】
（５）他の実施の形態
なお上述の実施の形態においては、ＣＣＤカメラ１０及び距離センサ１５を用いて障害物を検出した場合について述べたが、本発明はこれに限らず、ＣＣＤカメラ１０だけで障害物を検出するようにしても良い。
【００６５】
また上述の実施の形態においては、本発明をペットロボット１に適用した場合について述べたが、例えばゲームや展示等のエンタテインメント分野で用いられるロボット又は搬送用ロボット、工事用ロボット等の産業ロボットのように、他の種々のロボット装置に本発明を適用し得る。
【００６６】
【発明の効果】
上述のように本発明によれば、周囲の障害物を撮像する撮像手段と、撮像手段の近傍に設けられ、当該障害物までの距離を測定する距離測定手段と、撮像手段によって床面及び障害物としての壁面を含んだ視野範囲の領域を撮像した画像を記憶する画像記憶手段と、画像に対し所定の演算処理を施すことにより当該画像に表示される床面と壁面との境界であるエッジ線を強調した画像である水平エッジ画像を生成するエッジ画像生成手段と、水平エッジ画像を複数の縦方向に引かれた短冊ラインで分割することによって得られる当該複数の短冊ラインとエッジ線とが交差する複数のエッジ点を結んだ位置を、画像で表示された画像座標系における床面から壁面に変わる位置とし、当該壁面を壁面障害物として認識する壁面障害物認識手段と、画像座標系における壁面障害物の存在位置を表す複数のエッジ点の座標値に対し、所定の計算式を用いることによって当該複数のエッジ点の座標値を、床面を基準とした床面基準座標系におけるエッジ点床面基準座標値に座標変換するエッジ壁面障害物座標変換手段と、距離測定手段によって測定される壁面までの距離情報に基づいて得られた位置を当該距離測定手段の測定に対応した距離センサ座標系における壁面障害物の存在位置として検出し、当該壁面障害物の存在位置を表す座標値に対し所定の計算式を用いることによって当該壁面障害物の存在位置を表す座標値を床面基準座標系における壁面障害物の存在位置を表す距離床面基準座標値に座標変換する距離壁面障害物座標変換手段と、床面基準座標系に座標変換された壁面障害物の存在位置を表すエッジ点床面基準座標値と壁面障害物の存在位置を表す距離床面基準座標値とを重ね合わせることによってエッジ点によって壁面障害物を表すエッジ点床面基準座標値及び距離情報によって壁面障害物を表す距離床面基準座標値を１つの床面基準座標系に重畳して表示する障害物座標値マップを生成する障害物座標値マップ生成手段とを具えるようにしたことにより、カメラ画像によるエッジ点床面基準座標値と距離センサによる距離床面基準座標値を併用した障害物座標値マップに従って障害物を検出することができるので、カメラ画像によるエッジ点床面基準座標値にノイズによるエッジ画像に誤差が生じても距離センサによる距離床面基準座標値による障害物検出によって障害物の位置を正確に検出することができ、かくして障害物の位置を検出する信頼性が向上し得るロボット装置を実現できる。
【図面の簡単な説明】
【図１】本発明によるペットロボットの一実施の形態を示す略線図である。
【図２】ペットロボットの回路構成を示すブロック図である。
【図３】信号処理回路の構成を示すブロック図である。
【図４】ロボット装置の行動決定方法を示すフローチャートである。
【図５】ペットロボットの周囲の環境を示す略線図である。
【図６】入力画像を示す略線図である。
【図７】エッジ画像を示す略線図である。
【図８】短冊画像を示す略線図である。
【図９】各短冊の代表点を示す略線図である。
【図１０】ピンホール・カメラモデルを示す略線図である。
【図１１】座標変換の原理を示す略線図である。
【図１２】座標変換の原理を示す略線図である。
【図１３】障害物マップを示す略線図である。
【符号の説明】
１……ペットロボット、２……頭部、３……本体部、４……足部、５……尻尾部、１０……ＣＣＤカメラ、１１……マイク、１２……スピーカ、１５……距離センサ、１６……バッテリ、１７……アクチュエータ、２０……ＣＰＵ、２１……フラッシュＲＯＭ、２２……メモリカード、２４……ＤＲＡＭ、３０……信号処理回路、３４……バスアービタ、４０……ポテンショメータ、４１……ハブ、４５……シリアルバスホストコントローラ、４６……ＦＢＫ／ＣＤＴ、４７……ＩＰＥ、４８……ＤＭＡコントローラ。
【図１】
0004235858.tif 000008
【図２】
0004235858.tif 000009
【図３】
0004235858.tif 000010
【図４】
0004235858.tif 000011
【図５】
0004235858.tif 000012
【図６】
0004235858.tif 000013
【図７】
0004235858.tif 000014
【図８】
0004235858.tif 000015
【図９】
0004235858.tif 000016
【図１０】
0004235858.tif 000017
【図１１】
0004235858.tif 000018
【図１２】
0004235858.tif 000019
【図１３】
0004235858.tif 000020