JP2004298975A - ロボット装置、障害物探索方法 - Google Patents
ロボット装置、障害物探索方法 Download PDFInfo
- Publication number
- JP2004298975A JP2004298975A JP2003092347A JP2003092347A JP2004298975A JP 2004298975 A JP2004298975 A JP 2004298975A JP 2003092347 A JP2003092347 A JP 2003092347A JP 2003092347 A JP2003092347 A JP 2003092347A JP 2004298975 A JP2004298975 A JP 2004298975A
- Authority
- JP
- Japan
- Prior art keywords
- obstacle
- probability
- area
- existence probability
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
【課題】効率よく障害物を探索するロボット装置及びロボット装置の障害物探索方法を提供する。
【解決手段】ロボット装置1と障害物との相対位置を示す障害物占有確率表を生成し、ロボット装置1は障害物との接触をさけながら動作することができる。障害物占有確率表は、グリッド55に分割されており、各グリッド55には障害物の存在確率が記憶されている。障害物更新部は、障害物占有確率表における障害物の存在確率を時間とともに所定の値に収束させる。ロボット装置1は、この障害物存在確率が曖昧な領域を優先的に探索する。
【選択図】 図6
【解決手段】ロボット装置1と障害物との相対位置を示す障害物占有確率表を生成し、ロボット装置1は障害物との接触をさけながら動作することができる。障害物占有確率表は、グリッド55に分割されており、各グリッド55には障害物の存在確率が記憶されている。障害物更新部は、障害物占有確率表における障害物の存在確率を時間とともに所定の値に収束させる。ロボット装置1は、この障害物存在確率が曖昧な領域を優先的に探索する。
【選択図】 図6
Description
【0001】
【発明の属する技術分野】
本発明は、外部情報、外部からの働きかけに応じた動作及び/又は内部状態に基づいて自律的動作を実行するロボット装置及びロボット装置の障害物探索方法に関する。
【0002】
【従来の技術】
最近では、人間のパートナーとして生活を支援する、すなわち住環境その他の日常生活上の様々な場面における人的活動を支援する実用ロボットの開発が進められている。このような実用ロボットは、産業用ロボットとは異なり、人間の生活環境の様々な局面において、個々に個性の相違した人間、又は様々な環境への適応方法を自ら学習する能力を備えている。例えば、犬、猫のように4足歩行の動物の身体メカニズムやその動作を模した「ペット型」ロボット、或いは、2足直立歩行を行う動物の身体メカニズムや動作をモデルにしてデザインされた「人間型」又は「人間形」ロボット(Humanoid Robot)等の脚式移動ロボットは、既に実用化されつつある。
【0003】
これらの脚式移動ロボットは、産業用ロボットと比較してエンターテインメント性を重視した様々な動作を行うことができるため、エンターテインメントロボットと呼称される場合もある。
【0004】
このようなエンターテインメントロボットは、産業用ロボットと異なり、周囲の外部状態やロボット自身の内部状態に応じて、自立的に動作を行う。例えば、歩行動作では、ロボット装置は、外部の障害物を検出し、障害物を回避するような歩行経路を計画する。従来、ロボット装置は、ロボット装置の位置と障害物との相対距離を示す障害物占有確率表を作成し、これを基に歩行経路を決定している。
【0005】
図16は、障害物占有確率表の一例を示している。障害物占有確率表は、ロボット装置を中心とした仮想座標系上に形成される。この仮想座標系は、ロボット装置の足底が設置する平面を基準とする2次元座標系として作成され、この平面状にないものは全て障害物Sとして認識される。この仮想座標系の中心は、ロボット装置自身である。仮想座標系上のロボット装置の周囲には、複数のグリッド毎に、形成される障害物占有確率表が形成される。各グリッドには、障害物の存在確率が記憶される。ロボット装置は、障害物の存在確率が低い領域を経路可能領域として歩行経路を決定する。
【0006】
【発明が解決しようとする課題】
このように、ロボット装置の中には、自立的に歩行経路を立て、この計画に従い歩行動作を行い、歩行経路上に障害物を発見した場合には、障害物の存在しない領域を探索し、新たな歩行経路を立てるものもある。
【0007】
ロボット装置は、ロボット装置自身の周囲の領域を順々に探索していき、障害物が発見されると、新たな障害物占有確率表を作成するための再探索を開始するが、この再探索において、従来のロボット装置は、例えば、端から順番に探索し直すなどして、あらゆる方向を手当たり次第探索するため、探索効率が悪く、歩行経路算出までに時間がかかり、歩行動作が遅延するという問題があった。
【0008】
本発明は、上述した課題に鑑みてなされたものであって、効率よく障害物を探索するロボット装置及びロボット装置の障害物探索方法を提供することを目的とする。
【0009】
【課題を解決するための手段】
上述した目的を達成するために、本発明にかかるロボット装置は、外部情報、外部からの働きかけに応じた動作及び/又は内部状態に基づいて自律的動作を実行するロボット装置において、実空間の画像を撮像する撮像手段と、撮像手段によって撮像された画像データをもとに障害物の存在する領域を検出する障害物検出手段と、複数の単位領域からなる障害物占有確率表を当該ロボット装置を中心とした仮想座標系上に構築する障害物占有確率表構築手段と、障害物検出手段において障害物の存在が検出された単位領域に障害物存在確率を記憶させる存在確率記憶手段と、障害物が検出された時刻からの時間経過に応じて、単位領域に記憶された障害物存在確率を所定値に減衰させる存在確率更新手段と、障害物存在確率の値を基に障害物を探索すべき領域を決定する探索領域決定手段とを備える。
【0010】
さらに、本発明にかかる障害物探索方法は、外部情報、外部からの働きかけに応じた動作及び/又は内部状態に基づいて自律的動作を実行するロボット装置の障害物探索方法であって、実空間の画像を撮像する撮像工程と、撮像工程によって撮像された画像データをもとに障害物の存在する領域を検出する障害物検出工程と、複数の単位領域からなる障害物占有確率表を当該ロボット装置を中心とした仮想座標系上に構築する障害物占有確率表構築工程と、障害物検出工程において障害物の存在が検出された単位領域に障害物存在確率を記憶させる存在確率記憶工程と、障害物が検出された時刻からの時間経過に応じて、単位領域に記憶された障害物存在確率を所定値に減衰させる存在確率更新工程と、障害物存在確率の値を基に障害物を探索すべき領域を決定する探索領域決定工程とを有する。
【0011】
【発明の実施の形態】
本発明を適用したロボット装置は、ロボット装置と障害物との相対位置を示す地図(障害物占有確率表と記す)を生成し、障害物との接触を避けながら動作することができる。障害物占有確率表は、小さな区画(グリッドと記す。)に分割されており、各グリッドには障害物の存在確率が記憶されている。本発明に係るロボット装置は、障害物の存在確率を時間とともに所定値に収束させ、この存在確率に応じて障害物の探索領域を決定するため、障害物の探索効率を向上できる。
【0012】
以下、図面を参照して本発明を適用したロボット装置1について説明する。図1は、ロボット装置1の外観を示している。ロボット装置1は、人間の外見を模した形状をしており、体幹部ユニット2の所定の位置の頭部ユニット3が連結されるとともに、左右2つの腕部ユニット4R/Lと、左右二つの脚部ユニット5R/Lが連結されて構成されている(但し、R及びLの各々は、右及び左の各々を示す接尾辞である。)。
【0013】
ロボット装置1を構成するユニットは、関節を介して可動的に接合されている。図2は、ロボット装置1が具備する関節を示している。頭部ユニット3を支持する首関節は、首関節ヨー軸101と、首関節ピッチ軸102と、首関節ロール軸103という3自由度を有している。
【0014】
また、上肢を構成する各々の腕部ユニット4R/Lは、肩関節ピッチ軸107と、肩関節ロール軸103と、上腕ヨー軸109と、肘関節ピッチ軸110と、前腕ヨー軸111と、手首関節ピッチ軸112と、手首関節ロール軸113と、手部とで構成される。手部は、実際には、複数本の指を含む多関節・他自由度構造体である。但し、手部の動作は、ロボット装置1の姿勢制御や歩行制御に対する寄与や影響が少ないので、本明細書ではゼロ自由度と過程する。したがって、各腕部は7自由度を有する。
【0015】
また、体幹部ユニット22は、体幹ピッチ軸104と、体幹ロール軸105と、体幹ヨー軸106という3自由度を有する。
【0016】
また、下肢を構成する各々の脚部ユニット5R/Lは、股関節ヨー軸114と、股関節ピッチ軸115と、股関節ロール軸116と、肘関節ピッチ軸117と、足首関節ピッチ軸119と、足首関節ロール軸118と、足部とで構成される。本明細書中では、股関節ピッチ軸115と股関節ロール軸116の交点は、ロボット装置1の股関節位置を定義する、人体の足部は、実際には多関節・多自由度の足底を含んだ構造体であるが、ロボット装置1の足底は、ゼロ自由度とする。したがって、各脚部は、6自由度で構成される。以上を総括すれば、ロボット装置1全体としては、32自由度を有する。
【0017】
ロボット装置1は、これらの関節を軸にして各ユニットを駆動し、人間と同様の動作を行う。関節は、関節を駆動するアクチュエータ31と、関節の屈折量を検出するポテンショメータ32とから構成される。ポテンショメータ32とアクチュエータ31とは、図3に示すように、ハブを介して信号処理回路10に接続されている。信号処理回路10は、ポテンショメータ32から関節の実際の屈折量を入力するとともに、この屈折量をもとにアクチュエータ31を制御する。
【0018】
信号処理回路10には、ポテンショメータ32のほかにCCDカメラ21、マイクロフォン、タッチセンサ22が接続されている。CCDカメラ21は、ロボット装置1の目に相当し、画像データを取得する。マイクロフォンは人間の耳に相当し、タッチセンサ22は人間の触覚に相当する。
【0019】
CCDカメラ21は、2つ設けられており、カメラの視差を利用して被写体までの距離を検出することが可能となっている。以下の説明では、2つのCCDカメラ21を合わせて、撮像手段40と呼ぶ。
【0020】
信号処理回路10には、さらに、距離センサ23や角速度センサ23、加速度センサ27が接続されている。ロボット装置1は、距離センサ23や角速度センサ23からの出力をもとに、ロボット装置1自身の移動速度や移動方向などを検出する。
【0021】
フラッシュROM13、メモリカード15などの記録手段には、プログラムが記録されている。信号処理回路10は、これらの記録手段からプログラムを読み出す。DRAM12は、信号処理回路10の作業領域であり、信号処理回路10は、記録手段から読み出したプログラム、各種センサからのセンサデータ、CCDカメラ21からの画像データ及びマイクロフォンからの音声データなどをDRAM12に展開する。CPU11は、DRAM12、フラッシュROM13、PCカードインターフェース14等の記録手段を制御している。
【0022】
信号処理回路10は、CCDカメラ21が撮像した画像データやマイクロフォンが検出した音声データなどを基にロボット装置1の外部状態を把握し、この外部状態とロボット装置1の内部状態とをもとにロボット装置1の動作を決定する。信号処理回路10が決定する動作には、例えば、歩行動作がある。歩行動作では、外部の障害物を検出し、障害物と接触しないように、歩行経路を選択して歩行する。
【0023】
図4は、ロボット装置1の歩行動作のための機能ブロック図である。この機能ブロック図に記載された機能は、フラッシュROM13、メモリカード15などの記録手段に記録されたプログラムを基に信号処理回路10が実行する。
【0024】
ロボット装置1は、図4に示すように、撮像手段40によって撮像された画像データを基に障害物占有確率表51を作成する画像処理部50と、ロボット装置1の歩行経路を決定する行動制御部60と、アクチュエータ31にコマンドを出力し歩行経路に従った歩行動作を実行させる駆動部70とを備える。
【0025】
画像処理部50は、図5に示すように、障害物占有確率表51を構築する障害物占有確率表構築部52、障害物の有無を判断する障害物判断部53、障害物占有確率表51に記憶された存在確率を管理する確率更新部54から構成される。
【0026】
障害物判断部53は、撮像手段40によって撮像された画像データを基に障害物の存在するか否かを判断する。障害物判断部53は、オドメトリを入力し、ロボット装置1を中心としたロボット座標系をカメラ位置を中心としたカメラ座標系へ変換する同次変換行列を導出する。オドメトリとは、ロボット装置1の姿勢や移動量であり、例えば、何歩移動したか、どの方向を向いているかを表す。ロボット装置1の姿勢や移動量は、ロボット装置1の各関節に設けられたポテンショメータ32から関節角を基に算出される。オドメトリの算出は、オドメトリ算出部80によって実行される。
【0027】
障害物判断部53は、更に、撮像手段40によって撮像された画像データを入力する。この画像データは、2つのCCDカメラ21が取得した視差画像である。障害物判断部53は、撮像手段40のキャリブレーションパラメータを利用して、視差画像を3次元の位置データ(レンジデータ)へ変換する。障害物判断部53は、レンジデータからハフ変換などを使い平面を検出する。そして、障害物判断部53は、上述した同次変換行列からロボット装置1の足底が接地している平面との対応を取り、例えば、壁及びテーブル等、ロボット装置1の足底平面からオフセットした平面を除く平面を床面として選択する。さらに、障害物判断部53は、床面上にない点、例えば所定の閾値よりも高い位置にあるものを障害物として床面からの距離を算出し、この障害物データを障害物占有確率表構築部52に出力する。
【0028】
障害物占有確率表構築部52は、ロボット座標系を基に障害物占有確率表51を作成する。障害物占有確率表51は、複数のグリッド55から構成されている。障害物占有確率表51の各グリッド55には、障害物が存在する確率及び障害物が視認された時刻が記憶されている。なお、本実施の形態において、存在確率は、0〜1の値をとる。図6は、障害物占有確率表51の一例を示している。なお、図6は、障害物占有確率表51を簡略して表した図であるが、実際の障害物占有確率表はグリッド数が多く複雑な表現が可能である。本実施の形態では、例えば、障害物占有確率表の一辺は実空間を4mに対応させ、縦横2cmのグリッドが敷き詰めている。
【0029】
各グリッド55は、障害物の存在確率に応じて着色されている。この場合、グリッド55は、白と黒のモノトーンで着色されており、黒味が強くなるにつれて障害物の存在する確率が高くなることを表している。この実施の形態では、障害物の存在が濃厚なグリッド(障害物の存在確率の高いグリッド)を障害物存在グリッド56、障害物の存在が希薄なグリッド(障害物の存在確率の低いグリッド)を障害物不在グリッド57、障害物の存在があいまいなグリッドを障害物不明グリッド58と呼ぶ。
【0030】
以下の図面では、障害物存在グリッド56を黒色、障害物不在グリッド57を白抜き、障害物不明グリッド58は斜線で表現する。また、障害物占有確率の大小を斜線の黒色部分の占有面積で表現する。図5に示す障害物存在確率表では、ロボット装置1の前方に障害物不在グリッド57が存在し、ロボット装置1の右後に障害物存在グリッド56が存在する。そして障害物存在グリッド56と障害物不在グリッド58を除く空間は、障害物不明グリッド57となっている。
【0031】
障害物占有確率表構築部52は、障害物判断部53からの障害物データと、ロボット装置1の移動量であるオドメトリを入力する。障害物占有確率表構築部52は、入力したオドメトリと障害物データに応じて障害物占有確率表51を更新する。障害物占有確率表51の更新には、新たな障害物の発見に基づく障害物占有確率表51の更新と、ロボット装置1の移動に基づく障害物占有確率表51の更新とがある。新たな障害物を発見した場合、障害物占有確率表構築部52は、障害物が発見されたグリッド55を黒く着色する。ロボット装置1が移動した場合には、ロボット装置1の移動に伴って、各グリッド55とロボット装置1の相対位置を更新する。
【0032】
確率更新部54は、このロボット装置1の特徴部分である。確率更新部54は、各グリッドが記憶する障害物を視認した時刻から現時刻までの時間経過を算出し、この経過時間に応じて障害物の存在確率を減衰する。
【0033】
本実施の形態では、障害物の存在確率を時間とともに変化させることにより、障害物の存在が曖昧になった領域を明確化している。本実施の形態では、確率更新部54は、障害物の存在確率を0.5に減衰させる。存在確率0.5は、障害物の存在も障害物の不在も示さない値である。ロボット装置1は、障害物の探索領域を決定する場合、存在確率が0.5に近い曖昧な領域を優先的に探索する。存在確率は、ロボット装置1が探索領域を決定するための因子となる。
【0034】
障害物占有確率表51を構成する各グリッド55には、撮像手段40が各グリッド55を撮像した時間が記録されている。確率更新部54は、定期的に各グリッド55に記録された撮像時刻を読み出し、撮像時刻と現時刻との差を基に存在確率を更新する。障害物の存在確率は、時間減衰され、最終的には、0.5に収束する。
【0035】
ロボット装置1の探索手順について、図7〜図9を参照して説明する。図7〜図9は、ロボット装置1と障害物の存在する実空間と、ロボット装置1が実空間に対して仮想的に構築した障害物占有確率表51を示している。実空間は図面上段に描かれ、実空間に対する障害物占有確率表51が図面下段に描かれている。
【0036】
図7〜図9の図面は、時系列に並んでいる。図7(a)と図7(a’)はロボットの起動時(時刻t0)、図7(b)と図7(b’)は起動からt1時間経過した時刻t1、図7(c)と図7(c’)は起動からt2時間経過した時刻t2における実空間と障害物占有確率表を示している。
【0037】
また、図8(a)と図8(a’)は時刻t3、図8(b)と図8(b’)は時刻t4、図8(c)と図8(c’)は時刻t5、図8(d)と図8(d’)と図9は、時刻t6における実空間と障害物占有確率表を示している。
【0038】
起動時(時刻t0)における障害物占有確率表51は、初期化されている。初期化時のグリッド55は、障害物の存在が曖昧な障害物不明グリッド58である。起動時の障害物存在確率は、例えば、0.5に設定される。
【0039】
時刻t1において、ロボット装置1は撮像を開始する。ここでは、ロボット装置1の視野範囲Qに障害物Sが含まれないため、ロボット装置1の視野範囲Qに存在するグリッドは、障害物不在グリッド57となる。
【0040】
時刻t2において、ロボット装置1は障害物Sの方向に前進する。そして、ロボット装置1の視野範囲Qに障害物Sが含まれる。ロボット装置1は、障害物Sを検出すると、障害物Sの存在するグリッドを黒く着色し、障害物存在グリッド56に変更する。なお、ここで視野範囲Qに含まれないグリッド55は、初期化時から更新されないので、障害物不明グリッド58である。
【0041】
時刻t3において、障害物占有確率表51には、ロボット装置1の右側に障害物不在領域57が存在する。ロボット装置1は、ロボット装置1の前方に存在する障害物Sを回避するために、右に迂回する経路を選択し、障害物の不在領域に向かって歩行する。
【0042】
時刻t4において、障害物Sがロボット装置1と同じ方向に移動を開始すると、ロボット装置1の前方には障害物Sが存在するため、障害物Sが存在する空間のグリッド55は黒く着色され、障害物存在領域56となる。ここで、障害物占有確率表51は、既に探索した領域の存在確率を保持しているため、障害物Sが既に移動した領域も黒く着色したままになっている。ここで、ロボット装置1は、障害物Sの大きさを実際の大きさより大きなものであると誤認識している。
【0043】
ロボット装置1の周囲を障害物が移動すると、障害物の軌跡を示す領域全てが障害物の存在領域になる。図8(c’)は、障害物の軌跡を示す領域全てが障害物の存在領域となった場合の障害物占有確率表51の状態を示している。このように、障害物に囲まれると、ロボット装置1は、歩行経路を決定することができなくなる。
【0044】
そこで、本実施の形態では確率更新部54によって、障害物の確率を更新することで、誤認識を解消している。確率更新部54は、ロボット装置1の歩行動作の間、定期的に障害物の存在確率を更新し、所定時間だけ過去に撮像された領域の存在確率を0.5に近い値に収束させる。そのため、図9に示すように、障害物の視認から時間の経過したグリッドは、斜線の黒色部分が少なくなっている。ロボット装置1は、障害物の存在確率が低い領域、すなわち障害物の存在が曖昧な領域を優先的に探索する。
【0045】
このように、本発明を適用したロボット装置1は、領域の撮像時間からの経過時間を基に障害物の存在確率を変更する。これにより、障害物を優先的に探索する領域を効率的に決定することができる。
【0046】
行動制御部60は、障害物占有確率表51の障害物の存在確率が低い領域を移動可能領域とみなして目的地までの経路探索を行う。行動制御部60の経路探索としては、例えば経路全体のコストを最小化するA*探索という方法を用いる。このA*探索は、評価関数としてfを用い、h関数が許容的であるような最良優先探索であり、いかなるヒューリスティック関数に対しても効率最適という点を用いている。なお、A*探索は、単なる例示であり、探索方法を限定するものではない。
【0047】
このように、本実施の形態におけるロボット装置1は、障害物の存在位置を示す障害物占有確率表51を生成し、障害物を視認した時刻からの経過時間に従って障害物の存在する確率を0.5に収束させる。そして、障害物の存在確率が低い領域から順に障害物の探索を行う。そのため、本実施の形態におけるロボット装置1では、障害物の探索領域を効率的に決定する。
【0048】
以下、本発明の実施の形態における2足歩行タイプのロボット装置1について詳細に説明する。この人間型のロボット装置1は、住環境その他の日常生活上の様々な場面における人的活動を支援する実用ロボット装置1であり、内部状態(怒り、悲しみ、喜び、楽しみ等)に応じて行動できるほか、人間が行う基本的な動作を表出できるエンターテインメントロボットである。
【0049】
以下、信号処理回路が実行するソフトウェアの構成例について、図10〜図14を用いて説明する。なお、予めフラッシュROM13に格納されており、ロボット装置11の電源投入初期時において読み出される。また、上述した探査処理に関するプログラムも予めフラッシュROM13に格納されている。
【0050】
図10において、デバイス・ドライバ・レイヤ140は、制御プログラムの最下位層に位置し、複数のデバイス・ドライバからなるデバイス・ドライバ・セット141から構成されている。この場合、各デバイス・ドライバは、CCDカメラ21等の通常のコンピュータで用いられるハードウェアに直接アクセスすることを許されたオブジェクトであり、対応するハードウェアからの割り込みを受けて処理を行う。
【0051】
また、ロボティック・サーバ・オブジェクト142は、デバイス・ドライバ・レイヤ140の最下位層に位置し、例えば上述の各種センサやアクチュエータ31等のハードウェアにアクセスするためのインターフェイスを提供するソフトウェア群でなるバーチャル・ロボット143と、電源の切り換えなどを管理するソフトウェア群でなるパワーマネジャ144と、他の種々のデバイス・ドライバを管理するソフトウェア群でなるデバイス・ドライバ・マネジャ145と、ロボット装置11の機構を管理するソフトウェア群でなるデザインド・ロボット146とから構成されている。
【0052】
マネジャ・オブジェクト147は、オブジェクト・マネジャ148及びサービス・マネジャ149から構成されている。オブジェクト・マネジャ148は、ロボティック・サーバ・オブジェクト142、ミドル・ウェア・レイヤ150、及びアプリケーション・レイヤ151に含まれる各ソフトウェア群の起動や終了を管理するソフトウェア群であり、サービス・マネジャ149は、メモリカードに格納されたコネクションファイルに記述されている各オブジェクト間の接続情報に基づいて各オブジェクトの接続を管理するソフトウェア群である。
【0053】
ミドル・ウェア・レイヤ150は、ロボティック・サーバ・オブジェクト142の上位層に位置し、画像処理や音声処理などのこのロボット装置11の基本的な機能を提供するソフトウェア群から構成されている。また、アプリケーション・レイヤ151は、ミドル・ウェア・レイヤ150の上位層に位置し、当該ミドル・ウェア・レイヤ150を構成する各ソフトウェア群によって処理された処理結果に基づいてロボット装置11の行動を決定するためのソフトウェア群から構成されている。
【0054】
なお、ミドル・ウェア・レイヤ150及びアプリケーション・レイヤ151の具体なソフトウェア構成をそれぞれ図11、図12に示す。
【0055】
ミドル・ウェア・レイヤ150は、図11に示すように、騒音検出用160、温度検出用161、明るさ検出用162、音階認識用163、距離検出用164、姿勢検出用165、タッチセンサ用166、動き検出用167及び色認識用168の各信号処理モジュール並びに入力セマンティクスコンバータモジュール169などを有する認識系170と、出力セマンティクスコンバータモジュール179並びに姿勢管理用、トラッキング用172、モーション再生用173、歩行用174、転倒復帰用175、LED点灯用176及び音再生用177の各信号処理モジュールなどを有する出力系179とから構成されている。
【0056】
認識系170の各信号処理モジュール170〜178は、ロボティック・サーバ・オブジェクト142のバーチャル・ロボット143によりDRAM12から読み出される各センサデータや画像データ及び音声データのうちの対応するデータを取り込み、当該データに基づいて所定の処理を施して、処理結果を入力セマンティクスコンバータモジュール169に与える。ここで、例えば、バーチャル・ロボット143は、所定の通信規約によって、信号の授受或いは変換をする部分として構成されている。
【0057】
入力セマンティクスコンバータモジュール169は、これら各信号処理モジュール160〜168から与えられる処理結果に基づいて、「うるさい」、「暑い」、「明るい」、「ボールを検出した」、「転倒を検出した」、「撫でられた」、「叩かれた」、「ドミソの音階が聞こえた」、「動く物体を検出した」又は「障害物を検出した」などの自己及び周囲の状況や、使用者からの指令及び働きかけを認識し、認識結果をアプリケーション・レイヤ151に出力する。
【0058】
アプリケーション・レイヤ151は、図12に示すように、行動モデルライブラリ180、行動切換モジュール181、学習モジュール182、感情モデル183及び本能モデル184の5つのモジュールから構成されている。
【0059】
行動モデルライブラリ180には、図13に示すように、「バッテリ残量が少なくなった場合」、「転倒復帰する」、「障害物を回避する場合」、「感情を表現する場合」、「ボールを検出した場合」などの予め選択されたいくつかの条件項目にそれぞれ対応させて、それぞれ独立した行動モデルが設けられている。
【0060】
そして、これら行動モデルは、それぞれ入力セマンティクスコンバータモジュール169から認識結果が与えられたときや、最後の認識結果が与えられてから一定時間が経過したときなどに、必要に応じて後述のように感情モデル183に保持されている対応する情動のパラメータ値や、本能モデル184に保持されている対応する欲求のパラメータ値を参照しながら続く行動をそれぞれ決定し、決定結果を行動切換モジュール181に出力する。
【0061】
なお、この実施の形態の場合、各行動モデルは、次の行動を決定する手法として、図14に示すような1つのノード(状態)NODE0〜NODEnから他のどのノードNODE0〜NODEnに遷移するかを各ノードNODE0〜NODEnに間を接続するアークARC1〜ARCn1に対してそれぞれ設定された遷移確率P1〜Pnに基づいて確率的に決定する有限確率オートマトンと呼ばれるアルゴリズムを用いる。
【0062】
具体的に、各行動モデルは、それぞれ自己の行動モデルを形成するノードNODE0〜NODEnにそれぞれ対応させて、これらノードNODE0〜NODEn毎に図15示すような状態遷移表を有している。
【0063】
この状態遷移表では、そのノードNODE0〜NODEnにおいて遷移条件とする入力イベント(認識結果)が「入力イベント名」の列に優先順に列記され、その遷移条件についてのさらなる条件が「データ名」及び「データ範囲」の列における対応する行に記述されている。
【0064】
したがって、図15の状態遷移表で表されるノードNODE100では、「ボールを検出(BALL)」という認識結果が与えられた場合に、当該認識結果とともに与えられるそのボールの「大きさ(SIZE)」が「0から1000」の範囲であることや、「障害物を検出(OBSTACLE)」という認識結果が与えられた場合に、当該認識結果とともに与えられるその障害物までの「距離(DISTANCE)」が「0から100」の範囲であることが他のノードに遷移するための条件となっている。
【0065】
また、このノードNODE100では、認識結果の入力がない場合においても、行動モデルが周期的に参照する感情モデル183及び本能モデル184にそれぞれ保持された各情動及び各欲求のパラメータ値のうち、感情モデル183に保持された「喜び(Joy)」、「驚き(Surprise)」又は「悲しみ(Sadness)」の何れかのパラメータ値が「50から100」の範囲であるときには他のノードに遷移することができるようになっている。
【0066】
また、状態遷移表では、「他のノードヘの遷移確率」の欄における「遷移先ノード」の行にそのノードNODE0〜NODEnから遷移できるノード名が列記されているとともに、「入力イベント名」、「データ名」及び「データの範囲」の列に記述された全ての条件が揃ったときに遷移できるほかの各ノードNODE0〜NODEnへの遷移確率が「他のノードヘの遷移確率」の欄内の対応する箇所にそれぞれ記述され、そのノードNODE0〜NODEnに遷移する際に出力すべき行動が「他のノードヘの遷移確率」の欄における「出力行動」の行に記述されている。なお、「他のノードヘの遷移確率」の欄における各行の確率の和は100[%]となっている。
【0067】
したがって、図16の状態遷移表で表されるノードNODE100では、例えば「ボールを検出(BALL)」し、そのボールの「SIZE(大きさ)」が「0から1000」の範囲であるという認識結果が与えられた場合には、「30[%]」の確率で「ノードNODE120(node120)」に遷移でき、そのとき「ACTION1」の行動が出力されることとなる。
【0068】
各行動モデルは、それぞれこのような状態遷移表として記述されたノードNODE0〜NODEnが幾つも繋がるようにして構成されており、入力セマンティクスコンバータモジュール169から認識結果が与えられたときなどに、対応するノードNODE0〜NODEnの状態遷移表を利用して確率的に次の行動を決定し、決定結果を行動切換モジュール181に出力するようになされている。
【0069】
図13に示す行動切換モジュール181は、行動モデルライブラリ180の各行動モデルからそれぞれ出力される行動のうち、予め定められた優先順位の高い行動モデルから出力された行動を選択し、当該行動を実行すべき旨のコマンド(以下、行動コマンドという。)をミドル・ウェア・レイヤ150の出力セマンティクスコンバータモジュール178に送出する。なお、この実施の形態においては、図13において下側に表記された行動モデルほど優先順位が高く設定されている。
【0070】
また、行動切換モジュール181は、行動完了後に出力セマンティクスコンバータモジュール187から与えられる行動完了情報に基づいて、その行動が完了したことを学習モジュール182、感情モデル183及び本能モデル184に通知する。
【0071】
一方、学習モジュール182は、入力セマンティクスコンバータモジュール169から与えられる認識結果のうち、「叩かれた」や「撫でられた」など、使用者からの働きかけとして受けた教示の認識結果を入力する。
【0072】
そして、学習モジュール182は、この認識結果及び行動切換えモジュール181からの通知に基づいて、「叩かれた(叱られた)」ときにはその行動の発現確率を低下させ、「撫でられた(誉められた)」ときにはその行動の発現確率を上昇させるように、行動モデルライブラリ180における対応する行動モデルの対応する遷移確率を変更する。
【0073】
他方、感情モデル183は、「喜び(Joy)」、「悲しみ(Sadness)」、「怒り(Anger)」、「驚き(Surprise)」、「嫌悪(Disgust)」及び「恐れ(Fear)」の合計6つの情動について、各情動毎にその情動の強さを表すパラメータを保持している。そして、感情モデル183は、これら各情動のパラメータ値を、それぞれ入力セマンティクスコンバータモジュール79から与えられる「叩かれた」及び「撫でられた」などの特定の認識結果や、経過時間及び行動切換モジュール181からの通知などに基づいて周期的に更新する。
【0074】
具体的には、感情モデル183は、入力セマンティクスコンバータモジュール169から与えられる認識結果と、そのときのロボット装置11の行動と、前回更新してからの経過時間となどに基づいて所定の演算式により算出されるそのときのその情動の変動量を△E[t]、現在のその情動のパラメータ値をE[t]、その情動の感度を表す係数をkeとして、(1)式によって次の周期におけるその情動のパラメータ値E[t+1]を算出し、これを現在のその情動のパラメータ値E[t]と置き換えるようにしてその情動のパラメータ値を更新する。また、感情モデル183は、これと同様にして全ての情動のパラメータ値を更新する。
【0075】
【数1】
【0076】
なお、各認識結果や出力セマンティクスコンバータモジュール178からの通知が各情動のパラメータ値の変動量△E[t]にどの程度の影響を与えるかは予め決められており、例えば「叩かれた」といった認識結果は「怒り」の情動のパラメータ値の変動量△E[t]に大きな影響を与え、「撫でられた」といった認識結果は「喜び」の情動のパラメータ値の変動量△E[t]に大きな影響を与えるようになっている。
【0077】
ここで、出力セマンティクスコンバータモジュール178からの通知とは、いわゆる行動のフィードバック情報(行動完了情報)であり、行動の出現結果の情報であり、感情モデル183は、このような情報によっても感情を変化させる。これは、例えば、「叫ぶ」といった行動により怒りの感情レベルが下がるといったようなことである。なお、出力セマンティクスコンバータモジュール178からの通知は、上述した学習モジュール182にも入力されており、学習モジュール182は、その通知に基づいて行動モデルの対応する遷移確率を変更する。
【0078】
なお、行動結果のフィードバックは、行動切換モジュール181の出力(感情が付加された行動)によりなされるものであってもよい。
【0079】
一方、本能モデル184は、「運動欲(exercise)」、「愛情欲(affection)」、「食欲(appetite)」及び「好奇心(curiosity)」の互いに独立した4つの欲求について、これら欲求毎にその欲求の強さを表すパラメータを保持している。そして、本能モデル184は、これらの欲求のパラメータ値を、それぞれ入力セマンティクスコンバータモジュール169から与えられる認識結果や、経過時間及び行動切換モジュール181からの通知などに基づいて周期的に更新する。
【0080】
具体的には、本能モデル184は、「運動欲」、「愛情欲」及び「好奇心」については、認識結果、経過時間及び出力セマンティクスコンバータモジュール178からの通知などに基づいて所定の演算式により算出されるそのときのその欲求の変動量をΔI[k]、現在のその欲求のパラメータ値をI[k]、その欲求の感度を表す係数kiとして、所定周期で(2)式を用いて次の周期におけるその欲求のパラメータ値I[k+1]を算出し、この演算結果を現在のその欲求のパラメータ値I[k]と置き換えるようにしてその欲求のパラメータ値を更新する。また、本能モデル174は、これと同様にして「食欲」を除く各欲求のパラメータ値を更新する。
【0081】
【数2】
【0082】
なお、認識結果及び出力セマンティクスコンバータモジュール178からの通知などが各欲求のパラメータ値の変動量△I[k]にどの程度の影響を与えるかは予め決められており、例えば出力セマンティクスコンバータモジュール178からの通知は、「疲れ」のパラメータ値の変動量△I[k]に大きな影響を与えるようになっている。
【0083】
なお、本実施の形態においては、各情動及び各欲求(本能)のパラメータ値がそれぞれ0から100までの範囲で変動するように規制されており、また係数ke、kiの値も各情動及び各欲求毎に個別に設定されている。
【0084】
一方、ミドル・ウェア・レイヤ150の出力セマンティクスコンバータモジュール178は、図12に示すように、上述のようにしてアプリケーション・レイヤ141の行動切換モジュール181から与えられる「前進」、「喜ぶ」、「鳴く」又は「トラッキング(ボールを追いかける)」といった抽象的な行動コマンドを出力系179の対応する信号処理モジュール171〜177に与える。
【0085】
そしてこれら信号処理モジュール171〜177は、行動コマンドが与えられると当該行動コマンドに基づいて、その行動をするために対応するアクチュエータ31に与えるべきサーボ指令値や、スピーカ25から出力する音の音声データ及び又はLEDに与える駆動データを生成し、これらのデータをロボティック・サーバ・オブジェクト142のバーチャル・ロボット143及び信号処理回路を順次介して対応するアクチュエータ31又はスピーカ25に順次送出する。
【0086】
このようにしてロボット装置11は、上述した制御プログラムに基づいて、自己(内部)及び周囲(外部)の状況や、使用者からの指示及び働きかけに応じた自律的な行動ができる。
【0087】
このような制御プログラムは、ロボット装置1が読取可能な形式で記録された記録媒体を介して提供される。制御プログラムを記録する記録媒体としては、磁気読取方式の記録媒体(例えば、磁気テープ、フレキシブルディスク、磁気カード)、光学読取方式の記録媒体(例えば、CD−ROM、MO、CD−R、DVD)等が考えられる。記録媒体には、半導体メモリ(いわゆるメモリカード(矩形型、正方形型など形状は問わない。)、ICカード)等の記憶媒体も含まれる。また、制御プログラムは、いわゆるインターネット等を介して提供されてもよい。
【0088】
これらの制御プログラムは、専用の読込ドライバ装置、又はパーソナルコンピュータ等を介して再生され、有線又は無線接続によってロボット装置11に伝送されて読み込まれる。また、ロボット装置11は、半導体メモリ、又はICカード等の小型化された記憶媒体のドライブ装置を備える場合、これら記憶媒体から制御プログラムを直接読み込むこともできる。
【0089】
以上、本発明を適用したロボット装置について説明したが、本発明は、本実施の形態で説明したロボット装置に限定されるものではなく、本発明の要旨を含む範囲での変形・改良は本発明に含まれるものとする。例えば、上記実施の形態では、障害物が視認された時刻を各グリッドが記憶するとしたが、各グリッドが障害物を視認した時刻を記憶するのではなく、隣接する複数のグリッドで1つのグループを作成し、このグループ内で最後に視認された時刻を記憶するようにしてもよい。これにより、障害物の存在確率を更新するための計算量及び視認時刻を記憶するためのメモリの容量を少なくすることができる。
【0090】
また、ロボット装置は、2足歩行のロボット装置としたが、経路探索機能を有するロボット装置であれば、4足歩行やローラを使って歩行するロボット装置などでもよい。
【0091】
【発明の効果】
上述したように、本発明におけるロボット装置は、ロボット装置を中心とした座標系上に障害物記憶空間を生成する。障害物記憶空間は、複数の単位領域からなり、各単位領域には障害物存在確率が記憶されている。ロボット装置は、障害物が検出された時刻からの時間経過に応じて障害部存在確率を所定の値に減衰させる。これにより、ロボット装置は、障害物の存在が曖昧な領域を認識することができるので、障害物の存在が曖昧な領域を優先的に検索し、障害物の検出効率を向上することができる。
【0092】
また、本発明におけるロボット装置は、障害物存在確率の減衰により、障害物の存在情報を保持し続けることはなく、障害物の移動を検出することができる。
【図面の簡単な説明】
【図1】本発明を適用したロボット装置の外観構成を示す斜視図である。
【図2】同ロボット装置の自由度構成モデルを模式的に示す図である。
【図3】同ロボット装置の回路構成を示す図である。
【図4】歩行動作における機能ブロック図である。
【図5】画像処理部の内部構成を示す図である。
【図6】障害物占有確率表の一例を示す図である。
【図7】ロボット装置の歩行動作及び障害物占有確率表の推移を時系列的に示した図である。
【図8】ロボット装置の歩行動作及び障害物占有確率表の推移を時系列的に示した図である。
【図9】グリッドの色の変化を示す図である。
【図10】同ロボット装置のソフトウェア構成を示す図である。
【図11】同ロボット装置のミドル・ウェア・レイヤの構成を示す図である。
【図12】同ロボット装置のアプリケーション・レイヤの構成を示す図である。
【図13】アプリケーション・レイヤの行動モデルライブラリの構成を示す図である。
【図14】同ロボット装置が行動決定のための情報となる有限確率オートマトンを説明する図である。
【図15】有限確率オートマトンの各ノードに用意された状態遷移表を示す図である。
【図16】従来の障害物占有確率表の一例を示す図である。
【符号の説明】
1 ロボット装置、31 アクチュエータ、32 ポテンショメータ、40 撮像手段、50 画像処理部、51 障害物占有確率表、52 障害物占有確率表構築部、53 障害物判断部、54 確率更新部、55 グリッド、56 障害物存在グリッド、57 障害物不在グリッド、58 障害物不明グリッド、60行動制御部、70 駆動部、80 オドメトリ算出部
【発明の属する技術分野】
本発明は、外部情報、外部からの働きかけに応じた動作及び/又は内部状態に基づいて自律的動作を実行するロボット装置及びロボット装置の障害物探索方法に関する。
【0002】
【従来の技術】
最近では、人間のパートナーとして生活を支援する、すなわち住環境その他の日常生活上の様々な場面における人的活動を支援する実用ロボットの開発が進められている。このような実用ロボットは、産業用ロボットとは異なり、人間の生活環境の様々な局面において、個々に個性の相違した人間、又は様々な環境への適応方法を自ら学習する能力を備えている。例えば、犬、猫のように4足歩行の動物の身体メカニズムやその動作を模した「ペット型」ロボット、或いは、2足直立歩行を行う動物の身体メカニズムや動作をモデルにしてデザインされた「人間型」又は「人間形」ロボット(Humanoid Robot)等の脚式移動ロボットは、既に実用化されつつある。
【0003】
これらの脚式移動ロボットは、産業用ロボットと比較してエンターテインメント性を重視した様々な動作を行うことができるため、エンターテインメントロボットと呼称される場合もある。
【0004】
このようなエンターテインメントロボットは、産業用ロボットと異なり、周囲の外部状態やロボット自身の内部状態に応じて、自立的に動作を行う。例えば、歩行動作では、ロボット装置は、外部の障害物を検出し、障害物を回避するような歩行経路を計画する。従来、ロボット装置は、ロボット装置の位置と障害物との相対距離を示す障害物占有確率表を作成し、これを基に歩行経路を決定している。
【0005】
図16は、障害物占有確率表の一例を示している。障害物占有確率表は、ロボット装置を中心とした仮想座標系上に形成される。この仮想座標系は、ロボット装置の足底が設置する平面を基準とする2次元座標系として作成され、この平面状にないものは全て障害物Sとして認識される。この仮想座標系の中心は、ロボット装置自身である。仮想座標系上のロボット装置の周囲には、複数のグリッド毎に、形成される障害物占有確率表が形成される。各グリッドには、障害物の存在確率が記憶される。ロボット装置は、障害物の存在確率が低い領域を経路可能領域として歩行経路を決定する。
【0006】
【発明が解決しようとする課題】
このように、ロボット装置の中には、自立的に歩行経路を立て、この計画に従い歩行動作を行い、歩行経路上に障害物を発見した場合には、障害物の存在しない領域を探索し、新たな歩行経路を立てるものもある。
【0007】
ロボット装置は、ロボット装置自身の周囲の領域を順々に探索していき、障害物が発見されると、新たな障害物占有確率表を作成するための再探索を開始するが、この再探索において、従来のロボット装置は、例えば、端から順番に探索し直すなどして、あらゆる方向を手当たり次第探索するため、探索効率が悪く、歩行経路算出までに時間がかかり、歩行動作が遅延するという問題があった。
【0008】
本発明は、上述した課題に鑑みてなされたものであって、効率よく障害物を探索するロボット装置及びロボット装置の障害物探索方法を提供することを目的とする。
【0009】
【課題を解決するための手段】
上述した目的を達成するために、本発明にかかるロボット装置は、外部情報、外部からの働きかけに応じた動作及び/又は内部状態に基づいて自律的動作を実行するロボット装置において、実空間の画像を撮像する撮像手段と、撮像手段によって撮像された画像データをもとに障害物の存在する領域を検出する障害物検出手段と、複数の単位領域からなる障害物占有確率表を当該ロボット装置を中心とした仮想座標系上に構築する障害物占有確率表構築手段と、障害物検出手段において障害物の存在が検出された単位領域に障害物存在確率を記憶させる存在確率記憶手段と、障害物が検出された時刻からの時間経過に応じて、単位領域に記憶された障害物存在確率を所定値に減衰させる存在確率更新手段と、障害物存在確率の値を基に障害物を探索すべき領域を決定する探索領域決定手段とを備える。
【0010】
さらに、本発明にかかる障害物探索方法は、外部情報、外部からの働きかけに応じた動作及び/又は内部状態に基づいて自律的動作を実行するロボット装置の障害物探索方法であって、実空間の画像を撮像する撮像工程と、撮像工程によって撮像された画像データをもとに障害物の存在する領域を検出する障害物検出工程と、複数の単位領域からなる障害物占有確率表を当該ロボット装置を中心とした仮想座標系上に構築する障害物占有確率表構築工程と、障害物検出工程において障害物の存在が検出された単位領域に障害物存在確率を記憶させる存在確率記憶工程と、障害物が検出された時刻からの時間経過に応じて、単位領域に記憶された障害物存在確率を所定値に減衰させる存在確率更新工程と、障害物存在確率の値を基に障害物を探索すべき領域を決定する探索領域決定工程とを有する。
【0011】
【発明の実施の形態】
本発明を適用したロボット装置は、ロボット装置と障害物との相対位置を示す地図(障害物占有確率表と記す)を生成し、障害物との接触を避けながら動作することができる。障害物占有確率表は、小さな区画(グリッドと記す。)に分割されており、各グリッドには障害物の存在確率が記憶されている。本発明に係るロボット装置は、障害物の存在確率を時間とともに所定値に収束させ、この存在確率に応じて障害物の探索領域を決定するため、障害物の探索効率を向上できる。
【0012】
以下、図面を参照して本発明を適用したロボット装置1について説明する。図1は、ロボット装置1の外観を示している。ロボット装置1は、人間の外見を模した形状をしており、体幹部ユニット2の所定の位置の頭部ユニット3が連結されるとともに、左右2つの腕部ユニット4R/Lと、左右二つの脚部ユニット5R/Lが連結されて構成されている(但し、R及びLの各々は、右及び左の各々を示す接尾辞である。)。
【0013】
ロボット装置1を構成するユニットは、関節を介して可動的に接合されている。図2は、ロボット装置1が具備する関節を示している。頭部ユニット3を支持する首関節は、首関節ヨー軸101と、首関節ピッチ軸102と、首関節ロール軸103という3自由度を有している。
【0014】
また、上肢を構成する各々の腕部ユニット4R/Lは、肩関節ピッチ軸107と、肩関節ロール軸103と、上腕ヨー軸109と、肘関節ピッチ軸110と、前腕ヨー軸111と、手首関節ピッチ軸112と、手首関節ロール軸113と、手部とで構成される。手部は、実際には、複数本の指を含む多関節・他自由度構造体である。但し、手部の動作は、ロボット装置1の姿勢制御や歩行制御に対する寄与や影響が少ないので、本明細書ではゼロ自由度と過程する。したがって、各腕部は7自由度を有する。
【0015】
また、体幹部ユニット22は、体幹ピッチ軸104と、体幹ロール軸105と、体幹ヨー軸106という3自由度を有する。
【0016】
また、下肢を構成する各々の脚部ユニット5R/Lは、股関節ヨー軸114と、股関節ピッチ軸115と、股関節ロール軸116と、肘関節ピッチ軸117と、足首関節ピッチ軸119と、足首関節ロール軸118と、足部とで構成される。本明細書中では、股関節ピッチ軸115と股関節ロール軸116の交点は、ロボット装置1の股関節位置を定義する、人体の足部は、実際には多関節・多自由度の足底を含んだ構造体であるが、ロボット装置1の足底は、ゼロ自由度とする。したがって、各脚部は、6自由度で構成される。以上を総括すれば、ロボット装置1全体としては、32自由度を有する。
【0017】
ロボット装置1は、これらの関節を軸にして各ユニットを駆動し、人間と同様の動作を行う。関節は、関節を駆動するアクチュエータ31と、関節の屈折量を検出するポテンショメータ32とから構成される。ポテンショメータ32とアクチュエータ31とは、図3に示すように、ハブを介して信号処理回路10に接続されている。信号処理回路10は、ポテンショメータ32から関節の実際の屈折量を入力するとともに、この屈折量をもとにアクチュエータ31を制御する。
【0018】
信号処理回路10には、ポテンショメータ32のほかにCCDカメラ21、マイクロフォン、タッチセンサ22が接続されている。CCDカメラ21は、ロボット装置1の目に相当し、画像データを取得する。マイクロフォンは人間の耳に相当し、タッチセンサ22は人間の触覚に相当する。
【0019】
CCDカメラ21は、2つ設けられており、カメラの視差を利用して被写体までの距離を検出することが可能となっている。以下の説明では、2つのCCDカメラ21を合わせて、撮像手段40と呼ぶ。
【0020】
信号処理回路10には、さらに、距離センサ23や角速度センサ23、加速度センサ27が接続されている。ロボット装置1は、距離センサ23や角速度センサ23からの出力をもとに、ロボット装置1自身の移動速度や移動方向などを検出する。
【0021】
フラッシュROM13、メモリカード15などの記録手段には、プログラムが記録されている。信号処理回路10は、これらの記録手段からプログラムを読み出す。DRAM12は、信号処理回路10の作業領域であり、信号処理回路10は、記録手段から読み出したプログラム、各種センサからのセンサデータ、CCDカメラ21からの画像データ及びマイクロフォンからの音声データなどをDRAM12に展開する。CPU11は、DRAM12、フラッシュROM13、PCカードインターフェース14等の記録手段を制御している。
【0022】
信号処理回路10は、CCDカメラ21が撮像した画像データやマイクロフォンが検出した音声データなどを基にロボット装置1の外部状態を把握し、この外部状態とロボット装置1の内部状態とをもとにロボット装置1の動作を決定する。信号処理回路10が決定する動作には、例えば、歩行動作がある。歩行動作では、外部の障害物を検出し、障害物と接触しないように、歩行経路を選択して歩行する。
【0023】
図4は、ロボット装置1の歩行動作のための機能ブロック図である。この機能ブロック図に記載された機能は、フラッシュROM13、メモリカード15などの記録手段に記録されたプログラムを基に信号処理回路10が実行する。
【0024】
ロボット装置1は、図4に示すように、撮像手段40によって撮像された画像データを基に障害物占有確率表51を作成する画像処理部50と、ロボット装置1の歩行経路を決定する行動制御部60と、アクチュエータ31にコマンドを出力し歩行経路に従った歩行動作を実行させる駆動部70とを備える。
【0025】
画像処理部50は、図5に示すように、障害物占有確率表51を構築する障害物占有確率表構築部52、障害物の有無を判断する障害物判断部53、障害物占有確率表51に記憶された存在確率を管理する確率更新部54から構成される。
【0026】
障害物判断部53は、撮像手段40によって撮像された画像データを基に障害物の存在するか否かを判断する。障害物判断部53は、オドメトリを入力し、ロボット装置1を中心としたロボット座標系をカメラ位置を中心としたカメラ座標系へ変換する同次変換行列を導出する。オドメトリとは、ロボット装置1の姿勢や移動量であり、例えば、何歩移動したか、どの方向を向いているかを表す。ロボット装置1の姿勢や移動量は、ロボット装置1の各関節に設けられたポテンショメータ32から関節角を基に算出される。オドメトリの算出は、オドメトリ算出部80によって実行される。
【0027】
障害物判断部53は、更に、撮像手段40によって撮像された画像データを入力する。この画像データは、2つのCCDカメラ21が取得した視差画像である。障害物判断部53は、撮像手段40のキャリブレーションパラメータを利用して、視差画像を3次元の位置データ(レンジデータ)へ変換する。障害物判断部53は、レンジデータからハフ変換などを使い平面を検出する。そして、障害物判断部53は、上述した同次変換行列からロボット装置1の足底が接地している平面との対応を取り、例えば、壁及びテーブル等、ロボット装置1の足底平面からオフセットした平面を除く平面を床面として選択する。さらに、障害物判断部53は、床面上にない点、例えば所定の閾値よりも高い位置にあるものを障害物として床面からの距離を算出し、この障害物データを障害物占有確率表構築部52に出力する。
【0028】
障害物占有確率表構築部52は、ロボット座標系を基に障害物占有確率表51を作成する。障害物占有確率表51は、複数のグリッド55から構成されている。障害物占有確率表51の各グリッド55には、障害物が存在する確率及び障害物が視認された時刻が記憶されている。なお、本実施の形態において、存在確率は、0〜1の値をとる。図6は、障害物占有確率表51の一例を示している。なお、図6は、障害物占有確率表51を簡略して表した図であるが、実際の障害物占有確率表はグリッド数が多く複雑な表現が可能である。本実施の形態では、例えば、障害物占有確率表の一辺は実空間を4mに対応させ、縦横2cmのグリッドが敷き詰めている。
【0029】
各グリッド55は、障害物の存在確率に応じて着色されている。この場合、グリッド55は、白と黒のモノトーンで着色されており、黒味が強くなるにつれて障害物の存在する確率が高くなることを表している。この実施の形態では、障害物の存在が濃厚なグリッド(障害物の存在確率の高いグリッド)を障害物存在グリッド56、障害物の存在が希薄なグリッド(障害物の存在確率の低いグリッド)を障害物不在グリッド57、障害物の存在があいまいなグリッドを障害物不明グリッド58と呼ぶ。
【0030】
以下の図面では、障害物存在グリッド56を黒色、障害物不在グリッド57を白抜き、障害物不明グリッド58は斜線で表現する。また、障害物占有確率の大小を斜線の黒色部分の占有面積で表現する。図5に示す障害物存在確率表では、ロボット装置1の前方に障害物不在グリッド57が存在し、ロボット装置1の右後に障害物存在グリッド56が存在する。そして障害物存在グリッド56と障害物不在グリッド58を除く空間は、障害物不明グリッド57となっている。
【0031】
障害物占有確率表構築部52は、障害物判断部53からの障害物データと、ロボット装置1の移動量であるオドメトリを入力する。障害物占有確率表構築部52は、入力したオドメトリと障害物データに応じて障害物占有確率表51を更新する。障害物占有確率表51の更新には、新たな障害物の発見に基づく障害物占有確率表51の更新と、ロボット装置1の移動に基づく障害物占有確率表51の更新とがある。新たな障害物を発見した場合、障害物占有確率表構築部52は、障害物が発見されたグリッド55を黒く着色する。ロボット装置1が移動した場合には、ロボット装置1の移動に伴って、各グリッド55とロボット装置1の相対位置を更新する。
【0032】
確率更新部54は、このロボット装置1の特徴部分である。確率更新部54は、各グリッドが記憶する障害物を視認した時刻から現時刻までの時間経過を算出し、この経過時間に応じて障害物の存在確率を減衰する。
【0033】
本実施の形態では、障害物の存在確率を時間とともに変化させることにより、障害物の存在が曖昧になった領域を明確化している。本実施の形態では、確率更新部54は、障害物の存在確率を0.5に減衰させる。存在確率0.5は、障害物の存在も障害物の不在も示さない値である。ロボット装置1は、障害物の探索領域を決定する場合、存在確率が0.5に近い曖昧な領域を優先的に探索する。存在確率は、ロボット装置1が探索領域を決定するための因子となる。
【0034】
障害物占有確率表51を構成する各グリッド55には、撮像手段40が各グリッド55を撮像した時間が記録されている。確率更新部54は、定期的に各グリッド55に記録された撮像時刻を読み出し、撮像時刻と現時刻との差を基に存在確率を更新する。障害物の存在確率は、時間減衰され、最終的には、0.5に収束する。
【0035】
ロボット装置1の探索手順について、図7〜図9を参照して説明する。図7〜図9は、ロボット装置1と障害物の存在する実空間と、ロボット装置1が実空間に対して仮想的に構築した障害物占有確率表51を示している。実空間は図面上段に描かれ、実空間に対する障害物占有確率表51が図面下段に描かれている。
【0036】
図7〜図9の図面は、時系列に並んでいる。図7(a)と図7(a’)はロボットの起動時(時刻t0)、図7(b)と図7(b’)は起動からt1時間経過した時刻t1、図7(c)と図7(c’)は起動からt2時間経過した時刻t2における実空間と障害物占有確率表を示している。
【0037】
また、図8(a)と図8(a’)は時刻t3、図8(b)と図8(b’)は時刻t4、図8(c)と図8(c’)は時刻t5、図8(d)と図8(d’)と図9は、時刻t6における実空間と障害物占有確率表を示している。
【0038】
起動時(時刻t0)における障害物占有確率表51は、初期化されている。初期化時のグリッド55は、障害物の存在が曖昧な障害物不明グリッド58である。起動時の障害物存在確率は、例えば、0.5に設定される。
【0039】
時刻t1において、ロボット装置1は撮像を開始する。ここでは、ロボット装置1の視野範囲Qに障害物Sが含まれないため、ロボット装置1の視野範囲Qに存在するグリッドは、障害物不在グリッド57となる。
【0040】
時刻t2において、ロボット装置1は障害物Sの方向に前進する。そして、ロボット装置1の視野範囲Qに障害物Sが含まれる。ロボット装置1は、障害物Sを検出すると、障害物Sの存在するグリッドを黒く着色し、障害物存在グリッド56に変更する。なお、ここで視野範囲Qに含まれないグリッド55は、初期化時から更新されないので、障害物不明グリッド58である。
【0041】
時刻t3において、障害物占有確率表51には、ロボット装置1の右側に障害物不在領域57が存在する。ロボット装置1は、ロボット装置1の前方に存在する障害物Sを回避するために、右に迂回する経路を選択し、障害物の不在領域に向かって歩行する。
【0042】
時刻t4において、障害物Sがロボット装置1と同じ方向に移動を開始すると、ロボット装置1の前方には障害物Sが存在するため、障害物Sが存在する空間のグリッド55は黒く着色され、障害物存在領域56となる。ここで、障害物占有確率表51は、既に探索した領域の存在確率を保持しているため、障害物Sが既に移動した領域も黒く着色したままになっている。ここで、ロボット装置1は、障害物Sの大きさを実際の大きさより大きなものであると誤認識している。
【0043】
ロボット装置1の周囲を障害物が移動すると、障害物の軌跡を示す領域全てが障害物の存在領域になる。図8(c’)は、障害物の軌跡を示す領域全てが障害物の存在領域となった場合の障害物占有確率表51の状態を示している。このように、障害物に囲まれると、ロボット装置1は、歩行経路を決定することができなくなる。
【0044】
そこで、本実施の形態では確率更新部54によって、障害物の確率を更新することで、誤認識を解消している。確率更新部54は、ロボット装置1の歩行動作の間、定期的に障害物の存在確率を更新し、所定時間だけ過去に撮像された領域の存在確率を0.5に近い値に収束させる。そのため、図9に示すように、障害物の視認から時間の経過したグリッドは、斜線の黒色部分が少なくなっている。ロボット装置1は、障害物の存在確率が低い領域、すなわち障害物の存在が曖昧な領域を優先的に探索する。
【0045】
このように、本発明を適用したロボット装置1は、領域の撮像時間からの経過時間を基に障害物の存在確率を変更する。これにより、障害物を優先的に探索する領域を効率的に決定することができる。
【0046】
行動制御部60は、障害物占有確率表51の障害物の存在確率が低い領域を移動可能領域とみなして目的地までの経路探索を行う。行動制御部60の経路探索としては、例えば経路全体のコストを最小化するA*探索という方法を用いる。このA*探索は、評価関数としてfを用い、h関数が許容的であるような最良優先探索であり、いかなるヒューリスティック関数に対しても効率最適という点を用いている。なお、A*探索は、単なる例示であり、探索方法を限定するものではない。
【0047】
このように、本実施の形態におけるロボット装置1は、障害物の存在位置を示す障害物占有確率表51を生成し、障害物を視認した時刻からの経過時間に従って障害物の存在する確率を0.5に収束させる。そして、障害物の存在確率が低い領域から順に障害物の探索を行う。そのため、本実施の形態におけるロボット装置1では、障害物の探索領域を効率的に決定する。
【0048】
以下、本発明の実施の形態における2足歩行タイプのロボット装置1について詳細に説明する。この人間型のロボット装置1は、住環境その他の日常生活上の様々な場面における人的活動を支援する実用ロボット装置1であり、内部状態(怒り、悲しみ、喜び、楽しみ等)に応じて行動できるほか、人間が行う基本的な動作を表出できるエンターテインメントロボットである。
【0049】
以下、信号処理回路が実行するソフトウェアの構成例について、図10〜図14を用いて説明する。なお、予めフラッシュROM13に格納されており、ロボット装置11の電源投入初期時において読み出される。また、上述した探査処理に関するプログラムも予めフラッシュROM13に格納されている。
【0050】
図10において、デバイス・ドライバ・レイヤ140は、制御プログラムの最下位層に位置し、複数のデバイス・ドライバからなるデバイス・ドライバ・セット141から構成されている。この場合、各デバイス・ドライバは、CCDカメラ21等の通常のコンピュータで用いられるハードウェアに直接アクセスすることを許されたオブジェクトであり、対応するハードウェアからの割り込みを受けて処理を行う。
【0051】
また、ロボティック・サーバ・オブジェクト142は、デバイス・ドライバ・レイヤ140の最下位層に位置し、例えば上述の各種センサやアクチュエータ31等のハードウェアにアクセスするためのインターフェイスを提供するソフトウェア群でなるバーチャル・ロボット143と、電源の切り換えなどを管理するソフトウェア群でなるパワーマネジャ144と、他の種々のデバイス・ドライバを管理するソフトウェア群でなるデバイス・ドライバ・マネジャ145と、ロボット装置11の機構を管理するソフトウェア群でなるデザインド・ロボット146とから構成されている。
【0052】
マネジャ・オブジェクト147は、オブジェクト・マネジャ148及びサービス・マネジャ149から構成されている。オブジェクト・マネジャ148は、ロボティック・サーバ・オブジェクト142、ミドル・ウェア・レイヤ150、及びアプリケーション・レイヤ151に含まれる各ソフトウェア群の起動や終了を管理するソフトウェア群であり、サービス・マネジャ149は、メモリカードに格納されたコネクションファイルに記述されている各オブジェクト間の接続情報に基づいて各オブジェクトの接続を管理するソフトウェア群である。
【0053】
ミドル・ウェア・レイヤ150は、ロボティック・サーバ・オブジェクト142の上位層に位置し、画像処理や音声処理などのこのロボット装置11の基本的な機能を提供するソフトウェア群から構成されている。また、アプリケーション・レイヤ151は、ミドル・ウェア・レイヤ150の上位層に位置し、当該ミドル・ウェア・レイヤ150を構成する各ソフトウェア群によって処理された処理結果に基づいてロボット装置11の行動を決定するためのソフトウェア群から構成されている。
【0054】
なお、ミドル・ウェア・レイヤ150及びアプリケーション・レイヤ151の具体なソフトウェア構成をそれぞれ図11、図12に示す。
【0055】
ミドル・ウェア・レイヤ150は、図11に示すように、騒音検出用160、温度検出用161、明るさ検出用162、音階認識用163、距離検出用164、姿勢検出用165、タッチセンサ用166、動き検出用167及び色認識用168の各信号処理モジュール並びに入力セマンティクスコンバータモジュール169などを有する認識系170と、出力セマンティクスコンバータモジュール179並びに姿勢管理用、トラッキング用172、モーション再生用173、歩行用174、転倒復帰用175、LED点灯用176及び音再生用177の各信号処理モジュールなどを有する出力系179とから構成されている。
【0056】
認識系170の各信号処理モジュール170〜178は、ロボティック・サーバ・オブジェクト142のバーチャル・ロボット143によりDRAM12から読み出される各センサデータや画像データ及び音声データのうちの対応するデータを取り込み、当該データに基づいて所定の処理を施して、処理結果を入力セマンティクスコンバータモジュール169に与える。ここで、例えば、バーチャル・ロボット143は、所定の通信規約によって、信号の授受或いは変換をする部分として構成されている。
【0057】
入力セマンティクスコンバータモジュール169は、これら各信号処理モジュール160〜168から与えられる処理結果に基づいて、「うるさい」、「暑い」、「明るい」、「ボールを検出した」、「転倒を検出した」、「撫でられた」、「叩かれた」、「ドミソの音階が聞こえた」、「動く物体を検出した」又は「障害物を検出した」などの自己及び周囲の状況や、使用者からの指令及び働きかけを認識し、認識結果をアプリケーション・レイヤ151に出力する。
【0058】
アプリケーション・レイヤ151は、図12に示すように、行動モデルライブラリ180、行動切換モジュール181、学習モジュール182、感情モデル183及び本能モデル184の5つのモジュールから構成されている。
【0059】
行動モデルライブラリ180には、図13に示すように、「バッテリ残量が少なくなった場合」、「転倒復帰する」、「障害物を回避する場合」、「感情を表現する場合」、「ボールを検出した場合」などの予め選択されたいくつかの条件項目にそれぞれ対応させて、それぞれ独立した行動モデルが設けられている。
【0060】
そして、これら行動モデルは、それぞれ入力セマンティクスコンバータモジュール169から認識結果が与えられたときや、最後の認識結果が与えられてから一定時間が経過したときなどに、必要に応じて後述のように感情モデル183に保持されている対応する情動のパラメータ値や、本能モデル184に保持されている対応する欲求のパラメータ値を参照しながら続く行動をそれぞれ決定し、決定結果を行動切換モジュール181に出力する。
【0061】
なお、この実施の形態の場合、各行動モデルは、次の行動を決定する手法として、図14に示すような1つのノード(状態)NODE0〜NODEnから他のどのノードNODE0〜NODEnに遷移するかを各ノードNODE0〜NODEnに間を接続するアークARC1〜ARCn1に対してそれぞれ設定された遷移確率P1〜Pnに基づいて確率的に決定する有限確率オートマトンと呼ばれるアルゴリズムを用いる。
【0062】
具体的に、各行動モデルは、それぞれ自己の行動モデルを形成するノードNODE0〜NODEnにそれぞれ対応させて、これらノードNODE0〜NODEn毎に図15示すような状態遷移表を有している。
【0063】
この状態遷移表では、そのノードNODE0〜NODEnにおいて遷移条件とする入力イベント(認識結果)が「入力イベント名」の列に優先順に列記され、その遷移条件についてのさらなる条件が「データ名」及び「データ範囲」の列における対応する行に記述されている。
【0064】
したがって、図15の状態遷移表で表されるノードNODE100では、「ボールを検出(BALL)」という認識結果が与えられた場合に、当該認識結果とともに与えられるそのボールの「大きさ(SIZE)」が「0から1000」の範囲であることや、「障害物を検出(OBSTACLE)」という認識結果が与えられた場合に、当該認識結果とともに与えられるその障害物までの「距離(DISTANCE)」が「0から100」の範囲であることが他のノードに遷移するための条件となっている。
【0065】
また、このノードNODE100では、認識結果の入力がない場合においても、行動モデルが周期的に参照する感情モデル183及び本能モデル184にそれぞれ保持された各情動及び各欲求のパラメータ値のうち、感情モデル183に保持された「喜び(Joy)」、「驚き(Surprise)」又は「悲しみ(Sadness)」の何れかのパラメータ値が「50から100」の範囲であるときには他のノードに遷移することができるようになっている。
【0066】
また、状態遷移表では、「他のノードヘの遷移確率」の欄における「遷移先ノード」の行にそのノードNODE0〜NODEnから遷移できるノード名が列記されているとともに、「入力イベント名」、「データ名」及び「データの範囲」の列に記述された全ての条件が揃ったときに遷移できるほかの各ノードNODE0〜NODEnへの遷移確率が「他のノードヘの遷移確率」の欄内の対応する箇所にそれぞれ記述され、そのノードNODE0〜NODEnに遷移する際に出力すべき行動が「他のノードヘの遷移確率」の欄における「出力行動」の行に記述されている。なお、「他のノードヘの遷移確率」の欄における各行の確率の和は100[%]となっている。
【0067】
したがって、図16の状態遷移表で表されるノードNODE100では、例えば「ボールを検出(BALL)」し、そのボールの「SIZE(大きさ)」が「0から1000」の範囲であるという認識結果が与えられた場合には、「30[%]」の確率で「ノードNODE120(node120)」に遷移でき、そのとき「ACTION1」の行動が出力されることとなる。
【0068】
各行動モデルは、それぞれこのような状態遷移表として記述されたノードNODE0〜NODEnが幾つも繋がるようにして構成されており、入力セマンティクスコンバータモジュール169から認識結果が与えられたときなどに、対応するノードNODE0〜NODEnの状態遷移表を利用して確率的に次の行動を決定し、決定結果を行動切換モジュール181に出力するようになされている。
【0069】
図13に示す行動切換モジュール181は、行動モデルライブラリ180の各行動モデルからそれぞれ出力される行動のうち、予め定められた優先順位の高い行動モデルから出力された行動を選択し、当該行動を実行すべき旨のコマンド(以下、行動コマンドという。)をミドル・ウェア・レイヤ150の出力セマンティクスコンバータモジュール178に送出する。なお、この実施の形態においては、図13において下側に表記された行動モデルほど優先順位が高く設定されている。
【0070】
また、行動切換モジュール181は、行動完了後に出力セマンティクスコンバータモジュール187から与えられる行動完了情報に基づいて、その行動が完了したことを学習モジュール182、感情モデル183及び本能モデル184に通知する。
【0071】
一方、学習モジュール182は、入力セマンティクスコンバータモジュール169から与えられる認識結果のうち、「叩かれた」や「撫でられた」など、使用者からの働きかけとして受けた教示の認識結果を入力する。
【0072】
そして、学習モジュール182は、この認識結果及び行動切換えモジュール181からの通知に基づいて、「叩かれた(叱られた)」ときにはその行動の発現確率を低下させ、「撫でられた(誉められた)」ときにはその行動の発現確率を上昇させるように、行動モデルライブラリ180における対応する行動モデルの対応する遷移確率を変更する。
【0073】
他方、感情モデル183は、「喜び(Joy)」、「悲しみ(Sadness)」、「怒り(Anger)」、「驚き(Surprise)」、「嫌悪(Disgust)」及び「恐れ(Fear)」の合計6つの情動について、各情動毎にその情動の強さを表すパラメータを保持している。そして、感情モデル183は、これら各情動のパラメータ値を、それぞれ入力セマンティクスコンバータモジュール79から与えられる「叩かれた」及び「撫でられた」などの特定の認識結果や、経過時間及び行動切換モジュール181からの通知などに基づいて周期的に更新する。
【0074】
具体的には、感情モデル183は、入力セマンティクスコンバータモジュール169から与えられる認識結果と、そのときのロボット装置11の行動と、前回更新してからの経過時間となどに基づいて所定の演算式により算出されるそのときのその情動の変動量を△E[t]、現在のその情動のパラメータ値をE[t]、その情動の感度を表す係数をkeとして、(1)式によって次の周期におけるその情動のパラメータ値E[t+1]を算出し、これを現在のその情動のパラメータ値E[t]と置き換えるようにしてその情動のパラメータ値を更新する。また、感情モデル183は、これと同様にして全ての情動のパラメータ値を更新する。
【0075】
【数1】
【0076】
なお、各認識結果や出力セマンティクスコンバータモジュール178からの通知が各情動のパラメータ値の変動量△E[t]にどの程度の影響を与えるかは予め決められており、例えば「叩かれた」といった認識結果は「怒り」の情動のパラメータ値の変動量△E[t]に大きな影響を与え、「撫でられた」といった認識結果は「喜び」の情動のパラメータ値の変動量△E[t]に大きな影響を与えるようになっている。
【0077】
ここで、出力セマンティクスコンバータモジュール178からの通知とは、いわゆる行動のフィードバック情報(行動完了情報)であり、行動の出現結果の情報であり、感情モデル183は、このような情報によっても感情を変化させる。これは、例えば、「叫ぶ」といった行動により怒りの感情レベルが下がるといったようなことである。なお、出力セマンティクスコンバータモジュール178からの通知は、上述した学習モジュール182にも入力されており、学習モジュール182は、その通知に基づいて行動モデルの対応する遷移確率を変更する。
【0078】
なお、行動結果のフィードバックは、行動切換モジュール181の出力(感情が付加された行動)によりなされるものであってもよい。
【0079】
一方、本能モデル184は、「運動欲(exercise)」、「愛情欲(affection)」、「食欲(appetite)」及び「好奇心(curiosity)」の互いに独立した4つの欲求について、これら欲求毎にその欲求の強さを表すパラメータを保持している。そして、本能モデル184は、これらの欲求のパラメータ値を、それぞれ入力セマンティクスコンバータモジュール169から与えられる認識結果や、経過時間及び行動切換モジュール181からの通知などに基づいて周期的に更新する。
【0080】
具体的には、本能モデル184は、「運動欲」、「愛情欲」及び「好奇心」については、認識結果、経過時間及び出力セマンティクスコンバータモジュール178からの通知などに基づいて所定の演算式により算出されるそのときのその欲求の変動量をΔI[k]、現在のその欲求のパラメータ値をI[k]、その欲求の感度を表す係数kiとして、所定周期で(2)式を用いて次の周期におけるその欲求のパラメータ値I[k+1]を算出し、この演算結果を現在のその欲求のパラメータ値I[k]と置き換えるようにしてその欲求のパラメータ値を更新する。また、本能モデル174は、これと同様にして「食欲」を除く各欲求のパラメータ値を更新する。
【0081】
【数2】
【0082】
なお、認識結果及び出力セマンティクスコンバータモジュール178からの通知などが各欲求のパラメータ値の変動量△I[k]にどの程度の影響を与えるかは予め決められており、例えば出力セマンティクスコンバータモジュール178からの通知は、「疲れ」のパラメータ値の変動量△I[k]に大きな影響を与えるようになっている。
【0083】
なお、本実施の形態においては、各情動及び各欲求(本能)のパラメータ値がそれぞれ0から100までの範囲で変動するように規制されており、また係数ke、kiの値も各情動及び各欲求毎に個別に設定されている。
【0084】
一方、ミドル・ウェア・レイヤ150の出力セマンティクスコンバータモジュール178は、図12に示すように、上述のようにしてアプリケーション・レイヤ141の行動切換モジュール181から与えられる「前進」、「喜ぶ」、「鳴く」又は「トラッキング(ボールを追いかける)」といった抽象的な行動コマンドを出力系179の対応する信号処理モジュール171〜177に与える。
【0085】
そしてこれら信号処理モジュール171〜177は、行動コマンドが与えられると当該行動コマンドに基づいて、その行動をするために対応するアクチュエータ31に与えるべきサーボ指令値や、スピーカ25から出力する音の音声データ及び又はLEDに与える駆動データを生成し、これらのデータをロボティック・サーバ・オブジェクト142のバーチャル・ロボット143及び信号処理回路を順次介して対応するアクチュエータ31又はスピーカ25に順次送出する。
【0086】
このようにしてロボット装置11は、上述した制御プログラムに基づいて、自己(内部)及び周囲(外部)の状況や、使用者からの指示及び働きかけに応じた自律的な行動ができる。
【0087】
このような制御プログラムは、ロボット装置1が読取可能な形式で記録された記録媒体を介して提供される。制御プログラムを記録する記録媒体としては、磁気読取方式の記録媒体(例えば、磁気テープ、フレキシブルディスク、磁気カード)、光学読取方式の記録媒体(例えば、CD−ROM、MO、CD−R、DVD)等が考えられる。記録媒体には、半導体メモリ(いわゆるメモリカード(矩形型、正方形型など形状は問わない。)、ICカード)等の記憶媒体も含まれる。また、制御プログラムは、いわゆるインターネット等を介して提供されてもよい。
【0088】
これらの制御プログラムは、専用の読込ドライバ装置、又はパーソナルコンピュータ等を介して再生され、有線又は無線接続によってロボット装置11に伝送されて読み込まれる。また、ロボット装置11は、半導体メモリ、又はICカード等の小型化された記憶媒体のドライブ装置を備える場合、これら記憶媒体から制御プログラムを直接読み込むこともできる。
【0089】
以上、本発明を適用したロボット装置について説明したが、本発明は、本実施の形態で説明したロボット装置に限定されるものではなく、本発明の要旨を含む範囲での変形・改良は本発明に含まれるものとする。例えば、上記実施の形態では、障害物が視認された時刻を各グリッドが記憶するとしたが、各グリッドが障害物を視認した時刻を記憶するのではなく、隣接する複数のグリッドで1つのグループを作成し、このグループ内で最後に視認された時刻を記憶するようにしてもよい。これにより、障害物の存在確率を更新するための計算量及び視認時刻を記憶するためのメモリの容量を少なくすることができる。
【0090】
また、ロボット装置は、2足歩行のロボット装置としたが、経路探索機能を有するロボット装置であれば、4足歩行やローラを使って歩行するロボット装置などでもよい。
【0091】
【発明の効果】
上述したように、本発明におけるロボット装置は、ロボット装置を中心とした座標系上に障害物記憶空間を生成する。障害物記憶空間は、複数の単位領域からなり、各単位領域には障害物存在確率が記憶されている。ロボット装置は、障害物が検出された時刻からの時間経過に応じて障害部存在確率を所定の値に減衰させる。これにより、ロボット装置は、障害物の存在が曖昧な領域を認識することができるので、障害物の存在が曖昧な領域を優先的に検索し、障害物の検出効率を向上することができる。
【0092】
また、本発明におけるロボット装置は、障害物存在確率の減衰により、障害物の存在情報を保持し続けることはなく、障害物の移動を検出することができる。
【図面の簡単な説明】
【図1】本発明を適用したロボット装置の外観構成を示す斜視図である。
【図2】同ロボット装置の自由度構成モデルを模式的に示す図である。
【図3】同ロボット装置の回路構成を示す図である。
【図4】歩行動作における機能ブロック図である。
【図5】画像処理部の内部構成を示す図である。
【図6】障害物占有確率表の一例を示す図である。
【図7】ロボット装置の歩行動作及び障害物占有確率表の推移を時系列的に示した図である。
【図8】ロボット装置の歩行動作及び障害物占有確率表の推移を時系列的に示した図である。
【図9】グリッドの色の変化を示す図である。
【図10】同ロボット装置のソフトウェア構成を示す図である。
【図11】同ロボット装置のミドル・ウェア・レイヤの構成を示す図である。
【図12】同ロボット装置のアプリケーション・レイヤの構成を示す図である。
【図13】アプリケーション・レイヤの行動モデルライブラリの構成を示す図である。
【図14】同ロボット装置が行動決定のための情報となる有限確率オートマトンを説明する図である。
【図15】有限確率オートマトンの各ノードに用意された状態遷移表を示す図である。
【図16】従来の障害物占有確率表の一例を示す図である。
【符号の説明】
1 ロボット装置、31 アクチュエータ、32 ポテンショメータ、40 撮像手段、50 画像処理部、51 障害物占有確率表、52 障害物占有確率表構築部、53 障害物判断部、54 確率更新部、55 グリッド、56 障害物存在グリッド、57 障害物不在グリッド、58 障害物不明グリッド、60行動制御部、70 駆動部、80 オドメトリ算出部
Claims (10)
- 外部情報、外部からの働きかけに応じた動作及び/又は内部状態に基づいて自律的動作を実行するロボット装置において、
実空間の画像を撮像する撮像手段と、
上記撮像手段によって撮像された画像データをもとに障害物の存在する領域を検出する障害物検出手段と、
複数の単位領域からなる障害物占有確率表を当該ロボット装置を中心とした仮想座標系上に構築する障害物占有確率表構築手段と、
上記障害物検出手段において障害物の存在が検出された単位領域に障害物存在確率を記憶させる存在確率記憶手段と、
上記障害物が検出された時刻からの時間経過に応じて、上記単位領域に記憶された障害物存在確率を所定値に減衰させる存在確率更新手段と、
上記障害物存在確率の値を基に障害物を探索すべき領域を決定する探索領域決定手段と
を備えることを特徴とするロボット装置。 - 上記存在確率記憶手段は、上記単位領域に存在する障害物が検出された障害物検出時刻を記憶し、上記存在確率更新手段は、上記障害物検出時刻からの時間経過を基に障害物存在確率を所定値に減衰させることを特徴とする請求項1記載のロボット装置。
- 複数の単位領域で1つの障害物検出時刻を記憶することを特徴とする請求項2記載のロボット装置。
- 上記探索領域決定手段は、障害物存在確率の低い領域を優先的に探索することを特徴とする請求項1記載のロボット装置。
- 障害物存在確率の低い単位領域を歩行可能領域であるとして、目的地までの経路選択を行う経路選択手段を備えることを特徴とする請求項1記載のロボット装置。
- 外部情報、外部からの働きかけに応じた動作及び/又は内部状態に基づいて自律的動作を実行するロボット装置の障害物探索方法であって、
実空間の画像を撮像する撮像工程と、
上記撮像工程によって撮像された画像データをもとに障害物の存在する領域を検出する障害物検出工程と、
複数の単位領域からなる障害物占有確率表を当該ロボット装置を中心とした仮想座標系上に構築する障害物占有確率表構築工程と、
上記障害物検出工程において障害物の存在が検出された単位領域に障害物存在確率を記憶させる存在確率記憶工程と、
上記障害物が検出された時刻からの時間経過に応じて、上記単位領域に記憶された障害物存在確率を所定値に減衰させる存在確率更新工程と、
上記障害物存在確率の値を基に障害物を探索すべき領域を決定する探索領域決定工程と
を有することを特徴とする障害物探索方法。 - 上記存在確率記憶工程では、上記単位領域に存在する障害物が検出された障害物検出時刻を上記単位領域に記憶させ、
上記存在確率更新工程では、上記障害物検出時刻からの時間経過を基に障害物存在確率を所定値に減衰させることを特徴とする請求項6記載の障害物探索方法。 - 複数の単位領域に1つの障害物検出時刻を記憶させることを特徴とする請求項7記載の障害物探索方法。
- 上記探索領域決定工程では、障害物存在確率の低い領域を優先的に探索することを特徴とする請求項6記載の障害物探索方法。
- 障害物存在確率の低い単位領域を歩行可能領域であるとして、上記歩行可能領域を通過する経路を選択する経路選択工程を有することを特徴とする請求項6記載の障害物探索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003092347A JP2004298975A (ja) | 2003-03-28 | 2003-03-28 | ロボット装置、障害物探索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003092347A JP2004298975A (ja) | 2003-03-28 | 2003-03-28 | ロボット装置、障害物探索方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004298975A true JP2004298975A (ja) | 2004-10-28 |
Family
ID=33405471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003092347A Withdrawn JP2004298975A (ja) | 2003-03-28 | 2003-03-28 | ロボット装置、障害物探索方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004298975A (ja) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006239844A (ja) * | 2005-03-04 | 2006-09-14 | Sony Corp | 障害物回避装置、障害物回避方法及び障害物回避プログラム並びに移動型ロボット装置 |
JP2007323402A (ja) * | 2006-06-01 | 2007-12-13 | Matsushita Electric Ind Co Ltd | 自走式機器およびそのプログラム |
JP2009110249A (ja) * | 2007-10-30 | 2009-05-21 | Ihi Corp | 自律走行移動体の走行経路決定用地図作成装置及び走行経路決定用地図作成方法 |
CN103895017A (zh) * | 2014-03-14 | 2014-07-02 | 北京邮电大学 | 一种基于使用可靠度的空间机械臂控制方法及系统 |
CN103991074A (zh) * | 2014-05-21 | 2014-08-20 | 北京邮电大学 | 一种基于粒子滤波算法的空间机械臂控制方法及系统 |
KR20170042546A (ko) * | 2014-06-05 | 2017-04-19 | 소프트뱅크 로보틱스 유럽 | 자동 로봇을 위한 장애물의 존재 및 부재 중 하나의 확률 맵 구축 방법 |
CN108885453A (zh) * | 2015-11-11 | 2018-11-23 | 罗伯特有限责任公司 | 用于机器人导航的地图的划分 |
WO2020008754A1 (ja) * | 2018-07-06 | 2020-01-09 | ソニー株式会社 | 情報処理装置、最適時間推定方法、自己位置推定方法及びプログラムを記録した記録媒体 |
WO2020017111A1 (ja) | 2018-07-20 | 2020-01-23 | ソニー株式会社 | エージェント、存在確率マップ作成方法、エージェントの行動制御方法、及びプログラム |
JP2020042726A (ja) * | 2018-09-13 | 2020-03-19 | 株式会社東芝 | Ogm圧縮回路、ogm圧縮伸長システム、および移動体システム |
CN111413962A (zh) * | 2020-01-15 | 2020-07-14 | 杭州电子科技大学 | 一种基于路径可通过概率的搜救机器人目标搜索方法 |
JP2021041532A (ja) * | 2014-08-25 | 2021-03-18 | ボストン ダイナミクス,インコーポレイテッド | 自然なピッチとロール |
WO2022004385A1 (ja) * | 2020-07-01 | 2022-01-06 | ソニーグループ株式会社 | 情報処理装置、情報処理方法、及びプログラム |
-
2003
- 2003-03-28 JP JP2003092347A patent/JP2004298975A/ja not_active Withdrawn
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006239844A (ja) * | 2005-03-04 | 2006-09-14 | Sony Corp | 障害物回避装置、障害物回避方法及び障害物回避プログラム並びに移動型ロボット装置 |
JP2007323402A (ja) * | 2006-06-01 | 2007-12-13 | Matsushita Electric Ind Co Ltd | 自走式機器およびそのプログラム |
JP2009110249A (ja) * | 2007-10-30 | 2009-05-21 | Ihi Corp | 自律走行移動体の走行経路決定用地図作成装置及び走行経路決定用地図作成方法 |
CN103895017A (zh) * | 2014-03-14 | 2014-07-02 | 北京邮电大学 | 一种基于使用可靠度的空间机械臂控制方法及系统 |
CN103991074A (zh) * | 2014-05-21 | 2014-08-20 | 北京邮电大学 | 一种基于粒子滤波算法的空间机械臂控制方法及系统 |
CN106662646B (zh) * | 2014-06-05 | 2019-08-02 | 软银机器人欧洲公司 | 用于为自主式机器人构建障碍物的不存在和存在中的一种的概率的图的方法 |
JP2017521761A (ja) * | 2014-06-05 | 2017-08-03 | ソフトバンク・ロボティクス・ヨーロッパSoftbank Robotics Europe | 自律ロボットの障害物の不在および存在の一方の確率のマップを構築する方法 |
US10328575B2 (en) | 2014-06-05 | 2019-06-25 | Softbank Robotics Europe | Method for building a map of probability of one of absence and presence of obstacles for an autonomous robot |
KR20170042546A (ko) * | 2014-06-05 | 2017-04-19 | 소프트뱅크 로보틱스 유럽 | 자동 로봇을 위한 장애물의 존재 및 부재 중 하나의 확률 맵 구축 방법 |
KR101999033B1 (ko) * | 2014-06-05 | 2019-09-27 | 소프트뱅크 로보틱스 유럽 | 자동 로봇을 위한 장애물의 존재 및 부재 중 하나의 확률 맵 구축 방법 |
CN106662646A (zh) * | 2014-06-05 | 2017-05-10 | 软银机器人欧洲公司 | 用于为自主式机器人构建障碍物的不存在和存在中的一种的概率的图的方法 |
JP2021041532A (ja) * | 2014-08-25 | 2021-03-18 | ボストン ダイナミクス,インコーポレイテッド | 自然なピッチとロール |
US11911916B2 (en) | 2014-08-25 | 2024-02-27 | Boston Dynamics, Inc. | Natural pitch and roll |
US11426875B2 (en) | 2014-08-25 | 2022-08-30 | Boston Dynamics, Inc. | Natural pitch and roll |
CN108885453A (zh) * | 2015-11-11 | 2018-11-23 | 罗伯特有限责任公司 | 用于机器人导航的地图的划分 |
WO2020008754A1 (ja) * | 2018-07-06 | 2020-01-09 | ソニー株式会社 | 情報処理装置、最適時間推定方法、自己位置推定方法及びプログラムを記録した記録媒体 |
WO2020017111A1 (ja) | 2018-07-20 | 2020-01-23 | ソニー株式会社 | エージェント、存在確率マップ作成方法、エージェントの行動制御方法、及びプログラム |
JP2020042726A (ja) * | 2018-09-13 | 2020-03-19 | 株式会社東芝 | Ogm圧縮回路、ogm圧縮伸長システム、および移動体システム |
CN111413962A (zh) * | 2020-01-15 | 2020-07-14 | 杭州电子科技大学 | 一种基于路径可通过概率的搜救机器人目标搜索方法 |
WO2022004385A1 (ja) * | 2020-07-01 | 2022-01-06 | ソニーグループ株式会社 | 情報処理装置、情報処理方法、及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7062356B2 (en) | Robot apparatus, control method for robot apparatus, and toy for robot apparatus | |
JP3714268B2 (ja) | ロボット装置 | |
US20040230340A1 (en) | Behavior controlling apparatus, behavior control method, behavior control program and mobile robot apparatus | |
JP2003285288A (ja) | 充電システム及び充電制御方法、ロボット装置、充電装置、及び充電制御プログラム及び記録媒体 | |
JP2002239963A (ja) | ロボット装置、ロボット装置の動作制御方法、プログラム及び記録媒体 | |
JP2004110802A (ja) | 環境同定装置、環境同定方法、プログラム及び記録媒体、並びにロボット装置 | |
JP2004298975A (ja) | ロボット装置、障害物探索方法 | |
JP2003266349A (ja) | 位置認識方法、その装置、そのプログラム、その記録媒体及び位置認識装置搭載型ロボット装置 | |
JP2003159674A (ja) | ロボット装置、ロボット装置の外力検出方法及びロボット装置の外力検出プログラム、並びにロボット装置の外力検出のためのキャリブレーション方法及びロボット装置の外力検出のためのキャリブレーションプログラム | |
JP2005050310A (ja) | 自己学習装置のアーキテクチャ | |
JP2004302644A (ja) | 顔識別装置、顔識別方法、記録媒体、及びロボット装置 | |
JP2003136456A (ja) | ロボット装置、ロボット装置の明るさ検出方法、明るさ検出プログラム及び記録媒体 | |
WO2020022122A1 (ja) | 情報処理装置、行動決定方法及びプログラム | |
JP2004130427A (ja) | ロボット装置及びロボット装置の動作制御方法 | |
JP2003271958A (ja) | 画像処理方法、その装置、そのプログラム、その記録媒体及び画像処理装置搭載型ロボット装置 | |
JP4379052B2 (ja) | 動体検出装置、動体検出方法、及びロボット装置 | |
JP4556425B2 (ja) | コンテンツ再生システム、コンテンツ再生方法、コンテンツ再生装置 | |
JP2002239952A (ja) | ロボット装置、ロボット装置の行動制御方法、プログラム及び記録媒体 | |
JP4779226B2 (ja) | ロボット装置、並びに、画像記憶方法及び画像記憶装置、並びに、制御プログラム及び記録媒体 | |
JP2001157980A (ja) | ロボット装置及びその制御方法 | |
JP2002205289A (ja) | ロボット装置の動作制御方法、プログラム、記録媒体及びロボット装置 | |
JP4193098B2 (ja) | トラッキング装置、トラッキング装置のトラッキング方法及びロボット装置 | |
JP2001154707A (ja) | ロボット装置及びその制御方法 | |
JP2002120183A (ja) | ロボット装置及びロボット装置の入力情報検出方法 | |
JP2001157979A (ja) | ロボット装置及びその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060606 |