学習歩行ロボット装置及びその制御プログラム
【課題】床面の状態が大きく異なりあるいは大きく変化するような領域でも安定した移動を可能とする学習歩行ロボット装置及びその制御プログラムを提供する。
【解決手段】所定領域内のそれぞれの位置における床面の硬さ指標を測定する手段21と、それぞれの位置を表す位置情報と硬さ指標とを対応付けて硬さ情報として保存する手段41と、所定領域内の学習歩行ロボット装置の現在位置を同定する手段35と、同定された現在位置における床面の硬さ指標を硬さ情報から決定する手段36と、決定した床面の硬さ指標に基づいて歩行形態を選択して歩行動作を制御する手段22〜28とを有し、手段21は、学習歩行ロボット装置が直立した姿勢を保持したまま足首の関節ロール軸アクチュエータを駆動したときのアクチュエータに流れる電流値に基づいて、アクチュエータに流れる電流値が大きいほど床面が硬いとする硬さ指標を対応付ける。
【解決手段】所定領域内のそれぞれの位置における床面の硬さ指標を測定する手段21と、それぞれの位置を表す位置情報と硬さ指標とを対応付けて硬さ情報として保存する手段41と、所定領域内の学習歩行ロボット装置の現在位置を同定する手段35と、同定された現在位置における床面の硬さ指標を硬さ情報から決定する手段36と、決定した床面の硬さ指標に基づいて歩行形態を選択して歩行動作を制御する手段22〜28とを有し、手段21は、学習歩行ロボット装置が直立した姿勢を保持したまま足首の関節ロール軸アクチュエータを駆動したときのアクチュエータに流れる電流値に基づいて、アクチュエータに流れる電流値が大きいほど床面が硬いとする硬さ指標を対応付ける。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、二足歩行を行う学習歩行ロボット装置及びその制御プログラムに関し、特に、二足歩行ロボットが歩行する歩行面の状態が大きく異なるような領域や歩行面の状態が大きく変化するような領域でも安定した移動を可能とする学習歩行ロボット装置及びその制御プログラムに関する。
【背景技術】
【0002】
従来の二足歩行ロボットの安定した歩行に関する技術としては、各種センサをロボットに設置し、そのセンサ情報を基に算出されたフィードバックゲインや、制御パラメータ、指令値を利用することにより、安定した歩行を実現する技術が開示されている。
【0003】
例えば、特許文献1には、カメラ、レーザー変位計、赤外線センサ、超音波センサなどにより床面の形状を検出し、またその他センサにより様々な物理量などを検出して、これらを基に算出された補償全床反力モーメントや、オフセット量、目標ZMPなどを利用して姿勢を随時制御することにより、制御のタイミングに依存しないで安定した歩行を実現する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−119764号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記特許文献1のように、各種センサからの時々刻々と変化するセンサ情報を基に、フィードバックゲインを逐一算出し、算出されたフィードバックゲインをかけながら歩容を随時補正するような歩行制御方法では、短時間の内に多くのセンサ情報を処理しなければならないために、膨大な量の演算処理を要し、そのため演算処理装置への負荷が極めて大きくなる。従って、演算処理装置の能力の大部分が上記演算処理のために使われ、他のタスクを実行するための余裕がなくなってしまう。
【0006】
また、上記制御方法では安定した床面での安定な歩行を実現してはいるが、二足歩行ロボットが歩行する床面の状態が変化する場合、例えば、絨毯(柔らかい床面)からフローリング(硬い床面)へと移動するような場合には、一歩毎の制御では二足歩行ロボットの安定した歩行を実現するためには必ずしも十分ではなかった。
【0007】
さらに、各種センサ情報を基にフィードバック制御を行うような場合には高価でかつ種々のセンサが必要となり、このため、二足歩行ロボットの制御は複雑なものとなり、部品の数が増加することにより信頼性の低下、重量の増加につながる。また、重量の増加は、より強力なアクチュエータを必要としさらに重量が増加するといったことにつながる。
【0008】
本発明は、このような従来の状況に鑑みて提案されたものであり、演算処理装置への負荷を軽減することができ、床面の状態が大きく異なるような領域や床面の状態が大きく変化するような領域でも安定した移動を可能とする軽量で安価な学習歩行ロボット装置及びその制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上記課題を解決するための本発明は、所定領域内を2足歩行する学習歩行ロボット装置において、前記所定領域内のそれぞれの位置における床面の硬さを表す硬さ指標を測定する硬さ指標測定手段と、前記それぞれの位置を表す位置情報と前記硬さ指標とを対応付けて硬さ情報として保存する硬さ情報記憶手段と、前記所定領域内の前記学習歩行ロボット装置の現在位置を同定する現在位置同定手段と、同定された現在位置における床面の硬さ指標を前記硬さ情報から決定する硬さ決定手段と、決定した床面の硬さ指標に基づいて歩行形態を選択して歩行動作を制御する制御手段とを有し、前記硬さ指標測定手段は、前記学習歩行ロボット装置が直立した姿勢を保持したまま足首の関節ロール軸アクチュエータを駆動したときの前記アクチュエータに流れる電流値に基づいて、前記アクチュエータに流れる電流値が大きいほど前記床面が硬いとする硬さ指標を対応付ける学習歩行ロボット装置である。
【0010】
また本発明は、所定領域内を2足歩行する学習歩行ロボット装置を制御するプログラムにおいて、前記所定領域内のそれぞれの位置における床面の硬さを表す硬さ指標を測定し、前記それぞれの位置を表す位置情報と前記硬さ指標とを対応付けて硬さ情報として保存し、前記所定領域内の前記学習歩行ロボット装置の現在位置を同定し、同定された現在位置における床面の硬さ指標を前記硬さ情報から決定し、決定した床面の硬さ指標に基づいて歩行形態を選択して歩行動作を制御する動作を前記学習歩行ロボット装置に搭載されたコンピュータに実行させ、前記硬さ指標の測定では、前記学習歩行ロボット装置が直立した姿勢を保持したまま足首の関節ロール軸アクチュエータを駆動したときの前記アクチュエータに流れる電流値に基づいて、前記アクチュエータに流れる電流値が大きいほど前記床面が硬いとする硬さ指標を対応付ける制御プログラムである。
【発明の効果】
【0011】
この発明によれば、演算処理装置への負荷を軽減することができ、床面の状態が大きく異なるような領域や床面の状態が大きく変化するような領域でも安定した移動を可能とする軽量で安価な学習歩行ロボット装置及びその制御プログラムを提供することができる。
【図面の簡単な説明】
【0012】
【図1】ロボット装置の構成を示す図。
【図2】ロボット装置の動作を制御する制御ブロックの構成と、制御ブロック間の信号のフローを示す図。
【図3】環境情報作成処理の概略の手順を示すフロー図。
【図4】環境情報作成処理の概略の手順を示すフロー図。
【図5】座標位置と環境画像との対応を示す図。
【図6】電流値と床面硬さとの対応データを示す図。
【図7】床面の硬さと歩行パラメータとの対応データを示す図。
【図8】歩行パラメータと補正係数との対応データを示す図。
【図9】基本歩行パターン制御量データを示す図。
【図10】サンプリングデータを示す図。
【図11】位置座標と床面の硬さの対応データを示す図。
【図12】ロボット装置の学習歩行処理手順を示すフロー図。
【図13】ロボット装置の自己位置同定処理手順を示すフロー図。
【発明を実施するための形態】
【0013】
[第1の実施の形態]
本実施の形態の学習歩行ロボット装置(以下、ロボット装置という)は、主として人に毎日の生活を楽しんでもらいながら情報やサービスの提供を行うパーソナルホームコンシェルジュとしての働きを担っている。このために、ロボット装置には、「コミュニケーション知能」による自然なコミュニケーションと共に「移動知能」による生活空間内の自由な移動が求められる。従って、生活空間における様々な素材で構成される床面(歩行面)上を、ロボット装置を安定に歩行させる技術が必要かつ不可欠である。さらに、ホームユースであることに鑑みれば、その歩行技術を安価に構成することが必要である。
【0014】
図1は、ロボット装置1の構成を示す図である。なお、図1では主として歩行に関する機構を記載しているため、それ以外の機構、例えば腕、指などに関する機構は記載を省略している。
【0015】
ロボット装置1には、歩行動作に関連するセンサとして、カメラ10、赤外線測距センサ11、2軸ジャイロセンサ12、3軸加速度センサ13及び圧力センサ14が設けられている。
カメラ10は、ロボット装置1の周囲の環境を撮影する。赤外線測距センサ11は、ロボット装置1の現在位置から所定距離までの間の床面の凹凸状態を測定する。2軸ジャイロセンサ12は、ロボット装置1のXY軸周りの旋回角速度を測定する。3軸加速度センサ13は、ロボット装置1のXYZ軸方向の加速度を測定する。圧力センサ14は、左右の足裏に設けられてそれぞれの足にかかる荷重分布を測定する。
【0016】
ロボット装置1の関節の自由度について説明する。これらの関節は、アクチュエータにより回転動作が可能に構成されている。なお、説明に用いる、ロール軸は図中X軸に相当し、ピッチ軸はY軸に相当し、ヨー軸はZ軸に相当する。
【0017】
ロボット装置1の首部は、首関節ピッチ軸101と首関節ヨー軸102の2自由度をもつ。右股部は、右股関節ピッチ軸104、右股関節ロール軸105及び右股関節ヨー軸106の3自由度をもつ。左股部は、左股関節ロール軸107、左股関節ピッチ軸108及び左股関節ヨー軸109の3自由度をもつ。
ロボット装置1の右膝部及び左膝部は、それぞれ右膝関節ピッチ軸111及び左膝関節ピッチ軸112の1自由度をもつ。右足首部は、右足首関節ピッチ軸113及び右足首関節ロール軸114の2自由度をもつ。左足首部は、左足首関節ピッチ軸115及び左足首関節ロール軸116の2自由度をもつ。
【0018】
図2は、ロボット装置1の動作を制御する制御ブロックの構成と、制御ブロック間の信号のフローを示す図である。
【0019】
ロボット装置1には制御ブロックとして、床面状態取得部21、歩行パラメータ決定部22、補正係数決定部23、歩行パターン生成部24、基本歩行パターン算出部25、フィードバックゲイン生成部26、行動制御部27、歩行制御部28、サンプリングデータ生成部29、サンプリングデータ集計部30、歩行結果判定部31、現在位置決定部32、環境画像撮影部33、対応データ生成部34、自己位置同定部35、床面硬さ決定部36及び歩行制御量データ生成部37が備わっている。
【0020】
また、ロボット装置1には記憶装置40が設けられている。この記憶装置40には、歩行情報データベース41及び環境情報データベース42を備えている。そして制御ブロックが処理を実行するために必要な各種データが、歩行情報データベース41及び環境情報データベース42に格納されている。この各データベースの詳細内容については後述する。
【0021】
次に、ロボット装置1の動作のうち環境情報作成動作について説明する。
ロボット装置1は、導入された初期において行動範囲となる生活空間内の環境情報を自動で作成する。この環境情報は、後述するように、「位置座標」と「環境画像」と「床面の硬さ情報」と「サンプリングデータ」とを備えている。ロボット装置1は、生活空間内を隈なく歩行して、この情報を収集する。
【0022】
図3、図4は、環境情報作成処理の概略の手順を示すフロー図である。図2乃至図4を参照しつつ環境情報作成処理を説明する。
【0023】
ユーザは、充電ステーション(不図示)で待機中のロボット装置1に対して環境情報作成指示を入力する。ステップS01において、ロボット装置1は、現在位置の座標を原点とする。ここで、歩行空間内の座標は、所定位置を基準(原点)とした世界座標系で表されている。この座標系では、充電ステーションの位置を座標原点(x、y、θ)=(0,0,0)とする。
【0024】
ステップS02において、ロボット装置1は、自律で移動する。そして、ロボット装置1の現在位置決定部32は、歩数、歩幅、旋回角を積算することにより、現在位置の座標(x、y、θ)を算出する。ここで、θはロボット装置1の向きを表す角度情報である。
【0025】
ステップS03において、環境画像撮影部33は、現在位置における周囲の画像をロボット装置1のカメラ10により撮影する。カメラ10は、視野角50度のレンズを搭載し、例えば、首関節ヨー軸102を中心にして回転し、120度(±60度)の範囲を撮影する。首関節ヨー軸102の回転30度刻みで撮影するため、5枚の画像を得る。
ステップS04において、対応データ生成部34は、現在位置座標と撮影した環境画像とを対応付けて環境情報データベース42に格納する。図5は、座標位置と環境画像との対応を示す図である。図5では、カメラ10が1台設けられて画像が撮影されているが、環境画像は、カメラ10が複数段に設けられて撮影されたものであっても良いし、首関節ヨー軸102の回転に加えて首関節ピッチ軸101を回転させて上下方向にも撮影されたものであっても良い。なお、環境画像は、デジタルデータ化され、環境情報データベースに時系列順に保存され、予め設定したデータ量を超えた場合には、古い環境画像データから順に削除されて新たな環境画像データが保存されていく。
【0026】
ステップS05において、床面状態取得部21は、現在位置で床面の硬さを取得する。ここで、床面の硬さとは、JISで規定されている硬さではなく、ロボット装置1の歩行に影響する床面の状態を表す指標である。床面状態取得部21は、床面の硬さを次の手順で取得する。
【0027】
(1)直立姿勢でのロボットの中心を通る鉛直線と床面との交点に左右の足裏面が対向するように左右足首関節ロール軸114、116周りに足をアクチュエータにより回動する。即ち、左右の足の前記交点と離れた側面の床と接地している辺を支軸として、前記交点に近い側面を持ち上げる。つまり、ロボットを正面から見て足が「ハ」の字状となるように左右の足首関節ロール軸114、116のアクチュエータを駆動する。なお、足を持ち上げる量は、角度で言えば、例えば5度程度である。
(2)上記制御を両足首同時に行い、所定の時間毎(例えば、20msec毎)に所定の回数だけ(例えば、10回)電流値の測定を行い、その所定の回数における電流値の平均値を算出する。両足首の電流値の平均値を加算した値を硬さを判定するときの電流値とする。
【0028】
(3)測定した電流値から、図6に示す電流値と床面硬さとの対応データに基づいて床面の硬さを選択し、取得する。なお、図6に示すデータは、歩行情報データベース41に格納されている。
アクチュエータに流れる電流から、床面硬さを取得できる原理について説明する。例えば、床面がガラスである場合と絨毯である場合を想定する。床面が絨毯と柔らかい場合、足裏を傾けたときの支軸となる足側面側は床面が変形して凹むことにより、足裏と床面との接触面積が増加する。一方、床面がガラスの場合は、床面の変形がほとんどないため、足裏と床面との接触面積は絨毯の場合と比べると小さい。この結果、足裏を傾ける姿勢を保持するためにアクチュエータに必要とされる電流は、絨毯のほうがガラスのときよりも小さくなる。従って、アクチュエータの電流値が高ければ高いほど硬い床面であり、低ければ低いほど柔らかい床面であると判断することができる。
【0029】
なお、床面の硬さ測定時の足形状は「ハの字」形状だけでなく、「逆ハの字」形状であっても良い。さらに、傾ける足の角度は、上述の5度に限られずロボット装置1が転倒しない限度において任意の角度で良いことは当然である。
【0030】
図3のステップS06において、歩行パラメータ決定部22は、取得した床面の硬さに基づいて、現在位置での歩行パラメータを決定する。歩行パラメータ決定部22は、図7に示す、床面の硬さと歩行パラメータとの対応データから歩行パラメータを決定する。ここで、図7に示す床面の硬さと歩行パラメータとの対応データは、歩行情報データベース41に格納されている。
【0031】
ステップS07において、決定した歩行パラメータに基づいて、歩行パターンを生成する。歩行パターンの生成は次の手順で行われる。
【0032】
(1)補正係数決定部23は、図8に示す、歩行パラメータと補正係数との対応データから補正係数を選択する。ここで、補正係数は、ロボット装置1の各関節を動作させるアクチュエータ毎に設定されている。
(2)基本歩行パターン算出部25は、図9に示す基本歩行パターン制御量データを抽出する。この基本歩行パターン制御量データは、床面の状態によらない制御量データであり、所定時間(歩行の1周期においてアクチュエータを制御する際の単位時刻)毎のアクチュエータの角度量で表される。ここで、基本歩行パターン制御量データはロボット装置1の各関節を動作させるアクチュエータ毎に設定されている。この基本歩行パターン制御量データは、歩行情報データベース41に格納されている。
【0033】
なお、本実施の形態における基本歩行パターンは、線形倒立振子モデルを基にした理論的な動歩行パターンであって、線形倒立振子モデルを基にして理論的に算出された各関節アクチュエータの所定時間毎の角度変化量を、時系列順に組み合わせることにより生成される歩行パターンのことである。
つまり、基本歩行パターンは以下で表される式(線形倒立振子の運動関係を示す運動方程式の解)に基づいて生成される。
なお、ここではロボットの重心の高さは変化しないものと仮定している。
【0034】
X(t)=X(0)・cosh(t/Tc)+Tc・X’(0)・sinh(t/Tc)
X’(t)=X(0)/{Tc・sinh(t/Tc)}+X’(0)・cosh(t/Tc)
Tc≡√(Z/G)
X(t):時刻tにおけるロボットのX軸方向の重心位置
X’(t):時刻tにおけるロボットのX軸方向の重心の速度
Z:ロボットの重心の高さ(定数)
G:重力加速度(定数)
Tc:ロボットの重心の高さと重力加速度によって決まる時定数
(3)歩行パターン生成部24は、選択した補正係数(図8)を対応する基本歩行パターンの制御量データ(図9)に掛けた値を新たな歩行パターンとする。これによって、床面の硬さに応じた歩行パターンを生成する。
【0035】
ステップS08において、行動制御部27は、生成した歩行パターンに従った歩行動作を指示する。ステップS09において、歩行制御量データ生成部37は、生成した歩行パターンに対してフィードバックゲイン生成部26が生成したフィードバックゲインを用いて次の所定時間における歩行動作用の歩行制御量データを生成し、行動制御部27は、生成した次の所定時間における歩行動作用の歩行制御量データに従った動作を指示して、歩行制御部28は、ロボット装置1の各関節部アクチュエータの動作を制御する。
【0036】
フィードバックゲイン生成部26は、今回のロボット装置1の歩行状態の測定値から次の所定時間における歩行動作時でのフィードバックゲインを次の手順で生成する。
ロボット装置に設けられた各センサ(ジャイロ、加速度、圧力)は、ロボットの歩行動作中の姿勢に関する時系列データを計測する。フィードバックゲイン生成部26は、歩行パターン生成部24が生成した現在の歩行パターンとこの測定データによる歩行状態とを比較して偏差を算出する。そして、この偏差がなくなるように制御用のフィードバックゲインを生成する。ここで生成されたフィードバックゲインは次の所定時間における歩行動作において使用される。
【0037】
図4のステップS10において、歩行結果判定部31が、歩行状態が良好であったか不良であったかを判定する。ロボット装置1が転倒した場合は当然不良であるが、転倒しないまでも歩行パターンが床面の硬さと適合しないため歩行状態が良くないと判断される場合がある。この判断方法としては、各センサの測定データから得られた歩行状態を正常な歩行状態と比較して、その乖離の程度が閾値以上である場合に歩行状態が良くないと判定することができる。
【0038】
ステップS11において、ロボット装置1が所定位置まで歩みを進めたときに、サンプリングデータ生成部29が、図10に示すように取得した床面の硬さ、取得した現在座標位置及び歩行の結果を環境情報として登録する。ここで、図10に示すサンプリングデータは、環境情報データベース42に格納されている。
【0039】
なお、上述の所定位置は、本実施の形態では60cm先の位置である。これは、ロボット装置1に設けられた赤外線測距センサ11の測定範囲が60cmであることに対応している。従って、現在位置として表される座標位置は、この測定範囲の領域を代表する値として把握することができる。
【0040】
図4のステップS12において、同一座標位置における床面の硬さ及び歩行の結果についてのデータが予定された繰返し数だけ収集されたかどうかを調べる。
ステップS12においてNoの場合、即ち、まだ所定の繰返し数だけデータが収集されていない場合は、図3のステップS02に戻り、環境情報作成動作を繰り返して実行する。
【0041】
なお、環境情報作成動作は連続して行う必要は無く、生活空間内の各部分領域についてタイミングを別にして作成すれば良い。従って、このような作成動作において、同一の座標位置での床面の硬さ及び歩行の結果のデータが得られたときに、そのデータをサンプリングデータとして登録すれば良い。
図10は、このようにしてサンプリングデータ生成部29によって集められたサンプリングデータを示す図である。図10に示すように、床面の硬さの測定結果が同じであるとは限らない。また歩行結果も床面の硬さに対応して常に同じであるとは限らない。これは、床面の硬さの測定結果にばらつきが生じたり、たまたま床面が濡れているなどの理由により床面が実際に変化したりすることによる。
【0042】
ステップS12においてYesの場合、即ち、所定の繰返し数だけデータが収集された場合は、サンプリングデータ集計部30が、これらの測定データから測定結果を算出して環境情報として登録する。
例えば、歩行結果が良(図10の「歩行結果」の欄が「○」)である回数が最も多い床面の硬さを測定結果として環境情報として登録する。また、異なる床面の硬さにおいて歩行結果が良である回数が同じ場合は、最初に歩行結果が最も多く量となった床面の硬さを測定結果として環境情報として登録する。
【0043】
図11は、サンプリングデータ集計部30が登録した位置座標と床面の硬さの対応データを示す図である。このデータは、繰返し床面の硬さの測定と歩行結果を積み重ねて得られたものであり、ロボット装置1による学習の結果であると見ることができる。なお、サンプリングデータ集計部30を、適宜のタイミングで起動することによりそれまでに蓄積したデータを集計して最新のデータを利用することができる。
図4のステップS15において、環境情報作成領域内を隈なく探索して環境情報を作成したかどうかを調べる。ここで、環境情報作成領域とは、環境情報データベース42内に存在する全環境画像に対応した生活空間内の領域のことである。ステップS15でYesの場合、即ち環境情報作成領域内の環境情報作成を完了している場合は本処理を終了する。ステップS15でNoの場合、即ち環境情報作成領域内に未探索の領域が存在する場合は、ステップS16において、その領域に移動する。移動する領域は、本実施においては、赤外線測距センサ11の測定結果により凹凸が存在しない領域であればランダムでよい。そして、図3のステップS02からの処理を実行する。
【0044】
次に、ロボット装置1の動作のうち学習歩行動作について説明する。
上述の環境情報作成処理において、ロボット装置1が歩行する領域について環境情報が作成された。そのため、ロボット装置1は、環境情報が作成されている領域においては、この環境情報に従った歩行動作を実行する。上述のように環境情報は、ロボット装置1による学習の結果作成されたものである。従って、環境情報に従った歩行動作を学習歩行と呼ぶ。
【0045】
図12は、ロボット装置1の学習歩行処理手順を示すフロー図である。図13は、ロボット装置1の自己位置同定処理手順を示すフロー図である。図2、図12、図13を参照しつつ学習歩行処理を説明する。
ロボット装置1が歩行動作を開始する場合、ロボット装置1は目的地まで図12のフローに示す学習歩行動作を繰り返して実行する。
【0046】
図12のステップS21において、ロボット装置1は現在自分がいる座標位置(自己位置)を同定する処理(図13)を実行する。なお、この自己位置同定処理は、ロボット装置1の自己位置同定部35が実行する。
【0047】
図13のステップS31において、ロボット装置1は、現在位置まで歩行してきたかどうかを判断する。すなわち、人の手により運搬されるなど、つまり、歩行しないでロボットが現在立っている位置まで移動した場合など学習歩行が継続していない場合を区別するためである。この判断は、例えば位置認識フラグ(不図示)を設けて判断するようにしても良い。この位置認識フラグは、自己位置が同定できていた位置から、ロボットが現在立っている位置まで歩行ができていればONになる。反対に、自己位置が同定できていた位置から、ロボットが現在立っている位置まで歩行しようとしたが、途中で歩行がうまくいかなかった場合には、OFFになる。また、ロボットが現在立っている位置まで歩行できたが、自己位置が同定できていない位置からの歩行であった場合や、人の手により運搬されるなどしてロボットが現在立っている位置まで移動した場合にもOFFになる。
【0048】
ステップS31でNoの場合、例えば、ロボット装置1が現在位置にユーザによって設置されて、歩行動作をこれから開始する場合は、ステップS32において、環境画像撮影部33は、カメラ10により周囲の画像を撮影する。そして、ステップS33において、撮影した環境画像と一致する環境画像が環境情報(図5)にあるかどうかを調べる。
【0049】
画像の一致は、例えば、テンプレートマッチング法を適用することができる。この処理は次の手順で実行することができる。(1)撮影した環境画像と環境画像との輝度値についてフーリエ変換を行う。(2)フーリエ変換後の2枚の画像についてスペクトル乗算をおこなって、その結果を逆フーリエ変換する。(3)逆フーリエ変換結果について相関係数を算出し、正規化処理した評価値を算出する。(4)最も高い評価値をもつ環境画像を一致した画像と判断する。
【0050】
このテンプレートマッチング法以外にも種々の画像処理手法を用いることができる。例えば、両画像のそれぞれの周波数分布の差を求めて判断しても良く、両画像の相関演算を行って判断しても良い。またパターンマッチングの手法を用いて判断しても良い。
さらに、撮影した画像の一部分を用いて比較することで処理の効率化を図っても良い。この処理は、画像同士の厳密な比較を行うのではなく、同じ環境の画像を特定することが目的であるため、このような簡略化した処理であっても所要の目的を達成し、効率化を図ることができる。
【0051】
ステップS34でYesの場合、すなわち環境情報にある環境画像と一致した場合は、ステップS35において、一致する環境画像に対応する位置座標を環境情報(図5)より抽出する。そして、ステップS36において、抽出した座標を自己位置の座標とする。
【0052】
一方、ステップS34でNoの場合、すなわち環境情報にある環境画像と一致しない場合は、ステップS38において、撮影した周囲の画像から障害物が無い方向へ移動または旋回して、ステップS32からの処理を実行する。
【0053】
ステップS31でYesの場合、すなわち、ロボット装置1が自己位置同定できていた位置から歩行動作を継続して現在位置にいる場合は、ステップS41において、前回の自己位置同定で同定した位置から、歩数、歩幅、旋回角の積算によって現在位置の座標を算出する。しかし、ここで算出した現在の位置座標は自己位置としては採用しない。積算により自己位置を算出することは誤差が大きくなるためである。
【0054】
そこで、ステップS42において、環境画像撮影部33は、カメラ10により周囲の画像を撮影する。そして、ステップS43において、算出した自己位置座標から所定の範囲内にある座標に対応する環境画像を環境情報(図5)から抽出する。ステップS44において、撮影した環境画像と一致する環境画像が抽出した環境画像にあるか否かを調べる。この処理は、ステップS34の処理と異なり対象とする環境画像を絞り込むため、効率的に処理することができる。なお、この画像の一致の判断は、上述のように画像の一部を用いて更に効率化した処理により行っても良い。
【0055】
ステップS45でYesの場合、すなわち環境情報にある環境画像と一致した場合は、ステップS46において、一致する環境画像に対応する座標を環境情報(図5)より抽出し、抽出した座標を自己位置の座標とする。
【0056】
一方、ステップS45でNoの場合、すなわち環境情報にある環境画像と一致しない場合は、ステップS48において、撮影した周囲の画像から障害物が無い方向へ移動または旋回して、ステップS31からの処理を実行する。
【0057】
図12に戻りステップS22において、床面硬さ決定部36は、自己位置同定部35が同定した自己位置での床面の硬さを環境情報(図11)より抽出する。そして、ステップS23〜S26において、床面の硬さに対応した歩行パターンに従って歩行動作を実行する。このステップS23〜S26の動作については、環境情報作成処理手順で説明した動作と同じであるため、その詳細の説明は省略する。
【0058】
ステップS27において、歩行結果を次の歩行にフィードバックできるように、図10に示すサンプリングデータとして登録する。このサンプリングデータの収集にはデータ処理の負荷がかかるため常に行うのではなく、適宜の間隔タイミングで実施するようにしても良い。また、学習歩行にサンプリングを実施する歩行モードを設けても良い。これによって、過去に収集した環境情報を更新して常に最新の環境を取り入れた学習歩行を実現することができる。
そして、ステップS28において、所定の位置まで歩行したら次の学習歩行動作に備えるために歩行を停止する。
【0059】
以上説明した実施の形態によれば、予め設定しておいた様々な床面の状態にそれぞれ対応付けられた複数の歩行パラメータの中から、自己位置での床面の状態に対応する最適な歩行パラメータを選択することにより、床面の状態が大きく異なるような領域や床面の状態が大きく変化するような領域でも安定した移動が可能となる。
【0060】
また予め設定しておいた様々な床面の状態にそれぞれ対応付けられた複数の歩行パラメータの中から、自己位置での床面の状態に対応する最適な歩行パラメータを選択することにより歩行制御を行うため、時々刻々と変化する種々のセンサ情報を都度処理して歩容を随時補正するような歩行制御方法とは異なり、各種センサ情報や高度な及び/又は膨大な演算処理が不要となる。従って、演算処理装置への負荷が軽減され演算処理装置の能力の多くを他のタスクを実行するために使うことができ、さらに、高価な演算処理装置や各種センサが不要となり軽量かつ安価なロボット装置を構成することができる。
【0061】
また歩行中に床面の状態を計測する必要は無く、現在位置に対応して設けられた床面状態のデータを選択して歩行の制御を実行するため、汎用的な演算で良く演算処理装置への負荷を軽減することができ、また、汎用的なセンサでその種類や数も少なくて済むため、軽量かつ安価なロボット装置を構成することができる。
【0062】
また床面の硬さを床面の状態として採用している。床面の硬さは、足首関節ロール軸のアクチュエータの電流から求める簡便な方式を採用し、従来のような複数のセンサから得られた複数のパラメータを用いる必要が無いため、軽量かつ安価なロボット装置を構成することができる。
【0063】
さらに、周囲の環境画像との比較で自己位置を同定し、その自己位置に対応する床面の硬さを抽出する。このため、自己位置の精度も従来と比べると低い値であっても良い。従って、自己位置を算出するための高度な演算処理が不要となり演算処理装置への負荷を軽減することができ、安価なロボット装置を構成することができる。
【0064】
なお、上述の各実施の形態で説明した機能は、ハードウェアを用いて構成するに留まらず、ソフトウェアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウェア、ハードウェアのいずれかを選択して構成するものであっても良い。
【0065】
尚、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【0066】
1…ロボット装置、10…カメラ、11…赤外線測距センサ、12…ジャイロセンサ、13…加速度センサ、14…圧力センサ、21…床面状態取得部、22…歩行パラメータ決定部、23…補正係数決定部、24…歩行パターン生成部、25…基本歩行パターン算出部、26…フィードバックゲイン生成部、27…行動制御部、28…歩行制御部、29…サンプリングデータ生成部、30…サンプリングデータ集計部、31…歩行結果判定部、32…現在位置決定部、33…環境画像撮影部、34…対応データ生成部、35…自己位置同定部、36…床面硬さ決定部、37…歩行制御量データ生成部、40…記憶装置、41…歩行情報データベース、42…環境情報データベース。
【技術分野】
【0001】
本発明は、二足歩行を行う学習歩行ロボット装置及びその制御プログラムに関し、特に、二足歩行ロボットが歩行する歩行面の状態が大きく異なるような領域や歩行面の状態が大きく変化するような領域でも安定した移動を可能とする学習歩行ロボット装置及びその制御プログラムに関する。
【背景技術】
【0002】
従来の二足歩行ロボットの安定した歩行に関する技術としては、各種センサをロボットに設置し、そのセンサ情報を基に算出されたフィードバックゲインや、制御パラメータ、指令値を利用することにより、安定した歩行を実現する技術が開示されている。
【0003】
例えば、特許文献1には、カメラ、レーザー変位計、赤外線センサ、超音波センサなどにより床面の形状を検出し、またその他センサにより様々な物理量などを検出して、これらを基に算出された補償全床反力モーメントや、オフセット量、目標ZMPなどを利用して姿勢を随時制御することにより、制御のタイミングに依存しないで安定した歩行を実現する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−119764号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記特許文献1のように、各種センサからの時々刻々と変化するセンサ情報を基に、フィードバックゲインを逐一算出し、算出されたフィードバックゲインをかけながら歩容を随時補正するような歩行制御方法では、短時間の内に多くのセンサ情報を処理しなければならないために、膨大な量の演算処理を要し、そのため演算処理装置への負荷が極めて大きくなる。従って、演算処理装置の能力の大部分が上記演算処理のために使われ、他のタスクを実行するための余裕がなくなってしまう。
【0006】
また、上記制御方法では安定した床面での安定な歩行を実現してはいるが、二足歩行ロボットが歩行する床面の状態が変化する場合、例えば、絨毯(柔らかい床面)からフローリング(硬い床面)へと移動するような場合には、一歩毎の制御では二足歩行ロボットの安定した歩行を実現するためには必ずしも十分ではなかった。
【0007】
さらに、各種センサ情報を基にフィードバック制御を行うような場合には高価でかつ種々のセンサが必要となり、このため、二足歩行ロボットの制御は複雑なものとなり、部品の数が増加することにより信頼性の低下、重量の増加につながる。また、重量の増加は、より強力なアクチュエータを必要としさらに重量が増加するといったことにつながる。
【0008】
本発明は、このような従来の状況に鑑みて提案されたものであり、演算処理装置への負荷を軽減することができ、床面の状態が大きく異なるような領域や床面の状態が大きく変化するような領域でも安定した移動を可能とする軽量で安価な学習歩行ロボット装置及びその制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上記課題を解決するための本発明は、所定領域内を2足歩行する学習歩行ロボット装置において、前記所定領域内のそれぞれの位置における床面の硬さを表す硬さ指標を測定する硬さ指標測定手段と、前記それぞれの位置を表す位置情報と前記硬さ指標とを対応付けて硬さ情報として保存する硬さ情報記憶手段と、前記所定領域内の前記学習歩行ロボット装置の現在位置を同定する現在位置同定手段と、同定された現在位置における床面の硬さ指標を前記硬さ情報から決定する硬さ決定手段と、決定した床面の硬さ指標に基づいて歩行形態を選択して歩行動作を制御する制御手段とを有し、前記硬さ指標測定手段は、前記学習歩行ロボット装置が直立した姿勢を保持したまま足首の関節ロール軸アクチュエータを駆動したときの前記アクチュエータに流れる電流値に基づいて、前記アクチュエータに流れる電流値が大きいほど前記床面が硬いとする硬さ指標を対応付ける学習歩行ロボット装置である。
【0010】
また本発明は、所定領域内を2足歩行する学習歩行ロボット装置を制御するプログラムにおいて、前記所定領域内のそれぞれの位置における床面の硬さを表す硬さ指標を測定し、前記それぞれの位置を表す位置情報と前記硬さ指標とを対応付けて硬さ情報として保存し、前記所定領域内の前記学習歩行ロボット装置の現在位置を同定し、同定された現在位置における床面の硬さ指標を前記硬さ情報から決定し、決定した床面の硬さ指標に基づいて歩行形態を選択して歩行動作を制御する動作を前記学習歩行ロボット装置に搭載されたコンピュータに実行させ、前記硬さ指標の測定では、前記学習歩行ロボット装置が直立した姿勢を保持したまま足首の関節ロール軸アクチュエータを駆動したときの前記アクチュエータに流れる電流値に基づいて、前記アクチュエータに流れる電流値が大きいほど前記床面が硬いとする硬さ指標を対応付ける制御プログラムである。
【発明の効果】
【0011】
この発明によれば、演算処理装置への負荷を軽減することができ、床面の状態が大きく異なるような領域や床面の状態が大きく変化するような領域でも安定した移動を可能とする軽量で安価な学習歩行ロボット装置及びその制御プログラムを提供することができる。
【図面の簡単な説明】
【0012】
【図1】ロボット装置の構成を示す図。
【図2】ロボット装置の動作を制御する制御ブロックの構成と、制御ブロック間の信号のフローを示す図。
【図3】環境情報作成処理の概略の手順を示すフロー図。
【図4】環境情報作成処理の概略の手順を示すフロー図。
【図5】座標位置と環境画像との対応を示す図。
【図6】電流値と床面硬さとの対応データを示す図。
【図7】床面の硬さと歩行パラメータとの対応データを示す図。
【図8】歩行パラメータと補正係数との対応データを示す図。
【図9】基本歩行パターン制御量データを示す図。
【図10】サンプリングデータを示す図。
【図11】位置座標と床面の硬さの対応データを示す図。
【図12】ロボット装置の学習歩行処理手順を示すフロー図。
【図13】ロボット装置の自己位置同定処理手順を示すフロー図。
【発明を実施するための形態】
【0013】
[第1の実施の形態]
本実施の形態の学習歩行ロボット装置(以下、ロボット装置という)は、主として人に毎日の生活を楽しんでもらいながら情報やサービスの提供を行うパーソナルホームコンシェルジュとしての働きを担っている。このために、ロボット装置には、「コミュニケーション知能」による自然なコミュニケーションと共に「移動知能」による生活空間内の自由な移動が求められる。従って、生活空間における様々な素材で構成される床面(歩行面)上を、ロボット装置を安定に歩行させる技術が必要かつ不可欠である。さらに、ホームユースであることに鑑みれば、その歩行技術を安価に構成することが必要である。
【0014】
図1は、ロボット装置1の構成を示す図である。なお、図1では主として歩行に関する機構を記載しているため、それ以外の機構、例えば腕、指などに関する機構は記載を省略している。
【0015】
ロボット装置1には、歩行動作に関連するセンサとして、カメラ10、赤外線測距センサ11、2軸ジャイロセンサ12、3軸加速度センサ13及び圧力センサ14が設けられている。
カメラ10は、ロボット装置1の周囲の環境を撮影する。赤外線測距センサ11は、ロボット装置1の現在位置から所定距離までの間の床面の凹凸状態を測定する。2軸ジャイロセンサ12は、ロボット装置1のXY軸周りの旋回角速度を測定する。3軸加速度センサ13は、ロボット装置1のXYZ軸方向の加速度を測定する。圧力センサ14は、左右の足裏に設けられてそれぞれの足にかかる荷重分布を測定する。
【0016】
ロボット装置1の関節の自由度について説明する。これらの関節は、アクチュエータにより回転動作が可能に構成されている。なお、説明に用いる、ロール軸は図中X軸に相当し、ピッチ軸はY軸に相当し、ヨー軸はZ軸に相当する。
【0017】
ロボット装置1の首部は、首関節ピッチ軸101と首関節ヨー軸102の2自由度をもつ。右股部は、右股関節ピッチ軸104、右股関節ロール軸105及び右股関節ヨー軸106の3自由度をもつ。左股部は、左股関節ロール軸107、左股関節ピッチ軸108及び左股関節ヨー軸109の3自由度をもつ。
ロボット装置1の右膝部及び左膝部は、それぞれ右膝関節ピッチ軸111及び左膝関節ピッチ軸112の1自由度をもつ。右足首部は、右足首関節ピッチ軸113及び右足首関節ロール軸114の2自由度をもつ。左足首部は、左足首関節ピッチ軸115及び左足首関節ロール軸116の2自由度をもつ。
【0018】
図2は、ロボット装置1の動作を制御する制御ブロックの構成と、制御ブロック間の信号のフローを示す図である。
【0019】
ロボット装置1には制御ブロックとして、床面状態取得部21、歩行パラメータ決定部22、補正係数決定部23、歩行パターン生成部24、基本歩行パターン算出部25、フィードバックゲイン生成部26、行動制御部27、歩行制御部28、サンプリングデータ生成部29、サンプリングデータ集計部30、歩行結果判定部31、現在位置決定部32、環境画像撮影部33、対応データ生成部34、自己位置同定部35、床面硬さ決定部36及び歩行制御量データ生成部37が備わっている。
【0020】
また、ロボット装置1には記憶装置40が設けられている。この記憶装置40には、歩行情報データベース41及び環境情報データベース42を備えている。そして制御ブロックが処理を実行するために必要な各種データが、歩行情報データベース41及び環境情報データベース42に格納されている。この各データベースの詳細内容については後述する。
【0021】
次に、ロボット装置1の動作のうち環境情報作成動作について説明する。
ロボット装置1は、導入された初期において行動範囲となる生活空間内の環境情報を自動で作成する。この環境情報は、後述するように、「位置座標」と「環境画像」と「床面の硬さ情報」と「サンプリングデータ」とを備えている。ロボット装置1は、生活空間内を隈なく歩行して、この情報を収集する。
【0022】
図3、図4は、環境情報作成処理の概略の手順を示すフロー図である。図2乃至図4を参照しつつ環境情報作成処理を説明する。
【0023】
ユーザは、充電ステーション(不図示)で待機中のロボット装置1に対して環境情報作成指示を入力する。ステップS01において、ロボット装置1は、現在位置の座標を原点とする。ここで、歩行空間内の座標は、所定位置を基準(原点)とした世界座標系で表されている。この座標系では、充電ステーションの位置を座標原点(x、y、θ)=(0,0,0)とする。
【0024】
ステップS02において、ロボット装置1は、自律で移動する。そして、ロボット装置1の現在位置決定部32は、歩数、歩幅、旋回角を積算することにより、現在位置の座標(x、y、θ)を算出する。ここで、θはロボット装置1の向きを表す角度情報である。
【0025】
ステップS03において、環境画像撮影部33は、現在位置における周囲の画像をロボット装置1のカメラ10により撮影する。カメラ10は、視野角50度のレンズを搭載し、例えば、首関節ヨー軸102を中心にして回転し、120度(±60度)の範囲を撮影する。首関節ヨー軸102の回転30度刻みで撮影するため、5枚の画像を得る。
ステップS04において、対応データ生成部34は、現在位置座標と撮影した環境画像とを対応付けて環境情報データベース42に格納する。図5は、座標位置と環境画像との対応を示す図である。図5では、カメラ10が1台設けられて画像が撮影されているが、環境画像は、カメラ10が複数段に設けられて撮影されたものであっても良いし、首関節ヨー軸102の回転に加えて首関節ピッチ軸101を回転させて上下方向にも撮影されたものであっても良い。なお、環境画像は、デジタルデータ化され、環境情報データベースに時系列順に保存され、予め設定したデータ量を超えた場合には、古い環境画像データから順に削除されて新たな環境画像データが保存されていく。
【0026】
ステップS05において、床面状態取得部21は、現在位置で床面の硬さを取得する。ここで、床面の硬さとは、JISで規定されている硬さではなく、ロボット装置1の歩行に影響する床面の状態を表す指標である。床面状態取得部21は、床面の硬さを次の手順で取得する。
【0027】
(1)直立姿勢でのロボットの中心を通る鉛直線と床面との交点に左右の足裏面が対向するように左右足首関節ロール軸114、116周りに足をアクチュエータにより回動する。即ち、左右の足の前記交点と離れた側面の床と接地している辺を支軸として、前記交点に近い側面を持ち上げる。つまり、ロボットを正面から見て足が「ハ」の字状となるように左右の足首関節ロール軸114、116のアクチュエータを駆動する。なお、足を持ち上げる量は、角度で言えば、例えば5度程度である。
(2)上記制御を両足首同時に行い、所定の時間毎(例えば、20msec毎)に所定の回数だけ(例えば、10回)電流値の測定を行い、その所定の回数における電流値の平均値を算出する。両足首の電流値の平均値を加算した値を硬さを判定するときの電流値とする。
【0028】
(3)測定した電流値から、図6に示す電流値と床面硬さとの対応データに基づいて床面の硬さを選択し、取得する。なお、図6に示すデータは、歩行情報データベース41に格納されている。
アクチュエータに流れる電流から、床面硬さを取得できる原理について説明する。例えば、床面がガラスである場合と絨毯である場合を想定する。床面が絨毯と柔らかい場合、足裏を傾けたときの支軸となる足側面側は床面が変形して凹むことにより、足裏と床面との接触面積が増加する。一方、床面がガラスの場合は、床面の変形がほとんどないため、足裏と床面との接触面積は絨毯の場合と比べると小さい。この結果、足裏を傾ける姿勢を保持するためにアクチュエータに必要とされる電流は、絨毯のほうがガラスのときよりも小さくなる。従って、アクチュエータの電流値が高ければ高いほど硬い床面であり、低ければ低いほど柔らかい床面であると判断することができる。
【0029】
なお、床面の硬さ測定時の足形状は「ハの字」形状だけでなく、「逆ハの字」形状であっても良い。さらに、傾ける足の角度は、上述の5度に限られずロボット装置1が転倒しない限度において任意の角度で良いことは当然である。
【0030】
図3のステップS06において、歩行パラメータ決定部22は、取得した床面の硬さに基づいて、現在位置での歩行パラメータを決定する。歩行パラメータ決定部22は、図7に示す、床面の硬さと歩行パラメータとの対応データから歩行パラメータを決定する。ここで、図7に示す床面の硬さと歩行パラメータとの対応データは、歩行情報データベース41に格納されている。
【0031】
ステップS07において、決定した歩行パラメータに基づいて、歩行パターンを生成する。歩行パターンの生成は次の手順で行われる。
【0032】
(1)補正係数決定部23は、図8に示す、歩行パラメータと補正係数との対応データから補正係数を選択する。ここで、補正係数は、ロボット装置1の各関節を動作させるアクチュエータ毎に設定されている。
(2)基本歩行パターン算出部25は、図9に示す基本歩行パターン制御量データを抽出する。この基本歩行パターン制御量データは、床面の状態によらない制御量データであり、所定時間(歩行の1周期においてアクチュエータを制御する際の単位時刻)毎のアクチュエータの角度量で表される。ここで、基本歩行パターン制御量データはロボット装置1の各関節を動作させるアクチュエータ毎に設定されている。この基本歩行パターン制御量データは、歩行情報データベース41に格納されている。
【0033】
なお、本実施の形態における基本歩行パターンは、線形倒立振子モデルを基にした理論的な動歩行パターンであって、線形倒立振子モデルを基にして理論的に算出された各関節アクチュエータの所定時間毎の角度変化量を、時系列順に組み合わせることにより生成される歩行パターンのことである。
つまり、基本歩行パターンは以下で表される式(線形倒立振子の運動関係を示す運動方程式の解)に基づいて生成される。
なお、ここではロボットの重心の高さは変化しないものと仮定している。
【0034】
X(t)=X(0)・cosh(t/Tc)+Tc・X’(0)・sinh(t/Tc)
X’(t)=X(0)/{Tc・sinh(t/Tc)}+X’(0)・cosh(t/Tc)
Tc≡√(Z/G)
X(t):時刻tにおけるロボットのX軸方向の重心位置
X’(t):時刻tにおけるロボットのX軸方向の重心の速度
Z:ロボットの重心の高さ(定数)
G:重力加速度(定数)
Tc:ロボットの重心の高さと重力加速度によって決まる時定数
(3)歩行パターン生成部24は、選択した補正係数(図8)を対応する基本歩行パターンの制御量データ(図9)に掛けた値を新たな歩行パターンとする。これによって、床面の硬さに応じた歩行パターンを生成する。
【0035】
ステップS08において、行動制御部27は、生成した歩行パターンに従った歩行動作を指示する。ステップS09において、歩行制御量データ生成部37は、生成した歩行パターンに対してフィードバックゲイン生成部26が生成したフィードバックゲインを用いて次の所定時間における歩行動作用の歩行制御量データを生成し、行動制御部27は、生成した次の所定時間における歩行動作用の歩行制御量データに従った動作を指示して、歩行制御部28は、ロボット装置1の各関節部アクチュエータの動作を制御する。
【0036】
フィードバックゲイン生成部26は、今回のロボット装置1の歩行状態の測定値から次の所定時間における歩行動作時でのフィードバックゲインを次の手順で生成する。
ロボット装置に設けられた各センサ(ジャイロ、加速度、圧力)は、ロボットの歩行動作中の姿勢に関する時系列データを計測する。フィードバックゲイン生成部26は、歩行パターン生成部24が生成した現在の歩行パターンとこの測定データによる歩行状態とを比較して偏差を算出する。そして、この偏差がなくなるように制御用のフィードバックゲインを生成する。ここで生成されたフィードバックゲインは次の所定時間における歩行動作において使用される。
【0037】
図4のステップS10において、歩行結果判定部31が、歩行状態が良好であったか不良であったかを判定する。ロボット装置1が転倒した場合は当然不良であるが、転倒しないまでも歩行パターンが床面の硬さと適合しないため歩行状態が良くないと判断される場合がある。この判断方法としては、各センサの測定データから得られた歩行状態を正常な歩行状態と比較して、その乖離の程度が閾値以上である場合に歩行状態が良くないと判定することができる。
【0038】
ステップS11において、ロボット装置1が所定位置まで歩みを進めたときに、サンプリングデータ生成部29が、図10に示すように取得した床面の硬さ、取得した現在座標位置及び歩行の結果を環境情報として登録する。ここで、図10に示すサンプリングデータは、環境情報データベース42に格納されている。
【0039】
なお、上述の所定位置は、本実施の形態では60cm先の位置である。これは、ロボット装置1に設けられた赤外線測距センサ11の測定範囲が60cmであることに対応している。従って、現在位置として表される座標位置は、この測定範囲の領域を代表する値として把握することができる。
【0040】
図4のステップS12において、同一座標位置における床面の硬さ及び歩行の結果についてのデータが予定された繰返し数だけ収集されたかどうかを調べる。
ステップS12においてNoの場合、即ち、まだ所定の繰返し数だけデータが収集されていない場合は、図3のステップS02に戻り、環境情報作成動作を繰り返して実行する。
【0041】
なお、環境情報作成動作は連続して行う必要は無く、生活空間内の各部分領域についてタイミングを別にして作成すれば良い。従って、このような作成動作において、同一の座標位置での床面の硬さ及び歩行の結果のデータが得られたときに、そのデータをサンプリングデータとして登録すれば良い。
図10は、このようにしてサンプリングデータ生成部29によって集められたサンプリングデータを示す図である。図10に示すように、床面の硬さの測定結果が同じであるとは限らない。また歩行結果も床面の硬さに対応して常に同じであるとは限らない。これは、床面の硬さの測定結果にばらつきが生じたり、たまたま床面が濡れているなどの理由により床面が実際に変化したりすることによる。
【0042】
ステップS12においてYesの場合、即ち、所定の繰返し数だけデータが収集された場合は、サンプリングデータ集計部30が、これらの測定データから測定結果を算出して環境情報として登録する。
例えば、歩行結果が良(図10の「歩行結果」の欄が「○」)である回数が最も多い床面の硬さを測定結果として環境情報として登録する。また、異なる床面の硬さにおいて歩行結果が良である回数が同じ場合は、最初に歩行結果が最も多く量となった床面の硬さを測定結果として環境情報として登録する。
【0043】
図11は、サンプリングデータ集計部30が登録した位置座標と床面の硬さの対応データを示す図である。このデータは、繰返し床面の硬さの測定と歩行結果を積み重ねて得られたものであり、ロボット装置1による学習の結果であると見ることができる。なお、サンプリングデータ集計部30を、適宜のタイミングで起動することによりそれまでに蓄積したデータを集計して最新のデータを利用することができる。
図4のステップS15において、環境情報作成領域内を隈なく探索して環境情報を作成したかどうかを調べる。ここで、環境情報作成領域とは、環境情報データベース42内に存在する全環境画像に対応した生活空間内の領域のことである。ステップS15でYesの場合、即ち環境情報作成領域内の環境情報作成を完了している場合は本処理を終了する。ステップS15でNoの場合、即ち環境情報作成領域内に未探索の領域が存在する場合は、ステップS16において、その領域に移動する。移動する領域は、本実施においては、赤外線測距センサ11の測定結果により凹凸が存在しない領域であればランダムでよい。そして、図3のステップS02からの処理を実行する。
【0044】
次に、ロボット装置1の動作のうち学習歩行動作について説明する。
上述の環境情報作成処理において、ロボット装置1が歩行する領域について環境情報が作成された。そのため、ロボット装置1は、環境情報が作成されている領域においては、この環境情報に従った歩行動作を実行する。上述のように環境情報は、ロボット装置1による学習の結果作成されたものである。従って、環境情報に従った歩行動作を学習歩行と呼ぶ。
【0045】
図12は、ロボット装置1の学習歩行処理手順を示すフロー図である。図13は、ロボット装置1の自己位置同定処理手順を示すフロー図である。図2、図12、図13を参照しつつ学習歩行処理を説明する。
ロボット装置1が歩行動作を開始する場合、ロボット装置1は目的地まで図12のフローに示す学習歩行動作を繰り返して実行する。
【0046】
図12のステップS21において、ロボット装置1は現在自分がいる座標位置(自己位置)を同定する処理(図13)を実行する。なお、この自己位置同定処理は、ロボット装置1の自己位置同定部35が実行する。
【0047】
図13のステップS31において、ロボット装置1は、現在位置まで歩行してきたかどうかを判断する。すなわち、人の手により運搬されるなど、つまり、歩行しないでロボットが現在立っている位置まで移動した場合など学習歩行が継続していない場合を区別するためである。この判断は、例えば位置認識フラグ(不図示)を設けて判断するようにしても良い。この位置認識フラグは、自己位置が同定できていた位置から、ロボットが現在立っている位置まで歩行ができていればONになる。反対に、自己位置が同定できていた位置から、ロボットが現在立っている位置まで歩行しようとしたが、途中で歩行がうまくいかなかった場合には、OFFになる。また、ロボットが現在立っている位置まで歩行できたが、自己位置が同定できていない位置からの歩行であった場合や、人の手により運搬されるなどしてロボットが現在立っている位置まで移動した場合にもOFFになる。
【0048】
ステップS31でNoの場合、例えば、ロボット装置1が現在位置にユーザによって設置されて、歩行動作をこれから開始する場合は、ステップS32において、環境画像撮影部33は、カメラ10により周囲の画像を撮影する。そして、ステップS33において、撮影した環境画像と一致する環境画像が環境情報(図5)にあるかどうかを調べる。
【0049】
画像の一致は、例えば、テンプレートマッチング法を適用することができる。この処理は次の手順で実行することができる。(1)撮影した環境画像と環境画像との輝度値についてフーリエ変換を行う。(2)フーリエ変換後の2枚の画像についてスペクトル乗算をおこなって、その結果を逆フーリエ変換する。(3)逆フーリエ変換結果について相関係数を算出し、正規化処理した評価値を算出する。(4)最も高い評価値をもつ環境画像を一致した画像と判断する。
【0050】
このテンプレートマッチング法以外にも種々の画像処理手法を用いることができる。例えば、両画像のそれぞれの周波数分布の差を求めて判断しても良く、両画像の相関演算を行って判断しても良い。またパターンマッチングの手法を用いて判断しても良い。
さらに、撮影した画像の一部分を用いて比較することで処理の効率化を図っても良い。この処理は、画像同士の厳密な比較を行うのではなく、同じ環境の画像を特定することが目的であるため、このような簡略化した処理であっても所要の目的を達成し、効率化を図ることができる。
【0051】
ステップS34でYesの場合、すなわち環境情報にある環境画像と一致した場合は、ステップS35において、一致する環境画像に対応する位置座標を環境情報(図5)より抽出する。そして、ステップS36において、抽出した座標を自己位置の座標とする。
【0052】
一方、ステップS34でNoの場合、すなわち環境情報にある環境画像と一致しない場合は、ステップS38において、撮影した周囲の画像から障害物が無い方向へ移動または旋回して、ステップS32からの処理を実行する。
【0053】
ステップS31でYesの場合、すなわち、ロボット装置1が自己位置同定できていた位置から歩行動作を継続して現在位置にいる場合は、ステップS41において、前回の自己位置同定で同定した位置から、歩数、歩幅、旋回角の積算によって現在位置の座標を算出する。しかし、ここで算出した現在の位置座標は自己位置としては採用しない。積算により自己位置を算出することは誤差が大きくなるためである。
【0054】
そこで、ステップS42において、環境画像撮影部33は、カメラ10により周囲の画像を撮影する。そして、ステップS43において、算出した自己位置座標から所定の範囲内にある座標に対応する環境画像を環境情報(図5)から抽出する。ステップS44において、撮影した環境画像と一致する環境画像が抽出した環境画像にあるか否かを調べる。この処理は、ステップS34の処理と異なり対象とする環境画像を絞り込むため、効率的に処理することができる。なお、この画像の一致の判断は、上述のように画像の一部を用いて更に効率化した処理により行っても良い。
【0055】
ステップS45でYesの場合、すなわち環境情報にある環境画像と一致した場合は、ステップS46において、一致する環境画像に対応する座標を環境情報(図5)より抽出し、抽出した座標を自己位置の座標とする。
【0056】
一方、ステップS45でNoの場合、すなわち環境情報にある環境画像と一致しない場合は、ステップS48において、撮影した周囲の画像から障害物が無い方向へ移動または旋回して、ステップS31からの処理を実行する。
【0057】
図12に戻りステップS22において、床面硬さ決定部36は、自己位置同定部35が同定した自己位置での床面の硬さを環境情報(図11)より抽出する。そして、ステップS23〜S26において、床面の硬さに対応した歩行パターンに従って歩行動作を実行する。このステップS23〜S26の動作については、環境情報作成処理手順で説明した動作と同じであるため、その詳細の説明は省略する。
【0058】
ステップS27において、歩行結果を次の歩行にフィードバックできるように、図10に示すサンプリングデータとして登録する。このサンプリングデータの収集にはデータ処理の負荷がかかるため常に行うのではなく、適宜の間隔タイミングで実施するようにしても良い。また、学習歩行にサンプリングを実施する歩行モードを設けても良い。これによって、過去に収集した環境情報を更新して常に最新の環境を取り入れた学習歩行を実現することができる。
そして、ステップS28において、所定の位置まで歩行したら次の学習歩行動作に備えるために歩行を停止する。
【0059】
以上説明した実施の形態によれば、予め設定しておいた様々な床面の状態にそれぞれ対応付けられた複数の歩行パラメータの中から、自己位置での床面の状態に対応する最適な歩行パラメータを選択することにより、床面の状態が大きく異なるような領域や床面の状態が大きく変化するような領域でも安定した移動が可能となる。
【0060】
また予め設定しておいた様々な床面の状態にそれぞれ対応付けられた複数の歩行パラメータの中から、自己位置での床面の状態に対応する最適な歩行パラメータを選択することにより歩行制御を行うため、時々刻々と変化する種々のセンサ情報を都度処理して歩容を随時補正するような歩行制御方法とは異なり、各種センサ情報や高度な及び/又は膨大な演算処理が不要となる。従って、演算処理装置への負荷が軽減され演算処理装置の能力の多くを他のタスクを実行するために使うことができ、さらに、高価な演算処理装置や各種センサが不要となり軽量かつ安価なロボット装置を構成することができる。
【0061】
また歩行中に床面の状態を計測する必要は無く、現在位置に対応して設けられた床面状態のデータを選択して歩行の制御を実行するため、汎用的な演算で良く演算処理装置への負荷を軽減することができ、また、汎用的なセンサでその種類や数も少なくて済むため、軽量かつ安価なロボット装置を構成することができる。
【0062】
また床面の硬さを床面の状態として採用している。床面の硬さは、足首関節ロール軸のアクチュエータの電流から求める簡便な方式を採用し、従来のような複数のセンサから得られた複数のパラメータを用いる必要が無いため、軽量かつ安価なロボット装置を構成することができる。
【0063】
さらに、周囲の環境画像との比較で自己位置を同定し、その自己位置に対応する床面の硬さを抽出する。このため、自己位置の精度も従来と比べると低い値であっても良い。従って、自己位置を算出するための高度な演算処理が不要となり演算処理装置への負荷を軽減することができ、安価なロボット装置を構成することができる。
【0064】
なお、上述の各実施の形態で説明した機能は、ハードウェアを用いて構成するに留まらず、ソフトウェアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウェア、ハードウェアのいずれかを選択して構成するものであっても良い。
【0065】
尚、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【0066】
1…ロボット装置、10…カメラ、11…赤外線測距センサ、12…ジャイロセンサ、13…加速度センサ、14…圧力センサ、21…床面状態取得部、22…歩行パラメータ決定部、23…補正係数決定部、24…歩行パターン生成部、25…基本歩行パターン算出部、26…フィードバックゲイン生成部、27…行動制御部、28…歩行制御部、29…サンプリングデータ生成部、30…サンプリングデータ集計部、31…歩行結果判定部、32…現在位置決定部、33…環境画像撮影部、34…対応データ生成部、35…自己位置同定部、36…床面硬さ決定部、37…歩行制御量データ生成部、40…記憶装置、41…歩行情報データベース、42…環境情報データベース。
【特許請求の範囲】
【請求項1】
所定領域内を2足歩行する学習歩行ロボット装置において、
前記所定領域内のそれぞれの位置における床面の硬さを表す硬さ指標を測定する硬さ指標測定手段と、
前記それぞれの位置を表す位置情報と前記硬さ指標とを対応付けて硬さ情報として保存する硬さ情報記憶手段と、
前記所定領域内の前記学習歩行ロボット装置の現在位置を同定する現在位置同定手段と、
同定された現在位置における床面の硬さ指標を前記硬さ情報から決定する硬さ決定手段と、
決定した床面の硬さ指標に基づいて歩行形態を選択して歩行動作を制御する制御手段とを有し、
前記硬さ指標測定手段は、前記学習歩行ロボット装置が直立した姿勢を保持したまま足首の関節ロール軸アクチュエータを駆動したときの前記アクチュエータに流れる電流値に基づいて、前記アクチュエータに流れる電流値が大きいほど前記床面が硬いとする硬さ指標を対応付けることを特徴とする学習歩行ロボット装置。
【請求項2】
前記所定領域内のそれぞれの位置での周囲の画像を第1の環境画像として取得する環境画像取得手段と、
前記所定領域内の前記学習歩行ロボット装置の現在位置での周囲の画像を第2の環境画像として取得する現在画像取得手段とを更に備え、
前記現在位置同定手段は、前記第2の環境画像と前記第1の環境画像とのマッチング処理結果から現在位置を同定することを特徴とする請求項1に記載の学習歩行ロボット装置。
【請求項3】
前記現在位置同定手段は、学習歩行ロボット装置の歩数、歩幅、旋回角の積分値から求めた現在位置から所定範囲にある位置での前記第1の環境画像と前記第2の環境画像とのマッチング処理結果から現在位置を同定することを特徴とする請求項2に記載の学習歩行ロボット装置。
【請求項4】
前記選択された歩行形態での歩行状態の良否を判定する良否判定手段と、
前記それぞれの位置における硬さ指標と、この硬さ指標に基づいて選択された歩行形態での歩行状態の良否との実績値を収集して蓄積するサンプリング手段と、
前記サンプリング手段が蓄積した実績値から、それぞれの位置において、歩行状態が良となるときの硬さ指標を抽出するサンプリングデータ集計手段とを更に備え、
前記硬さ情報記憶手段は、前記それぞれの位置を表す位置情報と前記サンプリングデータ集計手段により抽出された硬さ指標とを対応付けて硬さ情報として保存することを特徴とする請求項1に記載の学習歩行ロボット装置。
【請求項5】
所定領域内を2足歩行する学習歩行ロボット装置を制御するプログラムにおいて、
前記所定領域内のそれぞれの位置における床面の硬さを表す硬さ指標を測定し、
前記それぞれの位置を表す位置情報と前記硬さ指標とを対応付けて硬さ情報として保存し、
前記所定領域内の前記学習歩行ロボット装置の現在位置を同定し、
同定された現在位置における床面の硬さ指標を前記硬さ情報から決定し、
決定した床面の硬さ指標に基づいて歩行形態を選択して歩行動作を制御する動作を前記学習歩行ロボット装置に搭載されたコンピュータに実行させ、
前記硬さ指標の測定では、前記学習歩行ロボット装置が直立した姿勢を保持したまま足首の関節ロール軸アクチュエータを駆動したときの前記アクチュエータに流れる電流値に基づいて、前記アクチュエータに流れる電流値が大きいほど前記床面が硬いとする硬さ指標を対応付けることを特徴とする制御プログラム。
【請求項1】
所定領域内を2足歩行する学習歩行ロボット装置において、
前記所定領域内のそれぞれの位置における床面の硬さを表す硬さ指標を測定する硬さ指標測定手段と、
前記それぞれの位置を表す位置情報と前記硬さ指標とを対応付けて硬さ情報として保存する硬さ情報記憶手段と、
前記所定領域内の前記学習歩行ロボット装置の現在位置を同定する現在位置同定手段と、
同定された現在位置における床面の硬さ指標を前記硬さ情報から決定する硬さ決定手段と、
決定した床面の硬さ指標に基づいて歩行形態を選択して歩行動作を制御する制御手段とを有し、
前記硬さ指標測定手段は、前記学習歩行ロボット装置が直立した姿勢を保持したまま足首の関節ロール軸アクチュエータを駆動したときの前記アクチュエータに流れる電流値に基づいて、前記アクチュエータに流れる電流値が大きいほど前記床面が硬いとする硬さ指標を対応付けることを特徴とする学習歩行ロボット装置。
【請求項2】
前記所定領域内のそれぞれの位置での周囲の画像を第1の環境画像として取得する環境画像取得手段と、
前記所定領域内の前記学習歩行ロボット装置の現在位置での周囲の画像を第2の環境画像として取得する現在画像取得手段とを更に備え、
前記現在位置同定手段は、前記第2の環境画像と前記第1の環境画像とのマッチング処理結果から現在位置を同定することを特徴とする請求項1に記載の学習歩行ロボット装置。
【請求項3】
前記現在位置同定手段は、学習歩行ロボット装置の歩数、歩幅、旋回角の積分値から求めた現在位置から所定範囲にある位置での前記第1の環境画像と前記第2の環境画像とのマッチング処理結果から現在位置を同定することを特徴とする請求項2に記載の学習歩行ロボット装置。
【請求項4】
前記選択された歩行形態での歩行状態の良否を判定する良否判定手段と、
前記それぞれの位置における硬さ指標と、この硬さ指標に基づいて選択された歩行形態での歩行状態の良否との実績値を収集して蓄積するサンプリング手段と、
前記サンプリング手段が蓄積した実績値から、それぞれの位置において、歩行状態が良となるときの硬さ指標を抽出するサンプリングデータ集計手段とを更に備え、
前記硬さ情報記憶手段は、前記それぞれの位置を表す位置情報と前記サンプリングデータ集計手段により抽出された硬さ指標とを対応付けて硬さ情報として保存することを特徴とする請求項1に記載の学習歩行ロボット装置。
【請求項5】
所定領域内を2足歩行する学習歩行ロボット装置を制御するプログラムにおいて、
前記所定領域内のそれぞれの位置における床面の硬さを表す硬さ指標を測定し、
前記それぞれの位置を表す位置情報と前記硬さ指標とを対応付けて硬さ情報として保存し、
前記所定領域内の前記学習歩行ロボット装置の現在位置を同定し、
同定された現在位置における床面の硬さ指標を前記硬さ情報から決定し、
決定した床面の硬さ指標に基づいて歩行形態を選択して歩行動作を制御する動作を前記学習歩行ロボット装置に搭載されたコンピュータに実行させ、
前記硬さ指標の測定では、前記学習歩行ロボット装置が直立した姿勢を保持したまま足首の関節ロール軸アクチュエータを駆動したときの前記アクチュエータに流れる電流値に基づいて、前記アクチュエータに流れる電流値が大きいほど前記床面が硬いとする硬さ指標を対応付けることを特徴とする制御プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2012−115988(P2012−115988A)
【公開日】平成24年6月21日(2012.6.21)
【国際特許分類】
【出願番号】特願2012−31485(P2012−31485)
【出願日】平成24年2月16日(2012.2.16)
【分割の表示】特願2010−58137(P2010−58137)の分割
【原出願日】平成22年3月15日(2010.3.15)
【出願人】(593059773)富士ソフト株式会社 (28)
【Fターム(参考)】
【公開日】平成24年6月21日(2012.6.21)
【国際特許分類】
【出願日】平成24年2月16日(2012.2.16)
【分割の表示】特願2010−58137(P2010−58137)の分割
【原出願日】平成22年3月15日(2010.3.15)
【出願人】(593059773)富士ソフト株式会社 (28)
【Fターム(参考)】
[ Back to top ]