以下に、本発明の一実施形態に係る移動体の対象者同行方法及び移動体用対象者同行装置の一例である歩行追跡型移動体及びその移動体を使用しての対象者歩行追跡方法及び装置を図1〜図27に基づいて説明する。なお、図面において同じ部品については同じ参照符号を付している。
図1Aは本実施形態である歩行追跡装置と、歩行追跡装置を搭載した移動体の概略構成を示すブロック図、図1Bは本実施形態で用いる座標系であって、101は追跡される対象者であり、102は対象者101の歩行状態を示す矢印であり、301は移動体である。図2は本実施形態である歩行追跡装置が搭載された移動体による対象者歩行追跡方法の処理ステップに係るフローチャート、図3〜図7は図2の各ステップについての詳細のフローチャート、さらに図8,図9は歩行開始と歩行の予測についてのフローチャート、図3,図10〜図27は本実施形態における自動歩行追跡の具体例を説明するための説明図、図28,図29は本発明の他の実施形態における対象者の歩行速度と方向との決定方法の説明図である。
まず、図1Aに基づき、歩行追跡型移動体の一例である、対象者(徘徊老人など)を追跡する追跡装置の構成について説明する。
103は対象者測定装置であって、時間t=t0(例えば、現在)における歩行状態102を検知するカメラなどの画像取り込み装置103aと取り込まれた画像を処理する画像処理部103bとにより構成されたり、対象者101の両足に取り付けられた右足、左足の情報を送信する信号送信機からの信号を受信する信号受信機としてのセンサ部分により構成されたりして、対象者101を特定若しくは認識する情報や歩行状態の情報などを測定するものである。
105は歩行状態取得部であって、対象者測定装置103から入力される時間t=t0における対象者データ(例えば、t=t0時のカメラ103aで取得した対象者101の静止画像や信号受信機で取得した信号)106を取得して、時間t=t0の歩行状態データ(例えば、対象者データ106における画像に係るデータからマッチングなどの処理によって検出された対象者101の踵以下の足における重心座標や信号受信機で取得した信号から三角測量などの処理によって得られた位置データ)108を算出するものである。なお、歩行状態データ108には、対象者101の歩幅、歩行周期などの歩行の特徴が含まれてもよい。
107は歩行状態記憶部であって、歩行状態取得部105にて算出された時間t=t0及び時間t=t0より前の時間t=t−1(例えば、過去)における歩行状態データ108を記憶するものである。
109は歩行状態判断部であって、歩行状態取得部105で算出された時間t=t0における歩行状態データ108と、歩行状態記憶部107で記憶された時間t=t0より前の時間t=t−1における歩行状態データ110とを取得するものであり、当該歩行状態判断部109では、時間t=t0における歩行状態データ108と、時間t=t−1(t0>t−1)における歩行状態データ110とに基づき、対象者101の時間t=t0における歩行ベクトル(速度と角度)(移動体移動用ベクトル又は前記移動体の移動方向)111を算出する。
112は対象者記憶部であって、対象者測定装置103から時間t=t0における対象者データ106、又は歩行状態取得部105で算出された時間t=t0における対象者101の足データ(例えば、対象者データ106からマッチングなどの処理によって検出された対象者101の踵の静止画像や信号受信機で取得した信号)113の少なくともいずれか一方を記憶するものである。
114は対象者判断部であって、対象者測定装置103から時間t=t0における対象者データ106と、歩行状態取得部105で算出された時間t=t0における対象者101の足データ113との少なくともいずれか一方と、対象者記憶部112に記憶された時間t=t−1における対象者記憶データ115を取得するものであり、対象者記憶データ115から時間t=t0における対象者確認データ(例えば、対象者データ106あるいは足データ113からパターンマッチングなどの処理によって判断された対象者データ106あるいは足データ113の正誤データ)116を算出する。なお、対象者判断部114は、後述する対象者特定処理のとき、対象者101の認識又は特定する情報の確認や判断などの処理を行う機能をも有している。
117は移動命令部であって、歩行状態判断部109からの時間t=t0における歩行ベクトル111と、対象者判断部114からの時間t=t0における対象者確認データ116とによって、移動命令118を算出するものである。
901は、対象者特定情報や歩行状態の情報などを入力するキーやマウスや音声入力などの入力装置である。
902は、出力装置の一例として機能し、対象者特定情報や歩行状態の情報などを表示する液晶表示装置などの表示装置である。
前記対象者測定装置103、カメラ103a、画像処理部103b、歩行状態取得部105、歩行状態判断部109、歩行状態記憶部107、移動命令部117、対象者記憶部112、対象者判断部114、入力装置901、表示装置902とにより、追跡装置1000を構成しており、以下に説明する動作を行うものである。
119は、追跡装置1000を搭載する歩行追跡型移動体301の駆動部であって、追跡装置1000の移動命令部117から取得した移動命令118を実行して、以下に説明する動作行うものであって、例えば、後述するように追跡用の歩行追跡型移動体301を駆動するものである。移動体301は、具体的には、一対の走行用車輪119aと、一対の走行用車輪119aをそれぞれ正逆回転駆動するモータなどの一対の駆動装置119bと、一対の駆動装置119bの駆動を移動命令118に基づき制御する一対のドライバ119cを有している。なお、走行用車輪119aは一対に限られるものではなく、3個又は4個などの任意の個数でもよく、その個数に応じて、適宜、駆動装置119bとドライバ119cとを設けるようにすればよい。
なお、歩行状態検知手段は、対象者101を判別する対象者判断部114と、対象者101の両足302,303の位置を検知する両足位置検知手段(一例として、対象者測定装置103など)などより構成するものである。歩行速度/経路検知手段は、一例として歩行状態判断部109などより構成する。制御手段は、一例として歩行状態取得部105と移動命令部117などより構成する。
次に、対象者101と移動体301の座標は、移動体301を基準とした図1Bに示される座標系によって示されるとする。ここで、対象者101と移動体301はXY平面上を移動し、位置座標Or(0,0)を移動体301の位置とし、位置座標OhR0(XR0,YR0)は、時間t=t0の対象者101の右足302の座標、位置座標OhL0(XL0,YL0)は、時間t=t0の対象者101の左足303の座標とする。
さらに、以下の説明では、対象者101は、図10などに示すように、時間t=t0では、対象者101の左足303が右足302より一歩前に出た状態であるとする。よって、時間t0より後の時間t=t1では、対象者101の左足303の位置座標OhL0(XL0,YL0)はそのままで、右足302を一歩前に正常に踏み出したとき、踏み出した後の右足302の位置座標をOhR1(XR1,YR1)とする。さらに、時間t1より後の時間t=t2では、対象者101の右足302の位置座標OhR1(XR1,YR1)はそのままで、左足303を一歩前に正常に踏み出したとき、踏み出した後の左足303の位置座標をOhL1(XL1,YL1)とする。
さらに、図2のフローチャートに基づき本実施形態における追跡方法に係る動作ステップについて、概略を説明した後、それぞれの動作ステップの詳細について説明する。この動作ステップは、原則として、対象者の特定処理:ステップS100、対象者の歩行状態データ取得処理:ステップS200、対象者の確認処理:ステップS300、対象者の歩行速度と角度算出処理:ステップS400、対象者の追跡処理:ステップS500の順に行われる。
(対象者の特定処理:ステップS100)
図1Aにおける対象者101を、移動体301に搭載されかつ図1Aに示す構成の追跡装置1000により、認識し特定して、特定された対象者データ106を対象者記憶部112に記憶させるとともに、歩行状態取得部105及び対象者判断部114にそれぞれ入力する。ここで、対象者101を認識する方法として、あらかじめ、追跡装置1000に、対象者101の靴などの特徴を、カメラ103aなどを用いて画像入力して記憶してもよい。
(対象者の歩行状態データ取得処理:ステップS200)
対象者101の歩行状態102の情報を対象者測定装置103にて計測し、対象者データ106の一部として歩行状態取得部105に入力され、歩行状態取得部105で歩行状態データ108を算出して対象者記憶部112に記憶するとともに歩行状態判断部109に入力する。同様に、対象者101の歩行状態データ108は、対象者データ106の一部として、歩行状態記憶部107にも入力される。
(対象者の確認処理:ステップS300)
対象者判断部114によって、時間t=t0の対象者データ106と、歩行状態取得部105で算出された時間t=t0における対象者101の足データ113との少なくともいずれか一方を記憶し、この記憶されたデータと、対象者記憶部112で記憶された時間t=t−1における対象者記憶データ115とを比較して、時間t=t0における対象者確認データ116を出力する。この出力された対象者確認データ116によって、現在認識している対象者101が、先に計測した対象者101に間違いないか確認する。ただし、対象者記憶データ115は必ず、対象者判断部114で比較する時間t=t0における対象者データ106、又は時間t=t0の対象者の足データ113、又は両方のデータと同じ種類のデータであるとする。
(対象者の歩行速度と角度算出処理:ステップS400)
歩行状態判断部109によって、時間t=t0における歩行状態データ108と、歩行状態記憶部107で記憶した時間t=t−1における歩行状態データ110とを比較し、歩行ベクトル111(速度と角度)を求める。ここで、歩行状態データ108に含まれる歩幅は、あらかじめ、追跡装置1000に、対象者101又は一般的な人の歩幅の平均値を記憶させてもよい。又は、対象者101の認識時(ステップS100)に、対象者101の身長の情報から歩幅を算出してもよい。なお、対象者101の身長の情報は画像情報から算出したり、直接、追跡装置1000に教示してもよい。
(対象者の追跡処理:ステップS500)
時間t=t0における対象者確認データ116と歩行ベクトル111とにより、追跡装置1000の移動命令部117から移動命令118を移動体301の駆動部119に伝え、後述するように移動体301が、対象者101と所定の距離(最小距離)を保ちながら、対象者101を追跡するように移動体301を移動制御する。移動体301の移動目標となる位置は、例えば、対象者101の右足302の位置座標と左足303の位置座標との中点の位置座標とする。
以下に、上述したステップS100〜S500のそれぞれについて、詳細に説明する。
ここで、図3は対象者の特定処理:ステップS100のフローチャート、図4は対象者の歩行状態データ取得処理:ステップS200のフローチャート、図5は対象者の確認処理:ステップS300のフローチャート、図6は対象者の歩行速度と角度算出処理:ステップS400のフローチャート、図7は対象者の追跡処理:ステップS500のフローチャートである。
また、以下の処理においては、正常状態での対象者101の歩行を以下のように仮定する。すなわち、対象者101の左足303が右足302よりも一歩前に出た状態を歩行開始状態とし、この状態から歩行を開始し、歩行開始前を時間t=t0とする。そして、対象者101が左足303を軸にして右足302を一歩前に進めて、時間t=t1のときに着地する。このとき、時間t=t0のときの右足302の位置から、時間t=t0’のときに右足302を上げて、時間t=t0’’のときに右足302を前の方に出し、時間t=t1のときに右足302が着地する。次いで、対象者101が右足302を軸にして左足303を一歩前に進めて、時間t=t2のときに着地する。
図10は、時間t=t0のときの歩行開始状態(対象者101の左足303が右足302よりも一歩前に出た状態)の対象者101と、そのときの両足302,303の2次元位置座標とを対応させて示す説明図である。ただし、図中、三角形の印は左足303の着地した位置を示し、丸の印は右足302の着地した位置を示す。他の図でも同様である。図13は、時間t=t0のときに、時間t=t1のときの正常歩行状態の歩行予想範囲を図10の上に重ねて示す説明図である。図17は時間t=t1のときの正常歩行状態(対象者101の右足302が左足303よりも一歩前に出た状態)の対象者101とそのときの両足302,303の2次元位置座標とを対応させて示す説明図である。図20は、時間t=t2のときの正常歩行状態(対象者101の左足303が右足302よりも一歩前に出た状態)の対象者101と、そのときの両足302,303の2次元位置座標とを対応させて示す説明図である。
さらに、図11は、時間t=t0のときの歩行開始状態(図10の状態)で移動体301が対象者101を追跡しようとしている(移動体301は、まだ移動停止状態となっている)一例を示す説明図である。図19は、時間t=t1のときの正常歩行状態(図17の状態)で移動体301が対象者101を追跡しようとしている(移動体301は、まだ移動停止状態となっている)一例を示す説明図である。図21は、時間t=t2のときの正常歩行状態(図20の状態)で移動体301が対象者101の追跡を開始して移動している一例を示す説明図である。
また、図12は、時間t=t0のときの歩行開始状態(図10の状態、すなわち両足は着地している状態)で、カメラ103aにより取得される画像880とその画像880の中で注目する画像領域890とを示す図である。ただし、画像880中の点線の四角形の枠881は、移動体301と対象者101との距離を測定するために、測定後に画像上に付加したものである。他の図でも同様である。図14,図15は、時間t=t0’のとき(対象者101の右足302は地面から上がって浮いている状態)に、時間t=t1のときの正常歩行状態の歩行予想範囲を図12に重ねて示す図である。ただし、図15は、図14と同じ状態であるが、歩行予想範囲の全部を明示した場合の図である。図16は、時間t=t0’’のとき(右足は着地前で浮いている状態)に、時間t=t1のときの正常歩行状態の歩行予想範囲を図12に重ねて示す図である。図18は、時間t=t1のとき(図17の状態すなわち右足が着地した状態)の正常歩行状態でカメラ103aにより取得される画像880とその画像880の中で注目する画像領域890とを示す図である。ここで、t0<t0’<t0’’<t1とする。また、Sr0は、移動体301の移動目標とし、ここでは、右足302の位置座標OhR0と左足303の位置座標OhL0の中点の位置座標としてもよい。
(対象者特定処理:ステップS100)
対象者101の特定処理のステップS100を図3のフローチャート並びに図10,図11,図12を基に詳細に説明する。
まず、移動体301を随行させる対象者101のデータを追跡装置1000の対象者記憶部112と歩行状態取得部105と対象者判断部114とに、対象者測定装置103又はキーやマウスや音声入力などの入力装置901から入力する(ステップS101)。このとき、移動体301に搭載された追跡装置1000の対象者測定装置103が、例えばセンサ部分が画像入力用のカメラ103aである場合には、カメラ103aで対象者101を認識できるように(カメラ103aの初期設定した画像上の基準範囲内に対象者101が位置するように)するため、図11に示すように、移動体301の正面に対象者101が位置していることが必要である。
このため、対象者101が移動体301の正面以外に位置している場合には、対象者101が移動体301の正面に移動するか、又は、移動体301が移動して対象者101が移動体301の正面に位置するようにしてもよい。ここで、基準範囲とは、2次元座標への画像の画素座標を変換した際に、定められた座標になる範囲(例えば、図12の注目する画像範囲890)である。
対象者測定装置103のカメラ103aから入力される対象者101のデータの例としては、図12に示されるように、対象者101の全身又は下半身の画像データである。また、これとは別に、入力装置901から入力される対象者101のデータの例としては、本人が識別できる情報であって、対象者101の身体的特徴(顔,体型,靴のサイズなど)、靴や服装の特徴(靴の色や大きさや形など、服装の色や大きさや形など)、歩行状態のデータ(歩幅など)などがある。これらのデータは、追跡装置1000の対象者記憶部112内、又は対象者記憶部112外のデータベースに予め記憶しておき、そのデータベースからこれらのデータを読み出して使用するようにしてもよい。
入力されたデータにより対象者101が特定できたか否かを、対象者判断部114により判断する(ステップS102)。すなわち、データが不足して対象者101が特定できなかった場合には、対象者が特定できないことを表示装置902で表示又は警告音を発するなどして通知した後(ステップS105)、ステップS101に戻る。
ステップS102で対象者101が特定できた場合には、特定できた対象者101を表示装置902に表示する(ステップS103)。
次いで、対象者101自身により、表示装置902に表示された情報を確認したか否かを、対象者判断部114により判断する(ステップS104)。対象者101が、表示装置902に表示された情報を確認した場合(例えば、確認した旨の音声入力又はキー入力などの入力装置901からの入力が所定時間内に行われた場合)には、対象者101の歩行状態データ取得処理(ステップS200)へ進む。対象者101が、表示された情報を確認しなかった場合には、ステップS101に戻って、再度、対象者101のデータ入力を行う。この確認作業のとき、対象者101が、表示装置902に表示された情報を入力装置901から訂正するようにしてもよい。
(対象者の歩行状態データ取得処理:ステップS200)
対象者101の歩行状態データ取得処理のステップS200を図4のフローチャート並びに図13などを基に詳細に説明する。
対象者101の歩行状態102の情報を対象者測定装置103にて計測する(ステップS201)。
次いで、ステップS201で計測された歩行状態102の情報を、対象者データ106の一部として歩行状態取得部105と対象者記憶部112と対象者判断部114とにそれぞれ入力する(ステップS202)。ここで、入力されるデータの例としては、対象者101の歩行状態の画像データ,対象者101の両足(踝より下)の位置情報,歩幅データなどである。
次いで、ステップS202で歩行状態取得部105に入力されたデータに基づき、歩行状態取得部105が歩行状態データ108を算出して、算出された歩行状態データ108が、対象者記憶部112に記憶されるとともに歩行状態判断部109に入力される(ステップS203)。ここで、歩行状態データ108の例としては、対象者101の踵以下の足における重心座標であり、この他、対象者101の歩幅,歩行周期などの歩行の特徴が含まれてもよい。
次いで、対象者101の歩幅のデータ(もし、対象者101の歩幅のデータが無い場合には、一般的な人の歩幅データ)を基に、歩行状態取得部105により、対象者101の歩行予想範囲601を算出する(ステップS204)。歩行予想範囲601は、予め追跡装置1000に設定した歩幅のデータより、対象者101の軸足の座標を中心に歩幅から、(歩幅×1.2≦半径R≦(歩幅+靴のサイズ)×1.2)の式で算出された半径Rを持ち、かつ図13に示されるように、軸足OhL0を通り、軸足側と反対方向に長さRである直線OhR0OhR1に垂直な線分(図13では線分OhL0Fs)を基準とする100度から120度範囲の角度の扇形の範囲でもよい。
このような範囲内ならば、正常な歩行動作を行うときには、ほとんど足がその範囲内に着地することになる。すなわち、ここでいう、歩行予想範囲とは、対象者101が正常な歩行動作を行うときに、ほとんどの場合、足がその範囲内に着地する範囲である。なお、対象者101が、正常な歩行動作を行おうとしていても、常に、よろける傾向がある場合には、それを考慮して、扇形の範囲の角度をより広く取ったり、半径を大きめに設定すればよい。
なお、図13,図14,図15,図16,図17の歩行予想範囲601は、時間t=t0の両足302,303の位置座標OhR0,OhL0から予想した時間t=t1のときの右足302の位置座標OhR1の予想範囲であり、図19,図20,図21の歩行予想範囲602は、時間t=t1の両足302,303の位置座標OhR1,OhL0から予想した時間t=t2のときの左足303の位置座標OhL1の予想範囲である。この歩行予想範囲601,602は、現在(最新の時間:例えば時間t=t0)の軸足の位置とその軸足の歩行一歩手前の過去(例えば時間t=t−1)のときの位置とを結んだ直線と大略直角になり、かつ軸足の位置から対象者101の体の内側方向に下ろした半直線を基準とした180度以下の対象者101の歩幅である半径Rの扇形としている。
なお、例えば、カメラから取得された画像上に障害物が検知されたりするなど、対象者101の突発的な動きが生じる予想ができる場合には、そのとき予想する歩行予想範囲の角度は、一時的に、180度に変更するようにしてもよい。ここで、対象者101の突発的な動きが生じる予想ができる場合としては、障害物が移動物体である場合、又は対象者101が障害物に気がついていない場合が考えられる。一般に、対象者101の突発的な動きを予想するのは困難であるため、歩行予想範囲の角度を大きくするのが好ましい。角度を変えずに、歩行予想範囲を半径方向に大きくするのは、移動体301が急加速し、対象者101に衝突するなどの恐れがあるため好ましくない。
また、足が不自由な身体障害者など、健常者と歩行状態の違いがある場合など、頻繁に突発的な動きなどにより歩行予想範囲外に足が着地すると頻繁に認識される場合には、上述した歩行予想範囲の基に追跡動作を行う健常者用のモードの他に、健常者用のモードの歩行予想範囲よりも大きな範囲、又は大きな角度の歩行予想範囲の基に追跡動作を行う非健常者用のモードを歩行状態記憶部107などに記憶して、入力装置などからの入力により、又は歩行予想範囲外に足が着地する回数が所定回数を超えたとの履歴情報を基に、前記モードの切り換えを可能として、対象者101に、より適した歩行予想範囲を設定することもできる。
なお、扇形の角度は(90≦∠FsOhL0Fe≦180(度))の式で算出され、また歩幅の設定方法は、例えば、取得した対象者101のデータから身長を取り出し、(身長×0.37≦歩幅≦身長×0.45)の式から算出してもよい。なお、図13において、610は、対象者101の左足303を中心とした対象者101の前側に位置し、かつ右足302の移動前と移動後の位置座標を結ぶ直線OhR0OhR1と直交し、かつ左足303の位置座標を通過する直線(線分OhL0Fs沿いの直線)を含む半円形の最大歩行予想範囲である。この最大歩行予想範囲610内に前記扇形の歩行予想範囲601は入っている。
身長×0.37の歩幅は、普通に歩行するときの歩幅であり、身長×0.45の歩幅は、普通より早めにウォーキングするときの歩幅である。
次いで、図8で後述するように、対象者101が、所定時間内に、一歩、踏み出したか否かを判断する(ステップS205)。具体的には、対象者101の歩行状態102の情報を対象者測定装置103にて計測して、歩行状態取得部105で、対象者101のいずれかの足の踵の位置が変わっているか否かを判断すればよい。ステップS205で対象者101が所定時間内に一歩踏み出さなかったと判断された場合には、歩行する意志は無いものとみなして、ステップS201又はステップS203に戻る。すなわち、計測からやり直すときには、ステップS201に戻り、計測はそのままで演算をやり直すときにはステップS203に戻る。
ステップS205で対象者101が所定時間内に一歩踏み出したと判断された場合には、踏み出した足の位置が、歩行予想範囲601内であったか否かを判断する(ステップS206)。ステップS206で踏み出した足の位置が歩行予想範囲601内で無いと判断された場合には、歩幅又は角度などの修正を歩行状態取得部105により行った後(ステップS212)、ステップS201又はステップS203に戻る。すなわち、計測からやり直すときには、ステップS201に戻り、計測はそのままで演算をやり直すときにはステップS203に戻る。ただし、歩幅又は角度などの修正を歩行状態取得部105により行う代わりに、後述する図9のステップS809及びステップS810のように、対象者101はバランスを崩したとみなして、移動体301の移動を停止させるようにしてもよい。
ステップS206で踏み出した足の位置が歩行予想範囲601内であると判断された場合には、対象者101と移動体301との間の距離を対象者測定装置103で計測して、当該距離が追随開始距離(例えば1m)を超えたか否かを移動命令部117で判断する(ステップS207)。
ステップS207で当該距離が追随開始距離を超えていないと判断された場合には、既に追随を開始していたか(例えば、速度が0でない歩行ベクトル111が既に出力されているか)否かを移動命令部117により判断する(ステップS210)。ステップS210で既に追随を開始していたと判断された場合には、移動体301が対象者101に近づき過ぎたものとして、移動体301の移動(追随動作)を停止して(ステップS211)、一連の処理を終了する。
ステップS210で既に追随を開始していなかったと判断された場合には、ステップS201又はステップS203に戻る。すなわち、計測からやり直すときには、ステップS201に戻り、計測はそのままで演算をやり直すときにはステップS203に戻る。
ステップS207で当該距離が追随開始距離を超えていると判断された場合には、歩行状態記憶部107に記憶された歩行状態データ108に基づき対象者101が歩行開始から2歩以上歩行したか否かを判断する(ステップS208)。ステップS208で歩行開始から2歩以上歩行していなかったと判断された場合には、そのまま、一連の処理を終了する。
ステップS208で歩行開始から2歩以上歩行していたと判断された場合には、そのときまでに記憶された歩幅データに基づき、歩行状態取得部105により、歩幅の修正を行ったのち(ステップS209)、対象者101の確認処理(ステップS300)へ進む。これは、歩行開始から2歩以上歩行していれば、歩幅を平均化することができるためである。
ここで、ステップS205の対象者101が、所定時間内に、一歩、踏み出したか否かを判断する処理、言い換えれば、歩行開始の認識処理を、図8を用いて、詳しく説明する。
例えば、センサ部分が画像入力用のカメラ103aであった場合についての歩行開始の認識方法を、図8を用いて説明する。
まず、対象者測定装置103において、カメラ103aで取得して画像処理部103bで画像処理された画像から対象者101の両足を歩行状態取得部105でマッチング処理を行う(ステップS701)。マッチングの基準となる対象者101の両足の画像は予めカメラ103aで取得しておく。
次いで、マッチングによりトラッキングした両足の画像上の重心座標を歩行状態取得部105で取得する(ステップS702)。
さらに、その重心座標を、図1Bで説明した移動体301を基準とした2次元座標上へ歩行状態取得部105で変換する(ステップS703)。
次いで、歩行状態取得部105で、2次元座標上の対象者101の両足のうちの、対象者101の右側の足の重心座標をOhR0(XR0,YR0)、左側の足の重心座標をOhL0(XL0,YL0)とする(ステップS704)。ただし、対象者101の向きによって、左右は反対となるので、対象者101が移動体301と同一方向を向いている状態(移動体301の正面が対象者101の背中に向いている状態)で、かつ両足を認識できる対象者101の状態と移動体301の位置関係を、図3の対象者特定処理が行える関係とする。
次に、両足のいずれか片方の座標が0.1秒以内に変化するか否かを、歩行状態取得部105で判断する(ステップS705)。
ステップS705で両足のいずれか片方の座標が0.1秒以内に変化したと判断された場合、対象者101が歩行を開始したと、歩行状態取得部105で判断して(ステップS706)、終了する。
ステップS705で両足のいずれか片方の座標が0.1秒以内に変化しなかったと判断された場合、対象者101は歩行せずに停止していると、歩行状態取得部105で判断して、ステップS705に戻り、対象者101が歩行を開始するのを待つ。
また、ステップS206において、踏み出した足の位置が、歩行予想範囲内であったか否かを判断する処理、言い換えれば、歩行を開始した後の歩行の予測処理を、図9を用いて説明する。
対象者101の両足の重心座標のうち、0.1秒以上座標が変化しない方の座標の足を軸足であると、歩行状態取得部105により判断する(ステップS801)。
移動した足の重心座標が存在するか否かを、歩行状態取得部105により判断する(ステップS802)。
ステップS802において移動した足の重心座標が存在すると判断された場合には、移動した足の重心座標の位置が歩行予想範囲601内であるか否かを、歩行状態取得部105により判断する(ステップS803)。
ステップS803において移動した足の重心座標の位置が歩行予想範囲601内であると判断された場合には、歩行状態が正常であると、歩行状態取得部105により判断する(ステップS804)。
次いで、ステップS207からステップS208などへ進み、次に移動する足の歩行予想範囲を歩行状態取得部105により予想して(ステップS805)、終了する。
ステップS802において移動した足の座標が、取得した画像上に存在しないと判断された場合、足が重なっていると、歩行状態取得部105により判断する(ステップS806)。例えば、図22から図23に示すように、右足が左足の前方に重なるように着地した場合には、カメラ103aの画像880上では、図23に示すような状態となる。
ステップS806に次いで、例えば、左足303を現在の軸足(A)、右足302を移動して次の軸足(B)とすると、次の軸足(B)である右足302の位置は、移動体301から現在の軸足(A)の左足303を通る半直線上の現在の軸足(A)の左足303から歩幅だけ進んだ位置にあると、歩行状態取得部105により推測する(ステップS807)。
ステップS807に次いで、軸足(A)の左足303が移動したとき、推測した位置に軸足(B)の右足302があるか否かを、歩行状態取得部105により判断する(ステップS808)。
ステップS808で推測した位置に軸足(B)の右足302があったと判断された場合、ステップS805に進み、次の移動する左足303の歩行予想範囲を歩行状態取得部105により予想する。
ステップS808で推測した位置に軸足(B)の右足302がなかったと判断された場合、歩行状態取得部105から速度が0で、かつ角度が0度の歩行ベクトル111を出力して、移動命令部117及び移動体301の駆動部119を介して、移動体301を停止させることができる(ステップS810)。
また、ステップS803において移動した足の位置が歩行予想範囲外であったと判断された場合には、対象者101がバランスを崩していると、歩行状態取得部105により判断し(ステップS809)、ステップS810に進み、上述したように、歩行状態取得部105から速度が0で、かつ角度が0度の歩行ベクトル111を出力して、移動命令部117及び移動体301の駆動部119を介して、移動体301を停止させるようにする(ステップS810)。
この場合、図24に示すように、時間t=t2のときに左足303が何かでつまずき、時間t=t3のときに対象者101が転げ始めて、時間t=t4のときに対象者101が転げて、地面に両手をついたとする。なお、図24において、時間t=t2の2つの対象者101は同一であり、時間t=t3の2つの対象者101は同一であり、時間t=t2と時間t=t3の対象者101の動きを時間t=t1の対象者101に重ねると、理解しづらくなるため、ずらせて示したものである。このように、対象者101が何かにつまずいて転げた場合には、つまずいた足の位置、又はつまずいた後に移動した足の位置が歩行予想範囲602外となる。
そこで、次に移動した足の位置が歩行予想範囲602外となったことが歩行状態取得部105により判断されると、上述したように、歩行状態取得部105から速度が0で、かつ角度が0度の歩行ベクトル111を出力して、移動命令部117及び移動体301の駆動部119を介して、移動体301を停止させる。この結果、対象者101がバランスを崩して正常な歩行ができなくなると、すぐに、移動体301の移動を停止させることができる。
なお、停止後は、正常な歩行が再開される可能性が高いので、ステップS200に戻り、歩行の開始を待つようにするのが好ましい。このようにすれば、一時的に、対象者101がつまずいて転げたとしても、すぐに立ち上がって、正常な歩行を開始したときには、移動体301による追跡動作を円滑に再開することができる。
また、所定時間以上、歩行開始がなかった場合には、表示装置902で異常を表示したり、警告装置で警告音を発したり、場合によっては、通信装置が搭載されている場合には、通信装置を使用して、所定の装置に警告信号を出力するようにしてもよい。
また、図25に示すように、対象者101がバランスを崩すなどして、時間t=t2のときに左足303が大きく横に踏み出してしまい、歩行予想範囲602外の位置OhL11に出たときも、移動した足の位置が歩行予想範囲602外となる。そこで、次に移動した足の位置が歩行予想範囲602外となったことが歩行状態取得部105により判断されると、上述したように、歩行状態取得部105から速度が0でかつ角度が0度の歩行ベクトル111を出力し、移動命令部117及び移動体301の駆動部119を介して、移動体301を停止させる。この結果、対象者101がバランスを崩すなどして正常な歩行ができなくなると、移動体301の移動をすぐに停止させることができる。
なお、停止後は、正常な歩行が再開される可能性が高いので、ステップS200に戻り、歩行の開始を待つようにするのが好ましい。このようにすれば、一時的に、対象者101がバランスを崩してよろけるなどしたとしても、すぐに正常な歩行を開始したときには、移動体301による追跡動作を円滑に再開することができる。
また、所定時間以上、歩行開始がなかった場合には、表示装置902で異常を表示したり、警告装置で警告音を発したり、場合によっては、通信装置が搭載されている場合には、通信装置を使用して、所定の装置に警告信号を出力するようにしてもよい。
(対象者の確認処理:ステップS300)
対象者101の確認処理のステップS300を図7のフローチャートを基に詳細に説明する。
まず、対象者101が歩行開始から2歩以上歩行したか否かを判断する(ステップS301)。ステップS301で歩行開始から2歩以上歩行していなかったと判断された場合には、そのまま、歩行開始から2歩以上歩行するまで待機する。
ステップS301で歩行開始から2歩以上歩行していたと判断された場合には、対象者判断部114に、対象者測定装置103からの時間t=t0(例えば、現在)の対象者データ106か、又は、歩行状態取得部105で算出された時間t=t0(例えば、現在)における対象者101の足データ113を入力する。また、対象者記憶部112で記憶された時間t=t−1(例えば、過去)における対象者記憶データ115も対象者判断部114に入力する(ステップS302)。
次いで、対象者判断部114において、対象者データ106又は対象者101の足データ113と、対象者記憶データ115とを比較して、一致するか否かを判断する(ステップS303)。ただし、対象者記憶データ115は必ず、対象者判断部114で比較する時間t=t0(例えば、現在)における対象者データ106、又は時間t=t0(例えば、現在)の対象者の足データ113、又は両方のデータと同じ種類のデータであるとする。
なお、処理始めのときに、過去のデータが存在しない場合には、t=t0のときの対象者記憶データ115を用いてもよい。
ステップS303で両者が一致すると判断された場合には、時間t=t0(例えば、現在)における対象者確認データ116を対象者判断部114から移動命令部117に出力した後(ステップS304)、対象者101の歩行速度と角度算出処理(ステップS400)に進む。この対象者確認データ116が出力されることによって、現在認識している対象者101が、先に計測した対象者101に間違いないことを確認することができる。
ステップS303で両者が異なると判断された場合には、データ取得エラーを表示装置902で表示して(ステップS305)、対象者101の歩行状態データ取得処理(ステップS200)に戻る。
(対象者の歩行速度と角度算出処理:ステップS400)
対象者101の歩行速度と角度算出処理のステップS400を図6のフローチャートを基に詳細に説明する。
まず、対象者101が歩行開始から2歩以上歩行したか否かを判断する(ステップS401)。ステップS401で歩行開始から2歩以上歩行していなかったと判断された場合には、そのまま歩行開始から2歩以上歩行するまで待機する。
ステップS401で歩行開始から2歩以上歩行していたと判断された場合には、歩行状態取得部105から歩行状態データ108を歩行状態記憶部107に出力して記憶させる(ステップS402)。
次いで、歩行状態判断部109によって、歩行状態取得部105から入力される時間t=t0(例えば、現在)における歩行状態データ108と、歩行状態記憶部107で記憶した時間t=t−1(例えば、過去)における歩行状態データ110とを比較して、両者の差を算出する(ステップS403)。ここで、歩行状態データ108に含まれる歩幅は、予め、追跡装置1000に、対象者101又は一般的な人の歩幅の平均値を記憶させておいてもよい。又は対象者101の認識特定時(ステップS100)に、対象者101の身長の情報から歩幅を算出してもよい(例えば前記(身長×0.37≦歩幅≦身長×0.45)の式を使用してもよい)。なお、対象者101の身長の情報は画像情報から算出したり、直接、追跡装置1000に入力装置901から入力して教示させるようにしてもよい。
なお、処理始めのときに、過去のデータが存在しない場合には、t=t0のときの歩行状態データを用いてもよい。さらに、過去データが存在しない場合の歩行ベクトル111の算出方法について、t=t0のとき、歩行状態データの両足の座標データの中点の座標と両足の座標データのうち、移動体301に近い座標から歩行ベクトル111を算出してもよい。
次いで、歩行状態判断部109において、歩行状態データ108と歩行状態データ110とから算出された前記差より、歩行ベクトル111(速度と角度)を算出して(ステップS404)、対象者101の追跡処理(ステップS500)に進む。
(対象者の追跡処理:ステップS500)
対象者101の追跡処理のステップS500を図7のフローチャートを基に詳細に説明する。
まず、時間t=t0(例えば、現在)における対象者確認データ116と歩行ベクトル111とが移動命令部117に入力されたか否かを移動命令部117で判断する(ステップS501)。ステップS501で時間t=t0(例えば、現在)における対象者確認データ116と歩行ベクトル111とが入力されていないと判断された場合には、対象者101の歩行状態データ取得処理(ステップS200)に戻る。
ステップS501で時間t=t0(例えば、現在)における対象者確認データ116と歩行ベクトル111とが入力されていると判断された場合には、移動命令部117において、歩行ベクトル111から移動体301の速度と角度を算出する(ステップS502)。具体的には、移動体301の移動目標となる位置は、例えば、対象者101の右足302の位置座標と左足303の位置座標との中点の位置座標とする。そして、現在の移動体301の位置から前記中点の位置座標までの移動に関する速度と角度とを算出する。
次いで、移動命令部117から表示装置902に、追随動作を開始する旨を表示させる(ステップS503)。表示装置902での表示の例としては、液晶表示装置に追随動作開始を表示するほか、表示装置902の別の例としてのスピーカから音声により追随動作開始を通知するようにしてもよい。
次いで、追跡装置1000の移動命令部117から、移動命令118を移動体301の駆動部119に伝える(ステップS504)。
次いで、移動命令118に基づき、移動体301の駆動部119が駆動を開始して、移動体301が、対象者101と所定の距離(最小距離)を保ちながら、対象者101を追跡するように、移動体301が移動又は制動される(ステップS505)。
次いで、対象者101の追跡を終了する旨の命令が入力装置901などから入力されていないか否かを移動命令部117で判断する(ステップS506)。ステップS506で追跡終了命令が入力されていないと判断された場合には、対象者101の歩行状態データ取得処理(ステップS200)に戻る。ステップS506で追跡終了命令が入力されていると判断された場合には、対象者101の特定処理(ステップS100)に戻る。
次に、これらの追跡方法及び追跡装置を用いたシステムの例を、図26〜図27に基づいて説明する。
図1及び図26に示すシステムにおいて、移動体301が対象者101の追跡を行うことを想定する例を示す。ここでは、対象者101の歩行状態102の情報を用いて、移動体301が対象者101の後を追跡するように追跡装置1000により動作制御するようにしている。
追跡装置1000は、まず、対象者101の特定処理(ステップS100)を行う。すなわち、対象者測定装置103としてカメラ103a及び画像処理部103bによって、対象者101の両足(対象者101の右足を302とし、左足を303と示す。)の画像を取得し、その両足302,303の座標を2次元的に測定する。
なお、対象者測定装置103は、対象者101の両足302,303に別々に具備された信号送信機から送信された両足302,303の信号を信号受信機で取得し、対象者101の両足302,303の情報を用いて、それぞれの座標を測定してもよい。
また、対象者101の右足302,左足303の画像、もしくは情報を、ディスプレイなどの表示装置902に表示して、対象者101が正しく判断されているかの確認が可能としている。このとき、場合によっては対象者101の右足302,左足303の位置修正などを入力装置901から入力して行ってもよい。
そして、対象者101の特定処理(ステップS100)が終了して、対象者101の特定が行われたのち、対象者101の歩行状態データを取得する歩行状態データ取得処理(ステップS200)が行われる。すなわち、対象者101の右足302,左足303についての情報は、対象者記憶データ115として記憶装置304に保存される。そして、取得された両足302,303の位置座標(座標の基準としては、例えば、移動体301の位置、あるいは時間t=t0における歩行状態データを基準にすることが考えられる。)の情報と一歩前の時間例えば、現在がt=t0ならば、t=t−1における歩行状態データ110とを基に、歩行状態判断部109によって、歩行予想範囲601を算出するとともに、対象者101の歩行開始を待ち、歩行開始が行われると、2歩以上進むまで、先に記憶された情報を基に歩行予想範囲601を行う。
次いで、対象者101が2歩以上進むことにより、対象者101の歩行状態データ取得処理(ステップS200)が終了すると、対象者101の確認処理(ステップS300)を開始する。すなわち、追跡しようとしている対象者101が、最初に特定された対象者101と同一か否かを判断して、同一ならば、追跡動作開始のために、対象者101の歩行速度と角度算出処理(ステップS400)を行う。最初に特定された対象者101と同一でない場合には、追跡開始動作を停止する。これは、特定処理を行った後、別の人が対象者101と移動体301との間に入り込んだ場合、移動体301が誤って前記別の人を追跡するのを防止するための処理である。
次いで、対象者101の歩行速度と角度算出処理(ステップS400)において、歩行状態取得部105の一例としての演算処理部によって歩行ベクトル111を求める。そして、歩行ベクトル111についての情報は、歩行状態記憶部107に保存される。
次いで、対象者の歩行速度と角度算出処理(ステップS400)を終了すると、対象者の追跡処理(ステップS500)を開始する。対象者の追跡処理(ステップS500)では、時間t=t0における対象者確認データ116と歩行ベクトル111とにより、追跡装置1000の移動命令部117から移動命令118を移動体301の駆動部119に伝え、後述するように移動体301が、対象者101と所定の距離(最小距離)を保ちながら、対象者101を追跡する。
このとき、移動体301の移動目標となる位置は、例えば、対象者101の右足302の位置座標と左足303の位置座標との中点の位置座標とする。そして、現在の移動体301の位置から前記中点の位置座標までの移動に関する速度と角度とを算出して、算出された速度と角度に基づき移動体301の駆動部119が駆動制御される。
その後、対象者101が1歩踏み出すごとに、歩行予想範囲を作成し、歩行予想範囲内に足の着地を確認し、再度、歩行予想範囲を作成し、歩行予想範囲内に足の着地を確認する処理を続ける一方、対象者101の右足302の位置座標と左足303の位置座標との中点の位置座標に向けて、移動体301の駆動部119が駆動制御されて追跡動作を行う。この結果、図26及び図27に示すように、歩行する対象者101を移動体301が円滑に追跡することができる。
前記実施形態によれば、前記対象者101の歩行状態の情報を検知し、前記対象者101の歩行ベクトル111(言い換えれば歩行速度と歩行角度、よって、歩行経路)を検知し、検知された前記歩行状態と前記歩行速度と前記経路の情報に基づいて、前記対象者101の歩行予想範囲を予想することにより、前記対象者101の歩行が歩行予想範囲内で行われるのを確認しながら、前記移動体301が前記対象者101の歩行経路に沿って移動させるように制御することができる。
このようにすれば、前記対象者101の歩行経路が種々変化しても、それに追随して移動体301を移動させることができる。従って、対象者101の追従移動の突発的な動きに関係なく、移動体301は、容易かつ確実に対象者101の移動経路を追従することができるようになる。
例えば、対象者101の前方に障害物が突然現れたとき、又は障害物が対象者101に近づいてきたときなどの場合には、対象者101が突然後ろに下がったり、突然横に移動する場合が考えられる。また、対象者101が、突然、何かにつまずいて転びかけたり、大きくよろめいたりする場合も考えられる。このような対象者101の突発的な移動が生じても、前記対象者101の歩行予想範囲を予想して、予想が外れたときには、再度、歩行予想範囲を予想しなおして、前記対象者101の歩行経路に沿って移動体301を移動させることができる。
また、歩行状態取得部105におして対象者101の両足の位置座標を検知するとき、一定時間以上(例えば0.1秒より長い時間)、同じ位置にある対象者101の足の位置座標の足を、着地している足であると判断することにより、足が地面と確実に接地する時点を確実に検知することができ、かつ、移動体301の移動目標の位置座標を算出するための前記中点の位置座標が確実に得られ、このような対象者101の歩行状態の情報から、移動体301の移動速度や移動経路を確実に算出することができて、移動体301を安定して移動制御することが可能になる。
また、対象者101における突発的な動きの他の例として、対象者101が後ずさりして、対象者101が移動体301に最小距離以下に近づいた場合には、移動体301の移動を即座に停止させるようにすれば、移動体301が対象者101に衝突することを確実に防止することができる。
また、対象者101の移動した足の座標が、取得した画像880上に存在しないと判断された場合、足が重なっていると、歩行状態取得部105により判断して、その足の位置座標を推定することもでき、足が重なったときでも、対象者101の歩行の予想を確実に行うことができる。
本発明の他の実施形態に係る移動体の対象者同行方法及び移動体用対象者同行装置の一例としては、対象者先行(対象者に先行して移動体を移動させる)方法及び装置がある。図28の対象者先行方法及び装置では、対象者101を移動体301が先行することを想定する例を示す。
ここでは、対象者101の歩行状態102の情報を用いて、移動体301が先行することを想定する。言い換えれば、移動体301は、対象者101が歩行しようとする経路に沿って対象者101よりも常に前を移動する場合であり、先行させる場合の大きな目的としては、人の見えるところに移動体301が常に存在するという安心感を対象者101に与えるためである。なお、対象者先行方法及び装置は、基本的に、前記対象者歩行追跡方法及び装置と同様な構造及び動作を行うが、移動体301が対象者101よりも先行する点で大きく異なるだけである。
この場合、対象者101の顔面を401とし、また右足を302、左足を303として示す。移動体301は、対象者測定装置103としてのカメラ103a及び画像処理部103bによって対象者101の顔面400、及び両足302,303の画像を取得し、その両足302,303の座標を2次元的に測定し、その顔面401を対象者認識(特定)用情報とする。
なお、対象者測定装置103は、対象者101の両足302,303に別々に具備された信号送信機から送信された両足302,303の信号を信号受信機で取得し、対象者101の両足302,303の情報を用いて、それぞれの座標を測定してもよい。
また、前記対象者の特定処理(ステップS100)と同様に、対象者101の顔面401,右足302,左足303の画像もしくは情報を、ディスプレイなどの表示装置902に表示して、対象者101の確認を行ってもよい。このとき、場合によっては対象者101の右足302,左足303の位置修正などを行ってもよい。
そして、前記対象者の歩行状態データ取得処理(ステップS200)と同様に、対象者101の右足302,左足303についての情報は、歩行状態記憶データとして歩行状態記憶部107に保存される。また対象者101の顔面401についての情報は、対象者記憶データ115として対象者記憶部112に保存される。
そして、前記対象者の確認処理(ステップS300)と対象者の歩行速度と角度算出処理(ステップS400)と対象者の追跡処理(ステップS500)と同様に、取得された両足302,303の座標の情報を基に、追跡装置1000に設けられた歩行状態取得部105としての演算処理装置によって、歩行ベクトル111を求める。そして、歩行ベクトル111についての情報は、歩行状態記憶部107に保存される。歩行状態判断部109では、歩行の一歩手前の時間t=t−1における歩行状態データ110によって、次の歩行予想範囲の作成を行う。
ここで、ステップ400の対象者の歩行速度と角度算出処理において、過去データが存在しない場合の歩行ベクトル111の算出方法について、t=t0のとき、歩行状態データの両足の座標データの中点の座標と両足の座標データのうち、移動体301に遠い座標から歩行ベクトル111を算出してもよい。
次に、これらの制御方法に用いる歩行状態データ108と、その歩行ベクトル111との決定方法について、図29に基づいて説明する。
図29では、対象者101の時間t=t0のときの両足の足跡(右足302、左足303)の位置情報が、歩行状態データ108となる。また、時間t=t0のときの両足の中点501と時間t=t1のときの両足の中点502を結んだ線分を歩行ベクトル111とする。
図29において、歩行状態データ108として、時間t=t0のときの右足302、左足303のそれぞれの位置の位置座標をOhR0、OhL0とし、時間t=t1のとき、位置座標OhL0にある左足303を軸足として接地した状態で、右足302を移動させた位置をOhR1とする。また、右足302の位置OhR1から左足の位置座標OhL1、左足の位置座標OhL1から右足の位置座標OhR2、右足の位置座標OhR2から左足の位置座標OhL2は、同様の歩行により時間の経過とともに定まるとする。
ここでは、時間t=t0のときの右足302の位置の位置座標OhR0と時間t=t1のときの右足302の位置の位置座標OhR1を結んだ線分を歩行ベクトル111とする。なお、左足303を用いて、同様に歩行ベクトル111を求めてもよい。
この他の実施形態では、足跡の爪先の方向から次の歩行予想範囲を予想してもよい。
前記歩行状態データ108を用いることで、歩行予想範囲を限定することができる。なお、両足の位置が歩行予想範囲外ならば、対象者101が不規則な動きをしたと判断し、移動体301は、一時停止、又は音や光などで警告を促してもよい。
なお、歩行状態取得部105において両足を位置検知するとき、一定時間以上同じ位置にある対象者101の足の位置座標を検知する手段と、該検知された足の位置座標データを記憶する手段を備えている。また、前記足の位置座標の判断において、足が同じ位置にある時間を0.1秒より大(S>0.1秒)のときには足が同じ位置にあるとみなすと設定することが望ましく、このように設定することによって、足が地面と確実に接地する時点で前記中点のポイントが得られ、歩行状態データ108から速度や方向予測を、安定して軌跡のポイントに基づいて行うことが可能になる。
また、各足の着地状態の検出は、前記足の位置座標が所定時間(例えば、0.1秒)より長く同じ若しくは所定の許容範囲(歩行ではなく足踏みしているなどとみなすことができ、実際には歩行を開始していないと判断できる範囲、例えば、検出した足の位置座標から半径Rtの円の範囲、許容範囲の数値例としては、0<許容範囲の半径Rt≦歩幅×130%)内の位置に位置しているときに検出することができる他、画像処理部により、足の裏が見えたときには足は着地しておらず、足の裏がほとんど見えなくなる状態が所定時間続くと、着地したと検出できるようにしてもよい。
また、対象者101にGPSなどの位置情報を発信する機器を具備し、本発明と組み合わせて使用してもよい。
また、移動体としては、倒立2輪走行車や4輪走行車の他に、倒立2輪又は二足歩行ロボットも含むこともできる。
なお、前記様々な実施形態のうちの任意の実施形態を適宜組み合わせることにより、それぞれの有する効果を奏するようにすることができる。
本発明は、図面を参照しながら好ましい実施形態に関連して説明されているが、当業者にとっては種々の変形あるいは修正は明白である。そのような変形や修正は、添付した請求の範囲による本発明の技術思想の範囲から外れない限りにおいて、その中に含まれると理解されるべきである。