(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
本技術の実施形態を図面に基づいて説明する。なお、各図において共通する部分には同一の符号を付し、重複した説明を省略する。
【0014】
図1は、本技術の実施形態による制御装置10が設けられた移動ロボット20を示す。
【0015】
移動ロボット20は、走行用の車輪1を有し、この車輪1が回転駆動されることにより地表面2を走行する車両であってよい。代わりに、移動ロボット20は、クローラにより地上を走行する走行装置、または他の移動装置であってもよい。なお、移動ロボット20は、制御装置10の後述の制御により自律移動するように構成されていてもよいし、制御装置10により後述のように制御されるが、一時的に、移動ロボット20の外部から(例えば移動方向が)遠隔操縦されてもよい。
【0016】
(制御装置の基本構成例)
図2は、本技術の実施形態による制御装置10の構成を示すブロック図である。制御装置10は、基本構成の一例として、障害物センサ3、速度センサ5、向きセンサ7、位置検出部9、および制御部11を備える。
【0017】
障害物センサ3は、移動ロボット20に設けられ、移動ロボット20から障害物を検出する。すなわち、障害物センサ3は、移動ロボット20に固定されたセンサ座標系における障害物の位置(座標)を検出する。
【0018】
図3は、
図1のIII−III矢視図である。障害物センサ3は、本実施形態では、移動ロボット20から見た計測範囲R0に対して計測を行うことにより、計測範囲R0に存在する各障害物の位置をセンサ座標系で表わした障害物データを取得する。計測範囲R0は、移動ロボット20の進行方向側の範囲(
図3の破線で囲んだ範囲)含む。計測範囲R0は、
図3では移動ロボット20の進行方向側の範囲であるが、移動ロボット20の周囲であってもよい。センサ座標系の原点は、当該障害物データを取得した時の移動ロボット20の位置である。障害物センサ3による障害物データの取得は、移動ロボット20の移動中に繰り返し行われる。
【0019】
障害物センサ3は、例えばレーザレーダである。レーザレーダは、計測範囲R0に対してレーザ光(例えばパルスレーザ光)を走査して、物体表面の各計測点からの反射レーザ光に基づいて、各計測点の座標(例えば三次元座標)をセンサ座標系で表わした点群データを障害物データとして取得する。レーザレーダは、例えばLiDAR(Light Detection and Ranging)またはLRF(Laser Range Finder)と呼ばれる機器であってよい。なお、障害物センサ3は、複数のカメラで計測範囲R0を撮像することにより得た画像を取得し、これらの画像に基づいて、各画素(物体の表面に相当する各画素)の三次元座標を表わす三次元の画像データを障害物データとして取得する撮像装置(例えばステレオカメラ)であってもよい。または、障害物センサ3は、上述したレーザレーダと撮像装置を組み合わせたものであってもよい。各障害物データには、障害物センサ3によりその取得時点を示す時刻情報が付加されている。以下において述べる各「障害物データ」、各「点群データ」および各「画像データ」は、当該時刻情報が付加されているものであってよい。
【0020】
速度センサ5は、地表面2に対する移動ロボット20の速度の大きさ(速さ)を検出する。速度センサ5は、例えば、車両としての移動ロボット20の車輪1の回転速度を計測し、この回転速度から、地表面2に対する移動ロボット20の速さを求めるものであってよいが、これに限定されない。例えば、速度センサ5は、衛星航法システムにおける測位衛星からの電波に基づいて移動ロボット20の速さを推定する構成を有していてもよいし、この構成と上記回転速度を計測する構成とを組み合わせたものであってもよい。
【0021】
向きセンサ7は、地表面2に固定された後述の地図座標系に対する移動ロボット20の向き(すなわち進行方向)を検出する。向きセンサ7は、例えばジャイロセンサを用いて構成されたものであってよいが、これに限定されない。例えば、向きセンサ7は、衛星航法システムにおける測位衛星からの電波に基づいて移動ロボット20の向きを推定する構成を有していてもよいし、この構成とジャイロセンサを組み合わせたものであってもよい。
【0022】
位置検出部9は、後述の地図座標系における移動ロボット20の現在位置を求める。例えば、位置検出部9は、速度センサ5が計測した速さと、向きセンサ7が検出した向きとに基づいて、移動ロボット20の現在位置を求める。すなわち、位置検出部9は、速度センサ5が検出した速さで、向きセンサ7が計測した向きへの移動ロボット20が各時点で移動したとして、各時点の当該速さと向きに基づいて移動ロボット20の現在位置を求める。なお、この構成の代わり又は追加の構成として、位置検出部9は、衛星航法システムにおける測位衛星からの電波に基づいて移動ロボット20の現在位置を求める構成を有していてもよい。
【0023】
制御部11は、位置検出部9が検出した移動ロボット20の現在位置と、障害物センサ3が検出した障害物(例えば静止障害物)の位置とに基づいて、移動ロボット20が障害物を避けるように移動ロボット20の移動を制御する。本実施形態では、制御部11は、移動ロボット20の現在位置から障害物を回避して次の経由点に向かうように移動ロボット20の移動を制御する。次の経由点は、移動ロボット20が目標位置へ移動するために通過する複数の経由点のうち、移動ロボット20が次に通過する経由点である。目標位置と複数の経由点は予め設定されている。
制御部11は、本実施形態では、地図生成部11aと経路生成部11bと指令出力部11cを含む。
【0024】
地図生成部11aは、障害物センサ3が取得した障害物データを地図座標系のデータに変換して、当該変換後のデータに基づいて、地表面2に固定された地図座標系において障害物の位置を表わした地図(例えば局所地図)を生成する。障害物データの上述の変換は、上述のセンサ座標系からの座標変換であり、向きセンサ7が検出した移動ロボット20の向きと、位置検出部9が求めた移動ロボット20の現在位置とに基づいて行われてよい。
【0025】
経路生成部11bは、地図生成部11aにより生成された地図において、移動ロボット20の現在位置から障害物を回避して次の経由点に向かうための移動ロボット20の移動経路を生成する。
【0026】
また、経路生成部11bは、生成した移動経路上の各点における速さを指定する。各点における速さは、移動ロボット20の最大速さ以下であり、当該点における移動経路の曲率に応じて指定されてよい。
したがって、経路生成部11bは、移動経路と、移動経路上の各点において指定された速さとを含む経路データを生成する。
【0027】
指令出力部11cは、生成された経路データに従って移動ロボット20の駆動装置13へ動作指令を出力する。この動作指令に従って駆動装置13が動作することにより、移動ロボット20が移動経路上を移動するとともに、移動経路上の各点での移動ロボット20の速さが、当該点で指定された速さになる。なお、駆動装置13は、例えば、移動ロボット20としての車両のアクセル、ブレーキ、ステアリング、変速機などをそれぞれ操作する複数のアクチュエータにより構成されている。
【0028】
(移動障害物を特定して分類するための構成)
制御装置10は、障害物センサ3が検出した障害物のうち移動障害物を特定し、特定した移動障害物を複数のカテゴリーのいずれかに分類するために、移動障害物特定部15、状態取得部17、および分類部19を備える。
【0029】
移動障害物特定部15は、障害物センサ3が取得した、時間的に連続する障害物データに基づいて、移動障害物を特定する。例えば、移動障害物特定部15は、次の処理(1)〜(4)を行うことにより移動障害物を特定する。なお、時間的に連続する複数の障害物データ(例えば、点群データの各計測点の三次元座標、または、画像データの各画素の三次元座標)を、地表面2に固定された固定座標系(例えば上述の地図座標系)のデータに変換した状態で、処理(1)〜(4)が行われる。この変換は、向きセンサ7が検出した移動ロボット20の向きと、位置検出部9が求めた移動ロボット20の現在位置とに基づいて、移動障害物特定部15により行われてよい。以下の処理(1)〜(4)について、障害物データ(点群データまたは画像データ)は、固定座標系で表わされたデータである。
【0030】
(1)時間的に連続する複数の障害物データにおいて同一の障害物(以下で同一障害物という)を特定する。ここで、複数の障害物データは、当該処理(1)を行う時点で、最新の複数の障害物データであってよい。
【0031】
(2)時間的に連続する上記複数の障害物データによりそれぞれ表わされる固定座標系での同一障害物の各位置から、同一障害物の位置の変化を表わす位置変化ベクトルを求める。固定座標系において、この位置変化ベクトルの始点は、より古い時点で取得した障害物データにおける同一障害物の位置であり、この位置変化ベクトルの終点は、より新しい時点で取得した障害物データにおける同一障害物の位置である。
【0032】
(3)位置変化ベクトルの始点と終点にそれぞれ対応する障害物データの取得時点(すなわち、障害物データに付加された上記時刻情報が示す取得時点)の時間差で位置変化ベクトルを割ったベクトルを障害物速度ベクトルとして求める。ここで、位置変化ベクトルの始点に対応する障害物データとは、当該始点に同一障害物が位置している障害物データであり、位置変化ベクトルの終点に対応する障害物データとは、当該終点に同一障害物が位置している障害物データである。
【0033】
(4)障害物速度ベクトルがゼロでない同一障害物を移動障害物として特定する。
【0034】
障害物センサ3がレーザレーダである場合には、障害物データは、上述の点群データであり、上記処理(1)は次のように行われてよい。移動障害物特定部15は、時間的に連続する複数の点群データの各々において、互いの距離が閾値以下である計測点のグループ(集まり)を特定し、このグループにおける特徴部分を抽出する。移動障害物特定部15は、時間的に連続する複数の障害物データにおいて、抽出した特徴部分に基づいて、同一障害物となる上記グループを特定する。
【0035】
移動障害物特定部15は、時間的に連続する複数の点群データの各々において特定した上記各グループについて、次の処理(i)と(ii)を行うことにより上記特徴部分を抽出する。
【0036】
(i)鉛直方向から見た場合の上記グループの二次元外縁形状を求める。
(ii)求めた二次元外縁形状から直線部分を特徴部分として抽出する。直線部分としては、例えば、L字を形成する2つの直線からなるL型と、1つの直線からなるI型とがあってよい。
図3の場合に、1つの点群データから抽出された特徴部分を
図4に示す。
図4において、移動障害物4a〜4cに対してそれぞれ抽出された直線部分Sa〜Scを太線で示す。直線部分Sa,SbはI型であり、直線部分ScはL型である。
【0037】
その後、移動障害物特定部15は、時間的に連続する複数の点群データにおける、時間的に隣り合う2つの点群データの各組み合わせについて、次の処理(iii)を行うことにより、同一障害物となる上記グループを特定する。
(iii)時間的に隣り合う2つの点群データについて、一方の点群データから抽出された直線部分と、他方の点群データから直線部分とが、次の第1〜第4の条件の少なくともいずれかを満たすかを判断し、この判断の結果が肯定である場合には、両直線部分は、同一障害物のものであると判断する。なお、この判断は、第1〜第4の条件の少なくともいずれかを満たす2つの直線部分の組みが見つかるまで、当該判断の対象とする
2つの直線部分の組みを変えて繰り返される。
【0038】
(第1の条件)
両直線部分は、共にL型であって、これらの直線部分の屈曲点同士の距離が予め定めた距離閾値以下であり、かつ、両直線部分の向きの差が予め定めた角度閾値以下である。ここで、両直線部分の向きの差とは、両直線部分の対応する直線同士のなす角度の絶対値であってよい(以下同様)。両直線部分の少なくとも一方がL型である場合、両直線部分の対応する直線同士とは、互いの長さの差が最小となる直線同士であってよい(以下同様)。また、直線同士のなす角度とは、両直線が交差しない場合には、両直線の延長線同士のなす角度であり、なす角度は、小さい方のなす角度である(以下同様)。
【0039】
(第2の条件)
両直線部分の少なくとも一方はL型であり、両直線部分の一方のL型の屈曲点と、両直線部分の他方のL型又はI型の端点(例えば上記屈曲点に近い方の端点)との距離が、予め定めた距離閾値以下であり、かつ、両直線部分の向きの差が予め定めた角度閾値以下である。
(第3の条件)
両直線部分の中心点同士の距離が予め定めた距離閾値以下であり、かつ、両直線部分の向きの差が予め定めた角度閾値以下である。ここで、両直線部分の中心点同士とは、両直線部分の対応する直線の中心点同士であってよい。
【0040】
(第4の条件)
両直線部分の端点同士の距離が予め定めた距離閾値以下であり、かつ、両直線部分の向きの差が予め定めた角度閾値以下である。ここで、両直線部分の端点同士とは、両直線部分の端点同士の4通りの組み合わせのうち互いの距離が最小になる端点同士であってよい。
【0041】
なお、第1〜第4の条件における上記各距離と各向きは、上述したように固定座標系で表わされたものである。第1〜第4の条件における距離閾値は、同じであっても、異なっていてもよい。第1〜第4の条件における角度閾値は、同じであっても、異なっていてもよい。
【0042】
障害物センサ3が撮像装置(ステレオカメラ)である場合には、障害物データは、上述の画像データであり、上記処理(1)は次のように行われてよい。
【0043】
移動障害物特定部15は、時間的に連続する複数の画像データの各々から、障害物の特徴部分(例えば角部)を抽出する。
その後、移動障害物特定部15は、時間的に連続する複数の画像データにおける、時間的に隣り合う2つの画像データの各組み合わせについて、次の処理(α)を行う。
【0044】
(α)時間的に隣り合う2つの画像データについて、一方の画像データから抽出された特徴部分と、他方の画像データから抽出された特徴部分とが、次の条件Aを満たすかを判断し、この判断の結果が肯定である場合には、特徴部分は、同一障害物のものであると判断する。
(条件A)
両特徴部分が、同じ形状を有し、地図座標系における両特徴部分同士の距離が予め定めた距離閾値以下であり、かつ、両特徴部分同士の向きの差が予め定めた角度閾値以下である。ここで、当該距離と向きは、上述したように固定座標系で表わされたものである。
【0045】
なお、上記処理(1)の具体例を説明したが、上記処理(1)は、上述の具体例以外の方法で行われてもよい。
【0046】
状態取得部17は、特定された移動障害物の位置と寸法と運動状態を表わす状態データを取得する。運動状態に基づいて、移動障害物がその現在位置から将来通過する経路を分類部19により予測できる。本実施形態では、運動状態は、移動障害物の速度、加速度、角速度、および角加速度を含む。ただし、本願において、運動状態は、移動障害物の速度、加速度、角速度、および角加速度の一部(例えば、速度と角速度、または、速度と加速度と角速度、または、速度と加速度)であってもよい。
【0047】
移動障害物特定部15は、上述の処理(1)〜(4)を繰り返し行い、状態取得部17は、上述の処理(1)〜(4)が行われる度に、当該処理(1)〜(4)により特定された移動障害物の状態データを求める。例えば、状態データは以下のように求められる。
【0048】
<移動障害物の位置>
移動障害物特定部15は、移動障害物を特定するのに用いた時間的に連続する複数の障害物データのうちの最新の障害物データにおける当該移動障害物の位置を第1位置ベクトルとして求める。第1位置ベクトルは、向きセンサ7が検出した移動ロボット20の向きと、位置検出部9が求めた移動ロボット20の現在位置とに基づいて、移動障害物特定部15により地図座標系で表わされたものである。移動障害物特定部15は、求めた第1位置ベクトルを状態取得部17に出力する。
【0049】
また、状態取得部17は、位置検出部9が求めた移動ロボット20の現在位置を第2位置ベクトルとして位置検出部9から取得する。状態取得部17は、第1位置ベクトルから第2位置ベクトルを引いた位置ベクトルを、移動ロボット20から見た移動障害物の位置(すなわち状態データの一部)として求める。第1位置ベクトルから第2位置ベクトルを引いた位置ベクトルとは、第2位置ベクトルの終点から第1位置ベクトルの終点へ至るベクトルであって、移動ロボット20の現在位置から見た移動障害物の位置を意味し、当該位置は、現在における移動障害物の位置とみなすことができる。
【0050】
<移動障害物の寸法>
状態取得部17は、上記最新の障害物データと、当該障害物データにより表わされる地図座標系における移動障害物の存在範囲を移動障害物特定部15から受ける。状態取得部17は、当該存在範囲に基づいて移動障害物の寸法を求める。当該寸法は、各水平方向の寸法のうち最大の寸法であってよい。例えば、当該障害物データが点群データである場合には、状態取得部17は、当該点群データのうち、移動障害物に相当する複数の計測点が存在している上地図座標系での記存在範囲の寸法を、移動障害物の寸法として求める。当該障害物データが画像データである場合には、状態取得部17は、移動障害物に相当する複数の画素が存在している地図座標系での上記存在範囲の寸法を、移動障害物の寸法として求める。
【0051】
<移動障害物の速度と加速度>
状態取得部17は、移動障害物を特定するのに用いた時間的に連続する複数の障害物データを移動障害物特定部15から受ける。当該複数の障害物データは、例えば3つの障害物データである。また、状態取得部17は、当該3つの障害物データの各々における移動障害物の位置を移動障害物特定部15から受ける。移動障害物の当該各位置は、移動障害物特定部15により求められたものである。また、当該各位置は、向きセンサ7が検出した移動ロボット20の向きと、位置検出部9が求めた移動ロボット20の現在位置とに基づいて、移動障害物特定部15により地図座標系で表わされたものである。
【0052】
状態取得部17は、3つの障害物データの各々における移動障害物の位置と、これらの障害物データに付加されている各時刻情報(各障害物データの取得時点)とに基づいて、移動障害物の加速度を求める。一例では、3つの障害物データが第1〜第3の障害物データであるとする。第1〜第3の障害物データの順で取得時点が後になっているとする。状態取得部17は、次のように、第1および第2の障害物データから速度ベクトルを求める。第1の障害物データにおける移動障害物の位置から第2の障害物データにおける移動障害物の位置へ至る位置変化ベクトルを求める。状態取得部17は、この位置変化ベクトルを、第1および第2の障害物データの取得時点の時間差で割ったものを速度ベクトル(第1の速度ベクトルという)として求める。同様に、状態取得部17は、第2および第3の障害物データから第2の速度ベクトルを求める。状態取得部17は、第2の速度ベクトルから第1の速度ベクトルを引いたベクトルを、第2および第3の障害物データの取得時点の時間差でわったものを加速度ベクトルとして求める。状態取得部17は、第2の速度ベクトルを移動障害物の速度として求め、加速度ベクトルを移動障害物の加速度として求める。
【0053】
<移動障害物の速度と加速度>
状態取得部17は、上述の第1および第2の速度ベクトルの向きと、第2および第3の障害物データの取得時点の時間差に基づいて、移動障害物の角速度を求める。すなわち、状態取得部17は、第1および第2の速度ベクトル同士がなす角度を当該時間差でわった値を移動障害物の角速度として求める。なお、角速度は、移動障害物の進行方向の時間変化率を表わし、その正負の符号により当該進行方向が変化している方向が表わされる。
【0054】
状態取得部17は、移動障害物を特定するのに用いた時間的に連続する複数の障害物データとして、5つの障害物データを移動障害物特定部15から受け、第1〜第3の障害物データから上述のように移動障害物の第1の角速度を求め、第3〜第5の障害物データから上述のように移動障害物の第2の角速度を求め、第1および第2の角速度を、第3および第5の障害物データの取得時点の時間差で割った値を移動障害物の角加速度として求める。
【0055】
分類部19は、移動障害物特定部15により特定された移動障害物を、状態取得部17により取得された状態データに基づいて複数のカテゴリーのいずれかに分類する。複数のカテゴリーには、移動ロボット20との衝突回避に関して対処不要と対処要が含まれる。対処要には、カテゴリーが互いに異なる複数の種類がある。本実施形態では、複数の種類は、先行、対向、および交差からなる。したがって、本実施形態では、複数のカテゴリーは、対処不要、先行、対向、および交差からなる。
【0056】
なお、位置検出部9、制御部11、移動障害物特定部15、状態取得部17、および分類部19は、上述した機能(処理)を実現するコンピュータ、電子回路、または、これらの組み合わせにより構成されていてよい。
【0057】
<先行への分類>
分類部19は、上述の状態データに基づいて、移動障害物が次の条件aと条件bの両方を満たすかを判断する。分類部19は、条件a,bの両方を満たすと判断した移動障害物を、先行のカテゴリーに分類する。例えば、
図3において、移動障害物4a(車両)が存在している場合には、この移動障害物4aは先行に分類される。
【0058】
条件a:移動障害物が、移動ロボット20の予定経路上、または、当該予定経路から設定距離L以内の範囲R1に存在する。
【0059】
ここで、予定経路とは、移動ロボット20がこれから移動する移動経路であって、経路生成部11bにより生成された最新の(例えば線状の)移動経路であってよい。これは、以下で述べる各「予定経路」にも当てはまる。また、移動障害物が範囲R1(例えば
図3における斜線を施した部分)に存在しているとは、移動障害物の少なくとも一部が範囲R1内に位置していることを意味してよい。
【0060】
条件aの設定距離Lは、移動ロボット20の現在位置からの距離にかかわらず一定であってもよいが、
図3に示すように、移動ロボット20の現在位置から離れるに従って長くなっていてもよい。なお、設定距離Lは、例えば、移動ロボット20の幅の1倍以上3倍以下(又は1倍以上2倍以下)の値であってよいが、これに限定されない。移動ロボット20の幅は、移動ロボット20の進行方向と直交する水平方向における移動ロボット20の寸法である。
【0061】
条件aは、移動障害物が、現在、予定経路上または範囲R1に位置するという条件(すなわち、状態データに含まれる移動障害物の位置が予定経路上または範囲R1に位置するという条件)であってもよいし、又は、移動障害物が、現在から設定時間だけ将来の時点で予定経路上または範囲R1に位置するという条件であってもよい。後者の場合、分類部19は、状態取得部17が取得した移動障害物の状態データに基づいて、条件aが満たされるかを判断する。例えば、分類部19は、当該状態データの運動状態が維持された場合に上記将来の時点で移動障害物が範囲R1に存在すると予測したら、条件aが満たされると判断する。
【0062】
設定時間は、移動障害物を上述のように特定した時点から、この移動障害物に対する衝突回避処理に従った移動を移動ロボット20が開始する時点までの予想時間であってよい。設定時間は、例えば10ms以上であって500ms以下の値、または、50ms以上であって200ms以下の値(例えば100ms)であってよい。
【0063】
条件b:移動障害物の移動方向が、移動ロボット20の進行方向と同じであるか、または、当該移動方向と当該進行方向とのなす角度(180度以下の角度)が先行用の設定角度以下である。
【0064】
ここで、先行用の設定角度は、0度より大きく20度以下の値、5度より大きく15度以下の値、または7度より大きく12度以下の値(例えば10度)であるが、これらに限定されない。また、条件bにおける移動障害物の移動方向は、状態取得部17が求めた上述の第2の速度ベクトルの向きであってよい。
【0065】
条件bにおける移動ロボット20の進行方向は、条件aの予定経路が移動ロボット20の現在位置側から延びている方向であってよい。例えば、移動ロボット20の進行方向は、現在の又は上述の将来の時点での移動障害物に最も近い予定経路上の点における予定経路の接線の方向であってよい。
【0066】
<対向への分類>
分類部19は、上述の状態データに基づいて、移動障害物が上述の条件aと次の条件cの両方を満たすかを判断する。分類部19は、条件a,cの両方を満たすと判断した移動障害物を、対向のカテゴリーに分類する。条件aは、先行への分類で用いた上述の条件aと同じであるので、その説明を省略する。例えば、
図3において、移動障害物4b(車両)が存在している場合には、この移動障害物4bは対向に分類される。
【0067】
条件c:移動障害物の移動方向が、移動ロボット20の進行方向と反対の方向と同じであるか、または、当該移動方向と当該反対の方向とのなす角度(180度以下の角度)が対向用の設定角度以下である。
【0068】
ここで、対向用の設定角度は、160度以上であり180度より小さい値、165度以上であり175度より小さい値、または、167度以上であり173度より小さい値(例えば170度)である。条件cの移動ロボット20の進行方向は、条件bの場合と同じであるので、その説明を省略する。
【0069】
<交差への分類>
分類部19は、上述の状態データに基づいて、移動障害物が次の条件dと条件eの両方を満たすかを判断する。分類部19は、条件d,eの両方を満たすと判断した移動障害物を、交差のカテゴリーに分類する。例えば、
図3において、移動障害物4c(車両)が存在している場合には、この移動障害物4cは交差に分類される。
【0070】
条件d:移動障害物(例えば状態データに含まれる移動障害物の位置)は、移動ロボット20の予定経路から設定距離Lより離れて存在している。
【0071】
ここで、設定距離Lは、条件aにおける設定距離Lと同じである。条件dは、移動障害物が条件aを満たさないという条件である。
【0072】
条件e:移動障害物の将来の予測経路が、移動ロボット20の予定経路に交差する。
【0073】
ここで、移動障害物の将来の予測経路は、上述の状態データに基づいて分類部19により求められる。例えば、分類部19は、状態取得部17が取得した移動障害物の状態データに基づいて、この状態データの運動状態が維持された場合に移動障害物が移動する経路を予測経路として求める。
【0074】
(分類に基づく衝突回避処理)
上述した対処要に含まれる複数の種類にそれぞれ対応する複数の衝突回避処理が予め定められている。制御部11は、分類部19で分類された種類に対応する衝突回避処理を実行するように構成されている。
【0075】
<先行に対する衝突回避処理>
移動障害物が分類部19により先行のカテゴリーに分類された場合に、制御部11は、当該移動障害物(以下で先行障害物ともいう)に追突しない速さに移動ロボット20の速さを制御する。この時、本実施形態では、制御部11は、移動ロボット20の速さを、上限速さ以下に制御する。
【0076】
この上限速さvは、例えば、指令出力部11cが、移動ロボット20を停止させる停止指令を駆動装置13に出力してから移動ロボット20が停止するまでの移動ロボット20の移動距離を表わす次の関係式から設定される。
vτ+v
2/(2a)=L
m
ここで、vは、上述の上限速さである。τは、いわゆる空走時間に相当する。すなわち、τは、指令出力部11cが停止指令を駆動装置13に出力した時点から、当該駆動装置13が実際に移動ロボット20の減速を開始する時点までの時間である。aは、移動ロボット20の設定減速度(例えば許容最大減速度)である。τとaは、既知の正の値である。L
mは、移動ロボット20から先行障害物までの距離である。L
mは、障害物センサ3により計測された値である。
【0077】
上述の関係式から、上限速さvは次の式で表わされる。
v=−aτ+(a
2τ
2+2aL
m)
1/2
【0078】
先行に対する衝突回避処理の一例では、制御部11は、移動障害物が存在しないとした場合の制御(後述する基本の衝突回避処理)を行うが、この制御において、移動ロボット20の速さが上限速さvを超える時には、移動ロボット20の速さを上限速さv以下に制限する。例えば、制御部11の経路生成部11bは、生成する移動経路における各点で指定する速さを上限速さv以下に制限する。この時、経路生成部11bは、ある点でゼロの速さを指定してもよいが、この場合、当該点で停止する時間も指定する。これは、後述する交差に対する衝突回避処理にも当てはまる。
【0079】
<対向に対する衝突回避処理>
移動障害物が分類部19により対向のカテゴリーに分類された場合に、制御部11は、当該移動障害物(以下で対向障害物ともいう)の通過エリアを、状態取得部17が取得した対向障害物の状態データに基づいて推定し、該通過エリアを避けるように移動ロボット20の移動を制御する。本実施形態では、制御部11の経路生成部11bは、当該通過エリアを避ける移動経路を生成する。
【0080】
例えば、制御部11は、状態取得部17が取得した対向障害物の最新の状態データに基づいて、この状態データの運動状態が維持された場合に対向障害物が将来通過する経路を予測し、この経路からの距離が、状態取得部17が取得した対向障害物の寸法以内の範囲を通過エリアとして推定する。
【0081】
<交差に対する衝突回避処理>
移動障害物が分類部19により交差のカテゴリーに分類された場合には、当該移動障害物(以下で交差障害物ともいう)が先に又は後に交差エリアを通過して移動ロボット20の前方又は後方を横切るように、移動ロボット20の速さを制御する。すなわち、制御部11は、次の経由点に向かう移動経路を生成し、この移動経路と交差障害物の予測経路との交点を含む局所的な交差エリアを交差障害物が通過する時より前に又は後に、この交差エリアを移動ロボット20が通過するように移動ロボット20の速さを制御する。具体的には、制御部11は、次の処理(a)〜(g)を行ってよい。
【0082】
(a)地図生成部11aが生成した地図において、次の経由点に向う移動経路を生成し、この移動経路と、交差障害物の予測経路(上述の条件eの予測経路)との交点を含む局所的な交差エリアを求める。
(b)状態取得部17が取得した交差障害物の状態データに基づいて、(例えば当該状態データの運動状態が維持された場合に)交差障害物が上記交差エリアを通過する時刻を求める。
(c)位置検出部9が検出した移動ロボット20の現在位置と上記交差エリアとの距離を求める。
(d)上記(c)で求めた距離と移動ロボット20の速さの許容上限値とに基づいて、移動ロボット20が許容上限値の速さで上記(a)で生成した移動経路を移動した場合に上記交差エリアを通過する時刻を求める。許容上限値は予め設定された値であってよい。
(e)上記(b)で求めた時刻と上記(d)で求めた時刻とを比較して、移動ロボット20が、交差障害物よりも設定時間だけ先に上記交差エリアを通過できるかどうかを判断する。この判断の結果が肯定である場合には、以下の処理(f)を行い、この判断の結果が否定である場合には、以下の処理(g)を行う。
(f)交差障害物が上記交差エリアを通過する時よりも前に、上記交差エリアを通過するように移動ロボット20の速さを制御する。例えば、制御部11の経路生成部11bは、上記(a)で生成した移動経路における各点での速さを上記の許容上限値に指定する。
(g)交差障害物が上記交差エリアを通過する時よりも後に、上記交差エリアを通過するように移動ロボット20の速さを制御する。例えば、上記(b)で求めた時刻の後に上記交差エリアを移動ロボット20が通過するように、上記(a)で生成した移動経路における各点での速さを指定する。
【0083】
なお、上述の処理(a)〜(g)のうち、(c)〜(f)を省略してもよい。すなわち、制御部11は、上記処理(a)(b)(g)をこの順で行ってもよい。
【0084】
(制御方法の処理の流れ)
図5は、制御装置10による移動ロボット20の制御方法を示すフローチャートである。本実施形態による制御方法は、
図5(A)のステップS1、S2と
図5(B)のステップS3〜S5を有する。
【0085】
ステップS1〜S5を行っている時に、位置と向きの検出処理(以下で単に検出処理という)が繰り返し行われる。検出処理では、位置検出部9により移動ロボット20の現在位置を検出し、向きセンサ7により移動ロボット20の向きを検出する。
【0086】
ステップS1において、障害物センサ3により、計測範囲R0に存在する各障害物の位置をセンサ座標系で表わした障害物データを取得する。ステップS1は、上述の検出処理の周期よりも長い周期で繰り返し行われる。
【0087】
ステップS2は、ステップS1で検出した障害物との衝突を回避するように移動ロボット20の移動を制御する衝突回避処理である。衝突回避処理は、本実施形態では、ステップS21〜S23を含む。まず、後述のステップS3〜S5により対処要に分類された移動障害物が存在しない場合の基本の衝突回避処理を説明する。
【0088】
<基本の衝突回避処理>
ステップS21は、ステップS1が行われる度に行われてよい。すなわち、ステップS21は、ステップS1と同じ周期で行われてよい。ステップS21において、ステップS1で取得した障害物データと、当該障害物データを取得した時に検出処理で検出した移動ロボット20の現在位置と向きに基づいて、地図生成部11aにより、地図座標系において障害物の位置を表わした地図を生成する。
【0089】
ステップS22において、ステップS21で生成した地図に基づいて、経路生成部11bにより経路データを生成する。経路データは、この地図において、移動ロボット20の現在位置から障害物を回避して次の経由点へ向かう移動経路を含む。ここで、現在位置は、当該ステップS22を行う時に検出処理で検出された最新の現在位置であってよい。また、経路データは、移動経路上の各点で指定された移動ロボット20の速さを含む。
【0090】
ステップS22は、ステップS21が行われる度に行われてもよいし、ステップS21の周期よりも長い周期で行われてもよい。後者の場合、直前のステップS21で生成された最新の地図に基づいてステップS22が行われてよい。
【0091】
ステップS23において、指令出力部11cは、ステップS22で生成された経路データに従って、移動ロボット20の駆動装置13に動作指令を出力する。この動作指令に従って駆動装置13が動作することにより、移動ロボット20が経路データに従って移動する。
【0092】
新たにステップS22が行われたら、ステップS23において、新たなステップS22で生成された経路データに従って、指令出力部11cは、移動ロボット20の駆動装置13に動作指令を出力する。
【0093】
<移動障害物の分類処理>
上述のステップS1,S2と並行して、移動障害物を特定して分類する処理(以下、分類処理という)を繰り返し行う。分類処理は、
図5(B)のステップS3〜S5を含む。分類処理の周期は、例えば上述のステップS1の周期と同じであってもよいし、ステップS1の周期よりも長くてもよい。
【0094】
ステップS3は、このステップS3を行う時点で、既に実行された直近の複数のステップS1でそれぞれ取得された時間的に連続する複数の障害物データに基づいて、移動障害物特定部15により、上述したように移動障害物を特定する。
【0095】
ステップS4において、状態取得部17により、ステップS3で特定された移動障害物の状態データを上述のように取得する。この取得は、当該移動障害物の特定に用いられた時間的に連続する複数の障害物データに基づいて行われてよい。
【0096】
ステップS5において、ステップS4で取得した状態データに基づいて、分類部19により、ステップS3で特定した移動障害物を複数のカテゴリーのいずれかに分類する。
【0097】
ステップS3において複数の移動障害物を特定した場合、分類部19は、これら複数の移動障害物のうち、移動ロボット20に最も早く接近(例えば衝突)する移動障害物を処理対象として予測する。この予測は、移動ロボット20の最新の経路データと、各移動障害物の状態データに基づいて行われてよい。当該各状態データは、ステップS3の直後のステップS4で状態取得部17により取得されるものであってよい。
【0098】
一例では、各移動障害物の状態データの運動状態が維持された場合に移動ロボット20から近距離(例えば移動ロボット20の幅と同じ長さ)以内の範囲に最も早く進入する移動障害物を、上記処理対象として分類部19により予測する。
【0099】
予測した当該処理対象について上述のステップS4とステップS5を行う。特定された複数の移動障害物のうち処理対象以外の移動障害物は、直後の衝突回避処理においては考慮しなくてよい。
【0100】
<移動障害物用の衝突回避処理>
上述のステップS22(経路データの生成)を行う時に、直前の分類処理のステップS5において、対処要のカテゴリーに分類された移動障害物がある場合には、当該ステップS22では、基本の衝突回避処理と一部異なる処理、すなわち、移動障害物との衝突を避ける衝突回避処理(以下で、移動障害物用の衝突回避処理という)を行うことにより移動ロボット20の移動を制御する。
【0101】
本実施形態では、移動障害物用の衝突回避処理は、以下で説明する点以外は、上述した基本の衝突回避処理と同じである。
【0102】
本実施形態では、対処要には、上述したようにカテゴリーが互いに異なる複数の種類(先行、対向、および交差)があり、ステップS22を行う時に、直前の分類処理において、特定された移動障害物が、これら複数の種類のいずれかに分類された場合には、ステップS22において、制御部11により、分類された当該種類に応じた衝突回避処理を行う。
【0103】
移動障害物用の衝突回避処理は、上述のステップS21〜S23を含むが、ステップS22が、以下のように基本の衝突回避処理の場合と異なる。
【0104】
・先行の場合
ステップS22を行う時に、直前の分類処理において移動障害物が先行に分類された場合には、ステップS22は、上述した先行に対する衝突回避処理となる。すなわち、ステップS22では、ステップS21で生成した地図において、(例えば次の経由点に向いつつ)静止障害物を避ける移動経路を生成し、この移動経路上の各点において上限速さv以下の速さを指定する。
【0105】
・対向の場合
ステップS22を行う時に、直前の分類処理において、特定された移動障害物が対向に分類された場合には、ステップS22は、上述した対向に対する衝突回避処理となる。すなわち、ステップS22では、ステップS21で生成した地図において、(例えば次の経由点に向いつつ)当該移動障害物と静止障害物を避ける移動経路を生成する。
【0106】
・交差の場合
ステップS22を行う時に、直前の分類処理において、特定された移動障害物が交差に分類された場合には、ステップS22は、上述した交差に対する衝突回避処理となる。すなわち、ステップS22では、次の経由点に向う移動経路を生成し、この移動経路と当該移動障害物の予測経路との交点を含む局所的な交差エリアを当該移動障害物が通過する時より前に又は後に、交差エリアを移動ロボット20が通過するように当該移動経路上の各点において速さを指定する。
【0107】
(実施形態による効果)
以下は、本技術の実施形態による効果の一例であり、本技術を限定するものではない。
【0108】
移動ロボット20に将来衝突する可能性がある対処要に分類された移動障害物について衝突回避処理を行うが、対処不要に分類された移動障害物については衝突回避処理を行わない。例えば、対処不要に分類された移動障害物については、経路生成部11bにより経路生成においても考慮しない。このように対処不要に分類された移動障害物を考慮しなくてよいので、移動障害物との衝突を回避する制御に要するデータ処理時間を少なくすることができる。
【0109】
分類について、対処要には、カテゴリーが互いに異なる複数の種類があり、これらの種類にそれぞれ対応する複数の衝突回避処理が予め定められている。そして、分類部19が移動障害物をいずれかの種類に分類した場合に、制御部11は、当該種類に対応する衝突回避処理を実行する。したがって、移動障害物の種類に応じた適切な衝突回避が可能になる。
【0110】
先行のカテゴリーに対する衝突回避処理では、移動ロボット20の速さを制御すればよい。したがって、単純な衝突回避処理で、適切に衝突を回避できる。
【0111】
対向のカテゴリーに対する衝突回避処理では、制御部11は、対向に分類された移動障害物の通過エリアを推定し、該通過エリアを避けるように移動ロボット20の移動を制御すればよい。これにより、適切に衝突を回避できる。
【0112】
交差のカテゴリーに対する衝突回避処理では、制御部11は、移動ロボット20の予定経路と移動障害物の予測経路との交点を含む局所的な交差エリアを先に又は後に移動障害物が通過するように移動ロボット20の速さを制御する。これにより、適切に衝突を回避できる。
【0113】
移動障害物を先行、対向、または交差に予め分類し、事前に、対応する衝突回避処理が実行されるので、移動ロボット20の急な方向転換や減速を回避できる可能性が高まる。
また、先行、対向、および交差にそれぞれ対応する複数の衝突回避処理を予め定めているので、比較的単純な処理で移動障害物を回避できる。よって、移動障害物が存在する環境において、移動ロボット20を高速走行させることができる。
【0114】
先行と対向に分類される移動障害物は、少なくとも、移動ロボット20の予定経路上、または、当該予定経路から設定距離L以内の範囲に存在するという条件を満たすものである。この設定距離Lを、移動ロボット20から離れるに従って長くすることにより、現在の移動ロボット20から離れており予定経路上に位置していなくても、将来、予定経路上に来る可能性が十分にある移動障害物を先行又は対向に分類することができる。なお、設定距離Lを、移動ロボット20から離れるに従って短くしてもよい。この場合には、移動ロボット20に近い移動障害物ほど、衝突回避処理の対象とされ易くなる。
【0115】
移動障害物の運動状態として、移動障害物の速度、加速度、角速度、および角加速度の全て又は一部を用いることにより、移動障害物を、対処不要と対処要(具体的には対処不要と先行と対向と交差)のいずれかに分類できる。
【0116】
本技術は上述した実施の形態に限定されず、本技術の技術的思想の範囲内で種々変更を加え得ることは勿論である。