(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-02
(45)【発行日】2022-12-12
(54)【発明の名称】移動体、移動制御システム、移動体の制御方法及びプログラム
(51)【国際特許分類】
G05D 1/02 20200101AFI20221205BHJP
【FI】
G05D1/02 W
G05D1/02 H
(21)【出願番号】P 2020179681
(22)【出願日】2020-10-27
【審査請求日】2021-03-31
(73)【特許権者】
【識別番号】000232807
【氏名又は名称】三菱ロジスネクスト株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】荒木 亮次
(72)【発明者】
【氏名】藤島 泰郎
(72)【発明者】
【氏名】高木 一茂
【審査官】大古 健一
(56)【参考文献】
【文献】特開2018-158674(JP,A)
【文献】特開2020-70121(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00 - 1/12
(57)【特許請求の範囲】
【請求項1】
自動で移動する移動体であって、
目標物が設置される設置領域よりも第1方向側で、前記第1方向と交差する第2方向に前記設置領域を横切る第1パスの情報を取得する第1パス情報取得部と、
前記移動体が前記第1パスに沿って移動中に、前記移動体に設けられたセンサに前記目標物の位置及び姿勢を検出させる検出制御部と、
前記目標物の位置及び姿勢に基づき設定された、前記目標物に対して所定の位置及び姿勢となる目標位置までの第2パスの情報を取得する第2パス情報取得部と、
前記第2パスに沿って前記移動体を移動させる移動制御部と、
を含み、
前記第2パス情報取得部は、
前記第1パスの軌道に重なる直線軌道と、前記直線軌道に接続される円弧軌道とを含む第2パスを設定し、
設定した前記第2パスを前記移動体が通った場合に、前記移動体
が障害物に干渉するかを判定し、
干渉すると判定した場合には、前記円弧軌道の旋回半径を所定値小さくして前記第2パスを設定し直し、
設定し直した前記第2パスを用いて、障害物との干渉判定を繰り返す、
移動体。
【請求項2】
前記移動制御部は、前記第2方向において前記設置領域よりも一方側の第1位置から、前記第2方向において前記設置領域よりも他方側の第2位置まで、前記第1パスに沿って前記移動体を移動させ、
前記検出制御部は、前記移動体が前記第1位置から前記第2位置までの移動の最中に、前記センサに前記目標物の位置及び姿勢を検出させる、
請求項1に記載の移動体。
【請求項3】
自動で移動する移動体であって、
目標物が設置される設置領域よりも第1方向側で、前記第1方向と交差する第2方向に前記設置領域を横切る第1パスの情報を取得する第1パス情報取得部と、
前記移動体が前記第1パスに沿って移動中に、前記移動体に設けられたセンサに前記目標物の位置及び姿勢を検出させる検出制御部と、
前記目標物の位置及び姿勢に基づき設定された、前記目標物に対して所定の位置及び姿勢となる目標位置までの第2パスの情報を取得する第2パス情報取得部と、
前記第2パスに沿って前記移動体を移動させる移動制御部と、
を含み、
前記移動制御部は、前記第2方向において前記設置領域よりも一方側の第1位置から、前記第2方向において前記設置領域よりも他方側の第2位置まで、前記第1パスに沿って前記移動体を移動させ、
前記検出制御部は、前記移動体が前記第1位置から前記第2位置までの移動の最中に、前記センサに前記目標物の位置及び姿勢を検出させ、
前記第2パス情報取得部は、前記第1パスの前記第1位置から前記第2位置までの軌道に重なる直線軌道と、前記直線軌道に接続されて前記第1方向において前記設置領域と反対側に向かう円弧軌道である第1円弧軌道と、前記第1円弧軌道に接続されて前記第1方向において前記設置領域側に向かう円弧軌道である第2円弧軌道と、で構成される複円弧パスを、前記第2パスとして取得する、
移動体。
【請求項4】
前記第1パスは、前記第1位置から前記第2位置までの軌道に接続される、前記第2位置から前記設置領域に向かうアプローチ軌道を含み、
前記移動制御部は、
前記アプローチ軌道に沿って移動することで前記目標物に到達不可能と判断された場合に、前記第2パスに沿って前記移動体を前記目標物に向けて移動させ、
前記アプローチ軌道に沿って移動することで前記目標物に到達可能と判断された場合には、前記アプローチ軌道に沿って前記移動体を前記目標物に向けて移動させる、請求項2又は請求項3に記載の移動体。
【請求項5】
前記第2パス情報取得部は、前記円弧軌道の軌道半径が所定値以上となる前記第2パスを取得する、請求項1から請求項4のいずれか1項に記載の移動体。
【請求項6】
前記第2パス情報取得部は、前記直線軌道と、前記直線軌道に接続されて前記第1方向において前記設置領域側に向かう前記円弧軌道とで構成される単円弧パスを、前記第2パスとして取得する、請求項1に記載の移動体。
【請求項7】
前記第2パス情報取得部は、前記第1方向において前記設置領域と反対側に向かう軌道を設定する必要がないと判断された場合に、前記単円弧パスを前記第2パスとして取得する、請求項6に記載の移動体。
【請求項8】
前記第2パス情報取得部は、前記単円弧パスの前記直線軌道と前記円弧軌道とを切り替える中間位置に前記移動体が位置している際に前記移動体が障害物に干渉しないと判断された場合に、その単円弧パスを、前記第2パスとして採用する、請求項6又は請求項7に記載の移動体。
【請求項9】
前記第2パス情報取得部は、前記直線軌道と、前記直線軌道に接続されて前記第1方向において前記設置領域と反対側に向かう第1円弧軌道と、前記第1円弧軌道に接続されて前記第1方向において前記設置領域側に向かう第2円弧軌道と、で構成される複円弧パスを、前記第2パスとして取得する、請求項1に記載の移動体。
【請求項10】
前記第2パス情報取得部は、前記第1方向において前記設置領域と反対側に向かう軌道を設定する必要があると判断された場合に、前記複円弧パスを前記第2パスとして取得する、請求項3又は請求項9に記載の移動体。
【請求項11】
前記第2パス情報取得部は、前記複円弧パスの前記直線軌道と前記第1円弧軌道とを切り替える中間位置に前記移動体が位置している際に前記移動体が障害物に干渉せず、かつ、前記複円弧パスの前記第1円弧軌道と前記第2円弧軌道とを切り替える中間位置に前記移動体が位置している際に前記移動体が障害物に干渉しないと判断された場合に、その複円弧パスを、前記第2パスとして採用する、請求項9又は請求項10に記載の移動体。
【請求項12】
請求項1から請求項11のいずれか1項に記載の移動体と、
前記移動体と情報の送受信を行う情報処理装置と、を含む、移動制御システム。
【請求項13】
自動で移動する移動体の制御方法であって、
目標物が設置される設置領域よりも第1方向側で、前記第1方向と交差する第2方向に前記設置領域を横切る第1パスの情報を取得するステップと、
前記移動体が前記第1パスに沿って移動中に、前記移動体に設けられたセンサに前記目標物の位置及び姿勢を検出させるステップと、
前記目標物の位置及び姿勢に基づき設定された、前記目標物に対して所定の位置及び姿勢となる目標位置までの第2パスの情報を取得するステップと、
前記第2パスに沿って前記移動体を移動させるステップと、
を含み、
前記第2パスの情報を取得するステップにおいては、
前記第1パスの軌道に重なる直線軌道と、前記直線軌道に接続される円弧軌道とを含む第2パスを設定し、
設定した前記第2パスを前記移動体が通った場合に、前記移動体
が障害物に干渉するかを判定し、
干渉すると判定した場合には、前記円弧軌道の旋回半径を所定値小さくして前記第2パスを設定し直し、
設定し直した前記第2パスを用いて、障害物との干渉判定を繰り返す、
移動体の制御方法。
【請求項14】
自動で移動する移動体の制御方法であって、
目標物が設置される設置領域よりも第1方向側で、前記第1方向と交差する第2方向に前記設置領域を横切る第1パスの情報を取得するステップと、
前記移動体が前記第1パスに沿って移動中に、前記移動体に設けられたセンサに前記目標物の位置及び姿勢を検出させるステップと、
前記目標物の位置及び姿勢に基づき設定された、前記目標物に対して所定の位置及び姿勢となる目標位置までの第2パスの情報を取得するステップと、
前記第2パスに沿って前記移動体を移動させるステップと、
を含み、
前記移動体を移動させるステップでは、前記第2方向において前記設置領域よりも一方側の第1位置から、前記第2方向において前記設置領域よりも他方側の第2位置まで、前記第1パスに沿って前記移動体を移動させ、
前記目標物の位置及び姿勢を検出させるステップでは、前記移動体が前記第1位置から前記第2位置までの移動の最中に、前記センサに前記目標物の位置及び姿勢を検出させ、
前記第2パスの情報を取得するステップでは、前記第1パスの前記第1位置から前記第2位置までの軌道に重なる直線軌道と、前記直線軌道に接続されて前記第1方向において前記設置領域と反対側に向かう円弧軌道である第1円弧軌道と、前記第1円弧軌道に接続されて前記第1方向において前記設置領域側に向かう円弧軌道である第2円弧軌道と、で構成される複円弧パスを、前記第2パスとして取得する、
移動体の制御方法。
【請求項15】
自動で移動する移動体の制御方法をコンピュータに実行させるプログラムであって、
目標物が設置される設置領域よりも第1方向側で、前記第1方向と交差する第2方向に前記設置領域を横切る第1パスの情報を取得するステップと、
前記移動体が前記第1パスに沿って移動中に、前記移動体に設けられたセンサに前記目標物の位置及び姿勢を検出させるステップと、
前記目標物の位置及び姿勢に基づき設定された、前記目標物に対して所定の位置及び姿勢となる目標位置までの第2パスの情報を取得するステップと、
前記第2パスに沿って前記移動体を移動させるステップと、
を、コンピュータに実行させ、
前記第2パスの情報を取得するステップにおいては、
前記第1パスの軌道に重なる直線軌道と、前記直線軌道に接続される円弧軌道とを含む第2パスを設定し、
設定した前記第2パスを前記移動体が通った場合に、前記移動体
が障害物に干渉するかを判定し、
干渉すると判定した場合には、前記円弧軌道の旋回半径を所定値小さくして前記第2パスを設定し直し、
設定し直した前記第2パスを用いて、障害物との干渉判定を繰り返す、
プログラム。
【請求項16】
自動で移動する移動体の制御方法をコンピュータに実行させるプログラムであって、
目標物が設置される設置領域よりも第1方向側で、前記第1方向と交差する第2方向に前記設置領域を横切る第1パスの情報を取得するステップと、
前記移動体が前記第1パスに沿って移動中に、前記移動体に設けられたセンサに前記目標物の位置及び姿勢を検出させるステップと、
前記目標物の位置及び姿勢に基づき設定された、前記目標物に対して所定の位置及び姿勢となる目標位置までの第2パスの情報を取得するステップと、
前記第2パスに沿って前記移動体を移動させるステップと、
を、コンピュータに実行させ、
前記移動体を移動させるステップでは、前記第2方向において前記設置領域よりも一方側の第1位置から、前記第2方向において前記設置領域よりも他方側の第2位置まで、前記第1パスに沿って前記移動体を移動させ、
前記目標物の位置及び姿勢を検出させるステップでは、前記移動体が前記第1位置から前記第2位置までの移動の最中に、前記センサに前記目標物の位置及び姿勢を検出させ、
前記第2パスの情報を取得するステップでは、前記第1パスの前記第1位置から前記第2位置までの軌道に重なる直線軌道と、前記直線軌道に接続されて前記第1方向において前記設置領域と反対側に向かう円弧軌道である第1円弧軌道と、前記第1円弧軌道に接続されて前記第1方向において前記設置領域側に向かう円弧軌道である第2円弧軌道と、で構成される複円弧パスを、前記第2パスとして取得する、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、移動体、移動制御システム、移動体の制御方法及びプログラムに関する。
【背景技術】
【0002】
例えばフォークリフトなどの移動体を、自動的に目標位置まで移動させる技術が知られている。特許文献1には、移動体に設けられた測域センサで検出した目標物の位置情報に基づき、目標物までのアプローチ軌道を決定する旨が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、センサを用いた目標物の位置検出は、一定の確率で失敗する場合があるため、目標物を適切に検出して、目標物までの適切なパス(軌道)を用いることが求められている。
【0005】
本開示は、上述した課題を解決するものであり、目標物を適切に検出して目標物までの適切なパスを用いることが可能な移動体、移動制御システム、移動体の制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するために、本開示に係る移動体は、自動で移動する移動体であって、目標物が設置される設置領域よりも第1方向側で、前記第1方向と交差する第2方向に前記設置領域を横切る第1パスの情報を取得する第1パス情報取得部と、前記移動体が前記第1パスに沿って移動中に、前記移動体に設けられたセンサに前記目標物の位置及び姿勢を検出させる検出制御部と、前記目標物の位置及び姿勢に基づき設定された、前記目標物に対して所定の位置及び姿勢となる目標位置までの第2パスの情報を取得する第2パス情報取得部と、前記第2パスに沿って前記移動体を移動させる移動制御部と、を含む。
【0007】
上述した課題を解決し、目的を達成するために、本開示に係る移動制御システム1は、前記移動体と、前記移動体と情報の送受信を行う情報処理装置と、を含む。
【0008】
上述した課題を解決し、目的を達成するために、本開示に係る移動体の制御方法は、自動で移動する移動体の制御方法であって、目標物が設置される設置領域よりも第1方向側で、前記第1方向と交差する第2方向に前記設置領域を横切る第1パスの情報を取得するステップと、前記移動体が前記第1パスに沿って移動中に、前記移動体に設けられたセンサに前記目標物の位置及び姿勢を検出させるステップと、前記目標物の位置及び姿勢に基づき設定された、前記目標物に対して所定の位置及び姿勢となる目標位置までの第2パスの情報を取得するステップと、前記第2パスに沿って前記移動体を移動させるステップと、を含む。
【0009】
上述した課題を解決し、目的を達成するために、本開示に係るプログラムは、自動で移動する移動体の制御方法をコンピュータに実行させるプログラムであって、目標物が設置される設置領域よりも第1方向側で、前記第1方向と交差する第2方向に前記設置領域を横切る第1パスの情報を取得するステップと、前記移動体が前記第1パスに沿って移動中に、前記移動体に設けられたセンサに前記目標物の位置及び姿勢を検出させるステップと、前記目標物の位置及び姿勢に基づき設定された、前記目標物に対して所定の位置及び姿勢となる目標位置までの第2パスの情報を取得するステップと、前記第2パスに沿って前記移動体を移動させるステップと、を、コンピュータに実行させる。
【発明の効果】
【0010】
本開示によれば、目標物を適切に検出して目標物までの適切なパスを用いることができる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、第1実施形態に係る移動制御システムの模式図である。
【
図3】
図3は、管理システムの模式的なブロック図である。
【
図4】
図4は、情報処理装置の模式的なブロック図である。
【
図5】
図5は、移動体の制御装置の模式的なブロック図である。
【
図6】
図6は、目標物の位置及び姿勢の検出を説明する模式図である。
【
図8】
図8は、第1実施形態に係る移動体の移動制御フローを説明するフローチャートである。
【
図9】
図9は、情報処理装置の他の例を示すブロック図である。
【
図10】
図10は、移動体の移動時の向きの他の例を示す模式図である。
【
図11】
図11は、第2実施形態に係る第2パスの設定フローを示すフローチャートである。
【
図12】
図12は、単円弧パスを第2パスとして設定する場合を説明する模式図である。
【
図13】
図13は、複円弧パスを第2パスとして設定する場合を説明する模式図である。
【
図16】
図16は、第3実施形態における干渉判定のフローを説明するフローチャートである。
【発明を実施するための形態】
【0012】
以下に添付図面を参照して、本発明の好適な実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではなく、また、実施形態が複数ある場合には、各実施形態を組み合わせて構成するものも含むものである。
【0013】
(第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とする。
【0014】
設備W内の領域ARには、複数の設置領域AR0が設けられている。設置領域AR0は、目標物Pが設置される領域である。設置領域AR0は、目標物Pを設置すべき領域として、予め設定される。設置領域AR0は、例えば白線などで区分されており、設置領域AR0の位置(座標)、形状、及び大きさは、予め設定されている。設置領域AR0内においては、目標物Pは、前面Paが方向X側を向くように配置されている。
図1の例では、目標物Pは、方向Zから見て前面Paに直交する軸PXが方向Xと沿うように、すなわち目標物Pの向きが設置領域AR0に対してずれないように、設置領域AR内に配置されている。ただし、目標物Pは、軸PXが方向Xと沿っていることに限られず、軸PXが方向Xから傾斜して、すなわち設置領域ARに対して向きがずれて設置されていてもよい。例えば、目標物Pは、軸PXと方向Xとの傾斜角度が、45度以下となるように、設置領域AR0に配置されることが好ましい。
【0015】
なお、本実施形態では、設置領域AR0は、設備Wの床である領域ARに設けられているが、それに限られず、例えば目標物Pを設備Wに搬入した車両の荷台内に設けられてもよい。また、本実施形態では、設置領域AR0は、目標物P毎に区画されており、設置領域AR0には目標物Pが1つ配置されるが、それに限られない。例えば、設置領域AR0は、フリースペースとして、複数の目標物Pが設置されるように設定されていてもよい。また、
図1の例では設置領域AR0は矩形であるが、形状及び大きさは任意であってよい。また、領域ARに設けられる設置領域AR0の数も任意であってよい。
【0016】
移動体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に直交する方向から見た場合の目標物Pの向き(回転角度)を指す。移動体10は、第2位置A2に到達したら、目標物Pの位置及び姿勢に基づいて設定された第2パスR2(グローバルパス)に従って、第2位置A2から目標位置A3まで移動して、目標物Pをピックアップする。目標位置A3は、目標物Pに対して所定の位置及び姿勢となる位置及び姿勢である。本実施形態では、目標位置A3は、移動体10が目標物Pをピックアップ可能な位置及び姿勢といえる。例えば、目標位置A3は、移動体10が横方向に移動することなく、直進することで、後述の移動体10のフォーク24を、目標物Pの開口Pbに挿入することができる移動体10の位置及び姿勢であってよい。この場合、移動体10は、目標位置A3から直進して目標物Pをピックアップして、目標物Pを他の場所に搬送する。なお、
図1に示す第1パスR1や第2パスR2は一例である。移動体10の第1パスR1、第2パスR2に従った移動の詳細については後述する。
【0017】
(移動体)
図2は、移動体の構成の模式図である。
図2に示すように、移動体10は、車体20と、マスト22と、フォーク24と、センサ26と、制御装置28とを備えている。車体20は、車輪20Aを備えている。マスト22は、車体20の前後方向における一方の端部に設けられている。マスト22は、前後方向に直交する上下方向(ここでは方向Z)に沿って延在する。フォーク24は、マスト22に方向Zに移動可能に取付けられている。フォーク24は、マスト22に対して、車体20の横方向(上下方向及び前後方向に交差する方向)にも移動可能であってよい。フォーク24は、一対のツメ24A、24Bを有している。ツメ24A、24Bは、マスト22から車体20の前方向に向けて延在している。ツメ24Aとツメ24Bとは、マスト22の横方向に、互いに離れて配置されている。以下、前後方向のうち、移動体10においてフォーク24が設けられている側の方向を、前方向とし、フォーク24が設けられていない側の方向を、後方向とする。
【0018】
センサ26は、車体20の周辺に存在する対象物の位置及び姿勢の少なくとも1つを検出する。センサ26は、移動体10に対する対象物の位置と、移動体10に対する対象物の姿勢とを検出するともいえる。本実施形態では、センサ26は、マスト22と、車体20の四隅とに、すなわち車体20の前方向側の左右の端部と後方向側の左右の端部とに、設けられている。ただし、センサ26の設けられる位置はこれに限られず、任意の位置に設けられてもよいし、設けられる数も任意であってよい。例えば、移動体10に設けられる安全センサを、センサ26として流用してもよい。安全センサを流用することで、新たにセンサを設ける必要がなくなる。
【0019】
センサ26は、例えばレーザ光を照射するセンサである。センサ26は、一方向(ここでは横方向)に走査しつつレーザ光を照射し、照射したレーザ光の反射光から、対象物の位置及び向きを検出する。すなわち、センサ26は、いわゆる2D-LiDAR(Light Detection And Ranging)であるともいえる。ただし、センサ26は、以上のものに限られず任意の方法で対象物を検出するセンサであってよく、例えば、複数の方向に走査されるいわゆる3D-LiDARであってもよいし、カメラであってもよい。
【0020】
制御装置28は、移動体10の移動を制御する。制御装置28については後述する。
【0021】
(管理システム)
図3は、管理システムの模式的なブロック図である。管理システム12は、設備Wにおける物流を管理するシステムである。管理システム12は、本実施形態ではWMS(Warehouse Management System)であるが、WMSに限られず任意のシステムであってよく、例えば、その他の生産管理系システムのようなバックエンドシステムでも構わない。管理システム12が設けられる位置は任意であり、設備W内に設けられてもよいし、設備Wから離れた位置に設けられて、離れた位置から設備Wを管理するものであってもよい。管理システム12は、コンピュータであり、
図3に示すように、通信部30と記憶部32と制御部34とを含む。
【0022】
通信部30は、制御部34に用いられて、情報処理装置14などの外部の装置と通信するモジュールであり、例えばアンテナなどを含んでよい。通信部30による通信方式は、本実施形態では無線通信であるが、通信方式は任意であってよい。記憶部32は、制御部34の演算内容やプログラムなどの各種情報を記憶するメモリであり、例えば、RAM(Random Access Memory)と、ROM(Read Only Memory)のような主記憶装置と、HDD(Hard Disk Drive)などの外部記憶装置とのうち、少なくとも1つ含む。
【0023】
制御部34は、演算装置、すなわちCPU(Central Processing Unit)である。制御部34は、作業決定部36を含む。制御部34は、記憶部32からプログラム(ソフトウェア)を読み出して実行することで、作業決定部36を実現して、その処理を実行する。なお、制御部34は、1つのCPUによって処理を実行してもよいし、複数のCPUを備えて、それらの複数のCPUで、処理を実行してもよい。また、作業決定部36を、ハードウェア回路で実現してもよい。また、記憶部32が保存する制御部34用のプログラムは、管理システム12が読み取り可能な記録媒体に記憶されていてもよい。
【0024】
作業決定部36は、搬送する対象となる目標物Pを決定する。具体的には、作業決定部36は、例えば入力された作業計画に基づき、搬送する対象となる目標物Pの情報を示す作業内容を決定する。作業内容は、搬送する対象となる目標物Pを特定する情報であるともいえる。本実施形態の例では、作業内容は、どの設備にあるどの目標物Pを、いつまでに、どこに搬送するかを、作業内容として決定する。すなわち、作業決定部36は、対象となる目標物Pが保管されている設備と、対象となる目標物Pと、目標物Pの搬送先と、目標物Pの搬送時期とを、を示す情報である。作業決定部36は、決定した作業内容を、通信部30を介して、情報処理装置14に送信する。
【0025】
(情報処理装置)
図4は、情報処理装置の模式的なブロック図である。情報処理装置14は、設備Wに設けられ、少なくとも、移動体10の移動に関する情報などを演算する装置、いわゆる地上システムである。情報処理装置14は、コンピュータであり、
図4に示すように、通信部40と記憶部42と制御部44とを含む。通信部40は、制御部44に用いられて、管理システム12や移動体10などの外部の装置と通信するモジュールであり、例えばアンテナなどを含んでよい。通信部40による通信方式は、本実施形態では無線通信であるが、通信方式は任意であってよい。記憶部42は、制御部44の演算内容やプログラムなどの各種情報を記憶するメモリであり、例えば、RAMと、ROMのような主記憶装置と、HDDなどの外部記憶装置とのうち、少なくとも1つ含む。
【0026】
制御部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が読み取り可能な記録媒体に記憶されていてもよい。
【0027】
(作業内容取得部及び移動体選定部)
作業内容取得部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として選定してよい。
【0028】
(第1パス取得部)
第1パス取得部54は、作業内容取得部50が特定した設置領域AR0までの第1パスR1の情報を、取得する。第1パスR1は、例えば設置領域AR0毎に、予め設定されている。第1パス取得部54は、例えば記憶部42から、作業内容取得部50が特定した設置領域AR0に対して設定された第1パスR1を、取得する。以下、第1パスR1について具体的に説明する。
【0029】
図1に示すように、第1パスR1は、移動体10が向かう設置領域AR0(目標物P)よりも方向X側で、方向Yに沿って設置領域AR0(目標物P)を横切る軌道となっている。より詳しくは、第1パスR1は、検出軌道R1aと、検出軌道R1aに接続されるアプローチ軌道R1bとを含む。
【0030】
図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までで任意の軌跡を描く軌道であってよい。
【0031】
図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に重なることが好ましい。
【0032】
なお、図示は省略するが、第1パスR1は、移動体10の移動開始位置から第1位置A1までの軌道も含んでよい。
【0033】
ただし、第1パスR1は、以上のような軌道であることに限られない。例えば、第1パスR1は、アプローチ軌道R1bを含まないものであってよい。すなわち、第1パスR1は、少なくとも、第1位置A1から第2位置A2までの検出軌道R1aを含むものであってよい。
【0034】
第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の設定が可能となる。
【0035】
なお、第1パス取得部54は、予め設定された第1パスR1を読み出すことなく、第1パスR1を設定してもよい。この場合、第1パス取得部54は、対象となる移動体10の位置情報と、設置領域AR0の位置情報と、設備Wの地図情報とに基づき、移動体10の現在位置から、第1位置A1、第2位置A2を経由して、移動先である設定位置A3zまでの経路を、第1パスR1として生成してよい。
【0036】
情報処理装置14は、取得した第1パスR1の情報を、通信部40を介して、対象となる移動体10に送信する。第1パスR1は、設置領域AR0に向かう経路であるため、移動体10の移動に関する情報であるといえる。
【0037】
(移動体の制御装置)
次に、移動体10の制御装置28について説明する。
図5は、移動体の制御装置の模式的なブロック図である。制御装置28は、移動体10を制御する。制御装置28は、移動体10のセンサ26による目標物Pの位置や姿勢の検出結果に基づいて設定された第2パスR2に沿って、移動体10を目標位置A3まで移動させて、移動体10に目標物Pをピックアップさせる。制御装置28は、コンピュータであり、
図5に示すように、通信部60と記憶部62と制御部64とを含む。通信部60は、制御部64に用いられて、情報処理装置14などの外部の装置と通信するモジュールであり、例えばアンテナなどを含んでよい。通信部40による通信方式は、本実施形態では無線通信であるが、通信方式は任意であってよい。記憶部62は、制御部64の演算内容やプログラムなどの各種情報を記憶するメモリであり、例えば、RAMと、ROMのような主記憶装置と、HDDなどの外部記憶装置とのうち、少なくとも1つ含む。
【0038】
制御部64は、演算装置、すなわちCPUである。制御部64は、第1パス情報取得部70と、移動制御部72と、検出制御部74と、第2パス情報取得部76とを含む。制御部64は、記憶部62からプログラム(ソフトウェア)を読み出して実行することで、第1パス情報取得部70と移動制御部72と検出制御部74と第2パス情報取得部76とを実現して、それらの処理を実行する。なお、制御部64は、1つのCPUによってこれらの処理を実行してもよいし、複数のCPUを備えて、それらの複数のCPUで、処理を実行してもよい。また、第1パス情報取得部70と移動制御部72と検出制御部74と第2パス情報取得部76との少なくとも一部を、ハードウェア回路で実現してもよい。また、記憶部62が保存する制御部64用のプログラムは、制御装置28が読み取り可能な記録媒体に記憶されていてもよい。
【0039】
(第1パス情報取得部)
第1パス情報取得部70は、第1パスR1の情報を取得する。第1パス情報取得部70は、その移動体10が作業対象として選定された際に、情報処理装置14から第1パスR1の情報を取得してもよいし、予め記憶部62に記憶された第1パスR1の情報を読み出してもよい。
【0040】
(移動制御部)
移動制御部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の領域Aにおける方向X及び方向Yの二次元座標であり、以下においても、位置とは、別途説明が無い限り、領域Aにおける二次元座標を指す。また、移動体10の姿勢とは、方向X及び方向Yに直交する方向Zから見た場合の移動体10の向き(回転角度)である。また、移動体10の位置及び姿勢の情報の取得方法は、検出体を用いることに限られず、例えば、SLAM(Slmultaneous Localization and Mapping)を用いてもよい。
【0041】
(検出制御部)
図6は、目標物の位置及び姿勢の検出を説明する模式図である。検出制御部74は、
図6に示すように、移動体10が、第1パスR1に沿って第1位置A1から第2位置A2までの間を移動中に、すなわち検出軌道R1aを移動中に、センサ26に、目標物Pの位置及び姿勢を検出させ、センサ26による目標物Pの位置及び姿勢の検出結果を取得する。検出制御部74は、移動体10が第1位置A1から第2位置A2までの間を移動中に、センサ26に方向Xと反対方向側を検出させることで、目標物Pの位置及び姿勢を検出させる。例えば、検出制御部74は、方向Xと反対方向側を向いているセンサ26に、検出を実行させる。
【0042】
例えばセンサ26がレーザ光を照射する構成の場合、検出制御部74は、移動体10が第1位置A1から第2位置A2までの間を移動中に、センサ26を横方向(水平方向)に走査させつつ、センサ26からレーザ光LTを照射させる。移動体10のX方向側にある目標物Pは、センサ26からのレーザ光LTを反射する。センサ26は、目標物Pからの反射光を受光する。検出制御部74は、センサ26が受光した目標物Pからの反射光に基づき、目標物Pの位置及び姿勢を算出する。検出制御部74は、目標物Pからの反射光がセンサ26に向かってくる方向や、レーザ光LTを照射してから反射光を受光するまでの時間などから、目標物Pの位置及び姿勢を算出することができる。また例えば、検出制御部74は、センサ26が取得した個々の計測点(受光した個々の反射光)の集合を点群とすると、点群に基づいて、目標物Pの位置及び姿勢を算出してよい。
【0043】
検出制御部74は、移動体10が第1位置A1に到達したらセンサ26に検出を開始させ、移動体10が第2位置A2に到達したら、センサ26に検出を停止させるよう、センサ26を制御してよい。すなわち、検出制御部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の位置及び姿勢の検出に成功するまで検出を続けさせ、検出に成功したら、検出を停止させてよい。
【0044】
なお、本実施形態においては、移動制御部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から第2位置A2までの移動体10の移動速度よりも遅くしてもよい。第1位置A1から第2位置A2までの移動体10の移動速度を遅くすることで、目標物Pの位置及び姿勢を適切に検出させることができる。
【0045】
以下、センサ26が検出した目標物Pの位置及び姿勢を示す情報を、適宜、位置姿勢情報と記載する。検出制御部74は、センサ26が検出した位置姿勢情報を取得する、といえる。
【0046】
(第2パス情報取得部)
図7は、第2パスを説明する模式図である。第2パス情報取得部76は、センサ26が検出した位置姿勢情報に基づき設定された第2パスR2の情報を取得する。第2パスR2は、目標物Pの位置姿勢情報に基づき設定された、第2位置A2から目標位置A3までの軌道である。ただし、第2パスR2は、第2位置A2を開始位置とする軌道であることに限られず、例えば、第2位置A2からずれた開始位置から目標位置A3までの軌道であってもよい。この場合、移動体10は、第2パスR2の開始位置まで、予め設定された軌道(例えば第1パスR1)に沿って移動してよい。なお、
図7に示す第1パスR1及び第2パスR2は、一例である。
【0047】
本実施形態においては、第2パス情報取得部76が、すなわち移動体10自身が、センサ26が検出した位置姿勢情報に基づき、第2パスR2を設定する。第2パス情報取得部76は、目標物Pの位置及び姿勢から、目標位置A3を設定する。例えば、第2パス情報取得部76は、目標物Pの位置及び姿勢から、目標物Pをピックアップ可能な(直進することでフォーク24を目標物Pの開口Pbに挿入することができる)位置及び姿勢を算出して、目標位置A3として設定する。一例として、開口Pbの入口から、目標物Pの開口Pbの軸方向に1000mm平行移動した箇所を、目標位置A3としてもよい。そして、第2パス情報取得部76は、開始位置である第2位置A2から、設定した目標位置A3までの軌道を、第2パスR2として設定する。
【0048】
本実施形態では、第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は、例えば車両仕様などから、任意に設定してよい。
【0049】
円弧軌道R2bは、直線軌道R2aに接続される軌道であり、中間位置ASBから目標位置A3までの軌道である。従って、円弧軌道R2bは、X方向と反対方向側に、言い換えればY方向に直交する方向において設置領域AR0(目標物AR0)に近づく側に、進行する軌道である。
図7の例では、円弧軌道R2bは、中間位置ASBから、中間位置ASBと目標位置A3との間の中間位置までの円弧状の軌道と、中間位置から目標位置A3までの直線状の軌道とを含む。ただし、円弧軌道R2bは、中間位置ASBから目標位置A3までの全区間において、円弧状の軌道であってもよい。すなわち、円弧軌道R2bは、円弧状の軌道と直線状の軌道で構成されていてもよいし、円弧状の軌道のみから構成されていてもよい。円弧軌道R2bは、円弧及び直線以外の軌跡を描く軌道(非線形の軌道)を含まないことが好ましい。
【0050】
(第2パスの算出の他の例)
なお、第2パスR2の設定方法は上記に限られず、例えば、第2パス情報取得部76は、モデル予測制御(MPC:Model Predictive Control)によって、第2パスR2を算出してもよい。以下、モデル予測制御による第2パスR2の算出方法の例を説明する。
【0051】
移動体10の制御入力u(k)は、以下の式(1)で表される。
【0052】
【0053】
ここで、v(k)は、移動体10の速度指令値であり、φ(k)は、移動体10のヨーレート指令値であり、kは、離散時間のインデクスを表す。離散時間毎の移動体10の制御入力U(k)は、以下の式(2)で表される。なお、Nは、予測区間(Predictive horizon)である。
【0054】
【0055】
第2パス情報取得部76は、次の式(3)に示す最適化問題を解き、制御入力の最適解であるu(k),u(k+1),・・・,u(k+N-1)を求めて、第2パスR2を算出する。この最適化問題の解法としては,逐次二次計画法や内点法などの公知技術を用いることができる。
【0056】
【0057】
なお、このように第2パスR2を算出する際には、例えば、以下の式(4)から式(8)に示す拘束条件を与える。
【0058】
【0059】
ここで、xは、方向Xにおける移動体10の座標であり、yは、方向Yにおける移動体10の座標であり、θは、基準軸に対する移動体10の傾斜角度であり、Lは、移動体10の前輪と後輪との距離を示すホイールベースである。vMAX、φMAXは、予め設定される速度とヨーレートの上限値である。
【0060】
(第2パスの干渉判定)
第2パス情報取得部76は、以上のようにして、第2パスR2を取得する。しかし、このように設定された第2パスR2に沿って移動体10が移動した場合、設備W内の障害物に移動体10が干渉する可能性もある。そのため、第2パス情報取得部76は、設定した第2パスR2を移動体10が通った場合に、移動体10に障害物に干渉するかを判定してもよい。干渉判定の方法は任意であるが、例えば、第2パス情報取得部76は、第2パスR2と、移動体10の車両仕様とから、移動体10が進入する領域を算出しつつ、地図情報から障害物の位置を取得して、移動体10が進入する領域内に障害物が存在するかを判定してもよい。この場合、第2パス情報取得部76は、移動体10が進入する領域内に障害物が存在する場合に、障害物に干渉すると判定し、移動体10が進入する領域内に障害物が存在しない場合に、障害物に干渉しないと判定する。
【0061】
第2パス情報取得部76は、障害物に干渉しないと判定した場合に、その第2パスR2を採用して、移動制御部72は、その第2パスR2を用いて移動体10を移動させる。一方、第2パス情報取得部76は、障害物に干渉すると判定した場合に、その第2パスR2を採用せず、別の第2パスR2を設定する。第2パス情報取得部76は、円弧軌道R2bの旋回半径rを所定値小さくすることを拘束条件として、別の第2パスR2を設定する。旋回半径rとは、円弧軌道R2bの円弧上の軌跡の半径を指す。第2パス情報取得部76は、設定しなおした第2パスR2を用いて、障害物との干渉判定を繰り返す。第2パス情報取得部76は、旋回半径rが、予め設定した最小旋回半径より小さくなるまでこの処理を繰り返す。第2パス情報取得部76は、旋回半径rを最小旋回半径より小さくしても、障害物に干渉する場合には、第2パスR2の生成が不可能であるとして、その旨を示す通知を行わせる。すなわち、第2パス情報取得部76は、旋回半径rが所定値以上(ここでは最小旋回半径以上)となる第2パスR2を生成するといえる。
【0062】
ただし、以上のような障害物との干渉判定のフローは必須ではない。例えば、第2パス情報取得部76は、障害物の位置を通らないことを予め拘束条件として、第2パスR2を設定してもよい。
【0063】
(第2パスに沿った移動)
本実施形態では、移動制御部72は、移動体10が第2位置A2に到着したら、移動体10の移動を一旦停止させる。そして、第2パス情報取得部76は、移動体10が第2位置A2で停止したら、演算を開始して、第2パスR2を取得する。移動制御部72は、第2パスR2が取得されたら、第2パスR2を通るように、第2位置A2から目標位置A3まで、移動体10を移動させる。具体的には、移動制御部72は、第2位置A2で切り返して、第2位置A2から中間位置ASBまで、第2パスR2の直線軌道R2aに沿って、第1パスR1の検出軌道R1aとは反対方向に、すなわち方向Yと反対方向に、移動体10を移動させる。そして、中間位置ASBに到達したら、移動制御部72は、直線軌道R2aから円弧軌道R2bに切り替えて、すなわち進行方向を変化させて、円弧軌道R2bに沿って、移動体10を目標位置A3まで移動させる。なお、移動制御部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を移動させる。
【0064】
移動体10が目標位置A3に到着したら、移動制御部72は、目標位置A3から移動体10を直進させて、フォーク24を目標物Pの開口Pbに挿入させて、目標物Pをピックアップさせる。移動制御部72は、目標物Pをピックアップした移動体10を、設定された搬送先まで搬送させる。
【0065】
このように、移動制御部72は、第2位置A2から目標位置A3まで、第2パスR2に沿って移動体10を移動させるが、それに限られず、例えば、第2パスR2に沿った移動と直接フィードバック制御による移動とを切り替えて、移動体10を目標位置A3まで移動させてもよい。直接フィードバックによる制御としては、例えば「尾里淳,丸典明 著「線形ビジュアルサーボによる全方向移動ロボットの位置と姿勢の制御」、日本機械学会論文集(C編)、第77巻、第774号、p.215-224、2011年2月25日」に記載されているような、ビジュアルサーボ方式による制御が挙げられる。また例えば、移動制御部72は、移動体10が第2パスR2に沿って目標位置A3に到着したら、直接フィードバックによる制御に切り替えて、目標物Pをピックアップするよう、移動体10を移動させてもよい。
【0066】
(第2パスの必要性判断)
以上の説明では、第2位置A2において、第1パスR1から第2パスR2に切り替えて目標物Pまでアプローチしていたが、目標物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の設定が必要と判断する。なお、ここでの所定の範囲は、車両仕様の情報などから、任意の方法で設定されてよく、予め算出しておいてよい。
【0067】
第2パス情報取得部76は、第2パスR2の設定が不要と判断した場合には、第2パスR2を取得しない(ここでは設定しない)。この場合、移動制御部72は、第2位置A2からも引き続き第1パスR1を使用し、第1パスR1のアプローチ軌道R1bを通るように、第2位置A2から設定位置A3zまで移動体10を移動させ、設定位置A3zから目標物Pをピックアップさせる。すなわちこの場合、設定位置A3zを、実際の目標位置A3として取り扱うといえる。なお、第2パス情報取得部76は、第2パスR2の設定が不要と判断した場合にも、第2パスR2の取得(設定)自体は行ってよい。この場合、移動制御部72は、取得された第2パスR2を用いることなく、第1パスR1を用いて、目標物Pまでアプローチさせる。
【0068】
一方、第2パス情報取得部76は、第2パスR2の設定が必要と判断した場合には、第2パスR2を取得する(ここでは設定する)。この場合、移動制御部72は、上述のように、第2位置A2から、第2パスR2を通るように、目標位置A3まで移動体10を移動させ、目標位置A3から目標物Pをピックアップさせる。
【0069】
(移動制御フロー)
以上説明した移動体10の移動制御のフローを、フローチャートに基づき説明する。
図8は、第1実施形態に係る移動体の移動制御フローを説明するフローチャートである。
図8に示すように、移動体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により、目標物Pの位置姿勢情報に基づき、第2パスR2が必要であるかを判断する(ステップS14)。例えば、第2パス情報取得部76は、目標物Pの位置及び姿勢が、所定の範囲内にある場合に、第2パスR2の設定が必要ではないと判断し、所定の範囲外にある場合に、第2パスR2の設定が必要であると判断する。
【0070】
第2パスR2の設定が必要でないと判断した場合(ステップS14:No)、移動制御部72は、引き続き第1パスR1を使用し、第1パスR1(アプローチ軌道R1b)に従って、第2位置A2から目標位置A3(設定位置A3z)まで移動体10を移動させて(ステップS16)、目標物Pをピックアップさせる。
【0071】
第2パスR2の設定が必要と判断した場合(ステップS14:Yes)、第2パス情報取得部76は、目標物Pの位置姿勢情報に基づき、第2パスR2を設定する(ステップS18)。第2パス情報取得部76は、設定した第2パスR2で移動体10を移動させた場合に移動体10が障害物に干渉するかを判断し(ステップS20)、干渉しないと判断した場合には(ステップS20:No)、移動制御部72は、設定した第2パスR2に従って、第2位置A2から目標位置A3まで移動体10を移動させて(ステップS22)、目標物Pをピックアップさせる。
【0072】
移動体10が障害物に干渉すると判断した場合(ステップS20:Yes)、第2パス情報取得部76は、第2パスR2の円弧軌道R2bの旋回半径rを所定値だけ小さくして(ステップS24)、所定値だけ小さくした旋回半径rが、最小旋回半径より小さいかを判断する(ステップS26)。旋回半径rが最小旋回半径より小さくない場合(ステップS26:No)、すなわち旋回半径rが最小旋回半径以上である場合、ステップS18に戻り、所定値だけ小さくした旋回半径rとすることを条件として、第2パスR2を再度設定し、以降の処理を続ける。一方、旋回半径rが最小旋回半径より小さい場合(ステップS26;Yes)、制御装置28は、第2パスR2の設定ができない旨を示すアラームを通知する(ステップS28)。アラームの通知方法は任意であってよく、例えば、移動体10に設けられたスピーカや表示装置などの出力装置から、アラームを出力してもよいし、情報処理装置14に通信でアラームを出力し、そのアラームを情報処理装置14に設けられた出力装置から出力してもよい。
【0073】
以上説明したように、本実施形態に係る移動体10は、第1パスR1に沿って設置領域AR0を横切る最中に(ここでは第1位置A1から第2位置A2への移動中に)、センサ26によって目標物Pの位置姿勢情報を検出させる。本実施形態によると、設置領域AR0を横切りながら目標物Pの位置姿勢を検出するため、目標物Pの位置姿勢を適切に検出することが可能となり、結果として、目標物Pまでの適切なパスを用いた移動を行うことができる。さらに言えば、設置領域AR0を横切りながら目標物Pの位置姿勢を検出するため、例え検出が失敗したとしても、設置領域AR0を横切るルート上の他の位置で再度検出することが可能となるため、目標物Pの位置姿勢を適切に検出することが可能となる。また、第2位置A2に到達するまでに目標物Pの位置姿勢の検出が完了するため、第2位置A2から目標物Pに近づいていく際に、目標物Pの位置姿勢を検出する必要がなくなる。
【0074】
また、本実施形態に係る移動体10は、目標物Pの位置姿勢が所定範囲内にある場合には、すなわち目標物Pが適切な位置姿勢で置かれている場合には、第2パスR2を生成せず、予め設定された第1パスR1を引き続き利用して、目標物Pまでアプローチする。そのため、目標物Pが適切な位置姿勢で置かれている場合における演算負荷を低減することができる。また、本実施形態に係る移動体10は、設定した第2パスR2を用いた場合に移動体10が障害物に干渉するかも判定するため、切り返しや障害物回避が可能な第2パスR2を生成することができる。
【0075】
(他の例)
図9は、情報処理装置の他の例を示すブロック図である。以上の説明では、移動体10が、目標物Pの位置姿勢情報に基づき、第2パスR2を設定していたが、第2パスR2は移動体10が設定することに限られない。例えば、第2パスR2は、情報処理装置14が設定してもよい。この場合、情報処理装置14の制御部44は、
図9に示すように、第2パス情報取得部56を含む。第2パス情報取得部56は、通信部40を介して、移動体10から、センサ26が検出した目標物Pの位置姿勢情報を取得する。第2パス情報取得部56は、上述で説明した移動体10の第2パス情報取得部76と同様の処理を行う。すなわち例えば、第2パス情報取得部56は、目標物Pの位置姿勢情報に基づき、第2パスR2を設定する。そしてこの場合、移動体10の第2パス情報取得部76は、通信部60を介して、情報処理装置14から、第2パス情報取得部76が設定した第2パスR2の情報を取得する。
【0076】
また、本実施形態では、管理システム12が目標物Pの情報を示す作業内容を決定し、情報処理装置14が、対象となる移動体10を特定したり、第1パスR1を取得したりしていた。ただし、管理システム12と情報処理装置14との処理内容は、それらに限られない。例えば、管理システム12が、情報処理装置14の少なくとも一部の処理を受け持ってもよいし、情報処理装置14が、管理システム12の少なくとも一部の処理を受け持ってもよい。また、管理システム12と情報処理装置14とが1つの装置(コンピュータ)であってもよい。
【0077】
図10は、移動体の移動時の向きの他の例を示す模式図である。
図1に示したように、本実施形態では、移動体10は、第2位置A2まで、フォーク24が設けられていない後方向を進行方向前方として移動し、第2位置A2から切り返して、フォーク24が設けられている前方向を進行方向前方として、目標物Pにアプローチする。しかし、移動体10の移動時の向きはそれに限られない。例えば
図10に示すように、移動体10は、第2位置A2までにおいても、フォーク24が設けられている前方向を進行方向前方として移動してもよい。この場合、移動体10は、第2位置A2から中間位置ASBまでは、フォーク24が設けられていない後方向を進行方向前方として移動し、中間位置ASBで切り返して、フォーク24が設けられている前方向を進行方向前方として、目標物Pにアプローチする。
【0078】
(第2実施形態)
次に、第2実施形態について説明する。第2実施形態においては、第2パスR2の設定時に、目標物Pとは反対方向(X方向側)に膨らんで切り返しさせる必要であるかを判断する点で、第1実施形態とは異なる。第2実施形態において、第1実施形態と構成が共通する箇所は、説明を省略する。
【0079】
図11は、第2実施形態に係る第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の設定フローを説明する。
【0080】
図11に示すように、第2実施形態においては、第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は、次の式(9)、(10)に基づき算出される。
【0081】
XTGa=Xref+dmin・cosθref ・・・(9)
YTGa=Yref+dmin・sinθref ・・・(10)
【0082】
そして、
図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は、次の式(11)、(12)に基づき算出される。
【0083】
CXa=XTGa-r・sinθref ・・・(11)
CYa=YTGa-r・cosθref ・・・(12)
【0084】
そして、
図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は、次の式(13)を満たす場合に、目標位置A3と反対側に向かう軌道が必要と判断し、次の式(13)を満たさない場合に、目標位置A3と反対側に向かう軌道が不要と判断する。
【0085】
XSB1<CXa+r ・・・(13)
【0086】
すなわち、仮円弧軌道中心Caの座標C
Xaから旋回半径rの長さ分方向Xに移動した位置が、検出軌道R1aの座標X
SB1よりもX方向側にある場合に、式(13)を満たし、検出軌道R1aの座標X
SB1よりもX方向側にない場合(X方向において座標X
SB1と同じ位置、又は座標X
SB1よりX方向と反対側にある場合)、式(13)を満たさないと判断する。なお、
図12に示すように、直線軌道R2aから円弧軌道R2bに切り替わる中間位置ASB1は、検出軌道R1a上にあるため、座標X
SB1は、中間位置ASB1のX方向における座標であるともいえる。座標X
SB1は、第1パスR1の情報として、第1パス情報取得部70によって取得される。
【0087】
(単円弧パスの設定)
図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は、次の式(14)を用いて中間位置ASB1の座標Y
SB1を算出する。
【0088】
YSB1=CYa+(XSB1-CXa-r)・sinθref ・・・(14)
【0089】
そして、
図11に示すように、第2パス情報取得部76は、中間位置ASB1の座標と旋回半径rとに基づき、円弧軌道中心C1の座標を算出する(ステップS38)。円弧軌道中心C1は、
図12に示すように、設定する第2パスR2(単円弧パス)の円弧軌道R2bの、円弧を描く軌跡の中心を指す。円弧軌道中心C1の方向X、方向Yにおける座標を、それぞれC1
X、C1
Yとすると、C1
X、C1
Yは、次の式(15)、(16)に基づき算出される。
【0090】
C1X=XSB1-r ・・・(15)
C1Y=YSB1 ・・・(16)
【0091】
そして、
図11に示すように、第2パス情報取得部76は、円弧軌道中心C1の座標と目標物Pの位置姿勢情報とに基づき、目標位置A3の位置及び姿勢を算出する(ステップS40)。第2パス情報取得部76は、次の式(17)から式(19)を用いて、目標位置A3の位置及び姿勢である[X
TG、Y
TG、θ
TG]を算出する。
【0092】
XTG=C1X+r・cosθref ・・・(17)
YTG=C1Y+r・sinθref ・・・(18)
θTG=θref ・・・(19)
【0093】
図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とで構成される。
【0094】
以上が、X方向側に膨らむ軌道を有さない単円弧パスを第2パスR2とする場合の、設定方法である。単円弧パスを第2パスR2とした場合、移動体10は、第2位置A2から中間位置ASB1までを直線軌道R2aに沿って移動し、中間位置ASB1において、直線軌道R2aから円弧軌道R2bに切り替えて、すなわち進行方向を変化させて、円弧軌道R2bに沿って目標位置A3まで移動する。
【0095】
(複円弧パスの設定)
一方、
図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を、次の式(20)を用いて算出する。
【0096】
w=√{(2r)2-(r+XSB1-Cx)2} ・・・(20)
【0097】
そして、第2パス情報取得部76は、次の式(21)、(22)に基づき、円弧軌道中心C2の座標C2X、C2Yを算出する。
【0098】
C2X=XSB1+r ・・・(21)
C2Y=C1Y-w ・・・(22)
【0099】
次に、
図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は、次の式(23)に示すように、円弧軌道中心C2の座標C2
Yを、中間位置ASB1の座標Y
SB1を算出する。
【0100】
YSB1=C2Y ・・・(23)
【0101】
次に、
図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は、次の式(24)から式(26)を用いて、中間位置ASB2の位置及び姿勢を算出する。
【0102】
XSB2=(C1X+C2X)/2 ・・・(24)
YSB2=(C1Y+C2Y)/2 ・・・(25)
θSB2=tan-1{(C2X-C1X)/(C2Y-C1Y)}+π/2 ・・・(26)
【0103】
そして、
図11に示すように、第2パス情報取得部76は、仮目標位置A3aの座標と目標物Pの位置姿勢情報とに基づき、目標位置A3の位置及び姿勢を算出する(ステップS50)。第2パス情報取得部76は、次の式(27)から式(29)を用いて、目標位置A3の位置及び姿勢である[X
TG、Y
TG、θ
TG]を算出する。
【0104】
XTG=XTGa ・・・(27)
YTG=YTGa・・・(28)
θTG=θref ・・・(29)
【0105】
すなわち、第2パス情報取得部76は、仮目標位置A3aを目標位置A3として設定する。
【0106】
そして、
図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円弧軌道)とで構成される。
【0107】
以上が、X方向側に膨らむ軌道(円弧軌道R2b1)を有する複円弧パスを第2パスR2とする場合の、設定方法である。複円弧パスを第2パスR2とした場合、移動体10は、第2位置A2から中間位置ASB1までを直線軌道R2aに沿って移動し、中間位置ASB1において、直線軌道R2aから円弧軌道R2b1に切り替えて、すなわち切り返して、円弧軌道R2b1に沿って中間位置ASB2まで移動する。移動体10は、中間位置ASB2において、円弧軌道R2b1から円弧軌道R2b2に切り替えて、すなわち進行方向を変化させて、円弧軌道R2b2に沿って目標位置A3まで移動する。
【0108】
以上説明したように、第2実施形態においては、X方向側に膨らむ軌道が必要かを判断して、必要でない場合には、X方向側に膨らむ軌道を含まない単円弧パスを設定し、必要である場合には複円弧パスを設定する。そのため、第2実施形態においては、目標物Pの位置姿勢に応じて、例えばX方向側への切り返しが可能な、適切な第2パスR2を設定することが可能となる。さらに、直線軌道R2aと円弧軌道R2bとの組み合わせだけで第2パスR2を設定することで、演算負荷を抑えて、高速に第2パスR2を生成することが可能である。なお、円弧軌道R2bの旋回半径rと移動体10の舵角指令は一対一で対応しているため、外乱が一切無い場合に円弧軌道R2b上を移動できる移動体10の舵角指令も、同時に求めることができる。舵角が一定である場合には、旋回半径rは移動速度に依存しないため、スリップなどが発生しない範囲で任意の移動速度を設定してもよい。
【0109】
(第3実施形態)
次に、第3実施形態について説明する。第3実施形態においては、移動体10と障害物との干渉判定の方法が、第1実施形態及び第2実施形態とは異なる。第3実施形態において第1実施形態及び第2実施形態と構成が共通する箇所は、説明を省略する。
【0110】
図14及び
図15は、干渉判定を説明するための模式図である。第3実施形態においては、第2パス情報取得部76は、移動体10の進行方向を切り替える中間位置ASBにおける移動体10の位置に基づき、設定した第2パスR2を移動体10が通った場合に、移動体10が障害物に干渉するかを判定する。第3実施形態においては、第2パス情報取得部76は、地図情報から、障害物が存在しない領域の位置情報を取得する。そして、第2パス情報取得部76は、中間位置ASBの座標と移動体10の車両仕様とから、中間位置ASBに位置する際の移動体10の座標を算出する。第2パス情報取得部76は、中間位置ASBに位置する際の移動体10の座標が、障害物が存在しない領域の範囲内にある場合に、その第2パスR2を用いた場合に障害物に干渉しないと判定し、障害物が存在しない領域の範囲外にある場合には、その第2パスR2を用いた場合に障害物に干渉すると判定する。なお、中間位置ASBに位置する際の移動体10の座標は、Z方向から見て移動体10の最も径方向外側となる位置の座標であることが好ましい。例えば、
図14に示すように、中間位置ASBに位置する際の移動体10の座標は、中間位置ASBに位置する際の、Z方向から見た移動体10の四隅CR1、CR2、CR3、CR4の座標であることが好ましい。
【0111】
図14は、第2パスR2が単円弧パスである場合の干渉判定を説明する図である。
図14に示すように、第2パス情報取得部76は、単円弧パスを第2パスR2として設定した場合に、直線軌道R2aから円弧軌道R2bに切り替わる中間位置ASB1に移動体10が位置する際の、四隅CR1、CR2、CR3、CR4の座標を算出する。第2パス情報取得部76は、四隅CR1、CR2、CR3、CR4の全ての座標が、障害物が存在しない領域の範囲内にある場合には、移動体10に障害物に干渉しないと判定する。一方、第2パス情報取得部76は、四隅CR1、CR2、CR3、CR4の少なくとも1つが、障害物が存在しない領域の範囲外にある場合には、移動体10に障害物に干渉すると判定する。例えば、四隅CR1、CR2、CR3、CR4の方向Xの座標をXi(ただしi=1、2、3、4)とし、四隅CR1、CR2、CR3、CR4の方向Yの座標をYi(ただしi=1、2、3、4)とする。また、障害物が存在しない領域の方向Xにおける範囲が、0以上X
MAX以下であり、障害物が存在しない領域の方向Yにおける範囲が、Y
MIN以上Y
MAX以下であるとする。この場合、第2パス情報取得部76は、i=1、2、3、4の全てのケースで、すなわち四隅CR1、CR2、CR3、CR4の全てで、次の式(30)及び式(31)の両方を満たす場合に、その第2パスR2を採用した場合に移動体10が障害物に干渉しないと判定する。一方、第2パス情報取得部76は、i=1、2、3、4の少なくとも1つのケースで、すなわち四隅CR1、CR2、CR3、CR4の少なくとも1つで、次の式(30)及び式(31)の少なくとも1つを満たさない場合に、その第2パスR2を採用した場合に移動体10が障害物に干渉すると判定する。
【0112】
0<Xi<XMAX (ただしi=1、2、3、4) ・・・(30)
YMIN<Yi<YMAX (ただしi=1、2、3、4) ・・・(31)
【0113】
図15は、第2パスR2が複円弧パスである場合の干渉判定を説明する図である。
図15に示すように、第2パス情報取得部76は、複円弧パスを第2パスR2として設定した場合に、直線軌道R2aから円弧軌道R2b1に切り替わる中間位置ASB1に移動体10が位置する際と、円弧軌道R2b1から円弧軌道R2b2に切り替わる中間位置ASB2に移動体10が位置する際との、四隅CR1、CR2、CR3、CR4の座標を算出する。第2パス情報取得部76は、中間位置ASB1と中間位置ASB2との両方のケースで、四隅CR1、CR2、CR3、CR4の全ての座標が、障害物が存在しない領域の範囲内にある場合には、移動体10に障害物に干渉しないと判定する。一方、第2パス情報取得部76は、中間位置ASB1と中間位置ASB2との少なくとも一方のケースで、四隅CR1、CR2、CR3、CR4の少なくとも1つが、障害物が存在しない領域の範囲外にある場合には、移動体10に障害物に干渉すると判定する。例えば、第2パス情報取得部76は、移動体10が中間位置ASB1に位置する場合と中間位置ASB2に位置する場合との両方において、i=1、2、3、4の全てのケースで、すなわち四隅CR1、CR2、CR3、CR4の全てで、式(30)及び式(31)の両方を満たす場合に、その第2パスR2を採用した場合に移動体10が障害物に干渉しないと判定する。一方、第2パス情報取得部76は、移動体10が中間位置ASB1に位置する場合と中間位置ASB2に位置する場合との少なくとも一方において、i=1、2、3、4の少なくとも1つのケースで、すなわち四隅CR1、CR2、CR3、CR4の少なくとも1つで、式(30)及び式(31)の少なくとも1つを満たさない場合に、その第2パスR2を採用した場合に移動体10が障害物に干渉すると判定する。
【0114】
第2パス情報取得部76は、移動体10が障害物に干渉しないと判断した場合は、その第2パスR2を採用する。移動制御部72は、採用された第2パスR2で移動体10を移動させる。一方、第2パス情報取得部76は、移動体10が障害物に干渉すると判断した場合は、その第2パスR2を採用せず、第2パスR2を再設定する。この場合例えば、第1実施形態で説明したように、旋回半径rを所定値だけ小さくして、第2パスR2を再設定する。
【0115】
図16は、第3実施形態における干渉判定のフローを説明するフローチャートである。
図16に示すように、第2パス情報取得部76は、第2パスR2上の中間位置ASBでの移動体10の四隅CR1、CR2、CR3、CR4の座標を算出する(ステップS50)。第2パス情報取得部76は、中間位置ASBの位置及び姿勢と、移動体10の車両仕様とから、四隅CR1、CR2、CR3、CR4の座標を算出できる。第2パス情報取得部76は、四隅CR1、CR2、CR3、CR4の座標が、障害物に干渉しない領域の範囲内であるかを判定し(ステップS52)、障害物に干渉しない領域の範囲内である場合(ステップS52:Yes)、障害物に干渉しないと判断して、その第2パスR2を採用する(ステップS54)。一方、障害物に干渉しない領域の範囲外である場合(ステップS52:No)、第2パス情報取得部76は、障害物に干渉すると判断して、その第2パスR2を採用せず、第2パスR2を再設定する(ステップS56)。
【0116】
以上説明したように、第3実施形態においては、中間位置ASBでの移動体10の座標を用いて、障害物との干渉判定を行う。すなわち、第3実施形態においては、第2パス情報取得部76は、中間位置ASBで障害物に干渉しなければ、第2パスR2の全ての位置において障害物に干渉しないと判定する。従って、第3実施形態においては、第2パスR2を移動する際の障害物との干渉判定を高精度に実施して、障害物との干渉を適切に抑制できる。さらに、第3実施形態によると、例えば第2パスR2上の全ての位置における移動体10の座標を算出することなく、中間位置ASBでの移動体10の座標のみを算出すればよいので、演算負荷も抑制できる。
【0117】
(本開示の効果)
以上説明したように、本開示に係る移動体10は、自動で移動するものであって、第1パス情報取得部70と、検出制御部74と、第2パス情報取得部76と、移動制御部72とを含む。第1パス情報取得部70は、第1パスR1の情報を取得する。第1パスR1は、目標物Pが設置される設置領域AR0よりも方向X(第1方向)側で、方向Xと交差する方向Y(第2方向)に設置領域AR0を横切る軌道である。検出制御部74は、移動体10が第1パスR1に沿って移動中に、移動体10に設けられたセンサ26に目標物Pの位置及び姿勢を検出させる。第2パス情報取得部76は、第2パスR2の情報を取得する。第2パスR2は、目標物Pの位置及び姿勢に基づき設定された、目標物Pに対して所定の位置及び姿勢となる目標位置A3までの軌道である。移動制御部72は、移動体10を第2パスR2に沿って移動させる。
【0118】
本開示に係る移動体10は、設置領域AR0を横切りながら目標物Pの位置姿勢を検出するため、目標物Pの位置姿勢を適切に検出することが可能となり、結果として、目標物Pまでの適切な第2パスR2を用いた移動を行うことができる。さらに言えば、設置領域AR0を横切りながら目標物Pの位置姿勢を検出するため、例え検出が失敗したとしても、設置領域AR0を横切るルート上の他の位置で再度検出することが可能となるため、目標物Pの位置姿勢を適切に検出することが可能となる。また、第2位置A2に到達するまでに目標物Pの位置姿勢の検出が完了するため、第2位置A2から目標物Pに近づいていく際に、目標物Pの位置姿勢を検出する必要がなくなる。
【0119】
また、移動制御部72は、方向Y(第2方向)において設置領域AR0よりも一方側の第1位置A1から、方向Yにおいて設置領域AR0よりも他方側の第2位置A2まで、第1パスR1に沿って移動体10を移動させる。検出制御部74は、移動体10が第1位置A1から第2位置A2までの移動の最中に、センサ26に目標物Pの位置及び姿勢を検出させる。本開示によると、第1位置A1から第2位置A2までの移動中に目標物Pの位置姿勢を検出するため、目標物Pの位置姿勢を適切に検出することが可能となる。
【0120】
また、第1パスR1は、第1位置A1から第2位置A2までの検出軌道R1aに接続される、第2位置A2から設置領域AR0(本開示の例では設定位置A3z)に向かうアプローチ軌道R1bを含む。移動制御部72は、アプローチ軌道R1bに沿って移動することで目標物Pに到達不可能と判断された場合に、第2パスR2に沿って移動体10を目標物Pに向けて移動させる。一方、移動制御部72は、アプローチ軌道R1bに沿って移動することで目標物Pに到達可能と判断された場合に、アプローチ軌道R1bに沿って移動体10を目標物Pに向けて移動させる。本開示によると、目標物Pが適切な位置姿勢で置かれている場合には、第2パスR2を生成せず、予め設定されアプローチ軌道R1bを利用して、目標物Pまでアプローチする。そのため、目標物Pが適切な位置姿勢で置かれている場合における演算負荷を低減することができる。
【0121】
また、第2パス情報取得部76は、第1パスR1の第1位置A1から第2位置A2までの検出軌道R1aに重なる直線軌道R2aと、直線軌道R2aに接続される円弧軌道R2bとを含む第2パスR2を取得する。本開示によると、直線軌道R2aと円弧軌道R2bで第2パスR2を構成するため、第2パスR2の生成のための演算負荷を低減して、第2パスR2を高速に生成することができる。
【0122】
また、第2パス情報取得部76は、円弧軌道R2bの旋回半径r(軌道半径)が所定値以上となる第2パスR2を取得する。本開示によると、円弧軌道R2bの旋回半径rを所定値以上に保つことで、例えば旋回半径rが小さくなりすぎて移動体10が旋回できなくなることを抑制できる。
【0123】
また、第2パス情報取得部76は、直線軌道R2aと、直線軌道R2aに接続されてX方向(第1方向)において設置領域AR0側に向かう円弧軌道R2bとで構成される単円弧パスを、第2パスR2として取得する。第2パス情報取得部76は、このような単円弧パスを第2パスR2とすることで、適切な第2パスR2を用いて目標物Pに向けて移動することができる。
【0124】
また、第2パス情報取得部76は、X方向(第1方向)において設置領域AR0と反対側に向かう軌道を設定する必要がないと判断された場合に、単円弧パスを第2パスR2として取得する。第2パス情報取得部76は、設置領域AR0と離れる側に向かう軌道が不要である場合には、単円弧パスを第2パスR2とすることで、適切な第2パスR2を用いて目標物Pに向けて移動することができる。
【0125】
また、第2パス情報取得部76は、単円弧パスの直線軌道R2aと円弧軌道R2bとを切り替える中間位置ASB1に移動体10が位置している際に、移動体10が障害物に干渉しないと判断された場合に、その単円弧パスを、第2パスR2として採用する。本開示によると、中間位置ASBでの移動体10の座標を用いて、障害物との干渉判定を行うため、干渉判定の演算負荷を抑制しつつ、障害物との干渉を適切に抑制できる。
【0126】
また、第2パス情報取得部76は、直線軌道R2aと、直線軌道R2aに接続されて方向X(第1方向)において設置領域AR0と反対側に向かう円弧軌道R2b1(第1円弧軌道)と、円弧軌道R2b1に接続されて方向Xにおいて設置領域AR0側に向かう円弧軌道R2b2(第2円弧軌道)と、で構成される複円弧パスを、第2パスR2として取得する。第2パス情報取得部76は、このような切り返しを含む複円弧パスを第2パスR2とすることで、適切な第2パスR2を用いて目標物Pに向けて移動することができる。
【0127】
また、第2パス情報取得部76は、X方向(第1方向)において設置領域AR0と反対側に向かう軌道を設定する必要があると判断された場合に、複円弧パスを第2パスR2として取得する。第2パス情報取得部76は、設置領域AR0と離れる側に向かう軌道が必要である場合には、複円弧パスを第2パスR2とすることで、切り返しを含んだ適切な第2パスR2を用いて目標物Pに向けて移動することができる。
【0128】
また、第2パス情報取得部76は、複円弧パスの直線軌道R2aと円弧軌道R2b1とを切り替える中間位置ASB1に移動体10が位置している際に移動体10が障害物に干渉せず、かつ、複円弧パスの円弧軌道R2b1と円弧軌道R2b2とを切り替える中間位置ASB2に移動体10が位置している際に移動体10が障害物に干渉しないと判断された場合に、その複円弧パスを、第2パスR2として採用する。本開示によると、中間位置ASB1、ASB2での移動体10の座標を用いて、障害物との干渉判定を行うため、干渉判定の演算負荷を抑制しつつ、障害物との干渉を適切に抑制できる。
【0129】
また、本開示に係る移動制御システム1は、移動体10と、移動体10と情報の送受信を行う情報処理装置14とを含む。本移動制御システム1によると、目標物Pの位置姿勢を適切に検出することが可能となり、結果として、目標物Pまでの適切な第2パスR2を用いた移動を行うことができる。
【0130】
また、本開示に係る移動体10の制御方法は、目標物Pが設置される設置領域AR0よりも方向X(第1方向)側で、方向Xと交差する方向Y(第2方向)に設置領域AR0を横切る第1パスR1の情報を取得するステップと、移動体10が第1パスR1に沿って移動中に、移動体10に設けられたセンサ26に目標物Pの位置及び姿勢を検出させるステップと、目標物Pの位置及び姿勢に基づき設定された、目標物Pに対して所定の位置及び姿勢となる目標位置A3までの第2パスR2の情報を取得するステップと、第2パスR2に沿って移動体10を移動させるステップと、を含む。本制御方法によると、目標物Pの位置姿勢を適切に検出することが可能となり、結果として、目標物Pまでの適切な第2パスR2を用いた移動を行うことができる。
【0131】
また、本開示に係るプログラムは、移動体10の制御方法をコンピュータに実行させるプログラムである。本プログラムは、目標物Pが設置される設置領域AR0よりも方向X(第1方向)側で、方向Xと交差する方向Y(第2方向)に設置領域AR0を横切る第1パスR1の情報を取得するステップと、移動体10が第1パスR1に沿って移動中に、移動体10に設けられたセンサ26に目標物Pの位置及び姿勢を検出させるステップと、目標物Pの位置及び姿勢に基づき設定された、目標物Pに対して所定の位置及び姿勢となる目標位置A3までの第2パスR2の情報を取得するステップと、第2パスR2に沿って移動体10を移動させるステップと、を、コンピュータに実行させる。
【0132】
以上、本発明の実施形態を説明したが、この実施形態の内容により実施形態が限定されるものではない。また、前述した構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。さらに、前述した構成要素は適宜組み合わせることが可能である。さらに、前述した実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換又は変更を行うことができる。
【符号の説明】
【0133】
1 移動制御システム
10 移動体
12 管理システム
14 情報処理装置
26 センサ
70 第1パス情報取得部
72 移動制御部
74 検出制御部
76 第2パス情報取得部
A1 第1位置
A2 第2位置
A3 目標位置
AR0 設置領域
P 目標物
R1 第1パス
R2 第2パス