図1は、第1実施例に係る脚式移動ロボットの制御装置が搭載されるロボットの正面図であり、図2は図1に示すロボットの側面図である。
図1に示すように、脚式移動ロボット(以下単に「ロボット」という)10は、複数本、即ち、左右2本の脚部12L,12R(左側をL、右側をRとする。以下同じ)を備える。脚部12L,12Rは、基体(上体)14の下部に連結される。基体14の上部には頭部16が連結されると共に、側方には複数本、即ち、左右2本の腕部20L,20Rが連結される。左右の腕部20L,20Rの先端には、それぞれハンド(エンドエフェクタ)22L,22Rが連結される。尚、この実施例にあっては、脚式移動ロボットとして、2本の脚部と2本の腕部を備えた、1.3m程度の身長を有するヒューマノイド型のロボットを例にとる。
図2に示すように、基体14の背部には格納部24が設けられ、その内部には電子制御ユニット(以下「ECU」と呼ぶ)26およびバッテリ(図示せず)などが収容される。
図3は、図1に示すロボット10をスケルトンで表す説明図である。以下、図3を参照し、ロボット10の内部構造について関節を中心に説明する。尚、図示のロボット10は左右対称であるので、以降L,Rの付記を省略する。
左右の脚部12は、それぞれ大腿リンク30と下腿リンク32と足部34とを備える。大腿リンク30は、股関節を介して基体14に連結される。図3では、基体14を基体リンク36として簡略的に示すが、基体リンク36(基体14)は、関節38を介して上半部36aと下半部36bとが相対変位、より具体的には回転あるいは旋回自在に構成される。
大腿リンク30と下腿リンク32は膝関節を介して連結されると共に、下腿リンク32と足部34は足関節を介して連結される。股関節は、Z軸(ヨー軸。具体的には、ロボット10の高さ方向)回りの回転軸40と、Y軸(ピッチ軸。具体的には、ロボット10の左右方向)回りの回転軸42と、X軸(ロール軸。具体的には、ロボット10の前後方向)回りの回転軸44とから構成される。即ち、股関節は、3自由度を備える。
膝関節はY軸回りの回転軸46から構成され、1自由度を備える。また、足関節はY軸回りの回転軸48とX軸回りの回転軸50とから構成され、2自由度を備える。このように、左右の脚部12のそれぞれには3個の関節を構成する6個の回転軸(自由度)が与えられ、脚部全体としては合計12個の回転軸が与えられる。
脚部12は、アクチュエータ(図示せず)によって駆動される。以下、脚部12を駆動するアクチュエータを「脚部アクチュエータ」という。脚部アクチュエータは具体的には基体14と脚部12の適宜位置に配置された12個の電動モータからなり、上記した12個の回転軸を個別に駆動する。脚部アクチュエータの動作を制御して各回転軸を適宜な角度で駆動することにより、脚部12に所望の動きを与えることができる。
また、左右の腕部20は、それぞれ上腕リンク52と下腕リンク54を備える。上腕リンク52は、肩関節を介して基体14に連結される。上腕リンク52と下腕リンク54は、肘関節を介して連結されると共に、下腕リンク54とハンド22は手首関節を介して連結される。
肩関節はY軸回りの回転軸56とX軸回りの回転軸58とZ軸回りの回転軸60とから構成され、3自由度を備える。肘関節はY軸回りの回転軸62から構成され、1自由度を備える。手首関節はZ軸回りの回転軸64とY軸回りの回転軸66とX軸回りの回転軸68とから構成され、3自由度を備える。このように、左右の腕部20のそれぞれには、3個の関節を構成する7個の回転軸(自由度)が与えられ、腕部全体として合計14個の回転軸が与えられる。
腕部20も、脚部12と同様に図示しないアクチュエータによって駆動される。以下、腕部20を駆動するアクチュエータを「腕部アクチュエータ」という。腕部アクチュエータは、具体的には基体14と腕部20の適宜位置に配置された14個の電動モータからなり、上記した14個の回転軸を個別に駆動する。腕部アクチュエータの動作を制御して各回転軸を適宜な角度で駆動することにより、腕部20に所望の動きを与えることができる。
ハンド22には、5本の指部70が設けられる。指部70は、図示しないアクチュエータ(以下「ハンドアクチュエータ」という)によって動作自在とされ、腕部20の動きに連動して物を把持する、あるいは適宜な方向を指差すなどの動作が実行可能とされる。
頭部16は、基体14に首関節を介して連結される。首関節はZ軸回りの回転軸72とY軸回りの回転軸74とから構成され、2自由度を備える。回転軸72,74も、図示しないアクチュエータ(以下「頭部アクチュエータ」という)によって個別に駆動される。頭部アクチュエータの動作を制御して回転軸72,74を適宜な角度で駆動することにより、頭部16を所望の方向に向けることができる。基体リンク36(基体14)も関節38に配置されたアクチュエータ(図示せず)を駆動することで、上半部36aと下半部36bが相対回転させられる。
左右の脚部12(具体的には、足部34と足関節の間)には、それぞれ力センサ(6軸力センサ)76が取り付けられる。力センサ76は、床面から脚部12に作用する床反力(より詳しくは、脚部12を介してロボット10に作用する床反力)の3方向成分Fx,Fy,Fzとモーメントの3方向成分Mx,My,Mzを示す信号を出力する。
左右の腕部20にも、同種の力センサ78がハンド22と手首関節の間で取り付けられる。力センサ78は、腕部20に作用する、より詳しくは腕部20を介してロボット10に作用する外力の3方向成分Fx,Fy,Fzとモーメントの3方向成分Mx,My,Mzを示す信号を出力する。
基体14には傾斜センサ80が設置され、鉛直軸に対する基体14の傾き、即ち、傾斜角度とその角速度などの状態量を示す信号を出力する。頭部16には、2個(左右)のCCDカメラ82が設置され、ロボット10の周囲環境をステレオ視で撮影して得た画像を出力する。また、頭部16には、マイクロフォン84aとスピーカ84bからなる音声入出力装置84が設けられる。
上記したセンサなどの出力は、ECU26(図2に示す)に入力される。ECU26はマイクロコンピュータからなり、図示しないCPUや入出力回路、ROM,RAMなどを備える。
図4は、ロボット10の構成をECU26の入出力関係を中心に示すブロック図である。
図示の如く、ロボット10は、上記したセンサなどに加え、回転軸40などのそれぞれに配置されたロータリエンコーダ群86と、ジャイロセンサ88と、GPS受信器90と、人が携行するICタグ92に無線系で接続されてICタグ92から発信されるICタグ情報を受信するICタグ信号受信器(リーダ)94を備える。
ロータリエンコーダ群86はそれぞれ、回転軸40などの回転角度、即ち、関節角度に応じた信号を出力する。ジャイロセンサ88は、ロボット10の移動方向と距離に応じた信号を出力する。GPS受信器90は衛星から発信された電波を受信し、ロボット10の位置情報(緯度と経度)を取得してECU26に出力する。ICタグ信号受信器94は、ICタグ92に記憶されると共に、それから発信される識別情報(RFID(Radio Frequency ID)、具体的にはICタグ92の携行者である人を識別する識別情報)を無線系で受信してECU26に出力する。
ECU26は、力センサ76、傾斜センサ80およびロータリエンコーダ群86の出力に基づいて歩容を生成して歩行制御を行う。具体的には、前記した脚部アクチュエータ(符号100で示す)の動作を制御して脚部12を駆動してロボット10を移動(歩行)させる。
また、ECU26は、歩行制御などに付随して腕部アクチュエータ(符号102で示す)とハンドアクチュエータ(符号104で示す)の動作を制御して腕部20とハンド22を駆動すると共に、頭部アクチュエータ(符号106で示す)の動作を制御して頭部16の向きを調整する。尚、ロボット10の歩行制御としては、例えば本出願人が先に提案した再公表特許WO2002/040224号公報に記載されている技術などが用いられるが、本願の要旨とは直接の関係を有しないので、ここでの説明は省略する。
ECU26は、さらに、CCDカメラ82およびICタグ信号受信器94などの出力に基づき、人に手を引かれて歩行する動作を実行する。
図5は、ECU26が実行するその動作の処理を示すブロック図である。
図5に示すように、ECU26は、音声認識部108、画像処理部110、自己位置推定部112、人特定部114、人情報D/B(データベース)116、地図D/B(データベース)118、音声・発話D/B(データベース)120、歩容D/B(データベース)121、行動決定部122、発話生成部124および動作制御部126を備える。
音声認識部108は、音声入出力装置84のマイクロフォン84aから収集された音声を入力し、音声・発話D/B120に記憶された語彙に基づいて人の指示あるいは意図を認識する。
画像処理部110は、人位置認識部110aを備える。人位置認識部110aは、CCDカメラ82で同時刻に撮影された画像を入力し、それらの視差から距離画像を生成する。また、一方のCCDカメラから撮影時刻の異なる画像を入力し、それらの差分に基づいて動きのある領域を抽出した差分画像を生成する。そして、生成した距離画像と差分画像に基づき、人の位置とそこまでの距離を認識する。尚、画像に基づいて人を認識する手法は、例えば本出願人が先に提案した特開2004−302905号公報などに詳しいので、詳細な説明は省略する。
自己位置推定部112は、GPS受信器90から入力された位置情報に基づき、ロボット10の現在位置を推定する。尚、衛星から発信された電波をGPS受信器90で受信できないときは、ジャイロセンサ88によって検出された移動方向と距離に基づき、現在位置を推定する。
人特定部114は、ICタグ信号受信器94を介して入力されたICタグ92の識別情報に基づき、人、具体的には、人位置認識部110aで認識された人を識別する。ICタグ92は、識別情報を記憶したIC92aと、識別情報をICタグ信号受信器94に無線で送出するアンテナ92bとからなり、人に携行される。尚、ICタグ92には、人によって異なる識別情報が記憶されているのは言うまでもない。
人情報D/B116には、ICタグ92を携行する人、即ち、人の固有情報が格納される。固有情報には、身長、性別、顔画像、所属先などの社会的な属性を含む情報が含まれる。地図D/B118にはロボット10の移動環境、例えばロボット10が配置される会社の社屋などの地図情報が格納されると共に、音声・発話D/B120には上記した語彙が格納される。
歩容D/B121には、ロボット10が目標とすべき運動のパターンと床反力のパターン、より具体的には基体14が目標とすべき位置姿勢の軌道、足部34が目標とすべき位置姿勢の軌道からなる運動のパターンと、脚部12L,12Rに作用させるべき目標全床反力の軌道とその中心点の軌道からなる床反力のパターンからなる歩容データが格納される。全床反力の中心点は、ZMP(Zero Moment Point)と同義である。
行動決定部122は、後述するように、歩容D/B121に格納された歩容に基づき、人に手を引かれて、あるいは人の手を引いて歩行するときの歩容を生成すると共に、動作を決定し、動作制御部126を介して脚部アクチュエータ100、腕部アクチュエータ102、ハンドアクチュエータ104および頭部アクチュエータ106の動作を制御する。また、行動決定部122は、発話生成部124を介して音声・発話D/B120に記憶された情報から発話すべき音声信号を合成し、音声入出力装置84のスピーカ84bを駆動する。
次いで、この装置の動作について行動決定部122で実行される処理に焦点をおいて説明する。図6はその処理を示すフロー・チャートである。図6は、人に手を引かれて歩行するときの動作を示す。
以下説明すると、S10において人、即ち、手を引いて誘導してくれるはずの相手がいるか否か判断する。これは画像処理部110の出力から判断するが、前記したように人にはICタグ92を携行させていることから、ICタグ信号受信器94の出力から判断しても良く、さらには両者から判断しても良い。尚、S10の処理では、外部からコマンドを入力して行っても良い。
S10で否定されるときは処理を繰り返して待機する一方、肯定されるときはS12に進み、移動してその相手に接近し、S14に進み、所定距離以内に接近したか否か判断する。これも画像処理部110の出力あるいはICタグ信号受信器94の出力のいずれか(あるいは双方)から判断する。尚、所定距離は、数mとする。S14で否定されるときは処理を繰り返すと共に、肯定されるときはS16に進み、さらに移動して相手に接近、具体的には1m程度まで接近する。
次いでS18に進み、相手の身長を認識ずみか否か判断する。前記したように人情報D/B116にはICタグ92の携行者の身長などのデータが格納されると共に、画像処理部110の出力からもある程度は概算することができるので、S18の判断は通例肯定されてS20に進み、ハンド22の位置、より具体的には引かれる方のハンド、例えば右側のハンド22Rの重力方向における目標位置、換言すれば、相手の身長に応じた高さを計算(算出)する。尚、S18で否定されるときはS22に進み、初期値を採用する。
次いでS24に進み、算出された位置(あるいは初期値)で相手に握らせるべく(相手に接触するように)腕部アクチュエータ102とハンドアクチュエータ104の動作を制御し、腕部20とハンド22を駆動する。
次いでS26に進み、右側の腕部20Rに配置された力センサ78Rから出力される外力の力成分Fがしきい値Fgraspを絶対値において超えるか、あるいは力センサ78Rから出力される外力のモーメント成分Mがしきい値Mgraspを絶対値において超えるか否か判断する。S26の処理は、換言すれば、相手がある程度の力でハンド22Rを握っているか否か判断することを意味する。尚、ここで外力の力成分およびモーメント成分は、前記した如く、X,Y,Z方向の3成分を意味する。
S26で否定されるときは処理を繰り返して待機すると共に、肯定されるときはS28に進み、力センサ78で検出された外力の力成分Fとモーメント成分M、具体的にはFx,Fy,Fz,Mx,My,Mzに応じて相手の手を握る。即ち、検出された外力で相手の手を握るように、ハンドアクチュエータ104の動作を制御する。
次いでS30に進み、荷重中心点を計算する。即ち、この実施例では右のハンド22Rを相手に握らせることを予定しているが、相手が両方のハンド22R,22Lを握る可能性も否定できないため、荷重中心点を計算して相手が右ハンド22Rのみを握っているのかどうか確認する。
次いでS32に進み、力センサ78Rの出力(外力F,M)のフィルタリング処理を行う。具体的には、高周波成分を除去することで、ノイズ成分を除去する。
次いでS34に進み、力センサ78Rから出力される外力の力成分Fがしきい値Fwalkを絶対値において超えるか、あるいは力センサ78Rから出力される外力のモーメント成分Mがしきい値Mwalkを絶対値において超えるか否か判断する。ここでも外力の力成分およびモーメント成分は、X,Y,Z方向の3成分を意味する。
しきい値FwalkおよびMwalkは、前記したしきい値FgraspおよびMgraspよりも大きい値を意味する。S34の処理は、換言すれば、相手が手を引いて歩行しようとする程度の力がロボット10に作用しているか否か判断することを意味する。
S34で肯定されるときはS36に進み、力センサ78Rから出力される外力の力成分Fがしきい値Fchestを絶対値において超えるか、あるいは力センサ78Rから出力される外力のモーメント成分Mがしきい値Mchestを絶対値において超えるか否か判断する。ここでも外力の力成分およびモーメント成分は、X,Y,Z方向の3成分を意味する。
しきい値FchestおよびMchestは、前記したしきい値FwalkおよびMwalkよりも大きい値を意味する。S36の処理は、換言すれば、相手が手を引いて歩行するのに必要な力を超えてそれ以上の力で引いており、過度の力がロボット10に作用しているか否か判断することを意味する。
S36で肯定されるときはS38に進み、腰の回転量を計算する。即ち、過度な力で引かれていることから、その力と同一の方向(逃がす方向)に、基体リンク36の関節38を介して上半部36aを下半部36bに対して相対回転させるべき回転量を計算し、該当するアクチュエータを駆動して関節38を駆動する。尚、S36で否定されるときは、S38の処理をスキップする。
次いでS40に進み、力センサ78の出力から得られた外力の力成分Fとモーメント成分Mのベクトルの方向と大きさを計算する。
次いでS44に進み、計算された外力F,Mのベクトルの方向と大きさに基づき、歩容(X,Y,THZ)を計算する。即ち、相手(人)から作用する外力を検出し、検出された外力に基づいて人(相手)の進行方向を推定し、推定された進行方向に基づいて歩容を計算(生成)する。ここで、THZはZ軸周りの角度、具体的にはS38で触れた腰の回転量を意味する。また、歩容を、外力に応じ、必要があれば、歩幅を変更するように計算(生成)する。
図7は、図5に示す行動決定部122を詳細に示すブロック図である。図示の如く、行動決定部122は、腕姿勢決定手段200と人反力平衡制御装置202などを備える。即ち、腕姿勢決定手段200は手を引かれて歩行するときの腕姿勢、具体的には目標ハンド位置姿勢、目標基体位置姿勢などを算出する。人反力平衡制御装置202は、目標基体位置姿勢と力センサ78の検出値などから、動力学的平衡条件を満足する人反力平衡制御用補償全床反力と修正目標基体位置姿勢を算出して脚動作制御部と腕動作制御部(図5に示す動作制御部126)に出力する(腕動作制御部には修正目標基体位置姿勢のみが出力される)。それらに基づき、図5などで述べた脚部アクチュエータ100などで制御が実行される。このように、S44においては、ベクトルの方向と大きさと図7に示す他のパラメータに基づき、歩容を計算あるいは生成する。ベクトルの方向、即ち、人から作用する外力は、人に手を引かれて歩行する場合、進行方向前向きの力となる。
次いでS46に進み、算出された歩容についてリミット処理を行う。即ち、ロボット10の特性上、X方向に比してY方向への動作が制約されることから、算出された歩容について主としてY方向についてリミット処理を行う。尚、S34で否定されるときはS48に進んで歩行終了処理を実行し、S46の後にジャンプする。
次いでS50に進み、生成された歩容に基づいて脚部アクチュエータ100の指令値を算出し、S52に進んで算出された指令値に基づいて脚部アクチュエータ100の動作を制御(駆動)する。
また、S50の処理と平行してS54において生成された歩容に基づいて腕部アクチュエータ102の指令値を算出し、S56に進んで腕部アクチュエータ102の動作を制御(駆動)する。
また、S54の処理と平行してS58において生成された歩容に基づいてハンドアクチュエータ104の指令値を算出し、S60に進んでハンドアクチュエータ104の動作を制御(駆動)すると共に、S62において頭部アクチュエータ106の指令値を算出し、S64に進んで頭部アクチュエータ106の動作を制御(駆動)する。
図8は、S54の腕部アクチュエータの指令値算出処理を示すサブ・ルーチン・フロー・チャートである。
以下説明すると、先ずS100において力センサ78Rから出力される力成分の中のZ方向成分Fzがしきい値Fz_limを絶対値において超えるか否か判断し、肯定されるときはS102に進んでZ方向のハンドの位置の修正量を計算する。この処理は、換言すれば、相手(人)身長を認識してハンド22Rの重力方向における位置を算出することに相当する。尚、S100で否定されるときは、S102の処理をスキップする。
次いでS104に進み、歩行速度からX,Y方向のハンド22Rの位置を計算し、S106に進み、コンプライアンス制御計算を実行、即ち、コンプライアンス制御量を計算する。即ち、外力の小さな外乱分はコンプライアンス制御で吸収し、歩行には使用しないようにする。S56では計算されたコンプライアンス制御量に基づき、コンプライアンス制御が実行される。
第1実施例は上記の如く、基体14と、前記基体に連結される複数本の脚部12と、前記基体に連結されると共に、その先端にそれぞれハンド22が連結される複数本の腕部20と、前記脚部を駆動する脚部アクチュエータ100と、前記腕部を駆動する腕部アクチュエータ102とを少なくとも備えた脚式移動ロボット10の動作を制御する脚式移動ロボットの制御装置において、前記ハンドを介して人に接触したとき、前記人から作用する外力を検出する外力検出手段(力センサ78,ECU26,S26,S34,S36)、前記検出された外力に基づいて前記人の進行方向を推定し、前記推定された進行方向に基づいて歩容を生成する歩容生成手段(ECU26,S38からS46)、および前記生成された歩容に基づいて少なくとも前記脚部アクチュエータの動作を制御する脚部アクチュエータ制御手段(ECU26,S50,S52,S54からS64)を備える如く構成したので、姿勢の不安定化を招くことなく、人と接触することができてコミュニケーション機能を向上させることができる。
また、前記生成される歩容は、前記人に手を引かれて歩行する歩容である如く構成したので、上記した効果に加え、単なる接触に止まらない点で、コミュニケーション機能を一層向上させることができる。
また、前記外力の外乱分を吸収するコンプライアンス制御を実行する如く構成したので(ECU26,S54,S106,S56)、上記した効果に加え、姿勢の不安定化を一層良く回避することができる。
また、前記生成される歩容において前記外力に応じて歩幅を変更する如く構成したので(ECU26,S44)、上記した効果に加え、歩幅を変更して外力を吸収することができて姿勢の不安定化を一層良く回避することができる。
また、前記人の身長を認識して前記ハンドの重力方向における位置を算出するハンド位置算出手段(ECU26,S20)、および前記決定されたハンドの位置で前記人に接触するように前記腕部アクチュエータの動作を制御する腕部アクチュエータ制御手段(ECU26,S24,S54,S100からS106)を備える如く構成したので、上記した効果に加え、人に手(ハンド)を引かれるときの動作が一層円滑となり、コミュニケーション機能を一層向上させることができる。
次いで、この発明の第2実施例を説明する。図9および図10は、この発明の第2実施例に係る脚式移動ロボットの制御装置の動作を第1実施例と同様に行動決定部122で実行される処理に焦点をおいて説明するフロー・チャートである。
図9は第2実施例に係る脚式移動ロボットの制御装置の動作を示すフロー・チャートの前半部、図10は図9フロー・チャートの後半部である。より具体的には、図9は人の手を引いて歩行(人を案内)するときの動作を示すフロー・チャート、図10は人に手を引かれて歩行するときの動作を示す、第1実施例の図6フロー・チャートと同様のフロー・チャートである。
以下説明すると、S200において人を案内すべきか否か判断する。これは、音声認識部108を介してオペレータから人(例えば来客)を案内するように指示がなされているのを認識したか否かで判断する。あるいは外部からコマンドを入力して行っても良く、あるいは初期状態として人を案内するように設定しても良い。
S200で否定されるときは図10フロー・チャートに進み、S300から始まる処理を実行する。図10フロー・チャートのS300からS354までの処理は、第1実施例の図6フロー・チャートのS10からS64までの処理と同様であり、ロボット10が人に手を引かれて歩行するときの処理である。
他方、S200で肯定されるときはS202以降に進む。S202以降は、図11に示す如く、ロボット10が人の手を引いて歩行、即ち、人を案内する動作を行なうときの処理を示す。
以下説明すると、S202では目的を設定する。これは音声認識部108を介してなされた指示から例えば応接室までの案内動作と設定するような処理である。次いでS204に進み、案内すべき人(相手)を探索する。これは、人が携行するICタグ92から発信されるICタグ情報をICタグ信号受信器94で受信することで、あるいは画像処理部110を介して認識することで行う。
次いでS206に進み、案内すべき人を発見したか否か判断し、肯定されるときはS208に進み、案内すべき人に対して所定距離以内に接近したか否か確認し、肯定されるときはS210に進み、移動して相手に接近する。これらの処理は、第1実施例の図6フロー・チャートのS12からS16までの処理と同様である。
次いでS212に進み、相手の身長を認識ずみか否か判断し、肯定されるときはS214に進み、相手の手を引くのに使用する方のハンド、例えば右側のハンド22Rの重力方向における相手の身長に応じた高さを計算する。S212で否定されるときはS216に進み、初期値を採用する。次いでS218に進み、算出された位置で相手の手を握るべく腕部アクチュエータ102とハンドアクチュエータ104の動作を制御し、腕部20とハンド22を駆動する。
次いでS220に進み、右側の腕部20Rに配置された力センサ78Rから出力される力成分Fがしきい値Fgraspを絶対値において超えるか、あるいは力センサ78Rから出力されるモーメント成分Mがしきい値Mgraspを絶対値において超えるか否か判断する。S220で否定されるときは処理を繰り返して待機すると共に、肯定されるときはS222に進み、力センサ78で検出された外力F,M、具体的にはFx,Fy,Fz,Mx,My,Mzで相手の手を握るように、ハンドアクチュエータ104の動作を制御する。S212からS222までの処理も、第1実施例の図6フロー・チャートのS18からS28までの処理と異ならない。
次いでS224に進み、相手と手を繋いだことを力センサ78の出力から確認してS226に進み、経路を生成する。即ち、S202の目的の設定で認識された目的地までの移動経路を、地図D/B118に格納されている地図情報に基づいてノードとして設定あるいは決定する。尚、移動経路をノードで設定する技術は、本出願人が先に提案した特開2006−195969号公報に記載されているので、ここでの説明は省略する。
次いでS228に進み、歩行制御を実行する。これは前記した歩容D/B121に格納された歩容から歩容を生成して脚部アクチュエータ100などを制御する処理を意味し、具体的には第1実施例の図6フロー・チャートのS34からS64までの処理(図10フロー・チャートのS324からS354までの処理に同じ)を実行することを意味する。尚、この場合、人の手を引いて歩行することから、ベクトルの方向、即ち、人から作用する外力は、進行方向後向きの力となる。
次いで230に進み、発話により相手に注意を促す。例えば、「そこの角を曲がります」「段差があります」などと発話して相手の注意を促す。次いでS232に進み、相手の手が離れたか否か判断する。S232で否定され、次いでS234において目的地に到着したと判断されると、S236において相手に到着を説明し、手を離して相手から離れる。
ここで、S206で否定されて相手(人)を発見できなかった場合について説明すると、その場合はS238に進み、S204で相手の探索を開始してからの経過時間Tmが所定値T1(例えば5秒)を超えるか否か判断する。これはS232で肯定され、目的地に到着する前に相手の手が離れたと判断される場合も同様である。
そしてS238で否定される限り、S204に戻って探索を継続すると共に、S238で肯定されるときはS240に進み、「何々さん、いませんか?」などと発話して相手を呼び、S242に進み、前記した経過時間Tmが第2の所定値T2(例えば20秒)を超えるか否か判断する。S242で否定されるときはS204に戻って探索を継続する。
他方、S242で肯定されるときはS244に進み、タイムアウト処理を行い、以降の処理をスキップする。このように、相手を直ぐに発見できないとき、あるいは相手の手が離れたと判断されるときは、例えば5秒から20秒の間探索し続けると共に、それでも探索できないときは案内動作を中止する。
第2実施例は上記の如く、基体14と、前記基体に連結される複数本の脚部12と、前記基体に連結されると共に、その先端にそれぞれハンド22が連結される複数本の腕部20と、前記脚部を駆動する脚部アクチュエータ100と、前記腕部を駆動する腕部アクチュエータ102とを少なくとも備えた脚式移動ロボット10の動作を制御する脚式移動ロボットの制御装置において、前記ハンドを介して人に接触したとき、前記人から作用する外力を検出する外力検出手段(力センサ78,ECU26,S220,S324,S326)、前記脚式移動ロボット10が前記人に手を引かれて歩行する場合には前記検出された外力を前記人の進行方向の前向きの力と推定する一方、前記脚式移動ロボット10が前記人の手を引いて歩行する場合には前記検出された外力を前記人の進行方向の後向きの力と推定し、前記外力の方向から推定された前記人の進行方向に基づくと共に、前記外力に応じて歩幅を変更するように歩容を生成する歩容生成手段(ECU26,S228,S328からS336)、および前記生成された歩容に基づいて少なくとも前記脚部アクチュエータの動作を制御する脚部アクチュエータ制御手段(ECU26,S228,S340,S342,S344からS354)を備える如く構成したので、姿勢の不安定化を招くことなく、人と接触することができてコミュニケーション機能を向上させることができる。また、外力に応じて歩幅を変更するように歩容を生成する如く構成したので(ECU26,S334)、歩幅を変更して外力を吸収することができて姿勢の不安定化を一層良く回避することができる。
また、前記生成される歩容は、前記人の手を引いて歩行する歩容(S200,S228,S328からS336)または前記人に手を引かれて歩行する歩容(S200,S328からS336)である如く構成したので、上記した効果に加え、単なる接触に止まらない点で、コミュニケーション機能を一層向上させることができる。
また、前記外力の外乱分を吸収するコンプライアンス制御を実行する如く構成したので(ECU26,S344,S106,S346)、上記した効果に加え、姿勢の不安定化を一層良く回避することができる。
また、前記人の身長を認識して前記ハンドの重力方向における位置を算出するハンド位置算出手段(ECU26,S214,S310)、および前記決定されたハンドの位置で前記人に接触するように前記腕部アクチュエータの動作を制御する腕部アクチュエータ制御手段(ECU26,S218,S314,S344,S100からS106)を備える如く構成したので、上記した効果に加え、人に手(ハンド)を引かれるときの動作が一層円滑となり、コミュニケーション機能を一層向上させることができる。
尚、第1および第2実施例において人に手を引かれて歩行するときの動作において発話しなかったが、第2実施例の人の手を引いて歩行するときの動作と同様、発話生成部124などを介して発話しても良い。
また上記において、ICタグ92からICタグ信号受信器94に無線系を通じて識別情報を出力したが、特開2005−291716号公報に開示されるような無線系と光通信を組み合わせた検知技術を利用しても良い。
また上記において、脚式移動ロボットとして2足歩行ロボットを例示したが、それに限られるものではなく、3足以上のロボットであっても良い。
10:脚式移動ロボット(ロボット)、12:脚部、14:基体、20:腕部、26:ECU(電子制御ユニット)、82:CCDカメラ、92:ICタグ、94:ICタグ信号受信器、100:脚部アクチュエータ、102:腕部アクチュエータ、104:ハンドアクチュエータ、106:頭部アクチュエータ、122:行動決定部、126:動作制御部