障害物回避機能を有する移動制御装置
【課題】計算負荷が低く、移動がスムーズであり環境の動的変化などノイズに強いロバストな移動動作が可能な制御装置を提供する。
【解決手段】障害物回避機能を有する移動制御装置13は、移動体1と、この移動体1に設けられ、移動体進行方位を検出する検出手段14−17と、移動体1に設けられ、障害物の位置およびこの障害物までの実計測距離を計測し、この検出手段14−17が検出した移動体進行方位に対する障害物の方位角を出力する計測手段9−12と、計測手段9−12が出力した障害物の方位角の大きさに応じて、実計測距離を変化させて疑似距離を生成する疑似距離生成手段と、この疑似距離生成手段が生成した疑似距離に基づき、移動体1が障害物を回避するよう移動体1の動作を制御する制御手段と、備える。
【解決手段】障害物回避機能を有する移動制御装置13は、移動体1と、この移動体1に設けられ、移動体進行方位を検出する検出手段14−17と、移動体1に設けられ、障害物の位置およびこの障害物までの実計測距離を計測し、この検出手段14−17が検出した移動体進行方位に対する障害物の方位角を出力する計測手段9−12と、計測手段9−12が出力した障害物の方位角の大きさに応じて、実計測距離を変化させて疑似距離を生成する疑似距離生成手段と、この疑似距離生成手段が生成した疑似距離に基づき、移動体1が障害物を回避するよう移動体1の動作を制御する制御手段と、備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は障害物回避機能を有する移動制御装置に関する。
【背景技術】
【0002】
人間共存環境で活動するロボットなどの自律移動体の開発が盛んに行われている。コスト、消費電力、CPUリソースなどの観点から、このようなロボットに計算負荷の高いアルゴリズムのソフトウェアを実装することは現実的でない。また工場の中で移動する搬送車のように移動環境を完全に作り込むことは不可能であり、オブジェクトの配置ズレや他の移動物体などを許容した移動制御が必要となる。その一方でスムーズかつ素早い効率の良い移動動作をロボットが行えるようにする要求が高い。
【0003】
移動体が障害物を回避しながら移動する技術に関しては、従来、障害物を回避しながら目標点に移動する経路の中から最短距離となるルートを見い出す移動体の経路生成法が知られている(特許文献1参照)。この経路生成法は、環境温度マップを作成し、環境温度マップ中に構築された障害物に関する各格子点における温度に基づき各格子点で探索しながら出発点と最終目標点とを結ぶ最短経路を作成し、移動体をこの最短経路に沿って最終目標点まで移動させている。
【0004】
また、障害物の動きに応じて移動体の移動経路をその場で生成し、動的な障害物がある場合でも適切な回避行動を取れるようにした自走移動体の制御方法が知られている(特許文献2参照)。特許文献2に記載の方法は、障害物が存在する確率を表す確率ポテンンシャル場を生成し、この確率ポテンシャル場に目標位置に向かう勾配を付加し、この勾配が付された確率ポテンシャル場の傾きに基づき目標位置に向かう経路を探索し、自走移動体をこの経路に沿って移動させている。
【0005】
また、与えられた領域を、できるだけ短時間でほぼ網羅的に走行できるようにし走行中のハンチングを防止可能とした自律走行ロボットも提案されている(特許文献3参照)。特許文献3に記載のロボットは、左右の障害物センサを設け、これらのセンサが検出した障害物までの距離に基づき検出距離が長い側に旋回動作を行うと共に、この旋回動作後の予定時間内に再び先の旋回動作とは逆方向に旋回する動作が必要になった場合、先の旋回時よりも旋回角を小さくするようにしている。
【特許文献1】特開2001−154706号公報
【特許文献2】特開2003−241836号公報
【特許文献3】特開平10−228315号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に記載の経路生成法では、既知である地図を使用した経路計画をベースにした移動体の障害物の回避動作がノイズに非常に弱い。ノイズとは、地図に登録されていない障害物や、理想値(地図情報)と現実値とのズレ、及びデッドレコニング誤差である。また特許文献1に記載の技術では、位置が時々刻々と不規則に変化する移動体への制御の対応が難しい。
【0007】
特許文献2に記載の自走移動体の制御方法は、移動体と障害物又は移動目標との間に仮想的な斥力あるいは引力などを生成する力場を定め、これらの力の合力から移動体の進行方向を決定するポテンシャル法である。この制御方法では、複雑な地形や多数の障害物に対する扱いが難しい。経路の精度を高めようとすると障害物を登録するためのグリッドマップのメッシュを細かくする必要があり、計算コストが爆発的に高くなる。
【0008】
特許文献3に記載の自律走行ロボットはセンサ情報を移動指令に直結させる手法を用いたものである。この自律走行ロボットでは、きめ細かな動作指令をロボットへ与えることが難しく、ロボットは大まかで単調なぎこちない動作になりやすい。滑らかで効率の良い動作を実現することが難しい。
【0009】
そこで、本発明は、上記の課題に鑑み、計算負荷が低く、移動がスムーズであり環境の動的変化などノイズに強いロバストな移動動作が可能な障害物回避機能を有する移動制御装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
このような課題を解決するため、本発明の一態様によれば、移動体と、この移動体に設けられ、移動体進行方位を検出する検出手段と、前記移動体に設けられ、障害物の位置およびこの障害物までの実計測距離を計測し、この検出手段が検出した前記移動体進行方位に対する前記障害物の方位角を出力する計測手段と、この計測手段が出力した前記障害物の方位角の大きさに応じて、前記実計測距離を変化させて疑似距離を生成する疑似距離生成手段と、この疑似距離生成手段が生成した前記疑似距離に基づき、前記移動体が前記障害物を回避するよう前記移動体の動作を制御する制御手段と、備えることを特徴とする障害物回避機能を有する移動制御装置が提供される。
【0011】
また、本発明の別の一態様によれば、移動空間に関する外部環境情報を保存し更新可能な記録手段と、この記録手段に記録された前記外部環境情報をもとに目的地点までの適切な経路を生成可能な経路生成手段と、この経路生成手段により生成された前記経路を辿るような速度出力指令値を生成する移動速度出力生成手段と、この移動速度出力生成手段が生成した前記速度出力指令値に対して、速度出力補正を行う請求項1〜13に記載の疑似距離生成手段と、を備えることを特徴とする障害物回避機能を有する移動制御装置が提供される。
【発明の効果】
【0012】
本発明によれば、計算負荷を大幅に低減しつつも不要な回避動作を抑制した滑らかな回避軌道を生成することが可能となる。また時々刻々と変化する動的環境にも対応した回避動作を実現できるようになる。
【発明を実施するための最良の形態】
【0013】
以下、本発明の実施の形態に係る障害物回避機能を有する移動制御装置について、図1乃至図18を参照しながら説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
【0014】
本発明の実施の形態に係る障害物回避機能を有する移動制御装置は、独立二輪駆動型の移動ロボットに搭載される。図1(a)は移動ロボットの上面図であり、図1(b)は図1(a)の矢印J方向から見たこの移動ロボットの正面図である。これらの図中で同じ符号を有する要素は互いに同じ要素を表す。
【0015】
ロボット1は、基台2と、それぞれこの基台2の左右両側部に左右平行に同軸的に配置され互いに独立して駆動可能にされた一対の駆動輪3、4と、それぞれが基台2の下面に設けられ駆動輪3、4を回転させる一対のモータ5、6と、基台2の前方中央部に取り付けられた前方キャスタ7と、基台2の後方中央部に取り付けられた後方キャスタ8と、それぞれ基台2上面の四隅に設けられ被測定対象との間の距離を測定する4つのレーザレンジファインダ(LRF)9−12と、基台2に設けられモータ5、6の回転駆動制御を独立して行うコントローラユニット13(本実施形態に係る障害物回避機能を有する移動制御装置)とを備える。コントローラユニット13には、CPU、ROM及びRAMが用いられる。
【0016】
更にロボット1は、それぞれ駆動輪3、4のシャフトに設けられた一対の回転角度センサ14、15と、基台2の並進移動量を検出するための位置センサ16と、基台2の垂直軸線周りの旋回角度を検出する姿勢センサ17とを有する。回転角度センサ14、15にはポテンショメータやロータリーエンコーダが用いられる。位置センサ16には慣性センサが用いられる。姿勢センサ17には、垂直軸線周りの角速度を検出するジャイロセンサが用いられる。これらの回転角度センサ14、15の各センサ値と、位置センサ16のセンサ値と、姿勢センサ17のセンサ値とはいずれもコントローラユニット13へ入力されるようになっている。
【0017】
基台2は矩形状の平板である。モータ5、6は基台2に固定されており、各モータ軸を介して駆動輪3、4と連結されている。駆動輪3、4の各車輪面は互いに平行にされた状態でこれらの駆動輪3、4は正方向及び逆方向に回転自在である。駆動輪3、4と前方キャスタ7及び後方キャスタ8とによって基台2が床面に対して床面から車輪径で決まる高さで水平に保持される。コントローラユニット13によるモータ5、6に対する駆動制御によって、駆動輪3の回転速度と駆動輪4の回転速度とは互いに同じにされ、あるいは異なるようにされている。モータ5、6が駆動制御されることによって、ロボット1の走行及び旋回が可能にされている。モータ5、6の各回転方向と各回転速度とが制御されることによって、ロボット1は床面内を移動可能になっている。
【0018】
レーザレンジファインダ9−12は平面走査型の距離計測手段である。レーザレンジファインダ9−12はいずれも図示しないレーザ光源と、回転軸を有し外周面上に多面鏡を設けたレーザ光反射体と、レーザ光反射体を回転させる駆動モータと、レーザ光を変調する変調手段と、被測定対象によって反射されたレーザ光を受光する受光器と、電子回路部と、これらのレーザ光源等を収容する筐体とを有する。この駆動モータのモータ軸の回転角に応じて、筐体外部の走査空間を走査する走査光がレーザ光より生成されるようになっている。レーザ光源及び変調手段は障害物ないしは目標物体といった被測定対象に対してパルス変調したレーザ光を照射し、受光器は被測定対象により反射された反射光を受光し、電子回路部は変調光を送出した時間とこの反射光が戻ってきた時間とから、ロボット1と被測定対象物との間の距離の情報を出力する。
【0019】
レーザレンジファインダ9は、基台2の前方に存在する物体までの距離とその物体からの反射光の反射強度とを、角度ステップ毎に計測し、反射光強度の計測結果から計算した距離を図示しないメモリに記憶する。このメモリには角度毎の距離値が記憶される。角度毎の距離値は更新可能及び補正可能である。レーザレンジファインダ10−12の構成もレーザレンジファインダ9の構成と同じである。レーザレンジファインダ9−12はロボット1の周囲の全方位を死角なく走査可能に配置されている。
【0020】
図2はレーザレンジファインダ9−12の計測可能領域を示す図である。コントローラユニット13がこれらのレーザレンジファインダ9−12を制御することによって、レーザレンジファインダ9−12はロボット1の周囲の空間を走査する。各レーザ光源からのレーザ光の送出方向は床面と平行である。また、これらのレーザレンジファインダ9−12内の受光器の感度は略水平方向にされてある。基台2の四隅に設けられた各レーザレンジファインダ9−12がそれぞれ上面視扇形のレーザレンジファインダ計測可能領域18を走査する。
【0021】
コントローラユニット13は、4つのレーザレンジファインダ9−12から出力される角度毎の距離値に基づき、床面上の障害物を含む外部環境の距離画像を生成する。コントローラユニット13は、ロボット1の360°全方位に亘って障害物が存在しているかどうかを検出するようにしている。
【0022】
また、コントローラユニット13はモータ5、6の角速度及び角加速度を制御する。ロボット1の周囲に障害物が存在することをコントローラユニット13が検知した場合、このコントローラユニット13は後述するように障害物を回避するための演算処理を行う。コントローラユニット13は、センサ類からの情報に基づきロボット1の並進移動量や旋回量を算出し、モータ5の角速度及び角加速度の目標値と、モータ6の角速度及び角加速度の目標値とを生成する。コントローラユニット13は、生成したモータ5、6の各回転量の目標値から、これらのモータ5、6の図示しないドライバに対して電流制御を行うようにしている。
【0023】
図3はコントローラユニット13のブロック図である。コントローラユニット13は、ロボット1が走行すべき経路を生成する経路生成部19と、経路生成部19からの出力に基づいて制御周期ごとに基台2のx、y座標系での目標位置及び垂直軸線周りの目標回転位置を生成する目標軌道生成部20と、目標軌道生成部20からの出力及び基台2に取り付けられたセンサ類からのセンサ値を比較し、演算した結果を出力する演算部21と、演算部21から出力される演算結果の差分を埋めるように基台2の並進速度の目標値及び旋回速度の目標値を計算するロボット移動速度指令値生成部22とを備える。
【0024】
経路生成部19は、後述する図4に示すような障害物マップを作成する。目標軌道生成部20は、各制御周期でのロボット目標位置xr[m]、yr[m]及びロボット目標姿勢θ[rad]を生成して出力する。演算部21は、これらのxr、yr及びθと、センサ類からの現在位置x[m]、y[m]とを比較する。ロボット移動速度指令値生成部22は、演算部21からの比較結果に基づき並進速度目標値Vr[m/s]及び旋回速度目標値ωr[m/s]を生成して出力する。
【0025】
更にコントローラユニット13は、ロボット移動速度指令値生成部22からの出力を補正する障害物回避速度指令値補正部23と、この障害物回避速度指令値補正部23からの出力に基づいて各軸の回転速度の目標値を生成して出力する車軸回転速度指令値生成部24と、車軸回転速度指令値生成部24からの出力及び基台2のセンサ類からのセンサ値を比較演算した結果を出力する演算部25と、演算部25から出力される演算結果に基づいてモータ5、6へ与える電流の目標値を生成するモータ制御電流指令値生成部26と、ロボット本体27とを備える。ロボット本体27は、駆動輪3、4及び回転角度センサ14、15、位置センサ16及び姿勢センサ17からなる。
【0026】
障害物回避速度指令値補正部23は、並進速度目標値Vrを補正して補正並進速度目標値Vr′[m/s]を出力する。障害物回避速度指令値補正部23は、旋回速度目標値ωrを補正して補正旋回速度目標値ωr′[m/s]を出力する。車軸回転速度指令値生成部24は各軸回転速度目標値φnr[rad/s]を生成して出力する。モータ制御電流指令値生成部26は、各軸モータ電流指令値inr[A]を出力する。この各軸モータ電流指令値inrは、モータドライバへの電圧の指令値Vn[V]にほぼ等しい。
【0027】
ロボット1は移動体である。ロボット1は移動手段を有し、またこの移動手段を動作させる駆動手段を有する。移動手段は駆動輪3、4であり、駆動手段はモータ5、6である。コントローラユニット13は本実施形態に係る障害物回避機能を有する移動制御装置である。障害物回避制御方法は、この移動体に関する制御手法である。コントローラユニット13は目標地点を設定するという上位処理を行う。移動体は移動体自身の内部に持つ上位概念のルールに従い目標地点が設定される。移動体とは、目標地点へ到達するための並進速度指令値及び旋回速度指令値を生成するロボット1のような自律移動体を含む。あるいは、移動体とは、アシストカートなどのように外部入力を指令値としてこの指令値を実現するように駆動手段を動作させる半自律移動体なども含む。また移動体は移動体周囲の物体の配置状況を認知可能な認知手段を有しており、これにより移動体の周囲の全方位の障害物情報を知ることが可能となっている。
【0028】
ここでは図1に示すような移動型ロボットを代表例として用いる。ロボット1は、モータ5、6により駆動される左右の駆動輪3、4を有する独立二輪駆動方式である。これら二輪の回転量で直進及び旋回の動作が定まる。またロボット1にはレーザレンジファインダ9−12が図2のように死角なく複数例えば4個配置され、全方位の障害物までの距離をその方向とともに高精度で計測することが可能となっている。計測された方位角及び距離といった障害物情報は直ちにメモリ内で更新され、更新された障害物情報は制御に反映される。
【0029】
図2ではレーザレンジファインダ9−12が計測する距離方向は途中までしか描画されていないが、実際にはさらに遠方まで計測可能である。レーザレンジファインダ9−12単体が計測可能な方位も特に図2の例に指定するものではなく、レーザレンジファインダ搭載個数も特に図2の数に限定するものではない。ロボット1の移動方法は本例の独立二輪駆動方式に限るものではなく、少なくともロボット1自身の移動方向と移動量とがホロノミック又はノンホロノミックの区別無く任意に指定できればよい。例えばステアリング方式や、4輪が駆動する全方向移動車、また二足歩行のような車輪以外の移動手段が用いられてもよい。
【0030】
またセンサ系に関しても特に本例のレーザレンジファインダ方式に限るものではなく、配置位置が異なるものや、指向性のある超音波センサやPSD(Position Sensitive Detector)センサを周囲に配置したものを用いてもよい。PSDセンサは、受光面を有しこの受光面に入射するビームスポットの位置に応じて差動的に変化する一対の出力信号を出力するPSD素子と、このPSD素子により検出された光位置から距離を演算する演算手段とからなる。また、これらのセンサ情報をロボット1の周囲の情報を予め記録した地図上に一度集約して、制御周期毎にこの地図より擬似的にロボット1の周囲の状況を読み出してもよい。さらにこの地図に環境カメラや他ロボットなど外部システムからも位置同期を取りつつ障害物配置をリアルタイムで登録し、削除するようにしてもよい。
【0031】
本例でのコントローラユニット13は図2のように配置されたレーザレンジファインダ9−12のそれぞれから得られる距離情報をマップ上に統合する処理を行う。コントローラユニット13は、既知である幾何配置情報をもとに一つの座標系で表される地図上で各距離情報を統合管理している。この障害物マップ情報より、ロボット1の指定方向の指定角度範囲内に存在する障害物のうちの最も近い障害物までの距離が得られるようになっている。
【0032】
センサとしてのレーザレンジファインダ9−12のサンプリングレートは、ロボット1自身の移動および他移動物体による外界の動的変化に対し相対的変化が連続的に捉えられる程度に十分高速なものが用意される。また指定角度最小範囲の分解能についても、規定の距離内に存在する外界障害物の相対的な位置変化が連続的に捉えられる程度の適切な分解能が設定されている。ここでの連続的とは、対象物の位置を計測するステップの後、観測対象物が計測した次ステップにおいて前回計測された位置より規定の距離範囲内に存在することを意味している。この分解能の値は用途に応じ変化するので、一意に定めるものではない。
【0033】
図4はコントローラユニット13が作成する障害物マップの一例を示す図である。同図中、上述した符号と同じ符号を有する要素はそれらと同じ要素を表す。28から32はいずれも障害物ないしは物体を表す。33は移動体進行方位である。ロボット1から見て障害物29の方位が計測指定方位である。これらの移動体進行方位及び計測指定方位が成す角度φは基準方位である正面方向に対する方位φである。57は計測指定方向の最短距離に存在する障害物の位置を表す。
【0034】
本例では障害物マップは、図4のようなロボット1を中心とした相対座標系において、計測指定方位として指定された方位φと、その方向の最短距離rとにより極座標表現される。障害物マップは、極座標以外の座標を用いた表記や、絶対座標などを用いても特に構わない。また本例では、方位φの基準方向はロボット正面としており、半時計回り方向を正としている。この基準方向や旋回方向に関してもロボット正面や半時計回り方向に特に限定されるものではない。
【0035】
障害物マップ上での実計測距離と疑似距離との関係を、図5及び図6に示す。図5は移動体が前進する時の疑似距離の概念を示す図である。34は障害物ないしは物体の実位置を表す。35は障害物ないしは物体の疑似位置を表す。レーザレンジファインダ9はロボット1と、実障害物位置34との間の距離を実測し実計測距離rを取得する。レーザレンジファインダ9は、移動体進行方位と計測指定方位とが成す角度θ1を取得する。コントローラユニット13は、実計測距離rを疑似距離r′に置き換える処理を行うことによって、障害物マップ上で、実障害物位置34を疑似障害物位置35へ置き換えるようにしている。置き換える処理とは、関数fを用いてr′=f(r、θ1)を演算することを指す。CPUは、関数fの計算手順が記述されたプログラムをROMから読み込み、RAMを用いてこの計算手順を実行する。
【0036】
また、ロボット1が後進する時の例を図6に示す。レーザレンジファインダ9はロボット1と、実障害物位置34との間の距離を実測し実計測距離rを取得する。レーザレンジファインダ9は、移動体進行方位と計測指定方位とが成す角度θ2を取得する。この角度θ2の大きさは、図5の例の角度θ1よりも大きい。コントローラユニット13は、r′=f(r、θ2)を演算することによって、障害物マップ上で、実障害物位置34を疑似障害物位置36へ置き換えるようにしている。
【0037】
即ち本発明では図5に示すように、コントローラユニット13は移動体進行方向と計測指定方向とが成す角度θ1の大きさに応じて計測指定方向の距離値が真の計測値(以下「真値」)から変化する疑似距離を用いる。本例での独立二輪駆動方式でロボット1が前進している場合、移動体進行方向と計測方位基準方向とが一致するので、この場合θ1=φとなっている。ロボット1が後進する場合、移動体進行方向、計測指定方向それぞれの角度関係は図6のようになる。
【0038】
さらに図7は角度θと疑似距離rn′との関係を説明するための図である。58は疑似距離を表す。59は真の距離である。本例では図7に示すように移動体進行方向と計測指定方向とが成す角度θnの大きさが大きくなるほど疑似距離r′は真値rよりも大きな値を取るように、コントローラユニット13は関数fの計算手順を実行する。角度θnが大きくなるほど、疑似距離が真値から乖離する量が大きくなる。
【0039】
図8に同一地点での前進及び後進の進行方向の切り替わりにより周囲環境の障害物位置が変化する疑似障害物マップの概念図を示す。ここで図8(a)はロボット1が前進する時の疑似障害物マップの一例であり、図8(b)は図8(a)のロボット1の地点と同じ地点でロボット1が後進する時の疑似障害物マップの一例である。また、図9にロボット1の姿勢変更後の移動により周囲環境の障害物位置が変化する疑似障害物マップの概念図を示す。図9(a)は姿勢を変更した後のロボット1が前進する時の疑似障害物マップの一例であり、図9(b)は図9(a)のロボット1の地点と同じ地点での姿勢変更後のロボット1が後進する時の疑似障害物マップの一例である。37から40は障害物ないしは物体を表す。60は疑似位置であり疑似障害物マップ上での障害物位置を表す。61は真の位置である。
【0040】
ここで疑似距離により形成されるロボット1の周囲環境の障害物位置を表示した疑似障害物マップ(以下、障害物マップ)は、図8(a)、図8(b)で表されるように同一の地点であっても前進及び後進の動作の切り替わりで状況が一瞬のうちに変化するという特徴がある。また図9(a)、図9(b)で表されるように、ロボット1が独立二輪駆動方式であっても、ロボット1がその場で旋回動作を行い、絶対座標系上でのロボット1自身の正面方向(以下「姿勢」と同義)を変化させた場合、その後の前後の移動時に得られる障害物マップはそれ以前のものとは異なるものとなる。
【0041】
移動体は本例とは異なる移動方式を用いてもよい。移動体には全方向移動車が用いられてもよい。全方向移動車は、任意のタイミングで任意の方向に速度出力を生成可能な移動手段を持つ移動機構である。移動体として全方向移動車が用いられる場合の障害物マップを図10に示す。図10(a)から図10(d)には全方向移動車1Aの同一姿勢状態での移動方向の切り替わりにより周囲環境の障害物位置が変化する疑似障害物マップが示されている。斜線付きの丸は疑似障害物マップ上での障害物位置を表す。白色の丸は真の位置を表す。
【0042】
全方向移動車1Aは、基台2Aと、この基台2Aの前後左右の4箇所に枢支された駆動輪41と、この基台2A上に設けられた図示しない本実施形態に係る障害物回避機能を有する移動制御装置とを有する。これら以外の符号で上述した符号と同じ符号を有する要素はそれらと同じ要素を表す。具体的には図10(a)は全方向移動車1Aの前進時の疑似障害物マップであり、図10(b)は同じ地点での後進時の疑似障害物マップである。図10(c)は姿勢変更後の全方向移動車1Aの前進時の疑似障害物マップであり、図10(d)は同じ地点での姿勢変更後の全方向移動車1Aの後進時の疑似障害物マップである。図10で表されるように移動指令方向により障害物マップが表す周囲環境状況は、同一の地点で同一の姿勢を有していても異なる結果を出力することになる。全方向移動車1Aの移動制御装置はロボット1のコントローラユニット13と同じである。
【0043】
以下、ロボット1に搭載されるコントローラユニット13が行う疑似距離の生成処理について述べる。ここでは障害物計測方位角θに対応して、真値rを疑似距離r′へと変換する『行為』を疑似距離『変換』と呼ぶことにする。本例では(式1)のような疑似距離変換を適用して疑似距離を生成している。
【数1】
【0044】
ここでl,m,nは任意の実数とし、kは0<k<2の実数とし、コントローラユニット13は(k=1,l=1,m=2,n=1)を一組として疑似距離を生成するようにしている。コントローラユニット13は進行方向と同方向(即ち独立二輪駆動方式では正面方向)に位置する疑似距離の値については真の距離値と同じ値を出力する。コントローラユニット13は、移動進行方向に対し真横方向に位置する疑似距離の値については真の距離値の2倍の距離を出力する。コントローラユニット13は、進行方向(θが0度の方向)と真横方向(θが90度の方向)との間の範囲内の所望の方向に位置する疑似距離の値については、(式1)に代入して得られる値を出力する。つまりこれらの2つの方向の間の遷移は余弦関数的に遷移していく。またコントローラユニット13は、真横方向よりもθが大きい方向である後方は無限遠とすることで、真横方向よりも後方に位置する方向に存在する障害物を、障害物回避の考慮対象から除外するようにしている。
【0045】
また、コントローラユニット13は、正面方向の疑似距離の値を、真値と異なる値に設定してもよい。コントローラユニット13は正面方向の疑似距離の値を真値から変える場合、lの値を変更する。コントローラユニット13は、無限遠を除く最大値を変える場合、mの値を変更する。コントローラユニット13は、正面方向について設定した値から最大値に至るまでの余弦関数の遷移形状を変化させる場合、nの値を変更すればよい。またコントローラユニット13はkの値を変更することで疑似距離が最大地点(無限遠を除く)となる角αの位置を真横から変えるようにもできる。ただし本例が提示する(式1)は一例にすぎず、コントローラユニット13は進行方向背後の障害物距離を無限遠とはせずに有限値としてもよい。さらにはコントローラユニット13は、他の関数を使用して疑似距離変換をデザインしても何ら問題はなく、これらは請求項に記載の本発明の範囲内である。
【0046】
ロボット1は、上記疑似距離r′を参照し、周囲環境が未だ考慮されていない段階で生成した移動動作指令を補正するようにしている。以下、本補正処理を障害物回避と呼び、補正処理された移動動作を障害物回避動作と呼ぶ。
【0047】
ロボット1は障害物回避動作にあたり、ロボット1自身の周囲に存在する障害物についての複数の疑似距離を参照し、これらの疑似距離のうち最短の疑似距離を入力として使用するようにしている。図11は回避対象の障害物の位置をコントローラユニット13が決定する手法を説明するための図である。同図には、ロボット1の周囲に障害物(物体)42〜44が存在しており、コントローラユニット13は、疑似障害物マップ上に複数の障害物位置を予め生成する。斜線付きの丸は障害物位置を表す。白色の丸は真の位置を表す。コントローラユニット13は、これらの障害物位置の間で疑似距離を比較し、最短の疑似経路を有する障害物位置を検索する。複数の障害物位置のうちの45を付された障害物位置をコントローラユニット13が判断すると、コントローラユニット13はこの障害物位置45を回避対象障害物位置と決定する。即ち、図11で表されるように、コントローラユニット13は、最短疑似距離46を有する方位,疑似距離が指す位置を回避対象障害物位置とする処理を行う。この地点を回避対象障害物と呼ぶこととする。
【0048】
従来の障害物回避手法では、コントローラが回避軌道を生成するにあたり、コントローラは障害物までの距離とその方向との2成分を考慮しなくてはならなかった。しかし、本実施例による障害物回避制御手法では疑似距離にその方向成分によりもたらされる効果も含まれているので、特例的な処理を除き、マップ生成後のコントローラユニット13の軌道生成作業ではコントローラユニット13は基本的には疑似距離のみを参照すればよい。
【0049】
本例で示すロボット1は疑似距離を入力として障害物回避のための速度出力方向と速度量との2成分を出力するようにしている。従来例のポテンシャル手法はコントローラが1つのポテンシャル関数から強度とその勾配とを求めこれらの強度及び勾配を速度量と速度出力方向とに当てはめたものである。これに対して、コントローラユニット13は2成分の値を算出するにあたり、2つの独立した生成関数を使うようにしている。以下の説明では、これらの2つの独立した生成関数のそれぞれを速度方位ポテンシャル,速度量ポテンシャルと呼ぶこととする。なおここでの「ポテンシャル」という呼称は便宜上用いるものであり、一般的なポテンシャル関数のように導関数が特別な意味を持つわけではない。
【0050】
速度方位ポテンシャルについて図12から図15を参照して説明する。図12は速度方位ポテンシャルの一例を示す図である。横軸は疑似距離r′であり、縦軸は並進速度出力許容方位角ξである。図12で表されるような形状を有する速度方位ポテンシャルを、コントローラユニット13は予め生成してコントローラユニット13内のメモリ(記憶手段)に記憶しておく。コントローラユニット13は予め横軸と縦軸との各値を取得する処理を実行し、速度方位ポテンシャルを生成しておく。
【0051】
ここでの並進速度出力許容方位角について図13及び図14を参照して更に述べる。図13は並進速度出力許容方向と回避対象障害物方向との関係を示す図である。回避対象障害物方向47は回避対象障害物48の存在する方向である。並進速度出力許容方向とは図13の49で表される。並進速度出力許容方向49は、回避対象障害物方向47に向けることが可能な移動速度出力の限界方向を指す。移動体基準位置50(ここでは移動平面に投影したロボット重心とする)を頂点とし、回避対象障害物方向47と並進速度出力許容方向49とが成す角ξを並進速度出力許容方向角と呼ぶこととする。この並進速度出力許容方向49は、基本的には回避対象障害物方向47から移動速度出力方向に向けて展開される。
【0052】
また、図13の回避対象障害物方向47と並進速度出力許容方向49とが成す角ξは0からπ/2までの範囲を取りうる。コントローラユニット13は、ξが0のとき任意の方向へ移動速度を出力するようにする。これに対し、ξの値が増加するに伴いコントローラユニット13は回避対象障害物方向47への移動速度出力を制限する。コントローラユニット13が制限をかけるため、ξがπ/2になると、コントローラユニット13は回避対象障害物方向47に対し垂直方向もしくは回避対象障害物48から遠ざかる方向にのみ速度出力を行うようにしている。
【0053】
図14は移動体の移動速度の出力方向の補正処理を説明するための図である。図14のように移動速度出力方向51が回避対象障害物方向52と並進速度出力許容方向53との間に存在する場合、ロボット1は移動速度出力方向51を並進速度出力許容方向53にまで補正変更するようにしている。
【0054】
図11の速度方位ポテンシャルより分かる通り、疑似距離r′がある値rmax(第1閾値)以上である場合、コントローラユニット13は並進速度出力許容方位角ξの値を0にする。コントローラユニット13は速度出力方向については特別な制限をかけない。コントローラユニット13により制限を受ける速度方位ポテンシャルの特性は、疑似距離r′がrmax以下になると徐々にξの値が増加し、疑似距離r′がある値rmin(第2閾値)以下ではξの値はπ/2に飽和するような形状をとる。ここでrmaxの値は「ロボット1がどれくらい回避せずに障害物方向にまで接近を許容するか」という回避開始距離を定義する値である。rminの値は「ロボット1が最悪どのくらいの距離まで障害物への接近を許容するか」という限界接近距離を定義する値である。
【0055】
また、全方向移動車1Aのように任意の時刻に任意の並進移動速度を生成可能な移動体については、コントローラユニット13は補正処理した移動速度出力方向に自身の移動速度出力を設定する処理を行うだけでよい。移動体が本例のような独立二輪駆動型の場合この移動体の動作はノンホロノミックな移動拘束条件下での動作となるため、コントローラユニット13は補正処理した移動速度出力方向に移動速度を生成することができない。このような場合、コントローラユニット13は移動体の姿勢を変更するようにし、移動速度の出力方向が補正処理方向にまで向くようにロボット1を旋回動作させる。コントローラユニット13は旋回のための車軸回転速度が生成されるように、回転動作補正処理を実行する。
【0056】
またコントローラユニット13が参照する速度方位ポテンシャルは、図15のように疑似距離と並進速度出力許容方位角ξとの関係が移動体の移動速度に応じて変化するような特徴を有している。図15は、移動体の移動速度に応じて異なるポテンシャル形状を有する速度方位ポテンシャルの一例を示す図である。この速度方位ポテンシャルはコントローラユニット13のメモリに記憶されている。54は移動体の移動速度が速い場合に適用される速度方位ポテンシャルである。55は移動体の移動速度が遅い場合に適用される速度方位ポテンシャルである。56は通常の速度方位ポテンシャルを表す。
【0057】
速度方位ポテンシャル54は、最小疑似距離rmin及び最大疑似距離rmaxがそれぞれ通常の速度方位ポテンシャルの最小疑似距離及び最大疑似距離よりも増加したポテンシャル形状を有する。速度方位ポテンシャル55は、最小疑似距離rmin及び最大疑似距離rmaxがそれぞれ通常の速度方位ポテンシャルの最小疑似距離及び最大疑似距離よりも減少したポテンシャル形状を有する。コントローラユニット13は予めこれらの速度方位ポテンシャル54、55を作成してメモリに設定しておく。これにより指定移動速度が速い場合、障害物に対しなるべく遠い位置から徐々に回避動作を行うことで安全性を高めることを可能とし、指定移動速度が遅い場合、安全性の観点からもある程度の障害物までの接近は許容され、その分指定軌道に沿うように移動させることが可能となる。また高速移動時及び低速移動時のそれぞれにおける最小疑似距離rmin,最大疑似距離rmaxの間の変化幅に限界値を設けておき、コントローラユニット13はある程度の段階で飽和するような処理をかけるようにしてもよい。
【0058】
また、移動速度出力方向が回避対象障害物方向と並進速度出力許容方向との間に存在する場合、コントローラユニット13は原則として並進速度出力許容方向へ向けて移動速度出力方向を変更する。このため、移動速度出力が回避対象障害物方向へ向くような速度変更や姿勢変更は禁止される。移動速度出力方向が回避対象障害物方向と並進速度出力許容方向との間よりも外側に存在する場合でも、移動速度出力方向が並進速度出力許容方向の近傍に存在する場合、コントローラユニット13は移動速度出力方向が回避対象障害物方向へ向くような速度変更や姿勢変更を禁止する。これにより並進速度出力許容方向を挟んでの移動速度出力や姿勢変更のチャタリング的な振動動作が抑制される。
【0059】
以上は速度方位ポテンシャルについての説明である。以下、速度量ポテンシャルについて図16を参照して説明する。図16は速度量ポテンシャルの一例を示す図である。横軸は疑似距離である。縦軸は速度許容率γ(0≦γ≦1)である。速度許容率は、速度量ポテンシャルにより制限された状態で移動体が最終的に出力可能な並進速度の最大値を、障害物が無い状態で移動体が本来出力可能な並進速度の最大値で除して得た比率である。この比率は擬似距離および移動体自身の大きさに応じて定まる。移動体であるロボット1が最終的に出力可能な速度最大値は、この比率にロボット1が本来出力可能な速度最大値を乗じて得られる。ここで障害物距離により制限を受ける値は許容出力速度の『最大値』であり、出力速度が直接制限を受けるものではない。このため、速度出力の指令値が最終的に出力可能な速度最大値よりも小さい場合、何の補正も受けることなくそのまま指令された値の速度が出力される。また、速度出力の指令値が本来出力可能な速度最大値より小さい値であっても、最終的に出力可能な速度最大値よりも大きい場合、このときの出力は最終的に出力可能な速度最大値に制限される。
【0060】
コントローラユニット13は予め横軸と縦軸との各値を取得する処理を実行し、速度量ポテンシャルを生成しメモリに記憶しておく。ここでの速度許容率γは、(式2)のように表現される。
【数2】
【0061】
速度許容率γは、許容最大移動速度量vmaxをvmax′に変換するという演算上の効果がある。変換後の許容最大移動速度量vmax′を変換許容最大移動速度量と呼ぶこととする。移動体の並進移動目標速度量|vr|がこの変換許容最大移動速度量以下である場合、コントローラユニット13は特別な処理を発生させない。並進移動目標速度量|vr|が変換許容最大移動速度量を超える場合、コントローラユニット13はそのスカラ量がvmax′になるまで並進移動目標速度を圧縮補正する。ここで補正後の並進移動目標速度を補正並進移動目標速度vr′と呼ぶこととし、(式3)のように表される。
【数3】
【0062】
図16から分かる通り、速度許容率γは疑似距離r′が大きいときには1となる。疑似距離r′が閾値rv max(第3閾値)以下では疑似距離r′の減少にともない速度許容率γも減少傾向となり、疑似距離r′が閾値rv min(第4閾値)以下では速度許容率γは0となる。この速度量ポテンシャルに基づくコントローラユニット13の処理の内容は、移動体が障害物に対し衝突コースにない場合、即ち移動体が回避動作対象外の移動を行っている場合、コントローラユニット13は最大速度制限をかけずに、任意の速度を出力させ続ける。回避対象障害物が移動体に近接する場合、コントローラユニット13は最大速度に制限をかける。最終的にはコントローラユニット13は、閾値rv minで表現されるある距離以内には移動体が接近しないよう並進速度の出力を完全に遮断するようにする。これにより障害物との衝突を防ぐことが可能となっている。また速度出力方向もしくは姿勢角をコントローラユニット13が変更すると、それに応じて疑似距離も変化し、これにともない速度許容率γも変化することになるので、再び移動体は並進速度出力可能状態にされる。
【0063】
本例では速度方位ポテンシャルおよび速度量ポテンシャルを直線で表現したが、これらは請求項に記載の本発明を実現するための一例にすぎない。三角関数やrmin,rmaxを変曲点とするような高次関数など他の関数を使用して本例以外の形状のポテンシャル関数をデザインしても何ら問題はなく、これらを変形した発明は請求項に記載の本発明の範囲内である。
【0064】
以上の処理をコントローラユニット13が行うことにより、障害物の位置及び距離に応じて、移動体の並進移動速度量と、移動体の速度出力方向もしくは姿勢角速度とに補正が加えられる。結果として移動体の移動経路上に存在する障害物を回避するような速度出力を生成することが可能となる。
【0065】
上述の構成により、コントローラユニット13は、障害物回避速度補正処理を行う。図17はコントローラユニット13による障害物回避速度補正処理のフローチャートである。コントローラユニット13は、モータ5、6を制御対象としてこれらのモータ5、6のモータシャフトの回転制御のサーボ周期毎に制御動作を実行する。
【0066】
障害物の存在を考慮される前の処理であるステップA1において、コントローラユニット13は、並進速度の指令値Vと、旋回速度の指令値ωとを入力される。ステップA2において、コントローラユニット13は、並進速度指令値方向に関する最短疑似距離障害物を探索する。レーザレンジファインダ9−12により障害物が検知されない間、コントローラユニット13は、Yルートを通り、ステップA1の処理を行う。レーザレンジファインダ9−12のいずれかにより障害物が検知されると、Nルートを通り、ステップA3において、コントローラユニット13は、並進速度出力許容方向を算出する。
【0067】
引き続き、ステップA4において、コントローラユニット13は、並進速度指令値vの方向が回避対象障害物方向と並進速度出力許容方向との間に存在するかどうかを判定する。コントローラユニット13は存在すると判定した場合、Yルートを通り、ステップA5において、現在の姿勢状態で並進速度出力許容方向に速度を出力可能であるかどうかを判定する。ステップA5において、出力可能であるとコントローラユニット13が判定した場合、Yルートを通り、ステップA6において、コントローラユニット13は、並進速度指令値vが並進速度許容方向になるよう速度値を並進速度指令値v′に補正する。
【0068】
続いて、ステップA7において、コントローラユニット13は、補正後の並進速度指令値方向に関する最短疑似距離障害物を探索する。ステップA8において、コントローラユニット13は、変換許容最大移動速度量を算出する。ステップA9において、コントローラユニット13は、移動体の並進移動速度量が変換許容最大移動速度量よりも大きいかどうかを判定する。並進移動速度量が変換許容最大移動速度量よりも大きいとコントローラユニット13が判定した場合、Yルートを通り、ステップA10において、コントローラユニット13は並進移動速度の圧縮補正を行い、ステップA11において、コントローラユニット13は圧縮補正した速度を出力する。ステップA9において、並進移動速度量が変換許容最大移動速度量よりも大きくはないとコントローラユニット13が判定した場合、Nルートを通り、ステップA11においてコントローラユニット13はそのまま速度を出力する。
【0069】
また、ステップA5において、現在の姿勢状態で並進速度出力許容方向に速度を出力可能ではないとコントローラユニット13が判定した場合、Nルートを通り、ステップA12において、コントローラユニット13は、並進速度指令値vが並進速度許容方向を向くように旋回速度補正候補値ω′を生成する。この場合、並進速度指令値vの方位補正をコントローラユニット13は行わない。続くステップA13において、コントローラユニット13は、旋回速度指令値ωと旋回速度補正候補値ω′とが同一の回転方向でありかつ|ω|>|ω′|であるかどうかを判定する。ωとω′とが同一回転方向でありかつ|ω|>|ω′|である場合、Yルートを通り、コントローラユニット13は、ステップA7の処理を行う。また、ωとω′とが同一回転方向ではない場合あるいは|ω|が|ω′|以下である場合、Nルートを通り、ステップA14において、コントローラユニット13は、旋回速度指令を旋回速度補正候補値に変更し、ステップA7に進む。
【0070】
このように、進行方向から障害物が無くなると、ロボット1は移動目標位置に向かって再び速度指令を生成しそれを出力するので目標へ復帰できるようになる。
【0071】
本例で解説した障害物回避制御手法は、コントローラユニット13に対しセンサ類からのセンサ入力が発生すると、コントローラユニット13はこのセンサ入力に対し、直ちに反応して動作補正を行うことが可能な反射的な障害物回避動作と表現することができる。この反射的障害物回避動作を実現する本制御処理を、経路計画に基づく障害物回避移動制御処理の後に実行するように移動体を移動制御するようにもできる。
【0072】
図18は移動体に対する階層構造指令伝達型の移動制御方法を説明するためのフローチャートである。この移動体に実装された制御手段は、ステップB1において、障害物回避計画軌道を生成する。ステップB1における処理では、制御手段は図示しない地図データベースを参照した上で障害物回避計画軌道を生成する。ステップB2において、制御手段は、障害物は考慮せずに、並進速度及び旋回速度の出力値を計算する。引き続き、ステップB3において、制御手段は、障害物回避速度補正を行う。制御手段はこの障害物回避速度補正に、本例の手法を適用する。ステップB4において、制御手段は、補正速度を出力する。モータの回転数が計算されてから出力される。
【0073】
換言すれば、特許文献1に記載の移動体の経路生成法のような経路計画に基づく障害物回避移動制御フローの下流に、障害物回避速度補正処理フローを配置する。制御手段はまず既知である地形情報に基づき効率的な経路を計画的に生成しつつ移動体に移動を行わせる。既知の情報通りに事が運んでいる間、制御手段は、本例の反射的障害物回避処理を表面化させることなく通常の移動動作指令をそのまま出力して計画通りの理想的な移動動作をおこなう。予期せぬ障害物が出現したときや、あるいは計画時の自己位置の認識誤差または地形データベース側の事前情報と実際の情報との誤差などにより、制御手段が生成した計画軌道では移動体が障害物に接触してしまうような状況に陥ってしまったときに、制御手段が本例の反射的障害物処理を発現させて障害物を回避する速度補正を適切に主処理に割り込ませるようにすることが可能となる。
【0074】
本提案の障害物回避制御手法を用いることにより、外部環境の予期せぬ乱れに強い安定した移動を実現することが可能となる。安定した移動が実現することは、移動ロボットなどの活動の場を、環境の作り込みでは片付けることのできない一般的な環境下へと大きく広げることを可能にすると考えられる。さらに回避対象障害物を選定することや、移動体自身の回避動作用の指令値などを出力することが連続的な状態量として扱われている。このため、出力される回避動作なども滑らかで効率も良く、また最短疑似距離をもつ1つの回避対象障害物を選定した上で計算が行われるため制御装置にかかる計算負荷も非常に小さく、非常に実用的な手法である。
【0075】
このように、コントローラユニット13は、移動体の移動方向からの角の大きさに応じて距離が変化する疑似距離が支配する、障害物と移動体との相対的な姿勢関係により値が変化する異方特性を持った速度・姿勢ポテンシャルより移動状態を用意し、この移動状態の量に周囲障害物までの最短疑似距離を毎時与えることで得られる速度および姿勢により回避動作を実現する制御手法を定める。
【0076】
このようにして、コントローラユニット13によれば、計算負荷が低い移動体を得ることができる。また、移動体の移動がスムーズとなり環境の動的変化などノイズに強いロバストな移動動作が可能になる。
【0077】
尚、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。上記実施形態では、移動体進行方向と計測対象方向とが成す角度が大きくなるほど、コントローラユニット13は真値よりも距離が長い疑似距離r′を生成していたが、コントローラユニット13は、同角度が大きくなるほど、真値よりも距離が短い疑似距離r′を生成するようにもできる。例えばロボット本体の胴部の横断面の形状が真円でなく、断面形状中の右前方向の部位がロボット本体よりも外方へ突出して形成されている場合、この右前方向の部位は障害物に接触しやすい。あるいは移動体の筐体が構造的に弱い部位を有し、この構造的に弱い部位が障害物と接触するリスクを減らすように設計することがある。これらの障害物に接触しやすい右前方向の部位や、構造的に弱い部位を保護するためには、右前方向で最短となるようにする(正面方向から右前方向へ向かうにつれて一度疑似距離が小さくなる)処理をコントローラユニット13が行うようにする。速度方位ポテンシャルや速度量ポテンシャルをメモリに記憶する際に、右前方向の部位や、構造的に弱い部位が存在する方位で疑似距離が小さくなるようなポテンシャル形状を有する速度方位ポテンシャルや速度量ポテンシャルをメモリに書き込むのである。コントローラユニット13がこれらのポテンシャルをメモリから読み込むことによって、コントローラユニット13は、移動体進行方向と計測対象方向とが成す角度が大きくなるほど、真値よりも距離が短い疑似距離r′を生成することができる。
【0078】
また、コントローラユニット13は、障害物の方位角の大きさに応じて、実計測距離を変化させて疑似距離を生成する疑似距離生成手段として機能する。このコントローラユニット13は、疑似距離に基づき、移動体が障害物を回避するよう移動体の動作を制御する制御手段として機能する。コントローラユニット13は、回避対象決定手段、並進速度出力指令値補正処理手段、旋回速度出力指令値補正処理手段としても機能する。各手段はCPU、ROM、RAMにより実現される。
【0079】
また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。本発明は、ロボットや全方向移動車のほかに、自動車などにも利用可能であり、自動車等の移動装置、移動制御装置及び制御手法に適用可能である。
【図面の簡単な説明】
【0080】
【図1】(a)は本発明の実施の形態に係る障害物回避機能を有する移動制御装置が実装された移動体の上面図であり、(b)は移動体の正面図である。
【図2】レーザレンジファインダの計測可能領域を示す図である。
【図3】本発明の実施の形態に係る障害物回避機能を有する移動制御装置のブロック図である。
【図4】本発明の実施の形態に係る障害物回避機能を有する移動制御装置が作成する障害物マップの一例を示す図である。
【図5】移動体が前進する時の疑似距離の概念を示す図である。
【図6】移動体が後進する時の疑似距離の概念を示す図である。
【図7】角度と疑似距離との関係を説明するための図である。
【図8】同一地点での前進及び後進の進行方向切り替わりにより周囲環境の障害物位置が変化する疑似障害物マップの概念図である。
【図9】移動体の姿勢変更後の移動により周囲環境の障害物位置が変化する疑似障害物マップの概念図である。
【図10】移動体として全方向移動車が用いられる場合の障害物マップの一例を示す図である。
【図11】回避対象の障害物の位置をコントローラユニットが決定する手法を説明するための図である。
【図12】速度方位ポテンシャルの一例を示す図である。
【図13】並進速度出力許容方向と回避対象障害物方向との関係を示す図である。
【図14】移動体の移動速度の出力方向の補正処理を説明するための図である。
【図15】移動体の移動速度に応じて異なるポテンシャル形状を有する速度方位ポテンシャルの一例を示す図である。
【図16】速度量ポテンシャルの一例を示す図である。
【図17】コントローラユニットによる障害物回避速度補正処理のフローチャートである。
【図18】移動体に対する階層構造指令伝達型の移動制御方法を説明するためのフローチャートである。
【符号の説明】
【0081】
1…ロボット(移動体)、1A…全方向移動車(移動体)、2,2A…基台、3,4…駆動輪、5,6…モータ、7…前方キャスタ、8…後方キャスタ、9−12…レーザレンジファインダ(計測手段)、13…コントローラユニット(障害物回避機能を有する移動制御装置)、14,15…回転角度センサ(検出手段)、16…位置センサ(検出手段)、17…姿勢センサ(検出手段)、18…レーザレンジファインダ計測可能領域、19…経路生成部、20…目標軌道生成部、21,25…演算部、22…ロボット移動速度指令値生成部、23…障害物回避速度指令値補正部、24…車軸回転速度指令値生成部、26…モータ制御電流指令値生成部、27…ロボット本体、28〜32,37〜40,42〜44…障害物ないしは物体、33…移動体進行方位、34…実位置、35…疑似位置、36…疑似障害物位置、41…駆動輪、45…障害物位置、46…最短疑似距離、47…回避対象障害物方向、48…回避対象障害物、49…並進速度出力許容方向、50…移動体基準位置、51…移動速度出力方向、52…回避対象障害物方向、53…並進速度出力許容方向、54〜56…速度方位ポテンシャル、57…障害物位置、58…疑似距離、59…真の距離、60…疑似位置、61…真の位置。
【技術分野】
【0001】
本発明は障害物回避機能を有する移動制御装置に関する。
【背景技術】
【0002】
人間共存環境で活動するロボットなどの自律移動体の開発が盛んに行われている。コスト、消費電力、CPUリソースなどの観点から、このようなロボットに計算負荷の高いアルゴリズムのソフトウェアを実装することは現実的でない。また工場の中で移動する搬送車のように移動環境を完全に作り込むことは不可能であり、オブジェクトの配置ズレや他の移動物体などを許容した移動制御が必要となる。その一方でスムーズかつ素早い効率の良い移動動作をロボットが行えるようにする要求が高い。
【0003】
移動体が障害物を回避しながら移動する技術に関しては、従来、障害物を回避しながら目標点に移動する経路の中から最短距離となるルートを見い出す移動体の経路生成法が知られている(特許文献1参照)。この経路生成法は、環境温度マップを作成し、環境温度マップ中に構築された障害物に関する各格子点における温度に基づき各格子点で探索しながら出発点と最終目標点とを結ぶ最短経路を作成し、移動体をこの最短経路に沿って最終目標点まで移動させている。
【0004】
また、障害物の動きに応じて移動体の移動経路をその場で生成し、動的な障害物がある場合でも適切な回避行動を取れるようにした自走移動体の制御方法が知られている(特許文献2参照)。特許文献2に記載の方法は、障害物が存在する確率を表す確率ポテンンシャル場を生成し、この確率ポテンシャル場に目標位置に向かう勾配を付加し、この勾配が付された確率ポテンシャル場の傾きに基づき目標位置に向かう経路を探索し、自走移動体をこの経路に沿って移動させている。
【0005】
また、与えられた領域を、できるだけ短時間でほぼ網羅的に走行できるようにし走行中のハンチングを防止可能とした自律走行ロボットも提案されている(特許文献3参照)。特許文献3に記載のロボットは、左右の障害物センサを設け、これらのセンサが検出した障害物までの距離に基づき検出距離が長い側に旋回動作を行うと共に、この旋回動作後の予定時間内に再び先の旋回動作とは逆方向に旋回する動作が必要になった場合、先の旋回時よりも旋回角を小さくするようにしている。
【特許文献1】特開2001−154706号公報
【特許文献2】特開2003−241836号公報
【特許文献3】特開平10−228315号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に記載の経路生成法では、既知である地図を使用した経路計画をベースにした移動体の障害物の回避動作がノイズに非常に弱い。ノイズとは、地図に登録されていない障害物や、理想値(地図情報)と現実値とのズレ、及びデッドレコニング誤差である。また特許文献1に記載の技術では、位置が時々刻々と不規則に変化する移動体への制御の対応が難しい。
【0007】
特許文献2に記載の自走移動体の制御方法は、移動体と障害物又は移動目標との間に仮想的な斥力あるいは引力などを生成する力場を定め、これらの力の合力から移動体の進行方向を決定するポテンシャル法である。この制御方法では、複雑な地形や多数の障害物に対する扱いが難しい。経路の精度を高めようとすると障害物を登録するためのグリッドマップのメッシュを細かくする必要があり、計算コストが爆発的に高くなる。
【0008】
特許文献3に記載の自律走行ロボットはセンサ情報を移動指令に直結させる手法を用いたものである。この自律走行ロボットでは、きめ細かな動作指令をロボットへ与えることが難しく、ロボットは大まかで単調なぎこちない動作になりやすい。滑らかで効率の良い動作を実現することが難しい。
【0009】
そこで、本発明は、上記の課題に鑑み、計算負荷が低く、移動がスムーズであり環境の動的変化などノイズに強いロバストな移動動作が可能な障害物回避機能を有する移動制御装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
このような課題を解決するため、本発明の一態様によれば、移動体と、この移動体に設けられ、移動体進行方位を検出する検出手段と、前記移動体に設けられ、障害物の位置およびこの障害物までの実計測距離を計測し、この検出手段が検出した前記移動体進行方位に対する前記障害物の方位角を出力する計測手段と、この計測手段が出力した前記障害物の方位角の大きさに応じて、前記実計測距離を変化させて疑似距離を生成する疑似距離生成手段と、この疑似距離生成手段が生成した前記疑似距離に基づき、前記移動体が前記障害物を回避するよう前記移動体の動作を制御する制御手段と、備えることを特徴とする障害物回避機能を有する移動制御装置が提供される。
【0011】
また、本発明の別の一態様によれば、移動空間に関する外部環境情報を保存し更新可能な記録手段と、この記録手段に記録された前記外部環境情報をもとに目的地点までの適切な経路を生成可能な経路生成手段と、この経路生成手段により生成された前記経路を辿るような速度出力指令値を生成する移動速度出力生成手段と、この移動速度出力生成手段が生成した前記速度出力指令値に対して、速度出力補正を行う請求項1〜13に記載の疑似距離生成手段と、を備えることを特徴とする障害物回避機能を有する移動制御装置が提供される。
【発明の効果】
【0012】
本発明によれば、計算負荷を大幅に低減しつつも不要な回避動作を抑制した滑らかな回避軌道を生成することが可能となる。また時々刻々と変化する動的環境にも対応した回避動作を実現できるようになる。
【発明を実施するための最良の形態】
【0013】
以下、本発明の実施の形態に係る障害物回避機能を有する移動制御装置について、図1乃至図18を参照しながら説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
【0014】
本発明の実施の形態に係る障害物回避機能を有する移動制御装置は、独立二輪駆動型の移動ロボットに搭載される。図1(a)は移動ロボットの上面図であり、図1(b)は図1(a)の矢印J方向から見たこの移動ロボットの正面図である。これらの図中で同じ符号を有する要素は互いに同じ要素を表す。
【0015】
ロボット1は、基台2と、それぞれこの基台2の左右両側部に左右平行に同軸的に配置され互いに独立して駆動可能にされた一対の駆動輪3、4と、それぞれが基台2の下面に設けられ駆動輪3、4を回転させる一対のモータ5、6と、基台2の前方中央部に取り付けられた前方キャスタ7と、基台2の後方中央部に取り付けられた後方キャスタ8と、それぞれ基台2上面の四隅に設けられ被測定対象との間の距離を測定する4つのレーザレンジファインダ(LRF)9−12と、基台2に設けられモータ5、6の回転駆動制御を独立して行うコントローラユニット13(本実施形態に係る障害物回避機能を有する移動制御装置)とを備える。コントローラユニット13には、CPU、ROM及びRAMが用いられる。
【0016】
更にロボット1は、それぞれ駆動輪3、4のシャフトに設けられた一対の回転角度センサ14、15と、基台2の並進移動量を検出するための位置センサ16と、基台2の垂直軸線周りの旋回角度を検出する姿勢センサ17とを有する。回転角度センサ14、15にはポテンショメータやロータリーエンコーダが用いられる。位置センサ16には慣性センサが用いられる。姿勢センサ17には、垂直軸線周りの角速度を検出するジャイロセンサが用いられる。これらの回転角度センサ14、15の各センサ値と、位置センサ16のセンサ値と、姿勢センサ17のセンサ値とはいずれもコントローラユニット13へ入力されるようになっている。
【0017】
基台2は矩形状の平板である。モータ5、6は基台2に固定されており、各モータ軸を介して駆動輪3、4と連結されている。駆動輪3、4の各車輪面は互いに平行にされた状態でこれらの駆動輪3、4は正方向及び逆方向に回転自在である。駆動輪3、4と前方キャスタ7及び後方キャスタ8とによって基台2が床面に対して床面から車輪径で決まる高さで水平に保持される。コントローラユニット13によるモータ5、6に対する駆動制御によって、駆動輪3の回転速度と駆動輪4の回転速度とは互いに同じにされ、あるいは異なるようにされている。モータ5、6が駆動制御されることによって、ロボット1の走行及び旋回が可能にされている。モータ5、6の各回転方向と各回転速度とが制御されることによって、ロボット1は床面内を移動可能になっている。
【0018】
レーザレンジファインダ9−12は平面走査型の距離計測手段である。レーザレンジファインダ9−12はいずれも図示しないレーザ光源と、回転軸を有し外周面上に多面鏡を設けたレーザ光反射体と、レーザ光反射体を回転させる駆動モータと、レーザ光を変調する変調手段と、被測定対象によって反射されたレーザ光を受光する受光器と、電子回路部と、これらのレーザ光源等を収容する筐体とを有する。この駆動モータのモータ軸の回転角に応じて、筐体外部の走査空間を走査する走査光がレーザ光より生成されるようになっている。レーザ光源及び変調手段は障害物ないしは目標物体といった被測定対象に対してパルス変調したレーザ光を照射し、受光器は被測定対象により反射された反射光を受光し、電子回路部は変調光を送出した時間とこの反射光が戻ってきた時間とから、ロボット1と被測定対象物との間の距離の情報を出力する。
【0019】
レーザレンジファインダ9は、基台2の前方に存在する物体までの距離とその物体からの反射光の反射強度とを、角度ステップ毎に計測し、反射光強度の計測結果から計算した距離を図示しないメモリに記憶する。このメモリには角度毎の距離値が記憶される。角度毎の距離値は更新可能及び補正可能である。レーザレンジファインダ10−12の構成もレーザレンジファインダ9の構成と同じである。レーザレンジファインダ9−12はロボット1の周囲の全方位を死角なく走査可能に配置されている。
【0020】
図2はレーザレンジファインダ9−12の計測可能領域を示す図である。コントローラユニット13がこれらのレーザレンジファインダ9−12を制御することによって、レーザレンジファインダ9−12はロボット1の周囲の空間を走査する。各レーザ光源からのレーザ光の送出方向は床面と平行である。また、これらのレーザレンジファインダ9−12内の受光器の感度は略水平方向にされてある。基台2の四隅に設けられた各レーザレンジファインダ9−12がそれぞれ上面視扇形のレーザレンジファインダ計測可能領域18を走査する。
【0021】
コントローラユニット13は、4つのレーザレンジファインダ9−12から出力される角度毎の距離値に基づき、床面上の障害物を含む外部環境の距離画像を生成する。コントローラユニット13は、ロボット1の360°全方位に亘って障害物が存在しているかどうかを検出するようにしている。
【0022】
また、コントローラユニット13はモータ5、6の角速度及び角加速度を制御する。ロボット1の周囲に障害物が存在することをコントローラユニット13が検知した場合、このコントローラユニット13は後述するように障害物を回避するための演算処理を行う。コントローラユニット13は、センサ類からの情報に基づきロボット1の並進移動量や旋回量を算出し、モータ5の角速度及び角加速度の目標値と、モータ6の角速度及び角加速度の目標値とを生成する。コントローラユニット13は、生成したモータ5、6の各回転量の目標値から、これらのモータ5、6の図示しないドライバに対して電流制御を行うようにしている。
【0023】
図3はコントローラユニット13のブロック図である。コントローラユニット13は、ロボット1が走行すべき経路を生成する経路生成部19と、経路生成部19からの出力に基づいて制御周期ごとに基台2のx、y座標系での目標位置及び垂直軸線周りの目標回転位置を生成する目標軌道生成部20と、目標軌道生成部20からの出力及び基台2に取り付けられたセンサ類からのセンサ値を比較し、演算した結果を出力する演算部21と、演算部21から出力される演算結果の差分を埋めるように基台2の並進速度の目標値及び旋回速度の目標値を計算するロボット移動速度指令値生成部22とを備える。
【0024】
経路生成部19は、後述する図4に示すような障害物マップを作成する。目標軌道生成部20は、各制御周期でのロボット目標位置xr[m]、yr[m]及びロボット目標姿勢θ[rad]を生成して出力する。演算部21は、これらのxr、yr及びθと、センサ類からの現在位置x[m]、y[m]とを比較する。ロボット移動速度指令値生成部22は、演算部21からの比較結果に基づき並進速度目標値Vr[m/s]及び旋回速度目標値ωr[m/s]を生成して出力する。
【0025】
更にコントローラユニット13は、ロボット移動速度指令値生成部22からの出力を補正する障害物回避速度指令値補正部23と、この障害物回避速度指令値補正部23からの出力に基づいて各軸の回転速度の目標値を生成して出力する車軸回転速度指令値生成部24と、車軸回転速度指令値生成部24からの出力及び基台2のセンサ類からのセンサ値を比較演算した結果を出力する演算部25と、演算部25から出力される演算結果に基づいてモータ5、6へ与える電流の目標値を生成するモータ制御電流指令値生成部26と、ロボット本体27とを備える。ロボット本体27は、駆動輪3、4及び回転角度センサ14、15、位置センサ16及び姿勢センサ17からなる。
【0026】
障害物回避速度指令値補正部23は、並進速度目標値Vrを補正して補正並進速度目標値Vr′[m/s]を出力する。障害物回避速度指令値補正部23は、旋回速度目標値ωrを補正して補正旋回速度目標値ωr′[m/s]を出力する。車軸回転速度指令値生成部24は各軸回転速度目標値φnr[rad/s]を生成して出力する。モータ制御電流指令値生成部26は、各軸モータ電流指令値inr[A]を出力する。この各軸モータ電流指令値inrは、モータドライバへの電圧の指令値Vn[V]にほぼ等しい。
【0027】
ロボット1は移動体である。ロボット1は移動手段を有し、またこの移動手段を動作させる駆動手段を有する。移動手段は駆動輪3、4であり、駆動手段はモータ5、6である。コントローラユニット13は本実施形態に係る障害物回避機能を有する移動制御装置である。障害物回避制御方法は、この移動体に関する制御手法である。コントローラユニット13は目標地点を設定するという上位処理を行う。移動体は移動体自身の内部に持つ上位概念のルールに従い目標地点が設定される。移動体とは、目標地点へ到達するための並進速度指令値及び旋回速度指令値を生成するロボット1のような自律移動体を含む。あるいは、移動体とは、アシストカートなどのように外部入力を指令値としてこの指令値を実現するように駆動手段を動作させる半自律移動体なども含む。また移動体は移動体周囲の物体の配置状況を認知可能な認知手段を有しており、これにより移動体の周囲の全方位の障害物情報を知ることが可能となっている。
【0028】
ここでは図1に示すような移動型ロボットを代表例として用いる。ロボット1は、モータ5、6により駆動される左右の駆動輪3、4を有する独立二輪駆動方式である。これら二輪の回転量で直進及び旋回の動作が定まる。またロボット1にはレーザレンジファインダ9−12が図2のように死角なく複数例えば4個配置され、全方位の障害物までの距離をその方向とともに高精度で計測することが可能となっている。計測された方位角及び距離といった障害物情報は直ちにメモリ内で更新され、更新された障害物情報は制御に反映される。
【0029】
図2ではレーザレンジファインダ9−12が計測する距離方向は途中までしか描画されていないが、実際にはさらに遠方まで計測可能である。レーザレンジファインダ9−12単体が計測可能な方位も特に図2の例に指定するものではなく、レーザレンジファインダ搭載個数も特に図2の数に限定するものではない。ロボット1の移動方法は本例の独立二輪駆動方式に限るものではなく、少なくともロボット1自身の移動方向と移動量とがホロノミック又はノンホロノミックの区別無く任意に指定できればよい。例えばステアリング方式や、4輪が駆動する全方向移動車、また二足歩行のような車輪以外の移動手段が用いられてもよい。
【0030】
またセンサ系に関しても特に本例のレーザレンジファインダ方式に限るものではなく、配置位置が異なるものや、指向性のある超音波センサやPSD(Position Sensitive Detector)センサを周囲に配置したものを用いてもよい。PSDセンサは、受光面を有しこの受光面に入射するビームスポットの位置に応じて差動的に変化する一対の出力信号を出力するPSD素子と、このPSD素子により検出された光位置から距離を演算する演算手段とからなる。また、これらのセンサ情報をロボット1の周囲の情報を予め記録した地図上に一度集約して、制御周期毎にこの地図より擬似的にロボット1の周囲の状況を読み出してもよい。さらにこの地図に環境カメラや他ロボットなど外部システムからも位置同期を取りつつ障害物配置をリアルタイムで登録し、削除するようにしてもよい。
【0031】
本例でのコントローラユニット13は図2のように配置されたレーザレンジファインダ9−12のそれぞれから得られる距離情報をマップ上に統合する処理を行う。コントローラユニット13は、既知である幾何配置情報をもとに一つの座標系で表される地図上で各距離情報を統合管理している。この障害物マップ情報より、ロボット1の指定方向の指定角度範囲内に存在する障害物のうちの最も近い障害物までの距離が得られるようになっている。
【0032】
センサとしてのレーザレンジファインダ9−12のサンプリングレートは、ロボット1自身の移動および他移動物体による外界の動的変化に対し相対的変化が連続的に捉えられる程度に十分高速なものが用意される。また指定角度最小範囲の分解能についても、規定の距離内に存在する外界障害物の相対的な位置変化が連続的に捉えられる程度の適切な分解能が設定されている。ここでの連続的とは、対象物の位置を計測するステップの後、観測対象物が計測した次ステップにおいて前回計測された位置より規定の距離範囲内に存在することを意味している。この分解能の値は用途に応じ変化するので、一意に定めるものではない。
【0033】
図4はコントローラユニット13が作成する障害物マップの一例を示す図である。同図中、上述した符号と同じ符号を有する要素はそれらと同じ要素を表す。28から32はいずれも障害物ないしは物体を表す。33は移動体進行方位である。ロボット1から見て障害物29の方位が計測指定方位である。これらの移動体進行方位及び計測指定方位が成す角度φは基準方位である正面方向に対する方位φである。57は計測指定方向の最短距離に存在する障害物の位置を表す。
【0034】
本例では障害物マップは、図4のようなロボット1を中心とした相対座標系において、計測指定方位として指定された方位φと、その方向の最短距離rとにより極座標表現される。障害物マップは、極座標以外の座標を用いた表記や、絶対座標などを用いても特に構わない。また本例では、方位φの基準方向はロボット正面としており、半時計回り方向を正としている。この基準方向や旋回方向に関してもロボット正面や半時計回り方向に特に限定されるものではない。
【0035】
障害物マップ上での実計測距離と疑似距離との関係を、図5及び図6に示す。図5は移動体が前進する時の疑似距離の概念を示す図である。34は障害物ないしは物体の実位置を表す。35は障害物ないしは物体の疑似位置を表す。レーザレンジファインダ9はロボット1と、実障害物位置34との間の距離を実測し実計測距離rを取得する。レーザレンジファインダ9は、移動体進行方位と計測指定方位とが成す角度θ1を取得する。コントローラユニット13は、実計測距離rを疑似距離r′に置き換える処理を行うことによって、障害物マップ上で、実障害物位置34を疑似障害物位置35へ置き換えるようにしている。置き換える処理とは、関数fを用いてr′=f(r、θ1)を演算することを指す。CPUは、関数fの計算手順が記述されたプログラムをROMから読み込み、RAMを用いてこの計算手順を実行する。
【0036】
また、ロボット1が後進する時の例を図6に示す。レーザレンジファインダ9はロボット1と、実障害物位置34との間の距離を実測し実計測距離rを取得する。レーザレンジファインダ9は、移動体進行方位と計測指定方位とが成す角度θ2を取得する。この角度θ2の大きさは、図5の例の角度θ1よりも大きい。コントローラユニット13は、r′=f(r、θ2)を演算することによって、障害物マップ上で、実障害物位置34を疑似障害物位置36へ置き換えるようにしている。
【0037】
即ち本発明では図5に示すように、コントローラユニット13は移動体進行方向と計測指定方向とが成す角度θ1の大きさに応じて計測指定方向の距離値が真の計測値(以下「真値」)から変化する疑似距離を用いる。本例での独立二輪駆動方式でロボット1が前進している場合、移動体進行方向と計測方位基準方向とが一致するので、この場合θ1=φとなっている。ロボット1が後進する場合、移動体進行方向、計測指定方向それぞれの角度関係は図6のようになる。
【0038】
さらに図7は角度θと疑似距離rn′との関係を説明するための図である。58は疑似距離を表す。59は真の距離である。本例では図7に示すように移動体進行方向と計測指定方向とが成す角度θnの大きさが大きくなるほど疑似距離r′は真値rよりも大きな値を取るように、コントローラユニット13は関数fの計算手順を実行する。角度θnが大きくなるほど、疑似距離が真値から乖離する量が大きくなる。
【0039】
図8に同一地点での前進及び後進の進行方向の切り替わりにより周囲環境の障害物位置が変化する疑似障害物マップの概念図を示す。ここで図8(a)はロボット1が前進する時の疑似障害物マップの一例であり、図8(b)は図8(a)のロボット1の地点と同じ地点でロボット1が後進する時の疑似障害物マップの一例である。また、図9にロボット1の姿勢変更後の移動により周囲環境の障害物位置が変化する疑似障害物マップの概念図を示す。図9(a)は姿勢を変更した後のロボット1が前進する時の疑似障害物マップの一例であり、図9(b)は図9(a)のロボット1の地点と同じ地点での姿勢変更後のロボット1が後進する時の疑似障害物マップの一例である。37から40は障害物ないしは物体を表す。60は疑似位置であり疑似障害物マップ上での障害物位置を表す。61は真の位置である。
【0040】
ここで疑似距離により形成されるロボット1の周囲環境の障害物位置を表示した疑似障害物マップ(以下、障害物マップ)は、図8(a)、図8(b)で表されるように同一の地点であっても前進及び後進の動作の切り替わりで状況が一瞬のうちに変化するという特徴がある。また図9(a)、図9(b)で表されるように、ロボット1が独立二輪駆動方式であっても、ロボット1がその場で旋回動作を行い、絶対座標系上でのロボット1自身の正面方向(以下「姿勢」と同義)を変化させた場合、その後の前後の移動時に得られる障害物マップはそれ以前のものとは異なるものとなる。
【0041】
移動体は本例とは異なる移動方式を用いてもよい。移動体には全方向移動車が用いられてもよい。全方向移動車は、任意のタイミングで任意の方向に速度出力を生成可能な移動手段を持つ移動機構である。移動体として全方向移動車が用いられる場合の障害物マップを図10に示す。図10(a)から図10(d)には全方向移動車1Aの同一姿勢状態での移動方向の切り替わりにより周囲環境の障害物位置が変化する疑似障害物マップが示されている。斜線付きの丸は疑似障害物マップ上での障害物位置を表す。白色の丸は真の位置を表す。
【0042】
全方向移動車1Aは、基台2Aと、この基台2Aの前後左右の4箇所に枢支された駆動輪41と、この基台2A上に設けられた図示しない本実施形態に係る障害物回避機能を有する移動制御装置とを有する。これら以外の符号で上述した符号と同じ符号を有する要素はそれらと同じ要素を表す。具体的には図10(a)は全方向移動車1Aの前進時の疑似障害物マップであり、図10(b)は同じ地点での後進時の疑似障害物マップである。図10(c)は姿勢変更後の全方向移動車1Aの前進時の疑似障害物マップであり、図10(d)は同じ地点での姿勢変更後の全方向移動車1Aの後進時の疑似障害物マップである。図10で表されるように移動指令方向により障害物マップが表す周囲環境状況は、同一の地点で同一の姿勢を有していても異なる結果を出力することになる。全方向移動車1Aの移動制御装置はロボット1のコントローラユニット13と同じである。
【0043】
以下、ロボット1に搭載されるコントローラユニット13が行う疑似距離の生成処理について述べる。ここでは障害物計測方位角θに対応して、真値rを疑似距離r′へと変換する『行為』を疑似距離『変換』と呼ぶことにする。本例では(式1)のような疑似距離変換を適用して疑似距離を生成している。
【数1】
【0044】
ここでl,m,nは任意の実数とし、kは0<k<2の実数とし、コントローラユニット13は(k=1,l=1,m=2,n=1)を一組として疑似距離を生成するようにしている。コントローラユニット13は進行方向と同方向(即ち独立二輪駆動方式では正面方向)に位置する疑似距離の値については真の距離値と同じ値を出力する。コントローラユニット13は、移動進行方向に対し真横方向に位置する疑似距離の値については真の距離値の2倍の距離を出力する。コントローラユニット13は、進行方向(θが0度の方向)と真横方向(θが90度の方向)との間の範囲内の所望の方向に位置する疑似距離の値については、(式1)に代入して得られる値を出力する。つまりこれらの2つの方向の間の遷移は余弦関数的に遷移していく。またコントローラユニット13は、真横方向よりもθが大きい方向である後方は無限遠とすることで、真横方向よりも後方に位置する方向に存在する障害物を、障害物回避の考慮対象から除外するようにしている。
【0045】
また、コントローラユニット13は、正面方向の疑似距離の値を、真値と異なる値に設定してもよい。コントローラユニット13は正面方向の疑似距離の値を真値から変える場合、lの値を変更する。コントローラユニット13は、無限遠を除く最大値を変える場合、mの値を変更する。コントローラユニット13は、正面方向について設定した値から最大値に至るまでの余弦関数の遷移形状を変化させる場合、nの値を変更すればよい。またコントローラユニット13はkの値を変更することで疑似距離が最大地点(無限遠を除く)となる角αの位置を真横から変えるようにもできる。ただし本例が提示する(式1)は一例にすぎず、コントローラユニット13は進行方向背後の障害物距離を無限遠とはせずに有限値としてもよい。さらにはコントローラユニット13は、他の関数を使用して疑似距離変換をデザインしても何ら問題はなく、これらは請求項に記載の本発明の範囲内である。
【0046】
ロボット1は、上記疑似距離r′を参照し、周囲環境が未だ考慮されていない段階で生成した移動動作指令を補正するようにしている。以下、本補正処理を障害物回避と呼び、補正処理された移動動作を障害物回避動作と呼ぶ。
【0047】
ロボット1は障害物回避動作にあたり、ロボット1自身の周囲に存在する障害物についての複数の疑似距離を参照し、これらの疑似距離のうち最短の疑似距離を入力として使用するようにしている。図11は回避対象の障害物の位置をコントローラユニット13が決定する手法を説明するための図である。同図には、ロボット1の周囲に障害物(物体)42〜44が存在しており、コントローラユニット13は、疑似障害物マップ上に複数の障害物位置を予め生成する。斜線付きの丸は障害物位置を表す。白色の丸は真の位置を表す。コントローラユニット13は、これらの障害物位置の間で疑似距離を比較し、最短の疑似経路を有する障害物位置を検索する。複数の障害物位置のうちの45を付された障害物位置をコントローラユニット13が判断すると、コントローラユニット13はこの障害物位置45を回避対象障害物位置と決定する。即ち、図11で表されるように、コントローラユニット13は、最短疑似距離46を有する方位,疑似距離が指す位置を回避対象障害物位置とする処理を行う。この地点を回避対象障害物と呼ぶこととする。
【0048】
従来の障害物回避手法では、コントローラが回避軌道を生成するにあたり、コントローラは障害物までの距離とその方向との2成分を考慮しなくてはならなかった。しかし、本実施例による障害物回避制御手法では疑似距離にその方向成分によりもたらされる効果も含まれているので、特例的な処理を除き、マップ生成後のコントローラユニット13の軌道生成作業ではコントローラユニット13は基本的には疑似距離のみを参照すればよい。
【0049】
本例で示すロボット1は疑似距離を入力として障害物回避のための速度出力方向と速度量との2成分を出力するようにしている。従来例のポテンシャル手法はコントローラが1つのポテンシャル関数から強度とその勾配とを求めこれらの強度及び勾配を速度量と速度出力方向とに当てはめたものである。これに対して、コントローラユニット13は2成分の値を算出するにあたり、2つの独立した生成関数を使うようにしている。以下の説明では、これらの2つの独立した生成関数のそれぞれを速度方位ポテンシャル,速度量ポテンシャルと呼ぶこととする。なおここでの「ポテンシャル」という呼称は便宜上用いるものであり、一般的なポテンシャル関数のように導関数が特別な意味を持つわけではない。
【0050】
速度方位ポテンシャルについて図12から図15を参照して説明する。図12は速度方位ポテンシャルの一例を示す図である。横軸は疑似距離r′であり、縦軸は並進速度出力許容方位角ξである。図12で表されるような形状を有する速度方位ポテンシャルを、コントローラユニット13は予め生成してコントローラユニット13内のメモリ(記憶手段)に記憶しておく。コントローラユニット13は予め横軸と縦軸との各値を取得する処理を実行し、速度方位ポテンシャルを生成しておく。
【0051】
ここでの並進速度出力許容方位角について図13及び図14を参照して更に述べる。図13は並進速度出力許容方向と回避対象障害物方向との関係を示す図である。回避対象障害物方向47は回避対象障害物48の存在する方向である。並進速度出力許容方向とは図13の49で表される。並進速度出力許容方向49は、回避対象障害物方向47に向けることが可能な移動速度出力の限界方向を指す。移動体基準位置50(ここでは移動平面に投影したロボット重心とする)を頂点とし、回避対象障害物方向47と並進速度出力許容方向49とが成す角ξを並進速度出力許容方向角と呼ぶこととする。この並進速度出力許容方向49は、基本的には回避対象障害物方向47から移動速度出力方向に向けて展開される。
【0052】
また、図13の回避対象障害物方向47と並進速度出力許容方向49とが成す角ξは0からπ/2までの範囲を取りうる。コントローラユニット13は、ξが0のとき任意の方向へ移動速度を出力するようにする。これに対し、ξの値が増加するに伴いコントローラユニット13は回避対象障害物方向47への移動速度出力を制限する。コントローラユニット13が制限をかけるため、ξがπ/2になると、コントローラユニット13は回避対象障害物方向47に対し垂直方向もしくは回避対象障害物48から遠ざかる方向にのみ速度出力を行うようにしている。
【0053】
図14は移動体の移動速度の出力方向の補正処理を説明するための図である。図14のように移動速度出力方向51が回避対象障害物方向52と並進速度出力許容方向53との間に存在する場合、ロボット1は移動速度出力方向51を並進速度出力許容方向53にまで補正変更するようにしている。
【0054】
図11の速度方位ポテンシャルより分かる通り、疑似距離r′がある値rmax(第1閾値)以上である場合、コントローラユニット13は並進速度出力許容方位角ξの値を0にする。コントローラユニット13は速度出力方向については特別な制限をかけない。コントローラユニット13により制限を受ける速度方位ポテンシャルの特性は、疑似距離r′がrmax以下になると徐々にξの値が増加し、疑似距離r′がある値rmin(第2閾値)以下ではξの値はπ/2に飽和するような形状をとる。ここでrmaxの値は「ロボット1がどれくらい回避せずに障害物方向にまで接近を許容するか」という回避開始距離を定義する値である。rminの値は「ロボット1が最悪どのくらいの距離まで障害物への接近を許容するか」という限界接近距離を定義する値である。
【0055】
また、全方向移動車1Aのように任意の時刻に任意の並進移動速度を生成可能な移動体については、コントローラユニット13は補正処理した移動速度出力方向に自身の移動速度出力を設定する処理を行うだけでよい。移動体が本例のような独立二輪駆動型の場合この移動体の動作はノンホロノミックな移動拘束条件下での動作となるため、コントローラユニット13は補正処理した移動速度出力方向に移動速度を生成することができない。このような場合、コントローラユニット13は移動体の姿勢を変更するようにし、移動速度の出力方向が補正処理方向にまで向くようにロボット1を旋回動作させる。コントローラユニット13は旋回のための車軸回転速度が生成されるように、回転動作補正処理を実行する。
【0056】
またコントローラユニット13が参照する速度方位ポテンシャルは、図15のように疑似距離と並進速度出力許容方位角ξとの関係が移動体の移動速度に応じて変化するような特徴を有している。図15は、移動体の移動速度に応じて異なるポテンシャル形状を有する速度方位ポテンシャルの一例を示す図である。この速度方位ポテンシャルはコントローラユニット13のメモリに記憶されている。54は移動体の移動速度が速い場合に適用される速度方位ポテンシャルである。55は移動体の移動速度が遅い場合に適用される速度方位ポテンシャルである。56は通常の速度方位ポテンシャルを表す。
【0057】
速度方位ポテンシャル54は、最小疑似距離rmin及び最大疑似距離rmaxがそれぞれ通常の速度方位ポテンシャルの最小疑似距離及び最大疑似距離よりも増加したポテンシャル形状を有する。速度方位ポテンシャル55は、最小疑似距離rmin及び最大疑似距離rmaxがそれぞれ通常の速度方位ポテンシャルの最小疑似距離及び最大疑似距離よりも減少したポテンシャル形状を有する。コントローラユニット13は予めこれらの速度方位ポテンシャル54、55を作成してメモリに設定しておく。これにより指定移動速度が速い場合、障害物に対しなるべく遠い位置から徐々に回避動作を行うことで安全性を高めることを可能とし、指定移動速度が遅い場合、安全性の観点からもある程度の障害物までの接近は許容され、その分指定軌道に沿うように移動させることが可能となる。また高速移動時及び低速移動時のそれぞれにおける最小疑似距離rmin,最大疑似距離rmaxの間の変化幅に限界値を設けておき、コントローラユニット13はある程度の段階で飽和するような処理をかけるようにしてもよい。
【0058】
また、移動速度出力方向が回避対象障害物方向と並進速度出力許容方向との間に存在する場合、コントローラユニット13は原則として並進速度出力許容方向へ向けて移動速度出力方向を変更する。このため、移動速度出力が回避対象障害物方向へ向くような速度変更や姿勢変更は禁止される。移動速度出力方向が回避対象障害物方向と並進速度出力許容方向との間よりも外側に存在する場合でも、移動速度出力方向が並進速度出力許容方向の近傍に存在する場合、コントローラユニット13は移動速度出力方向が回避対象障害物方向へ向くような速度変更や姿勢変更を禁止する。これにより並進速度出力許容方向を挟んでの移動速度出力や姿勢変更のチャタリング的な振動動作が抑制される。
【0059】
以上は速度方位ポテンシャルについての説明である。以下、速度量ポテンシャルについて図16を参照して説明する。図16は速度量ポテンシャルの一例を示す図である。横軸は疑似距離である。縦軸は速度許容率γ(0≦γ≦1)である。速度許容率は、速度量ポテンシャルにより制限された状態で移動体が最終的に出力可能な並進速度の最大値を、障害物が無い状態で移動体が本来出力可能な並進速度の最大値で除して得た比率である。この比率は擬似距離および移動体自身の大きさに応じて定まる。移動体であるロボット1が最終的に出力可能な速度最大値は、この比率にロボット1が本来出力可能な速度最大値を乗じて得られる。ここで障害物距離により制限を受ける値は許容出力速度の『最大値』であり、出力速度が直接制限を受けるものではない。このため、速度出力の指令値が最終的に出力可能な速度最大値よりも小さい場合、何の補正も受けることなくそのまま指令された値の速度が出力される。また、速度出力の指令値が本来出力可能な速度最大値より小さい値であっても、最終的に出力可能な速度最大値よりも大きい場合、このときの出力は最終的に出力可能な速度最大値に制限される。
【0060】
コントローラユニット13は予め横軸と縦軸との各値を取得する処理を実行し、速度量ポテンシャルを生成しメモリに記憶しておく。ここでの速度許容率γは、(式2)のように表現される。
【数2】
【0061】
速度許容率γは、許容最大移動速度量vmaxをvmax′に変換するという演算上の効果がある。変換後の許容最大移動速度量vmax′を変換許容最大移動速度量と呼ぶこととする。移動体の並進移動目標速度量|vr|がこの変換許容最大移動速度量以下である場合、コントローラユニット13は特別な処理を発生させない。並進移動目標速度量|vr|が変換許容最大移動速度量を超える場合、コントローラユニット13はそのスカラ量がvmax′になるまで並進移動目標速度を圧縮補正する。ここで補正後の並進移動目標速度を補正並進移動目標速度vr′と呼ぶこととし、(式3)のように表される。
【数3】
【0062】
図16から分かる通り、速度許容率γは疑似距離r′が大きいときには1となる。疑似距離r′が閾値rv max(第3閾値)以下では疑似距離r′の減少にともない速度許容率γも減少傾向となり、疑似距離r′が閾値rv min(第4閾値)以下では速度許容率γは0となる。この速度量ポテンシャルに基づくコントローラユニット13の処理の内容は、移動体が障害物に対し衝突コースにない場合、即ち移動体が回避動作対象外の移動を行っている場合、コントローラユニット13は最大速度制限をかけずに、任意の速度を出力させ続ける。回避対象障害物が移動体に近接する場合、コントローラユニット13は最大速度に制限をかける。最終的にはコントローラユニット13は、閾値rv minで表現されるある距離以内には移動体が接近しないよう並進速度の出力を完全に遮断するようにする。これにより障害物との衝突を防ぐことが可能となっている。また速度出力方向もしくは姿勢角をコントローラユニット13が変更すると、それに応じて疑似距離も変化し、これにともない速度許容率γも変化することになるので、再び移動体は並進速度出力可能状態にされる。
【0063】
本例では速度方位ポテンシャルおよび速度量ポテンシャルを直線で表現したが、これらは請求項に記載の本発明を実現するための一例にすぎない。三角関数やrmin,rmaxを変曲点とするような高次関数など他の関数を使用して本例以外の形状のポテンシャル関数をデザインしても何ら問題はなく、これらを変形した発明は請求項に記載の本発明の範囲内である。
【0064】
以上の処理をコントローラユニット13が行うことにより、障害物の位置及び距離に応じて、移動体の並進移動速度量と、移動体の速度出力方向もしくは姿勢角速度とに補正が加えられる。結果として移動体の移動経路上に存在する障害物を回避するような速度出力を生成することが可能となる。
【0065】
上述の構成により、コントローラユニット13は、障害物回避速度補正処理を行う。図17はコントローラユニット13による障害物回避速度補正処理のフローチャートである。コントローラユニット13は、モータ5、6を制御対象としてこれらのモータ5、6のモータシャフトの回転制御のサーボ周期毎に制御動作を実行する。
【0066】
障害物の存在を考慮される前の処理であるステップA1において、コントローラユニット13は、並進速度の指令値Vと、旋回速度の指令値ωとを入力される。ステップA2において、コントローラユニット13は、並進速度指令値方向に関する最短疑似距離障害物を探索する。レーザレンジファインダ9−12により障害物が検知されない間、コントローラユニット13は、Yルートを通り、ステップA1の処理を行う。レーザレンジファインダ9−12のいずれかにより障害物が検知されると、Nルートを通り、ステップA3において、コントローラユニット13は、並進速度出力許容方向を算出する。
【0067】
引き続き、ステップA4において、コントローラユニット13は、並進速度指令値vの方向が回避対象障害物方向と並進速度出力許容方向との間に存在するかどうかを判定する。コントローラユニット13は存在すると判定した場合、Yルートを通り、ステップA5において、現在の姿勢状態で並進速度出力許容方向に速度を出力可能であるかどうかを判定する。ステップA5において、出力可能であるとコントローラユニット13が判定した場合、Yルートを通り、ステップA6において、コントローラユニット13は、並進速度指令値vが並進速度許容方向になるよう速度値を並進速度指令値v′に補正する。
【0068】
続いて、ステップA7において、コントローラユニット13は、補正後の並進速度指令値方向に関する最短疑似距離障害物を探索する。ステップA8において、コントローラユニット13は、変換許容最大移動速度量を算出する。ステップA9において、コントローラユニット13は、移動体の並進移動速度量が変換許容最大移動速度量よりも大きいかどうかを判定する。並進移動速度量が変換許容最大移動速度量よりも大きいとコントローラユニット13が判定した場合、Yルートを通り、ステップA10において、コントローラユニット13は並進移動速度の圧縮補正を行い、ステップA11において、コントローラユニット13は圧縮補正した速度を出力する。ステップA9において、並進移動速度量が変換許容最大移動速度量よりも大きくはないとコントローラユニット13が判定した場合、Nルートを通り、ステップA11においてコントローラユニット13はそのまま速度を出力する。
【0069】
また、ステップA5において、現在の姿勢状態で並進速度出力許容方向に速度を出力可能ではないとコントローラユニット13が判定した場合、Nルートを通り、ステップA12において、コントローラユニット13は、並進速度指令値vが並進速度許容方向を向くように旋回速度補正候補値ω′を生成する。この場合、並進速度指令値vの方位補正をコントローラユニット13は行わない。続くステップA13において、コントローラユニット13は、旋回速度指令値ωと旋回速度補正候補値ω′とが同一の回転方向でありかつ|ω|>|ω′|であるかどうかを判定する。ωとω′とが同一回転方向でありかつ|ω|>|ω′|である場合、Yルートを通り、コントローラユニット13は、ステップA7の処理を行う。また、ωとω′とが同一回転方向ではない場合あるいは|ω|が|ω′|以下である場合、Nルートを通り、ステップA14において、コントローラユニット13は、旋回速度指令を旋回速度補正候補値に変更し、ステップA7に進む。
【0070】
このように、進行方向から障害物が無くなると、ロボット1は移動目標位置に向かって再び速度指令を生成しそれを出力するので目標へ復帰できるようになる。
【0071】
本例で解説した障害物回避制御手法は、コントローラユニット13に対しセンサ類からのセンサ入力が発生すると、コントローラユニット13はこのセンサ入力に対し、直ちに反応して動作補正を行うことが可能な反射的な障害物回避動作と表現することができる。この反射的障害物回避動作を実現する本制御処理を、経路計画に基づく障害物回避移動制御処理の後に実行するように移動体を移動制御するようにもできる。
【0072】
図18は移動体に対する階層構造指令伝達型の移動制御方法を説明するためのフローチャートである。この移動体に実装された制御手段は、ステップB1において、障害物回避計画軌道を生成する。ステップB1における処理では、制御手段は図示しない地図データベースを参照した上で障害物回避計画軌道を生成する。ステップB2において、制御手段は、障害物は考慮せずに、並進速度及び旋回速度の出力値を計算する。引き続き、ステップB3において、制御手段は、障害物回避速度補正を行う。制御手段はこの障害物回避速度補正に、本例の手法を適用する。ステップB4において、制御手段は、補正速度を出力する。モータの回転数が計算されてから出力される。
【0073】
換言すれば、特許文献1に記載の移動体の経路生成法のような経路計画に基づく障害物回避移動制御フローの下流に、障害物回避速度補正処理フローを配置する。制御手段はまず既知である地形情報に基づき効率的な経路を計画的に生成しつつ移動体に移動を行わせる。既知の情報通りに事が運んでいる間、制御手段は、本例の反射的障害物回避処理を表面化させることなく通常の移動動作指令をそのまま出力して計画通りの理想的な移動動作をおこなう。予期せぬ障害物が出現したときや、あるいは計画時の自己位置の認識誤差または地形データベース側の事前情報と実際の情報との誤差などにより、制御手段が生成した計画軌道では移動体が障害物に接触してしまうような状況に陥ってしまったときに、制御手段が本例の反射的障害物処理を発現させて障害物を回避する速度補正を適切に主処理に割り込ませるようにすることが可能となる。
【0074】
本提案の障害物回避制御手法を用いることにより、外部環境の予期せぬ乱れに強い安定した移動を実現することが可能となる。安定した移動が実現することは、移動ロボットなどの活動の場を、環境の作り込みでは片付けることのできない一般的な環境下へと大きく広げることを可能にすると考えられる。さらに回避対象障害物を選定することや、移動体自身の回避動作用の指令値などを出力することが連続的な状態量として扱われている。このため、出力される回避動作なども滑らかで効率も良く、また最短疑似距離をもつ1つの回避対象障害物を選定した上で計算が行われるため制御装置にかかる計算負荷も非常に小さく、非常に実用的な手法である。
【0075】
このように、コントローラユニット13は、移動体の移動方向からの角の大きさに応じて距離が変化する疑似距離が支配する、障害物と移動体との相対的な姿勢関係により値が変化する異方特性を持った速度・姿勢ポテンシャルより移動状態を用意し、この移動状態の量に周囲障害物までの最短疑似距離を毎時与えることで得られる速度および姿勢により回避動作を実現する制御手法を定める。
【0076】
このようにして、コントローラユニット13によれば、計算負荷が低い移動体を得ることができる。また、移動体の移動がスムーズとなり環境の動的変化などノイズに強いロバストな移動動作が可能になる。
【0077】
尚、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。上記実施形態では、移動体進行方向と計測対象方向とが成す角度が大きくなるほど、コントローラユニット13は真値よりも距離が長い疑似距離r′を生成していたが、コントローラユニット13は、同角度が大きくなるほど、真値よりも距離が短い疑似距離r′を生成するようにもできる。例えばロボット本体の胴部の横断面の形状が真円でなく、断面形状中の右前方向の部位がロボット本体よりも外方へ突出して形成されている場合、この右前方向の部位は障害物に接触しやすい。あるいは移動体の筐体が構造的に弱い部位を有し、この構造的に弱い部位が障害物と接触するリスクを減らすように設計することがある。これらの障害物に接触しやすい右前方向の部位や、構造的に弱い部位を保護するためには、右前方向で最短となるようにする(正面方向から右前方向へ向かうにつれて一度疑似距離が小さくなる)処理をコントローラユニット13が行うようにする。速度方位ポテンシャルや速度量ポテンシャルをメモリに記憶する際に、右前方向の部位や、構造的に弱い部位が存在する方位で疑似距離が小さくなるようなポテンシャル形状を有する速度方位ポテンシャルや速度量ポテンシャルをメモリに書き込むのである。コントローラユニット13がこれらのポテンシャルをメモリから読み込むことによって、コントローラユニット13は、移動体進行方向と計測対象方向とが成す角度が大きくなるほど、真値よりも距離が短い疑似距離r′を生成することができる。
【0078】
また、コントローラユニット13は、障害物の方位角の大きさに応じて、実計測距離を変化させて疑似距離を生成する疑似距離生成手段として機能する。このコントローラユニット13は、疑似距離に基づき、移動体が障害物を回避するよう移動体の動作を制御する制御手段として機能する。コントローラユニット13は、回避対象決定手段、並進速度出力指令値補正処理手段、旋回速度出力指令値補正処理手段としても機能する。各手段はCPU、ROM、RAMにより実現される。
【0079】
また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。本発明は、ロボットや全方向移動車のほかに、自動車などにも利用可能であり、自動車等の移動装置、移動制御装置及び制御手法に適用可能である。
【図面の簡単な説明】
【0080】
【図1】(a)は本発明の実施の形態に係る障害物回避機能を有する移動制御装置が実装された移動体の上面図であり、(b)は移動体の正面図である。
【図2】レーザレンジファインダの計測可能領域を示す図である。
【図3】本発明の実施の形態に係る障害物回避機能を有する移動制御装置のブロック図である。
【図4】本発明の実施の形態に係る障害物回避機能を有する移動制御装置が作成する障害物マップの一例を示す図である。
【図5】移動体が前進する時の疑似距離の概念を示す図である。
【図6】移動体が後進する時の疑似距離の概念を示す図である。
【図7】角度と疑似距離との関係を説明するための図である。
【図8】同一地点での前進及び後進の進行方向切り替わりにより周囲環境の障害物位置が変化する疑似障害物マップの概念図である。
【図9】移動体の姿勢変更後の移動により周囲環境の障害物位置が変化する疑似障害物マップの概念図である。
【図10】移動体として全方向移動車が用いられる場合の障害物マップの一例を示す図である。
【図11】回避対象の障害物の位置をコントローラユニットが決定する手法を説明するための図である。
【図12】速度方位ポテンシャルの一例を示す図である。
【図13】並進速度出力許容方向と回避対象障害物方向との関係を示す図である。
【図14】移動体の移動速度の出力方向の補正処理を説明するための図である。
【図15】移動体の移動速度に応じて異なるポテンシャル形状を有する速度方位ポテンシャルの一例を示す図である。
【図16】速度量ポテンシャルの一例を示す図である。
【図17】コントローラユニットによる障害物回避速度補正処理のフローチャートである。
【図18】移動体に対する階層構造指令伝達型の移動制御方法を説明するためのフローチャートである。
【符号の説明】
【0081】
1…ロボット(移動体)、1A…全方向移動車(移動体)、2,2A…基台、3,4…駆動輪、5,6…モータ、7…前方キャスタ、8…後方キャスタ、9−12…レーザレンジファインダ(計測手段)、13…コントローラユニット(障害物回避機能を有する移動制御装置)、14,15…回転角度センサ(検出手段)、16…位置センサ(検出手段)、17…姿勢センサ(検出手段)、18…レーザレンジファインダ計測可能領域、19…経路生成部、20…目標軌道生成部、21,25…演算部、22…ロボット移動速度指令値生成部、23…障害物回避速度指令値補正部、24…車軸回転速度指令値生成部、26…モータ制御電流指令値生成部、27…ロボット本体、28〜32,37〜40,42〜44…障害物ないしは物体、33…移動体進行方位、34…実位置、35…疑似位置、36…疑似障害物位置、41…駆動輪、45…障害物位置、46…最短疑似距離、47…回避対象障害物方向、48…回避対象障害物、49…並進速度出力許容方向、50…移動体基準位置、51…移動速度出力方向、52…回避対象障害物方向、53…並進速度出力許容方向、54〜56…速度方位ポテンシャル、57…障害物位置、58…疑似距離、59…真の距離、60…疑似位置、61…真の位置。
【特許請求の範囲】
【請求項1】
移動体と、
この移動体に設けられ、移動体進行方位を検出する検出手段と、
前記移動体に設けられ、障害物の位置およびこの障害物までの実計測距離を計測し、この検出手段が検出した前記移動体進行方位に対する前記障害物の方位角を出力する計測手段と、
この計測手段が出力した前記障害物の方位角の大きさに応じて、前記実計測距離を変化させて疑似距離を生成する疑似距離生成手段と、
この疑似距離生成手段が生成した前記疑似距離に基づき、前記移動体が前記障害物を回避するよう前記移動体の動作を制御する制御手段と、
を備えることを特徴とする障害物回避機能を有する移動制御装置。
【請求項2】
前記疑似距離生成手段は、前記角度が大きくなるほど前記疑似距離を真値よりも長くすることを特徴とする請求項1記載の障害物回避機能を有する移動制御装置。
【請求項3】
前記疑似距離生成手段は、前記疑似距離を入力とし移動指令値を補正した補正移動指令値を出力することを特徴とする請求項1又は請求項2記載の障害物回避機能を有する移動制御装置。
【請求項4】
前記疑似距離生成手段は、前記移動体の周囲に存在する物体のうち、前記疑似距離が最短の計測点を有する物体の位置を回避対象障害物位置として決定する回避対象決定手段を備えることを特徴とする請求項1乃至3のいずれかに記載の障害物回避機能を有する移動制御装置。
【請求項5】
前記疑似距離生成手段は、
前記疑似距離および前記移動体自身の大きさに応じて前記移動体が取ることのできる並進速度出力許容方向の方位角と前記疑似距離との関係を定める速度方位ポテンシャル情報を記憶する記憶手段と、
前記移動体が出力する予定の並進移動速度の方向が回避対象障害物方向と前記並進速度出力許容方向との間に存在する場合、前記移動体の速度の出力の方向を、前記並進速度の出力が許容される方向にまで変更する並進速度出力指令値補正処理手段と、
を備えることを特徴とする請求項1乃至4のいずれかに記載の障害物回避機能を有する移動制御装置。
【請求項6】
前記疑似距離生成手段は、
前記疑似距離が大きくなるほど前記移動体が取ることのできる並進速度出力許容方向の方位角が0に近づき、前記疑似距離が小さくなるほど前記並進速度出力許容方向の方位角がπ/2に近づくようなポテンシャル形状を有する速度方位ポテンシャル情報を記憶する記憶手段を備えることを特徴とする請求項1乃至5のいずれかに記載の障害物回避機能を有する移動制御装置。
【請求項7】
前記疑似距離生成手段は、
前記疑似距離が第1閾値rmax以上である場合、前記移動体が取ることのできる並進速度出力許容方向の方位角が0となり、前記疑似距離が前記第1閾値rmax以下である場合、前記疑似距離の減少に伴い前記並進速度出力許容方向の方位角がπ/2に近づき、前記疑似距離が第2閾値rmin以下である場合、前記並進速度出力許容方向の方位角がπ/2となるようなポテンシャル形状を有する速度方位ポテンシャル情報を記憶する記憶手段を備えることを特徴とする請求項1乃至6のいずれかに記載の障害物回避機能を有する移動制御装置。
【請求項8】
前記記憶手段は、
前記移動体の移動速度が速いほど、前記移動体の移動速度が遅いときの疑似距離に比べて遠い擬似距離である段階から許容方位角を制限することを開始し、この移動速度が遅いときの疑似距離に比べて遠い擬似距離である段階でこの許容方位角が飽和状態に到達するよう、前記移動体の移動速度に応じて値が変化するようなポテンシャル形状を有する出力方位ポテンシャル情報を記憶することを特徴とする請求項5乃至7のいずれかに記載の障害物回避機能を有する移動制御装置。
【請求項9】
前記並進速度出力指令値補正処理手段により変更された補正並進移動速度出力指令方向に対し、前記移動体が現状の姿勢で速度を出力することが不可能である場合、この移動体が速度を出力可能になるまで前記移動体自身の姿勢を転回するよう出力予定旋回移動速度を変更して旋回速度を発生させる旋回速度出力指令値補正処理手段を更に備えることを特徴とする請求項5乃至8のいずれかに記載の障害物回避機能を有する移動制御装置。
【請求項10】
前記並進移動速度を出力する方向が前記回避対象障害物方向と前記並進速度出力許容方向との間もしくは前記並進速度出力許容方向の近傍に存在する場合において、前記並進移動速度を出力する方向が前記回避対象障害物方向へ近づく旋回速度出力指令値の出力を許可しない旋回速度出力指令値補正処理手段を更に備えることを特徴とする請求項5乃至9のいずれかに記載の障害物回避機能を有する移動制御装置。
【請求項11】
前記疑似距離生成手段は、
速度量ポテンシャルにより制限された状態で前記移動体が出力可能な並進速度の最大値を、前記障害物が無い状態で前記移動体が出力可能な並進速度の最大値で除した値を表す比率と、前記疑似距離との関係を定める速度量ポテンシャル情報を記憶する記憶手段と、
前記移動体の出力予定の並進移動速度量がその出力時に得られる並進速度最大値よりも大きい場合、並進速度出力指令値を並進速度最大値にまで変更する並進速度出力指令値補正手段と、
を備えることを特徴とする請求項1乃至10のいずれかに記載の障害物回避機能を有する移動制御装置。
【請求項12】
前記疑似距離生成手段は、
前記疑似距離が大きくなるほど、速度量ポテンシャルにより制限された状態で前記移動体が出力可能な並進速度の最大値を、前記障害物が無い状態で前記移動体が出力可能な並進速度の最大値で除した値を表す比率が1に近づき、前記疑似距離が小さくなるほどこの比率が0に近づくようなポテンシャル形状を有する速度量ポテンシャル情報を記憶する記憶手段を備えることを特徴とする請求項1乃至11のいずれかに記載の障害物回避機能を有する移動制御装置。
【請求項13】
前記疑似距離生成手段は、
前記疑似距離が第3閾値rv max以上である場合、速度量ポテンシャルにより制限された状態で前記移動体が出力可能な並進速度の最大値を、前記障害物が無い状態で前記移動体が出力可能な並進速度の最大値で除した値を表す比率が1となり、前記疑似距離が前記第3閾値rv max以下である場合、前記疑似距離の減少に伴い前記比率は0に近づき、前記疑似距離が第4閾値rv min以下である場合、前記比率が0となるようなポテンシャル形状を有する速度量ポテンシャル情報を記憶する記憶手段を備えることを特徴とする請求項1乃至12のいずれかに記載の障害物回避機能を有する移動制御装置。
【請求項14】
移動空間に関する外部環境情報を保存し更新可能な記録手段と、
この記録手段に記録された前記外部環境情報をもとに目的地点までの適切な経路を生成可能な経路生成手段と、
この経路生成手段により生成された前記経路を辿るような速度出力指令値を生成する移動速度出力生成手段と、
この移動速度出力生成手段が生成した前記速度出力指令値に対して、速度出力補正を行う請求項1乃至13に記載の疑似距離生成手段と、
を備えることを特徴とする障害物回避機能を有する移動制御装置。
【請求項1】
移動体と、
この移動体に設けられ、移動体進行方位を検出する検出手段と、
前記移動体に設けられ、障害物の位置およびこの障害物までの実計測距離を計測し、この検出手段が検出した前記移動体進行方位に対する前記障害物の方位角を出力する計測手段と、
この計測手段が出力した前記障害物の方位角の大きさに応じて、前記実計測距離を変化させて疑似距離を生成する疑似距離生成手段と、
この疑似距離生成手段が生成した前記疑似距離に基づき、前記移動体が前記障害物を回避するよう前記移動体の動作を制御する制御手段と、
を備えることを特徴とする障害物回避機能を有する移動制御装置。
【請求項2】
前記疑似距離生成手段は、前記角度が大きくなるほど前記疑似距離を真値よりも長くすることを特徴とする請求項1記載の障害物回避機能を有する移動制御装置。
【請求項3】
前記疑似距離生成手段は、前記疑似距離を入力とし移動指令値を補正した補正移動指令値を出力することを特徴とする請求項1又は請求項2記載の障害物回避機能を有する移動制御装置。
【請求項4】
前記疑似距離生成手段は、前記移動体の周囲に存在する物体のうち、前記疑似距離が最短の計測点を有する物体の位置を回避対象障害物位置として決定する回避対象決定手段を備えることを特徴とする請求項1乃至3のいずれかに記載の障害物回避機能を有する移動制御装置。
【請求項5】
前記疑似距離生成手段は、
前記疑似距離および前記移動体自身の大きさに応じて前記移動体が取ることのできる並進速度出力許容方向の方位角と前記疑似距離との関係を定める速度方位ポテンシャル情報を記憶する記憶手段と、
前記移動体が出力する予定の並進移動速度の方向が回避対象障害物方向と前記並進速度出力許容方向との間に存在する場合、前記移動体の速度の出力の方向を、前記並進速度の出力が許容される方向にまで変更する並進速度出力指令値補正処理手段と、
を備えることを特徴とする請求項1乃至4のいずれかに記載の障害物回避機能を有する移動制御装置。
【請求項6】
前記疑似距離生成手段は、
前記疑似距離が大きくなるほど前記移動体が取ることのできる並進速度出力許容方向の方位角が0に近づき、前記疑似距離が小さくなるほど前記並進速度出力許容方向の方位角がπ/2に近づくようなポテンシャル形状を有する速度方位ポテンシャル情報を記憶する記憶手段を備えることを特徴とする請求項1乃至5のいずれかに記載の障害物回避機能を有する移動制御装置。
【請求項7】
前記疑似距離生成手段は、
前記疑似距離が第1閾値rmax以上である場合、前記移動体が取ることのできる並進速度出力許容方向の方位角が0となり、前記疑似距離が前記第1閾値rmax以下である場合、前記疑似距離の減少に伴い前記並進速度出力許容方向の方位角がπ/2に近づき、前記疑似距離が第2閾値rmin以下である場合、前記並進速度出力許容方向の方位角がπ/2となるようなポテンシャル形状を有する速度方位ポテンシャル情報を記憶する記憶手段を備えることを特徴とする請求項1乃至6のいずれかに記載の障害物回避機能を有する移動制御装置。
【請求項8】
前記記憶手段は、
前記移動体の移動速度が速いほど、前記移動体の移動速度が遅いときの疑似距離に比べて遠い擬似距離である段階から許容方位角を制限することを開始し、この移動速度が遅いときの疑似距離に比べて遠い擬似距離である段階でこの許容方位角が飽和状態に到達するよう、前記移動体の移動速度に応じて値が変化するようなポテンシャル形状を有する出力方位ポテンシャル情報を記憶することを特徴とする請求項5乃至7のいずれかに記載の障害物回避機能を有する移動制御装置。
【請求項9】
前記並進速度出力指令値補正処理手段により変更された補正並進移動速度出力指令方向に対し、前記移動体が現状の姿勢で速度を出力することが不可能である場合、この移動体が速度を出力可能になるまで前記移動体自身の姿勢を転回するよう出力予定旋回移動速度を変更して旋回速度を発生させる旋回速度出力指令値補正処理手段を更に備えることを特徴とする請求項5乃至8のいずれかに記載の障害物回避機能を有する移動制御装置。
【請求項10】
前記並進移動速度を出力する方向が前記回避対象障害物方向と前記並進速度出力許容方向との間もしくは前記並進速度出力許容方向の近傍に存在する場合において、前記並進移動速度を出力する方向が前記回避対象障害物方向へ近づく旋回速度出力指令値の出力を許可しない旋回速度出力指令値補正処理手段を更に備えることを特徴とする請求項5乃至9のいずれかに記載の障害物回避機能を有する移動制御装置。
【請求項11】
前記疑似距離生成手段は、
速度量ポテンシャルにより制限された状態で前記移動体が出力可能な並進速度の最大値を、前記障害物が無い状態で前記移動体が出力可能な並進速度の最大値で除した値を表す比率と、前記疑似距離との関係を定める速度量ポテンシャル情報を記憶する記憶手段と、
前記移動体の出力予定の並進移動速度量がその出力時に得られる並進速度最大値よりも大きい場合、並進速度出力指令値を並進速度最大値にまで変更する並進速度出力指令値補正手段と、
を備えることを特徴とする請求項1乃至10のいずれかに記載の障害物回避機能を有する移動制御装置。
【請求項12】
前記疑似距離生成手段は、
前記疑似距離が大きくなるほど、速度量ポテンシャルにより制限された状態で前記移動体が出力可能な並進速度の最大値を、前記障害物が無い状態で前記移動体が出力可能な並進速度の最大値で除した値を表す比率が1に近づき、前記疑似距離が小さくなるほどこの比率が0に近づくようなポテンシャル形状を有する速度量ポテンシャル情報を記憶する記憶手段を備えることを特徴とする請求項1乃至11のいずれかに記載の障害物回避機能を有する移動制御装置。
【請求項13】
前記疑似距離生成手段は、
前記疑似距離が第3閾値rv max以上である場合、速度量ポテンシャルにより制限された状態で前記移動体が出力可能な並進速度の最大値を、前記障害物が無い状態で前記移動体が出力可能な並進速度の最大値で除した値を表す比率が1となり、前記疑似距離が前記第3閾値rv max以下である場合、前記疑似距離の減少に伴い前記比率は0に近づき、前記疑似距離が第4閾値rv min以下である場合、前記比率が0となるようなポテンシャル形状を有する速度量ポテンシャル情報を記憶する記憶手段を備えることを特徴とする請求項1乃至12のいずれかに記載の障害物回避機能を有する移動制御装置。
【請求項14】
移動空間に関する外部環境情報を保存し更新可能な記録手段と、
この記録手段に記録された前記外部環境情報をもとに目的地点までの適切な経路を生成可能な経路生成手段と、
この経路生成手段により生成された前記経路を辿るような速度出力指令値を生成する移動速度出力生成手段と、
この移動速度出力生成手段が生成した前記速度出力指令値に対して、速度出力補正を行う請求項1乃至13に記載の疑似距離生成手段と、
を備えることを特徴とする障害物回避機能を有する移動制御装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2010−134742(P2010−134742A)
【公開日】平成22年6月17日(2010.6.17)
【国際特許分類】
【出願番号】特願2008−310744(P2008−310744)
【出願日】平成20年12月5日(2008.12.5)
【国等の委託研究の成果に係る記載事項】(出願人による申告)国等の委託研究の成果に係る特許出願(平成18年度独立行政法人新エネルギー・産業技術総合開発機構「戦略的先端ロボット要素技術開発プロジェクト、ロボット搬送システム(サービスロボット分野)、店舗応用を目指したロボット搬送システムの研究開発」委託研究、産業技術力強化法第19条の適用を受ける特許出願)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成22年6月17日(2010.6.17)
【国際特許分類】
【出願日】平成20年12月5日(2008.12.5)
【国等の委託研究の成果に係る記載事項】(出願人による申告)国等の委託研究の成果に係る特許出願(平成18年度独立行政法人新エネルギー・産業技術総合開発機構「戦略的先端ロボット要素技術開発プロジェクト、ロボット搬送システム(サービスロボット分野)、店舗応用を目指したロボット搬送システムの研究開発」委託研究、産業技術力強化法第19条の適用を受ける特許出願)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]