(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-10
(45)【発行日】2025-03-18
(54)【発明の名称】制御システム、情報処理装置、制御方法、及び制御値生成方法
(51)【国際特許分類】
G05D 1/65 20240101AFI20250311BHJP
G05D 1/622 20240101ALI20250311BHJP
G05D 1/43 20240101ALI20250311BHJP
G05D 1/225 20240101ALI20250311BHJP
G05D 1/49 20240101ALI20250311BHJP
【FI】
G05D1/65
G05D1/622
G05D1/43
G05D1/225
G05D1/49
(21)【出願番号】P 2023546707
(86)(22)【出願日】2021-09-13
(86)【国際出願番号】 JP2021033502
(87)【国際公開番号】W WO2023037539
(87)【国際公開日】2023-03-16
【審査請求日】2024-02-22
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】安田 真也
【審査官】田中 成彦
(56)【参考文献】
【文献】米国特許出願公開第2021/0114617(US,A1)
【文献】特表2021-519720(JP,A)
【文献】特開2020-163971(JP,A)
【文献】特開2020-139773(JP,A)
【文献】特開2020-066428(JP,A)
【文献】特表2019-512824(JP,A)
【文献】特開2019-202663(JP,A)
【文献】特開2017-211193(JP,A)
【文献】特開2011-186878(JP,A)
【文献】国際公開第2018/235159(WO,A1)
【文献】米国特許出願公開第2019/0346851(US,A1)
【文献】中国特許出願公開第112965476(CN,A)
【文献】特開平03-029010(JP,A)
【文献】国際公開第2013/002067(WO,A1)
【文献】特開2021-009466(JP,A)
【文献】特開2019-175128(JP,A)
【文献】特開2019-021202(JP,A)
【文献】特開2019-021199(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00 - 1/87
(57)【特許請求の範囲】
【請求項1】
移動体の走行経路上に位置する障害物の検出に応じて前記移動体が前記走行経路から離れる方向への補正量を特定する経路補正手段と、
前記補正量と、前記移動体の位置と、に基づいて前記移動体の角速度を特定する角速度特定手段と、
特定された前記移動体の角速度と、前記移動体の移動速度の変化を示す予め定められた速度時系列とに応じて、前記移動体の動作を制御する制御手段と、を備え、
前記経路補正手段は、
前記速度時系列の複数の候補のうちの一つの候補と、前記補正量の複数の候補のうちの一つの候補とを組み合わせた複数のペア
のそれぞれにおいて、前記移動体の移動に対する確率的な影響を示す乱数を用いてコスト値を算出するためのシミュレーションを所定の回数実行し、算出されたコスト値に基づいて、前記複数のペアの中から一つのペアを選択する、
制御システム。
【請求項2】
前記移動体の移動に対する確率的な影響を示す乱数は、前記移動体が蛇行する確率的な影響を示す乱数である、請求項1に記載の制御システム。
【請求項3】
前記角速度特定手段は、
前記補正量と、前記移動体の位置及び姿勢とに基づいて前記移動体の角速度を特定する、請求項1又は2に記載の制御システム。
【請求項4】
前記経路補正手段は、
第1の時刻において選択された前記ペアの補正量に基づいて、第2の時刻における前記ペアの補正量を調整する、請求項1
又は2に記載の制御システム。
【請求項5】
移動体の走行経路上に位置する障害物の検出に応じて前記移動体が前記走行経路から離れる方向への補正量を特定する経路補正手段と、
前記補正量と、前記移動体の位置と、に基づいて前記移動体の角速度を特定する角速度特定手段と、
特定された前記移動体の角速度と、前記移動体の移動速度の変化を示す予め定められた速度時系列とを前記移動体へ送信する通信手段と、を備え
前記経路補正手段は、
前記速度時系列の複数の候補のうちの一つの候補と、前記補正量の複数の候補のうちの一つの候補とを組み合わせた複数のペア
のそれぞれにおいて、前記移動体の移動に対する確率的な影響を示す乱数を用いてコスト値を算出するためのシミュレーションを所定の回数実行し、算出されたコスト値に基づいて、前記複数のペアの中から一つのペアを選択する、
情報処理装置。
【請求項6】
移動体の移動速度の変化を示す予め定められた速度時系列の複数の候補のうちの一つの候補と、前記移動体の走行経路上に位置する障害物の検出に応じて前記移動体が前記走行経路から離れる方向への補正量の複数の候補のうちの一つの候補とを組み合わせた複数のペア
のそれぞれにおいて、前記移動体の移動に対する確率的な影響を示す乱数を用いてコスト値を算出するためのシミュレーションを所定の回数実行し、算出されたコスト値に基づいて、前記複数のペアの中から一つのペアを選択し、
前記補正量と、前記移動体の位置と、に基づいて前記移動体の角速度を特定し、
特定された前記移動体の角速度と、前記移動体の移動速度の変化を示す予め定められた速度時系列とに応じて、前記移動体の動作を制御する、制御方法。
【請求項7】
移動体の移動速度の変化を示す予め定められた速度時系列の複数の候補のうちの一つの候補と、前記移動体の走行経路上に位置する障害物の検出に応じて前記移動体が前記走行経路から離れる方向への補正量の複数の候補のうちの一つの候補とを組み合わせた複数のペア
のそれぞれにおいて、前記移動体の移動に対する確率的な影響を示す乱数を用いてコスト値を算出するためのシミュレーションを所定の回数実行し、算出されたコスト値に基づいて、前記複数のペアの中から一つのペアを選択し、
前記補正量と、前記移動体の位置と、に基づいて前記移動体の角速度を特定し、
特定された前記移動体の角速度と、前記移動体の移動速度の変化を示す予め定められた速度時系列とを前記移動体へ送信する、制御値生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は制御システム、情報処理装置、制御方法、及び制御値生成方法に関する。
【背景技術】
【0002】
走行するロボットの進行方向に障害物があった場合に、ロボットが障害物を回避する技術について、研究が進められている。
【0003】
特許文献1には、自律移動ロボットが目的地へ移動するための経路を計算し、障害物が存在する場合には障害物を回避するための回避経路を算出する方法が記載されている。また、自律移動ロボットは、複数の経路候補のそれぞれを移動する場合のシミュレーションを行い、例えば、それぞれの経路候補を移動する場合の速度履歴、加速度履歴等を算出する。自律移動ロボットは、算出した速度履歴等に基づいて移動経路を選択する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1においては、自律移動ロボットが、複数の経路候補を定め、その後、それぞれの経路候補を移動するための速度、加速度等を算出し、それぞれの経路候補の評価を行う必要がある。この場合、自律移動ロボットが移動を開始する際に、それぞれの経路候補を移動するための適切な速度、加速度等を算出するための計算処理に負荷がかかるという問題がある。
【0006】
本開示の目的の一つは、移動体の移動を制御するための計算負荷の上昇を抑えることができる制御システム、情報処理装置、制御方法、及び制御値生成方法を提供することにある。
【課題を解決するための手段】
【0007】
本開示の第1の態様にかかる制御システムは、移動体の走行経路上に位置する障害物の検出に応じて前記移動体が前記走行経路から離れる方向への補正量を特定する経路補正手段と、前記補正量と、前記移動体の位置と、に基づいて前記移動体の角速度を特定する角速度特定手段と、特定された前記移動体の角速度と、前記移動体の移動速度とに応じて、前記移動体の動作を制御する制御手段と、を備える。
【0008】
本開示の第2の態様にかかる情報処理装置は、移動体の走行経路上に位置する障害物の検出に応じて前記移動体が前記走行経路から離れる方向への補正量を特定する経路補正手段と、前記補正量と、前記移動体の位置と、に基づいて前記移動体の角速度を特定する角速度特定手段と、特定された前記移動体の角速度と、前記移動体の移動速度とを前記移動体へ送信する通信手段と、を備える。
【0009】
本開示の第3の態様にかかる制御方法は、移動体の走行経路上に位置する障害物の検出に応じて前記移動体が前記走行経路から離れる方向への補正量を特定し、前記補正量と、前記移動体の位置と、に基づいて前記移動体の角速度を特定し、特定された前記移動体の角速度と、前記移動体の移動速度とに応じて、前記移動体の動作を制御する。
【0010】
本開示の第4の態様にかかる制御値生成方法は、移動体の走行経路上に位置する障害物の検出に応じて前記移動体が前記走行経路から離れる方向への補正量を特定し、前記補正量と、前記移動体の位置と、に基づいて前記移動体の角速度を特定し、特定された前記移動体の角速度と、前記移動体の移動速度とを前記移動体へ送信する。
【発明の効果】
【0011】
本開示により、移動体の移動を制御するための計算負荷の上昇を抑えることができる制御システム、情報処理装置、制御方法、及び制御値生成方法を提供することができる。
【図面の簡単な説明】
【0012】
【
図1】実施の形態1にかかる制御システムの構成図である。
【
図2】実施の形態1にかかる制御システムにおいて実行される制御処理の流れを示す図である。
【
図3】実施の形態2にかかる情報処理装置の構成図である。
【
図4】実施の形態2にかかる速度時系列を説明する図である。
【
図5】実施の形態2にかかる目標地点を説明する図である。
【
図6】実施の形態2にかかる目標値格納部に格納されるデータを示す図である。
【
図7】実施の形態2にかかる速度時系列を説明する図である。
【
図8】実施の形態2にかかる移動体の構成図である。
【
図9】実施の形態2にかかる制御入力値の生成処理の流れを示す図である。
【
図10】実施の形態3にかかる情報処理装置の構成図である。
【
図11】実施の形態3にかかる移動体の走行エリアを示す図である。
【
図12】実施の形態2にかかる移動体の走行エリアを示す図である。
【
図13】実施の形態4にかかる情報処理装置の構成図である。
【
図14】実施の形態4にかかる移動体の走行エリアを示す図である。
【
図15】それぞれの実施の形態にかかる情報処理装置の構成図である。
【発明を実施するための形態】
【0013】
(実施の形態1)
以下、図面を参照して本開示の実施の形態について説明する。
図1を用いて実施の形態1にかかる制御システム10の構成例について説明する。
図1の制御システム10は、経路補正部11、角速度特定部12、及び制御部13を有している。経路補正部11、角速度特定部12、及び制御部13は、同一の装置に配置されてもよく、それぞれが異なる装置に配置されてもよい。もしくは、経路補正部11、角速度特定部12、及び制御部13のうち、二つが同一の装置に配置され、残りの一つが他の装置に配置されてもよい。
【0014】
経路補正部11、角速度特定部12、及び制御部13は、プロセッサがメモリに格納されたプログラムを実行することによって処理が実行されるソフトウェアもしくはモジュールであってもよい。または、経路補正部11、角速度特定部12、及び制御部13は、回路もしくはチップ等のハードウェアであってもよい。
【0015】
経路補正部11は、移動体の走行経路上に位置する障害物の検出に応じて移動体が走行経路から離れる方向への補正量を特定する。
【0016】
移動体は、自律的に移動するロボットであってもよく、例えば、搬送物を搬送する搬送ロボット(AGV(Automated Guided Vehicle))であってもよい。移動体は、例えば、入力された制御値に基づいて障害物等を避けるように自律的に走行する。移動体は、例えば、車のような四輪を有しステアリング方式にて移動してもよく、差動二輪を用いて移動してもよい。差動二輪は、左右の車輪の速度を独立に制御することによって、それぞれの車輪の速度差によってカーブを走行することが可能となる。
【0017】
走行経路は、例えば、移動体の現在位置と、移動体が到達すべき到達地点とを最短距離にて結ぶ経路であってもよく、予め定められた経路算出方法において、障害物を考慮しない妥当な経路として算出された経路であってもよい。
【0018】
障害物は、柱、壁、棚等の静止している物体であってもよく、人間、他のロボット等の移動する物体であってもよい。
【0019】
補正量は、所定期間後に、予め定められた移動速度にて移動する移動体が存在する位置と、障害物が存在しない場合の走行経路との距離の差分であってもよい。
【0020】
角速度特定部12は、経路補正部11において特定された補正量と、移動体の位置と、に基づいて移動体の角速度を特定する。移動体の位置は、例えば、GPS(Global Positioning System)等の位置測位システムを用いて特定されてもよく、移動体をネットワーク等を介して監視する監視システムから通知されてもよい。
【0021】
角速度特定部12は、例えば、現在の位置からの補正量が大きくなるにつれて角速度を大きくしてもよく、現在位置からの補正量が小さくなるにつれて角速度を小さくしてもよい。
【0022】
制御部13は、角速度特定部12において特定された角速度と、移動体の移動速度とに応じて、移動体の動作を制御する。制御部13は、例えば、移動体が角速度特定部12において特定された角速度と、予め定められた移動速度と、に従って移動するように、移動体の駆動部を制御する。駆動部には、例えば、タイヤ、車輪等が含まれてもよい。また、制御部13は、移動体の姿勢に関する情報を用いて、移動体が傾かないように制御してもよい。また、制御部13は、移動体が、搬送する搬送物を離さないもしくは落下させないように、移動体が搬送物を押す角度に関する情報を用いて移動体を制御してもよい。また、移動体が他の移動体と協調して搬送物を搬送する場合、制御部13は、移動体と他の移動体との間の距離に関する情報を用いて移動体の制御を行ってもよい。
【0023】
続いて、
図2を用いて実施の形態1にかかる制御システム10において実行される制御処理の流れについて説明する。はじめに、経路補正部11は、移動体の走行経路上に位置する障害物の検出に応じて移動体が走行経路から離れる方向への補正量を特定する(S11)。次に、角速度特定部12は、経路補正部11において特定された補正量と、移動体の位置と、に基づいて移動体の角速度を特定する(S12)。次に、制御部13は、角速度特定部12において特定された角速度と、移動速度とに応じて、移動体の動作を制御する(S13)。
【0024】
ここで、例えば、経路補正部11及び角速度特定部12が同一の装置に配置されており、制御部13が移動体に配置されているとする。この場合、経路補正部11及び角速度特定部12が配置されている装置の制御部等が、制御部13が配置されている移動体へ、特定した角速度及び移動速度に関する情報を送信してもよい。移動体は、受信した角速度及び移動速度を用いて、移動体の動作を制御してもよい。
【0025】
以上説明したように、制御システム10は、移動体の補正量と、移動体の位置と、に基づいて移動体の角速度を特定することによって、角速度を算出する。つまり、制御システム10は、現在設定すべき角速度を算出する。これより、制御システム10は、移動体が現在の位置から補正量に従って定められた位置まで移動するために、刻々と変化する角速度を全て算出する場合と比較して、角速度の算出に関する計算負荷を抑えることができる。また、制御システム10は、走行経路から離れる方向への補正量を用いて角速度を算出することによって、移動体の詳細な位置を用いて角速度を算出する場合と比較して、計算負荷を抑えることができる。
【0026】
(実施の形態2)
続いて、
図3を用いて実施の形態2にかかる情報処理装置20の構成例について説明する。情報処理装置20は、プロセッサがメモリに格納されたプログラムを実行することによって動作するコンピュータ装置であってもよい。情報処理装置20は、後に説明する移動体30が自律的に走行するために必要な制御値を生成する。
【0027】
情報処理装置20は、評価部21、角速度特定部22、シミュレーション実行部23、通信部24、速度候補格納部25、目標値候補格納部26、コスト値格納部27、及び障害物判定部28を有している。情報処理装置20の各構成要素は、プロセッサがメモリに格納されたプログラムを実行することによって処理が実行されるソフトウェアもしくはモジュールであってもよい。または、情報処理装置20の各構成要素は、回路もしくはチップ等のハードウェアであってもよい。速度候補格納部25、目標値候補格納部26、及びコスト値格納部27は、例えば、データを格納するメモリであってもよく、それぞれが異なるメモリ領域を有してもよい。評価部21は、
図1の経路補正部11に相当する。角速度特定部22は、
図1の角速度特定部12に相当する。
【0028】
速度候補格納部25は、移動体30に適用される速度候補に関する情報を格納する。速度候補は、例えば、所定期間内における速度の変化を示す速度時系列であってもよい。
図4を用いて、速度候補格納部25に格納される速度候補について説明する。
図4は、縦軸が速度v、横軸が時刻tを示している。
図4は、時刻t
0からt
hまでの期間内の速度の変化を示している。言い換えると、
図4は、時刻t
0からhステップ先までの速度時系列を示している。
図4のt
1乃至t
h-1は、時刻t
0から時刻t
hまでの時間を均等に分割した時刻を示している。
図4は、速度候補として、3つの速度時系列を示しているが、速度候補格納部25には、n(nは1以上の整数)種もしくはnパターンの速度時系列が格納されていてもよい。
【0029】
図3に戻り、目標値候補格納部26は、所定期間経過後に移動体30が存在する目標位置を示す情報が格納されている。ここで、
図5を用いて、移動体30が存在する目標位置について説明する。
図5は、移動体30の走行エリアを、上方から視認した図を示している。R1は、移動体30の走行経路を示している。また、移動体30の到達地点は、走行経路R1上に存在する。また、走行経路上に、障害物40が存在するとする。つまり、移動体30は、走行経路上を移動し続けた場合、障害物40に衝突する。a_1乃至a_6は、走行経路R1からの距離を示している。より具体的には、a_1乃至a_6は、走行経路R1をX軸とし、X軸と垂直方向の軸をY軸とした場合のY軸方向の距離を示している。a_1乃至a_6は、補正量に相当する。
【0030】
実線の移動体30は、現在の移動体30を示しており、点線の移動体30は、所定期間後の移動体30の推定位置を示している。所定期間は、例えば、t
0からt
hまでの期間であってもよい。
図5は、所定期間後に移動体30が存在する位置の候補を示している。具体的には、移動体30が存在する位置の候補として、走行経路R1からa_1乃至a_6離れた位置、及び走行経路R1上の位置が示されている。
図5においては、移動体30が所定期間後に、a_3乃至a_6、さらに、走行経路R1上、に存在する場合、移動体30と障害物40とが重複し、移動体30と障害物40とが衝突することが示されている。
【0031】
目標値候補格納部26は、
図6に示されるように、a_1乃至a_6を含む、a_1乃至a_mを格納している。
図6のoffset_1乃至offset_mは、距離a_1乃至a_6を識別する情報である。例えば、offset_1が指定された場合、a_1の値が抽出される。つまり、a_1乃至a_6は、所定期間後における移動体30のy軸方向の目標地点の候補となる値を示している。
【0032】
障害物判定部28は、移動体30の周辺に障害物が存在するか否かを判定する。障害物判定部28は、例えば、移動体30に搭載されたセンサから、移動体30の周辺における障害物の検出情報を受信してもよい。もしくは、センサは、移動体30の走行エリアを監視するように、壁、天井等に設置されてもよい。センサは、所定の空間において障害物とみなされる物体もしくは人を検知する。検出情報には、障害物が存在する位置に関する情報が含まれてもよい。障害物判定部28は、移動体30に搭載されたセンサから障害物の検出情報を受信した場合、移動体30の周辺に障害物が存在すると判定する。また、障害物判定部28は、障害物の検出情報を用いて、障害物が存在する位置を特定する。障害物判定部28は、無線通信回線もしくは有線通信回線を介して、センサから検出情報を受信してもよい。障害物判定部28は、例えば、無線LAN(Local Area Network)を介して検出情報を受信してもよい。
【0033】
障害物は、例えば、所定の空間内に配置される装置、設備、棚、柱等であってもよい。また、障害物は、移動する物体であってもよく、移動しない物体であってもよい。センサは、例えば、カメラもしくは赤外線センサであってもよい。カメラは、2Dカメラもしくは3Dカメラであってもよい。センサは、2DLidarもしくは3DLidarであってもよい。カメラまたはセンサは、所定の空間内を観測するために、複数個所に取り付けられていてもよい。
【0034】
障害物判定部28は、例えば、センサから受信した画像を用いた機械学習等を行うことによって、障害物を検出してもよい。例えば、事前に障害物に関する画像等を学習した学習モデルが生成されている場合、障害物判定部28は、受信した画像を学習モデルに適用することによって、移動体30の周辺に障害物が存在するか否かを判定してもよい。
【0035】
図3に戻り、シミュレーション実行部23は、次の式(1)に、N(Nは1以上の整数)パターンの速度時系列及びM(Mは1以上の整数)個の目標値を適用したシミュレーションを実行しコストSを算出する。コストSは、シミュレーション結果の適切性を示す値である。シミュレーション実行部23は、N×Mパターンの速度時系列及び目標値のペアを用いてそれぞれのペアごとにコストSを算出する。コストSの値が小さいほど、適切な速度時系列及び目標値のペアが用いられていることとする。式(1)のコストSrにおけるrは、速度時系列及び目標値のペアを識別する値を示しており、例えば、rは、1以上であって、N×M以下であってもよい。
【0036】
【0037】
i=0乃至i=hは、
図4に示す時刻を示しており、例えば、i=1は、時刻t
1を示している。v
i
kは、Nパターンの速度時系列のうち、識別情報k(kは1以上N以下の整数)にて識別される速度時系列の時刻t
iにおける速度を示している。v
maxは、移動体30の最大速度を示している。x
i及びy
iは、時刻t
iにおける移動体30の位置を示している。移動体30の走行経路R1の位置をx座標とし、y座標の値は、走行経路R1からの距離を用いて示される。y
targetは、移動体30の走行経路R1のy座標である。例えば、走行経路R1がx軸である場合、y
targetは、0となる。
【0038】
式(1)の第1項は、時刻tiにおける速度が速くなるほど、小さな値となる。式(1)の第2項は、時刻tiにおけるy座標の位置が、走行経路R1に近いほど、小さな値となる。式(1)の第3項におけるobst(xi,yi)は、(xi,yi)が障害物40に衝突する位置である場合、値が1となり、障害物40に衝突しない位置である場合、値が0となる関数を示している。シミュレーション実行部23は、(xi,yi)が、障害物判定部28において特定された障害物の位置と重複する場合に衝突するとしてobst(xi,yi)の値を1に設定してもよい。
【0039】
Aは、第1項の係数であり、Bは、第2項の係数であり、Cは第3項の係数であり、それぞれ重み係数と称されてもよい。例えば、コストSの算出において、第3項の影響を高める必要がある場合、Cを、A及びBと比較して大きい値にしてもよい。例えば、Cを、A及びBと比較して大きい値とすることによって、所定期間後までに障害物と衝突する可能性のある速度時系列及び目標値のペアに関するコストの値を高くすることができる。
【0040】
ここで、式(1)の、時刻tiにおけるxi及びyiの算出方法について説明する。移動体30は、二次元平面内を移動し、その動きは速度v及び角速度wを用いて記述される。移動体30の位置座標を(x,y)、向きもしくは角度をθとすると、速度vと角速度wとで動く移動体30の動きは、以下の微分方程式(2)を用いて記述される。
【0041】
dx/dt=v×cos(θ)
dy/dt=v×sin(θ)
dθ/dt=w
・・・(2)
【0042】
つまり、現在時刻であるt0における移動体30の位置(x0,y0)、向きθ0、速度v0及び角速度w0がわかれば、微分方程式(2)を用いて、次の時刻t1の移動体30の位置(x1,y1)、及び向きθ1を計算もしくは推定することができる。現在時刻t0における移動体30の位置(x0,y0)、向きθ0は、例えば、シミュレーション実行部23が、移動体30から受信してもよい。移動体30は、ステアリングの回転情報、左右の車輪の回転情報等に基づいて、走行経路に対する現在の向きを示す角度θ0を特定してもよい。また移動体30は、GPS(Global Positioning System)等のセンサを用いて位置情報を生成してもよく、ステアリングの回転情報、左右の車輪の回転情報等に基づいて移動体30の位置情報を生成してもよい。
【0043】
さらに、算出された移動体30の位置(x1,y1)及び向きθ1、さらに、角速度w1、速度時系列に定められている速度v1を微分方程式(2)に適用して、次の時刻t2の移動体30の位置(x2,y2)及び向きθ2を計算もしくは推定することができる。これを繰り返すことによって、時刻tiにおける移動体30の位置(xi,yi)及び向きθiを計算もしくは推定することができる。
【0044】
ここで、角速度w
i-1の算出例について説明する。現在、例えば、時刻t
i-1のy座標がy
i-1であり、目標値をoffset_aとし、時刻t
i-1の角度をθ
i-1とする。offset_aは、目標値候補格納部26に格納されているoffset_1乃至nのいずれかであるとする。また、角度θ
i-1は、走行経路を基準とする、移動体30の正面方向が向いている角度である。例えば、
図5において、走行経路R1の方向を0度とし、目標値a_1乃至a_3の方向をプラスの角度とし、目標値a_4乃至a_6の方向をマイナスの角度としてもよい。時刻t
0を現在時刻とすると、時刻t
0の角度θ
0は、現在の移動体30が向いている角度を示す。y座標は、
図5において、走行経路R1を基準として、目標値a_1乃至a_3の方向をプラスの値とし、目標値a_4乃至a_6の方向をマイナスの値としてもよい。角度θもしくは向きとは、移動体30の姿勢と称されてもよい。移動体の姿勢は、基準方向に対する、移動体の正面部が向いている方向であってもよい。基準方向は、例えば、走行経路の進行方向であってもよい。移動体の正面部は、例えば、移動体の進行方向であってもよい。もしくは、移動体の姿勢は、現在位置を基準として、東西南北等の方角を用いて示されてもよい。
【0045】
時刻ti-1のy座標yi-1、目標値offset_a、及び時刻ti-1の角度θi-1を次の式(3)に適用することによって角速度wi-1を算出する。
【0046】
wi-1=-p1×(yi-1-offset_a)-p2×θi-1・・・(3)
【0047】
式(3)におけるp1及びp2は、制御のパラメータであり、所定値とする。式(3)は、移動体30の現在のy座標が、目標値から離れれば離れるほど、さらに、ロボットの向きが目標値の方向から離れれば離れるほど、角速度wの値が大きくなる、比例制御を示している。
【0048】
式(3)を用いて算出されたwi-1を式(2)に適用することによって、角度θiを算出することができる。
【0049】
このようにして、式(1)に適用するyiを算出し、式(1)を用いてコストSを算出する。ここで、式(1)を用いたコストSは、速度時系列及び目標値の全てのペアについて算出される。つまり、速度時系列がNパターンであり、目標値がM個であるため、N×M個のコストSを算出する。N×M個のコストSは、例えば、S1、S2、・・・SN×Mと示されてもよい。
【0050】
シミュレーション実行部23は、算出したコストSをコスト値格納部27へ格納する。コスト値格納部27に、N×MのコストSが格納されると、評価部21は、最小の値であるコストSのペアを採用する。つまり、評価部21は、最小の値であるコストSを算出するために適用された、速度時系列及び目標値を採用する。
【0051】
角速度特定部22は、評価部21において採用された目標値を、式(3)に適用することによって、角速度wを算出する。ここで、角速度特定部22は、offset_aとして、採用された目標値を使用し、現在時刻t0におけるy座標y0、角度θ0を用いて、角速度wを算出する。算出された角速度は、次のタイミング又は次の時刻における移動体30における角速度として用いられる。通信部24は、評価部21において採用された速度時系列、及び角速度特定部22において算出された角速度wに関する情報を移動体30へ送信する。評価部21において採用された速度時系列、及び角速度特定部22において算出された角速度wに関する情報は、移動体30において用いられる制御入力値と称されてもよい。移動体30において制御入力値が用いられる次の時刻とは、現在時刻をt0とした場合、時刻t1であってもよい。つまり、情報処理装置20は、現在時刻t0から時刻t1の間に、時刻t1における移動体30の制御入力値を算出する。
【0052】
さらに、現在時刻が時刻t
1になると、時刻t
1における速度時系列及び角速度wを特定した手順と同様に、次の時刻t
2の速度時系列及び角速度wが特定される。ここで、時刻t
1における速度時系列が特定された場合、速度候補格納部25に格納される速度時系列が更新される。具体的には、
図7に示されるように、特定された速度時系列における時刻t
1の速度を始点とする、複数の速度時系列が設定される。また、時刻t
1が始点であるため、時刻t
1からhステップ後の、時刻t
h+1までの速度時系列が設定される。
【0053】
続いて、
図8を用いて、移動体30の構成例について説明する。移動体30は、通信部31及び移動体制御部32を有している。通信部31及び移動体制御部32は、プロセッサがメモリに格納されたプログラムを実行することによって処理が実行されるソフトウェアもしくはモジュールであってもよい。または、通信部31及び移動体制御部32は、回路もしくはチップ等のハードウェアであってもよい。
【0054】
通信部31は、情報処理装置20の通信部24と、通信する。例えば、通信部31は、通信部24と無線通信回線を介して通信してもよく、有線通信回線を介して通信してもよい。通信部31は、通信部24と、例えば、無線LAN(Local Area Network)、赤外線通信、もしくはBluetooth(登録商標)等の近距離無線通信を行ってもよい。
【0055】
通信部31は、情報処理装置20から、移動体30を動作させるための速度時系列及び角速度に関する情報を受信する。
【0056】
次に、移動体制御部32は、通信部31において受信された速度時系列及び角速度に従って、移動体30の駆動部を制御する。例えば、移動体制御部32は、指定された速度時系列及び角速度にて移動するように、車輪の回転を制御してもよい。また、移動体制御部32は、移動体30の駆動部以外にも、例えば、移動体30の車体が傾かないように、移動体30の姿勢を制御してもよい。さらに、移動体制御部32は、移動体30が、搬送する搬送物を離さないもしくは落下させないように、移動体30が搬送物を押す角度を制御してもよい。もしくは、移動体制御部32は、移動体30が他の移動体と協調して搬送物を搬送する場合、移動体30と他の移動体との間の距離を制御してもよい。移動体制御部32が、各制御を行うために必要な情報は、情報処理装置20から受信してもよく、情報処理装置20とは異なる装置から受信してもよく、もしくは、移動体30内の制御部等によって生成されてもよい。
【0057】
続いて、
図9を用いて実施の形態2にかかる情報処理装置20における、制御入力値の生成処理の流れについて説明する。はじめに、情報処理装置20は、移動体30に関する現在の移動情報を取得する(S21)。現在の移動情報は、例えば、移動体30の速度、角速度、向き、現在位置を含む情報であってもよい。
【0058】
次に、シミュレーション実行部23は、速度候補格納部25に格納されているNパターンの速度時系列及び目標値候補格納部26に格納されているM個の目標値の中から、一つの速度時系列及び一つの目標値のペアを選択する(S22)。
【0059】
次に、シミュレーション実行部23は、式(1)、微分方程式(2)、及び式(3)を用いて、選択したペアに関するコストSを算出する(S23)。次に、シミュレーション実行部23は、速度候補格納部25及び目標値候補格納部26に格納されている全ての速度時系列及び目標値のペアに関するコストSを算出したか否かを判定する(S24)。
【0060】
シミュレーション実行部23は、選択していないペアが存在する場合、ステップS22以降の処理を繰り返す。シミュレーション実行部23において、全てのペアのコストSが算出された場合、評価部21は、最も低いコストSの算出に用いられたペアを選択する(S25)。
【0061】
次に、角速度特定部22は、ステップS25において選択されたペアに含まれる目標値を式(3)に適用することによって、角速度wを算出する(S26)。
【0062】
次に、通信部24は、制御入力値として、速度時系列及び角速度wを移動体30へ送信する(S27)。
【0063】
以上説明したように、実施の形態2にかかる情報処理装置20は、現在時刻t0において、次の時刻t1における移動体30の速度を特定し、さらに、角速度を算出する。このようにそれぞれの時刻において、次の時刻における移動体30の速度を特定し、さらに、角速度を算出する処理は、特定された経路を実現するために複数のタイミングにおける速度及び角速度を全て算出する処理と比較して、処理負荷が軽減される。
【0064】
また、式(1)の第1項を用いることによって、速度が速いほどコストSの値が小さくなる。これにより、情報処理装置20は、移動体30の移動速度を早くするように、速度時系列を選択することが可能となる。また、式(1)の第2項を用いることによって、走行経路R1に近いほどコストSの値が小さくなる。これにより、例えば、障害物40を回避するために走行経路から離れた位置を走行している場合であっても、移動体30が早期に走行経路R1に復帰することが可能となる。
【0065】
(実施の形態3)
続いて、
図10を用いて実施の形態3にかかる情報処理装置50の構成例について説明する。情報処理装置50は、
図3の情報処理装置20に、乱数生成部51が追加された構成である。乱数生成部51は、任意の乱数を生成し、生成した乱数をシミュレーション実行部23へ出力する。乱数生成部51が生成した乱数は、移動体30の位置の変動に用いられる。
【0066】
実施の形態2においては、シミュレーション実行部23がN×Mパターンの速度時系列及び目標値のペアを用いたシミュレーションを実行する際に、移動体30が、選択された速度時系列及び算出された角速度に従って移動することを前提としている。しかし、移動体30は、速度時系列及び角速度に従って正常に移動せずに、蛇行する場合がある。例えば、移動体30が接する地面の状況、気候状況等の外部環境状況、もしくは、移動体30の経年劣化状況等の内部環境状況を要因として移動体30は、蛇行する場合がある。乱数生成部51は、外部環境状況もしくは内部環境状況を考慮したシミュレーションを実行させるために乱数を生成する。
【0067】
図11は、移動体30の走行エリアを示している。具体的には、
図11は、移動体30の走行エリアである2次元エリアに垂直方向となる上方から移動体30の走行エリアを視認したエリアを示している。
図11においては、移動体30は、X方向に直線に移動していることを示している。
【0068】
一方、
図12は、移動体40が、蛇行して走行していることを示している。
図12は、移動体40が蛇行している複数の経路、つまり経路の変動パターンを示している。
図12のように、移動体30が、必ずしも設定された経路通りに移動しないことを示す確率モデルは、次の式4にて示される。
【0069】
【0070】
r=(x、y、θ)は、移動体30の状態を表すベクトルである。fは、移動体のダイナミクスを記述する関数である。uは、制御入力である。Sは分散行列である。dB
tは、ブラウン運動の微小時間における増分である。式(4)は、関数f(r,u)が与えられた場合に、時間変化dtに応じたグリッドの位置を示すdr=f(r,u)dtに、移動体30が蛇行する確率的な影響を示すSdB
tが追加されていることを示す。つまり、式(4)は、ある時刻もしくは時間において移動体30が存在するグリッドの位置の変動を示している。言い換えると、式(4)は、
図12において示されている、経路の変動パターンを示している。
【0071】
乱数生成部51は、移動体30が蛇行する確率的な影響を示すSdBtとして用いられる乱数を生成する。
【0072】
シミュレーション実行部23は、1つのペアを選択し、シミュレーションを行うことによってコストSを算出する。実施の形態3においては、移動体30が蛇行する確率的な影響を調べるために、異なる乱数を用いて1つのペアに対してD回のシミュレーションを行う。つまり、シミュレーション実行部23は、1つのペアに対して、D個のコストS(S1乃至SD)を算出する。シミュレーション実行部23は、D個のコストSを以下の評価式(5)に適用して評価値Jを算出する。
【0073】
【0074】
シミュレーション実行部23は、全てのペアについて評価値Jを算出し、評価部21は、最小の評価値であるJのペアを採用する。つまり、評価部21は、最小の評価値であるJを算出するために適用された、速度時系列及び目標値を採用する。
【0075】
その他の動作及び処理は、情報処理装置20と同様であるため詳細な説明を省略する。
【0076】
以上説明したように、実施の形態3にかかる情報処理装置50は、移動体30の外部環境状況もしくは内部環境状況を考慮したシミュレーションを実行することができる。これにより、情報処理装置50は、移動体30が蛇行することを考慮して、より衝突可能性を低下させる制御入力値を決定することができる。
【0077】
(実施の形態4)
続いて、
図13を用いて実施の形態4にかかる情報処理装置60の構成例について説明する。情報処理装置60は、
図3の情報処理装置20に、平滑パラメータ生成部61が追加された構成である。平滑パラメータ生成部61は、移動体30の移動経路の変動を抑えるために用いられる。
【0078】
移動体30の移動経路の変動について、
図14を用いて説明する。
図14は、移動体30が、障害物40を回避するために、a_1及びa_2方向と、a_5及びa_6方向とが存在することを示している。つまり、移動体30には、障害物40を走行経路を基準とする、左方向もしくは右方向に回避する経路が存在する。このような場合、例えば、評価部21が、時刻t
iにおいては、目標位置として、a_1もしくはa_2を含むペアを選択し、時刻t
i+1においては、目標位置として、a_5もしくはa_6を含むペアを選択する場合がある。つまり、評価部21は、障害物40を避けるための制御入力値として、障害物40の左方向の目標位置を含むペアと、右方向の目標位置を含むペアとを交互に選択するような場合がある。この場合、移動体30は、障害物40を回避しきれなくなり、障害物40に衝突してしまうことがある。
【0079】
このように、評価部21が、選択する目標位置の方向の変動を抑えるために、指数平滑を考慮したコストSの算出を行う。具体的には、コストSの算出に、次の式(6)が用いられる。
【0080】
【0081】
式(6)には、式(1)に第4項が追加されている。式(6)の第4項におけるyoffset
qは、選択したペアに含まれる目標位置を示している。さらに、yoffset
EMAは、これまでに採用された目標位置の指数平滑が示されている。具体的には、yoffset
EMAは、yoffset
qにおいて選択された目標位置より前に採用された目標位置の指数平滑が示されている。ここで、yoffset
EMAは、以下のように更新される。
【0082】
yoffset
EMA←pyoffset
q+(1-p)yoffset
EMA
0≦p≦1
【0083】
つまり、第1の時刻において選択されたペアの補正量に基づいて、第2の時刻におけるペアの補正量が調整される。例えば、pの値を小さくすることによって、これまでに採用された目標位置yoffset
EMAの影響を大きくすることができる。ペアに含まれる目標位置と、これまでに採用された目標位置との差が大きい場合、式(6)の第4項の値が大きくなり、コストSの値が大きくなる。そのため、ペアに含まれる目標位置と、これまでに採用された目標位置との差が大きい場合、そのペアが採用される可能性が低下することとなり、これまでに採用された目標位置との差が小さくなる目標位置を含むペアが採用される可能性が高くなる。
【0084】
以上説明したように、実施の形態4の情報処理装置60は、選択される目標位置の変動を抑えることができるため、より衝突可能性を低下させる制御入力値を決定することができる。
【0085】
図15は、情報処理装置20、50、及び60(以下、情報処理装置20等とする)の構成例を示すブロック図である。
図15を参照すると、情報処理装置20等は、ネットワークインタフェース1201、プロセッサ1202、及びメモリ1203を含む。ネットワークインタフェース1201は、ネットワークノード(e.g., eNB、MME、P-GW)と通信するために使用されてもよい。ネットワークインタフェース1201は、例えば、IEEE 802.3 seriesに準拠したネットワークインタフェースカード(NIC)を含んでもよい。ここで、eNBはevolved Node B、MMEはMobility Management Entity、P-GWはPacket Data Network Gatewayを表す。IEEEは、Institute of Electrical and Electronics Engineersを表す。
【0086】
プロセッサ1202は、メモリ1203からソフトウェア(コンピュータプログラム)を読み出して実行することで、上述の実施形態においてフローチャートを用いて説明された情報処理装置20等の処理を行う。プロセッサ1202は、例えば、マイクロプロセッサ、MPU、又はCPUであってもよい。プロセッサ1202は、複数のプロセッサを含んでもよい。
【0087】
メモリ1203は、揮発性メモリ及び不揮発性メモリの組み合わせによって構成される。メモリ1203は、プロセッサ1202から離れて配置されたストレージを含んでもよい。この場合、プロセッサ1202は、図示されていないI/O(Input/Output)インタフェースを介してメモリ1203にアクセスしてもよい。
【0088】
図15の例では、メモリ1203は、ソフトウェアモジュール群を格納するために使用される。プロセッサ1202は、これらのソフトウェアモジュール群をメモリ1203から読み出して実行することで、上述の実施形態において説明された情報処理装置20等の処理を行うことができる。
【0089】
図15を用いて説明したように、上述の実施形態における情報処理装置20等が有するプロセッサの各々は、図面を用いて説明されたアルゴリズムをコンピュータに行わせるための命令群を含む1又は複数のプログラムを実行する。
【0090】
上述の例において、プログラムは、コンピュータに読み込まれた場合に、実施形態で説明された1又はそれ以上の機能をコンピュータに行わせるための命令群(又はソフトウェアコード)を含む。プログラムは、非一時的なコンピュータ可読媒体又は実体のある記憶媒体に格納されてもよい。限定ではなく例として、コンピュータ可読媒体又は実体のある記憶媒体は、random-access memory(RAM)、read-only memory(ROM)、フラッシュメモリ、solid-state drive(SSD)又はその他のメモリ技術、CD-ROM、digital versatile disc(DVD)、Blu-ray(登録商標)ディスク又はその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又はその他の磁気ストレージデバイスを含む。プログラムは、一時的なコンピュータ可読媒体又は通信媒体上で送信されてもよい。限定ではなく例として、一時的なコンピュータ可読媒体又は通信媒体は、電気的、光学的、音響的、またはその他の形式の伝搬信号を含む。
【0091】
なお、本開示は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【0092】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
移動体の走行経路上に位置する障害物の検出に応じて前記移動体が前記走行経路から離れる方向への補正量を特定する経路補正手段と、
前記補正量と、前記移動体の位置と、に基づいて前記移動体の角速度を特定する角速度特定手段と、
特定された前記移動体の角速度と、前記移動体の移動速度とに応じて、前記移動体の動作を制御する制御手段と、を備える制御システム。
(付記2)
前記移動速度は、
移動速度の変化を示す速度時系列である、付記1に記載の制御システム。
(付記3)
前記経路補正手段は、
前記移動速度の複数の候補のうちの一つの候補と、前記補正量の複数の候補のうちの一つの候補とを組み合わせた複数のペアの中から、一つのペアを選択する、付記1又は2に記載の制御システム。
(付記4)
前記経路補正手段は、
前記複数のペアそれぞれに基づいて算出した前記移動体の動作に応じて、前記一つのペアを選択する、付記3に記載の制御システム。
(付記5)
前記角速度特定手段は、
前記補正量と、前記移動体の位置及び姿勢とに基づいて前記移動体の角速度を特定する、付記1乃至4のいずれか1項に記載の制御システム。
(付記6)
前記経路補正手段は、
前記複数のペアそれぞれと乱数とに基づいて前記移動体の動作を算出する、付記3に記載の制御システム。
(付記7)
前記経路補正手段は、
第1の時刻において選択された前記ペアの補正量に基づいて、第2の時刻における前記ペアの補正量を調整する、付記3、4、及び6のいずれか1項に記載の制御システム。
(付記8)
移動体の走行経路上に位置する障害物の検出に応じて前記移動体が前記走行経路から離れる方向への補正量を特定する経路補正手段と、
前記補正量と、前記移動体の位置と、に基づいて前記移動体の角速度を特定する角速度特定手段と、
特定された前記移動体の角速度と、前記移動体の移動速度とを前記移動体へ送信する通信手段と、を備える情報処理装置。
(付記9)
前記移動速度は、
移動速度の変化を示す速度時系列である、付記8に記載の情報処理装置。
(付記10)
前記経路補正手段は、
前記移動速度の複数の候補のうちの一つの候補と、前記補正量の複数の候補のうちの一つの候補とを組み合わせた複数のペアの中から、一つのペアを選択する、付記8又は9に記載の情報処理装置。
(付記11)
前記経路補正手段は、
前記複数のペアそれぞれに基づいて算出した前記移動体の動作に応じて、前記一つのペアを選択する、付記10に記載の情報処理装置。
(付記12)
前記角速度特定手段は、
前記補正量と、前記移動体の位置及び姿勢とに基づいて前記移動体の角速度を特定する、付記8乃至11のいずれか1項に記載の情報処理装置。
(付記13)
前記経路補正手段は、
前記複数のペアそれぞれと乱数とに基づいて前記移動体の動作を算出する、付記11に記載の情報処理装置。
(付記14)
前記経路補正手段は、
第1の時刻において選択された前記ペアの補正量に基づいて、第2の時刻における前記ペアの補正量を調整する、付記10、11、及び13のいずれか1項に記載の情報処理装置。
(付記15)
移動体の走行経路上に位置する障害物の検出に応じて前記移動体が前記走行経路から離れる方向への補正量を特定し、
前記補正量と、前記移動体の位置と、に基づいて前記移動体の角速度を特定し、
特定された前記移動体の角速度と、前記移動体の移動速度とに応じて、前記移動体の動作を制御する、制御方法。
(付記16)
移動体の走行経路上に位置する障害物の検出に応じて前記移動体が前記走行経路から離れる方向への補正量を特定し、
前記補正量と、前記移動体の位置と、に基づいて前記移動体の角速度を特定し、
特定された前記移動体の角速度と、前記移動体の移動速度とを前記移動体へ送信する、制御値生成方法。
(付記17)
移動体の走行経路上に位置する障害物の検出に応じて前記移動体が前記走行経路から離れる方向への補正量を特定し、
前記補正量と、前記移動体の位置と、に基づいて前記移動体の角速度を特定し、
特定された前記移動体の角速度と、前記移動体の移動速度とを前記移動体へ送信する、ことをコンピュータに実行させるプログラム。
【0093】
なお、本開示は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【0094】
10 制御システム
11 経路補正部
12 角速度決定部
13 制御部
20 情報処理装置
21 評価部
22 角速度決定部
23 シミュレーション実行部
24 通信部
25 速度候補格納部
26 目標値候補格納部
27 コスト値格納部
28 障害物判定部
30 移動体
31 通信部
32 移動体制御部
40 障害物
50 情報処理装置
51 乱数生成部
60 情報処理装置
61 平滑パラメータ生成部