(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024145915
(43)【公開日】2024-10-15
(54)【発明の名称】自律移動体の走行制御装置および自律移動体
(51)【国際特許分類】
G05D 1/43 20240101AFI20241004BHJP
【FI】
G05D1/02 W
G05D1/02 S
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023058511
(22)【出願日】2023-03-31
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成31年度、国立研究開発法人新エネルギー・産業技術総合開発機構「次世代人工知能・ロボットの中核となるインテグレート技術開発/人工知能技術の社会実装に向けた研究開発・実証/機械学習による生産支援ロボットの現場導入期間削減と多能化」委託事業、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】000003458
【氏名又は名称】芝浦機械株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】中村 陽一郎
(72)【発明者】
【氏名】福島 好伸
【テーマコード(参考)】
5H301
【Fターム(参考)】
5H301AA01
5H301AA10
5H301BB05
5H301CC03
5H301CC06
5H301DD01
5H301DD07
5H301DD15
5H301GG08
5H301GG09
5H301GG10
5H301GG14
5H301JJ01
5H301LL01
5H301LL03
5H301LL06
5H301LL07
5H301LL11
(57)【要約】
【課題】任意の方向から接近する障害物との接触を避けることが可能な自律移動体の走行制御装置および自律移動体を提供すること。
【解決手段】自律移動体の走行制御装置は、自律移動体が移動する平面における周囲との距離に対応する距離計測点に対して、自律移動体の任意の点を中心とした、平面を一定角度毎に分割した角度分割範囲における、距離が最短となる距離計測点の座標を出力する距離計測点算出部と、角度分割範囲毎に、距離計測点の座標と自律移動体との最近傍点を始点として、距離計測点の座標を終点とする最短距離ベクトルを算出する最短距離ベクトル算出部と、最短距離ベクトルから算出される、自律移動体の速度修正量に基づいて、自律移動体に対する指令速度ベクトルを修正する指令速度ベクトル修正部と、修正後指令速度ベクトルを、自律移動体の全方位走行機構駆動部に対して指示する速度指令部と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
自律移動体と、当該自律移動体が移動する平面における周囲との距離を計測する距離計測部が計測した、前記距離に対応する距離計測点に対して、前記自律移動体の任意の点を中心とした、前記平面を一定角度毎に分割した角度分割範囲における、前記距離が最短となる前記距離計測点の座標を出力する距離計測点算出部と、
前記角度分割範囲毎に、前記距離計測点算出部が算出した前記距離計測点の座標にそれぞれ対応する、当該座標と前記自律移動体との最近傍点を始点として、前記距離計測点の座標を終点とする最短距離ベクトルを算出する最短距離ベクトル算出部と、
前記最短距離ベクトルから算出される、前記自律移動体の速度修正量に基づいて、前記自律移動体に対する指令速度ベクトルを修正する指令速度ベクトル修正部と、
修正された前記指令速度ベクトルを、前記自律移動体を任意の方向に移動可能な全方位走行機構駆動部に対して指示する速度指令部と、を備える、
自律移動体の走行制御装置。
【請求項2】
前記最短距離ベクトル算出部が算出した、前記角度分割範囲毎の前記最短距離ベクトルを所定時間分保持して、計算周期毎に、保持された前記最短距離ベクトルの中から、距離が最も短い最短距離ベクトルを出力する最短距離ベクトル更新部を、更に備える、
請求項1に記載の自律移動体の走行制御装置。
【請求項3】
前記指令速度ベクトル修正部は、
前記最短距離ベクトル更新部が、前記角度分割範囲毎に出力する前記最短距離ベクトルの、それぞれ距離と進行方向に対する角度で定まる2つの係数を加重平均した速度修正量を、前記指令速度ベクトルに加算することによって修正する、
請求項2に記載の自律移動体の走行制御装置。
【請求項4】
前記指令速度ベクトル修正部が、前記加重平均を算出する際の重みは、上下をクリッピングされて、単調に変化する連続関数で記述される、
請求項3に記載の自律移動体の走行制御装置。
【請求項5】
前記加重平均を算出する際の重みは、シグモイド関数で記述される、
請求項3に記載の自律移動体の走行制御装置。
【請求項6】
前記指令速度ベクトル修正部は、
前記最短距離ベクトル更新部が、前記角度分割範囲毎に出力する前記最短距離ベクトルの、それぞれ距離と進行方向に対する角度で定まる2つの係数の加重平均値に、更に、回避対象の障害物に対して、接近と反発とを繰り返す振動的挙動を抑制する重みを乗算して前記速度修正量を算出する、
請求項3から請求項5のいずれか1項に記載の自律移動体の走行制御装置。
【請求項7】
請求項1乃至請求項5のいずれか1項に記載の自律移動体の走行制御装置と、
前記自律移動体を任意の方向に移動可能な全方位走行機構と、を備える、
自律移動体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、移動ロボットや無人搬送車などの自律移動する移動体、その中でも全方位走行機構を備えた自律移動体の走行制御装置および自律移動体に関する。
【背景技術】
【0002】
自動運転車のほか、工場や物流施設内で工作物や材料、各種製品等の搬送を行うロボットや無人搬送車、家庭内で活動する自走式の掃除ロボットなどの実用化が進んでいる。また、最近の移動ロボットには、人と共存・協働し、なおかつ全方位走行機構を備え、複雑な走行が可能なものも多くなってきている。これらの自律移動体の走行移動中の障害物との衝突回避は解決すべき重要な課題であり、従来からさまざまな取り組みがなされている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
例えば、特許文献1では、全方位走行形式を対象にしているが、進行方向に限定した減速や停止のみを対象にしており、進行方向から外れて衝突を避けたり、前方から接近してくる障害物に対して後退して衝突を避けたりするような動作までは想定されていなかった。
【0005】
本発明は上記に鑑みてなされたものであって、任意の方向から接近する障害物との接触を避けることが可能な自律移動体の走行制御装置および自律移動体を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記した課題を解決し、目的を達成するために、本発明に係る自律移動体の走行制御装置は、自律移動体と、当該自律移動体が移動する平面における周囲との距離を計測する距離計測部が計測した、前記距離に対応する距離計測点に対して、前記自律移動体の任意の点を中心とした、前記平面を一定角度毎に分割した角度分割範囲における、前記距離が最短となる前記距離計測点の座標を出力する距離計測点算出部と、前記角度分割範囲毎に、前記距離計測点算出部が算出した前記距離計測点の座標にそれぞれ対応する、当該座標と前記自律移動体との最近傍点を始点として、前記距離計測点の座標を終点とする最短距離ベクトルを算出する最短距離ベクトル算出部と、前記最短距離ベクトルから算出される、前記自律移動体の速度修正量に基づいて、前記自律移動体に対する指令速度ベクトルを修正する指令速度ベクトル修正部と、修正された前記指令速度ベクトルを、前記自律移動体を任意の方向に移動可能な全方位走行機構駆動部に対して指示する速度指令部と、を備えることを特徴とする。
【0007】
また、本発明に係る自律移動体は、前述した自律移動体の制御装置と、自律移動体を任意の方向に移動可能な全方位走行機構と、を備えることを特徴とする。
【発明の効果】
【0008】
本発明に係る自律移動体の走行制御装置および自律移動体は、任意の方向から接近する障害物との接触を避けることが可能である、という効果を奏する。
【図面の簡単な説明】
【0009】
【
図1】
図1は、本実施形態の自律移動体の概略構成の一例を示す機能ブロック図である。
【
図2】
図2は、自律移動体の走行制御部の動作を説明するために必要な座標系を説明する図である。
【
図3】
図3は、角度分割範囲毎に最短距離ベクトルを算出する方法を説明する図である。
【
図4】
図4は、最短距離ベクトルの具体的な算出方法を説明する図である。
【
図5】
図5は、最短距離ベクトル更新部の機能を説明する図である。
【
図6】
図6は、最短距離ベクトルを、移動体座標系から進行方向座標系に変換する処理を説明する図である。
【
図7】
図7は、速度ポテンシャルの一例を示す図である。
【
図8】
図8は、荷重平均距離重みの一例を示す図である。
【
図9】
図9は、本実施形態の自律移動体の走行制御部が行う処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に、本開示に係る自律移動体の走行制御装置および自律移動体の実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。また、下記実施形態における構成要素には、当業者が置換可能、かつ容易に想到できるもの、或いは実質的に同一のものが含まれる。
【0011】
(実施形態)
本実施形態は、本開示を、平面上の全方位に走行可能な走行機構を備えた自律移動体の走行制御装置に適用した例である。
【0012】
(自律移動体の概略構成)
図1を用いて、自律移動体10の概略構成を説明する。
図1は、本実施形態の自律移動体の概略構成の一例を示す機能ブロック図である。
【0013】
自律移動体10は、例えば工場等で使用されるAGV(Automated Guided Vehicle)のように、指定された固定的な目的地に向かって、障害物を回避しながら自律的に走行する移動体である。また、自律移動体10は、固定的な目的地を持たない移動体であってもよい。例えば、走行移動しながら、手と腕を使って作業を行う移動作業ロボットであってもよい。
【0014】
自律移動体10は、
図1に示す距離計測部11と、走行制御部12と全方位走行機構駆動部13とを備える。
【0015】
距離計測部11は、自律移動体10と、当該自律移動体10が移動する平面における周囲との距離dを計測する。距離計測部11は、例えばLIDAR(Light Detecting And Ranging)で構成される。なお、距離計測部11の構成要素はLIDARに限定されるものではなく、複数台のカメラを用いたステレオカメラで実現してもよいし、或いは1次元の変位センサ(例えば超音波センサ)を自律移動体の外周に複数設置してもよい。また、距離計測部11は、複数の異なるセンサの組み合わせで構成されてもよい。
【0016】
走行制御部12は、距離計測部11が計測した距離dに基づいて、全方位走行機構駆動部13に与える修正後指令速度ベクトルv’(=v+Δv)を決定する。ここで、vは、周囲に障害物がないと仮定した場合に、自律移動体10を移動目標点に向かわせる指令速度ベクトルである。また、速度修正ベクトルΔvは、自律移動体10の周囲の障害物の状態に応じて、走行制御部12が決定する速度修正量である。速度修正ベクトルΔvについて、詳しくは後述する。なお、走行制御部12は、本開示における走行制御装置の一例である。
【0017】
走行制御部12は、例えば、制御プログラムによって動作するコンピュータの構成を有する。また、走行制御部12は、その一部又は全てが、専用のハードウェアで実現されてもよい。
【0018】
走行制御部12は、
図1に示す距離計測点算出部12aと、最短距離ベクトル算出部12bと、最短距離ベクトル更新部12cと、指令速度ベクトル修正部12dと、指令速度ベクトル決定部12eと、速度指令部12fを備える。
【0019】
距離計測点算出部12aは、自律移動体10と、当該自律移動体10が移動する平面における、周囲との距離dを計測する距離計測部11が計測した、距離dに対応する距離計測点Pに対して、自律移動体10の任意の点を中心とした、平面を一定角度θ毎に分割した角度分割範囲Ri(i=1,2,…,N)毎に、距離dが最短となる距離計測点PRiの座標を出力する。
【0020】
最短距離ベクトル算出部12bは、角度分割範囲Ri毎に、距離計測点算出部12aが算出した距離計測点Pの座標にそれぞれ対応する、当該座標と自律移動体10との最近傍点Qを始点として、距離計測点Pの座標を終点とする最短距離ベクトルdmin[i]を算出する。
【0021】
最短距離ベクトル更新部12cは、最短距離ベクトル算出部12bが算出した、角度分割範囲Ri毎の最短距離ベクトルdmin[i]を所定時間分保持する。また、最短距離ベクトル更新部12cは、計算周期毎に、保持された最短距離ベクトルdmin[i]の中から、距離が最も短い最短距離ベクトルdmin[i]を出力する。
【0022】
指令速度ベクトル修正部12dは、最短距離ベクトルdmin[i]から算出される、自律移動体10の速度修正ベクトルΔvに基づいて、指令速度ベクトル決定部12eが決定した指令速度ベクトルvを修正する。
【0023】
指令速度ベクトル決定部12eは、周囲に障害物がないと仮定した場合に、自律移動体10を移動目標点に向かわせる指令速度ベクトルvを決定する。指令速度ベクトルvは、走行開始あるいは停止時の加減速に応じて変化する。また、指令速度ベクトルvは、移動の最終目標点に直接向かうベクトルであったり、或いは、自律移動体10に近接した、最終目標点に至る経路上の一点に向かうベクトルであったりする。
【0024】
速度指令部12fは、指令速度ベクトル修正部12dによって修正された修正後指令速度ベクトルv’(=v+Δv)を、自律移動体10を任意の方向に移動可能な全方位走行機構駆動部13に対して指示する。
【0025】
全方位走行機構駆動部13は、自律移動体10を全方位に亘って走行させる全方位走行機構を駆動する駆動部である。なお、全方位走行機構は、例えば、メカナムホイール、オムニホイール、キャスタ式などの車輪形式のほか、人型を含む多脚型であってもよい。
【0026】
(座標系の説明)
図2を用いて、自律移動体10の走行制御部12の動作を説明するために必要な座標系を説明する。
図2は、自律移動体の走行制御部の動作を説明するために必要な座標系を説明する図である。
【0027】
以下の説明では、
図2に示す3種類の座標系、即ち、絶対座標系X
W-Y
Wと、移動体座標系X
B-Y
Bと、進行方向座標系X
H-Y
Hと、を使用する。
【0028】
絶対座標系XW-YWは、自律移動体10が移動する平面上に設定された座標系である。絶対座標系XW-YWの原点OWは、平面上の任意の位置に設定される。
【0029】
移動体座標系XB-YBは、自律移動体10の任意の点を原点OBとして、周囲の距離計測点Pの座標を表現する際に使用する座標系である。
【0030】
進行方向座標系XH-YHは、自律移動体10の任意の点を原点OHとして、自律移動体10の進行方向を表現する際に使用する座標系である。なお、説明を簡単にするために、移動体座標系XB-YBの原点OBと進行方向座標系XH-YHの原点OHとは同じ位置に設定する。
【0031】
(最短距離ベクトルの算出方法)
図3と
図4を用いて、最短距離ベクトルd
min[i]の算出方法を説明する。
図3は、角度分割範囲毎に最短距離ベクトルを算出する方法を説明する図である。
図4は、最短距離ベクトルの具体的な算出方法を説明する図である。
【0032】
自律移動体10の走行制御部12の一部をなす最短距離ベクトル算出部12bは、ある計算周期において、距離計測部11で得られた自律移動体10の周囲との距離に基づき、以下の手順により、最短距離ベクトルdmin[i]を算出する。
【0033】
まず、距離計測点算出部12aは、移動体座標系XB-YBの原点OBを中心とするN個の角度分割範囲Ri(i=1,2,…,N)毎に、距離dが最も短い最短距離計測点min(Pi)を決定する。即ち、分割範囲全体でN個の最短距離計測点が決定する。なお、角度分割範囲Riのサイズは問わない。
【0034】
最短距離ベクトル算出部12bは、N個の最短距離計測点min(P1),min(P2),…,min(PN)にそれぞれ対応する、移動体座標系XB-YBにおける自律移動体10の車体上の最近傍点Q1,Q2,…,QNの座標を求める。更に、最短距離ベクトル算出部12bは、求められた各最近傍点を始点として、各最近傍点にそれぞれ対応する最短距離計測点min(P1),min(P2),…,min(PN)を終点とする、最短距離ベクトルdmin[i](i=1,2,…N)を求める。
【0035】
図3は、一例として、移動体座標系X
B-Y
Bの原点O
Bの周りに、自律移動体10の進行方向前方側に4個の角度分割範囲(R1からR4)を設定した例である。なお、各角度分割範囲は、原点O
Bの周りに、それぞれ45°の角度をなすものとする。
【0036】
距離計測部11は、例えば、角度分割範囲R1において、原点O
Bから、
図3に示す複数の距離計測点P
1j(j=1,2,…,n)までの距離d
1j(j=1,2,…,n)を計測する。ここで、nは、距離計測部11の角度分解能に対応する。距離計測部11の角度分解能が高いほど(nが大きいほど)、各角度分割範囲において、より多くの距離計測点Pが計測される。
【0037】
最短距離ベクトル算出部12bは、角度分割範囲Ri毎に、距離計測点PRij(i=1,2,…N、j=1,2,…,n)の座標にそれぞれ対応する、当該座標と自律移動体10との最近傍点Qを始点として、距離計測点Pijの座標を終点とする最短距離ベクトルdmin[i]を算出する。
【0038】
図3の例では、角度分割範囲R1において、最近傍点Q
1から距離計測点P
1aに至る最短距離ベクトルd
min[1]が算出される。同様に、角度分割範囲R2,R3,R4において、それぞれ、最短距離ベクトルd
min[2],d
min[3],d
min[4]が算出される。
【0039】
次に、
図4を用いて、最短距離ベクトルの具体的な算出方法を説明する。
【0040】
最短距離ベクトルの算出方法は、自律移動体10の車体形状や、距離計測部11を構成する距離センサの種別、さらに距離センサの取り付け位置等によって異なる。
図4は、平面形状が幅Wおよび前後長Lの長方形状で、距離センサとして少なくともLIDAR1台を、車体の前端に備えた自律移動体10における、最短距離ベクトルの算出方法を例示したものである。なお、移動体座標系X
B-Y
Bの原点O
Bを車体中心、X
B軸を車体前方方向として、LIDARは、ある高さの、移動体座標系上の座標(L/2,0)の位置に設置されているものとする。
【0041】
図4において、走査点P1,P2,P3は、それぞれ、自律移動体10の前端に取り付けられたLIDARから投射されたレーザ光が周囲の壁面等に当たった走査点(前述した距離計測点に相当する)を表す。
図4は、数多くの走査点のうち、下記(条件1)、(条件2)、(条件3)にそれぞれ該当する、代表的な3点のみを図示している。LIDARによって計測される情報は、走査角度毎に得られる、走査点(距離計測点)とLIDARとの間の距離である。LIDARの走査角度ρ
iと、そのときに計測される距離r
iとに基づいて、最短距離ベクトルd
min[i]は、以下のように算出される。最短距離ベクトルd
min[i]の算出式は、走査角度ρ
iの値に応じて、3つの形式に分けられる。なお、
図4においては、i=1,2,3である。
【0042】
(条件1) risinρi<W/2 かつ 0≦ricosρi の場合
【0043】
図4においては、走査点P
1が(条件1)に該当する。このとき、最短距離ベクトルd
min[i]は、d
min[i]=(r
icosρ
i,0)となる。そして、この場合、走査点に対する最短距離ベクトルの根元の自律移動体10上の最近傍点Q
1は、車体前端の線分上に位置する。
【0044】
(条件2) W/2≦risinρi かつ 0≦ricosρi の場合
【0045】
図4においては、走査点P
2が(条件2)に該当する。このとき、最短距離ベクトルd
min[i]は、d
min[i]=(r
icosρ
i,r
isinρ
i-W/2)となる。そして、この場合、走査点に対する最短距離ベクトルの根元の自律移動体10上の最近傍点Q
2は、車体前端の角部に位置する。
【0046】
(条件3) W/2≦risinρi かつ ricosρi<0 の場合
【0047】
図4においては、走査点P
3が(条件3)に該当する。このとき、最短距離ベクトルd
min[i]は、d
min[i]=(0,r
isinρ
i-W/2)となる。そして、この場合、走査点に対する最短距離ベクトルの根元の自律移動体10上の最近傍点Q
3は、自律移動体10の車体側端の線分上に位置する。
【0048】
(最短距離ベクトルの記憶方法と更新方法)
図5を用いて、最短距離ベクトルd
iの記憶方法と更新方法を説明する。
図5は、最短距離ベクトル更新部の機能を説明する図である。
【0049】
最短距離ベクトル更新部12cは、例えばFIFO型(First In First Out)のメモリを備える。最短距離ベクトル更新部12cは、その時点での最短距離ベクトルdmin[i]を、それぞれ所定時間に亘って保持する。
【0050】
また、最短距離ベクトル更新部12cは、計算周期毎に、それぞれの角度分割範囲Riに対応する最短距離ベクトル更新部12cの中から、距離dが最も短い最短距離ベクトルdmin[i]を出力する。
【0051】
具体的には、
図5に示すように、最短距離ベクトル更新部12cは、FIFO型メモリの角度分割範囲R
iに対応する位置に、時刻tにおいて最短距離ベクトル算出部12bが算出した最短距離ベクトルd
t
min[1],d
t
min[2],d
t
min[3],d
t
min[4]をそれぞれ格納する。そして、最短距離ベクトル更新部12cは、次の計算周期である時刻t+1において、最短距離ベクトル算出部12bが算出した最短距離ベクトルd
t+1
min[1],d
t+1
min[2],d
t+1
min[3],d
t+1
min[4]を、それぞれ、先に格納した最短距離ベクトルと隣接するアドレスに格納する。
【0052】
最短距離ベクトル更新部12cは、同様の格納操作を、M回目の計算周期になるまで繰り返す。この結果、FIFO型メモリには、
図5に示すように、全ての角度分割範囲R
iに対して、それぞれM個の最短距離ベクトルが格納される。
【0053】
時刻t+Mにおいて、新たな最短距離ベクトルが取得されると、最短距離ベクトル更新部12cは、時刻t+Mで取得した最短距離ベクトルを、
図5に示すFIFO型メモリに格納する。このとき、最も古い時刻tにおいて取得した最短距離ベクトルは破棄される。また、このとき、最短距離ベクトル更新部12cは、角度分割範囲毎に、M個の最短距離ベクトルの中で最も短い最短距離ベクトルを出力する。
【0054】
自律移動体10と周囲環境との間の相対関係は常に変動しているため、距離計測部11が計測した、自律移動体10の車体から周囲までの距離dは、常に同じ距離計測点Piまでの距離を表すとは限らない。
【0055】
最短距離ベクトル更新部12cは、このような最短距離ベクトルdmin[i]の更新処理を行うことによって、角度分割範囲Ri毎に、所定時間に亘って保持している最短距離ベクトルdmin[i]の中から、常に距離が最短な最短距離ベクトルdmin[i]を出力することで、距離値の不連続な変動をできるだけ抑えることができる。
【0056】
(最短距離ベクトルの座標変換)
図6を用いて、移動体座標系X
B-Y
Bで算出した最短距離ベクトルd
min[i]を、進行方向座標系X
H-Y
Hに変換する方法を説明する。
図6は、最短距離ベクトルを、移動体座標系から進行方向座標系に変換する処理を説明する図である。
【0057】
絶対座標系XW-YWにおける自律移動体10の進行方向角度θHから、自律移動体10の車体の姿勢角度θVを減算した角度差分値をΔθとする。即ち、角度差分値Δθは、式(1)で表される。
【0058】
【0059】
ある計算周期における、移動体座標系XB-YBにおけるi番目の角度分割範囲Riの最短距離ベクトルdmin[i]は、式(2)で表される。
【0060】
【0061】
本実施形態の自律移動体10は全方位走行形式であるため、この最短距離ベクトルdmin[i]を、移動体座標系XB-YBから、移動体座標系XB-YBに対して角度差分値Δθを持った進行方向座標系XH-YHに変換する。変換後の最短距離ベクトルdmin[i]は、その始点を進行方向座標系XH-YHの原点に移したうえで、式(3)で表される。
【0062】
【0063】
図6は、1例として、移動体座標系X
B-Y
Bで表された、角度分割範囲R4における最短距離ベクトルd
min[4]を、進行方向座標系X
H-Y
Hで表された最短距離ベクトルd
min[4]に変換した例を示したものである。
【0064】
(速度ベクトル修正量の算出)
次に、指令速度ベクトル修正部12dが算出する速度修正ベクトルΔvについて説明する。指令速度ベクトル修正部12dは、衝突回避対象である障害物と自律移動体10との距離の関数である速度ポテンシャル重み行列(後述するWa
[i])と自律移動体10の進行方向重み行列(後述するWφ
[i])との加重平均値と、指令速度ベクトルvの修正の減衰重み行列(後述するwr)との乗算によって、速度修正ベクトルΔvを算出する。
【0065】
まず、自律移動体10の速度ポテンシャル重み行列の算出方法を説明する。
【0066】
指令速度ベクトル修正部12dは、式(3)で算出した最短距離ベクトルdmin[i]を用いて、式(4)により、速度ポテンシャル重み行列Wa
[i]を求める。
【0067】
【0068】
式(4)における関数fは、距離dの関数であり、速度ポテンシャルを表す。速度ポテンシャルfは、例えば、式(5)で与えられる。
【0069】
【0070】
図7に、速度ポテンシャルfのグラフの一例を示す。
図7は、速度ポテンシャルの一例を示す図である。
【0071】
式(5)における速度ポテンシャルfにおいて、距離d以外の5つの値は、いずれも設定定数である。式(5)の右辺は、前側大括弧部と後側中括弧部の乗算になっている。
【0072】
式(5)の後側中括弧部は、シグモイド関数を上下逆にした形の速度減少項で、距離に対する速度の減少比率を決める。自律移動体10の移動速度は、速度減少項の値が1をとる範囲で0、即ち停止状態となる。一方、式(5)の前側大括弧部は、速度減少項の値が1に達する距離範囲、即ち障害物上の距離計測点とそれに対応する車体上の最近傍点との距離がごく近接した距離範囲において、自律移動体10の車体を障害物に対して反発移動させる速度の比率を決める。具体的には、式(5)の定数値drを下回る距離範囲で1以上の値をとり、その範囲において、自律移動体10の車体は、障害物に対し反発移動する。式(5)の定数値crは、反発移動の速度比率を定める定数である。
【0073】
なお、式(5)では、速度ポテンシャルfを、シグモイド関数を用いて表現したが、使用する関数はシグモイド関数に限定されるものではない。例えば、上下を0と1にクリッピングされて、単調に変化する連続関数であれば、いかなる関数を用いてもよい。
【0074】
次に、自律移動体10の進行方向重み行列Wφ
[i]の算出方法を説明する。
【0075】
指令速度ベクトル修正部12dは、指令速度ベクトルvの修正量を計算するにあたり、式(3)の最短距離ベクトルdmin[i]について、当該最短距離ベクトルdmin[i]の進行方向成分は重視し、最短距離ベクトルdmin[i]の進行方向に直交する方向の成分は軽視する。この重視度を決める進行方向重み行列Wφ
[i]を、式(6)で求める。
【0076】
【0077】
式(6)の行列中の2つの重みはそれぞれ、
図6に表されている自律移動体10の進行方向に対する最短距離ベクトルの方向角度φ
iの正弦と余弦の値である。
図6では、一例としてφ
4を例示している。
【0078】
式(4)の物体との距離に関する重みだけでは、進行方向に対して斜め前の物体からも減速を受けたり斜め後ろの物体からも加速を受けたりするため、速度の変動や不連続が顕著になる。こうした速度の変動や不連続を、式(6)の進行方向重み行列WΦ
[i]によって抑制するが、重みを正弦値と余弦値にすることによって、進行方向をより重視し、進行方向の直交方向をより軽視する。これにより、進行方向に対し直交方向にある壁等の検出による自律移動体10の速度変化がより小さくなる。したがって、たとえば進行方向前側に存在する障害物に対しては十分な減速をする一方、進行方向に対し直交方向、言い換えると進行方向に対し左側または右側の進行方向に沿って存在する壁等に対しては、減速量は小さくなる。これにより、自律移動体10の走行がより滑らかになる。
【0079】
指令速度ベクトル修正部12dは、更に、速度ポテンシャル重み行列Wa
[i]と進行方向重み行列WΦ
[i]との加重平均を算出する。加重平均を算出する際の重みは、角度分割範囲Ri毎のN個の最短距離ベクトルdmin[i]の長さに応じた、例えば式(7)に示す加重平均距離重みwd
[i]で決まる。
【0080】
【0081】
式(7)の第2項の分母は、シグモイド関数の形をなすが、使用する関数はシグモイド関数に限定されるものではない。
【0082】
図8は、加重平均距離重みw
d
[i]の一例を示すものである。
【0083】
指令速度ベクトル修正部12dは、式(4)の速度ポテンシャル重み行列Wa
[i]と、式(6)の進行方向重み行列Wφ
[i]の2つの重み行列の乗算値を、式(7)の加重平均距離重みwd
[i]で加重平均し、更に、加重平均値に移動速度の絶対値と、後述する減衰重み行列wrとを乗算して、進行方向座標系XH-YH上での回避のための移動速度の修正量を算出する。自律移動体10の速度修正ベクトルΔvは、式(8)に示す速度修正ベクトルΔvh=(Δvhx,Δvhy)Tとして算出される。
【0084】
【0085】
式(8)におけるwr=(wrx,wry)Tは、指令速度ベクトル修正の減衰重み行列である。この減衰重み行列wrは、回避対象の障害物に対して、接近と反発とを繰り返すような振動的挙動を抑制する役割を果たし、式(9)のベクトルで与えられる。
【0086】
【0087】
式(9)におけるd’は、N個の最短距離ベクトルdmin[i]の中の最小(最短)ノルムの値であり、式(10)で与えられる。
【0088】
【0089】
また、式(9)における関数g(d)は、距離dを入力変数とする、例えばシグモイド関数の上下を逆転させた関数であり、式(11)で与えられる。関数内の設定定数は、式(5)と同一である。
【0090】
【0091】
式(8)で示した回避のための速度修正ベクトルΔvhは、進行方向座標系上のベクトルであるため、このベクトルを指令速度ベクトルvに加算するためには、指令速度ベクトルvと同じ座標系に変換する必要がある。ここでは指令速度ベクトルvが絶対座標系XW-YWで与えられるものとして、式(12)によって、速度修正ベクトルΔvhを、絶対座標系XW-YWの速度修正ベクトルΔvW=(ΔvWx,ΔvWy)Tに変換する。
【0092】
【0093】
そして、最終的に、この速度修正ベクトルΔvWを指令速度ベクトルvに加算することによって、指令速度ベクトルvを式(13)のように修正し、修正後指令速度ベクトルv’を得る。
【0094】
【0095】
(走行制御装置が行う処理の流れ)
図9を用いて、自律移動体10の走行制御部12が行う処理の流れを説明する。
図9は、本実施形態の自律移動体の走行制御部が行う処理の流れの一例を示すフローチャートである。
【0096】
距離計測部11は、自律移動体10と、当該自律移動体10が移動する平面における周囲との距離dを計測する。(ステップS11)。
【0097】
距離計測点算出部12aは、自律移動体10の任意の点を中心とした、平面を一定角度θ毎に分割した角度分割範囲Ri(i=1,2,…,N)毎に、距離dが最短となる距離計測点PRiの座標を決定する(ステップS12)。
【0098】
最短距離ベクトル算出部12bは、角度分割範囲Ri毎に、距離計測点算出部12aが算出した距離計測点Pの座標にそれぞれ対応する、当該座標と自律移動体10との最近傍点Qを始点として、距離計測点Pの座標を終点とする最短距離ベクトルdmin[i]を決定する(ステップS13)。
【0099】
最短距離ベクトル更新部12cは、ステップS13で決定した最短距離ベクトルdmin[i]を所定時間記憶する(ステップS14)。
【0100】
自律移動体10の走行制御部12は、ステップS12からステップS14の処理を、全ての角度分割範囲Ri(i=1,2,…,N)に対して繰り返し行う(ステップS15)。
【0101】
続いて、最短距離ベクトル更新部12cは、各角度分割範囲Riについて、最も短い最短距離ベクトルdmin[i]を決定する(ステップS16)。
【0102】
指令速度ベクトル修正部12dは、最短距離ベクトルdmin[i]から算出される、自律移動体10の速度修正ベクトルΔvに基づいて、指令速度ベクトル決定部12eが決定した指令速度ベクトルvを修正する(ステップS17)。なお、速度修正ベクトルΔvの算出方法は前述した通りである。
【0103】
速度指令部12fは、指令速度ベクトル修正部12dによって修正された修正後指令速度ベクトルv’(=v+Δv)を、全方位走行機構駆動部13に対して指示することによって、自律移動体10を駆動させる(ステップS18)。
【0104】
以降、自律移動体10の走行制御部12は、ステップS11からステップS18の処理を繰り返し実行する。
【0105】
(その他の実施形態)
自律移動体10の走行制御部12は、設置高さが異なる、複数の距離計測部11で計測された距離計測点Piについても、角度分割数Nを増やせば、前述した説明と同じように扱うことができる。
【0106】
即ち、距離計測部11から出力される距離計測点Piが増えた場合には、最短距離ベクトル更新部12cが備える記憶領域を追加することによって、前述したのと同様に、指令速度ベクトルvの速度修正ベクトルΔvを求めることができる。
【0107】
また、前述の説明では、式(13)のように、指令速度ベクトルvを修正する形式に基づく衝突回避の処理手順を示したが、式(14)のように、目標位置pにオフセット値Δpを加算することによって、衝突回避を行ってもよい。
【0108】
【0109】
式(14)におけるΔvWは、式(12)で与えられる絶対座標系XW-YWにおける速度修正ベクトルである。また、式(14)におけるΔtは、衝突回避処理の計算周期に相当する値をとる積分ゲインである。
【0110】
(実施形態の作用効果)
以上説明したように、実施形態の自律移動体10の走行制御部12(走行制御装置)は、自律移動体10と、当該自律移動体10が移動する平面における周囲との距離dを計測する距離計測部11が計測した、距離dに対応する距離計測点Pに対して、自律移動体10の任意の点を中心とした、平面を一定角度毎に分割した角度分割範囲Riにおける、距離dが最短となる距離計測点Piの座標を出力する距離計測点算出部12aと、角度分割範囲Ri毎に、距離計測点算出部12aが算出した距離計測点Piの座標にそれぞれ対応する、当該座標と自律移動体10との最近傍点Qiを始点として、距離計測点Piの座標を終点とする最短距離ベクトルdmin[i]を算出する最短距離ベクトル算出部12bと、最短距離ベクトルdmin[i]から算出される、自律移動体10の速度修正ベクトルΔvに基づいて、自律移動体10に対する指令速度ベクトルvを修正する指令速度ベクトル修正部12dと、修正された指令速度ベクトル(修正後指令速度ベクトルv’)を、自律移動体10を任意の方向に移動可能な全方位走行機構駆動部13に対して指示する速度指令部12fと、を備える。したがって、任意の方向から接近する障害物との接触を避けることができる。
【0111】
即ち、本実施形態の自律移動体10の走行制御部12(走行制御装置)によると、例えば、進行方向に対して、自律移動体10の右側側面に接近する人を、すぐさまその反対側の左側側面方向に動いて避けるといった動作を行わせることも可能となる。また、減速や停止だけでなく、当初の目標移動方向から外れたり、任意の方向から接近してくる障害物の接近方向と逆側に即時に移動したりするなどして、障害物との衝突を避けることができる。
【0112】
また、実施形態の自律移動体10の走行制御部12(走行制御装置)は、最短距離ベクトル算出部12bが算出した、角度分割範囲Ri毎の最短距離ベクトルdmin[i]を所定時間分保持して、計算周期毎に、保持された最短距離ベクトルdmin[i]の中から、距離が最も短い最短距離ベクトルを出力する最短距離ベクトル更新部12cを、更に備える。したがって、少ない計算量で、即座、即ち、距離計測部11の計測周期以内に、障害物を回避する方向を算出することができる。特に、走行制御部12は、角度分割範囲Ri毎に、距離計測点Piと、当該距離計測点Piと自律移動体10の車体上の最近傍点Qとの距離に基づいて回避計算を行うため、自律移動体10の周囲に存在する障害物の形状の複雑さによらずに、短時間で回避計算を行うことができる。
【0113】
即ち、本実施形態の自律移動体10の走行制御部12(走行制御装置)によると、自律移動体10の移動に伴う周囲との距離変化に対して、短時間で対応できるため、障害物を回避する行動を、短い時間内、具体的には、距離計測部11の計測周期以内(例えば1msec以下)に反射的に実行することができる。特に、本実施形態の自律移動体10の走行制御部12によると、数点程度の少数の距離計測点Piに対して衝突回避処理を実行するため、処理の計算量が少ない。したがって、ハードウェアにおいては、距離データ処理専用のデータ処理装置やCPUを要さず、自律移動体10の走行制御と同じ制御装置上で、衝突回避処理を実行することができる。同様に、ソフトウェアにおいては、衝突回避処理専用のプロセスやスレッドを要さず、自律移動体10の走行制御と同じ制御周期内に、衝突回避処理を実行することができる。
【0114】
また、少数の距離計測点Piに対して、短時間で反射的に回避計算しているにも関わらず、その計算は、3次元カメラやLIDARなどの距離計測部11の計測周期内で完了して、必ず毎周期実行され、なおかつ、角度分割範囲Riにおける距離計測点Piに対して実行されるため、一定の経過時間でみると、開くドアのような動く障害物にも対応できる。一方で、距離計測点Piの分解能を細かくした場合であっても、計算時間は長くなるが、回避計算を確実に実行することができる。
【0115】
また、本実施形態の自律移動体10の走行制御部12(走行制御装置)によると、自律移動体10の周囲の観測データとして必要とするのは、例えば45°というような粗い角度分割範囲Ri毎の、当該範囲における最短距離計測点の座標のみである。しかし、この場合、最短距離ベクトル算出部12bが座標を出力する最短距離計測点は、毎計算周期において常に周囲環境中の同じ場所に位置することはなく、距離計測値に含まれるノイズのほか自律移動体10の姿勢角の変化などによって、あちこちに位置し得る。したがって、その最短距離計測点と自律移動体10の車体との間の最短距離も変化し得る。このように変化する最短距離値にしたがい衝突回避の処理を実行すると、自律移動体10の移動速度に、望ましくない不連続や振動が生じてしまう。しかし、本開示においては、角度分割範囲Ri毎に算出される車体上の最近傍点Qiから距離計測点Piに向かう最短距離ベクトルdmin[i]は、最短距離ベクトル更新部12cに所定時間保持される。そのうえ、最短距離ベクトル更新部12cからは、最新の計算周期において格納されたものも含め、各計算周期において常に保持されている最短距離ベクトルdmin[i]のうち、距離値、即ちベクトルのノルムまたは長さが最も小さいベクトルが、毎計算周期出力される。このため、衝突回避処理に用いる最短距離ベクトルdmin[i]の距離値が短い周期で変動することを避けられるうえ、更に、開くドアのような移動する障害物に対しても、衝突回避計算を即応させることができる。
【0116】
また、実施形態の自律移動体10の走行制御部12(走行制御装置)において、指令速度ベクトル修正部12dは、最短距離ベクトル更新部12cが、角度分割範囲Ri毎に出力する最短距離ベクトルdmin[i]の、それぞれ距離と進行方向に対する角度で定まる2つの係数を加重平均した速度修正ベクトルΔvを、指令速度ベクトルvに加算することによって修正する。したがって、衝突回避処理の計算を、指令速度ベクトルvに速度修正ベクトルΔvを加算するのみという簡便な方法で行うことができる。そのため、衝突回避処理は、自律移動体10の車体の前後方向や左右方向に限定されることなく、進行方向がどの方向であっても同じように適用させることができる。また、減速や停止だけでなく、当初の目標移動方向から外れたり、接近してくる障害物の接近方向と逆側に移動したりするなどして、障害物との衝突を避ける場合にも適用することができる。
【0117】
また、実施形態の自律移動体10の走行制御部12(走行制御装置)において、指令速度ベクトル修正部12dが加重平均を算出する際の重みは、上下をクリッピングされて、単調に変化する連続関数で記述される。したがって、自律移動体10の移動速度の不連続の発生や、それに伴う車体の振動の発生を低減することができる。
【0118】
即ち、実施形態の自律移動体10の走行制御部12(走行制御装置)によると、ある障害物に対して回避が必要と判断された瞬間に、自律移動体10の移動速度に不連続が生じるのを抑制することができるとともに、乗員や搬送物に与える振動や衝撃を低減することができる。
【0119】
また、実施形態の自律移動体10の走行制御部12(走行制御装置)において、加重平均を算出する際の重みは、シグモイド関数で記述される。したがって、自律移動体10の移動速度の不連続の発生や、それに伴う車体の振動の発生を低減することができる。
【0120】
また、実施形態の自律移動体10の走行制御部12(走行制御装置)において、指令速度ベクトル修正部12dは、最短距離ベクトル更新部12cが、角度分割範囲Ri毎に出力する最短距離ベクトルdmin[i]の、それぞれ距離と進行方向に対する角度で定まる2つの係数の加重平均値に、更に、回避対象の障害物に対して、接近と反発とを繰り返す振動的挙動を抑制する重み(減衰重み行列wr)を乗算して速度修正ベクトルΔvを算出する。したがって、自律移動体10が移動する際に、移動速度の不連続や不自然な振動等の発生を、より一層低減することができる。
【0121】
また、実施形態の自律移動体10は、走行制御部12(走行制御装置)と、自律移動体10を任意の方向に移動可能な全方位走行機構駆動部13(全方位走行機構)と、を備える。したがって、任意の方向から接近する障害物との接触を避けることができる。
【0122】
以上、本発明の実施形態について説明したが、上述した実施形態は、例として提示したものであり、本発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能である。また、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。また、この実施形態は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0123】
10 自律移動体
11 距離計測部
12 走行制御部(走行制御装置)
12a 距離計測点算出部
12b 最短距離ベクトル算出部
12c 最短距離ベクトル更新部
12d 指令速度ベクトル修正部
12e 指令速度ベクトル決定部
12f 速度指令部
13 全方位走行機構駆動部
d 距離
dmin[i] 最短距離ベクトル
f 速度ポテンシャル
P,Pi 距離計測点
Q 最近傍点
Ri 角度分割範囲
v 指令速度ベクトル
v’ 修正後指令速度ベクトル
Wa
[i] 速度ポテンシャル重み行列
Wφ
[i] 進行方向重み行列
wd
[i] 加重平均距離重み
wr 減衰重み行列
XB-YB 移動体座標系
XH-YH 進行方向座標系
XW-YW 絶対座標系
Δv,Δvh,ΔvW 速度修正ベクトル
θH 進行方向角度
θV 姿勢角度
Δθ 角度差分値