説明

障害物回避支援装置、障害物回避支援方法及び移動体

【課題】最近接距離の点の切り替わりが発生する状況において、移動体の障害物の回避動作を支援するのに好適な障害物回避支援装置、障害物回避支援方法及び障害物回避支援装置を備えた移動体を提供する。
【解決手段】障害物回避支援部101を、レーザーレンジセンサ200で測定した障害物の距離情報をメモリに記憶する距離情報記憶部110と、メモリに記憶された距離情報に基づき斥力を計算する斥力計算部111と、計算された斥力を軸方向の成分に分離する斥力成分分離部112と、分離された軸成分から軸毎に正方向の最大値と負方向の最大値とを抽出し、軸毎に抽出した正方向と負方向の最大値の和を計算し、計算結果を各軸の軸成分とした回避用斥力を生成する回避用斥力生成部113とを含む構成とした。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ポテンシャル法を用いた移動体の障害物の回避技術に関する。
【背景技術】
【0002】
従来、移動型ロボット等のアクチュエータ等の動力によって移動が可能な移動体において、その移動経路上に存在する障害物を回避する経路計画法として、ポテンシャル法が用いられている。
ポテンシャル法を用いた経路計画では、移動目標位置からは引力を、障害物からは斥力を受けるポテンシャル関数を設計し、設計したポテンシャル関数の低い方向に移動体を移動させることで、障害物を避けながら目標位置まで到達できる経路を生成している。
【0003】
ポテンシャル法を用いた移動体の移動制御技術として、例えば、特許文献1の移動体及びその移動制御方法、特許文献2の障害物回避装置および移動体などが開示されている。
特許文献1には、ポテンシャル法を用いてロボットの移動制御を行うにあたって、走行制御コントローラが、検知した障害物に関する仮想斥力を計算する際に、設定される予測スパンTiに相当する時間が経過した後のロボット及び障害物の予測位置から得られる予測最近傍距離ρTiと、ロボットと障害物との相対速度と、ロボットと障害物との許容最小距離ρ0と、を少なくとも考慮して計算を行う発明が記載されている。
【0004】
また、特許文献2には、電動車椅子に搭載された回避装置が、操作部から入力されるユーザの指示速度Wと対物センサから入力される周囲の障害物の状況とを、学習部の格納部に格納し、これに応じて速度Uを修正して駆動装置に出力する。更に、格納部に格納した情報と速度センサにて検出する実際の速度Yとを抽出部にて比較して、強化学習を行う。更に、抽出部が適切な反発力の係数を学習し、反発力生成部が反発力Fを計算して、ユーザの指示速度Wに基づく速度Umに加算することによって、速度Uを修正し、電動車椅子の速度Uを駆動装置、動力部によって実現する発明が記載されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2009−288930号公報
【特許文献2】特開2005−293154号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記特許文献1及び特許文献2の技術においては、障害物から受ける斥力(反発力)の計算に、障害物との最近接(近傍)距離を用いている。そのため、例えば、図9(a)に示すような曲がり角や、図9(b)に示す両側が壁の通路(廊下等)、または、移動経路上に複数の障害物が存在するような場合に、移動体の移動に伴って最近接距離の点の切り替わりが発生する。例えば、図9(a)及び(b)に示すように、移動体がA点からB点に移動して、最近接距離の点の切り替わりが発生すると、図9(a)に対応する図11(a)、図9(b)に対応する図11(b)に示すように、斥力ベクトルの急激な変化が発生する。そのため、この変化点における斥力ベクトルを用いて移動制御を行うと、移動体の急激な速度変化等の不具合が生じる恐れがある。なお、図11において、横軸は移動体の位置であり、縦軸は、図9中の斜線で示す障害物から移動体が仮想的に受ける斥力である。また、図9中の黒点は、距離の測定点を示す。
【0007】
そこで、本発明は、このような従来の技術の有する未解決の課題に着目してなされたものであって、最近接距離の点の切り替わりが発生する状況において、移動体の障害物の回避動作を支援するのに好適な障害物回避支援装置、障害物回避支援方法及び障害物回避支援装置を備えた移動体を提供することを目的としている。
【課題を解決するための手段】
【0008】
〔発明1〕 上記目的を達成するために、発明1の障害物回避支援装置は、移動体の移動経路上に存在する障害物の回避動作を支援する障害物回避支援装置であって、
前記移動体の移動経路上に存在する障害物の形状に沿った複数の測定点に対して測定された距離情報を記憶する距離情報記憶部と、
前記距離情報記憶部に記憶された距離情報に基づき、ポテンシャル関数を用いて前記障害物の前記複数の測定点の各測定点から仮想的に受ける斥力を計算する斥力計算部と、
前記斥力計算部で計算した各測定点に対応する斥力を前記測定点の座標を規定する各軸の軸成分に分離する斥力成分分離部と、
前記各測定点の前記分離した軸成分に基づき、前記障害物の回避動作に係る斥力である回避用斥力を生成する回避用斥力生成部と、を備え、
前記回避用斥力生成部は、前記各測定点に対応する斥力の軸成分における各軸の正方向の成分の最大値と負方向の成分の最大値との和を軸毎に計算し、該計算結果に基づき前記回避用斥力を生成する。
【0009】
このような構成であれば、斥力計算部によって、移動体の移動経路上に存在する障害物の形状に沿った複数の測定点に対して測定された距離情報に基づき、ポテンシャル関数を用いて障害物の複数の測定点の各測定点から仮想的に受ける斥力を計算することができる。更に、斥力成分分離部によって、斥力計算部で計算した各測定点に対応する斥力を軸成分に分離することができる。更に、回避用斥力生成部によって、軸成分分離部で分離した各測定点に対応する斥力の軸成分に基づき、各軸の正方向の最大値と負方向の最大値との和を計算し、該計算結果に基づき障害物の回避用斥力を生成することができる。
例えば、回避用斥力として、計算した各軸の軸成分の最大値の和を各軸の成分とした斥力(ベクトル)を生成することができる。
【0010】
〔発明2〕 更に、発明2の障害物回避支援装置は、発明1の障害物回避支援装置において、前記測定点の座標が、互いに直交するx軸及びy軸により規定される2次元座標(x,y)で表され、n番目(nは、測定点の総数をNとした場合に1≦n≦Nの自然数)の測定点に対応する斥力におけるx軸方向の成分がFpx(n)、y軸方向の成分がFpy(n)で表される場合に、前記回避用斥力生成部は、前記回避用斥力におけるx軸方向の成分Fpx及びy軸方向の成分Fpyを、下式(1)〜(2)に基づき計算し、
px=Fpxp+Fpxn ・・・(1)
py=Fpyp+Fpyn ・・・(2)
【0011】
前記式(1)〜(2)において、Fpxpは、N個の測定点に対応する斥力におけるx軸の正方向の成分の最大値であり、Fpxnは、N個の測定点に対応する斥力におけるx軸の負方向の成分の最大値であり、Fpypは、N個の測定点に対応する斥力におけるy軸の正方向の成分の最大値であり、Fpynは、N個の測定点に対応する斥力におけるy軸の負方向の成分の最大値であり、前記式(1)〜(2)において、前記Fpxpが負の値の場合は当該Fpxpの値をゼロとし、前記Fpypが負の値の場合は当該Fpypの値をゼロとし、前記Fpxnが正の値の場合は当該Fpxnの値をゼロとし、前記Fpynが正の値の場合は当該Fpynの値をゼロとする。
このような構成であれば、回避用斥力生成部は、斥力成分分離部で分離したx軸方向の成分及びy軸方向の成分を用いて、上式(1)〜(2)に基づき回避用斥力Fpx及びFpyを生成することができる。
【0012】
〔発明3〕 更に、発明3の障害物回避支援装置は、発明2の障害物回避支援装置において、前記測定点の座標が、前記x軸及び前記y軸の双方に直交するz軸を更に含む3次元座標(x,y,z)で表され、n番目の測定点に対応する斥力におけるz軸方向の成分がFpz(n)で表される場合に、前記回避用斥力生成部は、前記回避用斥力におけるz軸方向の成分Fpzを、下式(3)に基づき計算し、
pz=Fpzp+Fpzn ・・・(3)
【0013】
前記式(3)において、Fpzpは、N個の測定点に対応する斥力におけるz軸の正方向の成分の最大値であり、Fpznは、N個の測定点に対応する斥力におけるz軸の負方向の成分の最大値であり、前記Fpzpが負の値の場合は当該Fpzpの値をゼロとし、前記Fpznが正の値の場合は当該Fpznの値をゼロとする。
このような構成であれば、回避用斥力生成部によって、回避用斥力Fpx及びFpyに加えて、斥力成分分離部で分離したz軸方向の成分を用いて、上式(3)に基づき回避用斥力Fpzを生成することができる。
【0014】
〔発明4〕 更に、発明4の障害物回避支援装置は、発明1又は2の障害物回避支援装置において、前記測定点の座標が、互いに直交するx軸及びy軸により規定される2次元座標(x,y)で表される場合に、前記斥力計算部は、n番目(nは、測定点の総数をNとした場合に1〜Nの自然数)の測定点に対応する斥力U(n)を下式(4)に示すポテンシャル関数に基づき計算し、前記斥力成分分離部は、前記斥力U(n)を、下式(5)〜(6)に基づき、x軸方向の成分Fpx(n)及びy軸方向の成分Fpy(n)に分離する。
U(n)=η/2・(1/ρn−1/ρ02 ・・・(4)
px(n)=∂U(n)/∂x ・・・(5)
py(n)=∂U(n)/∂y ・・・(6)
【0015】
但し、前記式(4)において、ηは、正の重み定数であり、ρ0は、正の定数であって前記ポテンシャル関数が影響を与える範囲であり、ρnは、前記移動体の現在位置からn番目の測定点までの距離である。
このような構成であれば、斥力計算部によって、n番目の測定点に対応する斥力U(n)を上式(4)に示すポテンシャル関数に基づき計算することができる。更に、斥力成分分離部によって、上式(5)〜(6)に基づき、斥力U(n)を、x軸方向の成分Fpx(n)及びy軸方向の成分Fpy(n)に分離することができる。
【0016】
〔発明5〕 更に、発明5の障害物回避支援装置は、発明1又は3の障害物回避支援装置において、前記測定点の座標が、各々が互いに直交するx軸、y軸及びz軸により規定される3次元座標(x,y,z)で表される場合に、前記斥力計算部は、n番目(nは、測定点の総数をNとした場合に1〜Nの自然数)の測定点に対応する斥力U(n)を下式(7)に示すポテンシャル関数に基づき計算し、前記斥力成分分離部は、前記斥力U(n)を、下式(8)〜(10)に基づき、x軸方向の成分Fpx(n)、y軸方向の成分Fpy(n)及びz軸方向の成分Fpz(n)に分離する。
U(n)=η/2・(1/ρn−1/ρ02 ・・・(7)
px(n)=∂U(n)/∂x ・・・(8)
py(n)=∂U(n)/∂y ・・・(9)
pz(n)=∂U(n)/∂z ・・・(10)
【0017】
但し、上式(7)において、ηは、正の重み定数であり、ρ0は、正の定数であって前記ポテンシャル関数が影響を与える範囲であり、ρnは、前記移動体の現在位置からn番目の測定点までの距離である。
このような構成であれば、斥力計算部によって、n番目の測定点に対応する斥力U(n)を上式(7)に示すポテンシャル関数に基づき計算することができる。更に、斥力成分分離部によって、上式(8)〜(10)に基づき、斥力U(n)を、x軸方向の成分Fpx(n)、y軸方向の成分Fpy(n)及びz軸方向の成分Fpz(n)に分離することができる。
【0018】
〔発明6〕 一方、上記目的を達成するために、発明6の障害物回避支援方法は、移動体の移動経路上に存在する障害物の回避動作を支援する障害物回避支援方法であって、
前記移動体の移動経路上に存在する障害物の形状に沿った複数の測定点に対して測定された距離情報の記憶された距離情報記憶手段の前記距離情報に基づき、ポテンシャル関数を用いて前記障害物の前記複数の測定点の各測定点から仮想的に受ける斥力を計算する斥力計算ステップと、
前記斥力計算ステップで計算した各測定点に対応する斥力を前記測定点の座標を規定する各軸の軸成分に分離する斥力成分分離ステップと、
前記各測定点の前記分離した軸成分に基づき、前記障害物の回避動作に係る斥力である回避用斥力を生成する回避用斥力生成ステップと、を含み、
前記回避用斥力生成ステップにおいては、前記各測定点に対応する斥力の軸成分における各軸の正方向の成分の最大値と負方向の成分の最大値との和を軸毎に計算し、該計算結果に基づき前記回避用斥力を生成する。
これにより、発明1の障害物回避支援装置と同等の作用を得ることができる。
【0019】
〔発明7〕 また、上記目的を達成するために、発明7の移動体は、基体と、
前記基体を移動させるアクチュエータを有する移動機構と、
移動経路上に存在する障害物の形状に沿った複数の測定点に対する距離情報を測定する距離情報測定部と、
操作部を介した利用者からの当該移動体の移動方向の情報を含む移動に係る指示入力を受け付ける指示入力受付部と、
請求項1乃至請求項5のいずれか1項に記載の障害物回避支援装置と、
前記障害物回避支援装置において前記距離情報測定部で測定した距離情報に基づき計算した回避用斥力と前記指示入力受付部で受け付けた指示入力とに基づき、前記アクチュエータを制御するアクチュエータ制御部と、を備える。
このような構成であれば、発明1乃至5のいずれか1の障害物回避支援装置と同等の作用を得ることができる。
【発明の効果】
【0020】
以上説明したように、発明1〜5の障害物回避支援装置、発明6の障害物回避支援方法及び発明7の移動体によれば、障害物の回避(経路計画)に係る斥力ベクトルを生成する際に、障害物の各測定点から受ける斥力を軸成分に分離し、分離した軸成分のうち正方向の成分の最大値と負方向の成分の最大値との和を軸毎に計算する。そして、計算した各軸の最大値の和を各軸の成分とした回避用斥力を生成することができる。
【0021】
これにより、障害物の回避(経路計画)において、最大斥力を用いることから、従来の最近接距離を用いて生成した斥力ベクトルと比較して、最近接距離が切り替わりによる影響を受けなくなる。具体的に、連続的に変化する斥力ベクトルを生成することができる。従って、移動体の障害物回避時の移動制御において、最近接距離の切り替わりによって急激に変化する斥力ベクトルが用いられるのを防ぐことができ、安全且つ安定した移動体の障害物の回避制御を行うことができるという効果が得られる。
【0022】
また、レーザーレンジファインダや距離画像センサ等の測域センサによって測定した測定点群の距離情報から求めた斥力の総和等を用いて回避用斥力を計算することが考えられる。この場合に、測域センサを用いた距離測定において、障害物上の測定点群は、測域センサから障害物までの距離に応じてその密度(粒状性)が変化する。そのため、同じ大きさの物体でも、その距離によって測定点群の密度が変化し、障害物上の測定点の数が変化してしまう。また、比較的小さな障害物は、測定点の数が少なくなるためその斥力の影響が小さくなってしまい、接触、衝突の可能性が上昇する。
上記発明1〜7によれば、斥力の軸成分の正方向と負方向の最大値の和を用いるため、障害物の大小や測定点群の密度などに影響を受けない回避用斥力を計算することができるという効果が得られる。
【図面の簡単な説明】
【0023】
【図1】(a)は、脚車輪型ロボット1の正面図であり、(b)は、脚車輪型ロボット1の側面図である。
【図2】レーザーレンジセンサ200の距離測定の原理を説明する図である。
【図3】(a)は、測距センサを、垂直方向の軸(z軸)まわりに回転駆動させたときの測定距離と回転角度θとの関係を示す図であり、(b)は、測距センサを、水平方向の軸(y軸)まわりに回転駆動したときの測定平面と回転角度φとの関係を示す図である。
【図4】脚車輪型ロボット1の移動制御システムを示すブロック図である。
【図5】移動制御システムの備える、障害物回避時の移動制御に係る機能構成を示すブロック図である。
【図6】障害物回避支援部101の詳細な機能構成を示すブロック図である。
【図7】回避用斥力Fpの生成処理を示すフローチャートである。
【図8】障害物回避時のモータ制御処理を示すフローチャートである。
【図9】(a)及び(b)は、障害物と脚車輪型ロボット1との位置関係の例を示す図である。
【図10】(a)及び(b)は、脚車輪型ロボット1が、図9(a)及び(b)に示すA点からB点へと移動したときの位置の変化に対する本発明の回避用斥力の変化を示す図である。
【図11】(a)及び(b)は、脚車輪型ロボット1が、図9(a)及び(b)に示すA点からB点へと移動したときの位置の変化に対する従来の回避用斥力の変化を示す図である。
【図12】実施の形態の案内用ロボットの側面図であり、案内用ロボット81の構成を示す図である。
【発明を実施するための形態】
【0024】
〔第1の実施の形態〕
以下、本発明の第1の実施の形態を図面に基づき説明する。図1〜図10は、本発明に係る障害物回避支援装置、障害物回避支援方法及び移動体の第1の実施の形態を示す図である。
本実施の形態は、本発明に係る障害物回避支援装置を、移動体である、脚部による歩行移動及び車輪による走行が可能な脚車輪型ロボットに適用したものである。
【0025】
まず、図1に基づき、本実施の形態に係る脚車輪型ロボットの外観構成を説明する。
図1(a)は、脚車輪型ロボット1の正面図であり、(b)は、脚車輪型ロボット1の側面図である。
脚車輪型ロボット1は、図1(a)及び(b)に示すように、基体10と、基体10に連結された4つの脚部12とを有して構成されている。
基体10の前方には、2本の脚部12が回転関節14を介して左右対称の位置に連結されている。また、基体10の後方には、2本の脚部12が回転関節14を介して左右対称の位置に連結されている。
【0026】
回転関節14は、脚車輪型ロボット1の底面と直交する方向を軸方向として回転する。すなわち、ヨー軸回りに回転する。
各脚部12には、2つの回転関節16、18が設けられている。回転関節16、18は、回転関節14が図14のような状態であるときは、脚車輪型ロボット1の側面と直交する方向を軸方向として回転する。したがって、脚部12は、それぞれ3自由度を有する。
【0027】
各脚部12の先端には、回転関節16、18と軸方向を同一にして駆動輪20が回転可能に設けられている。駆動輪20は、回転関節14の回転によりヨー軸周りに回動する。つまり、回転関節14の回転を制御することで、走行移動時の操舵制御が行われる。
各脚部12の先端には、脚車輪型ロボット1の移動経路上に存在する物体までの脚先からの距離を測定する脚先センサ38が設けられている。
【0028】
一方、基体10の正面の下部中央には、水平面レーザー光を照射する水平レーザ26が設けられている。また、基体10の正面の中央左右には、垂直面レーザー光を照射する垂直レーザー28、30がそれぞれ設けられている。
基体10の正面の上部中央には、水平面レーザー光および垂直面レーザー光の反射光を含む画像を撮影するカメラ32が設けられている。
【0029】
また、カメラ32の下側には、レーザーレンジセンサ200が配設されている。
水平レーザー26は、カメラ32で水平面レーザー光の反射光を含む画像が撮影できるように下方に所定角度傾けて設けられている。同様に、垂直レーザー28は、カメラ32で垂直面レーザー光の反射光を含む画像が撮影できるように右方に所定角度傾けて設けられ、垂直レーザー30は、左方に所定角度傾けて設けられている。
【0030】
なお、各脚部12の回転関節14〜18には、回転関節14〜18を回転駆動する関節モータ40がそれぞれ設けられている。また、各脚部12の駆動輪20には、駆動輪20を回転駆動する車輪モータ50がそれぞれ設けられている。
レーザーレンジセンサ200は、図示しないが、センシングプロセッサと、測定範囲内に存在する物体上の測定点までの距離を測定する測距センサと、測距センサを垂直方向の軸まわり及び水平方向の軸まわりに回転駆動する回転機構とを含んで構成されている。
【0031】
更に、レーザーレンジセンサ200は、図示しないが、回転機構を垂直方向の軸まわりに回転駆動する第1モータと、水平方向の軸まわりに回転駆動する第2モータと、これらモータの回転角度位置を検出するエンコーダと、センシングプロセッサからの指令信号及び各エンコーダからの信号に基づき各モータを制御するドライバとを含んで構成されている。
ドライバは、センシングプロセッサからの指令信号において指定された走査角度範囲及び走査角度単位(例えば、0.36°などの所定の回転角度)に基づき、第1及び第2モータの回転軸を、指定された走査角度単位ずつ回転させる制御を行う。
【0032】
ここで、測距センサの原点位置(走査角度が0°の位置)における、レーザーの出力方向の軸をx軸、x軸に対して直交する2つの軸のうち一方の軸をy軸(本実施の形態では、センサの横方向と水平方向の軸となる)、他方の軸をz軸(本実施の形態では、垂直方向の軸となる)とする。
【0033】
第1モータは、測距センサのレーザー出力部(不図示)及び受光部(不図示)を、垂直方向の軸まわり(z軸)に回転駆動するように設けられ、第2モータは、出力部及び受光部を水平方向の軸(y軸)まわりに回転駆動するように設けられている。そして、ドライバからの制御信号に応じて、第1モータは、自己の回転軸を指定された走査角度単位(回転角度θ)ずつ回転駆動し、第2モータは、自己の回転軸を指定された走査角度単位(回転角度φ)ずつ回転駆動する。
【0034】
ここで、図2は、レーザーレンジセンサ200の距離測定の原理を説明する図である。
レーザーレンジセンサ200は、測距センサが、指定された走査角度単位ずつ回動し、且つ回動する毎に、図2に示すように、レーザー出力部からレーザー光を出力すると共に、出力光に対する物体(図2中の障害物)からの反射光を受光部で受光する。そして、各回転角度(走査角度)に応じた距離(図2中の測定距離L(物体と受光部との間の距離))を測定する。
【0035】
また、図3(a)は、測距センサを、垂直方向の軸(z軸)まわりに回転駆動させたときの測定距離と回転角度θとの関係を示す図であり、(b)は、測距センサを、水平方向の軸(y軸)まわりに回転駆動したときの測定平面と回転角度φとの関係を示す図である。
例えば、図3(a)に示すように、測距センサを、z軸まわりに指定された走査角度単位ずつ回動させながら、原点位置に対する各回転角度(図3(a)中のθ1、θ2、θ3)に応じた距離情報(図3(a)中のL(θ1)、L(θ2)、L(θ3))を測定する。
【0036】
また、第1モータの回転軸の回転中心と、レーザーの走査軌道線の両端とを結んで形成される平面が、xy測定平面(物体が存在しない場合は扇形の平面)となる。
xy測定平面の走査処理(第1走査処理)が完了する毎に、図3(b)に示すように、測距センサを、y軸まわりに指定された走査角度単位(φ)ずつ回動させる。この走査処理を第2走査処理という。
【0037】
そして、第1走査処理と第2走査処理とを交互に連続して行うことにより、第1走査処理によって形成される測定平面を、y軸まわりに連続して形成する。これにより、測定範囲内(走査角度範囲内)に存在する物体の3次元の距離情報を測定することが可能である。
また、図3(b)に示すように、第2走査処理後の各測定点の距離情報を、L(θi,φj)と表記する。ここで、iは、z軸まわりの走査角度に応じて各測定点に付与される通し番号であり、jは、y軸まわりの走査角度に応じて各測定点に付与される通し番号である。
【0038】
本実施の形態において、脚車輪型ロボット1は、CPU60において、レーザーレンジセンサ200で測定した自己の移動経路上に存在する障害物の距離情報及び速度情報に基づき、ポテンシャル法を用いた障害物の回避動作を含む移動制御を行うようになっている。
また、レーザーレンジセンサ200のセンシングプロセッサにおいて、ノイズ除去のために、測距センサで測定した回転座標系の距離情報に対してメディアンフィルタを用いたフィルタリング処理を実行する。また、センシングプロセッサにおいて、測定対象の物体の移動速度を計算する処理を実行する。
【0039】
次に、図4に基づき、脚車輪型ロボット1の移動制御システムについて説明する。
ここで、図4は、脚車輪型ロボット1の移動制御システムを示すブロック図である。
脚車輪型ロボット1の4本の各脚部12の回転関節14,16,18には、図4に示すように、各回転関節14,16,18を回転駆動する関節モータ40がそれぞれ設けられている。各関節モータ40には、関節モータ40の回転角度位置を検出するエンコーダ42と、モータ指令信号およびエンコーダ42の出力信号に基づいて関節モータ40の駆動を制御するドライバ44が設けられている。
【0040】
各脚部12の駆動輪20には、駆動輪20を回転駆動する車輪モータ50がそれぞれ設けられている。各車輪モータ50には、車輪モータ50の回転角度位置を検出するエンコーダ52と、モータ指令信号およびエンコーダ52の出力信号に基づいて車輪モータ50の駆動を制御するドライバ54が設けられている。
脚車輪型ロボット1は、さらに、CPU60と、脚車輪型ロボット1の姿勢を検出する3軸姿勢センサ70と、カメラ32の画像信号を処理するビジョンプロセッサ72と、レーザーレンジセンサ200と、を有して構成される。
【0041】
3軸姿勢センサ70は、ジャイロ若しくは加速度センサ、またはその両方を有し、地軸に対して脚車輪型ロボット1の姿勢の傾きを検出する。
脚車輪型ロボット1は、さらに、脚車輪型ロボット1を無線通信を用いて遠隔操作可能な操作部300等と無線通信を行う無線通信部74と、ビジョンプロセッサ72、無線通信部74およびレーザーレンジセンサ200とCPU60の入出力を中継するハブ76と、警告音等を出力するスピーカ78とを有して構成される。
【0042】
CPU60は、モータ指令出力I/F61を介してドライバ44、54にモータ指令信号を出力し、角度取込I/F62を介してエンコーダ42、52の出力信号を入力する。
CPU60は、レーザーレンジセンサ200に対して、通信I/F64及びハブ76を介して、第1及び第2モータの回転角度位置を検出するエンコーダの出力信号を入力し、第1及び第2モータのドライバにモータ指令信号を出力する。
【0043】
CPU60は、センサ入力I/F63を介して、平面内走査脚先センサ38、レーザーレンジセンサ200および3軸姿勢センサ70からそれぞれセンサ信号を入力する。また、通信I/F64を介してハブ76と信号の入出力を行い、サウンド出力I/F65を介してスピーカ78に音声信号を出力する。
CPU60は、レーザーレンジセンサ200から距離情報が入力されると、そのセンサ座標系の座標をグローバル座標系に変換する座標変換処理を行う。座標変換処理では、脚車輪型ロボット1中心のグローバル座標をXc、Yc、Zc、脚車輪型ロボット1の姿勢(ロール角、ピッチ角、ヨー角)をφ、θ、ψとして、センサ座標系における各測定点を、グローバル座標系の測定点(Xs、Ys、Zs)に変換する。
【0044】
また、歩行動作時において、3軸姿勢センサ70のセンサ信号、並びにグローバル座標系に変換された各測定点に基づいて逆運動学計算および重心計算を行い、この計算結果に基づいて脚先(駆動輪)の着地位置を決定し、物体平面までの距離を算出し、脚先と物体平面の位置関係を算出し、決定した着地位置および算出した両距離に基づいてドライバ44、54へのモータ指令信号を生成し、生成したモータ指令信号をドライバ44、54に出力する。
【0045】
また、車輪走行動作時において、グローバル座標系に変換された障害物の各測定点に基づいてポテンシャル法を用いた斥力の計算を行い、この計算結果に基づいてドライバ44、54へのモータ指令信号を生成し、生成したモータ指令信号をドライバ44、54に出力する。
なお、図示していないが、脚車輪型ロボット1は、専用のプログラムやロボットの制御に必要なパラメータ値等を記憶するROMや、プログラムの実行に必要なデータを一時記憶するRAM等のメモリを備えている。
【0046】
次に、図5及び図6に基づき、移動制御システムにおいて実行される、脚車輪型ロボット1の車輪走行時における障害物回避時の移動制御処理に係る機能構成について説明する。
ここで、図5は、移動制御システムの備える、障害物回避時の移動制御に係る機能構成を示すブロック図である。また、図6は、障害物回避支援部101の詳細な機能構成を示すブロック図である。
【0047】
図5に示すように、移動制御システムは、車輪走行時における障害物回避時の移動制御に係る機能構成部である、障害物回避支援部101と、モータ制御部102とを含む移動制御部100を備えている。
障害物回避支援部101は、レーザーレンジセンサ200で測定した障害物の各測定点の距離情報に基づき、ポテンシャル法を用いて、脚車輪型ロボット1が障害物の各測定点から受ける斥力を計算する機能を有している。更に、各測定点の斥力の計算結果に基づき、障害物回避用の斥力である回避用斥力を計算する機能を有している。
【0048】
具体的に、障害物回避支援部101は、図6に示すように、距離情報記憶部110と、斥力計算部111と、斥力成分分離部112と、回避用斥力生成部113とを含んで構成される。
距離情報記憶部110は、レーザーレンジセンサ200から通信I/F64を介して入力される距離情報を、RAM等のメモリに記憶する機能を有している。
斥力計算部111は、上式(4)又は(7)のポテンシャル関数に基づき、メモリに記憶されたN個の測定点1〜N(Nは、2以上の自然数)の距離情報を用いて、N個の各測定点に対応する斥力U(n)(nは、1〜Nの自然数)を計算する機能を有している。
【0049】
ここで、上式(4)及び(7)は、障害物から受ける斥力を計算するためにKhatibにより設計された公知のポテンシャル関数であり、ηは、正の重み定数であり、ρ0は、正の定数であってポテンシャル関数が影響を与える範囲であり、ρnは、脚車輪型ロボット1と障害物上のn番目の測定点との距離である。このとき、斥力はポテンシャル関数の傾く方向への力を受ける。
【0050】
また、本実施の形態においては、障害物の回避支援モードとして、2次元モードと3次元モードとが設定可能となっている。2次元モードは、上述した、第1走査処理及び第2走査処理を実行して測定された障害物の距離情報のうち、所定の1つのz座標のxy平面の測定点の距離情報を用いて回避用斥力を計算するモードであり、3次元モードは、全ての測定点の距離情報を用いて回避用斥力を計算するモードである。従って、モードに応じてNの値が変わる。
【0051】
具体的に、斥力計算部111は、2次元モードが設定されている場合に、所定の1つのz座標(例えば、原点の座標)のxy平面の測定情報を用いて斥力の計算を行い、3次元モードが設定されている場合に、全て又は移動に係る範囲に対応する一部の3次元の測定情報を用いて斥力の計算を行う。
斥力成分分離部112は、斥力計算部111で計算された障害物上のN個の測定点に対応する斥力U(1)〜U(N)を、上式(5)〜(6)又は上式(8)〜(10)に基づき、軸毎の成分に分離する機能を有している。
【0052】
具体的に、斥力成分分離部112は、2次元モードが設定されているときは、上式(5)〜(6)に基づき、斥力U(n)をx軸の成分Fpx(n)と、y軸の成分Fpy(n)とに分離する。また、3次元モードが設定されているときは、上式(8)〜(10)に基づき、斥力U(n)をx軸の成分Fpx(n)、y軸の成分Fpy(n)及びz軸の成分Fpz(n)に分離する。ここで、各式における(x,y,z)は、上記CPU60で座標変換されたグローバル座標系の(Xs、Ys、Zs)に対応している。
回避用斥力生成部113は、下式(11)〜(16)に基づき、斥力成分分離部112で分離された、斥力U(1)〜U(N)の各軸成分のうち、正方向の最大値と負方向の最大値とを軸毎に抽出する機能を有している。
【0053】
【数1】

【0054】
なお、上式(11)は、x軸成分Fpx(1)〜(N)から最大値Fpxpを抽出する関数であり、上式(13)は、y軸成分Fpy(1)〜(N)から最大値Fpypを抽出する関数である。また、上式(15)は、z軸成分Fpz(1)〜(N)から最大値Fpzpを抽出する関数である。基本的に、上式(11)及び(13)は、各軸成分の正方向の最大値を抽出することを目的とした関数である。以降は、抽出される値の正負に係わらずFpxp、Fpyp及びFpzpを、各軸成分の正方向の最大値として扱うこととする。
【0055】
また、上式(12)は、x軸成分Fpx(1)〜(N)から最小値Fpxnを抽出する関数であり、上式(14)は、y軸成分Fpy(1)〜(N)から最小値Fpynを抽出する関数である。また、上式(16)は、z軸成分Fpz(1)〜(N)から最小値Fpznを抽出する関数である。基本的に、上式(12)及び(14)は、各軸成分の負方向の最大値を抽出することを目的とした関数である。以降は、抽出される値の正負に係わらずFpxn、Fpyn及びFpznを、各軸成分の負方向の最大値として扱うこととする。
【0056】
更に、回避用斥力生成部113は、上式(1)〜(3)に基づき、抽出した軸毎の正方向の最大値と負方向の最大値との和を計算し、この計算結果から回避用斥力Fpを生成する機能を有している。この回避用斥力Fpは、障害物を回避するために移動制御で用いる斥力である。
回避用斥力生成部113は、具体的に、2次元モードが設定されている場合に、まず、上式(11)〜(14)に基づき、x軸の斥力成分の正方向の最大値Fpxp及び負方向の最大値Fpxnを計算し、y軸の斥力成分の正方向の最大値Fpyp及び負方向の最大値Fpynを計算する。
【0057】
次に、回避用斥力生成部113は、上式(1)〜(2)に基づき、x軸成分の正方向の最大値Fpxp及び負方向の最大値Fpxnの和であるFpxと、y軸成分の正方向の最大値Fpyp及び負方向の最大値Fpynの和であるFpyとを計算する。このとき、Fpxpが負の値の場合はFpxpの値をゼロ(0)にし、Fpypが負の値の場合はFpypの値をゼロ(0)にする。このような状況は、例えば、障害物から負方向の斥力しか受けないときに生じる。更に、Fpxnが正の値の場合はFpxnの値をゼロ(0)にし、Fpynが正の値の場合はFpynの値をゼロ(0)にする。このような状況は、例えば、障害物から正方向の斥力しか受けないときに生じる。
更に、回避用斥力生成部113は、上記x軸及びy軸についての正方向の最大値と負方向の最大値との和の計算結果Fpx及びFpyに基づき、下式(17)に示すように、Fpxをx軸成分とし、Fpyをy軸成分としたベクトルである回避用斥力Fpを生成する。
【0058】
【数2】

【0059】
また、回避用斥力生成部113は、3次元モードが設定されている場合に、上式(11)〜(16)に基づき、x軸の斥力成分の正方向の最大値Fpxp及び負方向の最大値Fpxnを計算し、y軸の斥力成分の正方向の最大値Fpyp及び負方向の最大値Fpynを計算し、z軸の斥力成分の正方向の最大値Fpzp及び負方向の最大値Fpznを計算する。更に、上式(1)〜(3)に基づき、x軸成分の正方向の最大値Fpxpと負方向の最大値Fpxnとの和であるFpxと、y軸成分の正方向の最大値Fpypと負方向の最大値Fpynとの和であるFpyと、z軸成分の正方向の最大値Fpzpと負方向の最大値Fpznとの和であるFpzとを計算する。そして、下式(18)に示すように、Fpxをx軸成分とし、Fpyをy軸成分とし、Fpzをz軸成分としたベクトルである回避用斥力Fpを生成する。
なお、z軸成分についても、Fpzpが正の値の場合はFpzpの値をゼロ(0)にし、Fpznが正の値の場合はFpznの値をゼロ(0)にする。}
【0060】
【数3】

【0061】
回避用斥力生成部113は、回避用斥力Fpを生成すると、生成したFpをモータ制御部102に出力する。
図5に戻って、モータ制御部102は、操作部300からの指示入力と、レーザーレンジセンサ200からの障害物の位置情報と、障害物回避支援部101からの回避用斥力Fpと、各エンコーダからの回転角度情報とに基づき、障害物の回避動作を含む走行制御のためのモータ指令信号を生成する機能を有している。
【0062】
例えば、利用者の操作入力が障害物方向への移動を示していた場合に、モータを停止する指令信号を生成したり、自動で障害物を回避する軌道を移動させる指令信号を生成したりする。
なお、本実施の形態において、上記障害物回避支援部101の各構成部及びモータ制御部102の各機能は、CPU60において専用のプログラムを実行することで実現される。
【0063】
次に、図7に基づき、障害物回避支援部101の回避用斥力Fpの生成処理の流れを説明する。ここで、図7は、回避用斥力Fpの生成処理を示すフローチャートである。
回避用斥力Fpの生成処理は、CPU60が、ROMに記憶された専用のプログラムを読み出し、当該読み出したプログラムを実行することで実現される処理であり、処理が開始されると、図7に示すように、まず、ステップS100に移行する。
【0064】
ステップS100では、斥力計算部111において、利用者の操作に応じた操作部300からの通信I/F64を介した操作入力があったか否かを判定し、操作入力があったと判定した場合(Yes)は、ステップS102に移行する。一方、操作入力がなかったと判定した場合(No)は、操作入力があるまで判定処理を繰り返す。
ステップS102に移行した場合は、斥力計算部111において、メモリから距離情報を取得して、ステップS104に移行する。
【0065】
ステップS104では、斥力計算部111において、取得した距離情報に基づき、障害物があるか否かを判定し、障害物があると判定した場合(Yes)は、ステップS106に移行し、そうでない場合(No)は、一連の処理を終了する。
ステップS106に移行した場合は、斥力計算部111において、上式(4)又は(7)のポテンシャル関数に基づき、N個の距離情報の各距離情報を用いて各測定点に対応する斥力U(n)を計算して、ステップS108に移行する。
【0066】
ステップS108では、斥力成分分離部112において、ステップS106で計算した斥力U(n)を、上式(5)〜(6)又は(8)〜(10)に基づき、各軸成分に分離して、ステップS110に移行する。
ステップS110では、斥力成分分離部112において、N個の測定点について、斥力U(1)〜U(N)の計算及びこれらの各軸成分への分離処理が終了したか否かを判定し、終了したと判定した場合(Yes)は、ステップS112に移行する。また、終了していないと判定した場合(No)は、ステップS106に移行する。
【0067】
ステップS112に移行した場合は、回避用斥力生成部113において、設定されたモードに応じて、上式(11)及び(13)又は上式(11)、(13)及び(15)に基づき、N個の測定点に対応する軸成分の中から軸毎に最大値を抽出して、ステップS114に移行する。
ステップS114では、回避用斥力生成部113において、設定されたモードに応じて、上式(12)及び(14)又は上式(12)、(14)及び(16)に基づき、N個の測定点に対応する軸成分の中から軸毎に負方向の最大値を抽出して、ステップS116に移行する。
【0068】
ステップS116では、回避用斥力生成部113において、設定されたモードに応じた全ての軸の正方向の最大値の中に負の値のものがあるか否かを判定し、負の値のものがあると判定した場合(Yes)は、ステップS118に移行し、そうでない場合(No)は、ステップS120に移行する。
ステップS118に移行した場合は、回避用斥力生成部113において、負の値となっている正方向の最大値Fp-pをゼロ(0)に変更して、ステップS120に移行する。なお、Fp-pの「−」部分は、x,y,zのうち負の値となる軸が全て該当する。
【0069】
ステップS120では、回避用斥力生成部113において、設定されたモードに応じた全ての軸の負方向の最大値の中に正の値のものがあるか否かを判定する。そして、正の値のものがあると判定した場合(Yes)は、ステップS122に移行し、そうでない場合(No)は、ステップS124に移行する。
ステップS122に移行した場合は、回避用斥力生成部113において、正の値となっている負方向の最大値Fp-nをゼロ(0)に変更して、ステップS124に移行する。なお、Fp-nの「−」部分は、x,y,zのうち正の値となる軸が全て該当する。
【0070】
一方、ステップS124に移行した場合は、回避用斥力生成部113において、上式(1)〜(2)又は(1)〜(3)に基づき、軸毎に正方向と負方向の最大値の和を計算して、ステップS126に移行する。
ステップS126では、回避用斥力生成部113において、ステップS124の計算結果に基づき、回避用斥力Fpを生成して、ステップS128に移行する。
ステップS128では、回避用斥力生成部113において、ステップS126で生成した回避用斥力Fpを、モータ制御部102に出力して、一連の処理を終了する。
なお、上記一連の処理は、脚車輪型ロボット1の移動に伴って、新たに測定されるN個の測定情報が記憶される毎に繰り返し行われる。
【0071】
次に、図8に基づき、モータ制御部102における、障害物回避時のモータ制御処理の流れを説明する。
ここで、図8は、障害物回避時のモータ制御処理を示すフローチャートである。
障害物回避時のモータ制御処理は、CPU60が、ROMに記憶された専用のプログラムを読み出し、当該読み出したプログラムを実行することで実現される処理であり、処理が開始されると、図8に示すように、まず、ステップS200に移行する。
ステップS200では、モータ制御部102において、利用者の操作に応じた操作部300からの通信I/F64を介した操作入力があったか否かを判定し、操作入力があったと判定した場合(Yes)は、ステップS202に移行する。一方、操作入力がなかったと判定した場合(No)は、操作入力があるまで判定処理を繰り返す。
【0072】
ステップS202に移行した場合は、モータ制御部102において、障害物回避支援部101から回避用斥力Fpを取得したか否かを判定し、取得したと判定した場合(Yes)は、ステップS204に移行し、そうでない場合(No)は、取得するまで判定処理を繰り返す。
ステップS204に移行した場合は、モータ制御部102において、通信I/F64を介して、障害物の位置情報を取得して、ステップS206に移行する。
【0073】
ステップS206では、モータ制御部102において、角度取込I/F62を介して、各モータの回転角度情報を取得して、ステップS208に移行する。
ステップS208では、モータ制御部102において、操作入力、回避用斥力、位置情報及び回転角度情報に基づき、障害物を回避するためのモータ指令を生成して、ステップS210に移行する。
ステップS210では、モータ制御部102において、モータ指令出力I/F61を介して、モータ指令信号を各モータのドライバに出力して、ステップS200に移行する。
【0074】
次に、図9〜図11に基づき、本実施の形態の動作を説明する。
ここで、図9(a)は、曲がり角を形成する壁(障害物)と脚車輪型ロボット1との位置関係の一例を示す図であり、(b)は、直線路を形成する壁と脚車輪型ロボット1との位置関係の一例を示す図である。また、図10(a)は、図9(a)の曲がり角を脚車輪型ロボット1がA点からB点へと移動したときの位置の変化に対する本実施の形態の回避用斥力の変化を示す図である。また、図10(b)は、図9(b)の直線路を脚車輪型ロボット1がA点からB点へと移動したときの位置の変化に対する本実施の形態の回避用斥力の変化を示す図である。なお、図9中の黒点は、斜線で示す障害物に対する距離の測定点を示す。
脚車輪型ロボット1は、電源の投入に応じて、レーザーレンジセンサ200に対して、CPU60から指令信号を与えて、指定走査角度範囲及び指定走査角度単位の距離測定を開始させる。
【0075】
一方、レーザーレンジセンサ200は、CPU60からの指令信号に応じて、センシングプロセッサにおいて指定された走査角度範囲及び走査角度単位を設定する。
ここで、レーザーレンジセンサ200は、測距範囲20〜4095[mm]、最大走査角度範囲240°、角度分解能0.36°の2次元レンジセンサを備えていることとする。
また、第1走査処理に対して、走査角度範囲−40°〜+40°及び走査角度単位0.36°が設定され、第2走査処理に対して、走査角度範囲240°及び走査角度単位10°が設定されたとする(この場合は、xy平面において扇形の測定平面が9つ形成される)。
【0076】
次に、センシングプロセッサは、第1走査処理に対して設定された走査角度範囲及び走査角度単位(θ)に基づき、ドライバに指令信号を出力する。
2次元レンジセンサは、ドライバにおいて、センシングプロセッサからの指令信号及びエンコーダからの出力信号に基づき、第1モータの回転軸を回転駆動して、2次元レンジセンサを、垂直方向の軸(z軸)まわりに、−40°〜+40°の範囲を0.36°刻みで走査しながら測距を行う。
引き続き、水平方向の軸(y軸)まわりに、回転角度10°回動して、再び、−40°〜+40°の範囲を0.36°刻みで走査しながら測距を行う(第2走査処理)。
上記のようにして、第1走査処理及び第2走査処理を行うことで、上記走査範囲内にある障害物の距離情報を測定する。
【0077】
また、各測定距離の情報(回転座標系)は、データ列L(θi,φj)として、センシングプロセッサへと出力される。
また、1つの測定平面に対する第1走査処理が終了すると、センシングプロセッサは、第1走査処理において測定された距離情報に対して、メディアンフィルタを用いたフィルタリング処理を行う。これにより、測定情報におけるノイズ成分を除去する。
【0078】
次に、センシングプロセッサは、フィルタリング処理後の回転座標系の距離情報を、直交座標系の距離情報に変換し、直交座標系に変換された距離情報をハブ76及び通信I/F64を介してCPU60に入力する。また、センシングプロセッサは、測定した距離情報に基づき障害物の速度を算出し、算出した速度情報を、ハブ76及び通信I/F64を介してCPU60に入力する。入力された距離情報は、距離情報記憶部110において、メモリに記憶される。
【0079】
距離情報は、脚車輪型ロボット1の移動経路上に、図9(a)に示すような曲がり角がある場合は、図9(a)中の黒点に示すように、曲がり角を構成する壁等の障害物の形状に沿った座標情報を有する。また、脚車輪型ロボット1が、図9(b)に示す直線路を移動する場合は、図9(b)中の黒点に示すように、通路を形成する壁などの障害物の形状に沿った座標情報を有する。但し、図9(a)及び(b)に示す例は、2次元座標の測定点を示すものである。
【0080】
一方、障害物回避支援部101は、斥力計算部111において、操作部300を介した利用者からの操作入力があったことを判定すると(ステップS100の「Yes」の分岐)、メモリから距離情報(N個)を取得する(ステップS102)。操作部300は、前進用ボタン、後進用ボタン、旋回ボタンなどのボタン操作によるもの、アナログレバーによる操作(レバーを倒した方向に倒した角度に応じた速度で走行)によるものなどが該当する。
【0081】
次に、斥力計算部111において、2次元モードが設定されている場合は上式(4)に、3次元モードが設定されている場合は上式(7)に基づき、取得した各距離情報(測定点)に対する斥力U(n)を計算する(ステップS104)。ここで、nは、1〜N(Nは測定点の総数)の自然数とする。
斥力U(n)が計算されると、斥力成分分離部112において、斥力U(n)を、2次元モードが設定されている場合は上式(5)〜(6)に、3次元モードが設定されている場合は上式(8)〜(10)に基づき、各軸成分に分離する(ステップS108)。このステップS106〜S108の処理は、N個の測定点について全てが終了するまで繰り返し行われる。
これにより、N個の測定点について、斥力U(1)〜U(N)として、「η/2・(1/ρ−1/ρ02」〜「η/2・(1/ρ−1/ρ02」が算出される。
【0082】
また、斥力U(1)〜U(N)が、2次元モードの場合は、x軸成分「Fpx(1)〜Fpx(N)」、及びy軸成分「Fpy(1)〜Fpy(N)」に分離される。また、3次元モードの場合は、x軸成分「Fpx(1)〜Fpx(N)」、y軸成分「Fpy(1)〜Fpy(N)」、及びz軸成分「Fpz(1)〜Fpz(N)」に分離される。
N個の測定点について、上記計算が終了すると(ステップS110の「Yes」の分岐)、次に、回避用斥力生成部113において、分離された軸成分から軸毎の正方向の最大値及び負方向の最大値を抽出する(ステップS112〜S114)。
具体的に、2次元モードが設定されている場合は上式(11)〜(14)に基づき、「Fpx(1)〜Fpx(N)」から、x軸成分の正方向の最大値Fpxp及び負方向の最大値Fpxnを抽出し、「Fpy(1)〜Fpy(N)」から、y軸成分の正方向の最大値Fpyp及び負方向の最大値Fpynを抽出する。
【0083】
また、3次元モードが設定されている場合は上式(11)〜(16)に基づき、上記x軸成分の正方向の最大値Fpxp及び負方向の最大値Fpxnと、y軸成分の正方向の最大値Fpyp及び負方向の最大値Fpynとに加えて、「Fpz(1)〜Fpz(N)」から、z軸成分の正方向の最大値Fpzp及び負方向の最大値Fpznを抽出する。
回避用斥力生成部113は、次に、全ての軸成分の正方向の最大値の中に負の値のものが含まれているか否かを判定し(ステップS116)、負の値のものが含まれている場合(ステップS116の「Yes」の分岐)は、負の値となっている最大値を全てゼロ(0)に変更する(ステップS118)。具体的に、回避用斥力生成部113は、2次元モードが設定されている場合は、Fpxp及びFpypのうち負の値となっているものをゼロに変更し、3次元モードが設定されている場合は、Fpxp、Fpyp及びFpzpのうち負の値となっているものをゼロに変更する。
【0084】
つまり、脚車輪型ロボット1が、各軸成分について、障害物から負の斥力しか受けていない場合に、該当する軸の軸成分の正方向の最大値をゼロにする。
引き続き、回避用斥力生成部113は、全ての軸成分の負方向の最大値の中に正の値のものが含まれているか否かを判定する(ステップS120)。そして、正の値のものが含まれている場合(ステップS120の「Yes」の分岐)は、正の値となっている最大値を全てゼロ(0)に変更する(ステップS122)。
【0085】
つまり、脚車輪型ロボット1が、各軸成分について、障害物から正の斥力しか受けていない場合に、該当する軸の軸成分の負方向の最大値をゼロにする。具体的に、回避用斥力生成部113は、2次元モードが設定されている場合は、Fpxn及びFpynのうち正の値となっているものをゼロに変更し、3次元モードが設定されている場合は、Fpxn、Fpyn及びFpznのうち正の値となっているものをゼロに変更する。
【0086】
また、全ての軸成分の正方向の最大値がいずれも正の値で、かつ負方向の最大値がいずれも負の値となっている場合(ステップS116,S120の双方で「No」の分岐)は、正方向及び負方向の最大値はいずれもそのままの値とする。
そして、上記判定及び変更処理後に、回避用斥力生成部113は、軸毎に正方向の最大値と負方向の最大値との和を計算する(ステップS124)。
【0087】
具体的に、回避用斥力生成部113は、2次元モードが設定されている場合は、上式(1)〜(2)に基づき、「Fpx=Fpxp+Fpxn」と「Fpy=Fpyp+Fpyn」とを計算する。
また、回避用斥力生成部113は、3次元モードが設定されている場合は、上式(1)〜(3)に基づき、「Fpx=Fpxp+Fpxn」と「Fpy=Fpyp+Fpyn」と、「Fpz=Fpzp+Fpzn」とを計算する。
【0088】
そして、回避用斥力生成部113は、2次元モードが設定されている場合は、上記計算結果であるx軸成分「Fpx」と、y軸成分「Fpy」とを軸成分として、上式(17)で示される回避用斥力Fpを生成する(ステップS126)。
また、回避用斥力生成部113は、3次元モードが設定されている場合は、上記計算結果であるx軸成分「Fpx」と、y軸成分「Fpy」と、z軸成分「Fpz」を軸成分として、上式(18)で示される回避用斥力Fpを生成する(ステップS126)。
更に、回避用斥力生成部113は、生成した回避用斥力Fpを、モータ制御部102に出力する(ステップS128)。
【0089】
一方、モータ制御部102は、利用者の操作入力を検出し且つ障害物回避支援部101から回避用斥力Fpを取得すると(ステップS200及びS202の「Yes」の分岐)、レーザーレンジセンサ200から、通信I/F64を介して入力される障害物の位置情報を取得する(ステップS204)。なお、ここでは、障害物は曲がり角(固定物)であるため、障害物の速度は「0」となる。
【0090】
次に、角度取込I/F62を介して入力される各モータの回転角度情報を取得し(ステップS206)、操作入力、回避用斥力Fp、位置情報及び回転角度情報に基づき、障害物を回避しつつ、A点からB点に移動するためのモータ指令を生成する(ステップS208)。そして、生成したモータ指令に基づきモータ指令信号をモータ指令出力I/F61を介して、各モータに出力する(ステップS210)。
これにより、各モータが制御されて脚車輪型ロボット1は、モータ指令信号に応じた方向に、モータ指令信号に応じた速度で車輪走行する。
障害物回避支援部101及びモータ制御部102の上記一連の処理は、操作入力がある間、繰り返し行われる。
【0091】
このようにして、脚車輪型ロボット1が、図9(a)に示すように、曲がり角に対して、A点からB点に移動したとする。この場合に、回避用斥力Fpは、A点からB点への位置変化に対して、2次元モードが設定されている場合に、図10(a)に示すように、最近接距離の切り替えが生じていても、x軸成分Fpx及びy軸成分Fpyが共に連続的な変化を示すものとなる。
【0092】
一方、図9(a)に示すA点からB点への移動を行った場合に、従来技術のように最近接距離を用いて計算した回避用斥力は、図11(a)に示すように、A点からB点への中間位置において、最近接距離の切り替えが発生しており、中間位置でFpx及びFpyの急激な変化が生じている。
また、図9(b)に示すように、x軸の正方向側及び負方向側に障害物が存在し、y軸の正方向側及び負方向側の測定範囲内に障害物が存在しない直線路を、図9(b)中のA点からB点へと移動した場合も、上記曲がり角のときと同様に回避用斥力Fpを計算することができる。
【0093】
但し、y軸方向に障害物が存在しないため、回避用斥力Fpにおけるy軸成分Fpyがゼロとなる。従って、回避用斥力Fpの変化は、x軸成分Fpxの変化となる。この場合も、図10(b)に示すように、最近接距離の切り替えが生じていても、x軸成分Fpxは、連続的な変化を示すものとなる。また、このときのx軸成分の最大値Fpxpの変化は、図中の破線に示すように連続的な変化となり、x軸成分の負方向の最大値Fpxnの変化も、図中の点線に示すように連続的な変化となっている。
【0094】
一方、図9(b)に示すA点からB点への移動を行った場合に、従来技術のように最近接距離を用いて計算した回避用斥力Fpは、図11(b)に示すように、A点からB点への中間位置において、最近接距離の切り替えが発生しており、中間位置でFp(Fpx)の急激な変化が生じている。
このようにして、本実施の形態の脚車輪型ロボット1は、レーザーレンジセンサ200において、障害物の2次元又は3次元の距離情報を測定し、測定した距離情報に基づき、障害物回避支援部101において、障害物の各測定点から仮想的に受ける斥力を計算することができる。
【0095】
更に、障害物回避支援部101において、計算した斥力を軸成分に分離し、分離した軸成分から軸毎に正方向の最大値及び負方向の最大値を抽出し、抽出した正方向と負方向の最大値の和を軸毎に計算し、この計算結果から回避用斥力Fpを生成することができる。
更に、モータ制御部102において、操作部300からの操作入力と、回避用斥力Fpと、レーザーレンジセンサ200から入力される障害物の速度情報と、各モータのエンコーダから入力される回転角度情報とに基づきモータ指令信号を生成することができる。
【0096】
これにより、移動体の移動位置に応じて最近接距離の切り替わりが生じても、回避用斥力は連続して変化するので、速度の急激な変化等が生じない安定した移動制御を行うことができる。
また、斥力の軸成分の正方向の最大値と負方向の最大値との和を用いて回避用斥力Fpを生成するようにしたので、障害物の大小や測定点群の密度などに影響を受けない回避用斥力Fpを生成することができる。
【0097】
〔第2の実施の形態〕
次に、本発明の第2の実施の形態を図面に基づき説明する。図12は、本発明に係る障害物回避支援装置、障害物回避支援方法及び移動体の第2の実施の形態を示す図である。
本実施の形態は、本発明に係る障害物回避支援装置を、移動体である、車輪による走行移動が可能な案内用ロボットに適用したものである。
【0098】
図12は、本実施の形態の案内用ロボットの側面図であり、案内用ロボット81の構成を示す図である。
図12に示すように、本実施の形態の案内用ロボット81は、基体82と、左右一対の移動用車輪84R及び84Lと、2つの距離情報測定部86F及び86Bと、把持部88と、入力値検出手段90と、移動モード切り換え操作部92と、スピーカ94と、2つのキャスタ装置96F及び96Bとを備えている。
基体82は、上面視で八角形をなす中空体により形成されている。なお、基体82の形状は、これに限定するものではなく、例えば、上面視で円形をなす形状に形成してもよい。
【0099】
移動用車輪84R及び84Lは、後述する移動用アクチュエータ162が発生する駆動力により回転する車輪である。そして、移動用車輪84R及び84Lは、移動用アクチュエータ162が発生する駆動力を伝達可能なプーリ等を介して、移動用アクチュエータ162に接続されている。また、一対の車輪は、それぞれ、基体82の下面において、基体82の中心を基準とした両側面側へ回転可能に配置されている。なお、図12中では、移動用車輪84を形成する一対の車輪のうち、左側移動用車輪84Lのみを示している。
【0100】
距離情報測定部86F及び86Bは、上記第1の実施の形態におけるレーザーレンジセンサ200と同様の構成を有したセンサから形成されたものである。距離情報測定部86Fは基体82の前面側に配置され、距離情報測定部86Bは基体82の後面側に配置されている。なお、距離情報測定部86F及び86Bは、レーザレンジセンサに限定されるものではなく、例えば、赤外線センサや超音波センサ等を用いて形成してもよい。
【0101】
具体的に、距離情報測定部86F及び86Bは、上記第1の実施の形態のレーザーレンジセンサ200と同様に第1走査処理及び第2走査処理を行って、案内用ロボット81の前面側及び後面側の3次元の測定範囲内にある障害物の距離情報を測定する。なお、距離情報測定部86F及び86Bは、第1の走査処理のみを行い、2次元の測定範囲内にある障害物の距離情報を測定する構成としてもよい。
【0102】
把持部8は、フレーム部(不図示)と、グリップ部(不図示)とを備え、フレーム部は、入力値検出部(不図示)を介して、基体82の上面に取り付けられている。
グリップ部は、被案内者(利用者)が片手で把持可能な略円柱状に形成されている。
入力値検出部は、互いに直交する三軸(x,y,z)の方向に付与される力と、これら三軸の軸回りのモーメントをそれぞれ検出可能な六軸力センサであり、フレーム部と基体82の上面との間に介装されている。
【0103】
これにより、入力値検出部は、グリップ部を把持する被案内者により、グリップ部を介した把持部88への入力を、互いに直交する三軸の方向に付与される力と、これら三軸の軸回りのモーメントとして、それぞれ検出可能に形成されている。
キャスタ装置96は、キャスタ(不図示)と、伸縮用アクチュエータ(不図示)と、床反力検出部(不図示)とを備えている。
【0104】
キャスタは、平衡用車輪と、平衡用車輪支持部と、キャスタ支持軸とを有している。
伸縮用アクチュエータは、キャスタを上下動させてキャスタ装置96を伸縮させるアクチュエータである。また、伸縮用アクチュエータは、直線運動する直動軸を有しており、キャスタフレームにより支持されている。したがって、キャスタは、基体82と平衡用車輪との間に介装し、且つ平衡用車輪の回転軸と直交する方向へ伸縮する伸縮部を形成している。
【0105】
また、案内用ロボット81は、上記第1の実施の形態における、図4に示す移動システムと同様の移動システムを備えている。具体的に、図4に示す移動システムから、脚部12に関連する関節モータ40、エンコーダ42、ドライバ44及び脚先センサ38等の不要な構成要素を取り除き、レーザーレンジセンサ200を距離情報測定部86F及び86Bに、操作部300を把持部88に、スピーカ78をスピーカ94にそれぞれ置き換えた構成となる。更に、車輪20(×4)を駆動する各車輪モータ50、エンコーダ52及びドライバ54を、移動用車輪96F及び96Bを駆動するアクチュエータ162、エンコーダ及びドライバに置き換えた構成となる。更に、キャスタ装置96を駆動する伸縮用アクチュエータ、ドライバ、床反力検出部、これらの入出力I/F等の案内用ロボット81に特有の要素を加えた構成となる。
【0106】
また、案内用ロボット81は、上記第1の実施の形態の脚車輪型ロボット1と同様に、車輪走行時における障害物回避時の移動制御に係る機能構成部である、障害物回避支援部101と、モータ制御部102とを含む移動制御部100を備えている。
本実施の形態において、障害物回避支援部101は、距離情報測定部86F及び86Bからの障害物の距離情報に基づき、上記第1の実施の形態と同様に、上式(1)〜(18)に基づき、回避用斥力Fpを計算する。
【0107】
また、モータ制御部102は、把持部88からの六軸力センサを介した力入力と、距離情報測定部86F又は86Bからの障害物の位置情報と、障害物回避支援部101からの回避用斥力Fpと、各エンコーダからの回転角度情報とを取得する。そして、これら取得した情報に基づき、障害物の回避動作を含む走行制御のためのアクチュエータ162のドライバへの指令信号を生成する。
【0108】
このようにして、本実施の形態の案内用ロボット81は、距離情報測定部86F及び86Bにおいて、障害物の2次元又は3次元の距離情報を測定することができる。そして、測定した距離情報に基づき、障害物回避支援部101において、案内用ロボット81の移動経路上(前面側又は後面側の測定範囲内)に存在する障害物の各測定点から仮想的に受ける斥力を計算することができる。
【0109】
更に、障害物回避支援部101において、計算した斥力を軸成分に分離し、分離した軸成分から軸毎に正方向の最大値及び負方向の最大値を抽出し、抽出した正方向及び負方向の最大値の和を軸毎に計算し、この計算結果から回避用斥力Fpを生成することができる。
更に、モータ制御部102において、把持部88からの力入力と、回避用斥力Fpと、距離情報測定部86F及び86Bから入力される障害物の位置情報と、各モータのエンコーダから入力される回転角度情報とに基づきモータ指令信号を生成することができる。
【0110】
これにより、案内用ロボット81の移動位置に応じて最近接距離の切り替わりが生じても、回避用斥力は連続して変化するので、速度の急激な変化等が生じない安定した移動制御を行うことができる。
また、斥力の軸成分の正方向の最大値と負方向の最大値との和を用いて回避用斥力Fpを生成するようにしたので、障害物の大小や測定点群の密度などに影響を受けない回避用斥力Fpを生成することができる。
【0111】
上記各実施の形態において、距離情報記憶部110及びメモリは、距離情報記憶部又は距離情報記憶手段に対応し、斥力計算部111は、斥力計算部に対応し、斥力成分分離部112は、斥力成分分離部に対応する。
また、上記第1の実施の形態において、回避用斥力生成部113は、回避用斥力生成部に対応し、モータ制御部102、ドライバ44,54は、アクチュエータ制御部に対応する。
【0112】
また、上記第2の実施の形態において、回避用斥力生成部113は、回避用斥力生成部に対応し、モータ制御部102、ドライバ54は、アクチュエータ制御部に対応する。
また、上記第1の実施の形態において、ステップS106は、斥力計算ステップに対応し、ステップS108は、斥力成分分離ステップに対応し、ステップS110〜S126は、回避用斥力生成ステップに対応する。
【0113】
また、上記各実施の形態において、脚車輪型ロボット1又は案内用ロボット81のCPU60、メモリ及び障害物回避支援部101によって構成される構成部は、障害物回避支援装置に対応し、脚車輪型ロボット1及び案内用ロボット81は、移動体に対応する。
なお、上記各実施の形態において、障害物回避支援装置を、脚車輪型ロボット1及び案内用ロボット81のCPU60やメモリ等のハードウェア資源を共用して、CPU60でメモリに記憶された専用のプログラムを実行することで障害物回避支援部101の各機能を実現する構成としたが、この構成に限らない。
【0114】
例えば、別途プロセッサ及びメモリを有し、該プロセッサによって専用のプログラムを実行して障害物回避支援部101の各機能を実現する独立した装置として構成してもよい。
また、専用のプログラムを実行するソフトウェアによる処理ではなく、障害物回避支援部101の各処理の一部又は全部を電気回路等のハードウェアを用いて行う構成としてもよい。
【0115】
また、上記各実施の形態において、斥力の計算に、上式(4)及び(7)に示す、Khatibの設計したポテンシャル関数を用いる構成を説明したが、この構成に限らず、斥力を計算可能な他の公知のポテンシャル関数を用いる構成としてもよい。
また、上記第1の実施の形態において、本発明に係る障害物回避支援装置を、脚車輪型ロボットに適用し、上記第2の実施の形態において、本発明に係る障害物回避支援装置を、案内用ロボットに適用する例を説明したが、これに限らず、他の移動手段を用いて移動を行うロボットや、船舶、自動車などの他の移動体に適用することも可能である。
【0116】
また、上記各実施の形態において、本発明に係る障害物回避支援装置を、利用者の操作に応じて移動動作を行うロボットに適用したが、この構成に限らず、自律移動型のロボット等の自律移動を行うことが可能な移動体に適用することも可能である。
また、上記第1の実施の形態においては、レーザーレンジセンサ200によって障害物までの距離情報を測定する構成としたが、この構成に限らず、距離画像センサ等の他の測距センサを用いる構成としてもよい。
【0117】
また、上記各実施の形態では、レーザーレンジセンサ200において測距センサ自身を回転させて測定範囲の走査を行っているが、これに限らず、測距センサの光軸上に挿入したミラーを回転させて走査を行う構成としてもよい。
また、上記各実施の形態は、本発明の好適な具体例であり、技術的に好ましい種々の限定が付されているが、本発明の範囲は、上記の説明において特に本発明を限定する旨の記載がない限り、これらの形態に限られるものではない。また、上記の説明で用いる図面は、図示の便宜上、部材ないし部分の縦横の縮尺は実際のものとは異なる模式図である。
また、本発明は上記各実施の形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【符号の説明】
【0118】
1 脚車輪型ロボット
100 移動制御部
101 障害物回避支援部
102 モータ制御部
110 距離情報記憶部
111 斥力計算部
112 斥力成分分離部
113 回避用斥力生成部
200 レーザーレンジセンサ
300 操作部
40、50 モータ
42、52 エンコーダ
12b、14、44、54 ドライバ
60 CPU
61 モータ指令出力I/F
62 角度取込I/F
64 通信I/F
74 無線通信部
76 ハブ
81 案内用ロボット
86F及び86B 距離情報測定部

【特許請求の範囲】
【請求項1】
移動体の移動経路上に存在する障害物の回避動作を支援する障害物回避支援装置であって、
前記移動体の移動経路上に存在する障害物の形状に沿った複数の測定点に対して測定された距離情報を記憶する距離情報記憶部と、
前記距離情報記憶部に記憶された距離情報に基づき、ポテンシャル関数を用いて前記障害物の前記複数の測定点の各測定点から仮想的に受ける斥力を計算する斥力計算部と、
前記斥力計算部で計算した各測定点に対応する斥力を前記測定点の座標を規定する各軸の軸成分に分離する斥力成分分離部と、
前記各測定点の前記分離した軸成分に基づき、前記障害物の回避動作に係る斥力である回避用斥力を生成する回避用斥力生成部と、を備え、
前記回避用斥力生成部は、前記各測定点に対応する斥力の軸成分における各軸の正方向の成分の最大値と負方向の成分の最大値との和を軸毎に計算し、該計算結果に基づき前記回避用斥力を生成することを特徴とする障害物回避支援装置。
【請求項2】
前記測定点の座標が、互いに直交するx軸及びy軸により規定される2次元座標(x,y)で表され、n番目(nは、測定点の総数をNとした場合に1≦n≦Nの自然数)の測定点に対応する斥力におけるx軸方向の成分がFpx(n)、y軸方向の成分がFpy(n)で表される場合に、前記回避用斥力生成部は、前記回避用斥力におけるx軸方向の成分Fpx及びy軸方向の成分Fpyを、下式(1)〜(2)に基づき計算し、
px=Fpxp+Fpxn ・・・(1)
py=Fpyp+Fpyn ・・・(2)
前記式(1)〜(2)において、Fpxpは、N個の測定点に対応する斥力におけるx軸の正方向の成分の最大値であり、Fpxnは、N個の測定点に対応する斥力におけるx軸の負方向の成分の最大値であり、Fpypは、N個の測定点に対応する斥力におけるy軸の正方向の成分の最大値であり、Fpynは、N個の測定点に対応する斥力におけるy軸の負方向の成分の最大値であり、前記式(1)〜(2)において、前記Fpxpが負の値の場合は当該Fpxpの値をゼロとし、前記Fpypが負の値の場合は当該Fpypの値をゼロとし、前記Fpxnが正の値の場合は当該Fpxnの値をゼロとし、前記Fpynが正の値の場合は当該Fpynの値をゼロとすることを特徴とする請求項1に記載の障害物回避支援装置。
【請求項3】
前記測定点の座標が、前記x軸及び前記y軸の双方に直交するz軸を更に含む3次元座標(x,y,z)で表され、n番目の測定点に対応する斥力におけるz軸方向の成分がFpz(n)で表される場合に、前記回避用斥力生成部は、前記回避用斥力におけるz軸方向の成分Fpzを、下式(3)に基づき計算し、
pz=Fpzp+Fpzn ・・・(3)
前記式(3)において、Fpzpは、N個の測定点に対応する斥力におけるz軸の正方向の成分の最大値であり、Fpznは、N個の測定点に対応する斥力におけるz軸の負方向の成分の最大値であり、前記Fpzpが負の値の場合は当該Fpzpの値をゼロとし、前記Fpznが正の値の場合は当該Fpznの値をゼロとすることを特徴とする請求項2に記載の障害物回避支援装置。
【請求項4】
前記測定点の座標が、互いに直交するx軸及びy軸により規定される2次元座標(x,y)で表される場合に、前記斥力計算部は、n番目(nは、測定点の総数をNとした場合に1〜Nの自然数)の測定点に対応する斥力U(n)を下式(4)に示すポテンシャル関数に基づき計算し、前記斥力成分分離部は、前記斥力U(n)を、下式(5)〜(6)に基づき、x軸方向の成分Fpx(n)及びy軸方向の成分Fpy(n)に分離することを特徴とする請求項1又は請求項2に記載の障害物回避支援装置。
U(n)=η/2・(1/ρn−1/ρ02 ・・・(4)
px(n)=∂U(n)/∂x ・・・(5)
py(n)=∂U(n)/∂y ・・・(6)
但し、前記式(4)において、ηは、正の重み定数であり、ρ0は、正の定数であって前記ポテンシャル関数が影響を与える範囲であり、ρnは、前記移動体の現在位置からn番目の測定点までの距離である。
【請求項5】
前記測定点の座標が、各々が互いに直交するx軸、y軸及びz軸により規定される3次元座標(x,y,z)で表される場合に、前記斥力計算部は、n番目(nは、測定点の総数をNとした場合に1〜Nの自然数)の測定点に対応する斥力U(n)を下式(7)に示すポテンシャル関数に基づき計算し、前記斥力成分分離部は、前記斥力U(n)を、下式(8)〜(10)に基づき、x軸方向の成分Fpx(n)、y軸方向の成分Fpy(n)及びz軸方向の成分Fpz(n)に分離することを特徴とする請求項1又は請求項3に記載の障害物回避支援装置。
U(n)=η/2・(1/ρn−1/ρ02 ・・・(7)
px(n)=∂U(n)/∂x ・・・(8)
py(n)=∂U(n)/∂y ・・・(9)
pz(n)=∂U(n)/∂z ・・・(10)
但し、上式(7)において、ηは、正の重み定数であり、ρ0は、正の定数であって前記ポテンシャル関数が影響を与える範囲であり、ρnは、前記移動体の現在位置からn番目の測定点までの距離である。
【請求項6】
移動体の移動経路上に存在する障害物の回避動作を支援する障害物回避支援方法であって、
前記移動体の移動経路上に存在する障害物の形状に沿った複数の測定点に対して測定された距離情報の記憶された距離情報記憶手段の前記距離情報に基づき、ポテンシャル関数を用いて前記障害物の前記複数の測定点の各測定点から仮想的に受ける斥力を計算する斥力計算ステップと、
前記斥力計算ステップで計算した各測定点に対応する斥力を前記測定点の座標を規定する各軸の軸成分に分離する斥力成分分離ステップと、
前記各測定点の前記分離した軸成分に基づき、前記障害物の回避動作に係る斥力である回避用斥力を生成する回避用斥力生成ステップと、を含み、
前記回避用斥力生成ステップにおいては、前記各測定点に対応する斥力の軸成分における各軸の正方向の成分の最大値と負方向の成分の最大値との和を軸毎に計算し、該計算結果に基づき前記回避用斥力を生成することを特徴とする障害物回避支援方法。
【請求項7】
基体と、
前記基体を移動させるアクチュエータを有する移動機構と、
移動経路上に存在する障害物の形状に沿った複数の測定点に対する距離情報を測定する距離情報測定部と、
操作部を介した利用者からの当該移動体の移動方向の情報を含む移動に係る指示入力を受け付ける指示入力受付部と、
請求項1乃至請求項5のいずれか1項に記載の障害物回避支援装置と、
前記障害物回避支援装置において前記距離情報測定部で測定した距離情報に基づき計算した回避用斥力と前記指示入力受付部で受け付けた指示入力とに基づき、前記アクチュエータを制御するアクチュエータ制御部と、を備えることを特徴とする移動体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2011−253361(P2011−253361A)
【公開日】平成23年12月15日(2011.12.15)
【国際特許分類】
【出願番号】特願2010−126915(P2010−126915)
【出願日】平成22年6月2日(2010.6.2)
【出願人】(000004204)日本精工株式会社 (8,378)
【Fターム(参考)】