(57)【要約】【課題】移動体が外部環境との衝突を回避しながら走行するのに必要となる計算コストを抑制する技術を提供する。【解決手段】自立走行ロボット１の走行を制御する走行制御部６は、進行方向側に存在する外部環境と、基準点Aと、の間の距離を計測して複数の距離データを生成する距離データ生成部６０と、複数の距離データのうち、基準点Aから見て進行方向右側に分類されるものであって、最も小さい距離データを右側最短距離データDminRとして抽出し、複数の距離データのうち、基準点Aから見て進行方向左側に分類されるものであって、最も小さい距離データを左側最短距離データDminLとして抽出する、最短距離抽出部６１と、自立走行ロボット１が外部環境との衝突を回避するのに必要となる旋回角θRAを決定する旋回角決定部６２と、を備える。【選択図】図２
2013058043.tif 000002
【特許請求の範囲】
【請求項１】
移動体の走行を制御する走行制御装置であって、前記移動体の移動体本体に対して相対的に位置固定された単一の基準点が設定されており、
前記移動体の進行方向側に存在する外部環境と、前記基準点と、の間の距離を計測して複数の距離データを生成する距離データ生成手段と、
前記複数の距離データのうち、前記基準点から見て前記移動体の進行方向右側に分類されるものであって、最も小さい距離データを右側最短距離データDminRとして抽出し、前記複数の距離データのうち、前記基準点から見て前記移動体の進行方向左側に分類されるものであって、最も小さい距離データを左側最短距離データDminLとして抽出する、最短距離抽出手段と、
前記移動体が前記外部環境との衝突を回避するのに必要となる旋回角θRA（ただし、左旋回を正とする。）を下記式（１）に基づいて決定する旋回角決定手段と、
を備える、
移動体の走行制御装置。
【数１】
2013058043.tif 000014
ただし、ｐ(x)は、p(0)=0で、且つ、ｘについて単調増加な奇関数であり、ｑ(x,y)はx>0、y>0でｑ(x,y)>0となり、且つ、ｘ、ｙ夫々について単調増加となる関数である。
【請求項２】
請求項１に記載の移動体の走行制御装置であって、
前記距離データ生成手段は、前記複数の距離データを前記移動体の進行方向正面であるほど小さくなるように補正する、
移動体の走行制御装置。
【請求項３】
移動体の走行を制御する走行制御方法であって、前記移動体の移動体本体に対して相対的に位置固定された単一の基準点が設定されており、
前記移動体の進行方向側に存在する外部環境と、前記基準点と、の間の距離を計測して複数の距離データを生成する距離データ生成ステップと、
前記複数の距離データのうち、前記基準点から見て前記移動体の進行方向右側に分類されるものであって、最も小さい距離データを右側最短距離データDminRとして抽出し、前記複数の距離データのうち、前記基準点から見て前記移動体の進行方向左側に分類されるものであって、最も小さい距離データを左側最短距離データDminLとして抽出する、最短距離抽出ステップと、
前記移動体が前記外部環境との衝突を回避するのに必要となる旋回角θRA（ただし、左旋回を正とする。）を下記式（１）に基づいて決定する旋回角決定ステップと、を含む、
移動体の走行制御方法。
【数２】
2013058043.tif 000015
ただし、ｐ(x)は、p(0)=0で、且つ、ｘについて単調増加な奇関数であり、ｑ(x,y)はx>0、y>0でｑ(x,y)>0となり、且つ、ｘ、ｙ夫々について単調増加となる関数である。
【請求項４】
コンピュータに、請求項３に記載の移動体の走行制御方法を実行させるための走行制御プログラム。
【請求項５】
移動体の走行を制御する走行制御装置であって、前記移動体の移動体本体に対して相対的に位置固定された右側基準点及び左側基準点が設定され、前記右側基準点は、前記左側基準点と比較して、前記移動体の進行方向を見たときに右側となるように位置しており、
前記移動体の進行方向側に存在する外部環境と、前記右側基準点と、の間の距離を計測して複数の右側距離データを生成し、前記移動体の進行方向側に存在する外部環境と、前記左側基準点と、の間の距離を計測して複数の左側距離データを生成する距離データ生成手段と、
前記複数の右側距離データのうち、最も小さい右側距離データを右側最短距離データDminRとして抽出し、前記複数の左側距離データのうち、最も小さい左側距離データを左側最短距離データDminLとして抽出する、最短距離抽出手段と、
前記移動体が前記外部環境との衝突を回避するのに必要となる旋回角θRA（ただし、左旋回を正とする。）を下記式（１）に基づいて決定する旋回角決定手段と、
を備える、
移動体の走行制御装置。
【数３】
2013058043.tif 000016
ただし、ｐ(x)は、p(0)=0で、且つ、ｘについて単調増加な奇関数であり、ｑ(x,y)はx>0、y>0でｑ(x,y)>0となり、且つ、ｘ、ｙ夫々について単調増加となる関数である。
【請求項６】
請求項５に記載の移動体の走行制御装置であって、
前記距離データ生成手段は、前記複数の右側距離データを前記移動体の進行方向正面であるほど小さくなるように補正し、前記複数の左側距離データを前記移動体の進行方向正面であるほど小さくなるように補正する、
移動体の走行制御装置。
【請求項７】
移動体の走行を制御する走行制御方法であって、前記移動体の移動体本体に対して相対的に位置固定された右側基準点及び左側基準点が設定され、前記右側基準点は、前記左側基準点と比較して、前記移動体の進行方向を見たときに右側となるように位置しており、
前記移動体の進行方向側に存在する外部環境と、前記右側基準点と、の間の距離を計測して複数の右側距離データを生成し、前記移動体の進行方向側に存在する外部環境と、前記左側基準点と、の間の距離を計測して複数の左側距離データを生成する距離データ生成ステップと、
前記複数の右側距離データのうち、最も小さい右側距離データを右側最短距離データDminRとして抽出し、前記複数の左側距離データのうち、最も小さい左側距離データを左側最短距離データDminLとして抽出する、最短距離抽出ステップと、
前記移動体が前記外部環境との衝突を回避するのに必要となる旋回角θRA（ただし、左旋回を正とする。）を下記式（１）に基づいて決定する旋回角決定ステップと、を含む、
移動体の走行制御方法。
【数４】
2013058043.tif 000017
ただし、ｐ(x)は、p(0)=0で、且つ、ｘについて単調増加な奇関数であり、ｑ(x,y)はx>0、y>0でｑ(x,y)>0となり、且つ、ｘ、ｙ夫々について単調増加となる関数である。
【請求項８】
コンピュータに、請求項７に記載の移動体の走行制御方法を実行させるための走行制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動体の走行制御装置、走行制御方法、走行制御プログラムに関する。
【背景技術】
【０００２】
この種の技術として、特許文献１は、移動体の走行制御装置を開示している。この走行制御装置は、移動体の周りに存在する障害物までの距離を所定角度間隔で全方位にわたって逐次計測するレンジファインダを備えている。そして、走行制御装置は、レンジファインダから得られた距離データに基づいて、移動体が通過可能な領域を生成し、移動体の車速及び舵角制御を行っている。これにより、移動体は、障害物との衝突を回避しながら走行することが可能となっている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平３−２９０１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上記特許文献１の走行制御装置では、移動体が通過可能な領域を生成するために大量の距離データを用いているので、計算コストが高い。
【０００５】
本願発明の目的は、移動体が外部環境との衝突を回避しながら走行するのに必要となる計算コストを抑制する技術を提供することにある。
【課題を解決するための手段】
【０００６】
本願発明の第１の観点によれば、移動体の走行を制御する走行制御装置であって、前記移動体の移動体本体に対して相対的に位置固定された単一の基準点が設定されており、前記移動体の進行方向側に存在する外部環境と、前記基準点と、の間の距離を計測して複数の距離データを生成する距離データ生成手段と、前記複数の距離データのうち、前記基準点から見て前記移動体の進行方向右側に分類されるものであって、最も小さい距離データを右側最短距離データDminRとして抽出し、前記複数の距離データのうち、前記基準点から見て前記移動体の進行方向左側に分類されるものであって、最も小さい距離データを左側最短距離データDminLとして抽出する、最短距離抽出手段と、前記移動体が前記外部環境との衝突を回避するのに必要となる旋回角θRA（ただし、左旋回を正とする。）を下記式（１）に基づいて決定する旋回角決定手段と、を備える、移動体の走行制御装置が提供される。
【０００７】
【数１】
2013058043.tif 000003
【０００８】
ただし、ｐ(x)は、p(0)=0で、且つ、ｘについて単調増加な奇関数であり、ｑ(x,y)はx>0、y>0でｑ(x,y)>0となり、且つ、ｘ、ｙ夫々について単調増加となる関数である。
【０００９】
以上の構成によれば、前記右側最短距離データDminRと前記左側最短距離データDminLの２つの距離データだけで前記移動体が前記外部環境との衝突を回避するのに必要となる旋回角θRAが決定されるので、前記移動体が前記外部環境との衝突を回避しながら走行するのに必要となる計算コストを抑制することができる。
【００１０】
また、好ましくは、前記距離データ生成手段は、前記複数の距離データを前記移動体の進行方向正面であるほど小さくなるように補正する。以上の構成によれば、前記移動体が前記外部環境との衝突を回避するのに必要となる旋回角θRAを決定するに際し、前記移動体の進行方向正面に位置する前記外部環境ほど優先的に考慮されることになる。前記移動体の進行方向正面から大きく外れた外部環境は前記移動体の走行を阻害することがそもそもないので、この構成を採用しても前記移動体は問題なく走行することができるし、前記移動体を必要以上に旋回させることが減るので前記移動体の走行が簡素になる。
【００１１】
本願発明の第２の観点によれば、移動体の走行を制御する走行制御方法であって、前記移動体の移動体本体に対して相対的に位置固定された単一の基準点が設定されており、前記移動体の進行方向側に存在する外部環境と、前記基準点と、の間の距離を計測して複数の距離データを生成する距離データ生成ステップと、前記複数の距離データのうち、前記基準点から見て前記移動体の進行方向右側に分類されるものであって、最も小さい距離データを右側最短距離データDminRとして抽出し、前記複数の距離データのうち、前記基準点から見て前記移動体の進行方向左側に分類されるものであって、最も小さい距離データを左側最短距離データDminLとして抽出する、最短距離抽出ステップと、前記移動体が前記外部環境との衝突を回避するのに必要となる旋回角θRA（ただし、左旋回を正とする。）を下記式（１）に基づいて決定する旋回角決定ステップと、を含む、移動体の走行制御方法が提供される。
【００１２】
【数２】
2013058043.tif 000004
【００１３】
ただし、ｐ(x)は、p(0)=0で、且つ、ｘについて単調増加な奇関数であり、ｑ(x,y)はx>0、y>0でｑ(x,y)>0となり、且つ、ｘ、ｙ夫々について単調増加となる関数である。
【００１４】
以上の方法によれば、前記右側最短距離データDminRと前記左側最短距離データDminLの２つの距離データだけで前記移動体が前記外部環境との衝突を回避するのに必要となる旋回角θRAが決定されるので、前記移動体が前記外部環境との衝突を回避しながら走行するのに必要となる計算コストを抑制することができる。
【００１５】
また、コンピュータに、上記の走行制御方法を実行させるための走行制御プログラムが提供される。
【００１６】
本願発明の第３の観点によれば、移動体の走行を制御する走行制御装置であって、前記移動体の移動体本体に対して相対的に位置固定された右側基準点及び左側基準点が設定され、前記右側基準点は、前記左側基準点と比較して、前記移動体の進行方向を見たときに右側となるように位置しており、前記移動体の進行方向側に存在する外部環境と、前記右側基準点と、の間の距離を計測して複数の右側距離データを生成し、前記移動体の進行方向側に存在する外部環境と、前記左側基準点と、の間の距離を計測して複数の左側距離データを生成する距離データ生成手段と、前記複数の右側距離データのうち、最も小さい右側距離データを右側最短距離データDminRとして抽出し、前記複数の左側距離データのうち、最も小さい左側距離データを左側最短距離データDminLとして抽出する、最短距離抽出手段と、前記移動体が前記外部環境との衝突を回避するのに必要となる旋回角θRA（ただし、左旋回を正とする。）を下記式（１）に基づいて決定する旋回角決定手段と、を備える、移動体の走行制御装置が提供される。
【００１７】
【数３】
2013058043.tif 000005
【００１８】
ただし、ｐ(x)は、p(0)=0で、且つ、ｘについて単調増加な奇関数であり、ｑ(x,y)はx>0、y>0でｑ(x,y)>0となり、且つ、ｘ、ｙ夫々について単調増加となる関数である。
【００１９】
以上の構成によれば、前記右側最短距離データDminRと前記左側最短距離データDminLの２つの距離データだけで前記移動体が前記外部環境との衝突を回避するのに必要となる旋回角θRAが決定されるので、前記移動体が前記外部環境との衝突を回避しながら走行するのに必要となる計算コストを抑制することができる。また、前記右側最短距離データDminRや前記左側最短距離データDminLを生成するに際し、前記外部環境を分類せず連続的に取り扱うことになるので、前記旋回角θRAがステップ状に変化してしまう問題を解決することができる。
【００２０】
また、好ましくは、前記距離データ生成手段は、前記複数の右側距離データを前記移動体の進行方向正面であるほど小さくなるように補正し、前記複数の左側距離データを前記移動体の進行方向正面であるほど小さくなるように補正する。以上の構成によれば、前記移動体が前記外部環境との衝突を回避するのに必要となる旋回角θRAを決定するに際し、前記移動体の進行方向正面に位置する前記外部環境ほど優先的に考慮されることになる。前記移動体の進行方向正面から大きく外れた外部環境は前記移動体の走行を阻害することがそもそもないので、この構成を採用しても前記移動体は問題なく走行することができるし、前記移動体を必要以上に旋回させることが減るので前記移動体の走行が簡素になる。
【００２１】
本願発明の第４の観点によれば、移動体の走行を制御する走行制御方法であって、前記移動体の移動体本体に対して相対的に位置固定された右側基準点及び左側基準点が設定され、前記右側基準点は、前記左側基準点と比較して、前記移動体の進行方向を見たときに右側となるように位置しており、前記移動体の進行方向側に存在する外部環境と、前記右側基準点と、の間の距離を計測して複数の右側距離データを生成し、前記移動体の進行方向側に存在する外部環境と、前記左側基準点と、の間の距離を計測して複数の左側距離データを生成する距離データ生成ステップと、前記複数の右側距離データのうち、最も小さい右側距離データを右側最短距離データDminRとして抽出し、前記複数の左側距離データのうち、最も小さい左側距離データを左側最短距離データDminLとして抽出する、最短距離抽出ステップと、前記移動体が前記外部環境との衝突を回避するのに必要となる旋回角θRA（ただし、左旋回を正とする。）を下記式（１）に基づいて決定する旋回角決定ステップと、を含む、移動体の走行制御方法が提供される。
【００２２】
【数４】
2013058043.tif 000006
【００２３】
ただし、ｐ(x)は、p(0)=0で、且つ、ｘについて単調増加な奇関数であり、ｑ(x,y)はx>0、y>0でｑ(x,y)>0となり、且つ、ｘ、ｙ夫々について単調増加となる関数である。
【００２４】
以上の方法によれば、前記右側最短距離データDminRと前記左側最短距離データDminLの２つの距離データだけで前記移動体が前記外部環境との衝突を回避するのに必要となる旋回角θRAが決定されるので、前記移動体が前記外部環境との衝突を回避しながら走行するのに必要となる計算コストを抑制することができる。また、前記右側最短距離データDminRや前記左側最短距離データDminLを生成するに際し、前記外部環境を分類せず連続的に取り扱うことになるので、前記旋回角θRAがステップ状に変化してしまう問題を解決することができる。
【００２５】
また、コンピュータに、上記の走行制御方法を実行させるための走行制御プログラムが提供される。
【発明の効果】
【００２６】
本願発明によれば、前記右側最短距離データDminRと前記左側最短距離データDminLの２つの距離データだけで前記移動体が前記外部環境との衝突を回避するのに必要となる旋回角θRAが決定されるので、前記移動体が前記外部環境との衝突を回避しながら走行するのに必要となる計算コストを抑制することができる。
【図面の簡単な説明】
【００２７】
【図１】図１は、多数の障害物と向き合う自立走行ロボットの平面図である。（第１実施形態）
【図２】図２は、自立走行ロボットの機能ブロック図である。（第１実施形態）
【図３】図３は、自立走行ロボットの制御フローである。（第１実施形態）
【図４】図４は、LRFが全方位測距している様子をイメージした平面図である。（第１実施形態）
【図５】図５は、LRFによって生成された距離データ（重み付け補正前）を示すグラフである。（第１実施形態）
【図６】図６は、重み付け補正を説明するためのグラフである。（第１実施形態）
【図７】図７は、LRFによって生成された距離データ（重み付け補正後）を示すグラフである。（第１実施形態）
【図８】図８は、自立走行ロボットの旋回方向を示す平面図である。（第１実施形態）
【図９】図９は、第１実施形態の改善点を説明するための平面図である。（第２実施形態）
【図１０】図１０は、第１実施形態の改善点を説明するための平面図である。（第２実施形態）
【図１１】図１１は、自立走行ロボットの右側基準点と左側基準点を説明するための平面図である。（第２実施形態）
【図１２】図１２は、自立走行ロボットの右側基準点（又は左側基準点）から障害物までの距離の演算方法を説明するための図である。（第２実施形態）
【図１３】図１３は、自立走行ロボットの旋回方向を示す平面図である。（第２実施形態）
【発明を実施するための形態】
【００２８】
（第１実施形態）
以下、図１〜８を参照して、本願発明の第１実施形態を説明する。
【００２９】
（自立走行ロボット１の構成）
先ず、図１及び図２を参照して、自立走行ロボット１（移動体）の構成を説明する。
【００３０】
図１及び図２に示すように、自立走行ロボット１は、ロボット本体２（移動体本体）と、右輪３と、左輪４と、LRF５（Laser Range Finder）と、走行制御部６（走行制御装置）と、を備えて構成されている。右輪３と左輪４は、ロボット本体２の両側面２ａに回転自在に取り付けられている。LRF５は、ロボット本体２の前面２ｂに取り付けられている。走行制御部６は、ロボット本体２内に収容されている。そして、自立走行ロボット１は、右輪３と左輪４を同じ回転数で回転させることで直進し、異なる回転数で回転させることで旋回する形式となっている。
【００３１】
図１において、自立走行ロボット１の進行方向側には、外部環境としての障害物ａ、障害物ｂ、障害物ｃ、障害物ｄ、障害物ｅが存在している。走行制御部６は、自立走行ロボット１が障害物ａ〜ｅの間をすり抜けながら走行するように自立走行ロボット１の走行を制御するものである。図２に示すように、走行制御部６は、CPU５０（Central Processing Unit）、RAM５１（Random Access Memory）、ROM５２（Read Only Memory）、モータドライバ５３、右輪用モータ５４（右輪駆動手段）、左輪用モータ５５（左輪駆動手段）を備えて構成されている。ROM５２には、走行制御プログラムが予め記憶されている。この走行制御プログラムは、自立走行ロボット１の電源投入後にCPU５０に読み込まれ、CPU５０上で実行されることで、CPU５０等のハードウェアに、距離データ生成部６０（距離データ生成手段）、最短距離抽出部６１（最短距離抽出手段）、旋回角決定部６２（旋回角決定手段）、走行輪制御部６３（走行輪制御手段）としての機能を発揮させるようになっている。
【００３２】
図１に示すように、自立走行ロボット１には、自立走行ロボット１のロボット本体２に対して相対的に位置固定された単一の基準点Aが設定されている。本実施形態では、基準点Aは、平面視でLRF５の先端に相当している。
【００３３】
LRF５は、自立走行ロボット１の進行方向側の全方位に平面視で例えば５度間隔で測距用レーザL（図４参照）を照射することで、自立走行ロボット１の進行方向側に存在する障害物ａ等の外部環境と、LRF５自体と、の間の距離と計測するものである。
【００３４】
距離データ生成部６０は、LRF５を用いて、自立走行ロボット１の進行方向側に存在する障害物ａ等の外部環境と、基準点Aと、の間の距離を計測して複数の距離データを生成する。距離データ生成部６０は、生成した複数の距離データを自立走行ロボット１の進行方向正面であるほど小さくなるように補正する。距離データ生成部６０は、補正した複数の距離データをRAM５１に保存する。
【００３５】
最短距離抽出部６１は、RAM５１から複数の距離データを読み込んだ上で、複数の距離データのうち、基準点Aから見て自立走行ロボット１の進行方向右側に分類されるものであって、最も小さい距離データを右側最短距離データDminRとして抽出し、基準点Aから見て自立走行ロボット１の進行方向左側に分類されるものであって、最も小さい距離データを左側最短距離データDminLとして抽出する。最短距離抽出部６１は、抽出した右側最短距離データDminR及び左側最短距離データDminLをRAM５１に保存する。
【００３６】
旋回角決定部６２は、RAM５１から右側最短距離データDminRと左側最短距離データDminLを読み込んだ上で、自立走行ロボット１が障害物ａ等の外部環境との衝突を回避するのに必要となる旋回角θRA（ただし、左旋回を正とする。）を下記式（１）に基づいて決定する。ただし、下記式（１）において、ｐ(x)はp(0)=0で、且つ、ｘについて単調増加な奇関数であり、ｑ(x,y)はx>0、y>0でｑ(x,y)>0となり、且つ、ｘ、ｙ夫々について単調増加となる関数である。旋回角決定部６２は、決定した旋回角θRAをRAM５１に保存する。
【００３７】
【数５】
2013058043.tif 000007
【００３８】
走行輪制御部６３は、RAM５１から旋回角θRAを読み込んだ上で、旋回角θRAに基づいて旋回指令をモータドライバ５３に出力する。
【００３９】
モータドライバ５３は、走行輪制御部６３から受信した旋回指令に基づいて、右輪用モータ５４と左輪用モータ５５の回転数を制御する。これにより、自立走行ロボット１は、所望の旋回角θRA分だけ旋回することになる。
【００４０】
（自立走行ロボット１の作動）
次に、図３〜８を参照して、自立走行ロボット１の作動を詳しく説明する。
【００４１】
図３において、自立走行ロボット１の電源を投入すると（S300）、走行制御部６は、自立走行ロボット１が予め定められた目的地へ向かうように、直進走行指令をモータドライバ５３に出力する。これにより、自立走行ロボット１は、直進走行を開始する（S310）。
【００４２】
（距離データ生成ステップ：S320〜S330）
次に、距離データ生成部６０は、LRF５を用いて、自立走行ロボット１の進行方向側に存在する障害物ａ等の外部環境と、基準点Aと、の間の距離を計測して複数の距離データを生成する（S320）。即ち、図４に示すように、LRF５は、自立走行ロボット１の進行方向側（前方）の全方位に平面視で例えば５度間隔で測距用レーザLを照射することで、自立走行ロボット１の進行方向側に存在する障害物ａ等の外部環境と、LRF５自体（即ち、基準点A）、の間の距離を計測する。LRF５は、計測結果である複数の距離データDrawと、距離データDraw毎の測距用レーザLの照射角度θLと、を距離データ生成部６０に出力する。距離データ生成部６０は、複数の距離データDrawと、各距離データDrawに対応する照射角度θLと、を関連付けてテーブル形式でRAM５１に保存する。図５には、RAM５１に保存されている、距離データDrawと、各距離データDrawに対応する照射角度θLと、の関係を折れ線グラフ形式で示している。図５において、横軸は照射角度θL[deg.]であり、自立走行ロボット１の進行方向を基準に左側を正とし右側を負としている。縦軸は距離データDrawである。
【００４３】
次に、距離データ生成部６０は、RAM５１から複数の距離データDrawと照射角度θLを読み込んだ上で、照射角度θLに基づいて、複数の距離データDrawを自立走行ロボット１の進行方向正面であるほど小さくなるように補正する（S330）。図６には、重み付け補正関数W(θL)をグラフ形式で示している。図６において、横軸は照射角度θL[deg.]であり、自立走行ロボット１の進行方向を基準に左側を正とし右側を負としている。縦軸は重み付け補正関数W(θL)である。重み付け補正関数W(θL)は、W(0)=１であり、下に凸の偶関数である。従って、重み付け補正関数W(θL)は、例えば、W(θL)=kθ2+1(ただし、k>0)や、W(θL)=1/cosθ、W(θL)=1/cos2θとして定義される。従って、距離データDrawに重み付け補正関数W(θL)を掛けることで、距離データDrawは、自立走行ロボット１の進行方向正面であるほど小さくなるように補正される。換言すれば、距離データDrawは、自立走行ロボット１の進行方向正面から外れるほど大きくなるように補正される。補正後の距離データDrawである補正後距離データDweightを図７に折れ線グラフ形式で示す。図７において、横軸は照射角度θL[deg.]であり、自立走行ロボット１の進行方向を基準に左側を正とし右側を負としている。縦軸は補正後距離データDweightである。注目すべきは、図１に示すように障害物ａよりも自立走行ロボット１の近くに存在している障害物ｂが、図７では障害物ａよりも自立走行ロボット１から遠い存在として捉えられている点である。距離データ生成部６０は、複数の補正後距離データDweightをRAM５１に保存する。
【００４４】
（最短距離抽出ステップ：S340）
次に、最短距離抽出部６１は、RAM５１から複数の補正後距離データDweightを読み込んだ上で、複数の補正後距離データDweightのうち、基準点Aから見て自立走行ロボット１の進行方向右側に分類されるものであって、最も小さい補正後距離データDweightを右側最短距離データDminRとして抽出する（S340）。
【００４５】
即ち、図７において、基準点Aから見て自立走行ロボット１の進行方向右側に分類される補正後距離データDweightは、照射角度θLがマイナスである領域に属する補正後距離データDweightである。図７の例では、複数の補正後距離データDweightのうち、基準点Aから見て自立走行ロボット１の進行方向右側に分類されるものであって、最も小さい補正後距離データDweightは、障害物ｃと関連した補正後距離データDweightに含まれている。最短距離抽出部６１は、その補正後距離データDweightを右側最短距離データDminRとして抽出し、抽出した右側最短距離データDminRをRAM５１に保存する。
【００４６】
同様に、最短距離抽出部６１は、RAM５１から複数の補正後距離データDweightを読み込んだ上で、複数の補正後距離データDweightのうち、基準点Aから見て自立走行ロボット１の進行方向左側に分類されるものであって、最も小さい補正後距離データDweightを左側最短距離データDminLとして抽出する（S340）。
【００４７】
即ち、図７において、基準点Aから見て自立走行ロボット１の進行方向左側に分類される補正後距離データDweightは、照射角度θLがプラスである領域に属する補正後距離データDweightである。図７の例では、複数の補正後距離データDweightのうち、基準点Aから見て自立走行ロボット１の進行方向左側に分類されるものであって、最も小さい補正後距離データDweightは、障害物ａと関連した補正後距離データDweightに含まれている。最短距離抽出部６１は、その補正後距離データDweightを左側最短距離データDminLとして抽出し、抽出した左側最短距離データDminLをRAM５１に保存する。
【００４８】
（旋回角算出ステップ：S350）
次に、旋回角決定部６２は、RAM５１から右側最短距離データDminRと左側最短距離データDminLを読み込んだ上で、自立走行ロボット１が障害物ａ等の外部環境との衝突を回避するのに必要となる旋回角θRA（ただし、左旋回を正とする。）を下記式（１）に基づいて決定する（S350）。
【００４９】
【数６】
2013058043.tif 000008
【００５０】
本実施形態の旋回角決定部６２は、具体的には、自立走行ロボット１が障害物ａ等の外部環境との衝突を回避するのに必要となる旋回角θRAを、上記式（１）を具体化した下記式（２）に基づいて決定する。詳しくは、上記式（１）において、p(x)=xとし、q(x,y)=xyとしている。
【００５１】
【数７】
2013058043.tif 000009
【００５２】
上記式（１）及び式（２）に共通して言えることは、第１に、右側最短距離データDminRと左側最短距離データDminLとの差が大きい場合は、大きな旋回角θRAとすること、第２に、右側最短距離データDminRと左側最短距離データDminLの少なくとも何れか一方でも小さい場合は、差し迫った外部環境との衝突を回避すべく大きな旋回角θRAとすること、である。
【００５３】
なお、旋回角θRAの正負の定義を逆にすれば、上記式（１）においてｐ（DminL-DminR）は、ｐ（DminR-DminL）とすべきことは言うまでもない。この点、上記式（１）では、旋回角θRAについて左旋回を正としているが、このことは説明の便宜を図っただけのものであり、左旋回と右旋回の何れを正にするかは、任意に設定することができる。即ち、旋回角θRAについては左旋回を正にしなければならないという特段の事情はなく、本願明細書において、旋回角θRAについて左旋回を正とした事実によっては、本願に開示の技術は何ら限定されることはない。
【００５４】
さて、次に、旋回角決定部６２は、決定した旋回角θRAをサチュレーションフィルタにかけることで、旋回角θRAの絶対値が過大とならないよう、必要に応じて旋回角θRAを補正する。
【００５５】
そして、旋回角決定部６２は、旋回角θRAをRAM５１に保存する。
【００５６】
（旋回ステップ：S360）
次に、走行輪制御部６３は、RAM５１から旋回角θRAを読み込んだ上で、旋回角θRAに基づいて旋回指令をモータドライバ５３に出力する（S360）。モータドライバ５３は、走行輪制御部６３から受信した旋回指令に基づいて、右輪用モータ５４と左輪用モータ５５の回転数を制御する。これにより、自立走行ロボット１は、図８において太線矢印で示すように、所望の旋回角θRA分だけ旋回することになる。
【００５７】
詳しくは、自立走行ロボット１は、自立走行ロボット１の走行を全く妨害しないという理由で自立走行ロボット１の進行方向正面から大きく外れている障害物ｂの存在は無視し、障害物ａと障害物ｃとの距離に基づいて旋回する（図５〜７参照）。図８の例では、障害物ｃの方が障害物ａよりも自立走行ロボット１の近くに位置しているが、図７に示すように補正後の段階では障害物ａの方が障害物ｃよりも自立走行ロボット１の近くに位置しているものとして取り扱う。従って、障害物ａから遠ざかるように、即ち自立走行ロボット１は進行方向右側へと旋回することになる（上記式（１）の関数ｐを参照）。このとき、障害物ａも障害物ｃも自立走行ロボット１から相当遠くに位置しているので、自立走行ロボット１は差し迫って急旋回する必要はなく、図８に示すように自立走行ロボット１は進行方向右側へと滑らかに旋回することになる（上記式（１）の関数ｑを参照）。
【００５８】
次に、走行制御部６は、自立走行ロボット１が目的地に到達したか判定する（S370）。走行制御部６は、自立走行ロボット１がもう目的地に到達したと判定したら（S370:YES）、走行停止指令をモータドライバ５３に出力して、自立走行ロボット１を停止させる（S380）。一方、走行制御部６は、自立走行ロボット１がまだ目的地に到達していないと判定したら（S370:NO）、処理をS320に戻す。
【００５９】
以上の本願発明の第１実施形態を説明したが、上記第１実施形態は、要するに、以下の特長を有している。
【００６０】
即ち、自立走行ロボット１（移動体）の走行を制御する走行制御部６（走行制御装置）は、以下のように構成されている。即ち、自立走行ロボット１には、自立走行ロボット１のロボット本体２（移動体本体）に対して相対的に位置固定された単一の基準点Aが設定されている。自立走行ロボット１は、自立走行ロボット１の進行方向側に存在する外部環境（障害物ａ等）と、基準点Aと、の間の距離を計測して複数の距離データ（距離データDraw又は補正後距離データDweightに相当。）を生成する距離データ生成部６０（距離データ生成手段）と、複数の距離データのうち、基準点Aから見て自立走行ロボット１の進行方向右側に分類されるものであって、最も小さい距離データを右側最短距離データDminRとして抽出し、複数の距離データのうち、基準点Aから見て自立走行ロボット１の進行方向左側に分類されるものであって、最も小さい距離データを左側最短距離データDminLとして抽出する、最短距離抽出部６１（最短距離抽出手段）と、自立走行ロボット１が外部環境との衝突を回避するのに必要となる旋回角θRA（ただし、左旋回を正とする。）を下記式（１）に基づいて決定する旋回角決定部６２（旋回角決定手段）と、を備える。ただし、ｐ(x)は、p(0)=0で、且つ、ｘについて単調増加な奇関数であり、ｑ(x,y)はx>0、y>0でｑ(x,y)>0となり、且つ、ｘ、ｙ夫々について単調増加となる関数である。以上の構成によれば、右側最短距離データDminRと左側最短距離データDminLの２つの距離データだけで自立走行ロボット１が外部環境との衝突を回避するのに必要となる旋回角θRAが決定されるので、自立走行ロボット１が外部環境との衝突を回避しながら走行するのに必要となる計算コストを抑制することができる。
【００６１】
【数８】
2013058043.tif 000010
【００６２】
また、距離データ生成部６０は、複数の距離データDrawを自立走行ロボット１の進行方向正面であるほど小さくなるように補正する。以上の構成によれば、自立走行ロボット１が外部環境との衝突を回避するのに必要となる旋回角θRAを決定するに際し、自立走行ロボット１の進行方向正面に位置する外部環境ほど優先的に考慮されることになる。自立走行ロボット１の進行方向正面から大きく外れた外部環境は自立走行ロボット１の走行を阻害することがそもそもないので、この構成を採用しても自立走行ロボット１は問題なく走行することができるし、自立走行ロボット１を必要以上に旋回させることが減るので自立走行ロボット１の走行が簡素になる。
【００６３】
なお、上記第１実施形態において、距離データ生成部６０は、複数の距離データDrawを自立走行ロボット１の進行方向正面であるほど小さくなるように補正することとしたが、この補正は必ずしも必須の処理ではなく、任意に採用され得る処理であることを付言しておく。
【００６４】
以上に本願発明の好適な第１実施形態を説明したが、上記第１実施形態は、以下のように変更することができる。
【００６５】
即ち、上記第１実施形態において自立走行ロボット１は、右輪３の回転数と左輪４の回転数に差を設けることで旋回する形式となっているが、これに代えて、右輪３や左輪４の向きを変える構成を採用することができる。この場合、旋回角θRAは、操舵角として解釈することになる。
【００６６】
また、上記第１実施形態では、移動体の一例として自立走行ロボット１を取り上げたが、移動体は、自立走行するものであっても自立走行せずに操縦者によって操縦されるものであってもよい。移動体が操縦者によって操縦されるものである場合は、移動体は、移動体の走行が操縦者による操縦によって支配される通常走行モードと、操縦者による操縦の支配を脱して、代わりに走行制御部６の走行制御によって支配される回避モードと、を切り替え可能に有することが好ましい。また、移動体と障害物との距離に応じて、通常走行モードから回避モードへ自動的に切り替わるように構成することが好ましい。一例として、移動体と障害物との距離が所定値を下回ったときに、通常走行モードから回避モードへ自動的に切り替わるようにした構成が挙げられる。
【００６７】
また、自立走行ロボット１と障害物との間の距離に応じて停止するようにしてもよい。また、自立走行ロボット１が旋回する際は、走行速度を意図的に落とす制御が考えられる。
【００６８】
（第２実施形態）
次に、図９〜１３を参照しつつ、本願発明の第２実施形態を説明する。ここでは、本実施形態が上記第１実施形態と異なる点を中心に説明し、重複する説明は適宜省略する。また、上記第１実施形態の各構成要素に対応する構成要素には原則として同一の符号を付すこととする。
【００６９】
（上記第１実施形態の課題）
図９及び図１０に示すように、基準点Aから見て自立走行ロボット１の進行方向に一致する線を自立走行ロボット１の正面線Cと定義すると、場合によっては、図９のように正面線Cの左側に位置していた障害物ｆが、図１０のように正面線Cを時折跨ぐ可能性がある。この場合、図９の状態では、正面線Cの右側には何ら障害物がないので、自立走行ロボット１は右側へ大きな旋回角θRAで旋回しようとするが、自立走行ロボット１が何らかの弾みで蛇行するなどして図１０のように障害物ｆが正面線Cを跨ぐと、自立走行ロボット１の旋回角θRAの絶対値は急に小さくなる。このように自立走行ロボット１の旋回角θRAがステップ状に変化すると、自立走行ロボット１の滑らかな走行を著しく阻害する。
【００７０】
そこで、第２実施形態では、図１１に示すように、自立走行ロボット１のロボット本体２に対して相対的に位置固定された右側基準点AR及び左側基準点ALが設定されている。右側基準点ARは、左側基準点ALと比較して、自立走行ロボット１の進行方向を見たときに右側となるように位置する。端的に言えば、自立走行ロボット１の進行方向で見たときに、右側基準点ARは正面線Cの右側に、左側基準点ALは正面線Cの左側に、位置している。好ましくは、自立走行ロボット１の進行方向で見たときに、右側基準点ARと左側基準点ALは、正面線Cを基準に左右対称となっている。換言すれば、右側基準点ARと左側基準点ALは、自立走行ロボット１のロボット本体２の中心から進行方向に引いた線を基準として左右対称となっている。本実施形態において、右側基準点ARは、平面視で、正面線Cに対して垂直な方向で正面線Cから自立走行ロボット１の進行方向右側に離れる方向で、LRF５から距離ｈ分、離れた位置に設定されている。また、左側基準点ALは、平面視で、正面線Cに対して垂直な方向で正面線Cから自立走行ロボット１の進行方向左側に離れる方向で、LRF５から距離ｈ分、離れた位置に設定されている。従って、右側基準点ARと左側基準点ALは、正面線Cに対して直交する方向に距離２ｈ分、離れている。換言すれば、右側基準点ARと左側基準点ALは、正面線Cに対して直交する方向に同じ距離、離れている。
【００７１】
そして、図１２に示すように、距離データ生成部６０は、LRF５を用いて、自立走行ロボット１の進行方向側に存在する外部環境と、右側基準点ARと、の間の距離を計測して右側距離データDrawRを生成し、自立走行ロボット１の進行方向側に存在する外部環境と、左側基準点ALと、の間の距離を計測して左側距離データDrawLを生成する。次に、距離データ生成部６０は、複数の右側距離データDrawRを自立走行ロボット１の進行方向正面であるほど小さくなるように補正し、複数の左側距離データDrawLを自立走行ロボット１の進行方向正面であるほど小さくなるように補正する。距離データ生成部６０は、補正した右側距離データDrawRと、補正した左側距離データDrawLと、をRAM５１に保存する。
【００７２】
ここで、図１２を参照して、LRF５を用いた、自立走行ロボット１の進行方向側に存在する外部環境と、右側基準点ARと、の間の距離の計測方法について説明する。先ず、上記第１実施形態と同様にして、LRF５を用いて、LRF５と障害物ｇまでの距離である距離データDrawを計測する。そして、自立走行ロボット１の進行方向側に存在する外部環境と、右側基準点ARと、の間の距離である右側距離データDrawRは、余弦定理である下記式（３）で求める。なお、下記式（３）において、照射角度θLの定義は、上記第１実施形態と同様である。
【００７３】
【数９】
2013058043.tif 000011
【００７４】
同じように、自立走行ロボット１の進行方向側に存在する外部環境と、左側基準点ALと、の間の距離である左側距離データDrawLは、余弦定理である下記式（４）で求める。なお、下記式（４）において、照射角度θLの定義は、上記第１実施形態と同様である。
【００７５】
【数１０】
2013058043.tif 000012
【００７６】
最短距離抽出部６１は、RAM５１から複数の右側距離データDrawRを読み込んだ上で、複数の右側距離データDrawRのうち、最も小さい右側距離データDrawRを右側最短距離データDminRとして抽出する。同様に、最短距離抽出部６１は、RAM５１から複数の左側距離データDrawLを読み込んだ上で、複数の左側距離データDrawLのうち、最も小さい左側距離データDrawLを左側最短距離データDminLとして抽出する。最短距離抽出部６１は、抽出した右側最短距離データDminR及び左側最短距離データDminLをRAM５１に保存する。
【００７７】
旋回角決定部６２や走行輪制御部６３等については、上記第１実施形態と同様であるから、それらの説明は省略する。
【００７８】
図１３には、本実施形態における自立走行ロボット１の走行の様子を示している。図１３に示すように、本実施形態における自立走行ロボット１も、問題なく、障害物ｆとの衝突を回避するように旋回することになる。
【００７９】
以上に本願発明の第２実施形態を説明したが、第２実施形態は、要するに、以下の特長を有している。
【００８０】
即ち、自立走行ロボット１の走行を制御する走行制御部６は、以下のように構成されている。自立走行ロボット１には、自立走行ロボット１のロボット本体２に対して相対的に位置固定された右側基準点AR及び左側基準点ALが設定されている。右側基準点ARは、左側基準点ALと比較して、自立走行ロボット１の進行方向を見たときに右側となるように位置している。自立走行ロボット１は、自立走行ロボット１の進行方向側に存在する外部環境と、右側基準点ARと、の間の距離を計測して複数の右側距離データDrawRを生成し、自立走行ロボット１の進行方向側に存在する外部環境と、左側基準点ALと、の間の距離を計測して複数の左側距離データDrawLを生成する距離データ生成部６０と、複数の右側距離データDrawRのうち、最も小さい右側距離データDrawRを右側最短距離データDminRとして抽出し、複数の左側距離データDrawLのうち、最も小さい左側距離データDrawLを左側最短距離データDminLとして抽出する、最短距離抽出部６１と、自立走行ロボット１が外部環境との衝突を回避するのに必要となる旋回角θRA（ただし、左旋回を正とする。）を下記式（１）に基づいて決定する旋回角決定部６２と、を備える。ただし、ｐ(x)は、p(0)=0で、且つ、ｘについて単調増加な奇関数であり、ｑ(x,y)はx>0、y>0でｑ(x,y)>0となり、且つ、ｘ、ｙ夫々について単調増加となる関数である。以上の構成によれば、右側最短距離データDminRと左側最短距離データDminLの２つの距離データだけで自立走行ロボット１が外部環境との衝突を回避するのに必要となる旋回角θRAが決定されるので、自立走行ロボット１が外部環境との衝突を回避しながら走行するのに必要となる計算コストを抑制することができる。また、右側最短距離データDminRや前記左側最短距離データDminLを生成するに際し、外部環境を分類せず連続的に取り扱うことになるので、旋回角θRAがステップ状に変化してしまう問題を解決することができる。
【００８１】
【数１１】
2013058043.tif 000013
【００８２】
また、距離データ生成部６０は、複数の右側距離データDrawRを自立走行ロボット１の進行方向正面であるほど小さくなるように補正し、複数の左側距離データDrawLを自立走行ロボット１の進行方向正面であるほど小さくなるように補正する。以上の構成によれば、自立走行ロボット１が外部環境との衝突を回避するのに必要となる旋回角θRAを決定するに際し、自立走行ロボット１の進行方向正面に位置する外部環境ほど優先的に考慮されることになる。自立走行ロボット１の進行方向正面から大きく外れた外部環境は自立走行ロボット１の走行を阻害することがそもそもないので、この構成を採用しても自立走行ロボット１は問題なく走行することができるし、自立走行ロボット１を必要以上に旋回させることが減るので自立走行ロボット１の走行が簡素になる。
【符号の説明】
【００８３】
１  自立走行ロボット
２  ロボット本体
３  右輪
４  左輪
５  LRF
６  走行制御部（走行制御装置）
【図１】
2013058043.tif 000018
【図２】
2013058043.tif 000019
【図３】
2013058043.tif 000020
【図４】
2013058043.tif 000021
【図５】
2013058043.tif 000022
【図６】
2013058043.tif 000023
【図７】
2013058043.tif 000024
【図８】
2013058043.tif 000025
【図９】
2013058043.tif 000026
【図１０】
2013058043.tif 000027
【図１１】
2013058043.tif 000028
【図１２】
2013058043.tif 000029
【図１３】
2013058043.tif 000030