(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024173374
(43)【公開日】2024-12-12
(54)【発明の名称】移動体制御システム
(51)【国際特許分類】
G05B 13/02 20060101AFI20241205BHJP
G05D 1/43 20240101ALI20241205BHJP
【FI】
G05B13/02 A
G05D1/02 P
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023091750
(22)【出願日】2023-06-02
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001829
【氏名又は名称】弁理士法人開知
(72)【発明者】
【氏名】石原 新士
(72)【発明者】
【氏名】成川 理優
(72)【発明者】
【氏名】金井 政樹
(72)【発明者】
【氏名】杉本 和也
(72)【発明者】
【氏名】小谷 匡士
(72)【発明者】
【氏名】大塚 敏之
【テーマコード(参考)】
5H004
5H301
【Fターム(参考)】
5H004GA30
5H004GB16
5H004HA08
5H004HB07
5H004HB08
5H004HB09
5H004KC04
5H004KC06
5H004KC33
5H004KC37
5H004LA15
5H004LB08
5H004MA55
5H301AA01
5H301AA10
5H301BB05
5H301CC03
5H301CC06
5H301CC10
5H301DD07
5H301DD17
5H301FF11
5H301GG08
5H301GG14
5H301GG16
5H301HH10
5H301KK02
5H301KK03
5H301KK04
5H301KK08
5H301KK20
5H301LL06
5H301QQ04
(57)【要約】
【課題】通過区間に応じた移動体の制御設計を容易に行うことができる移動体制御システムを提供する。
【解決手段】移動体制御システムは、移動体B100の位置を取得する移動体位置取得部A101と、移動体B100の移動先を設定する移動先設定部A102と、移動先までの移動体B100の通過区間を設定する通過区間設定部A103と、通過区間において移動体B100の制御を行う移動体制御部A104と、移動体B100の制御で利用される制御パラメータを記録するパラメータ記録部A105と、を備える。通過区間は、複数の基本形状の区間から構成される。それぞれの区間には、移動体B100が区間に入るときと区間から出るときの移動体B100の状態量で定義される境界条件と、制御パラメータ(例えば、重みパラメータQ、R)とが対応付けられる。パラメータ記録部A105は、移動体B100の位置を含む区間に対応する制御パラメータを移動体制御部A104に提供する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
移動体の位置を取得する移動体位置取得部と、
前記移動体の移動先を設定する移動先設定部と、
前記移動先までの前記移動体の通過区間を設定する通過区間設定部と、
前記通過区間において前記移動体の制御を行う移動体制御部と、
前記移動体の制御で利用される制御パラメータを記録するパラメータ記録部と、を備え、
前記通過区間は、複数の基本形状の区間から構成され、
それぞれの前記区間には、前記移動体が前記区間に入るときと前記区間から出るときの前記移動体の状態量で定義される境界条件と、前記制御パラメータとが対応付けられ、
前記パラメータ記録部は、前記移動体の位置を含む前記区間に対応する前記制御パラメータを前記移動体制御部に提供する
ことを特徴とする移動体制御システム。
【請求項2】
請求項1に記載の移動体制御システムであって、
前記移動体制御部は、
前記移動体の状態量の少なくとも1つの関数と前記移動体への制御入力の少なくとも1つの関数とそれぞれの前記関数に対応する重みパラメータから評価関数を設定する評価関数設定部と、
k(k=1,2,…)ステップの前記移動体の状態量と前記評価関数から前記移動体への制御入力を算出し、kステップの前記移動体の状態量と前記移動体への制御入力から(k+1)ステップの前記移動体の状態量を算出する予測制御部と、を備え、
前記制御パラメータは、前記重みパラメータであり、
前記パラメータ記録部は、前記移動体の状態量によって示される予測位置を含む前記区間に対応する前記重みパラメータを前記評価関数設定部に提供する
ことを特徴とする移動体制御システム。
【請求項3】
請求項1に記載の移動体制御システムであって、
前記通過区間を構成するそれぞれの前記区間は、制御対象である前記移動体の運動特性及び前記移動体が通過する通路のレイアウトを制約条件として選択される
ことを特徴とする移動体制御システム。
【請求項4】
請求項1に記載の移動体制御システムであって、
前記制御パラメータは、それぞれの前記区間における制御目的に応じて設定され、前記制御目的に対応付けられる
ことを特徴とする移動体制御システム。
【請求項5】
請求項1に記載の移動体制御システムであって、
複数の基本形状の前記区間のいずれかをユーザが選択する第1領域と、前記ユーザによって選択された前記区間を順次接続して前記通過区間を設計する第2領域と、前記ユーザによって選択された前記区間に対応する境界条件を前記ユーザが変更する第3領域と、から構成される画面を表示するユーザーインターフェースを備え、
前記通過区間設定部は、変更前の境界条件に対応する前記区間を、それと形状が同一であり、かつ変更後の境界条件に対応する区間に置き換える
ことを特徴とする移動体制御システム。
【請求項6】
請求項1に記載の移動体制御システムであって、
隣接する2つの前記区間が接続される位置において、一方の前記区間に対応する境界条件は、他方の前記区間に対応する境界条件と同一又は等価の条件である
ことを特徴とする移動体制御システム。
【請求項7】
請求項6に記載の移動体制御システムであって、
前記通過区間設定部が、
前記通過区間を構成するそれぞれの前記区間を選択する
ことを特徴とする移動体制御システム。
【請求項8】
請求項2に記載の移動体制御システムであって、
前記移動体と、サーバと、を備え、
前記移動先設定部、前記通過区間設定部、及び前記パラメータ記録部は、前記サーバに設けられ、
前記移動体位置取得部、前記評価関数設定部、及び前記予測制御部は、前記移動体又は前記サーバに設けられる
ことを特徴とする移動体制御システム。
【請求項9】
請求項1に記載の移動体制御システムであって、
前記移動体位置取得部、前記移動先設定部、前記通過区間設定部、前記移動体制御部、及び前記パラメータ記録部は、少なくともプロセッサから構成される
ことを特徴とする移動体制御システム。
【請求項10】
請求項8に記載の移動体制御システムであって、
前記移動先設定部、前記通過区間設定部、及び前記パラメータ記録部は、少なくとも前記サーバのプロセッサから構成され、
前記移動体位置取得部、前記評価関数設定部、及び前記予測制御部は、少なくとも前記移動体又は前記サーバのプロセッサから構成される
ことを特徴とする移動体制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、移動体制御システムに関する。
【背景技術】
【0002】
物流倉庫の物品搬送や工場の工程間搬送の人手不足を解消するために、移動ロボット(AGV:Automated Guided Vehicle、AMR:Autonomous Mobile Robotなど)の導入が進んでいる。このような移動ロボットを導入するには、倉庫や工場内にロボットが移動可能な通路を設定(節点(ノード)と枝(ブランチ/エッジ)からなるグラフなどの作成)が必要になる。この設定が細かいほど、ロボットが選択可能な通路の自由度は高くなるため、より効率的な搬送が可能になる。一方で、設定作業に多くの工数が必要になる。さらに、前記の通路の設定作業は、倉庫や工場のレイアウトが変更するたびに必要になるため、詳細な通路を設定する作業は、倉庫や工場を管理する事業者に大きな負担(エンジニアリングコスト)を求めることになる。
【0003】
また、倉庫や工場では、通路上に物品が仮置きされることもあるため、正確な地図情報を取得すること自体が困難である。なお、この課題は他の産業領域でも共通になり得る。例えば、公道を走行する自動運転車両を扱う場合、道路工事による一時的な道路規制に伴い、パイロンや看板が設置されるといった環境変化が生じるため、正確な地図情報の取得は難しい。また、施工現場や鉱山などで運用される自動化建設機械(油圧ショベル、ホイールローダ、ダンプトラックなど)を扱う場合は、掘削作業に伴い、地図情報が時々刻々と変化する。
【0004】
このような課題に対して、特許文献1には、詳細な通路を設計することなく、ロボット(特許文献中ではビークル)が移動する経路を算出する方法が提示されている。より具体的には、特許文献1では、ロボットが障害物(建物内の柱や壁、自身以外のロボットなど)に接触せず、ロボットの現在位置とロボットの目標位置をできるだけ小さくするようにモデル予測制御の考えに従って、ロボットに対する制御入力(速度、角速度)を算出する。そして算出された制御入力を積分することで移動経路(位置、姿勢)を算出する。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1によれば、事前に倉庫や工場内に詳細な通路情報を設計せずに、ロボットが目標位置にたどり着く経路を算出することができる。また、ロボットのダイナミクスを考慮して障害物と接触しない移動計画を算出するため、事前に対象エリアを分割し、その分割区間内に複数のロボットが入らないように制御する排他制御方式に比べて、効率的な移動計画を生成し得る。
【0007】
しかしながら、特許文献1には、モデル予測制御の評価関数の構築方法に関する工夫の言及がない。より具体的には、特許文献1の評価関数(特許文献中の数式(8))の重み係数A1、A2、A3をどのように設計するかを言及していない。モデル予測制御によって実現される挙動はこれらのパラメータ(重み係数や予測区間)に大きく依存し、適切にパラメータが設計されていないと、所望の動作が実現できないことが知られている。そして、このパラメータ設計(調整)には、専門知識が必要とされる。さらに、制御システムが運用される現場にて、オペレータが試行錯誤によってパラメータを設計する必要があるため、システム運用時に多くの工数が必要になる。
【0008】
本発明の目的は、通過区間に応じた移動体の制御設計を容易に行うことができる移動体制御システムを提供することにある。
【課題を解決するための手段】
【0009】
上記目的を達成するために、本発明の移動体制御システムは、移動体の位置を取得する移動体位置取得部と、前記移動体の移動先を設定する移動先設定部と、前記移動先までの前記移動体の通過区間を設定する通過区間設定部と、前記通過区間において前記移動体の制御を行う移動体制御部と、前記移動体の制御で利用される制御パラメータを記録するパラメータ記録部と、を備え、前記通過区間は、複数の基本形状の区間から構成され、それぞれの前記区間には、前記移動体が前記区間に入るときと前記区間から出るときの前記移動体の状態量で定義される境界条件と、前記制御パラメータとが対応付けられ、前記パラメータ記録部は、前記移動体の位置を含む前記区間に対応する前記制御パラメータを前記移動体制御部に提供する。
【発明の効果】
【0010】
本発明によれば、通過区間に応じた移動体の制御設計を容易に行うことができる。上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0011】
【
図1】本発明の実施形態の移動体制御システムの機能ブロック図である。
【
図2】本発明を物流倉庫に適用する場合の状況を説明する図である。
【
図3A】制御対象である移動体の構成を説明する図である。
【
図4A】本発明の実施形態の通過区間設定部の動作を説明する図である。
【
図5A】モデル予測制御の重み変更によって実現される動作を説明する図である。
【
図5B】最短距離方向への移動とX軸方向への移動を対比して説明する図である。
【
図5C】最短距離方向への移動とY軸方向への移動を対比して説明する図である。
【
図6A】モデル予測制御の重み変更によって実現される動作を説明する図である。
【
図6B】相対的に小さい方位の重みに基づいて方位を合わせずに前進する動作を示す図である。
【
図6C】相対的に大きい方位の重みに基づいて後進しながら目標位置に向かう動作を示す図である。
【
図7】ベイズ最適化を利用したパラメータ探索方法を説明する図である。
【
図8】直線走行する要素(ブロック)における評価指標を説明する図である。
【
図9】事前に最適化する要素(ブロック)の例を説明する図である。
【
図10】異なる制御目的に応じて最適化された要素(ブロック)の例を示す図である。
【
図11A】通過領域を構成する要素(ブロック)の組合せの一例を説明する図である。
【
図11B】区間ごとに重みを設定する例を示す図である。
【
図12A】移動体の位置と利用するパラメータの関係を説明する図である。
【
図12B】移動体が要素を横断する例を示す図である。
【
図13】本発明の実施形態の移動体制御システムの処理を説明するフローチャートを示す図である。
【
図14】複数のサイトに最適化した要素(ブロック)を展開する概念図である。
【
図15】本発明の実施形態を実行する際のGUIの一例を示す図である。
【発明を実施するための形態】
【0012】
移動体制御システムは、限定エリア(例えば、倉庫や駐車場)内の移動体(ロボット、車両など制御可能な移動体)の移動計画(座標、姿勢、速度などの時系列)を算出し、移動体がこの経路計画に従うように制御するシステムである。本実施形態では、移動体の走行制御に関わる調整パラメータを適切に設計する方法を提供することで、制御システムの運用開始を迅速に実現することを目的の1つとしている。
【0013】
以下、本発明の移動体制御システムの実施の形態を、図面を参照しつつ説明する。
【0014】
図1は本発明の実施形態の移動体制御システムの機能ブロック図の一例を簡易化した図である。なお、
図1は、説明を簡単にするため、制御対象の移動体を1台に限定した構成にしているが、本発明は複数台の移動体を制御する場合にも利用できることに注意されたい。
【0015】
以下、説明を容易にするために、
図2に示す物流倉庫を対象とし、移動体として自律ロボットを想定する。
【0016】
<倉庫の構成>
本実施形態では、移動体B100を、棚B102が設置されていない床である、走行許可通路B101上で移動させることを想定している。
【0017】
移動体B100は荷物を積むことができ、積んでいる荷物を指定された棚まで運んだり、荷物が収納されている棚まで荷物の回収に向かう作業を支援したりする。荷物の積み下ろしは作業員B103が行っても良いし、移動体B100自身が行っても良い。
【0018】
移動体B100が移動すべき目的位置(荷物を配送、回収する棚の座標に相当)は管理サーバB104が管理している。なお、管理サーバB104は物流倉庫内に設置されていても良いし、別の場所に設置されても良い。管理サーバB104は、例えば、プロセッサ(CPU:Central Processing Unit等)、記録装置(HDD:Hard Disk Drive、メモリ等)、入力装置(マウス、キーボード等)、表示装置(ディスプレイ等)、通信装置(LANカード等)から構成される。
【0019】
管理サーバB104(管制サーバ)が決定した目的位置は倉庫内に配置されている無線通信装置B105を介して、移動体B100へと配信される。
【0020】
物流倉庫内にはインフラセンサB106が設置されており、移動体B100の位置を監視することが可能である。インフラセンサB106はカメラでも良いし、LiDAR(Light Detection And Ranging)であっても良い。インフラセンサB106で取得した情報は無線通信装置B105を介して、移動体B100、管理サーバB104に提供することが可能である。
【0021】
<移動体の構成>
説明を簡単にするため、移動体B100は
図3Aに示すように、差動二輪型の移動ロボットであることを想定する。ただし、本実施形態で扱う移動体B100が差動二輪型のロボットに限定されず、オムニホイール型のロボット、フォークリフト、4輪車両、牽引車両など様々な形態の移動体を扱うことができることに注意されたい。
【0022】
差動二輪タイプのロボットの運動方程式は数式1で与えることができる。
【0023】
【0024】
ここで、x、yはロボットのx座標、y座標、θはロボットの方位(向き)であり、vはロボットの移動速度、ωはロボットの角速度である。なお、移動体の制御設計においては、数式1を、サンプリング周期Δtで離散化した数式2を扱う。なお、数式中のkは処理ステップ(時間)を意味する。
【0025】
【0026】
移動ロボットには車輪(ホイール)の回転数を検出するエンコーダや車体の回転速度、加速度を取得する慣性センサ:IMU (Inertia Measurement Unit)、LiDARなどのセンサが備え付けられている。
【0027】
移動体B100の制御動作を説明するために、簡略化した機能ブロック図を
図3Bに示す。移動体B100は、記録部M01、通信部M02、センサM03、移動体制御部M04、自己位置演算部M05、アクチュエータM06から構成される。
【0028】
記録部M01は、移動体B100が備えている演算部の記録装置であり、HDD(ハードディスクドライブ)、SSD(ソリッドステートドライブ)やメモリに相当する。記録部に各種制御プログラムや制御プログラムに利用されるパラメータ、管理サーバから配信された目標位置までの概要経路が記録される。
【0029】
通信部M02は、Bluetooth(登録商標)やWi-Fi(登録商標)などの無線通信装置であり、倉庫内の無線通信装置B105を介して、管理サーバB104と通信することができる。
【0030】
センサM03は、上述のエンコーダ、IMU、LiDARなどロボットに備え付けられているセンサに相当する。
【0031】
移動体制御部M04は、移動体の走行制御に関わる演算を行う機能であり、ロボットに備え付けられた、図示しないコントローラ(プロセッサ)において実行される。移動体制御部の演算内容については、後で詳細に記述する。
【0032】
自己位置演算部M05は、ロボットに備え付けられた複数のセンサM03の組み合わせにより自身の位置(2次元平面上でのx、y座標)、および、方位を算出する機能である。移動体制御部M04と同様に本機能はコントローラにおいて実行される。自己位置演算部M05はSLAM(Simultaneous Localization And Mapping)として知られている技術によって実現可能であるため、詳細な説明は省略する。
【0033】
アクチュエータM06は、移動ロボットの走行モータに相当する。
【0034】
移動体B100は、通信部M02を介して、管理サーバB104から目標位置までの概要経路と制御パラメータを受信し、これらを記録部M01に記録して、このデータ従って自身の動作を制御する。なお、通信周期が十分に速い場合、データを記録部M01に格納せずに、直接、移動体制御部M04で利用する形態をとっても良い(
図3B点線)。
【0035】
ふたたび、
図1に戻り、
図2の物流倉庫を対象とした、移動体走行制御システムの機能ブロックについて詳細に説明する。
【0036】
<移動体制御システムの機能ブロックの説明>
移動体制御システムは移動体B100、インフラセンサB106で取得した情報に基づいて、倉庫内の移動体B100の動作を管理するシステムであり、多くの処理が管理サーバB104にて実行される。
【0037】
移動体制御システムは、移動体位置取得部A101、移動先設定部A102、通過区間設定部A103、移動体制御部A104、パラメータ記録部A105から構成される。
【0038】
移動体位置取得部A101は、センサA101aと自己位置演算部A101bから構成される。これらの機能は移動体B100が備えていても良いし、管理サーバB104で実現しても良い。移動体位置取得部A101の機能を移動体B100で実施する場合、
図3BのセンサM03、自己位置演算部M05がそれぞれセンサA101aと自己位置演算部A101bに対応する。移動体位置取得部A101の機能を管理サーバB104で実装する場合、インフラセンサB106で取得した移動体の画像データや点群情報から倉庫内の移動体B100の位置を算出する。なお、インフラセンサB106の情報と移動体B100に備えられたセンサM03の情報を統合して、移動体B100の位置を演算する構成にしても良い。
【0039】
移動先設定部A102は、移動体位置取得部A101で算出した移動体B100の現在位置と、倉庫内の作業に応じて、移動体B100の目的位置を算出する。なお、倉庫内の作業の割り付けは、図示しないWMS(Warehouse Management System)と連携することによって、実現される。WMSの処理内容は本発明の工夫点とは関係ないため、詳細は割愛する。
【0040】
通過区間設定部A103は、移動体位置取得部A101で取得した移動体の現在位置と移動先設定部A102で設定された移動体の目標位置を含む通過領域を設定し、さらに、この通過領域を複数の通過区間の組合せへと分割する。通過領域と通過区間の詳細は後述するが、例えば、
図4Aのように現在位置と目標位置が与えられると、これらを含むように
図4Bに示す通過領域が算出され、さらに、通過領域は
図4Cに示す5つの通過区間へと分割される。なお、この
図4Bでは、現在位置と目標位置を結ぶ最短距離で通過領域が設定されているが、本実施形態の通過区間設定部A103は必ずしもこのような区間を設定しないといけないわけではない。例えば、現在位置と目標位置の間に障害物があれば、その障害物を迂回するように通過領域を設定しても良い。
【0041】
移動体制御部A104は、評価関数設定部A104aと予測制御部A104bから構成される。
【0042】
評価関数設定部A104aはいくつかの評価関数とその評価関数に関わるパラメータの組合せによって評価関数を構築する。
【0043】
例えば、数式3のように、各時刻におけるロボットの目標位置(xrk、yrk)と目標方位θrkをまとめたベクトルrkを定義し、ロボットの現在位置と目標位置の偏差ek=Xk-rkを評価する関数(数式3の第1項)と、制御入力ukの大きさを評価する関数(数式3の第2項)を利用して、評価関数Jを構築することが出来る。
【0044】
【0045】
なお、数式3におけるTは転置を表す記号である。また、行列Qは偏差ekに関わる重みパラメータ、行列Rは入力ukに関わる重みパラメータ、Nは評価区間(予測区間)を表すパラメータである。このように、評価関数設定部A104aには、複数のパラメータが含まれており、これらのパラメータは後述のパラメータ記録部A105に記録されている。
【0046】
なお、数式3は評価関数Jの1例であり、本発明が数式3の形式の評価関数しか扱えないものではないことは言うまでもない。例えば、数式4に示すように、最終ステップNだけを別の評価(終端コスト)とした評価関数としても良い。
【0047】
【0048】
予測制御部A104bは、モデル予測制御(MPC:Model Predictive Control)の考えに従って、評価関数設定部A104aで設定された評価関数Jの値を小さくするように制御入力ukを算出する。
【0049】
MPCでは、評価関数の区間(現時刻からNステップ先の挙動)までの評価関数Jを評価するため、移動体B100の将来の挙動を予測する必要がある。移動体のNステップ先までの挙動予測は数式3を最小化するように求めた制御入力uを数式2に入力することで再帰的に計算することが出来る。
【0050】
なお、MPCには、拘束条件を容易に扱うことができるという利点がある。例えば、
図3Aの差動二輪ロボットの場合、ロボットの移動速度v、および、旋回角速度ωは走行モータの左右輪の回転速度ωl、ωrに依存して上限値、下限値が決まる。このようなアクチュエータの動作特性を拘束条件として組み込むことで、ロボットが実際に追従可能な経路を生成できるようになる。このような拘束条件を考慮したMPCは数式5のように表現できる。
【0051】
【0052】
なお、数式5における[s.t.]は[subject to]の略記であり、[s.t.]以降の条件のもと最適化問題を解くことを意味している。また、添え字のmaxとminがそれぞれ上限値と下限値に相当する。
【0053】
一般に、設計を容易にするために、重みパラメータ行列Q、Rはそれぞれ対角行列で与えられる。つまり、Qはx座標の重みQx、y座標の重みQy、方位の重みQθを利用して、数式6のような形で与えられる。Rについても速度の重みRv、角速度の重みRωを利用して同様に表現することが出来る。
【0054】
【0055】
ただし、このように設計問題を簡易化したとしても、対角要素をどのように設計すると良いかに関する具体的な設計指針は知られていない。さらに、重みパラメータが適切に設計されていないとMPCによって実現される挙動は設計者の所望の挙動とは異なる挙動になる場合がある。
【0056】
重みパラメータの設計が適切に行われていない場合に、MPCによって実現される挙動をいくつかの例を使って簡単に説明する。
【0057】
まず、
図5Aのように初期位置Xkと目標位置rkが設定された状況を考える。
【0058】
QxがQy、Qθに比べて極めて大きく設定された場合、
図5Bのように(1)最短距離方向に進むよりは(2)X軸方向に沿って移動したほうがNステップ後のx座標の目標値までの誤差が小さくなる。評価関数Jを最小化する入力uとしては(2)の動作が生成される。同様に、QyがQx、Qθに比べて極めて大きく設定された場合、
図5Cのように(1)最短距離方向に進むよりは(3)Y軸方向に沿って移動したほうがNステップ後のy座標の目標値までの誤差が小さくなる。評価関数Jを最小化する入力uとしては(3)の動作が生成される。以上の(2)、(3)の動作はロボットを最短距離で動かしたいという状況では、明らかに不適切な動作である。
【0059】
つぎに、
図6Aに示すように、
図5Aの状況と目標位置rkにおける姿勢が反転している状況を考える。QxとQyが適切に設計されて、最短距離方向に進む状況になっていても、QxとQyがQθに対して極めて大きく設定されていると、方位θを合わせずに前進する動作が生成される(
図6B)。一方、QxとQyがQθに対して極めて小さく設定されていると、方位を合わせるほうが評価関数Jの値が小さくなるため、移動体は後進しながら目標位置に向かう動作が生成される(
図6C)。一般に、移動ロボットのセンサは車体前方に取り付けられているため、後進移動を行うと周囲の状況を適切に監視することができなくなる可能性があるため、このような動作は不適切であると考えられる。
【0060】
なお、上記の例は、1台の移動ロボットを十分に広い空間で制御する状況を考えていたので、設計された重みに対して実現される挙動を容易に推測できた。ただし、より複雑な状況を考えると、重みパラメータの設計結果がロボットの動作にどのような影響を及ぼすかを予想することが難しくなっていく。
【0061】
以上のように、MPCを利用しても、目標位置や重みの設計によって実現される動作が大きく異なるため、重みパラメータの設計が非常に重要になる。
【0062】
本実施形態は、重みパラメータの設計を適切に実行する方法を前述の通過区間設定部A103と後述のパラメータ記録部A105の組合せによって提供する。
【0063】
パラメータ記録部A105は、通過区間ごとに設計されている重みパラメータを記録しており、自己位置演算部A101bで取得した現在位置、および、予測制御部A104bで算出した予測位置に対応する通過区間に対応する重みパラメータを移動体制御部A104へと提供する。なお、後述する通り、通過区間は複数の要素(ブロック)から構成されることもある。
【0064】
<既存手法:BOを利用したMPCの調整>
以降、通過区間と重みパラメータの設計方法について詳細に記述する。
【0065】
近年、ベイズ最適化(BO:Bayesian Optimization)を利用して、MPCの重みを調整する方法が考案されている。BOは、シミュレーションや実験を繰り返すことで、特定の評価指標cに基づき、この評価指標を最大化、もしくは、最小化するように、パラメータを効率的に探索するアルゴリズムである。
【0066】
評価指標cはMPCの評価関数Jと同様に何らかの数式で記述する必要があるが、MPCの評価関数と異なり、状態ベクトルXや制御入力uを利用しないでも良く、例えば、移動体B100が目標位置rに到達するまでの時間tendを評価指標cにすることも可能である。
【0067】
目標位置rに到達するまでの時間tendを最小化する課題を例として、BOによるMPCのパラメータ調整方法を説明する。調整パラメータに相当する重み行列Q、Rの対角要素をまとめたベクトルρを数式7で与える。
【0068】
【0069】
評価指標cは目標位置rに到達するまでの時間tendなので、この値を最小化する最適なρ*を探す問題として数式8のような最適化問題を与えることが出来る。
【0070】
【0071】
一般に、この最適化問題は直接解くことが出来ない。BOでは、いくつかの解候補ρiを与えて実際に得られた評価指標cの値を確認しながら、評価指標cの関数形状を推定しながら、次の解候補ρiを算出する。
図7は、この解候補の探索方法を模式的に表した図である。図中の黒点がこれまでの解候補ρi(i=1…6)によって得られた評価値である。これまでに得られている解候補を利用すると関数形状の推定値(図中実線)とその分散(図中の破線)を算出することが出来る。分散はこれまでの解候補ρiが無い領域で大きな値をとる。関数形状の推定値、および、分散を考慮して次の解候補ρ7(図中の横軸に目印として三角形を付与)を決定する。
【0072】
以上のような処理を行うことで、解候補ρiを総当たりで検証する場合に比べて、非常に効率的にパラメータの探索(重みの設計)を行うことが出来ることが知られている。
【0073】
<既存手法の問題点>
BOを利用して、MPCの重みを設計する場合、評価指標cが移動体B100の移動経路に依存するため、経路が変わると最適なパラメータρ*も変化することになる。つまり、BOを利用して、MPCのパラメータの最適化が可能な条件は走行開始位置から走行終了位置までの経路があらかじめ決まっている条件に限られる。さらに、ある経路Aに対して最適化した最適なパラメータρ*を、経路Aとは異なる経路Bを走行するときに利用しても、評価指標cの観点で最適な動作が実現される保証はない。
【0074】
<本発明の提案1:経路をブロック単位に分割する>
この課題を解決するために、通過領域(走行経路)を共通利用可能な複数の区間へと分割する。例えば、
図2のような物流倉庫を考えると、X正方向への移動(
図4C中の区間1、5)、X負方向への移動、Y正方向への移動(同、区間3)、Y負方向への移動、時計回りの旋回(同、区間4)、反時計回りの旋回(同、区間2)の組合せによって任意の初期位置から目標位置までの移動を記述することが可能である。
【0075】
この各区分に対して、事前にBOを活用して重みの最適化を行う。例えば、
図8のようにX正方向への移動する区分であれば、中心線からの逸脱量eyを許容値以下にしながら、区間を通過するまでに要した時間tendを最小化するように、数式9のような評価指標を設計して、重みパラメータρ*を算出すればよい。
【0076】
【0077】
なお、A1、A2はそれぞれの評価値を正規化するためのパラメータである。このようなパラメータを利用することで値のレンジが大きく異なる複数の評価値を等価に扱うことができる。数式9では逸脱量eyが許容値(文字eの上にバーを付した記号で表される値)を超えた場合のみに大きなペナルティ(100)を与える方式をとっているが、評価指標の設計方式は、この方式に限定されないことは言うまでもない。
【0078】
X、Y方向へ移動や旋回動作は区間を構成するのに必要な単位で構成することが望ましい。例えば、X方向への移動の最小単位を1mの区間で定義すれば、5mの移動はこの1mの区間を接続することで実現できる。同様に、旋回動作は90度単位で定義すれば、この区間を2つ接続することで180度旋回(Uターン)を表現することが出来る。
【0079】
なお、旋回動作については、複数の旋回半径を用意することが望ましい。旋回半径を通路幅の半分に設定すれば、
図4Cに示したようにスムースターンを実現することが出来る。一方、旋回半径を0にすれば、スピンターン(その場旋回)を実現することが出来る。
【0080】
<本発明の提案2:区間ごとに境界条件を設ける>
上記の通り、通過領域を特定の区間に分割すれば、各区間に対して最適なMPCのパラメータを事前に設計することが可能である。ただし、BOを利用して、MPCのパラメータ設計を行う場合、その区間の初期条件と終了条件も必要になる。つまり、
図8に示した初期位置と目標位置の関係について、その位置、姿勢だけでなく、速度や角速度の条件も適切に指定する必要がある。
【0081】
例えば、すべての区間で目標位置rの速度を0であることを想定してBOでパラメータ設計を行うと、各区間の終端点で一旦停止することを前提としたパラメータが算出されてしまう。このようなパラメータを利用すると複数区間を連続して走行する際に適切な動作を生成することを保証できない。
【0082】
この課題は、各区間の境界条件(初期条件、終了条件)を考慮して、事前のパラメータ最適化を行えば解決することが出来る。例えば、
図9に示すように同一の区間であっても境界条件を変えた要素(ブロック)を事前に用意しておけばよい。そして、この境界条件が一致する要素のみを接続できるように制約条件を設ける。
【0083】
なお、境界条件は、要素のサイズ(移動可能な距離)と移動体のアクチュエーション能力(最大速度、最大加速度)に基づいて選定される。例えば、要素サイズ1mのx方向への移動を最小単位とする要素に対して、最大速度2m/s、最大加速度0.5m/s2の移動ロボットを適用しようとすると、ロボットが静止状態(0m/s)から最大加速度で走行を開始すると、速度1m/sに達するのに2sを要する。この時、ロボットの移動距離は1mになる。つまり、単一の要素(ブロック)ではロボットは最大速度の50%までしか到達することが出来ない。よって、「初期条件:速度0%、終了条件:100%」の要素は実現不可能なので事前に準備する必要がなくなる。「作業員が混在する通路では、ロボットの移動速度を1m/s以下にすること」など物流倉庫の安全規則を考慮して、準備する要素を選定しても良い。
【0084】
移動体B100が差動二輪のロボットでなく、4輪の車両又はロボットの場合は、その機構から最小旋回半径が決定される。このような場合、用意すべき要素(ブロック)の曲率の最小値は最小旋回半径に応じて設定できる。また、用意すべき要素(ブロック)の最大の曲率は移動体が導入される倉庫のレイアウトから一意に決定できる。
【0085】
<同じブロックでの目的が異なるものがあっても良い(例えば、省エネ重視、効率重視)>
なお、以上の説明では、
図9に一例を示したような、通過区間の形状と境界条件が定められた要素(ブロック)に対して、数式9を最小化するように調整した重みパラメータQ、Rを事前に設計していた。つまり、用意された要素(ブロック)は逸脱量eyを抑制しながら、できるだけtendを小さくする、言い換えれば、短時間で区間を通過するように、重みパラメータQ、Rを設計している。このような設計は移動ロボットをできるだけ高速走行させて、効率的に活用するという観点では望ましい設計である。ただし、搬送物品が多くないタイミングでは、移動ロボットを必ずしも高速で走行させる必要ない。そのような場合は、数式10のように、移動ロボットのSOC(State Of Charge)の変化値Eを考慮した評価値を最小化する重みパラメータQ、Rを用意することが望ましい。数式10を考慮して設計した重みパラメータQ、Rを利用するとSOC変化量(消費エネルギ)の少ない走行動作を実現できる。
【0086】
【0087】
以上のように、通過区間の形状と境界条件が同一であっても、異なる制御目的(効率重視、省エネ重視、安全重視など)を実現する場合は、
図10のように、異なる要素(ブロック)を用意することが望ましい。
【0088】
<本発明を利用してMPCの重みを変更する>
以上の説明を考慮すると、
図4Cに示した通過領域を、例えば、
図11Aに示すように6種類の7要素(ブロック)の組合せで移動経路を表現できる。各要素には、その区間を通過するのに最適な重み行列Qi、Ri(i=1、…、6)が与えられている。なお、
図9に示した最適化した要素(ブロック)が十分にあれば、
図4C区間をそのまま利用して、
図11Bのように区間ごとに重みを設定しても良い。
【0089】
図11A、11Bの境界条件はあくまでも一例であることに注意されたい。つまり、同一形状の経路であっても、異なる境界条件(速度)を与えることもできる。例えば、夜間など作業員が少ない時間帯は速度を上げた境界条件に変更しても良い。さらに、移動体が荷物を搬送しているときと荷物を回収しに行くとき(空荷状態での走行)で異なる境界条件を与えても良い。また、通過領域のすべてを同一の制御目的を達成する要素(ブロック)で構成する必要もない。例えば、区間2や区間4のように旋回動作を行う区間には安全重視の要素(ブロック)を利用して、区間1、区間3、区間5は効率重視の要素(ブロック)を利用しても良い。
【0090】
前述の通り、
図4Cに示した区間を
図11Aのような要素に分割する操作も通過区間設定部A103にて実行される。各要素に対応する最適な重み行列Qi、Riはパラメータ記録部A105に格納されている。
【0091】
パラメータ記録部A105に記録されている重みパラメータを移動体制御部A104で利用する方法を
図12A、12Bを利用して説明する。ここでは、説明を簡単にするため、予測ステップNを3とする。
【0092】
図12Aに示すように、移動体B100の現在位置X0から3ステップ先の予測位置X3までの全てが同一の要素内に収まる場合、評価関数設定部A104aで利用される重みはQ1、R1であり、評価関数Jは数式11で与えられる。
【0093】
【0094】
一方、
図12Bに示すように、移動体B100の現在位置X0から予測位置X3までに要素を横断する場合、予測位置に応じて利用する重みも変更する。つまり、予測位置X3に対しては、Q2、R2を利用する。よって、評価関数設定部A104aで設定される評価関数Jは数式12になる。
【0095】
【0096】
<要素(ブロック)と重みパラメータの格納場所>
移動体B100が、一般的な移動ロボットの場合、搭載している記録装置(記録部M01)の記録容量には余裕がないことが予想される。そのような場合、重みパラメータの最適化が完了した要素(ブロック)の全てを移動体の記録装置に格納することは難しい。よって、最適化が完了した要素(ブロック)は管理サーバB104の記録装置で管理されることが望ましい。このような実行形態では、移動先設定部A102が定めた目標位置rに移動するために必要な要素(ブロック)のみを通過区間設定部A103が決定したタイミングで、管理サーバB104から移動体B100に配信し、必要な情報を移動体B100が受信したら走行を開始するような運用になる。
【0097】
<経路計画システムの処理手順>
これまでに説明した移動体走行制御システムの処理手順を
図13のフローチャートを用いて説明する。なお、
図13のフローチャートでは、パラメータ記録部A105に最適な重みパラメータが記録されていることを前提とする。
【0098】
まず、Fc001で移動体B100の現在位置を確認(計算)する。この処理は移動体位置取得部A101に相当する。Fc001が終了すると、Fc002へと遷移する。
【0099】
Fc002では、取得した移動体B100の位置に基づいて、移動体に割付可能なタスクがあるかを確認する。タスクが無い(Fc002:No)、つまり、運搬、回収すべき荷物が無い場合には、移動体B100を動かす必要が無いため、Fc001へと戻る。タスクがある場合(Fc002:Yes)はFc003へと遷移する。なお、移動体B100が運搬、回収すべき荷物が無い場合でも、その場に移動体B100が留まることで他の移動体の移動を妨げるような場合には、別の場所に移動させるタスクを生成しても良い。同様に移動体B100がバッテリで駆動されるタイプのロボットの場合、バッテリ残量が少なければ、充電ステーションへと移動するタスクを生成しても良い。
【0100】
Fc003では、割り付けられたタスク対応する目標位置rを決定する。Fc002、Fc003の処理は移動先設定部A102で実行される。Fc003が終了すると、Fc004へと遷移する。
【0101】
Fc004では、移動体B100の現在位置Xから目標位置rまでの通過領域が設定される。さらに、通過領域を構成する区間、および、その区間を構成するのに必要な要素(ブロック)も決定される。以上の処理は、通過区間設定部A103に相当する。通過領域、区間、要素(ブロック)の構成が完了すると、Fc005に遷移する。
【0102】
Fc005では、移動体B100の現在位置Xに対応する要素(ブロック)の重みパラメータを設定する。この処理は、パラメータ記録部A105に相当する。前述のように、管理サーバB104にすべての要素(ブロック)と最適なパラメータが記録されている場合には、このタイミングで移動体B100に必要な情報を提供する。
【0103】
Fc006では、Fc005で設定した重みパラメータを利用して評価関数Jを構築する。この処理は、評価関数設定部A104aに相当する。
【0104】
Fc007では、設定された評価関数Jを最小化するように、予測ステップ内での制御入力を計算し、かつ、計算された制御入力を利用して移動体の予測位置を演算する。この処理は、予測制御部A104bに相当する。
【0105】
Fc008では、Fc007で計算した移動体の予測位置が次の要素(ブロック)に入っていないかを確認する。すべての予測位置が現在の要素(ブロック)内にある場合(No)はFc009へと遷移する。一方、予測位置が次の要素(ブロック)に移動している場合(Yes)はFc010へと遷移する。
【0106】
Fc009では、決定された重みパラメータを利用して評価関数Jを構築し、この関数を利用して最適な制御入力を算出する。この処理も、予測制御部A104bで実行される。ここで求めた制御入力に従ってアクチュエータを駆動する。
【0107】
Fc010では、
図12Bで示したように、重みパラメータの記録されている要素(ブロック)と移動体予測位置に応じて、評価関数を構築するための重みの変更を行う。重みの変更が完了すると、Fc009へと遷移し、最適な制御入力を算出する。
【0108】
以上の処理が制御周期ごとに繰り返される。
【0109】
<ブロック配信サービス>
これまでの説明では、1つの物流倉庫を対象とした説明を行ってきた。ただし、制御対象の移動体B100(ロボット)が同一であれば、倉庫が異なったとしても同一の制御パラメータを与えれば、同様の走行動作を実現することが出来る。つまり、ある倉庫A向けに用意した、要素(ブロック)と重みパラメータの組合せは、異なる倉庫Bでも活用することが出来る。
【0110】
図14に示すように、システム設計者が汎用性の高い要素(ブロック)と重みパラメータの組合せを事前準備しておけば、用意されている要素(ブロック)を事業者が組み合わせて移動計画を作れば、異なる事業者が運営する倉庫であっても移動ロボットを最適に制御することが可能になる。
【0111】
システム設計者が制御パラメータの最適化を完了した要素(ブロック)を事前に準備しておけば、事業者は制御設計を行う必要が無く、境界条件が一致するブロックを接続しさえすれば、移動体を最適に制御することが出来る。よって、本発明を運用するにあたっては、境界条件の設定された要素(ブロック)をGUI(Graphical User Interface)上で組み替える事業者向けのソフトウェアを用意することが望ましい。
【0112】
図15は、そのようなGUIの一例である。事業者である倉庫運用者は倉庫のレイアウトに合わせて、「走行経路ブロック」から走行経路を構成する要素を選択して、「走行レイアウト」上で各要素を繋ぎ合わせることで走行計画を構成する。また、「走行経路ブロック」から選択した要素は「ブロックプロパティ」に示したように、境界条件(初期速度、終端速度)と制御方式を個別に設定することが出来る。
【0113】
このようなソフトウェアを利用すれば、事業者は複雑なプログラムを書くことなく、容易な経路設計、および、その経路を最適に走行する制御の設計を同時に実現することが出来る。
【0114】
本実施形態の主な特徴は、次のようにまとめることもできる。
【0115】
移動体制御システムは、
図1に示すように、移動体B100の位置を取得する移動体位置取得部A101と、移動体B100の移動先を設定する移動先設定部A102と、移動先までの移動体B100の通過区間を設定する通過区間設定部A103と、通過区間において移動体B100の制御を行う移動体制御部A104と、移動体B100の制御で利用される制御パラメータを記録するパラメータ記録部A105と、を備える。
【0116】
通過区間は、複数の基本形状の区間(要素:ブロック)から構成される。それぞれの区間には、移動体B100が区間に入るときと区間から出るときの移動体B100の状態量(例えば、速度、角速度)で定義される境界条件と、制御パラメータ(例えば、重みパラメータQ、R)とが対応付けられる。パラメータ記録部A105は、移動体B100の位置を含む区間に対応する制御パラメータを移動体制御部A104に提供する。
【0117】
通過区間が変わっても基本形状の区間の組み合わせを変更することで、それぞれの区間に対応する制御パラメータを用いて移動体B100の制御が適切に行なわれる。その結果、通過区間に応じた移動体B100の制御設計を容易に行うことができる。なお、それぞれの区間と制御パラメータ等との対応関係は、例えば、データベース(管理サーバB104の記録装置)に記録される(以下同じ)。
【0118】
移動体制御部A104は、移動体B100の状態量Xkの少なくとも1つの関数と移動体B100への制御入力ukの少なくとも1つの関数とそれぞれの関数に対応する重みパラメータ(例えば、Q、R)から評価関数Jを設定する評価関数設定部A104aと、k(k=1,2,…)ステップの移動体B100の状態量Xkと評価関数Jから移動体B100への制御入力ukを算出し、kステップの移動体B100の状態量Xkと移動体B100への制御入力ukから(k+1)ステップの移動体B100の状態量Xk+1を算出する予測制御部A104bと、を備える。制御パラメータは、例えば、重みパラメータである。パラメータ記録部A105は、移動体の状態量Xkによって示される予測位置を含む区間(要素:ブロック)に対応する重みパラメータを評価関数設定部A104aに提供する。
【0119】
隣接する2つの予測位置が2つの区間の境界をまたいでもそれぞれの予測位置を含む区間に対応する重みパラメータを用いて評価関数Jが設定されることで、それぞれの区間に応じて適切なモデル予測制御が行なわれる。
【0120】
通過区間を構成するそれぞれの区間(要素:ブロック)は、制御対象である移動体B100の運動特性(アクチュエーション能力)及び移動体が通過する通路のレイアウトを制約条件として選択される。
【0121】
通過区間を構成するそれぞれの区間の候補を制約条件で絞ることで、移動体B100の運動特性と通路のレイアウトに応じて適切に区間を選択することができる。なお、制約条件を満たす区間は、例えば、通過区間設定部A103によって選択されるが、ユーザが選択してもよい。
【0122】
図10に示すように、制御パラメータ(例えば、重みパラメータQ、R)は、それぞれの区間(要素:ブロック)における制御目的(例えば、効率重視、省エネ重視、安全重視)に応じて設定され、制御目的に対応付けられる。
【0123】
例えば、ユーザによって選択された制御目的に対応する制御パラメータを有する区間を用いて通過区間を構成することで、制御目的に応じた移動体の制御設計を容易に行うことができる。
【0124】
移動体制御システムは、
図15に示すように、複数の基本形状の区間のいずれかをユーザが選択する第1領域と、ユーザによって選択された区間を順次接続して通過区間を設計する第2領域と、前記ユーザによって選択された前記区間に対応する境界条件を前記ユーザが変更する第3領域と、から構成される画面を表示するユーザーインターフェースを備える。通過区間設定部A103は、変更前の境界条件に対応する区間を、それと形状が同一であり、かつ変更後の境界条件に対応する区間に置き換える。
【0125】
このようなユーザーインターフェースを用いることで、ユーザは通過区間を直感的に設計することができる。また、ユーザは通過区間に応じた移動体B100の制御設計を容易に行うことができるとともに、境界条件を容易に変更することができる。なお、ユーザーインターフェースは、例えば、ディスプレイ等の表示装置から構成される。ユーザは、マウス、キーボード等の入力装置を用いて、基本形状の区間を選択したり、境界条件を変更(入力)したりする。
【0126】
図11Aに示すように、隣接する2つの区間(要素:ブロック)が接続される位置において、一方の区間に対応する境界条件(例えば、速度)は、他方の区間に対応する境界条件と同一又は等価の条件である。
【0127】
これにより、隣接する2つの区間の境界を移動体B100がまたいで移動するときに、移動体B100の挙動の変化を抑制することができる。なお、通過区間設定部A103は、例えば、一方の境界条件と他方の境界条件の差が閾値以下の場合、両者の境界条件は等価であると判定する。
【0128】
例えば、通過区間設定部A103は、
図11Aに示すように、通過区間を構成するそれぞれの区間(要素:ブロック)を選択する。
【0129】
これにより、通過区間を構成するそれぞれの区間をユーザが選択しなくても通過区間を設計することができる。なお、
図10に示すように、形状と境界条件(初期条件、終了条件)が同じ区間が複数ある場合は、例えば、デフォルト値として予め設定された制御目的に対応する制御パラメータを有する区間を通過区間設定部A103が選択してもよいし、ユーザに選択させてもよい。
【0130】
移動体制御システムは、
図2に示すように、移動体B100と、サーバ(管理サーバB104)と、を備える。移動先設定部A102、通過区間設定部A103、及びパラメータ記録部A105は、サーバ(管理サーバB104)に設けられる。移動体位置取得部A101、評価関数設定部A104a、及び予測制御部A104bは、移動体B100又はサーバ(管理サーバB104)に設けられる。
【0131】
これにより、移動先設定部A102、通過区間設定部A103、及びパラメータ記録部A105は、移動体B100よりも豊富なサーバ(管理サーバB104)のシステムリソースを利用することができる。
【0132】
移動体位置取得部A101、移動先設定部A102、通過区間設定部A103、移動体制御部A104、及びパラメータ記録部A105は、少なくともプロセッサから構成される。
【0133】
プロセッサが所定のプログラムを実行することで、ソフトウェア的に移動体位置取得部A101、移動先設定部A102、通過区間設定部A103、移動体制御部A104、及びパラメータ記録部A105の機能を実現することができる。なお、パラメータ記録部A105は、プロセッサと記録装置から構成され、プロセッサはデータを記録装置に記録したり、記録装置からデータを読み出したりする。
【0134】
詳細には、移動先設定部A102、通過区間設定部A103、及びパラメータ記録部A105は、少なくともサーバ(管理サーバB104)のプロセッサから構成される。移動体位置取得部A101、評価関数設定部A104a、及び予測制御部A104bは、少なくとも移動体B100又はサーバ(管理サーバB104)のプロセッサから構成される。
【0135】
これにより、サーバのプロセッサと移動体のプロセッサを用いて分散処理を行うことができる。
【0136】
以上、物流倉庫を例に本発明の実施形態を詳細に述べたが、本発明の適用先がこの場合に限定されないことは言うまでもない。たとえば、港湾における搬送車両の移動経路生成、テーマパーク内を移動するロボットの経路生成などにも活用できる。
【0137】
また、上述した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0138】
上記の各構成、機能等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサ(コントローラ)がそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0139】
本発明の実施形態は、以下の態様であってもよい。
【0140】
(C1).アクチュエータと状態量を検出するセンサ、および、センサから自身の位置を算出する自己位置演算部を備えた移動体と、前記移動体に移動先を決定する移動先設定部、前記移動先設定部で決められた移動先までに通過する区間を算出する通過区間設定部、前記通過区間設定部で決められた通過区間において移動体の挙動を制御する移動体制御部、を備えた移動体制御システムにおいて、前記通過区間設定部は、区間の形状、および、その区間に出入りする際の移動体の状態量で定義される複数の基本パターンで通過区間を定義しており、さらに、前記通過区間設定部の通過区間ごとに移動体制御部で利用する制御パラメータを記録するパラメータ記録部を有し、前記パラメータ記録部は、前記自己位置演算部で算出した移動体の位置に基づいて、制御パラメータを前記移動体制御部に提供することを特徴とする。
【0141】
(C2).(C1)の移動体制御システムにおいて、前記移動体制御部は、移動体の状態量とアクチュエータへの指令値を用いて表現される1つ以上の関数とそれらの関数に対応する重みパラメータで定義される評価関数を構築する評価関数設定部と、予測ステップ数までの移動体の挙動を予測する機能を有し、各予測ステップにおいて、前回ステップより前記評価関数設定部で定めた評価関数の値が減少するように制御入力を算出する予測制御部から構成され、前記パラメータ記録部に記録されている制御パラメータは、前記評価関数設定部で利用する重みパラメータであり、かつ、前記パラメータ記録部は、前記自己位置演算部で算出した移動体の現在位置と、前記予測制御部で算出した移動体の予測位置に基づいて、重みパラメータを前記評価関数設定部に提供することを特徴とする移動体制御システム。
【0142】
(C3).(C1)の移動体制御システムにおいて、前記通過区間設定部で定義する基本パターンは制御対象である移動体の運動特性、および、移動体が走行するレイアウトを制約条件として、移動体が実現可能な走行動作範囲の中で設定されることを特徴とする移動体制御システム。
【0143】
(C4).(C1)の移動体制御システムにおいて、前記パラメータ記録部は、通過区間設定部で定義した基本パターンに加えて、その基本パターンを通過するときの制御目的に応じて異なる制御パラメータを記録することを特徴とする移動体制御システム。
【0144】
(C5).(C1)の移動体制御システムにおいて、前記通過区間設定部は、区間の形状、および、その区間に出入りする際の移動体の状態量で定義される複数の基本パターンを有しており、これらの基本パターンを選択可能なユーザーインターフェースを備えており、前記ユーザーインターフェース上で、選択した基本パターンを接続して走行レイアウトを設計し、かつ、選択した基本パターンの区間に出入りする際の移動体の状態量を変更できることを特徴とする移動体制御システム。
【0145】
(C1)-(C5)によれば、倉庫や工場などに自律移動体を導入する際に、事前に詳細な地図構築を行うことなく、かつ、現地での移動体を制御パラメータの調整を省略することで、迅速にシステム導入を可能とする。
【符号の説明】
【0146】
A101…移動体位置取得部
A101a…センサ
A101b…自己位置演算部
A102…移動先設定部
A103…通過区間設定部
A104…移動体制御部
A104a…評価関数設定部
A104b…予測制御部
A105…パラメータ記録部
B100…移動体
B101…走行許可通路
B102…棚
B103…作業員
B104…管理サーバ
B105…無線通信装置
B106…インフラセンサ
M01…記録部
M02…通信部
M03…センサ
M04…移動体制御部
M05…自己位置演算部
M06…アクチュエータ