(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-27
(45)【発行日】2024-07-05
(54)【発明の名称】移動体の制御方法、移動体及びプログラム
(51)【国際特許分類】
G05D 1/43 20240101AFI20240628BHJP
B62D 6/00 20060101ALI20240628BHJP
B62D 1/28 20060101ALI20240628BHJP
【FI】
G05D1/43
B62D6/00
B62D1/28
(21)【出願番号】P 2021065478
(22)【出願日】2021-04-07
【審査請求日】2023-03-29
(73)【特許権者】
【識別番号】000232807
【氏名又は名称】三菱ロジスネクスト株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】藤島 泰郎
(72)【発明者】
【氏名】荒木 亮次
(72)【発明者】
【氏名】高木 一茂
(72)【発明者】
【氏名】▲高▼尾 健司
(72)【発明者】
【氏名】知識 陽平
【審査官】影山 直洋
(56)【参考文献】
【文献】特開2020-070121(JP,A)
【文献】特開2020-118586(JP,A)
【文献】特表2020-532775(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/43
B62D 6/00
B62D 1/28
(57)【特許請求の範囲】
【請求項1】
自動で移動する移動体の制御方法であって、
前記移動体を第1パスに沿って移動させるステップと、
前記移動体が第1パスに沿って移動中に、前記移動体に設けられたセンサに目標物の位置及び姿勢を検出させるステップと、
前記目標物の位置及び姿勢に基づき、前記目標物に対して所定の位置及び姿勢となる目標位置までの第2パスを設定するステップと、
前記第1パスから前記第2パスに切り替えて、前記移動体を前記第2パスに沿って移動させるステップと、
現在以降の各離散時刻である先読みステップ毎の、前記目標物の位置と前記移動体の位置との
距離を示す偏差が小さくなるほど
、評価が高くなる評価関数に基づき
、前記偏差が最小となるような前記先読みステップ毎の前記移動体の位置及び姿勢を、最適化計算
により算出して、算出した前記先読みステップ毎の前記移動体の位置及び姿勢を、第3パス
として設定するステップと、
前記第2パスから前記第3パスに切り替えて、前記移動体を前記第3パスに沿って移動させるステップと、
を含む、
移動体の制御方法。
【請求項2】
前記第1パスは、前記目標物が設置される設置領域よりも第1方向側で、前記第1方向と交差する第2方向に前記設置領域を横切る経路であり、
前記第1パスに沿って移動させるステップにおいては、前記第2方向において前記設置領域よりも一方側の第1位置から、前記第2方向において前記設置領域よりも他方側の第2位置まで、前記第1パスに沿って前記移動体を移動させ、
前記目標物の位置及び姿勢を検出させるステップにおいては、前記移動体が前記第1位置から前記第2位置までの移動の最中に、前記センサに前記目標物の位置及び姿勢を検出させる、請求項1に記載の移動体の制御方法。
【請求項3】
前記第2パスを設定するステップにおいては、前記第1パスの前記第1位置から前記第2位置までの軌道に重なる直線軌道と、前記直線軌道に接続される円弧軌道とを含むように、前記第2パスを設定する、請求項2に記載の移動体の制御方法。
【請求項4】
前記第2パスを設定するステップにおいては、前記円弧軌道として、前記第1方向において前記設置領域と反対側に向かう第1円弧軌道と、前記第1円弧軌道に接続されて前記第1方向において前記設置領域側に向かう第2円弧軌道とを含むように、前記第2パスを設定する、請求項3に記載の移動体の制御方法。
【請求項5】
前記移動体が前記第2パスに沿って移動中における前記センサによる前記目標物の検出精度と、前記移動体の進行方向と、前記移動体と前記目標物との間の距離との、少なくとも1つに基づき、前記第2パスから前記第3パスに切り替えるかを判断するステップをさらに含む、請求項1から請求項4のいずれか1項に記載の移動体の制御方法。
【請求項6】
前記第2パスから前記第3パスに切り替えるかを判断するステップにおいては、前記目標物の検出精度の信頼度が所定値以上であり、前記移動体が前記目標物に近づく方向に進行しており、かつ、前記移動体と前記目標物との間の距離が所定距離以下である場合に、前記第2パスから前記第3パスに切り替えると判断する、請求項5に記載の移動体の制御方法。
【請求項7】
前記第3パスを設定するステップにおいては、前記目標物の位置と前記移動体の位置とを逐次検出させて、前記第3パスを逐次更新する、請求項1から請求項6のいずれか1項に記載の移動体の制御方法。
【請求項8】
前記移動体及び前記目標物の位置及び姿勢の少なくとも一方を逐次検出して、前記移動体の位置及び姿勢の少なくとも一方が前記目標物の位置及び姿勢の少なくとも一方と合致する第4パスを
、前記移動体及び前記目標物の位置及び姿勢の少なくとも一方を検出する毎に逐次設定するステップと、
前記第3パスから前記第4パスに切り替えて、前記移動体を前記第4パスに沿って移動させるステップと、をさらに含む、請求項1から請求項7のいずれか1項に記載の移動体の制御方法。
【請求項9】
前記移動体が切替位置に到達した場合に、前記第3パスから前記第4パスに切り替えると判断するステップをさらに含み、
前記切替位置は、前記移動体が有する移動及び操舵の制約下で、前記目標物の位置及び姿勢に応じて前記目標物に到達する際の前記移動体の位置及び姿勢に課せられる条件を満たして、前記移動体を前記目標物に到達させることが可能な位置である、請求項8に記載の移動体の制御方法。
【請求項10】
前記第4パスを設定するステップにおいては、前記移動体の操舵角の正負を切り替えることなく前記移動体が前記目標物に到達可能であるかを判断し、到達可能でない場合には、
前記目標物の位置が前記移動体の位置と合致するように前記第4パスを設定し、到達可能である場合には、
前記目標物の姿勢が前記移動体の姿勢と合致するように前記第4パスを設定する、請求項8又は請求項9に記載の移動体の制御方法。
【請求項11】
自動で移動する移動体であって、
前記移動体を第1パスに沿って移動させる移動制御部と、
前記移動体が前記第1パスに沿って移動中に、前記移動体に設けられたセンサに目標物の位置及び姿勢を検出させる検出制御部と、
を含み、
前記移動制御部は、
前記第1パスから、前記目標物の位置及び姿勢に基づき設定された前記目標物に対して所定の位置及び姿勢となる目標位置までの第2パスに切り替えて、前記移動体を前記第2パスに沿って移動させ、
前記第2パスから、
現在以降の各離散時刻である先読みステップ毎の、前記目標物の位置と前記移動体の位置との
距離を示す偏差が小さくなるほど
、評価が高くなる評価関数に基づき
実行された、前記偏差が最小となるような前記先読みステップ毎の前記移動体の位置及び姿勢を算出する最適化計算により設定された、
前記先読みステップ毎の前記移動体の位置及び姿勢である第3パスに切り替えて、前記移動体を前記第3パスに沿って移動させる、
移動体。
【請求項12】
自動で移動する移動体の制御方法をコンピュータに実行させるプログラムであって、
前記移動体を第1パスに沿って移動させるステップと、
前記移動体が第1パスに沿って移動中に、前記移動体に設けられたセンサに目標物の位置及び姿勢を検出させるステップと、
前記目標物の位置及び姿勢に基づき、前記目標物に対して所定の位置及び姿勢となる目標位置までの第2パスを設定するステップと、
前記第1パスから前記第2パスに切り替えて、前記移動体を前記第2パスに沿って移動させるステップと、
現在以降の各離散時刻である先読みステップ毎の、前記目標物の位置と前記移動体の位置との
距離を示す偏差が小さくなるほど
、評価が高くなる評価関数に基づき
、前記偏差が最小となるような前記先読みステップ毎の前記移動体の位置及び姿勢を、最適化計算
により算出して、算出した前記先読みステップ毎の前記移動体の位置及び姿勢を、第3パス
として設定するステップと、
前記第2パスから前記第3パスに切り替えて、前記移動体を前記第3パスに沿って移動させるステップと、
を、コンピュータに実行させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、移動体の制御方法、移動体及びプログラムに関する。
【背景技術】
【0002】
例えばフォークリフトなどの移動体を、自動的に目標位置まで移動させる技術が知られている。特許文献1には、移動体に設けられた測域センサで検出した目標物の位置情報に基づき、目標物までのアプローチ軌道を決定する旨が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1に記載の方法は、フォークリフトがパレットにある程度近接してからの制御方法として予め用意されたアプローチ軌道データを逐次補正しながらフォークリフトを移動させるとしている。しかしながら、係るアプローチ軌道データがどのようなデータであるのかが不明である。また、不明なアプローチ軌道データをどのように補正するのかも当然不明である。また、例えばパレットなどの目標物の位置が想定からずれている場合には、特許文献1に記載の方法では目標位置に適切にアプローチできない可能性もある。従って、目標位置まで適切にアプローチすることが求められている。
【0005】
本開示は、上述した課題を解決するものであり、目標位置まで適切にアプローチ可能な移動体の制御方法、移動体及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するために、本開示に係る移動体の制御方法は、自動で移動する移動体の制御方法であって、前記移動体を第1パスに沿って移動させるステップと、前記移動体が第1パスに沿って移動中に、前記移動体に設けられたセンサに目標物の位置及び姿勢を検出させるステップと、前記目標物の位置及び姿勢に基づき、前記目標物に対して所定の位置及び姿勢となる目標位置までの第2パスを設定するステップと、前記第1パスから前記第2パスに切り替えて、前記移動体を前記第2パスに沿って移動させるステップと、前記目標物の位置と前記移動体の位置との偏差が小さくなるほど評価が高くなる評価関数に基づき最適化計算を行い、第3パスを設定するステップと、前記第2パスから前記第3パスに切り替えて、前記移動体を前記第3パスに沿って移動させるステップと、を含む。
【0007】
上述した課題を解決し、目的を達成するために、本開示に係る移動体は、自動で移動する移動体であって、前記移動体を第1パスに沿って移動させる移動制御部と、前記移動体が前記第1パスに沿って移動中に、前記移動体に設けられたセンサに目標物の位置及び姿勢を検出させる検出制御部と、を含み、前記移動制御部は、前記第1パスから、前記目標物の位置及び姿勢に基づき設定された前記目標物に対して所定の位置及び姿勢となる目標位置までの第2パスに切り替えて、前記移動体を前記第2パスに沿って移動させ、前記第2パスから、前記目標物の位置と前記移動体の位置との偏差が小さくなるほど評価が高くなる評価関数に基づき実行された最適化計算により設定された第3パスに切り替えて、前記移動体を前記第3パスに沿って移動させる。
【0008】
上述した課題を解決し、目的を達成するために、本開示に係るプログラムは、自動で移動する移動体の制御方法をコンピュータに実行させるプログラムであって、前記移動体を第1パスに沿って移動させるステップと、前記移動体が第1パスに沿って移動中に、前記移動体に設けられたセンサに目標物の位置及び姿勢を検出させるステップと、前記目標物の位置及び姿勢に基づき、前記目標物に対して所定の位置及び姿勢となる目標位置までの第2パスを設定するステップと、前記第1パスから前記第2パスに切り替えて、前記移動体を前記第2パスに沿って移動させるステップと、前記目標物の位置と前記移動体の位置との偏差が小さくなるほど評価が高くなる評価関数に基づき最適化計算を行い、第3パスを設定するステップと、前記第2パスから前記第3パスに切り替えて、前記移動体を前記第3パスに沿って移動させるステップと、を、コンピュータに実行させる。
【発明の効果】
【0009】
本開示によれば、目標位置まで適切にアプローチすることができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、第1実施形態に係る移動制御システムの模式図である。
【
図3】
図3は、管理システムの模式的なブロック図である。
【
図4】
図4は、情報処理装置の模式的なブロック図である。
【
図5】
図5は、移動体の制御装置の模式的なブロック図である。
【
図10】
図10は、第1実施形態に係る移動体の移動制御フローを説明するフローチャートである。
【
図11】
図11は、本例に係る第2パスの設定フローを示すフローチャートである。
【
図12】
図12は、単円弧パスを第2パスとして設定する場合を説明する模式図である。
【
図13】
図13は、複円弧パスを第2パスとして設定する場合を説明する模式図である。
【
図14】
図14は、第2パスから第3パスへの切り替えを判断する手順を説明するフローチャートである。
【
図16】
図16は、第4パスの設定を説明するフローチャートである。
【発明を実施するための形態】
【0011】
以下に添付図面を参照して、本発明の好適な実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではなく、また、実施形態が複数ある場合には、各実施形態を組み合わせて構成するものも含むものである。
【0012】
(第1実施形態)
(移動制御システムの全体構成)
図1は、第1実施形態に係る移動制御システムの模式図である。
図1に示すように、第1実施形態に係る移動制御システム1は、移動体10、管理システム12、及び情報処理装置14を含む。移動制御システム1は、設備Wに所属する移動体10の移動を制御するシステムである。設備Wは、例えば倉庫など、物流管理される設備である。移動制御システム1においては、移動体10によって設備Wの領域AR内に配置された目標物Pをピックアップして搬送させる。領域ARは、例えば設備Wの床面であり、目標物Pが設置されたり移動体10が移動したりする領域である。目標物Pは、本実施形態では、パレット上に荷物が積載された搬送対象物である。目標物Pは、前面Paに、移動体10の後述するフォーク24が挿入される開口Pbが形成されている。ただし、目標物Pは、パレット上に荷物が積載されたものに限られず任意の形態であってよく、例えばパレットを有さず荷物のみであってもよい。以下、領域ARに沿った一方向を、方向Xとし、領域Aに沿った方向であって方向Xに交差する方向を、方向Yとする。本実施形態では、方向Yは、方向Xに直交する方向である。方向X、方向Yは、水平方向といってもよい。また、方向X、方向Yに直交する方向を、すなわち鉛直方向を、方向Zとする。
【0013】
設備W内の領域ARには、複数の設置領域AR0が設けられている。設置領域AR0は、目標物Pが設置される領域である。設置領域AR0は、目標物Pを設置すべき領域として、予め設定される。設置領域AR0は、例えば白線などで区分されており、設置領域AR0の位置(座標)、形状、及び大きさは、予め設定されている。設置領域AR0内においては、目標物Pは、前面Paが方向X側を向くように配置されている。目標物Pは、方向Zから見て前面Paに直交する軸PXが方向Xと沿うように、すなわち目標物Pの向きが設置領域AR0に対してずれないように、設置領域AR内に配置されることが好ましい。しかし、目標物Pは、
図1に示すように、軸PXが方向Xと沿わずに軸PXが方向Xから傾斜して、すなわち設置領域ARに対して向きがずれて設置されることがある。例えば、目標物Pは、軸PXと方向Xとの傾斜角度が、45度以下となるように、設置領域AR0に配置されることが好ましい。
【0014】
なお、本実施形態では、設置領域AR0は、設備Wの床である領域ARに設けられているが、それに限られず、例えば目標物Pを設備Wに搬入した車両の荷台内に設けられてもよい。また、本実施形態では、設置領域AR0は、目標物P毎に区画されており、設置領域AR0には目標物Pが1つ配置されるが、それに限られない。例えば、設置領域AR0は、フリースペースとして、複数の目標物Pが設置されるように設定されていてもよい。また、
図1の例では設置領域AR0は矩形であるが、形状及び大きさは任意であってよい。また、領域ARに設けられる設置領域AR0の数も任意であってよい。
【0015】
移動体10は、自動で移動可能な装置である。本実施形態では、移動体10は、フォークリフトであり、さらにいえば、いわゆるAGF(Automated Guided Forklift)である。
図1に例示すように、移動体10は、設備Wにおける領域AR上を移動する。移動体10は、第1パスR1(オリジナルパス)に従って、第1位置A1から第2位置A2まで移動しつつ、後述するセンサ26によって目標物Pの位置及び姿勢を検出する。ここでの目標物Pの位置とは、方向X及び方向Yに沿った二次元面における座標を指し、目標物Pの姿勢とは、方向X及び方向Yに直交する方向から見た場合の、X方向を0°とした際の軸PXの傾き角度を指す。移動体10は、第2位置A2に到達したら、目標物Pの位置及び姿勢に基づいて設定された第2パスR2(グローバルパス)に従って、第2位置A2から目標物Pに向けて移動し、途中で、最適化計算により設定された第3パスR3(ローカルパス)に切り替えて、第3パスR3に沿ってさらに目標物Pの近くまでアプローチする。そして、移動体10は、第3パスR3から、フィードバック制御により設定された第4パスR4に切り替えて、第4パスR4に沿って目標物Pに到達して、目標物Pをピックアップする。なお、方向X及び方向Yに沿った二次元面における座標系は、領域ARにおける基準点を原点とした領域AR基準のローカル座標系であってもよいし、地球上の基準点を原点としたグローバル座標系としてもよい。なお、
図1に示す第1パスR1、第2パスR2、第3パスR3、及び第4パスR4は一例であり、第1パスR1、第2パスR2、第3パスR3、及び第4パスR4の詳細については後述する。
【0016】
(移動体)
図2は、移動体の構成の模式図である。
図2に示すように、移動体10は、車体20と、車輪20Aと、ストラドルレッグ21と、マスト22と、フォーク24と、センサ26と、制御装置28とを備えている。ストラドルレッグ26は、車体20の前後方向における一方の端部に設けられて、車体20から突出する一対の軸状の部材である。車輪20Aは、それぞれのストラドルレッグ26の先端と、車体20とに設けられている。すなわち、車輪20Aは、合計3個設けられているが、車輪20Aの設けられる位置や個数は任意であってよい。マスト22は、ストラドルレッグ21に移動可能に取り付けられ、車体20の前後方向に移動する。マスト22は、前後方向に直交する上下方向(ここでは方向Z)に沿って延在する。フォーク24は、マスト22に方向Zに移動可能に取付けられている。フォーク24は、マスト22に対して、車体20の横方向(上下方向及び前後方向に交差する方向)にも移動可能であってよい。フォーク24は、一対のツメ24A、24Bを有している。ツメ24A、24Bは、マスト22から車体20の前方向に向けて延在している。ツメ24Aとツメ24Bとは、マスト22の横方向に、互いに離れて配置されている。以下、前後方向のうち、移動体10においてフォーク24が設けられている側の方向を、前方向とし、フォーク24が設けられていない側の方向を、後方向とする。
【0017】
センサ26は、車体20の周辺に存在する対象物の位置及び姿勢の少なくとも1つを検出する。センサ26は、移動体10に対する対象物の位置と、移動体10に対する対象物の姿勢とを検出するともいえる。本実施形態では、センサ26はそれぞれのストラドルレッグ21の先端と、車体20の後方向側とに設けられている。ただし、センサ26の設けられる位置はこれに限られず、任意の位置に設けられてもよいし、設けられる数も任意であってよい。例えば、移動体10に設けられる安全センサを、センサ26として流用してもよい。安全センサを流用することで、新たにセンサを設ける必要がなくなる。
【0018】
センサ26は、例えばレーザ光を照射するセンサである。センサ26は、一方向(ここでは横方向)に走査しつつレーザ光を照射し、照射したレーザ光の反射光から、対象物の位置及び向きを検出する。すなわち、センサ26は、いわゆる2D-LiDAR(Light Detection And Ranging)であるともいえる。ただし、センサ26は、以上のものに限られず任意の方法で対象物を検出するセンサであってよく、例えば、複数の方向に走査されるいわゆる3D-LiDARであってもよいし、カメラであってもよい。
【0019】
制御装置28は、移動体10の移動を制御する。制御装置28については後述する。
【0020】
(管理システム)
図3は、管理システムの模式的なブロック図である。管理システム12は、設備Wにおける物流を管理するシステムである。管理システム12は、本実施形態ではWMS(Warehouse Management System)であるが、WMSに限られず任意のシステムであってよく、例えば、その他の生産管理系システムのようなバックエンドシステムでも構わない。管理システム12が設けられる位置は任意であり、設備W内に設けられてもよいし、設備Wから離れた位置に設けられて、離れた位置から設備Wを管理するものであってもよい。管理システム12は、コンピュータであり、
図3に示すように、通信部30と記憶部32と制御部34とを含む。
【0021】
通信部30は、制御部34に用いられて、情報処理装置14などの外部の装置と通信するモジュールであり、例えばアンテナなどを含んでよい。通信部30による通信方式は、本実施形態では無線通信であるが、通信方式は任意であってよい。記憶部32は、制御部34の演算内容やプログラムなどの各種情報を記憶するメモリであり、例えば、RAM(Random Access Memory)と、ROM(Read Only Memory)のような主記憶装置と、HDD(Hard Disk Drive)などの外部記憶装置とのうち、少なくとも1つ含む。
【0022】
制御部34は、演算装置であり、例えばCPU(Central Processing Unit)などの演算回路を含む。制御部34は、作業決定部36を含む。制御部34は、記憶部32からプログラム(ソフトウェア)を読み出して実行することで、作業決定部36を実現して、その処理を実行する。なお、制御部34は、1つのCPUによって処理を実行してもよいし、複数のCPUを備えて、それらの複数のCPUで、処理を実行してもよい。また、作業決定部36を、ハードウェア回路で実現してもよい。また、記憶部32が保存する制御部34用のプログラムは、管理システム12が読み取り可能な記録媒体に記憶されていてもよい。
【0023】
作業決定部36は、搬送する対象となる目標物Pを決定する。具体的には、作業決定部36は、例えば入力された作業計画に基づき、搬送する対象となる目標物Pの情報を示す作業内容を決定する。作業内容は、搬送する対象となる目標物Pを特定する情報であるともいえる。本実施形態の例では、作業内容は、どの設備にあるどの目標物Pを、いつまでに、どこに搬送するかを、作業内容として決定する。すなわち、作業決定部36は、対象となる目標物Pが保管されている設備と、対象となる目標物Pと、目標物Pの搬送先と、目標物Pの搬送時期とを、を示す情報である。作業決定部36は、決定した作業内容を、通信部30を介して、情報処理装置14に送信する。
【0024】
(情報処理装置)
図4は、情報処理装置の模式的なブロック図である。情報処理装置14は、設備Wに設けられ、少なくとも、移動体10の移動に関する情報などを演算する装置、いわゆる地上システムである。情報処理装置14は、コンピュータであり、
図4に示すように、通信部40と記憶部42と制御部44とを含む。通信部40は、制御部44に用いられて、管理システム12や移動体10などの外部の装置と通信するモジュールであり、例えばアンテナなどを含んでよい。通信部40による通信方式は、本実施形態では無線通信であるが、通信方式は任意であってよい。記憶部42は、制御部44の演算内容やプログラムなどの各種情報を記憶するメモリであり、例えば、RAMと、ROMのような主記憶装置と、HDDなどの外部記憶装置とのうち、少なくとも1つ含む。なお、本実施形態では、管理システム12と情報処理装置14とが別の装置であったが、一体の装置であってもよい。すなわち、管理システム12が情報処理装置14の少なくとも一部の機能を兼ね備えてよいし、情報処理装置14が管理システム12の少なくとも一部の機能を兼ね備えてよい。
【0025】
制御部44は、演算装置であり、例えばCPUなどの演算回路を含む。制御部44は、作業内容取得部50と、移動体選定部52と、第1パス取得部54とを含む。制御部44は、記憶部42からプログラム(ソフトウェア)を読み出して実行することで、作業内容取得部50と移動体選定部52と第1パス取得部54とを実現して、それらの処理を実行する。なお、制御部44は、1つのCPUによってこれらの処理を実行してもよいし、複数のCPUを備えて、それらの複数のCPUで、処理を実行してもよい。また、作業内容取得部50と移動体選定部52と第1パス取得部54との少なくとも一部を、ハードウェア回路で実現してもよい。また、記憶部42が保存する制御部44用のプログラムは、情報処理装置14が読み取り可能な記録媒体に記憶されていてもよい。
【0026】
(作業内容取得部及び移動体選定部)
作業内容取得部50は、管理システム12が決定した作業内容の情報、すなわち搬送対象となる目標物Pの情報を取得する。作業内容取得部50は、作業内容における目標物Pの情報から、目標物Pが設置されている設置領域AR0を特定する。例えば、記憶部42には、目標物Pと、その目標物Pが設置されている設置領域AR0とが、関連付けて記憶されており、作業内容取得部50は、記憶部42からその情報を読み出すことで、設置領域AR0を特定する。移動体選定部52は、対象となる移動体10を選定する。移動体選定部52は、例えば、設備Wに所属する複数の移動体から、対象となる移動体10を選定する。移動体選定部52は、任意の方法で対象となる移動体10を選定してよいが、例えば、作業内容取得部50が特定した設置領域AR0に基づき、その設置領域AR0にある目標物Pの搬送に適した移動体10を、対象となる移動体10として選定してよい。
【0027】
(第1パス取得部)
第1パス取得部54は、作業内容取得部50が特定した設置領域AR0までの第1パスR1の情報を、取得する。第1パスR1は、例えば設置領域AR0毎に、予め設定されている。第1パス取得部54は、例えば記憶部42から、作業内容取得部50が特定した設置領域AR0に対して設定された第1パスR1を、取得する。以下、第1パスR1について具体的に説明する。第1パスR1は、方向X及び方向Yに沿った二次元面における座標系を基準として設定されるため、領域AR基準のローカル座標系における軌道であってもよいし、グローバル座標系における軌道であってもよい。
【0028】
図1に示すように、第1パスR1は、移動体10が向かう設置領域AR0(目標物P)よりも方向X側で、方向Yに沿って設置領域AR0(目標物P)を横切る軌道となっている。より詳しくは、第1パスR1は、検出軌道R1aと、検出軌道R1aに接続されるアプローチ軌道R1bとを含む。
【0029】
図1に示すように、検出軌道R1aは、設置領域AR0(目標物P)よりも方向X側で、方向Yに沿って設置領域AR0(目標物P)を横切る軌道である。検出軌道R1aは、設置領域AR0までの方向Xにおける距離が、所定距離の範囲内となるように設定されることが好ましい。ここでの所定距離は、検出軌道R1aを移動中の移動体10のセンサ26によって、設置領域AR0内の目標物Pの位置及び姿勢が検出可能な距離である。より詳しくは、本実施形態においては、検出軌道R1aは、第1位置A1から第2位置A2までの軌道である。第1位置A1は、設置領域AR0よりも方向X側であり、かつ、設置領域AR0よりも方向Yと反対方向側の位置として設定されている。第2位置A2は、設置領域AR0よりも方向X側であり、かつ、設置領域AR0よりも方向Y側の位置として設定されている。本実施形態においては、第1位置A1と第2位置A2は、設置領域AR0までの方向Xにおける距離が、所定距離の範囲内となるように設定されており、第1位置A1と第2位置A2との方向Xにおける位置(X座標)は、一致している。検出軌道R1aは、第1位置A1から第2位置A2までの、方向Yに沿った直線軌道として設定される。ただし、第1位置A1と第2位置A2との、方向Xにおける位置(X座標)は、一致していなくてもよい。また、検出軌道R1aは、直線軌道であることに限られず、第1位置A1から第2位置A2までで任意の軌跡を描く軌道であってよい。
【0030】
図1に示すように、アプローチ軌道R1bは、第2位置A2から設置領域AR0に向かう軌道である。より詳しくは、アプローチ軌道R1bは、第2位置A2から、設定位置A3zまでの軌道である。設定位置A3zは、設置領域AR0内における目標物Pの位置及び姿勢が所定の状態を満たす(目標物Pが設置領域AR0に対してずれ無く理想的に配置されている)と仮定した場合に、目標物Pに対して所定の位置及び姿勢となる位置及び姿勢である。すなわち、設定位置A3zは、目標物Pの位置及び姿勢が所定の状態を満たすと仮定した場合に、移動体10が目標物Pをピックアップ可能な位置及び姿勢であり、目標物Pの位置及び姿勢が所定の状態を満たす場合の目標位置A3であるともいえる。
図1の例では、アプローチ軌道R1bは、第2位置A2から、第2位置A2よりも方向Yと反対側の中間位置ASB0までの直線軌道と、中間位置ASB0から設定位置A3zまでの曲線軌道と、を含む。第2位置A2から中間位置ASB0までの直線軌道は、検出軌道R1aに重なることが好ましい。
【0031】
なお、図示は省略するが、第1パスR1は、移動体10の移動開始位置から第1位置A1までの軌道も含んでよい。
【0032】
ただし、第1パスR1は、以上のような軌道であることに限られない。例えば、第1パスR1の検出軌道R1aは、方向Yに平行な軌道でなくてもよい。また例えば、第1パスR1は、アプローチ軌道R1bを含まないものであってよい。すなわち、第1パスR1は、少なくとも、第1位置A1から第2位置A2までの検出軌道R1aを含むものであってよい。さらにいえば、第1パスR1は、検出軌道R1aのような設置領域AR0(目標物P)を横切る軌道を含むことにも限られず、例えば、設置領域AR0(目標物P)の前面に向けて直線的に近づいていく軌道などであってもよい。またさらにいえば、第1パスR1は、移動体10が後方向に直進して設置領域AR0(目標物P)を横切り第2位置A2で切り返すことに限られず、移動体10が前方向に直進して旋回することで設置領域AR0(目標物P)の前面に向けて近づいていく軌道などであってもよい。
【0033】
第1パスR1は、設備Wの地図情報に基づき予め設定される。設備Wの地図情報は、設備Wに設置されている障害物(柱など)や移動体10が走行可能な通路などの位置情報を含んだ情報であり、領域AR内で移動体10が移動可能な領域を示す情報といえる。また、第1パスR1は、設備Wの地図情報に加えて、移動体10の車両仕様の情報にも基づき、設定されてよい。車両仕様の情報とは、例えば、移動体10の大きさや最小旋回半径など、移動体10が移動可能な経路に影響を及ぼす仕様である。車両仕様の情報にも基づき第1パスR1が設定されている場合、第1パスR1は、移動体毎に設定されてよい。なお、第1パスR1は、人によって、地図情報や車両仕様の情報などに基づき設定されてもよいし、情報処理装置14などの装置によって、地図情報や車両仕様の情報などに基づき、自動的に設定されてもよい。自動的に第1パスR1を設定する場合、例えば通過して欲しいポイント(Waypoint)を指定してもよく、この場合、通過して欲しいポイントを通過しつつ、最短、かつ障害物(壁などの固定物)を避けた第1パスR1の設定が可能となる。
【0034】
なお、第1パス取得部54は、予め設定された第1パスR1を読み出すことなく、第1パスR1を設定してもよい。この場合、第1パス取得部54は、対象となる移動体10の位置情報と、設置領域AR0の位置情報と、設備Wの地図情報とに基づき、移動体10の現在位置から、第1位置A1、第2位置A2を経由して、移動先である設定位置A3zまでの経路を、第1パスR1として生成してよい。
【0035】
情報処理装置14は、取得した第1パスR1の情報を、通信部40を介して、対象となる移動体10に送信する。第1パスR1は、設置領域AR0に向かう経路であるため、移動体10の移動に関する情報であるといえる。
【0036】
(移動体の制御装置)
次に、移動体10の制御装置28について説明する。
図5は、移動体の制御装置の模式的なブロック図である。制御装置28は、移動体10を制御する。制御装置28は、コンピュータであり、
図5に示すように、通信部60と記憶部62と制御部64とを含む。通信部60は、制御部64に用いられて、情報処理装置14などの外部の装置と通信するモジュールであり、例えばアンテナなどを含んでよい。通信部60による通信方式は、本実施形態では無線通信であるが、通信方式は任意であってよい。記憶部62は、制御部64の演算内容やプログラムなどの各種情報を記憶するメモリであり、例えば、RAMと、ROMのような主記憶装置と、HDDなどの外部記憶装置とのうち、少なくとも1つ含む。
【0037】
制御部64は、演算装置であり、例えばCPUなどの演算回路を含む。制御部64は、第1パス情報取得部70と、移動制御部72と、検出制御部74と、第2パス情報取得部76と、第3パス情報取得部78と、第4パス情報取得部80とを含む。制御部64は、記憶部62からプログラム(ソフトウェア)を読み出して実行することで、第1パス情報取得部70と移動制御部72と検出制御部74と第2パス情報取得部76と第3パス情報取得部78と第4パス情報取得部80とを実現して、それらの処理を実行する。なお、制御部64は、1つのCPUによってこれらの処理を実行してもよいし、複数のCPUを備えて、それらの複数のCPUで、処理を実行してもよい。また、第1パス情報取得部70と移動制御部72と検出制御部74と第2パス情報取得部76と第3パス情報取得部78と第4パス情報取得部80との少なくとも一部を、ハードウェア回路で実現してもよい。また、記憶部62が保存する制御部64用のプログラムは、制御装置28が読み取り可能な記録媒体に記憶されていてもよい。
【0038】
(第1パス情報取得部)
第1パス情報取得部70は、第1パスR1の情報を取得する。第1パス情報取得部70は、その移動体10が作業対象として選定された際に、情報処理装置14から第1パスR1の情報を取得してもよいし、予め記憶部62に記憶された第1パスR1の情報を読み出してもよい。
【0039】
(移動制御部)
移動制御部72は、移動体10の駆動部やステアリングなどの移動機構を制御して、移動体10の移動を制御する。移動制御部72は、第1パス情報取得部70が取得した第1パスR1に従って、移動体10を移動させる。移動制御部72は、現在の移動体10の位置から、第1位置A1を経由して第2位置A2まで、第1パスR1を通るように、移動体10を移動させる。移動制御部72は、移動体10の位置情報を逐次把握することで、第1パスR1を通るように、移動体10を移動させる。移動体10の位置情報の取得方法は任意であるが、例えば本実施形態では、設備Wに図示しない検出体が設けられており、移動制御部72は、検出体の検出に基づき移動体10の位置及び姿勢の情報を取得する。具体的には、移動体10は、検出体に向けてレーザ光を照射し、検出体によるレーザ光の反射光を受光して、設備Wにおける自身の位置及び姿勢を検出する。ここでの移動体10の位置とは、設備Wの領域ARにおける方向X及び方向Yの二次元座標であり、以下においても、位置とは、別途説明が無い限り、領域ARにおける二次元座標を指す。また、移動体10の姿勢とは、方向X及び方向Yに直交する方向Zから見た場合に、X方向を0°とした際の移動体10のヨー角(回転角度)である。また、移動体10の位置及び姿勢の情報の取得方法は、検出体を用いることに限られず、例えば、SLAM(Slmultaneous Localization and Mapping)を用いてもよい。
【0040】
(検出制御部)
検出制御部74は、センサ26に、目標物Pの位置及び姿勢を検出させ、センサ26による目標物Pの位置及び姿勢の検出結果を取得する。
【0041】
(第2パス情報取得部)
第2パス情報取得部76は、目標物Pの位置及び姿勢に基づいて設定される第2パスR2の情報を取得する。第2パス情報取得部76の具体的な処理は後述する。
【0042】
(第3パス情報取得部)
第3パス情報取得部78は、最適化計算により設定される第3パスR3の情報を取得する。第3パス情報取得部78の具体的な処理は後述する。
【0043】
(第4パス情報取得部)
第4パス情報取得部80は、目標物Pと移動体10との相対位置及び相対姿勢の少なくとも一方に基づきフィードバック制御を行うことで設定される第4パスR4の情報を取得する。第4パス情報取得部80の具体的な処理は後述する。
【0044】
(制御装置の処理)
次に、移動体10が目標物Pに向かう際の制御装置28の処理について説明する。
【0045】
(第1パスに沿った移動)
図6は、第1パスを説明する模式図である。
図6に示すように、制御装置28の移動制御部72は、第1パス情報取得部70が取得した第1パスR1に従って、移動体10を移動させる。移動制御部72は、現在の移動体10の位置から、第1位置A1を経由して第2位置A2まで、第1パスR1を通るように、移動体10を移動させる。第1パスR1は、目標物Pや移動体10の位置及び姿勢によらず、予め設定される軌道といえる。
【0046】
(第1パスでの目標物の検出)
検出制御部74は、
図6に示すように、移動体10が、第1パスR1に沿って第1位置A1から第2位置A2までの間を移動中に、すなわち検出軌道R1aを移動中に、センサ26に、目標物Pの位置及び姿勢を検出させる。検出制御部74は、センサ26に、位置が既知である設置領域AR0に向けて検出を行わせることで、目標物Pを検出させる。
【0047】
例えばセンサ26がレーザ光を照射する構成の場合、検出制御部74は、移動体10が第1位置A1から第2位置A2までの間を移動中に、センサ26を横方向(水平方向)に走査させつつ、センサ26からレーザ光LTを照射させる。移動体10のX方向と反対方向側にある目標物Pは、センサ26からのレーザ光LTを反射する。センサ26は、目標物Pからの反射光を受光する。検出制御部74は、センサ26が受光した反射光の検出結果に基づき、計測点の集合である点群を取得する。計測点とは、レーザ光LTが反射された位置(座標)を示す点であり、点群とは、レーザ光LTが反射された位置を示す点の集合を指す。本実施形態では、検出制御部74は、反射光の検出結果に基づき、反射光が反射された箇所の位置(座標)を、計測点として算出する。検出制御部74は、各計測点(点群)に基づき、例えばRANSACアルゴリズムを用いて直線を抽出し、その直線の位置及び姿勢を、目標物Pの位置及び姿勢(目標物Pの前面Paの位置及び姿勢)として算出する。例えば、検出制御部74は、各計測点(点群)のうちで設置領域AR0に近いROI(Regions Of Interest)内にある計測点を抽出し、抽出した計測点のうちからRANSACアルゴリズムにより選択した2つの計測点を結ぶ直線を、直線候補として取得する。そして、検出制御部74は、複数の直線候補のうちから、例えば各計測点と直線候補との垂直距離が短い直線候補を、目標物Pの前面Paの位置及び姿勢に相当する直線として抽出して、目標物Pの位置及び姿勢を算出する。ただし、センサ26の検出結果に基づく目標物Pの位置及び姿勢の算出方法は、任意であってよい。
【0048】
検出制御部74は、第1位置A1に位置してから第2位置A2に到達するまでの期間全体にわたって、センサ26に目標物Pの位置及び姿勢を検出させてよい。ただし、検出制御部74は、第1位置A1から第2位置A2までの期間全体にわたってセンサ26に検出させることに限られず、第1位置A1に位置してから第2位置A2に到達するまでの期間で、少なくとも1回センサ26に検出させればよく、その期間の間で複数回センサ26に検出させることがより好ましい。さらに言えば、検出制御部74は、移動体10が第1位置A1から第2位置A2までの間を移動中に、センサ26が目標物Pの位置及び姿勢の検出に成功するまで検出を続けさせ、検出に成功したら、検出を停止させてよい。
【0049】
なお、本実施形態においては、移動制御部72は、第1パスR1に沿って、移動開始位置から第1位置A1を経て第2位置A2まで移動体10を移動させる際に、第1位置A1において停止させることなく移動体10を移動させる。さらに言えば、移動制御部72は、第1パスR1に沿って移動体10を移動させる際に、第1位置A1から第2位置A2までの移動体10の移動速度を、第1位置A1までの移動体10の移動速度から変化させない。ただし、移動制御部72は、第1位置A1において移動体10を一旦停止させてもよい。また、移動制御部72は、第1位置A1から第2位置A2までの移動体10の移動速度を、第1位置A1までの移動体10の移動速度よりも遅くしてもよい。第1位置A1から第2位置A2までの移動体10の移動速度を遅くすることで、目標物Pの位置及び姿勢を適切に検出させることができる。
【0050】
以下、センサ26が検出した目標物Pの位置及び姿勢を示す情報を、適宜、位置姿勢情報と記載する。検出制御部74は、センサ26が検出した位置姿勢情報を取得する、といえる。
【0051】
(第2パスの設定)
図7は、第2パスを説明する模式図である。第2パス情報取得部76は、第1パスR1に沿って移動中にセンサ26が検出した位置姿勢情報に基づき設定された第2パスR2の情報を取得する。
図7に示すように、第2パスR2は、目標物Pの位置姿勢情報に基づき設定される、第2位置A2から目標位置A3までの軌道である。目標位置A3は、目標物Pに対して所定の位置及び姿勢となる位置及び姿勢である。本実施形態では、目標位置A3は、移動体10が目標物Pをピックアップ可能な位置及び姿勢といえる。なお、第2パスR2は、第2位置A2を開始位置とする軌道であることに限られず、例えば、第2位置A2からずれた開始位置から目標位置A3までの軌道であってもよい。この場合、移動体10は、第2パスR2の開始位置まで、予め設定された軌道(例えば第1パスR1)に沿って移動してよい。なお、
図7に示す第1パスR1及び第2パスR2は、一例である。第2パスR2は、方向X及び方向Yに沿った二次元面における座標系を基準として設定されるため、領域AR基準のローカル座標系における軌道であってもよいし、グローバル座標系における軌道であってもよい。
【0052】
本実施形態においては、第2パス情報取得部76が、すなわち移動体10自身が、センサ26が検出した位置姿勢情報に基づき、第2パスR2を設定する。第2パス情報取得部76は、第1パスR1に沿った移動の最中にセンサ26が検出した位置姿勢情報から、目標位置A3を設定する。例えば、第2パス情報取得部76は、目標物Pの位置及び姿勢から、目標物Pをピックアップ可能な(直進することでフォーク24を目標物Pの開口Pbに挿入することができる)位置及び姿勢を算出して、目標位置A3として設定する。一例として、開口Pbの入口から、目標物Pの開口Pbの軸方向に1000mm平行移動した箇所を、目標位置A3としてもよい。そして、第2パス情報取得部76は、開始位置である第2位置A2から、設定した目標位置A3までの軌道を、第2パスR2として設定する。
【0053】
本実施形態では、第2パス情報取得部76は、目標物Pの位置及び姿勢に基づき、直線軌道R2aと円弧軌道R2bとを含むように、第2パスR2を設定する。直線軌道R2aとは、直線状の軌跡を描く軌道である。直線軌道R2aは、第2パスR2の開始位置である第2位置A2から、中間位置ASBまでの軌道である。中間位置ASBは、第1パスR1上の第1位置A1と第2位置A2との間に位置する。すなわち、直線軌道R2aは、第2位置A2から中間位置ASBまでの、第1パスR1(より詳しくは検出軌道R1a)に重なる軌道であり、進行方向が検出軌道R1aとは反対方向となる。円弧軌道R2bは、円弧上の軌跡を描く軌道を含んだ軌道である。円弧軌道R2bにおける円弧状の軌跡の半径を旋回半径rとすると、第2パス情報取得部76は、旋回半径rを設定して、設定した旋回半径rと目標物Pの位置及び姿勢とに基づき、円弧軌道R2bを設定する。旋回半径rは、例えば車両仕様などから、任意に設定してよい。
【0054】
円弧軌道R2bは、直線軌道R2aに接続される軌道であり、中間位置ASBから目標位置A3までの軌道である。従って、円弧軌道R2bは、X方向と反対方向側に、言い換えればY方向に直交する方向において設置領域AR0(目標物P)に近づく側に、進行する軌道である。
図7の例では、円弧軌道R2bは、中間位置ASBから、中間位置ASBと目標位置A3との間の中間位置までの円弧状の軌道と、中間位置から目標位置A3までの直線状の軌道とを含む。ただし、円弧軌道R2bは、中間位置ASBから目標位置A3までの全区間において、円弧状の軌道であってもよい。すなわち、円弧軌道R2bは、円弧状の軌道と直線状の軌道で構成されていてもよいし、円弧状の軌道のみから構成されていてもよい。円弧軌道R2bは、円弧及び直線以外の軌跡を描く軌道(非線形の軌道)を含まないことが好ましい。
【0055】
なお、第2パスR2は、以上のように直線軌道R2aと円弧軌道R2bを含む軌道であることに限られず、第1パスR1に沿って移動中にセンサ26が検出した位置姿勢情報に基づいて設定された、目標位置A3までの任意の軌道であってよい。また、本実施形態においては、第2パスR2は、一度設定された後に更新されることがなく、移動体10が第2パスR2に沿って移動中に、第2パスR2が設定し直されないことが好ましい。
【0056】
(第2パスに沿った移動)
本実施形態では、移動制御部72は、移動体10が第2位置A2に到着したら、移動体10の移動を一旦停止させる。そして、第2パス情報取得部76は、移動体10が第2位置A2で停止したら、演算を開始して、第2パスR2を取得する。移動制御部72は、第2パスR2が取得されたら、使用する経路を第1パスR1から第2パスR2に切り替えて、第2パスR2を通るように、第2位置A2から目標位置A3に向けて、移動体10を移動させる。移動制御部72は、移動体10の位置及び姿勢を逐次検出して、移動体10の位置及び姿勢が第2パスR2に沿うように、すなわち第2パスR2に追従するように、移動体10を移動させる(経路追従制御)。具体的には、移動制御部72は、第2位置A2で切り返して、第2位置A2から中間位置ASBまで、第2パスR2の直線軌道R2aに沿って、第1パスR1の検出軌道R1aとは反対方向に、すなわち方向Yと反対方向に、移動体10を移動させる。そして、中間位置ASBに到達したら、移動制御部72は、直線軌道R2aから円弧軌道R2bに切り替えて、すなわち進行方向を変化させて、円弧軌道R2bに沿って、移動体10を目標位置A3に向けて移動させる。
【0057】
なお、移動制御部72は、第2位置A2で移動体10の移動を停止させることに限られない。この場合例えば、第2パス情報取得部76は、目標物Pの位置姿勢情報が取得されたら、第1位置A1から第2位置A2までの移動中に、すなわち第2位置A2への到着前に、第2パスR2を取得しておく。そして、移動制御部72は、移動体10が第1パスR1を通って第2位置A2に到着したら、第2位置A2で停止させることなく(進行方向の切替に伴い必要となる停止時間を除く)、第1パスR1から第2パスR2に切り替えて、第2位置A2から、第2パスR2を通って移動体10を移動させる。
【0058】
なお、目標物Pの位置及び姿勢によっては、第2パスR2に切り替えず、引き続き第1パスR1を用いて目標物Pにアプローチしてもよい。この場合、第2パス情報取得部76は、センサ26が検出した目標物Pの位置姿勢情報に基づき、第2パスR2の設定が必要かを判断する。第2パス情報取得部76は、目標物Pの位置及び姿勢が、所定の範囲内にある場合に、第2パスR2の設定が必要ではないと判断し、所定の範囲外にある場合に、第2パスR2の設定が必要であると判断する。所定の範囲内とは、設置領域AR0に対する目標物Pの位置及び姿勢のずれが少ないことを指し、目標物Pの位置及び姿勢が所定の範囲内にある場合には、第1パスR1のアプローチ軌道R1b(
図1参照)を用いて、目標物Pをピックアップ可能な目標位置A3まで到達可能となる。言い換えれば、第2パス情報取得部76は、目標物Pの位置姿勢情報に基づき、アプローチ軌道R1bの到達位置である設定位置A3zに向かえば、目標物Pのピックアップが可能かを判断する。第2パス情報取得部76は、目標物Pの位置及び姿勢が所定の範囲内にある場合に、設定位置A3zから目標物Pをピックアップ可能として、第2パスR2の設定が不要と判断する。一方、第2パス情報取得部76は、目標物Pの位置及び姿勢が所定の範囲外にある場合に、設定位置A3zから目標物Pをピックアップできないとして、第2パスR2の設定が必要と判断する。なお、ここでの所定の範囲は、車両仕様の情報などから、任意の方法で設定されてよく、予め算出しておいてよい。
【0059】
第2パス情報取得部76が第2パスR2の設定が不要と判断した場合には、移動制御部72は、引き続き第1パスR1を使用し、第1パスR1のアプローチ軌道R1bを通るように、第2位置A2から設定位置A3zに向けて移動体10を移動させる。一方、第2パス情報取得部76が第2パスR2の設定が必要と判断した場合には、移動制御部72は、上述のように、第2パスR2に切り替えて、目標位置A3に向けて移動体10を移動させる。
【0060】
(第3パスの設定)
図8は、第3パスを説明する模式図である。上述のように、第2パスR2は、目標物Pをピックアップ可能な目標位置A3までの経路であるため、移動体10は、第2パスR2に沿って移動することで目標位置A3まで到達して、目標物Pをピックアップできる。しかし、移動体10が外乱の影響などで第2パスR2から外れたり、第2パスR2の設定に用いたセンサ26の検出結果に誤差があったりするなどの理由により、移動体10が目標物Pをピックアップ可能な位置に到達できないおそれがある。それに対し、本実施形態の移動体10は、
図8に示すように、第2パスR2に沿って移動中に、センサ26で目標物Pを適切に検出できる程度まで目標物Pに近づいたら、第2パスR2から第3パスR3に切り替えて、第3パスR3に沿って目標物Pにアプローチしてゆくことで、目標物Pに高精度にアプローチすることが可能となる。以下、第3パスR3について説明する。
【0061】
本実施形態においては、第3パス情報取得部78は、第2パスR2に沿って移動中の移動体10が、センサ26によって目標物Pを連続して適切に検出可能な検出可能位置A4に到達したら、第3パスR3を設定する。すなわち、検出制御部74は、移動体10が第2パスR2に沿って移動中にも、センサ26に目標物Pを検出させる。そして、第3パス情報取得部78は、検出可能位置A4における、センサ26による目標物Pの位置及び姿勢の検出結果を取得する。また、第3パス情報取得部78は、移動体10の位置及び姿勢の検出結果も取得する。そして、第3パス情報取得部78は、目標物Pの位置と移動体10の位置との偏差が小さくなるほど評価が高くなる評価関数に基づき最適化計算を行うことで、第3パスR3を設定する。すなわち、第3パス情報取得部78は、移動体10の現在位置から目標物Pに近づく経路を最適化計算で算出して、第3パスR3とする。第3パスR3に切り替える位置である検出可能位置A4は、任意の基準で設定してよい。
【0062】
なお、第3パスR3の設定の際に目標物Pを検出するセンサ26は、第2パスR2の設定の際に用いたセンサ26と同じであるが、それに限られず、第2パスR2の設定の際に用いたセンサ26と異なるセンサであってもよい。
【0063】
(第3パスに沿った移動)
移動制御部72は、第2パスR2に沿って移動する移動体10が、検出可能位置A4に到達し、第3パスR3が設定されたら、使用する経路を第2パスR2から第3パスR3に切り替えて、第3パスR3に沿って移動体10を移動させる。移動制御部72は、第3パスR3に沿って移動体10を移動させる場合には、第2パスR2のように経路追従制御を行わない。第3パス情報取得部78は、所定周期毎に、センサ26による目標物Pの位置及び姿勢の検出結果と、移動体10の位置及び姿勢の検出結果を取得して、第3パスR3を更新する。移動制御部72は、第3パスR3が更新される毎に、更新された第3パスR3に切り替えて、更新された第3パスR3に沿って移動体10を移動させる。このように第3パスR3を逐次更新することで、経路追従制御が不要となる。
【0064】
なお、第2パスR2を用いずに、第1パスR1に沿って移動を継続していた場合には、移動制御部72は、検出可能位置A4に到達したら、第1パスR1から第3パスR3に切り替える。この場合の第3パスR3への切替方法や第3パスR3の設定方法は、上述の第2パスR2から第3パスR3に切り替える場合と同様である。
【0065】
また、第2パスR2(又は第1パスR1)から第3パスR3への切り替えは必須ではない。例えば、第2パスR2(又は第1パスR1)に沿って移動中に、検出可能位置A4に到達に到達したと判定されないが、後述の切替位置A5に到達した場合には、第2パスR2(又は第1パスR1)から第4パスR4に切り替えてよい。このように第3パスR3に切り替えない場合でも、検出可能位置A4に到達したかの判断は行われるため、第2パスR2(又は第1パスR1)から第3パスR3へ切り替えるかの判断自体は実施される。
【0066】
(第4パスの設定)
図9は、第4パスを説明する模式図である。
図9に示すように、第4パス情報取得部80は、第3パスR3に沿って移動中の移動体10が、目標物Pに十分近い位置である切替位置A5に到達したら、第4パスR4を設定する。より詳しくは、移動体10が切替位置A5に到達したら、検出制御部74は、センサ26に目標物Pの位置及び姿勢を検出させる。切替位置A5は、任意の基準で設定されてよい。第4パス情報取得部80は、目標物Pの位置及び姿勢の少なくとも一方の検出結果と、移動体10の位置及び姿勢の少なくとも一方の検出結果とに基づき、フィードバック制御(直接フィードバック制御)を行うことで、移動体10を目標物Pにアプローチさせる第4パスR4を設定する。すなわち、第4パス情報取得部80は、目標物Pと移動体10との相対位置と、目標物Pと移動体10との相対姿勢との少なくとも一方に基づき、フィードバック制御を行うことで、第4パスR4を設定する。本実施形態では、第4パス情報取得部80は、目標物Pと移動体10との相対位置と、目標物Pと移動体10との相対姿勢との両方に基づき、フィードバック制御を行うことで、第4パスR4を設定する。すなわち、第4パスR4は、移動体10及び目標物Pの位置及び姿勢を逐次検出して、移動体10の位置及び姿勢が目標物Pの位置及び姿勢と合致するように、移動体10の位置及び姿勢がフィードバック制御される経路といえる。
【0067】
なお、第4パスR4の設定の際に目標物Pを検出するセンサ26は、第2パスR2や第3パスR3の設定の際に用いたセンサ26と同じであるが、それに限られず、第2パスR2や第3パスR3の設定の際に用いたセンサ26と異なるセンサであってもよい。
【0068】
(第4パスに沿った移動)
移動制御部72は、第3パスR3に沿って移動する移動体10が切替位置A5に到達し、第4パスR4が設定されたら、使用する経路を第3パスR3から第4パスR4に切り替えて、第4パスR4に沿って移動体10を移動させる。第4パス情報取得部80は、所定周期毎に、センサ26による目標物Pの位置及び姿勢の検出結果と、移動体10の位置及び姿勢の検出結果を取得して、第4パスR4を更新する。移動制御部72は、第4パスR4が更新される毎に、更新された第4パスR4に切り替えて、更新された第4パスR4に沿って移動体10を移動させる。移動体10は、第4パスR4に沿って移動して、目標物Pに到達して開口Pbにフォーク24を挿入し、目標物Pをピックアップする。移動制御部72は、目標物Pをピックアップした移動体10を、設定された搬送先まで搬送させる。
【0069】
なお、第3パスR3を用いずに、第2パスR2(又は第1パスR1)に沿って移動中に切替位置A5に到達した場合には、移動制御部72は、第2パスR2(又は第1パスR1)から第4パスR4に切り替える。この場合の第4パスR4への切り替え方法や第3パスR3の設定方法は、上述の第3パスR3から第4パスR4に切り替える場合と同様である。
【0070】
また、第4パスR4への切り替えは必須でなく、移動制御部72は、第1パスR1、第2パスR2、及び第3パスR3の少なくとも1つを用いて、移動体10を移動させてよい。
【0071】
(移動制御フロー)
以上説明した移動体10の移動制御のフローを、フローチャートに基づき説明する。
図10は、第1実施形態に係る移動体の移動制御フローを説明するフローチャートである。
図10に示すように、移動体10の制御装置28は、第1パス情報取得部70により、第1パスR1の情報を取得して、移動制御部72により、第1パスR1に従って、移動体10を第1位置A1まで移動させる(ステップS10)。制御装置28は、移動制御部72により、第1位置A1から第2位置A2まで第1パスR1(検出軌道R1a)に従って、移動体10を移動させつつ、検出制御部74により、センサ26に目標物Pの位置姿勢情報の検出を実行させる(ステップS12)。そして、制御装置28は、第2パス情報取得部76により、第1パスR1に従って移動中の目標物Pの位置姿勢情報の検出結果に基づき、第2パスR2を設定する(ステップS14)。制御装置28は、移動制御部72により、第1パスR1から第2パスR2に切り替えて、第2パスR2に従って移動体10を移動させる(ステップS16)。
【0072】
移動体10が第2パスR2に従って移動中に、センサ26で目標物Pを適切に検出可能な検出可能位置A4に到達したら(ステップS18;Yes)、制御装置28は、第3パス情報取得部78により、最適化計算により第3パスR3を設定し、移動制御部72により、第2パスR2から第3パスR3に切り替えて、第3パスR3に従って移動体10を移動させる(ステップS20)。制御装置28は、第3パスR3を逐次更新しつつ、第3パスR3に従って移動体10を移動させる。なお、移動体10が第2パスR2に従って移動中に、検出可能位置A4に到達していない場合には(ステップS18;No)、ステップS18に戻り、検出可能位置A4に到達するまで第2パスR2に従った移動を続ける。
【0073】
移動体10が第3パスR3に従って移動中に、切替位置A5に到達したら(ステップS22;Yes)、制御装置28は、第4パス情報取得部80により、フィードバック制御により第4パスR4を設定し、移動制御部72により、第3パスR3から第4パスR4に切り替えて、第4パスR4に従って移動体10を移動させる(ステップS24)。制御装置28は、第4パスR4を逐次更新しつつ、第4パスR4に従って移動体10を移動させることで、移動体10を目標物Pまで到達させる。なお、移動体10が第3パスR3に従って移動中に、切替位置A5に到達していない場合には(ステップS22;No)、ステップS22に戻り、切替位置A5に到達するまで第3パスR3に従った移動を続ける。
【0074】
(効果)
以上説明したように、本実施形態に係る移動体10は、第1パスR1、第2パスR2、第3パスR3、第4パスR4に移動経路を切り替えつつ、目標物Pにアプローチすることで、目標物P(目標位置)まで適切にアプローチすることができる。より具体的には、第1パスR1に沿って移動中に検出した目標物Pの位置姿勢情報に基づき設定した第2パスR2を用いることで、例えば目標物Pの位置や姿勢が設置領域AR0からずれていても、実際の目標物Pの位置及び姿勢に合わせて、目標物Pに適切にアプローチできる。さらに、移動体10が外乱の影響などで第2パスR2から外れたり、第2パスR2の設定に用いたセンサ26の検出結果に誤差があったりした場合でも、最適化計算を用いた第3パスR3に切り替えることで、目標物Pに適切にアプローチできる。さらに、目標物Pにより近接した切替位置A5で、サーボ方式の第4パスR4に切り替えることで、目標物Pに到達する直前に微調整しつつ、目標物Pに近づくことができる。
【0075】
なお、以上の説明では、第1パスR1を情報処理装置14が設定し、第2パスR2、第3パスR3、及び第4パスR4を移動体10の制御装置28が設定していたが、各パスの設定主体は、それらに限られず任意であってよい。例えば、第1パスR1を移動体10の制御装置28が設定してもよい。また例えば、第2パスR2、第3パスR3、及び第4パスR4の少なくとも1つを、制御装置28以外の装置(例えば情報処理装置14)が設定し、制御装置28が、その装置から第2パスR2、第3パスR3、及び第4パスR4の少なくとも1つ情報を取得してもよい。
【0076】
また、以上の説明では、移動体10は、第2位置A2まで、フォーク24が設けられていない後方向を進行方向前方として移動し、第2位置A2から切り返して、フォーク24が設けられている前方向を進行方向前方として、目標物Pにアプローチしていたが、移動体10の移動時の向きはそれに限られない。移動体10は、第2位置A2までにおいても、フォーク24が設けられている前方向を進行方向前方として移動してもよい。
【0077】
(第2パスの他の例)
次に、第2パスR2の他の例について説明する。本例では、第2パスR2を、目標物Pとは反対方向(X方向側)に膨らんで切り返しさせる必要があるかを判断する。以下、具体的に説明する。
【0078】
図11は、本例に係る第2パスの設定フローを示すフローチャートである。
図12は、単円弧パスを第2パスとして設定する場合を説明する模式図である。以降の説明においては、
図12に示すように、目標物Pの位置を、位置Pa1とする。そして、位置Pa1の方向X、方向Yにおける座標を、それぞれX
ref、Y
refとし、位置Pa1における目標物Pの姿勢(回転角度)を、θ
refとする。[X
ref、Y
ref、θ
ref]は、センサ26によって検出された目標物Pの位置及び姿勢に相当する。位置Pa1は、
図12の例では目標物Pの前面Paの中央位置であるが、位置Pa1は、前面Paの中央位置に限られず、目標物Pの任意の箇所の位置であってよい。また、
図12に示すように、第2パスR2の終点である目標位置A3の方向X、方向Yにおける座標を、それぞれX
TG、Y
TGとし、目標位置A3において移動体10のとる姿勢(回転角度)を、θ
TGとする。[X
TG、Y
TG、θ
TG]は、目標物Pの位置及び姿勢に相当する[X
ref、Y
ref、θ
ref]に基づき算出されて、[X
TG、Y
TG、θ
TG]に基づいて第2パスR2が設定される。以下、第2パスR2の設定フローを説明する。
【0079】
図11に示すように、本例においては、第2パス情報取得部76は、第2パスR2を設定する際に、目標物Pの位置姿勢情報に基づき、仮目標位置A3aの座標を算出する(ステップS30)。仮目標位置A3aは、
図12に示すように、目標物Pの位置Pa1から、目標物Pの前面Paの向いている方向に沿って所定の距離d
min離れた位置である。距離d
minは、予め設定されており、目標物Pをピックアップするための最後の直線軌道をどの程度残すかに応じて決定される。仮目標位置A3aの方向X、方向Yにおける座標を、それぞれX
TGa、Y
TGaとすると、X
TGa、Y
TGaは、次の式(1)、(2)に基づき算出される。
【0080】
XTGa=Xref+dmin・cosθref ・・・(1)
YTGa=Yref+dmin・sinθref ・・・(2)
【0081】
そして、
図11に示すように、第2パス情報取得部76は、仮目標位置A3aの座標と目標物Pの位置姿勢情報とに基づき、仮円弧軌道中心Caの座標を算出する(ステップS32)。仮円弧軌道中心Caは、
図12に示すように、仮目標位置A3aや目標物Pの位置Pa1よりも第2位置A2側(ここではY方向側)に位置しており、かつ、半径が旋回半径rとなり周が仮目標位置A3aに接する円の中心を指す。仮円弧軌道中心Caの方向X、方向Yにおける座標を、それぞれC
Xa、C
Yaとすると、C
Xa、C
Yaは、次の式(3)、(4)に基づき算出される。
【0082】
CXa=XTGa-r・sinθref ・・・(3)
CYa=YTGa-r・cosθref ・・・(4)
【0083】
そして、
図11に示すように、第2パス情報取得部76は、目標物Pの位置姿勢情報に基づき、第2パスR2において、目標位置A3(設置領域AR0)と反対側に向かう軌道が必要か、すなわちX方向側に向かう軌道が必要かを、判断する(ステップS34)。言い換えれば、第2パス情報取得部76は、目標物Pに到達するために、目標物Pとは反対方向(X方向側)に膨らんで切り返しさせる必要があるかを判断する。本実施形態では、第2パス情報取得部76は、第1パスR1の検出軌道R1aのX方向における座標X
SB1(
図12参照)と、仮円弧軌道中心CaのX方向における座標C
Xaと、旋回半径rとに基づき、目標位置A3と反対側に向かう軌道が必要かを判断する。具体的には、第2パス情報取得部76は、次の式(5)を満たす場合に、目標位置A3と反対側に向かう軌道が必要と判断し、次の式(5)を満たさない場合に、目標位置A3と反対側に向かう軌道が不要と判断する。
【0084】
XSB1<CXa+r ・・・(5)
【0085】
すなわち、仮円弧軌道中心Caの座標C
Xaから旋回半径rの長さ分方向Xに移動した位置が、検出軌道R1aの座標X
SB1よりもX方向側にある場合に、式(5)を満たし、検出軌道R1aの座標X
SB1よりもX方向側にない場合(X方向において座標X
SB1と同じ位置、又は座標X
SB1よりX方向と反対側にある場合)、式(5)を満たさないと判断する。なお、
図12に示すように、直線軌道R2aから円弧軌道R2bに切り替わる中間位置ASB1は、検出軌道R1a上にあるため、座標X
SB1は、中間位置ASB1のX方向における座標であるともいえる。座標X
SB1は、第1パスR1の情報として、第1パス情報取得部70によって取得される。
【0086】
(単円弧パスの設定)
図11に示すように、目標位置A3と反対側に向かう軌道が不要と判断した場合(ステップS34:No)、第2パス情報取得部76は、円弧軌道R2bが1つである単円弧パスを第2パスR2として設定する。この場合、第2パス情報取得部76は、目標物Pの位置姿勢情報と旋回半径rとに基づき、中間位置ASB1の座標を算出する(ステップS36)。中間位置ASB1のX方向における座標X
SB1は上述のように既知であり、中間位置ASB1における移動体10の姿勢θS
B1も、移動体10が検出軌道R1aと重なる直線軌道R2aに沿って移動するために、既知である。そのためここでは、第2パス情報取得部76は、中間位置ASB1の方向Yにおける座標Y
SB1を算出する。本実施形態では、第2パス情報取得部76は、仮円弧軌道中心Caの座標と、座標X
SB1と、旋回半径rとに基づき、中間位置ASB1の座標Y
SB1を算出する。具体的には、第2パス情報取得部76は、次の式(6)を用いて中間位置ASB1の座標Y
SB1を算出する。
【0087】
YSB1=CYa+(XSB1-CXa-r)・sinθref ・・・(6)
【0088】
そして、
図11に示すように、第2パス情報取得部76は、中間位置ASB1の座標と旋回半径rとに基づき、円弧軌道中心C1の座標を算出する(ステップS38)。円弧軌道中心C1は、
図12に示すように、設定する第2パスR2(単円弧パス)の円弧軌道R2bの、円弧を描く軌跡の中心を指す。円弧軌道中心C1の方向X、方向Yにおける座標を、それぞれC1
X、C1
Yとすると、C1
X、C1
Yは、次の式(7)、(8)に基づき算出される。
【0089】
C1X=XSB1-r ・・・(7)
C1Y=YSB1 ・・・(8)
【0090】
そして、
図11に示すように、第2パス情報取得部76は、円弧軌道中心C1の座標と目標物Pの位置姿勢情報とに基づき、目標位置A3の位置及び姿勢を算出する(ステップS40)。第2パス情報取得部76は、次の式(9)から式(11)を用いて、目標位置A3の位置及び姿勢である[X
TG、Y
TG、θ
TG]を算出する。
【0091】
XTG=C1X+r・cosθref ・・・(9)
YTG=C1Y+r・sinθref ・・・(10)
θTG=θref ・・・(11)
【0092】
図11に示すように、第2パス情報取得部76は、目標位置A3の位置及び姿勢である[X
TG、Y
TG、θ
TG]に基づき、第2パスR2を算出する(ステップS42)。すなわち、第2パス情報取得部76は、第2位置A2の座標と中間位置ASB1の座標とから、第2位置A2から中間位置ASB1までの直線軌道R2aを設定し、中間位置ASB1の位置姿勢及び目標位置A3の位置姿勢と、旋回半径rとから、中間位置ASB1から目標位置A3までの円弧軌道R2bを設定する。このように、単円弧パスとしての第2パスR2は、直線軌道R2aと、直線軌道R2aに接続されて設置領域AR0側(すなわちX方向と反対方向側)に向かう円弧軌道R2bとで構成される。
【0093】
以上が、X方向側に膨らむ軌道を有さない単円弧パスを第2パスR2とする場合の、設定方法である。単円弧パスを第2パスR2とした場合、移動体10は、第2位置A2から中間位置ASB1までを直線軌道R2aに沿って移動し、中間位置ASB1において、直線軌道R2aから円弧軌道R2bに切り替えて、すなわち進行方向を変化させて、円弧軌道R2bに沿って目標位置A3に向けて移動する。
【0094】
(複円弧パスの設定)
一方、
図11に示すように、目標位置A3と反対側に向かう軌道が必要と判断された場合(ステップS34:Yes)、第2パス情報取得部76は、円弧軌道R2bが複数(本例では2つ)である複円弧パスを第2パスR2として設定する。
図13は、複円弧パスを第2パスとして設定する場合を説明する模式図である。この場合、第2パス情報取得部76は、旋回半径r及び目標物Pの位置姿勢情報に基づき、円弧軌道中心C2の座標を算出する(ステップS44)。円弧軌道中心C2は、目標位置A3と反対側に向かう円弧軌道R2b1の軌跡の中心を指す。より詳しくは、
図13に示すように、第2パス情報取得部76は、仮円弧軌道中心Caを円弧軌道中心C1として取り扱い、円弧軌道中心C1の座標C1
X、C1
Yを、C
Xa、C
Yaとして設定する。そして、第2パス情報取得部76は、円弧軌道中心C2を中心とする旋回半径rとなる円が、円弧軌道中心C1を中心とする旋回半径rとなる円と1点で接するように、円弧軌道中心C2の座標を算出する。具体的には、円弧軌道中心C2の方向X、方向Yにおける座標を、それぞれC2
X、C2
Yとすると、第2パス情報取得部76は、円弧軌道中心C1とこれから算出する円弧軌道中心C2との間の方向Xに沿った距離wを、次の式(12)を用いて算出する。
【0095】
w=√{(2r)2-(r+XSB1-Cx)2} ・・・(12)
【0096】
そして、第2パス情報取得部76は、次の式(13)、(14)に基づき、円弧軌道中心C2の座標C2X、C2Yを算出する。
【0097】
C2X=XSB1+r ・・・(13)
C2Y=C1Y-w ・・・(14)
【0098】
次に、
図11に示すように、第2パス情報取得部76は、中間位置ASB1の位置及び姿勢を算出する(ステップS46)。
図13に示すように、複円弧パスにおける中間位置ASB1は、直線軌道R2aから、円弧軌道中心C2を中心とする円弧軌道R2b1に切り替わる位置である。中間位置ASB1のX方向における座標X
SB1及び姿勢θS
B1は既知なので、第2パス情報取得部76は、中間位置ASB1の方向Yにおける座標Y
SB1を算出する。第2パス情報取得部76は、円弧軌道中心C2の座標に基づき、中間位置ASB1の座標Y
SB1を算出する。具体的には、第2パス情報取得部76は、次の式(15)に示すように、円弧軌道中心C2の座標C2
Yを、中間位置ASB1の座標Y
SB1を算出する。
【0099】
YSB1=C2Y ・・・(15)
【0100】
次に、
図11に示すように、第2パス情報取得部76は、中間位置ASB2の位置及び姿勢を算出する(ステップS48)。
図13に示すように、複円弧パスにおける中間位置ASB2は、円弧軌道中心C2を中心とする円弧軌道R2b1から、円弧軌道中心C1を中心とする円弧軌道R2b2に切り替わる位置である。中間位置ASB2は、検出軌道R1aよりも設置領域AR0と反対側(すなわちX方向側)に位置する。第2パス情報取得部76は、円弧軌道中心C1の座標及び円弧軌道中心C2の座標に基づき、中間位置ASB2の位置及び姿勢を算出する。中間位置ASB2の方向X、方向Yにおける座標を、それぞれX
SB2、Y
SB2とし、中間位置ASB2における移動体10の姿勢(回転角度)を、θ
SB2とすると、第2パス情報取得部76は、次の式(16)から式(18)を用いて、中間位置ASB2の位置及び姿勢を算出する。
【0101】
XSB2=(C1X+C2X)/2 ・・・(16)
YSB2=(C1Y+C2Y)/2 ・・・(17)
θSB2=tan-1{(C2X-C1X)/(C2Y-C1Y)}+π/2 ・・・(18)
【0102】
そして、
図11に示すように、第2パス情報取得部76は、仮目標位置A3aの座標と目標物Pの位置姿勢情報とに基づき、目標位置A3の位置及び姿勢を算出する(ステップS50)。第2パス情報取得部76は、次の式(19)から式(21)を用いて、目標位置A3の位置及び姿勢である[X
TG、Y
TG、θ
TG]を算出する。
【0103】
XTG=XTGa ・・・(19)
YTG=YTGa ・・・(20)
θTG=θref ・・・(21)
【0104】
すなわち、第2パス情報取得部76は、仮目標位置A3aを目標位置A3として設定する。
【0105】
そして、
図11に示すように、第2パス情報取得部76は、中間位置ASB1、ASB2の位置姿勢と、目標位置A3の位置姿勢とに基づき、第2パスR2を算出する(ステップS42)。
図13に示すように、第2パス情報取得部76は、第2位置A2の座標と中間位置ASB1の座標とから、第2位置A2から中間位置ASB1までの直線軌道R2aを設定し、中間位置ASB1の位置姿勢及び中間位置ASB2の位置姿勢と、旋回半径rとから、中間位置ASB1から中間位置ASB2までの円弧軌道R2b1を設定し、中間位置ASB2の位置姿勢及び目標位置A3の位置姿勢と、旋回半径rとから、中間位置ASB2から目標位置A3までの円弧軌道R2b2を設定する。このように、複円弧パスとしての第2パスR2は、直線軌道R2aと、直線軌道R2aに接続されて設置領域AR0側と反対側(すなわちX方向側)に向かう円弧軌道R2b1(第1円弧軌道)と、円弧軌道R2b1に接続されて設置領域AR0側(すなわちX方向と反対側)に向かう円弧軌道R2b2(第2円弧軌道)とで構成される。
【0106】
以上が、X方向側に膨らむ軌道(円弧軌道R2b1)を有する複円弧パスを第2パスR2とする場合の、設定方法である。複円弧パスを第2パスR2とした場合、移動体10は、第2位置A2から中間位置ASB1までを直線軌道R2aに沿って移動し、中間位置ASB1において、直線軌道R2aから円弧軌道R2b1に切り替えて、すなわち切り返して、円弧軌道R2b1に沿って中間位置ASB2まで移動する。移動体10は、中間位置ASB2において、円弧軌道R2b1から円弧軌道R2b2に切り替えて、すなわち進行方向を変化させて、円弧軌道R2b2に沿って目標位置A3に向けて移動する。
【0107】
以上説明したように、本例においては、X方向側に膨らむ軌道が必要かを判断して、必要でない場合には、X方向側に膨らむ軌道を含まない単円弧パスを設定し、必要である場合には複円弧パスを設定する。そのため、本例においては、目標物Pの位置姿勢に応じて、例えばX方向側への切り返しが可能な、適切な第2パスR2を設定することが可能となる。さらに、直線軌道R2aと円弧軌道R2bとの組み合わせだけで第2パスR2を設定することで、演算負荷を抑えて、高速に第2パスR2を生成することが可能である。なお、円弧軌道R2bの旋回半径rと移動体10の舵角指令は一対一で対応しているため、外乱が一切無い場合に円弧軌道R2b上を移動できる移動体10の舵角指令も、同時に求めることができる。舵角が一定である場合には、旋回半径rは移動速度に依存しないため、スリップなどが発生しない範囲で任意の移動速度を設定してもよい。
【0108】
目標物Pに適切にアプローチするには、目標物Pから一旦遠ざかり、切り返した経路とする方が効率的な場合がある。しかし、第3パスR3は、最適化計算で設定されるため、目標物Pから一旦遠ざかって切り返す経路とすることができない。それに対し、第3パスR3の前に第2パスR2を設けることで、切り返しを含む効率的な経路を設定することができる。
【0109】
(第2実施形態)
次に、第2実施形態について説明する。第2実施形態では、第2パスR2から第3パスR3に切り替える方法の具体例を説明する。第2実施形態において、第1実施形態と構成が共通する箇所は、説明を省略する。第2実施形態は、第1実施形態、及び第1実施形態の他の例にも適用可能である。
【0110】
第2実施形態においては、第3パス情報取得部78は、移動体10が第2パスR2に沿って移動中における、センサ26による目標物Pの検出精度と、移動体10の進行方向と、移動体10と目標物Pとの間の距離との、少なくとも1つに基づき、第2パスR2から第3パスR3に切り替えるかを判断する。以下、具体的にする。
【0111】
図14は、第2パスから第3パスへの切り替えを判断する手順を説明するフローチャートである。検出制御部74は、移動体10が第2パスR2に沿って移動中に、センサ26に目標物Pを逐次検出させる。
図14に示すように、検出制御部74は、センサ26による目標物Pの検出結果についての信頼度を算出する(ステップS50)。信頼度とは、目標物Pを適切に検出できたかを示す指標であり、言い換えれば検出精度についての信頼度といえる。検出制御部74は、センサ26による1回の検出(1回のスキャン)毎に、信頼度を算出する。すなわち、検出制御部74は、センサ26による同じ検出(同じスキャン)で取得された検出結果(点群)について、同じ信頼度を割り当てる。
【0112】
検出制御部74は、任意の方法で目標物Pの検出結果の信頼度を算出してよいが、信頼度の算出方法の一例を以下で説明する。例えば、検出制御部74は、センサ26による1回の検出で取得すべき理想の計測点の数に対する、センサ26による1回の検出で取得された実際の計測点の数の比率に基づき、その検出での検出結果の信頼度を算出する。理想の計測点の数は、任意の方法で算出してよいが、例えば、検出した際の移動体10と、検出制御部74が点群に基づき算出した直線(目標物Pの前面Paに対応する直線)との位置関係に基づき、算出してよい。すなわち、直線を目標物Pの前面Paとして扱えば、検出した際の移動体10の位置と、目標物Pの前面Pa(直線)の位置と、センサ26の性能(例えば角度分解能)とから、目標物Pの前面Paで観測されるはずの計測点Mの個数を算出できる。本例では、検出制御部74は、検出した際の移動体10の位置と、目標物Pの前面Pa(直線)の位置と、センサ26の角度分解能とから、目標物Pの前面Paで観測されるはずの計測点Mの個数を、理想の計測点Mの数として算出する。なお、角度分解能とは、2つの対象点を分離して検知できる角度を示している。
【0113】
そして、検出制御部74は、理想の測定点の数の合計値に対する、実際の測定点の数の合計値の比率を、その検出での検出結果の信頼度として算出する。なお、前面Paから離れた位置の計測点を除外して、残った計測点の数を実際の計測点の数としてもよい。
【0114】
以上のように、検出制御部74は、移動体10が第2パスR2に沿って移動中に、センサ26に目標物Pを逐次検出させつつ、目標物Pの検出結果についての信頼度を算出する。そして、第3パス情報取得部78は、目標物Pの検出結果の信頼度が所定値以上であるかを判断する。より詳しくは、第3パス情報取得部78は、直近で検出された目標物Pの検出結果を所定数抽出し、抽出した直近の所定数の検出結果のうちで、信頼度が閾値以上となるものが規定数以上であるかを判断する(ステップS52)。ここでの所定数、閾値、規定数は任意に設定してよいが、例えば、所定数が10回、閾値が70%、規定数が9個(90%)とすると、第3パス情報取得部78は、直近の10回の検出結果のうちで、信頼度が70%以上となるものが9個ある場合には、信頼度が閾値以上となるものが規定数以上であると判断する。
【0115】
信頼度が閾値以上となるものが規定数以上ない場合(ステップS52;No)、第3パスR3には切り替えず、ステップS50に戻り、第2パスR2に従った移動と目標物Pの検出を続ける。このステップS52の処理は、検出可能位置A4に到達したかを判断する処理の一例といえる。ステップS52のように信頼度が閾値以上となるものが規定数以上あるかを判断することで、センサ26によって目標物Pを連続して適切に検出可能な位置に到達したかを、適切に判断できる。すなわち、信頼度が閾値以上となるものが規定数以上ない場合には、目標物Pを連続して適切に検出できないため、逐次更新される第3パスR3を適切に設定できない場合がある。そのような場合には第3パスR3に切り替えないことで、第3パスR3の設定不良を抑制できる。
【0116】
一方、信頼度が閾値以上となるものが規定数以上ある場合(ステップS52;Yes)、第3パス情報取得部78は、移動体10が目標物Pに近づいているかを判断する(ステップS54)。すなわち、第3パス情報取得部78は、移動体10が、目標物Pから離れる切り返し経路(例えば円弧軌道R2b1)に従って移動しているかを判断する。例えば、第3パス情報取得部78は、移動体10の現在の進行方向に基づき、移動体10が、フォーク24が設けられていない後方向を進行方向前方として移動しているかを判断する。第3パス情報取得部78は、移動体10が後方向を進行方向前方として移動している場合に、移動体10が目標物Pに近づいていない(すなわち切り返し経路を移動している)と判断し、移動体10がフォーク24側の前方向を進行方向前方として移動している場合に、移動体10が目標物Pに近づいている(すなわち切り返し経路を移動していない)と判断する。
【0117】
第3パス情報取得部78は、移動体10が目標物Pに近づいていないと判断した場合(ステップS54;No)、第3パスR3には切り替えず、ステップS50に戻り、第2パスR2に従った移動と目標物Pの検出を続ける。一方、第3パス情報取得部78は、移動体10が目標物Pに近づいていると判断した場合(ステップS54;Yes)、移動体10と目標物Pとの距離が所定距離以下であるかを判断する(ステップS56)。第3パス情報取得部78は、移動体10と目標物Pとの距離が所定距離以下である場合には(ステップS56;Yes)、第3パスR3に切り替えると判断して(ステップS58)、第3パスR3を設定して、第3パスR3に経路を切り替える。一方、移動体10と目標物Pとの距離が所定距離以下でない場合には(ステップS56;No)、第3パスR3には切り替えず、ステップS50に戻り、第2パスR2に従った移動と目標物Pの検出を続ける。このように、移動体10が、切り返し経路を移動しており目標物Pに近づいていない場合には、移動体10がまだ目標物Pと正対していないため、目標物Pを連続して適切に検出できなくなるおそれがある。そのため、以上のような判定基準で第3パスR3に切り替えるかを判断することで、目標物Pを連続して適切に検出できなくなることを抑制して、第3パスR3の設定不良を抑制できる。
【0118】
(第3実施形態)
次に、第3実施形態について説明する。第3実施形態では、第3パスR3の設定方法の具体例を説明する。第3実施形態において、第1実施形態と構成が共通する箇所は、説明を省略する。第3実施形態は、第1実施形態、第1実施形態の他の例、及び第2実施形態にも適用可能である。
【0119】
図15は、第3パスを説明するための模式図である。第3パス情報取得部78は、最適化計算を実行して、最適化された移動体10の第3パスR3を算出して、算出した第3パスR3を実現できる移動体10の駆動条件を算出する。駆動条件とは、移動体10の動力部を動作させるための入力値を指し、ここでは移動体10の速度と操舵角とを指す。本実施形態では、第3パス情報取得部78は、先読みステップ毎の移動体10の位置及び姿勢を設定することで、第3パスR3を設定する。先読みステップとは、現在(移動体10や目標物Pの位置及び姿勢が直近で検出されたタイミング)以降の、離散化した各時刻を意味する。第3パス情報取得部78は、先読みステップ毎の移動体10の位置と目標物Pとの偏差が小さくなるほど評価が高くなる評価関数に基づき、最適化計算を行い、最適化計算で最適化された第3パスR3を算出して、その第3パスR3を実現できる移動体の駆動条件を、算出する。以下、計算実行部56による最適化計算を具体的に説明する。なお、以降では、二次元座標平面上での移動体10の運動を例として説明するが、三次元座標上での運動モデルに対しても適用可能である。
【0120】
(先読みステップ毎の移動体の位置)
ここで、第3パス情報取得部78によって算出される最適化された第3パスR3は、先読みステップ毎の(現在以降の離散時刻毎の)移動体10の位置及び姿勢の集合といえ、未来の経路であるといえる。第3パス情報取得部78は、
図15に示すように、検出された移動体10の位置及び姿勢を、目標物Pの座標系(x方向及びy方向の2次元座標系)における位置及び姿勢に座標変換する。すなわち、ここでは、自己位置姿勢(移動体10の位置姿勢)と目標位置姿勢(目標物Pの位置姿勢)をインプットとするが、最適化問題の中で経路を生成する際には、自己位置姿勢を目標位置姿勢基準で座標変換して扱うことにより、自己位置姿勢を起点に作成した経路の座標系が目標位置姿勢基準となる。本手順は、方向X及び方向Yに沿った二次元面における座標系(領域AR基準のローカル座標系又はグローバル座標系)で自己位置姿勢および目標位置姿勢を得ている場合も、移動体10のセンサ座標系基準のローカルな目標位置姿勢を得ている場合も、同様に適用可能である。
【0121】
ここで、移動体10のx方向及びy方向での位置(座標)を[x,y]T、移動体10の姿勢をθ、先読みステップ(離散時刻)をkとすると、先読みステップkでの移動体10の位置及び姿勢は、すなわち先読みステップkでの第3パスR3は、次の式(22)で表される。なお、Tは転置を示す。なお、上述のように、本実施形態の説明は、二次元平面座標上での運動を例としたものであり、例えば三次元座標上での運動モデルとする場合には、以降の式などは三次元座標に合わせたものとなる。
【0122】
【0123】
この場合、移動体10の運動モデルは、次の式(23)のように表される。
【0124】
【0125】
式(23)のΔtは、(k)から(k+1)への遷移に係る時間幅である。Δtは、第3パスR3の更新周期(第3パスR3を更新してから次に第3パスR3を更新するまでの時間幅)と同じであってもよいが、例えば、更新周期よりも短くてもよいし、更新周期よりも長くてもよい。Δtを更新周期より短くすることで、詳細な第3パスR3を生成でき、Δtを更新周期より長くすることで、計算負荷を低減できる。また、u(k)は、システムの入力であり、移動体10の駆動条件を指す。本実施形態の例では、u(k)は、移動体10の速度v(k)、移動体10の曲率c(k)を用いて、次の式(24)のように表される。
【0126】
【0127】
曲率とは、現在の操舵角で移動体10が移動したと仮定した場合の、移動体10が描く円の半径(曲率半径)の逆数を指す。例えば、先読みステップkにおける曲率c(k)は、次の式(25)のように定義される。Φ(k)は、先読みステップkにおける移動体10の操舵角を指し、Lは、ホイールベースを指し、例えば前輪と後輪との間の距離である。
【0128】
【0129】
二次元平面座標上での運動を想定した場合、システムの状態方程式であるfは、一例として、次の式(26)のように表される。
【0130】
【0131】
第3パス情報取得部78は、モデル予測制御の考え方を用い、移動経路を予測(先読)し、各先読みステップでの移動体10と目標物Pの関係において、目標位置との偏差が小さいほど、評価が高くなる評価関数を用いて、移動体10の各予測ステップの位置に関する移動体10と目的位置の偏差を評価して、第3パスR3を特定する。これにより、第3パス情報取得部78は、最適な第3パスR3を、すなわち先読みステップ毎の最適な移動体10の位置及び姿勢を、特定できる。言い換えれば、第3パス情報取得部78は、先読みステップ毎の移動体10の位置と目的物Pの位置との偏差が最小となるような、先読みステップ毎の最適な移動体10の位置及び姿勢(すなわち最適な第3パスR3)を、特定する。
【0132】
本実施形態では、第3パスR3を最適化する問題V(u,p,k)が、次の式(27)で表されると想定する。
【0133】
【0134】
ここで、J(u,p,k)は、最適化の目的を表す評価関数であり、経路計画であれば目的位置への接近や到達が含まれるような関数に設定される。本実施形態の例では、第3パス情報取得部78は、評価関数J(u,p,k)を、次の式(28)のように設定する。
【0135】
【0136】
ここで、pT=[x(k),y(k)]Tは、すなわち式(28)でのxT、yTは、目的となる位置(目標物Pの位置)である。この評価関数の元では、移動体10の各先読みステップkにおける位置(p(k))と目標物Pの位置(pT)との偏差が小さくなるように最適化される。すなわち、移動体10が目的の位置に最短距離で近づくような最適化結果となる。
【0137】
また、A1、A2は、x座標及びy座標の誤差を最小化する重み係数であり任意に設定されてよい。例えば目標物P(目標位置姿勢)に対して移動体10の向きを正対させることを重視する場合には、A1よりA2を大きくすることで、y座標の重みをx座標の重みより大きくする。すなわち、y座標において目標物Pと移動体10との偏差を小さくすることを、x座標において目標物Pと移動体10との偏差を小さくすることよりも優先させる。これにより、第3パスR3は、x軸に沿うように生成され、結果として移動体10の向きを目標位置姿勢に早期に正対させることが可能となる。
【0138】
また、本実施形態においては、評価関数に姿勢(θ)が含まれず、移動体10と目標物Pとの姿勢の偏差を最小にする計算が含まれない。このように評価関数に姿勢を含めないことで、最適化問題を単純化することができ、計算負荷を低減できる。なお、評価関数に姿勢を含めなくても、移動体10と目標物Pとの位置の偏差が小さくなるに従って、姿勢の偏差も小さくなる。
【0139】
以上のような最適化計算を実行することで第3パス情報取得部78は、最適化された第3パスR3を設定し、最適化計算のアウトプット(最適解)として、先読みステップ毎の駆動条件(システムの入力)であるu(k)の値を得る。第3パス情報取得部78が得る先読みステップ毎の駆動条件は、最適化された第3パスR3を実現するための駆動条件であるといえる。なお、第3パス情報取得部78は、最適化問題の解を直接車両制御に用いるため、逐次得た最適解の最初の時刻(k=1)の値であるu(1)=(v(1)c(1))を制御に使用する。なおこの場合、曲率cは直接車両制御に使用するには適さないため、式(27)の関係を用いて、曲率cを操舵角Φに変換して使用することが好ましい。本実施形態のように、最適化計算に操舵角Φを陽に含めずに曲率cを用いることで、非線形な特性(三角関数)を緩和して、最適化計算の計算精度と収束速度を向上できる。ただしそれに限られず、最適化計算において、曲率cの替わりに操舵角Φを用いてもよい。
【0140】
第3実施形態においては、以上説明したように、所定の評価関数の下で最適な経路を先読みしながら、同時にそれに対応する制御入力を生成しているため、単純にある経路に追従する制御よりも変動の少ないスムーズな車両の挙動、軌跡を設定できる。また、移動体10及び目標物Pの位置姿勢を逐次検出して第3パスR3を更新しているため、フィードバック制御となり、モデル化誤差等に起因する誤差も吸収しながら車両を制御できる。
【0141】
(第4実施形態)
次に、第4実施形態について説明する。第4実施形態では、第4パスR4の設定方法の具体例を説明する。第4実施形態において、第1実施形態と構成が共通する箇所は、説明を省略する。第4実施形態は、第1実施形態、第1実施形態の他の例、第2実施形態、及び第3実施形態にも適用可能である。
【0142】
ここで、移動体10は、非ホロノミックであり、真横に移動することはできないなど、位置と姿勢が互いに連動している。そのため、位置だけ目標値(目標物Pの手前)に合わせるように操舵すると、姿勢が目標値と一致せず、移動体10のフォーク24を目標物Pの開口Pbに差せない等の問題が発生し得る。それに対し、本実施形態では、モデル予測制御を用いて自己位置及び姿勢の先読みを行って設定した第3パスR3を用いることで、両方を目標値に収束させることができる。それに対し、第4パス情報取得部80が設定する第4パスR4は、センサ26により検出した目標物Pの位置及び姿勢と自己位置及び姿勢の偏差とのフィードバックにより、操舵指令値を出力する、サーボに関する技術を用いて設定される。第4パスR4においては、第3パスR3のような、先読みや最適化を行わないことで、高速、かつ安定な処理を実現しており、目標物Pの位置及び姿勢のばらつきに対して、ロバストに目標物Pにアプローチできる。以下、第3パスR3から第4パスR4への切り替えと、第4パスR4の設定方法とを、具体的に説明する。
【0143】
(第4パスへの切り替え)
第4パス情報取得部80は、移動体10が切替位置A5に到達したら、第3パスR3から第4パスR4に切り替えると判断する。より具体的には、切替位置A5は、移動体10が有する移動及び操舵の制約下で、目標物Pの位置及び姿勢に応じて目標物Pに到達する際の移動体10の位置及び姿勢に課せられる条件を満たして、移動体10を目標物Pに到達させることが可能な位置である。ここでの条件とは、例えば、目標物Pの基準位置と移動体10の基準位置との位置合わせが成立することを指す。また、ここでの制約とは、上述のように非ホロノミックであることを指し、例えば、速力の範囲(上限~下限)と、操舵角の範囲(上限~下限)であり、予め設定されている。
【0144】
例えば、第4パス情報取得部80は、移動体10が目標物Pに正対する目標位置(q=[xPP yPP θPP])を求める処理を行う。目標位置(q)は、以下の式(29)に基づいて導出される。
【0145】
【0146】
式(29)のpは目標物Pの位置及び姿勢である。また、式(29)のDは、ターゲット位置、すなわち、目標位置(q)を目標物Pの位置及び向きからどの程度離すかを表す設計パラメータであり、予め定められている。なお、第3パスR3は、逐次更新されるため、第4パス情報取得部80は、例えば予め定められた周期でp及び目標位置(q)を更新する。移動体10が目標位置(q)に近接するに従ってqの値は0に収束するよう変化する。
【0147】
第4パス情報取得部80は、qの値が予め定められた閾値以下になった場合に、移動体10が切替位置A5に到達したと判断して、第3パスR3から第4パスR4に切り替えると判断する。切替位置A5は、例えば目標物Pの向きに対して正対した位置となる。なお、切替位置A5は、所定の広さをもつ領域であってもよい。
【0148】
(第4パスの設定)
図16は、第4パスの設定を説明するフローチャートである。第4パス情報取得部80は、移動体10が切替位置A5に到達したら、第4パスR4を設定する。
図16に示すように、第4パス情報取得部80は、移動体10が切替位置A5に到達したら、センサ26による目標物Pの位置及び姿勢の検出結果と、移動体10の位置及び姿勢の検出結果とを取得する(ステップS60)。そして、第4パス情報取得部80は、目標物P及び移動体10の位置及び姿勢と、移動体10が有する移動及び操舵の制約とに基づき、移動体10の操舵角の正負を切り替えることなく目標物Pに到達可能かを判断する(ステップS62)。操舵角の正負を切り替えるとは、操舵角を一方向側に変化させた後に他方向側に変化させることを指す。すなわち、第4パス情報取得部80は、操舵角を一方向側にのみ変化させることで、移動体10が目標物Pに到達可能かを判断する。操舵角の正負を切り替えることなく目標物Pに到達可能と判断した場合(ステップS62;Yes)、第4パス情報取得部80は、移動体10と目標物Pとの相対位置の偏差が許容範囲内であるかを判断し(ステップS64)、許容範囲内である場合には(ステップS64;Yes)、移動体10と目標物Pとの相対姿勢に基づきフィードバック制御して、第4パスR4を設定する。すなわち、第4パス情報取得部80は、移動体10が目標物Pに対して十分正対した位置まで近づいていると判断して、相対姿勢を合致させるフィードバック制御を行う。この場合例えば、第4パス情報取得部80は、次の式(30)に基づき、移動体10と目標物Pとの相対姿勢の偏差が小さくなるようにフィードバック制御して、第4パスR4を設定してよい。
【0149】
Φ(k)=G{θref-θ(k)} ・・・(30)
【0150】
なお、θrefは目標物Pの姿勢であり、Gは評価関数である。またこの場合、速度v(k)は一定としてよい。
【0151】
一方、移動体10の操舵角の正負を切り替えなければ目標物Pに到達できないと判断した場合(ステップS62;No)であって、移動体10と目標物Pとの相対位置の偏差が許容範囲内でない場合(ステップS64;No)、第4パス情報取得部80は、移動体10と目標物Pとの相対位置に基づきフィードバック制御して、第4パスR4を設定する(ステップS68)。すなわち、第4パス情報取得部80は、移動体10が目標物Pに対して十分正対した位置まで近づいていないと判断して、相対位置を合致させるフィードバック制御を行う。例えば、第4パス情報取得部80は、次の式(31)に基づき、移動体10と目標物Pとの相対位置の偏差が小さくなるようにフィードバック制御して、第4パスR4を設定してよい。
【0152】
Φ(k)=G{yref-y(k)} ・・・(31)
【0153】
なお、yrefは目標物Pの位置であり、Gは評価関数である。またこの場合、速度v(k)は一定としてよい。
【0154】
ステップS66,ステップS68を実行し、処理を終了しない場合(ステップS70;No)、ステップS60に戻り第4パスR4を更新し、処理を終了する場合(ステップS70;Yes)、本処理を終了する。なお、例えば移動体10と目標物Pとの相対位置及び相対姿勢が許容範囲内となった場合に、処理を終了すると判断してよい。
【0155】
このように、第4パスR4は、モデル予測制御のような最適化計算を行わず,瞬時値の偏差のみで駆動条件が設定される経路である。そのため、処理時間が、最適化のアプローチに比べて短く、目標物Pに到達する直前の微調整が可能である。また、計算結果が発散することがないため、安定して動作させることができる。
【0156】
(本開示の効果)
以上説明したように、本開示の制御方法は、自動で移動する移動体10の制御方法であって、移動体10を第1パスR1に沿って移動させるステップと、移動体10が第1パスR1に沿って移動中に、移動体10に設けられたセンサ26に目標物Pの位置及び姿勢を検出させるステップと、目標物Pの位置及び姿勢に基づき、目標物Pに対して所定の位置及び姿勢となる目標位置A3までの第2パスR2を設定するステップと、第1パスR1から第2パスR2に切り替えて、移動体10を第2パスR2に沿って移動させるステップと、目標物Pの位置と移動体10の位置との偏差が小さくなるほど評価が高くなる評価関数に基づき最適化計算を行い、第3パスR3を設定するステップと、第2パスR2から第3パスR3に切り替えて、移動体10を第3パスR3に沿って移動させるステップと、を含む。
【0157】
本制御方法によると、第1パスR1、第2パスR2、第3パスR3に移動経路を切り替えつつ、目標物Pにアプローチすることで、目標物P(目標位置)まで適切にアプローチすることができる。より具体的には、第1パスR1に沿って移動中に検出した目標物Pの位置姿勢情報に基づき設定した第2パスR2を用いることで、例えば目標物Pの位置が設置領域AR0からずれていても、実際の目標物Pの位置及び姿勢に合わせて、目標物Pに適切にアプローチできる。さらに、移動体10が外乱の影響などで第2パスR2から外れたり、第2パスR2の設定に用いたセンサ26の検出結果に誤差があったりした場合でも、最適化計算を用いた第3パスR3に切り替えることで、目標物Pに適切にアプローチできる。
【0158】
また、第1パスR1は、目標物Pが設置される設置領域AR0よりも第1方向(X方向)側で、第1方向と交差する第2方向(Y方向)に設置領域AR0を横切る経路である。第1パスR1に沿って移動させるステップにおいては、第2方向において設置領域AR0よりも一方側の第1位置A1から、第2方向において設置領域AR0よりも他方側の第2位置A2まで、第1パスR1に沿って移動体10を移動させる。目標物Pの位置及び姿勢を検出させるステップにおいては、移動体10が第1位置A1から第2位置A2までの移動の最中に、センサ26に目標物Pの位置及び姿勢を検出させる。本方法によると、第1位置A1から第2位置A2までの移動の最中に検出を行わせるため、検出精度の低下が抑制されて、第2パスR2を適切に設定できる。
【0159】
また、第2パスR2を設定するステップにおいては、第1パスR1の第1位置A1から第2位置A2までの軌道に重なる直線軌道R2aと、直線軌道R2aに接続される円弧軌道R2bとを含むように、第2パスR2を設定する。このように直線と円弧で軌道を生成することで、幾何学的に軌道計算することが可能となり、計算負荷を低減できる。
【0160】
第2パスR2を設定するステップにおいては、円弧軌道R2bとして、第1方向において設置領域AR0と反対側に向かう第1円弧軌道(円弧軌道R2b1)と、第1円弧軌道に接続されて第1方向において設置領域AR0側に向かう第2円弧軌道(円弧軌道R2b2)とを含むように、第2パスR2を設定する。このように第2パスR2に切り返し軌道を含めることで、切り返した経路とする方が効率的な場合に、効率的な経路を設定できる。
【0161】
本制御方法は、移動体10が第2パスR2に沿って移動中におけるセンサ26による目標物Pの検出精度と、移動体10の進行方向と、移動体10と目標物Pとの間の距離との、少なくとも1つに基づき、第2パスR2から第3パスR3に切り替えるかを判断するステップをさらに含む。このように第3パスR3に切り替えるか判断することで、第3パスR3を設定する際の目標物Pの検出精度が低下することを抑制して、第3パスR3を適切に設定できる。
【0162】
第2パスR2から第3パスR3に切り替えるかを判断するステップにおいては、目標物Pの検出精度の信頼度が所定値以上であり、移動体10が目標物Pに近づく方向に進行しており、かつ、移動体10と目標物Pとの間の距離が所定距離以下である場合に、第2パスR2から第3パスR3に切り替えると判断する。これにより、第3パスR3を設定する際の目標物Pの検出精度が低下することを抑制して、第3パスR3を適切に設定できる。
【0163】
第3パスR3を設定するステップにおいては、目標物Pの位置と移動体10の位置とを逐次検出させて、第3パスR3を逐次更新する。第3パスR3を逐次更新することで、フィードバック制御の要素を取り入れて、目標物Pにより適切にアプローチできる第3パスR3を設定できる。
【0164】
本制御方法は、目標物Pと移動体10との相対位置及び相対姿勢の少なくとも一方に基づきフィードバック制御を行うことで移動体10を目標物Pにアプローチさせる第4パスR4を設定するステップと、第3パスR3から第4パスR4に切り替えて、移動体10を第4パスR4に沿って移動させるステップと、をさらに含む。本制御方法は、最適化計算で設定された第3パスR3から、サーボ方式の第4パスR4に切り替えることで、目標物Pに到達する直前に微調整しつつ、目標物Pに近づくことができる。
【0165】
本制御方法は、移動体10が切替位置A5に到達した場合に、第3パスR3から第4パスR4に切り替えると判断するステップをさらに含む。切替位置A5は、移動体10が有する移動及び操舵の制約下で、目標物Pの位置及び姿勢に応じて目標物Pに到達する際の移動体10の位置及び姿勢に課せられる条件を満たして、移動体10を目標物Pに到達させることが可能な位置である。このような条件で第4パスR4に切り替えることで、第4パスR4を適切に設定できる。
【0166】
第4パスR4を設定するステップにおいては、移動体10の操舵角の正負を切り替えることなく移動体10が目標物Pに到達可能であるかを判断し、到達可能でない場合には、目標物Pと移動体10との相対位置に基づきフィードバック制御を行って第4パスR4を設定し、到達可能である場合には目標物Pと移動体10との相対姿勢に基づきフィードバック制御を行って第4パスR4を設定する。このように第4パスR4を設定することで、相対位置及び相対姿勢を適切に合致させて、移動体10を目標物Pに到達させることができる。
【0167】
本開示の移動体10は、自動で移動するものであって、移動体10を第1パスR1に沿って移動させる移動制御部72と、移動体10が第1パスR1に沿って移動中に、移動体10に設けられたセンサ26に目標物Pの位置及び姿勢を検出させる検出制御部74は、と、を含む。移動制御部72は、第1パスR1から、目標物Pの位置及び姿勢に基づき設定された目標物Pに対して所定の位置及び姿勢となる目標位置A3までの第2パスR2に切り替えて、移動体10を第2パスR2に沿って移動させる。また、移動制御部72は、第2パスR2から、目標物Pの位置と移動体10の位置との偏差が小さくなるほど評価が高くなる評価関数に基づき実行された最適化計算により設定された第3パスR3に切り替えて、移動体10を第3パスR3に沿って移動させる。この移動体10によると、目標物P(目標位置)まで適切にアプローチすることができる。
【0168】
本開示のプログラムは、自動で移動する移動体10の制御方法をコンピュータに実行させるものであって、移動体10を第1パスR1に沿って移動させるステップと、移動体10が第1パスR1に沿って移動中に、移動体10に設けられたセンサ26に目標物Pの位置及び姿勢を検出させるステップと、目標物Pの位置及び姿勢に基づき、目標物Pに対して所定の位置及び姿勢となる目標位置A3までの第2パスR2を設定するステップと、第1パスR1から第2パスR2に切り替えて、移動体10を第2パスR2に沿って移動させるステップと、目標物Pの位置と移動体10の位置との偏差が小さくなるほど評価が高くなる評価関数に基づき最適化計算を行い、第3パスR3を設定するステップと、第2パスR2から第3パスR3に切り替えて、移動体10を第3パスR3に沿って移動させるステップとを、コンピュータに実行させる。このプログラムによると、目標物P(目標位置)まで適切にアプローチすることができる。
【0169】
以上、本発明の実施形態を説明したが、この実施形態の内容により実施形態が限定されるものではない。また、前述した構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。さらに、前述した構成要素は適宜組み合わせることが可能である。さらに、前述した実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換又は変更を行うことができる。
【符号の説明】
【0170】
10 移動体
26 センサ
70 第1パス情報取得部
72 移動制御部
74 検出制御部
76 第2パス情報取得部
78 第3パス情報取得部
80 第4パス情報取得部
P 目標物
R1 第1パス
R2 第2パス
R3 第3パス
R4 第4パス