(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-05
(45)【発行日】2024-06-13
(54)【発明の名称】移動体、移動体の制御方法及びプログラム
(51)【国際特許分類】
G05D 1/617 20240101AFI20240606BHJP
B66F 9/075 20060101ALI20240606BHJP
B66F 9/24 20060101ALI20240606BHJP
G05D 1/242 20240101ALI20240606BHJP
G05D 1/43 20240101ALI20240606BHJP
G05D 105/20 20240101ALN20240606BHJP
G05D 107/50 20240101ALN20240606BHJP
G05D 109/10 20240101ALN20240606BHJP
G05D 111/10 20240101ALN20240606BHJP
【FI】
G05D1/617
B66F9/075 A
B66F9/24 A
G05D1/242
G05D1/43
G05D105:20
G05D107:50
G05D109:10
G05D111:10
(21)【出願番号】P 2021036260
(22)【出願日】2021-03-08
【審査請求日】2023-07-04
(73)【特許権者】
【識別番号】000006208
【氏名又は名称】三菱重工業株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】吉田 侑史
(72)【発明者】
【氏名】小林 哲平
(72)【発明者】
【氏名】大高 一馬
(72)【発明者】
【氏名】有賀 寛泰
(72)【発明者】
【氏名】秋田谷 洋人
【審査官】松本 泰典
(56)【参考文献】
【文献】特開2020-200154(JP,A)
【文献】特開平11-59474(JP,A)
【文献】特表2010-527871(JP,A)
【文献】AT523117(AT,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00
B66F 9/075
B66F 9/24
(57)【特許請求の範囲】
【請求項1】
自動で移動する3輪の移動体であって、
操舵可能であり駆動不可能な第1操舵輪と、
前記第1操舵輪に対して
前記移動体の左右方向である第1方向側に設けられ、操舵可能であり駆動不可能な第2操舵輪と、
前記第1操舵輪及び前記第2操舵輪に対して
前記移動体の前後方向である第2方向側に設けられ、操舵及び駆動が可能な駆動輪と、
前記第1操舵輪、前記第2操舵輪及び前記駆動輪の少なくとも1つの操舵を制御し、前記駆動輪の駆動を制御することで、前記移動体の移動を制御する制御部と、を有し、
前記制御部は、
前記移動体が、第1進行方向から第2進行方向に向きを変えながら移動する際に、前記移動体の上下方向である第3方向から見て、前記移動体の回転中心が、前記移動体が占める領域を前記第1進行方向に沿って延長した車体領域を外れることを許容しながら、前記移動体を移動させる通常ターンモードとするか、前記移動体の回転中心を前記車体領域内に位置させたまま、前記移動体を移動させる特別ターンモードとするかを示すモード情報を取得し、
前記モード情報が示すモードで、向きを変えながら前記移動体を移動させ、
前記モード情報は、前記移動体の経路に基づいて設定され、道幅が所定の閾値より狭い通路を通る前記経路においては前記特別ターンモードが設定され、前記閾値以上の道幅の通路を通る前記経路においては前記通常ターンモードが設定される、
移動体。
【請求項2】
前記特別ターンモードは、
前記第3方向から見て、前記移動体の回転中心が、前記第1操舵輪と前記第2操舵輪と前記駆動輪との中心位置となるように、前記移動体を移動させるクイックターンモードを含む、請求項
1に記載の移動体。
【請求項3】
前記特別ターンモードは、
前記第3方向から見て、前記移動体の回転中心が、前記第1操舵輪又は前記第2操舵輪の位置となるように、前記移動体を移動させるクイックターンモードを含む、請求項
1又は請求項
2に記載の移動体。
【請求項4】
前記特別ターンモードは、
前記第3方向から見て、前記移動体の回転中心が、指定位置となるように、前記移動体を移動させる任意ターンモードを含み、
前記制御部は、前記モード情報が前記任意ターンモードを示す場合には、前記指定位置の情報を取得し、前記指定位置が回転中心となるように、前記任意ターンモードで、向きを変えながら前記移動体を移動させる、請求項
1から請求項
3のいずれか1項に記載の移動体。
【請求項5】
前記制御部は、前記特別ターンモードにおいては、前記移動体の向きが第2進行方向に切り替わったら、前記第1操舵輪、前記第2操舵輪、及び前記駆動輪の方向を前記第2進行方向に沿わせるように、前記第1操舵輪、前記第2操舵輪、及び前記駆動輪の操舵角を切り替える、請求項
1から請求項
4のいずれか1項に記載の移動体。
【請求項6】
前記移動体は、自動で移動するフォークリフトである、請求項1から請求項5のいずれか1項に記載の移動体。
【請求項7】
自動で移動する3輪の移動体であって、操舵可能であり駆動不可能な第1操舵輪と、前記第1操舵輪に対して
前記移動体の左右方向である第1方向側に設けられ、操舵可能であり駆動不可能な第2操舵輪と、前記第1操舵輪及び前記第2操舵輪に対して
前記移動体の前後方向である第2方向側に設けられ、操舵及び駆動が可能な駆動輪と、を有する移動体の制御方法であって、
前記移動体が、第1進行方向から第2進行方向に向きを変えながら移動する際に、
前記移動体の上下方向である第3方向から見て、前記移動体の回転中心が、前記移動体が占める領域を前記第1進行方向に沿って延長した車体領域を外れることを許容しながら、前記移動体を移動させる通常ターンモードとするか、前記移動体の回転中心を前記車体領域内に位置させたまま、前記移動体を移動させる特別ターンモードとするかを示すモード情報を取得するステップと、
前記第1操舵輪、前記第2操舵輪及び前記駆動輪の少なくとも1つの操舵を制御し、前記駆動輪の駆動を制御することで、前記モード情報が示すモードで、向きを変えながら前記移動体を移動させるステップと、
を含
み、
前記モード情報を取得するステップにおいては、前記移動体の経路に基づいて前記モード情報を設定し、道幅が所定の閾値より狭い通路を通る前記経路においては前記特別ターンモードとし、前記閾値以上の道幅の通路を通る前記経路においては前記通常ターンモードとする、
移動体の制御方法。
【請求項8】
自動で移動する3輪の移動体であって、操舵可能であり駆動不可能な第1操舵輪と、前記第1操舵輪に対して
前記移動体の左右方向である第1方向側に設けられ、操舵可能であり駆動不可能な第2操舵輪と、前記第1操舵輪及び前記第2操舵輪に対して
前記移動体の前後方向である第2方向側に設けられ、操舵及び駆動が可能な駆動輪と、を有する移動体の制御方法をコンピュータに実行させるプログラムであって、
前記移動体が、第1進行方向から第2進行方向に向きを変えながら移動する際に、
前記移動体の上下方向である第3方向から見て、前記移動体の回転中心が、前記移動体が占める領域を前記第1進行方向に沿って延長した車体領域を外れることを許容しながら、前記移動体を移動させる通常ターンモードとするか、前記移動体の回転中心を前記車体領域内に位置させたまま、前記移動体を移動させる特別ターンモードとするかを示すモード情報を取得するステップと、
前記第1操舵輪、前記第2操舵輪及び前記駆動輪の少なくとも1つの操舵を制御し、前記駆動輪の駆動を制御することで、前記モード情報が示すモードで、向きを変えながら前記移動体を移動させるステップと、
を、コンピュータに実行させ
、
前記モード情報を取得するステップにおいては、前記移動体の経路に基づいて前記モード情報を設定し、道幅が所定の閾値より狭い通路を通る前記経路においては前記特別ターンモードとし、前記閾値以上の道幅の通路を通る前記経路においては前記通常ターンモードとする、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、移動体、移動体の制御方法及びプログラムに関する。
【背景技術】
【0002】
自動で移動する移動体が知られている。このような移動体は、通常は、前側の2輪が同方向に操舵可能であり駆動せず、後側の2輪が駆動して操舵不可能となっている。また例えば特許文献1には、4輪が駆動しかつ操舵可能な全方位移動台車が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、前側の2輪のみが同方向に操舵可能な移動体は、向きを変える際には旋回半径が大きくなってしまう。また、4輪が駆動しかつ操舵可能な全方位移動台車は、構造が大型化したり、駆動する車輪同士を同期する必要が生じたりするなどの理由により、よりシンプルな構成が求められる。そのため、シンプルな構成で適切に旋回することが求められている。
【0005】
本開示は、上述した課題を解決するものであり、シンプルな構成で適切に旋回することが可能な移動体、移動体の制御方法の制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するために、本開示に係る移動体は、自動で移動する3輪の移動体であって、操舵可能であり駆動不可能な第1操舵輪と、前記第1操舵輪に対して第1方向側に設けられ、操舵可能であり駆動不可能な第2操舵輪と、前記第1操舵輪及び前記第2操舵輪に対して前記第1方向に直交する第2方向側に設けられ、操舵及び駆動が可能な駆動輪と、を有する。
【0007】
上述した課題を解決し、目的を達成するために、本開示に係る移動体の制御方法は、自動で移動する3輪の移動体であって、操舵可能であり駆動不可能な第1操舵輪と、前記第1操舵輪に対して第1方向側に設けられ、操舵可能であり駆動不可能な第2操舵輪と、前記第1操舵輪及び前記第2操舵輪に対して前記第1方向に直交する第2方向側に設けられ、操舵及び駆動が可能な駆動輪と、を有する移動体の制御方法であって、前記移動体が、第1進行方向から第2進行方向に向きを変えながら移動する際に、鉛直方向から見て、前記移動体の回転中心が、前記移動体が占める領域を前記第1進行方向に沿って延長した車体領域を外れることを許容しながら、前記移動体を移動させる通常ターンモードとするか、前記移動体の回転中心を前記車体領域内に位置させたまま、前記移動体を移動させる特別ターンモードとするかを示すモード情報を取得するステップと、前記第1操舵輪、前記第2操舵輪及び前記駆動輪の少なくとも1つの操舵を制御し、前記駆動輪の駆動を制御することで、前記モード情報が示すモードで、向きを変えながら前記移動体を移動させるステップと、を含む。
【0008】
上述した課題を解決し、目的を達成するために、本開示に係るプログラムは、自動で移動する3輪の移動体であって、操舵可能であり駆動不可能な第1操舵輪と、前記第1操舵輪に対して第1方向側に設けられ、操舵可能であり駆動不可能な第2操舵輪と、前記第1操舵輪及び前記第2操舵輪に対して前記第1方向に直交する第2方向側に設けられ、操舵及び駆動が可能な駆動輪と、を有する移動体の制御方法をコンピュータに実行させるプログラムであって、前記移動体が、第1進行方向から第2進行方向に向きを変えながら移動する際に、鉛直方向から見て、前記移動体の回転中心が、前記移動体が占める領域を前記第1進行方向に沿って延長した車体領域を外れることを許容しながら、前記移動体を移動させる通常ターンモードとするか、前記移動体の回転中心を前記車体領域内に位置させたまま、前記移動体を移動させる特別ターンモードとするかを示すモード情報を取得するステップと、前記第1操舵輪、前記第2操舵輪及び前記駆動輪の少なくとも1つの操舵を制御し、前記駆動輪の駆動を制御することで、前記モード情報が示すモードで、向きを変えながら前記移動体を移動させるステップと、を、コンピュータに実行させる。
【発明の効果】
【0009】
本開示によれば、シンプルな構成で適切に旋回することができる。
【図面の簡単な説明】
【0010】
【
図3】
図3は、移動体の制御装置の模式的なブロック図である。
【
図4】
図4は、通常ターンモードの例を示す模式図である。
【
図5】
図5は、クイックターンモードの例を示す模式図である。
【
図6】
図6は、第1実施形態に係る制御装置の制御フローを説明するフローチャートである。
【
図7】
図7は、ピボットターンモードの例を示す模式図である。
【
図8】
図8は、第2実施形態に係る制御装置の制御フローを説明するフローチャートである。
【
図9】
図9は、第3実施形態に係る制御装置の制御フローを説明するフローチャートである。
【発明を実施するための形態】
【0011】
以下に添付図面を参照して、本発明の好適な実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではなく、また、実施形態が複数ある場合には、各実施形態を組み合わせて構成するものも含むものである。
【0012】
(第1実施形態)
(移動体)
図1は、移動体の構成の模式図である。第1実施形態に係る移動体10は、自動で移動可能な装置である。本実施形態では、移動体10は、フォークリフトであり、さらにいえば、いわゆるAGF(Automated Guided Forklift)である。
図1に示すように、移動体10は、車体20と、マスト22と、フォーク24と、ストラドルレッグ26と、センサ27と、制御装置28と、車輪30とを備えている。ここで、ストラドルレッグ26は、車体20の前後方向における一方の端部に設けられている。以下、前後方向においてストラドルレッグ26が設けられない側の方向を方向YAとし、前後方向に直交する左右方向の一方側を方向XAとする。ストラドルレッグ26は、車体20から方向YAと反対方向側に突出する一対の軸状の部材である。以下、一対のストラドルレッグ26を区別する場合には、方向XA側のストラドルレッグ26をストラドルレッグ26Aとし、方向XAと反対方向側のストラドルレッグ26を、ストラドルレッグ26Bとする。マスト22は、ストラドルレッグ26に移動可能に取り付けられ、方向YA及び方向YAと反対方向側に移動する。マスト22は、方向XA及び方向YAに直交する上下方向(ここでは方向Z)に沿って延在する。フォーク24は、マスト22に方向Zに移動可能に取付けられている。フォーク24は、マスト22に対して、方向XAにも移動可能であってよい。フォーク24は、一対のツメ24A、24Bを有している。ツメ24A、24Bは、マスト22から車体20の前方向に向けて延在している。ツメ24Aとツメ24Bとは、マスト22の横方向に、互いに離れて配置されている。
【0013】
センサ27は、周囲の対象物からの反射光を検出(受光)することで、対象物の位置及び姿勢を検出する。さらに言えば、センサ27は、光を照射するセンサであり、より詳しくは光としてレーザ光を照射する。センサ27は、照射したレーザ光の反射光を検出することで、対象物の位置及び姿勢を検出する。センサ27は、一方向に走査しつつレーザ光を照射し、照射したレーザ光の反射光から、対象物の位置及び姿勢を検出する。すなわち、センサ27は、いわゆる2D-LiDAR(Light Detection And Ranging)であるともいえる。本実施形態では、センサ27は、水平方向に、すなわち方向Zに直交する方向に、レーザ光を走査する。ただし、センサ27は、以上のものに限られず任意の方法で対象物を検出するセンサであってよく、例えば、複数の方向に走査されるいわゆる3D-LiDARであってもよいし、カメラであってもよい。また、センサ27の取り付けられる位置や数は任意であってよい。
【0014】
制御装置28は、移動体10の移動を制御する。制御装置28については後述する。
【0015】
(車輪)
移動体10は、車輪30として、第1操舵輪30Aと、第2操舵輪30Bと、駆動輪30Cとを有する。
【0016】
(第1操舵輪)
第1操舵輪30Aは、駆動が不可能であり、操舵が可能な車輪である。ここでの駆動とは、例えばモータなどの駆動源と接続されて、駆動源からの動力で自律的に回転できることを指す。従って、第1操舵輪30Aは、自律的に回転できない車輪である。ただし、第1操舵輪30Aは、後述の駆動輪30Cが自律的に回転して移動体10が移動することに伴い、駆動輪30Cの回転に同期して回転する。また、ここでの操舵(ステアリング)とは、Z方向から見た場合の、移動体10(車体20)に対する車輪の向き(回転角度)が、変更可能であることを指す。従って、第1操舵輪30Aは、移動体10に対して向きを変更可能である。
【0017】
図2は、車輪を上面から見た模式図である。第1操舵輪30Aは、操舵されることで、Z方向を軸方向とした場合の周方向に移動して、向きが変更される。より詳しくは、
図2に示すように、第1操舵輪30Aは、Z方向から見て、第1操舵輪30Aと離れた位置に設けられる回転軸32Aに接続される。第1操舵輪30Aは、操舵されることで、回転軸32Aを回転中心として回転して、回向きが変更される。ただし、第1操舵輪30Aの回転中心は、第1操舵輪30Aから離れた位置であることに限られず、例えば、Z方向から見て第1操舵輪30Aの中心位置を中心に回転可能であってもよい。
【0018】
本実施形態では、第1操舵輪30Aは、ストラドルレッグ26Aに取り付けられ、より詳しくはストラドルレッグ26Aの先端部分(方向YAと反対側の部分)に取り付けられる。ただし、第1操舵輪30Aの移動体10における取り付け位置は、ストラドルレッグ26Aに限られず、任意であってよい。
【0019】
(第2操舵輪)
第2操舵輪30Bは、駆動が不可能であり、操舵が可能な車輪である。すなわち、第2操舵輪30Bは、自律的に回転できない車輪であるが、後述の駆動輪30Cが自律的に回転して移動体10が移動することに伴い、駆動輪30Cの回転に同期して回転する。また、第2操舵輪30Bは、移動体10に対して向きを変更可能である。第2操舵輪30Bは、操舵されることで、Z方向を軸方向とした場合の周方向に移動して、向きが変更される。より詳しくは、
図2に示すように、第2操舵輪30Bは、Z方向から見て、第2操舵輪30Bと離れた位置に設けられる回転軸32Bに接続される。第2操舵輪30Bは、操舵されることで、回転軸32Bを回転中心として回転して、向きが変更される。ただし、第2操舵輪30Bの回転中心は、第2操舵輪30Bから離れた位置であることに限られず、例えば、Z方向から見て第2操舵輪30Bの中心位置を中心に回転可能であってもよい。
【0020】
第2操舵輪30Bは、移動体10において、第1操舵輪30Aの方向XAと反対方向側(第1方向)側に設けられている。本実施形態において、第2操舵輪30Bは、方向XAに沿って第1操舵輪30Aと並んで設けられる。言い換えれば、第2操舵輪30Bの方向YA(第2方向)における位置は、第1操舵輪30Aの方向YAにおける位置と重なっている。ただし、第2操舵輪30Bの方向YA(第2方向)における位置は、それに限られず任意であり、第1操舵輪30Aの方向YAにおける位置とずれていてもよい。また、本実施形態では、第2操舵輪30Bは、ストラドルレッグ26Bに取り付けられ、より詳しくはストラドルレッグ26Bの先端部分(方向YAと反対側の部分)に取り付けられる。ただし、第2操舵輪30Bの移動体10における取り付け位置は、ストラドルレッグ26Bに限られず、任意であってよい。
【0021】
(駆動輪)
駆動輪30Cは、駆動が可能であり、操舵が可能な車輪である。すなわち、駆動輪30Cは、自律的に回転できる車輪であり、かつ、移動体10に対して向きを変更可能である。駆動輪30Cは、操舵されることで、Z方向を軸方向とした場合の周方向に移動して、向きが変更される。より詳しくは、
図2に示すように、駆動輪30Cは、Z方向から見て、駆動輪30Cと離れた位置に設けられる回転軸32Cに接続される。駆動輪30Cは、操舵されることで、回転軸32Cを回転中心として回転して、向きが変更される。ただし、駆動輪30Cの回転中心は、駆動輪30Cから離れた位置であることに限られず、例えば、Z方向から見て駆動輪30Cの中心位置を中心に回転可能であってもよい。
【0022】
駆動輪30Cは、移動体10において、第1操舵輪30A及び第2操舵輪30Bに対して、方向YA(第2方向)側に設けられている。本実施形態において、駆動輪30Cは、方向XAに沿った方向(第1方向)において、第1操舵輪30Aと第2操舵輪30Bとの間の位置(ここでは中点位置)に設けられている。ただし、駆動輪30Cの方向XAに沿った方向(第1方向)における位置は、それに限られず任意であり、第1操舵輪30Aと第2操舵輪30Bとの間の位置であることに限られない。また、駆動輪30Cは、車体20に取り付けられ、より詳しくは車体20の先端部分(方向YA側の部分)に取り付けられる。ただし、駆動輪30Cの移動体10における取り付け位置は、車体20に限られず、任意であってよい。
【0023】
以上のように、本実施形態の移動体10は、第1操舵輪30A、第2操舵輪30B、及び駆動輪30Cが設けられる3輪の移動体であり、他には車輪が設けられていない。ただし、移動体10が有する車輪30の構成や数は、これに限られない。移動体10は、任意の数の複数の車輪を有し、全ての車輪が操舵可能であり、少なくとも1つの車輪が操舵及び駆動が可能であってよく、それらの車輪の位置も任意であってよい。
【0024】
(制御装置)
次に、移動体10の制御装置28について説明する。
図3は、移動体の制御装置の模式的なブロック図である。制御装置28は、移動体10を制御する。制御装置28は、第1操舵輪30A及び第2操舵輪30Bの操舵を制御し、駆動輪30Cの操舵及び駆動を制御することで、移動体10を移動させる。制御装置28は、コンピュータであり、
図3に示すように、通信部40と記憶部42と制御部44とを含む。通信部40は、制御部44に用いられて、外部の装置と通信するモジュールであり、例えばアンテナなどを含んでよい。通信部40による通信方式は、本実施形態では無線通信であるが、通信方式は任意であってよい。記憶部42は、制御部44の演算内容やプログラムなどの各種情報を記憶するメモリであり、例えば、RAM(Random Access Memory)と、ROM(Read Only Memory)のような主記憶装置と、HDD(Hard Disk Drive)などの外部記憶装置とのうち、少なくとも1つ含む。
【0025】
制御部44は、演算装置であり、例えばCPU(Central Processing Unit)などの演算回路を含む。制御部44は、移動情報取得部50と、モード情報取得部52と、移動条件設定部54と、移動制御部56とを含む。制御部44は、記憶部42からプログラム(ソフトウェア)を読み出して実行することで、移動情報取得部50とモード情報取得部52と移動条件設定部54と移動制御部56を実現して、それらの処理を実行する。なお、制御部44は、1つのCPUによってこれらの処理を実行してもよいし、複数のCPUを備えて、それらの複数のCPUで、処理を実行してもよい。また、移動情報取得部50とモード情報取得部52と移動条件設定部54と移動制御部56との処理の少なくとも一部を、ハードウェア回路で実現してもよい。また、記憶部42が保存する制御部44用のプログラムは、制御装置28が読み取り可能な記録媒体に記憶されていてもよい。
【0026】
(移動情報取得部)
移動情報取得部50は、移動体10の移動に関する情報である移動情報を取得する。移動情報取得部50は、移動情報として、移動体10の目標速度と、移動体10の目標角速度Ωとの情報を取得する。目標速度とは、移動体10の移動速度(並進速度)の目標値である。移動体10が、X方向とX方向に直交するY方向との2次元平面座標系で移動する場合には、移動情報取得部50は、X方向における移動する向きと移動速度との目標値(すなわちベクトルとスカラー値)を示す目標速度Vxと、Y方向における移動する向きと移動速度との目標値(すなわちベクトルとスカラー値)を示す目標速度Vyとを取得する。また、目標角速度Ωとは、X方向とY方向に直交するZ方向(鉛直方向)から見た場合の、移動体10の向き(回転角度)の変化する方向と向きの変化速度との目標値である。
【0027】
移動情報取得部50による移動情報(ここでは目標速度Vx、Vy、目標角速度Ω)の取得方法は任意であってよい。例えば、移動体10の目的地が設定され、目的地に基づいて移動体10の移動する経路が設定され、設定された経路に基づき、移動情報が設定されてもよい。この場合、移動体10の制御装置28が、設定された目的地に基づき経路を設定し、経路に基づいて移動情報を設定してもよい。また、移動体10とは別の装置(例えば地上システムなど)が経路を設定し、移動体10の制御装置28が、その装置から経路の情報を受信し、受信した経路に基づき、移動情報を設定してよい。また、移動体10とは別の装置が経路に基づき移動情報を設定し、移動体10の制御装置28が、その装置から移動情報を受信してもよい。また、移動情報は、経路に基づき設定されることにも限られず、例えば作業者の遠隔操作により入力されてもよい。この場合例えば、移動体10から離れた位置にいる作業者が、移動体10を遠隔操作するための入力装置を操作する。そして、入力装置は、作業者による操作内容に基づき移動情報を設定して、移動体10の制御装置28に送信する。
【0028】
(モード情報取得部)
モード情報取得部52は、モード情報を取得する。モード情報とは、移動体10が、第1進行方向から第2進行方向に向きを変えながら移動する際に適用される移動モードを示す情報である。すなわち、移動体10は、向きを変えながら移動する際には、複数の移動モードのうちで、モード情報に示された移動モードを、使用する移動モードとして選択する。本実施形態では、モード情報取得部52は、通常ターンモードとするか特別ターンモードとするかを示す情報を、モード情報として取得する。以下、通常ターンモードと特別ターンモードについて説明する。なお、以下では、移動体10が、向きをY方向からX方向に変えながら移動する場合を例にして説明する。言い換えれば、向きを変える前の第1進行方向がY方向であり、向きを変えた後の第2進行方向がX方向である場合を例にする。ただし、第1進行方向及び第2進行方向は、Y方向及びX方向に限られず、任意であってよい。また、以下では、移動体10の前後方向のうちで、フォーク24と反対方向側の方向YAを進行方向側として移動体10が移動することを例としているが、それに限られず、フォーク24側(方向YAと反対側)を進行方向側としてもよい。
【0029】
(通常ターンモード)
図4は、通常ターンモードの例を示す模式図である。通常ターンモードは、駆動輪30Cを駆動しつつ、第1操舵輪30A及び第2操舵輪30Bを操舵せず、駆動輪30Cを操舵するモードである。
図4の例では、駆動輪30Cが駆動されつつ操舵されている。すなわち、駆動輪30Cは、駆動により回転されつつ、操舵により曲がる方向側に向きが変更される。一方、第1操舵輪30A及び第2操舵輪30Bは、操舵されずに、移動体10の進行方向を向いている。なお、方向YAと反対側を進行方向とする場合にも、通常ターンモードでは、第1操舵輪30A及び第2操舵輪30Bが操舵されず、駆動輪30Cが操舵されて、駆動輪30Cが駆動される。ただし、通常ターンモードでは、第1操舵輪30A及び第2操舵輪30Bが操舵されて、駆動輪30Cが操舵されずに、駆動輪30Cが駆動されてもよい。
【0030】
さらに言えば、
図4に示すように、Z方向から見て、移動体10が占める領域を、向きを変える前の第1進行方向(ここではY方向)に沿って延長した領域を、車体領域ARとする。また、Z方向から見た移動体10の座標系(方向XAと方向YAの2次元座標系)における、移動体10の回転中心(回転軸)となる座標(位置)を、X方向とY方向との2次元平面座標系で表した座標(位置)を、移動体10の回転中心Pの位置とする。
図4の例では、駆動輪30Cが操舵されるため、回転中心Pは、回転軸32Cの位置となる。この場合、通常ターンモードは、第1進行方向(ここではY方向)から第2進行方向(ここではX方向)に移動体10の向きを変えながら第1進行方向に向けて移動する際に、移動体10の回転中心Pの位置が車体領域ARの範囲外となることを許容しながら、移動体10を移動させるモードといえる。すなわち、通常ターンモードにおいては、駆動輪30Cのみを操舵して向きを変えているため、旋回半径が大きくなり、回転中心Pが車体領域ARよりも第2進行方向側に突出する場合がある。
【0031】
(特別ターンモード)
特別ターンモードは、駆動輪30Cを駆動しつつ、全ての車輪30を、すなわちここでは第1操舵輪30A、第2操舵輪30B及び駆動輪30Cを、操舵するモードである。さらに言えば、特別ターンモードは、第1進行方向から第2進行方向に移動体10の向きを変えながら、第1進行方向に向けて移動する際に、移動体10の回転中心Pの位置を、車体領域ARの範囲内に位置させつつ、移動体10を移動させるモードである。すなわち、特別ターンモードにおいては、全ての車輪30の操舵を制御することで、回転中心Pを車体領域AR内に保持して、旋回半径が大きくなることを抑制する。
【0032】
(クイックターンモード)
図5は、クイックターンモードの例を示す模式図である。第1実施形態では、特別ターンモードとして、クイックターンモードが含まれる。クイックターンモードは、Z方向から見て、移動体10の回転中心Pが、各車輪30の中心位置となるように、すなわちここでは第1操舵輪30Aと第2操舵輪30Bと駆動輪30Cとの中心位置となるように、移動体10を移動させるモードである。第1操舵輪30Aと第2操舵輪30Bと駆動輪30Cとの中心位置とは、第1操舵輪30Aの位置と第2操舵輪30Bの位置と駆動輪30Cの位置とを頂点とする三角形の重心位置を指す。
図5に示すように、クイックターンモードでは、駆動輪30Cを駆動しつつ、全ての車輪30を操舵して、第1操舵輪30Aと第2操舵輪30Bと駆動輪30Cとの中心位置である回転中心Pが車体領域ARの範囲内に位置しつつ、第1方向(Y方向)に移動しながら、向きが第1方向(Y方向)から第2方向(X方向)に切り替わる。クイックターンモードにおいては、全ての車輪30の操舵を制御することで、回転中心Pを車体領域AR内に保持して、旋回半径が大きくなることを抑制できる。
【0033】
モード情報取得部52によるモード情報(ここでは通常ターンモードとするかクイックターンモードとするかを示す情報)の取得方法は任意であってよい。例えば、移動体10の目的地が設定され、目的地に基づいて移動体10の移動する経路が設定され、設定された経路に基づき、モード情報が設定されてもよい。例えば、道幅が所定の閾値より狭い通路を通る経路においてはクイックターンモードが設定され、その閾値以上の道幅の通路を通る経路においては通常ターンモードが設定されてもよい。モード情報取得部52は、経路に基づいて、自身でモード情報を設定してもよいし、移動体10とは別の装置が経路に基づいてモード情報を設定し、モード情報取得部52がその装置からモード情報を受信してもよい。また、モード情報は、経路に基づき設定されることにも限られず、例えば作業者の遠隔操作により入力されてもよい。この場合例えば、移動体10から離れた位置にいる作業者が、移動体10を遠隔操作するための入力装置を操作する。そして、入力装置は、作業者による操作内容に基づきモード情報を設定して、移動体10の制御装置28に送信する。
【0034】
(移動条件設定部)
移動条件設定部54は、モード情報取得部52が取得したモード情報に基づき、移動体10の移動条件を設定する。さらに言えば、本実施形態では、移動条件設定部54は、移動情報取得部50が取得した移動情報と、モード情報取得部52が取得したモード情報とに基づき、移動体10の移動条件を設定する。移動条件設定部54は、移動条件として、車輪30の操舵角指令値と、すなわちここでは第1操舵輪30Aと第2操舵輪30Bと駆動輪30Cとの少なくとも1つの操舵角指令値と、駆動輪30Cの回転速度指令値とを設定する。操舵角とは、車輪30の向きを指すため、操舵角指令値とは、車輪30の向きの指令値を指す。また、回転速度とは、駆動輪30Cを回転させる速度を指すため、回転速度指令値とは、駆動輪30Cを回転させる速度の指令値を指す。
【0035】
(通常ターンモードにおける移動条件の設定)
移動条件設定部54は、モード情報が通常ターンモードを示す場合には、移動情報取得部50が取得した移動情報に基づき、通常ターンモードの条件下で、駆動輪30Cの回転速度指令値と、駆動輪30Cの操舵角指令値とを算出する。すなわち、移動条件設定部54は、第1操舵輪30A及び第2操舵輪30Bの向きを進行方向側に保持させた条件下で、移動情報取得部50が取得した目標速度Vx、Vy、及び目標角速度Ωを実現可能な、駆動輪30Cの操舵角と回転速度とを、回転速度指令値及び操舵角指令値として算出する。
【0036】
(クイックターンモードにおける移動条件の設定)
移動条件設定部54は、モード情報がクイックターンモードを示す場合には、移動情報取得部50が取得した移動情報に基づき、すなわちここでは目標速度Vx、Vy、及び目標角速度Ωに基づき、クイックターンモードの条件下で、駆動輪30Cの回転速度指令値と、各車輪30の操舵角指令値とを算出する。
【0037】
具体的には、移動条件設定部54は、モード情報がクイックターンモードを示す場合には、第1操舵輪30Aと第2操舵輪30Bと駆動輪30Cとの中心位置を、回転中心Pの位置として設定する。
【0038】
そして、移動条件設定部54は、目標速度Vx、Vy、及び目標角速度Ωに基づき、各車輪30についての、操舵角速度ωiを算出する。ここで、操舵角速度とは、単位時間当たりの操舵角の変化量を指す。また、iは、各車輪30を識別する記号であり、すなわち本実施形態の例では、操舵角速度ωiは、第1操舵輪30Aの操舵角速度、第2操舵輪30Bの操舵角速度、又は駆動輪30Cの操舵角速度を指す。例えば、移動条件設定部54は、次の式(1)を用いて、操舵角速度ωiを算出する。
【0039】
ωi=atan(-/+Si、+/-Ci) ・・・(1)
【0040】
なお、式(1)の(-/+Si、+/-Ci)は、(-Si、+Ci)と(+Si、-Ci)を意味する。式(1)のSi、Ciは、次の式(2)、(3)で示されるものである。
【0041】
Si=Vx・sinΘ-Vy・cosΘ-Ω・Li・cosαi ・・・(2)
Ci=Vx・cosΘ+Vy・sinΘ-Ω・Li・sinαi ・・・(3)
【0042】
なお、Θは、進行方向を変更する前の、Z方向から見た場合の移動体10の向きである。また、Liは、移動体10の回転中心P(ここでは第1操舵輪30Aと第2操舵輪30Bと駆動輪30Cとの中心位置)と車輪30の回転軸32との間の距離であり、
図2では、移動体10の回転中心Pと回転軸32Bとの距離L
Bが例として示されている。また、αiは、移動体10の回転中心Pから回転軸32を結んだ線分と、移動体10の座標系の一軸(例えば方向XA)とのなす角度であり、
図2では、回転中心Pと回転軸32Bとを結んだ線分と方向XAとのなす角度α
Bが例として示されている。
【0043】
移動条件設定部54は、操舵角速度ωiに基づき、各車輪30についての、操舵角指令値θiを算出する。本実施形態の例では、移動条件設定部54は、次の式(4)に示すように、フィードバック制御により、タイミングtにおける操舵角指令値θi(t)を算出する。
【0044】
θi(t)=θi(t-1)+ωi・Δt ・・・(4)
【0045】
ここで、θi(t-1)は、タイミングtの直前であるタイミング(t-1)における操舵角指令値θiであり、Δtは、タイミングtからタイミング(t-1)までの時間である。
【0046】
移動条件設定部54は、それぞれの車輪30について、すなわちここでは第1操舵輪30A、第2操舵輪30B及び駆動輪30Cについて、操舵角指令値θiを算出する。
【0047】
また、移動条件設定部54は、目標速度Vx、Vy、及び目標角速度Ωに基づき、駆動輪30Cの回転速度指令値ωCを算出する。本実施形態の例では、移動条件設定部54は、次の式(5)を用いて、駆動輪30Cの回転速度指令値ωdCを算出する。
【0048】
ωdC={(±(A+B)0.5+dc・Ω)+dc・ωc}/Rc ・・・(5)
【0049】
なお、A、Bは次の式(6)、(7)で表される。d
cは、
図2に示すように、回転軸32Cから駆動輪30Cまでの距離である。ω
cは、駆動輪30Cの操舵角指令値である。
【0050】
A=Vx2+Vy2+(Ω・Lc)2 ・・・(6)
B=-2・Vx・Ω・Lc・sin(Θ+αc)+2・Vy・Ω・Lc・cos(Θ+αc) ・・・(7)
【0051】
なお、Lcは、移動体10の回転中心Pと回転軸32Cとの距離であり、αcは、回転中心Pと回転軸32Cとを結んだ線分と方向XAとのなす角度である。
【0052】
移動条件設定部54は、以上のようにして、移動条件を設定する。
【0053】
(移動制御部)
移動制御部56は、車輪30の少なくとも1つの操舵を制御し、すなわちここでは第1操舵輪30A、第2操舵輪30B及び駆動輪30Cの少なくとも1つの操舵を制御し、かつ駆動輪30Cの駆動を制御することで、移動体10を移動させる。移動制御部56は、移動条件設定部54が設定した移動条件で、車輪30の操舵及び駆動を制御する。
【0054】
移動制御部56は、通常ターンモードである場合には、移動条件設定部54が設定した、駆動輪30Cの回転速度指令値と駆動輪30Cの操舵角指令値とになるように、駆動輪30Cの回転速度と操舵角とを制御する。これにより、移動体10は、通常ターンモードに従って、移動体10の回転中心Pの位置が、車体領域ARの範囲外となることを許容しながら、第1進行方向から第2進行方向に向きを変えつつ、第1進行方向に向けて移動する。
【0055】
一方、移動制御部56は、クイックターンモードである場合には、移動条件設定部54が設定した、駆動輪30Cの回転速度指令値ωdCと、各車輪30についての操舵角指令値θiとになるように、駆動輪30Cの回転速度と、各車輪30の操舵角とを制御する。これにより、移動体10は、クイックターンモードに従って、移動体10の回転中心Pの位置を車体領域ARの範囲内に保ちながら、第1進行方向から第2進行方向に向きを変えつつ、第1進行方向に向けて移動する。
【0056】
なお、クイックターンモード(特別ターンモード)である場合、移動制御部56は、目的とする第2進行方向への移動体10の向きの変更が完了したタイミングで、各車輪30の操舵角を、0°に戻す。ここでの0°とは、車輪30の向きが第2進行方向(移動体10の向き)を向く角度を指す。
図5では、最も方向Y側の移動体10が、第2進行方向(方向X)への変更が完了したタイミングの例を示している。クイックターンモードにおいては、各車輪30は、移動体10の向きの第2進行方向(方向X)への変更が完了する直前までは、
図5の最も方向Y側の移動体10の絵の破線で示すように、移動体10の向きを変更するための方向を向いており、第2進行方向側には向いていない。しかし、移動体10が第2進行方向を向いてからも、車輪30がこれまでの向きを維持していた場合には、その車輪30の向きに沿って移動体10が惰性で移動してしまい、移動体10が第2進行方向と異なる方向を向いてしまう。それに対し、本実施形態においては、移動体10が第2進行方向を向いたタイミングで、
図5の最も方向Y側の移動体10の絵の実線で示すように、各車輪30の向きを第2進行方向側に合わせることで、ブレーキとなって、移動体10が第2進行方向と異なる方向を向くことを抑制できる。なお、通常ターンモードにおいては、移動体10が第1進行方向を向いているタイミングから徐々に車輪30の向きを第2進行方向側に変えて、その後移動体10の向きに沿うように車輪30の向きが戻されるため、同様の処理は不要である。
【0057】
(制御フロー)
次に、制御装置28の以上説明した制御のフローを説明する。
図6は、第1実施形態に係る制御装置の制御フローを説明するフローチャートである。
図6に示すように、制御装置28は、移動情報取得部50により、移動体10の移動情報を取得する(ステップS10)。移動情報取得部50は、移動情報として、移動体10の目標速度Vx、Vyと、移動体10の目標角速度Ωとの情報を取得する。また、制御装置28は、モード情報取得部52により、モード情報を取得する(ステップS12)。なお、ステップS10、S12の処理順は任意である。
【0058】
モード情報が通常ターンモードを示す場合(ステップS14;Yes)、制御装置28は、通常ターンモードを選択し、移動条件設定部54により、移動情報に基づき、駆動輪30Cの回転速度指令値と操舵角指令値とを移動条件として算出し(ステップS16)、移動制御部56により、算出された移動条件で各車輪30を制御することで、移動体10を移動させる(ステップS18)。
【0059】
一方、モード情報が通常ターンモードを示さない場合(ステップS14;No)、すなわちクイックターンモードを示す場合、制御装置28は、クイックターンモードを選択し、移動条件設定部54により、各車輪30の中心位置を回転中心Pとし(ステップS20)、移動情報に基づき、第1操舵輪30A、第2操舵輪30B、及び駆動輪30Cの操舵角速度ωiを算出し(ステップS22)、操舵角速度ωiに基づき、第1操舵輪30A、第2操舵輪30B、駆動輪30Cの操舵角指令値θiを算出する(ステップS24)。また、移動条件設定部54は、移動情報に基づき、駆動輪30Cの回転速度指令値ωdCを算出する(ステップS26)。そして、制御装置28は、移動制御部56により、算出された移動条件で各車輪30を制御することで、移動体10を移動させる(ステップS28)。そして、移動体10の向きの切替が完了した場合には(ステップS30;Yes)、すなわち移動体10が目標とする第2進行方向を向いた場合には、第1操舵輪30A、第2操舵輪30B、及び駆動輪30Cの操舵角指令値θiを0°とする(ステップS32)。ステップS18の実行、ステップS32の実行、又はステップS30でNoとなった場合には、ステップS34に移り、処理を終了しない場合には(ステップS34;No)、ステップS10に戻り処理を継続し、処理を終了する場合には(ステップS34;Yes)、本処理を終了する。
【0060】
(効果)
以上説明したように、本実施形態に係る移動体10は、操舵のみが可能な第1操舵輪30A、第2操舵輪30Bと、操舵と駆動が可能な駆動輪30Cとを有する。そのため、本実施形態10の移動体は、例えば前側の車輪が操舵のみ可能であり後ろ側の車輪が駆動のみ可能である移動体と比べて、旋回半径が大きくなることを抑制しつつ、移動しながら向きを変えることができる。また、本実施形態の移動体10は、駆動輪30Cが1つであるため、移動体10の全体の軽量化や、構造の簡易化も可能となる。また、大型の駆動源を搭載可能となり、駆動力を向上させることもできる。また、例えば複数の駆動輪がある場合は駆動輪同士の同期をとる必要があるが、本実施形態では駆動輪30Cが1つであるため、同期も不要となる。そのため、本実施形態の移動体10によると、シンプルな構成で適切に旋回することが可能となる。また、本実施形態の移動体10は、遠隔又は自律により自動で移動するため、作業員が直接操作する手動の移動体とは異なり、各車輪30の操舵角と駆動とを連携して適切に動作させることができる。また、本実施形態の移動体10は、移動しながら向きを変えることができるので、停止せずに旋回することが可能となり、走行時間を短縮したり、加減速を減らしたりすることも可能となる。
【0061】
また、本実施形態に係る移動体10は、通常ターンモードとクイックターンモードとを切り替えることが可能である。そのため、例えばクイックターンモードを用いることで、移動しながら向きを変える際に旋回半径が大きくなることを抑制できる。そのため、移動体10が通る通路を小さくすることが可能となり、その分だけ、棚や荷物を置くスペースを増やすことができる。
【0062】
なお、以上の説明では、移動体10の制御装置28が、移動条件とモード情報とを取得して、これらに基づき、移動条件を設定していたが、移動条件の設定は、制御装置28によって行われることに限られない。例えば、他の装置が、移動条件とモード情報とに基づき、移動条件を設定し、制御装置28が、その装置から移動条件の情報を取得して、取得した移動条件に基づき、移動体10の移動を制御してもよい。
【0063】
(第2実施形態)
次に、第2実施形態について説明する。第2実施形態では、特別ターンモードとして、ピボットターンモードが含まれる点で、第1実施形態とは異なる。第2実施形態において第1実施形態と構成が共通する箇所は、説明を省略する。
【0064】
(ピボットターンモード)
図7は、ピボットターンモードの例を示す模式図である。第2実施形態では、特別ターンモードとして、ピボットターンモードが含まれる。ピボットターンモードは、Z方向から見て、移動体10の回転中心Pが、第1操舵輪30Aの位置、又は第2操舵輪30Bの位置となるように、移動体10を移動させるモードである。
図7のステップS100、S102、S104に示すように、クイックターンモードでは、駆動輪30Cを駆動しつつ、全ての車輪30を操舵して、第1操舵輪30Aの位置、又は第2操舵輪30Bの位置である回転中心Pが車体領域ARの範囲内に位置しつつ、移動体10の向きが第1進行方向(ここでは方向Y)から第2進行方向(ここではX方向)に切り替わる。なお、
図7は、第2操舵輪30Bを回転中心Pとした場合の例である。
【0065】
(ピボットターンモードにおける移動条件の設定)
移動条件設定部54は、モード情報がピボットターンモードを示す場合には、移動情報取得部50が取得した移動情報に基づき、ボットターンモードの条件下で、駆動輪30Cの回転速度指令値と、各車輪30の操舵角指令値とを、移動条件として設定する。移動条件設定部54は、モード情報として、第1操舵輪30Aを回転中心Pとする旨の情報を取得した場合は、第1操舵輪30Aの位置を回転中心Pとして設定し、第2操舵輪30Bを回転中心Pとする旨の情報を取得した場合は、第2操舵輪30Bの位置を回転中心Pとして設定する。移動条件設定部54の以降の処理は、第1実施形態のクイックターンモードと同様なので、説明を省略する。
【0066】
移動制御部56は、ピボットターンモードである場合には、移動条件設定部54が設定した、駆動輪30Cの回転速度指令値ωdCと、各車輪30についての操舵角指令値θiとになるように、駆動輪30Cの回転速度と、各車輪30の操舵角とを制御する。これにより、移動体10は、ピボットターンモードに従って、移動体10の回転中心Pの位置を車体領域ARの範囲内に保ちながら、並進移動することなく、第1操舵輪30Aや第2操舵輪30Bを回転中心として、移動体10の向きを第1進行方向から第2進行方向に変えるように移動する。なお、移動体10は、ピボットターンモードにおいても、第1進行方向から第2進行方向に向きを変えつつ、並進移動してもよい。
【0067】
(制御フロー)
次に、第2実施形態の制御フローを説明する。
図8は、第2実施形態に係る制御装置の制御フローを説明するフローチャートである。
図8に示すように、ステップS10、S12の処理は第1実施形態と同様である。また、モード情報が通常ターンモードを示す場合(ステップS14;Yes)、以降のステップS16、ステップS18の処理も、第1実施形態と同様である。一方、モード情報が通常ターンモードを示さない場合(ステップS14;No)、すなわちピボットターンモードを示す場合、制御装置28は、ピボットターンモードを選択し、移動条件設定部54により、第1操舵輪30Aの位置、又は第2操舵輪30Bの位置を回転中心Pとする(ステップS20a)。以降の処理は、第1実施形態と同様なので、説明を省略する。
【0068】
(効果)
第2実施形態のようにピボットターンモードを選択可能としておくことで、例えば狭い通路においても、適切に向きを変えることが可能となる。特に例えば、
図7に示すように、規格に従って片側(
図7の例では右側)によって走行することが求められる場合には、ピボットターンが有効となる。すなわち、
図7の例のように、右側によった走行をしている場合に、その通路の右側の棚Wにある荷物にアプローチしたい場合には、右側に向きを変える必要がある。しかし、右側に向きを変えるために例えばクイックターンを選択した場合には、右側の棚Wとの距離が短いため、右側の棚Wに干渉したり、一度右側の棚Wから遠ざかってからアプローチするという手順が必要になったりする。それに対し、ピボットターンで、右側の第2操舵輪30Bを回転中心として右側に向きを変えることで、右側に向けて突出することが好適に抑制されて、右側の棚Wに干渉することなく、右側の棚Wに直接アプローチすることが可能となる。
【0069】
なお、第2実施形態は、第1実施形態と組み合わせてもよい。すなわち、制御装置28が、通常ターンモードと、クイックターンモードと、ピボットターンモードとのいずれかを用いる旨のモード情報を取得し、モード情報で示されたモードで、移動体10の移動条件を設定し、移動体10を移動させてもよい。
【0070】
(第3実施形態)
次に、第3実施形態について説明する。第2実施形態では、特別ターンモードとして、任意ターンモードが含まれる点で、第1実施形態とは異なる。第2実施形態において第1実施形態と構成が共通する箇所は、説明を省略する。
【0071】
(任意ターンモード)
第3実施形態では、特別ターンモードとして、任意ターンモードが含まれる。任意ターンモードは、Z方向から見て、移動体10の回転中心Pを、指定位置に設定するモードである。指定位置は、適宜設定されてよい。任意ターンモードの場合は、モード情報に指定位置を示す情報が含まれている。
【0072】
(任意ターンモードにおける移動条件の設定)
移動条件設定部54は、モード情報が任意ターンモードを示す場合には、モード情報に含まれる指定位置の情報を取得し、指定位置の情報に基づき、指定位置を特定して、特定した指定位置を、回転中心Pとする。移動条件設定部54は、指定位置の情報が、指定位置の座標を示すものである場合は、その指定位置を、回転中心Pとして設定する。一方、移動条件設定部54は、指定位置の情報が、指定位置の座標そのものを示すもの出ない場合には、指定位置の情報に基づき、指定位置の座標を取得してよい。例えば、移動条件設定部54は、指定位置の情報が、指定位置を移動体10の重心位置とする旨の情報である場合には、移動体10の重心位置の座標の情報を取得して、指定位置の座標とする。移動条件設定部54による移動体10の重心位置の座標の取得方法は任意であり、移動体10の重心位置の座標が、予め設定されていてもよいし、移動条件設定部54によって算出してもよい。また例えば、移動体10と積載物とを合わせた場合の重心位置を、指定位置としてもよい。
【0073】
移動条件設定部54は、指定位置を回転中心Pとして設定したら、移動情報に基づき、任意ターンモードの条件下で、移動条件を設定する。移動条件設定部54の以降の処理は、第1実施形態のクイックターンモードと同様なので、説明を省略する。
【0074】
移動制御部56は、任意ターンモードである場合には、移動条件設定部54が設定した、駆動輪30Cの回転速度指令値ωdCと、各車輪30についての操舵角指令値θiとになるように、駆動輪30Cの回転速度と、各車輪30の操舵角とを制御する。これにより、移動体10は、任意ターンモードに従って、移動体10の回転中心Pの位置を車体領域ARの範囲内に保ちながら、指定位置を回転中心として、第1進行方向から第2進行方向に向きを変えるように移動する。
【0075】
(制御フロー)
次に、第3実施形態の制御フローを説明する。
図9は、第3実施形態に係る制御装置の制御フローを説明するフローチャートである。
図9に示すように、ステップS10、S12の処理は第1実施形態と同様である。また、モード情報が通常ターンモードを示す場合(ステップS14;Yes)、以降のステップS16、ステップS18の処理も、第1実施形態と同様である。一方、モード情報が通常ターンモードを示さない場合(ステップS14;No)、すなわち任意ターンモードを示す場合、制御装置28は、任意ターンモードを選択し、移動条件設定部54により、指定位置の情報を取得し(ステップS19b)、指定位置を回転中心Pとする(ステップS20b)。以降の処理は、第1実施形態と同様なので、説明を省略する。
【0076】
(効果)
第3実施形態のように任意ターンモードを選択可能としておくことで、状況に応じて回転中心Pを設定することが可能となり、シンプルな構成で適切に旋回することが可能となる。例えば、重心位置を回転中心Pとすることで、遠心力が大きくなることを抑制して、安定した旋回が可能となる。
【0077】
なお、第3実施形態は、第1実施形態及び第2実施形態と組み合わせてもよい。すなわち、制御装置28が、通常ターンモードと、クイックターンモードと、任意ターンモードとのいずれかを用いる旨のモード情報を取得し、モード情報で示されたモードで、移動体10の移動条件を設定し、移動体10を移動させてもよい。また、制御装置28が、通常ターンモードと、ピボットターンモードと、任意ターンモードとのいずれかを用いる旨のモード情報を取得し、モード情報で示されたモードで、移動体10の移動条件を設定し、移動体10を移動させてもよい。また、制御装置28が、通常ターンモードと、クイックターンモードと、ピボットターンモードと、任意ターンモードとのいずれかを用いる旨のモード情報を取得し、モード情報で示されたモードで、移動体10の移動条件を設定し、移動体10を移動させてもよい。
【0078】
(本開示の効果)
以上説明したように、本開示の移動体10は、自動で移動する3輪の移動体であって、操舵可能であり駆動不可能な第1操舵輪30Aと、第1操舵輪30Aに対して第1方向(方向XAと反対方向)側に設けられ、操舵可能であり駆動不可能な第2操舵輪30Bと、第1操舵輪30A及び第2操舵輪30Bに対して第1方向に直交する第2方向(方向YA)側に設けられ、操舵及び駆動が可能な駆動輪30Cと、を有する。この移動体10は、例えば前側の車輪が操舵のみ可能であり後ろ側の車輪が駆動のみ可能である移動体と比べて、本実施形態の移動体は、旋回する際に向きを変える側に突出する走行が可能となり、旋回半径が大きくなることを抑制しつつ、移動しながら向きを変えることができる。また、本実施形態の移動体10は、駆動輪30Cが1つであるため、シンプルな構成となる。このように、本実施形態の移動体10によると、シンプルな構成で適切に旋回することが可能となる。
【0079】
本開示の移動体10は、第1操舵輪30A、第2操舵輪30B及び駆動輪30Cの少なくとも1つの操舵を制御し、駆動輪30Cの駆動を制御することで、移動体10の移動を制御する制御部44を更に有する。制御部44は、通常ターンモードとするか特別ターンモードとするかを示すモード情報を取得する。通常ターンモードは、移動体10が、第1進行方向から第2進行方向に向きを変えながら移動する際に、鉛直方向から見て、移動体10の回転中心Pが、移動体10が占める領域を第1進行方向に沿って延長した車体領域ARを外れることを許容しながら、移動体10を移動させる移動モードである。特別ターンモードは、移動体10が、第1進行方向から第2進行方向に向きを変えながら移動する際に、鉛直方向から見て、移動体10の回転中心Pを車体領域AR内に位置させたまま、移動体10を移動させる移動モードである。制御部44は、モード情報が示すモードで、向きを変えながら移動体10を移動させる。本実施形態の移動体10によると、通常ターンモードと特別ターンモードとを切り替え可能とすることで、例えば通路が狭い場合には特別ターンモードとするなどを選択することが可能となり、シンプルな構成で適切に旋回することが可能となる。
【0080】
特別ターンモードは、鉛直方向から見て、移動体10の回転中心Pが、第1操舵輪30Aと第2操舵輪30Bと駆動輪30Cとの中心位置となるように、移動体10を移動させるクイックターンモードを含む。本実施形態の移動体10によると、クイックターンモードを使用可能とすることで、旋回半径が大きくなることを抑制して、シンプルな構成で適切に旋回することが可能となる。
【0081】
特別ターンモードは、鉛直方向から見て、移動体10の回転中心Pが、第1操舵輪30A又は第2操舵輪30Bの位置となるように、移動体10を移動させるピボットターンモードを含む。本実施形態の移動体10によると、ピボットターンモードを使用可能とすることで、状況に応じて適切に旋回することが可能となる。
【0082】
特別ターンモードは、鉛直方向から見て、移動体10の回転中心Pが、指定位置となるように、移動体10を移動させる任意ターンモードを含む。制御部44は、モード情報が任意ターンモードを示す場合には、指定位置の情報を取得し、指定位置が回転中心Pとなるように、任意ターンモードで、向きを変えながら移動体10を移動させる。本実施形態の移動体10によると、任意ターンモードを使用可能とすることで、状況に応じて適切に旋回することが可能となる。
【0083】
制御部44は、特別ターンモードにおいては、移動体10の向きが第2進行方向に切り替わったら、第1操舵輪30A、第2操舵輪30B、及び駆動輪30Cの方向を第2進行方向に沿わせるように、第1操舵輪30A、第2操舵輪30B、及び駆動輪30Cの操舵角を切り替える。特別ターンモードにおいては、移動体10の向きが第2進行方向に切り替わったタイミングにおいて、第2進行方向以外を向いている場合があり、移動体10の向きがずれてしまうおそれがある。それに対して、第1操舵輪30A、第2操舵輪30B、及び駆動輪30Cの方向を第2進行方向に沿わせることで、ブレーキとなり、移動体10の向きがずれることを抑制できる。
【0084】
移動体10は、自動で移動するフォークリフトである。本移動体10は、フォークリフトとして適切に機能できる。
【0085】
本開示の制御方法は、自動で移動する3輪の移動体であって、操舵可能であり駆動不可能な第1操舵輪30Aと、第1操舵輪30Aに対して第1方向(方向XAと反対方向)側に設けられ、操舵可能であり駆動不可能な第2操舵輪30Bと、第1操舵輪30A及び第2操舵輪30Bに対して第1方向に直交する第2方向(方向YA)側に設けられ、操舵及び駆動が可能な駆動輪30Cと、を有する移動体10を制御する。本制御方法は、通常ターンモードとするか特別ターンモードとするかを示すモード情報を取得するステップと、第1操舵輪30A、第2操舵輪30B及び駆動輪30Cの少なくとも1つの操舵を制御し、駆動輪30Cの駆動を制御することで、モード情報が示すモードで、向きを変えながら移動体10を移動させるステップと、を含む。本制御方法によると、シンプルな構成で適切に移動体10を旋回させることが可能となる。
【0086】
本開示のプログラムは、自動で移動する3輪の移動体であって、操舵可能であり駆動不可能な第1操舵輪30Aと、第1操舵輪30Aに対して第1方向(方向XAと反対方向)側に設けられ、操舵可能であり駆動不可能な第2操舵輪30Bと、第1操舵輪30A及び第2操舵輪30Bに対して第1方向に直交する第2方向(方向YA)側に設けられ、操舵及び駆動が可能な駆動輪30Cと、を有する移動体10の制御方法をコンピュータに実行させる。本プログラムは、通常ターンモードとするか特別ターンモードとするかを示すモード情報を取得するステップと、第1操舵輪30A、第2操舵輪30B及び駆動輪30Cの少なくとも1つの操舵を制御し、駆動輪30Cの駆動を制御することで、モード情報が示すモードで、向きを変えながら移動体10を移動させるステップと、を、コンピュータに実行させる。本プログラムによると、シンプルな構成で適切に移動体10を旋回させることが可能となる。
【0087】
以上、本発明の実施形態を説明したが、この実施形態の内容により実施形態が限定されるものではない。また、前述した構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。さらに、前述した構成要素は適宜組み合わせることが可能である。さらに、前述した実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換又は変更を行うことができる。
【符号の説明】
【0088】
10 移動体
28 制御装置
30A 第1操舵輪
30B 第2操舵輪
30C 駆動輪
44 制御部
50 移動情報取得部
52 モード情報取得部
54 移動条件設定部
56 移動制御部