IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社豊田中央研究所の特許一覧 ▶ 株式会社豊田自動織機の特許一覧

<>
  • 特許-軌道生成装置 図1
  • 特許-軌道生成装置 図2
  • 特許-軌道生成装置 図3
  • 特許-軌道生成装置 図4
  • 特許-軌道生成装置 図5
  • 特許-軌道生成装置 図6
  • 特許-軌道生成装置 図7
  • 特許-軌道生成装置 図8
  • 特許-軌道生成装置 図9
  • 特許-軌道生成装置 図10
  • 特許-軌道生成装置 図11
  • 特許-軌道生成装置 図12
  • 特許-軌道生成装置 図13
  • 特許-軌道生成装置 図14
  • 特許-軌道生成装置 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-02-18
(45)【発行日】2022-03-01
(54)【発明の名称】軌道生成装置
(51)【国際特許分類】
   G05D 1/02 20200101AFI20220221BHJP
【FI】
G05D1/02 H
【請求項の数】 5
(21)【出願番号】P 2018050799
(22)【出願日】2018-03-19
(65)【公開番号】P2019164434
(43)【公開日】2019-09-26
【審査請求日】2021-02-16
(73)【特許権者】
【識別番号】000003609
【氏名又は名称】株式会社豊田中央研究所
(73)【特許権者】
【識別番号】000003218
【氏名又は名称】株式会社豊田自動織機
(74)【代理人】
【識別番号】110000110
【氏名又は名称】特許業務法人快友国際特許事務所
(72)【発明者】
【氏名】津坂 祐司
(72)【発明者】
【氏名】藤井 亮暢
(72)【発明者】
【氏名】田中 稔
(72)【発明者】
【氏名】服部 晋悟
【審査官】大古 健一
(56)【参考文献】
【文献】特開2018-2082(JP,A)
【文献】特開2017-10292(JP,A)
【文献】特開2010-73080(JP,A)
【文献】特開2000-132228(JP,A)
【文献】特開平7-129243(JP,A)
【文献】米国特許出願公開第2008/0255728(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00 - 1/12
(57)【特許請求の範囲】
【請求項1】
移動体が移動する軌道を生成する軌道生成装置であって、
前記移動体のスタート位置、前記スタート位置における前記移動体の進行方向であるスタート位置進行方向、前記移動体のゴール位置、前記ゴール位置における前記移動体の進行方向であるゴール位置進行方向、に基づいて、前記スタート位置と前記ゴール位置とを接続する第1の二等辺三角形および第2の二等辺三角形を生成することで、前記移動体が前記スタート位置から前記ゴール位置まで移動する際の操舵角および操舵角速度を計画する計画部と、
前記第1の二等辺三角形の等辺に沿って第1の曲線軌道を当てはめるとともに、前記第2の二等辺三角形の等辺に沿って第2の曲線軌道を当てはめる曲線軌道あてはめ部と、
を備え、
前記計画部は、
前記第1の二等辺三角形の等辺と前記第2の二等辺三角形の等辺の長さを等しくし、
前記スタート位置に前記第1の二等辺三角形の底辺側の第1頂点を配置し、
前記ゴール位置に前記第2の二等辺三角形の底辺側の第1頂点を配置し、
前記第1の二等辺三角形の底辺側の第2頂点と前記第2の二等辺三角形の底辺側の第2頂点とを接続する、軌道生成装置。
【請求項2】
前記計画部は、
前記第1の二等辺三角形と前記第2の二等辺三角形との接続部において前記第1および第2の二等辺三角形の等辺が一直線になる条件下で、前記等辺の長さを算出し、
前記スタート位置を通り前記スタート位置進行方向に伸びる第1延長線上の位置であって、前記スタート位置から前記等辺の長さの距離を進んだ位置に、前記第1の二等辺三角形の等辺に挟まれた第3頂点を決定し、
前記ゴール位置を通り前記ゴール位置進行方向の反対方向に伸びる第2延長線上の位置であって、前記ゴール位置から前記等辺の長さの距離を進んだ位置に、前記第2の二等辺三角形の等辺に挟まれた第3頂点を決定し、
前記第1の二等辺三角形の前記第3頂点と前記第2の二等辺三角形の前記第3頂点との中点を、前記第1の二等辺三角形の前記第2頂点および前記第2の二等辺三角形の前記第2頂点として決定する、
請求項1に記載の軌道生成装置。
【請求項3】
前記計画部は、
前記第1の二等辺三角形の底辺に対して前記第1の二等辺三角形の前記スタート位置から伸びる等辺がなす角度である第1角度の正負を判断し、
前記第2の二等辺三角形の底辺に対して前記第2の二等辺三角形の前記第2頂点から伸びる等辺がなす角度である第2角度の正負を判断し、
前記第1角度と前記第2角度との両方が正または両方が負である場合に、前記ゴール位置と前記第2の二等辺三角形の第3頂点とを結んだ第3延長線と前記第1延長線との交点を決定し、
前記交点と前記スタート位置との第1距離が前記交点と前記ゴール位置との第2距離よりも小さい場合に、前記第3延長線上の位置であって前記交点を始点として前記ゴール位置へ向かって前記第1距離を進んだ位置を、前記第1の二等辺三角形の前記第2頂点および前記第2の二等辺三角形の前記第2頂点として再決定し、
前記第1距離が前記第2距離よりも大きい場合に、前記第1延長線上の位置であって前記交点を始点として前記スタート位置へ向かって前記第2距離を進んだ位置を、前記第1の二等辺三角形の前記第2頂点および前記第2の二等辺三角形の前記第2頂点として再決定する、
請求項2に記載の軌道生成装置。
【請求項4】
前記曲線軌道あてはめ部は、
パラメータを用いて前記曲線軌道を示すパラメトリック方程式を微分することで、前記第1の二等辺三角形の底辺の垂直二等分線と曲線軌道との交点における曲線軌道の傾きが、第1の二等辺三角形の底辺の傾きと等しくなるような特定パラメータの値を決定し、
前記特定パラメータによって得られた軌道を、前記第1の二等辺三角形の底辺の垂直二等分線に対して線対称に組み合わせることで、サイズが正規化された曲線軌道を生成し、
前記サイズが正規化された曲線軌道の両端部が前記第1の二等辺三角形の底辺側の前記第1頂点および前記第2頂点と一致するように、前記サイズが正規化された曲線軌道を拡大または縮小することで、前記第1の曲線軌道を前記第1の二等辺三角形の等辺にそって当てはめる、
請求項1~3の何れか1項に記載の軌道生成装置。
【請求項5】
前記パラメトリック方程式は、前記パラメータの5次式であり、
前記パラメトリック方程式を一階微分した式には、2乗または4乗された形でのみ前記パラメータが含まれている、請求項4に記載の軌道生成装置。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書に開示の技術は、軌道生成装置に関する。
【背景技術】
【0002】
無人フォークリフトなど、移動体を自走させる技術が開発されている。移動体を自走させるには、軌道を生成する必要である。例えば特許文献1には、軌道データを生成する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開平3-252707号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
移動体を自走させる場合には、一定の制御周期(例:10ミリ秒毎)で軌道データを生成し、走行状態を微調整する必要がある。ここで例えば、軌道データの生成にクロソイド曲線を用いる場合には、クロソイド点の座標は初等関数で表すことは不可能であるため、数値積分が必要となる。すると制御周期内で軌道データを生成することが困難な場合がある。本明細書は、簡易に軌道データを生成することが可能な軌道生成装置を開示する。
【課題を解決するための手段】
【0005】
本明細書に開示する軌道生成装置の一実施形態は、移動体が移動する軌道を生成する軌道生成装置である。移動体のスタート位置、スタート位置における移動体の進行方向であるスタート位置進行方向、移動体のゴール位置、ゴール位置における移動体の進行方向であるゴール位置進行方向、に基づいて、スタート位置とゴール位置とを接続する第1の二等辺三角形および第2の二等辺三角形を生成することで、移動体がスタート位置からゴール位置まで移動する際の操舵角および操舵角速度を計画する計画部を、軌道生成装置は備える。第1の二等辺三角形の等辺に沿って第1の曲線軌道を当てはめるとともに、第2の二等辺三角形の等辺に沿って第2の曲線軌道を当てはめる曲線軌道あてはめ部を、軌道生成装置は備える。計画部は、第1の二等辺三角形の等辺と第2の二等辺三角形の等辺の長さを等しくする。計画部は、スタート位置に第1の二等辺三角形の底辺側の第1頂点を配置する。計画部は、ゴール位置に第2の二等辺三角形の底辺側の第1頂点を配置する。計画部は、第1の二等辺三角形の底辺側の第2頂点と第2の二等辺三角形の底辺側の第2頂点とを接続する。
【0006】
スタート位置とゴール位置とを接続する第1の二等辺三角形および第2の二等辺三角形によって、操舵角および操舵角速度を計画ことができる。そして、第1および第2の二等辺三角形の等辺に沿って曲線軌道を当てはめることで、第1および第2の曲線軌道を生成することができる。曲線軌道を生成するに際し、数値積分などの複雑な計算を用いる必要がない。制御周期内に曲線軌道を生成することが可能となる。
【0007】
計画部は、第1の二等辺三角形と第2の二等辺三角形との接続部において第1および第2の二等辺三角形の等辺が一直線になる条件下で、等辺の長さを算出してもよい。計画部は、スタート位置を通りスタート位置進行方向に伸びる第1延長線上の位置であって、スタート位置から等辺の長さの距離を進んだ位置に、第1の二等辺三角形の等辺に挟まれた第3頂点を決定してもよい。計画部は、ゴール位置を通りゴール位置進行方向の反対方向に伸びる第2延長線上の位置であって、ゴール位置から等辺の長さの距離を進んだ位置に、第2の二等辺三角形の等辺に挟まれた第3頂点を決定してもよい。計画部は、第1の二等辺三角形の第3頂点と第2の二等辺三角形の第3頂点との中点を、第1の二等辺三角形の第2頂点および第2の二等辺三角形の第2頂点として決定してもよい。効果の詳細は実施例で説明する。
【0008】
計画部は、第1の二等辺三角形の底辺に対して第1の二等辺三角形のスタート位置から伸びる等辺がなす角度である第1角度の正負を判断してもよい。計画部は、第2の二等辺三角形の底辺に対して第2の二等辺三角形の第2頂点から伸びる等辺がなす角度である第2角度の正負を判断してもよい。計画部は、第1角度と第2角度との両方が正または両方が負である場合に、ゴール位置と第2の二等辺三角形の第3頂点とを結んだ第3延長線と第1延長線との交点を決定してもよい。計画部は、交点とスタート位置との第1距離が交点とゴール位置との第2距離よりも小さい場合に、第3延長線上の位置であって交点を始点としてゴール位置へ向かって第1距離を進んだ位置を、第1の二等辺三角形の第2頂点および第2の二等辺三角形の第2頂点として再決定してもよい。計画部は、第1距離が第2距離よりも大きい場合に、第1延長線上の位置であって交点を始点としてスタート位置へ向かって第2距離を進んだ位置を、第1の二等辺三角形の第2頂点および第2の二等辺三角形の第2頂点として再決定してもよい。効果の詳細は実施例で説明する。
【0009】
曲線軌道あてはめ部は、パラメータを用いて曲線軌道を示すパラメトリック方程式を微分することで、第1の二等辺三角形の底辺の垂直二等分線と曲線軌道との交点における曲線軌道の傾きが、第1の二等辺三角形の底辺の傾きと等しくなるような特定パラメータの値を決定してもよい。曲線軌道あてはめ部は、特定パラメータによって得られた軌道を、第1の二等辺三角形の底辺の垂直二等分線に対して線対称に組み合わせることで、サイズが正規化された曲線軌道を生成してもよい。曲線軌道あてはめ部は、サイズが正規化された曲線軌道の両端部が第1の二等辺三角形の底辺側の第1頂点および第2頂点と一致するように、サイズが正規化された曲線軌道を拡大または縮小することで、第1の曲線軌道を第1の二等辺三角形の等辺にそって当てはめてもよい。効果の詳細は実施例で説明する。
【0010】
パラメトリック方程式は、パラメータの5次式であってもよい。パラメトリック方程式を一階微分した式には、2乗または4乗された形でのみパラメータが含まれていてもよい。
【図面の簡単な説明】
【0011】
図1】実施例に係るフォークリフトの構成を示すブロック図。
図2】スタート位置およびゴール位置を示す図。
図3】曲線軌道の生成方法を示すフローチャート。
図4】S30の処理内容を説明するフローチャート。
図5】第1および第2の二等辺三角形の形成例を示す図。
図6】第1および第2の二等辺三角形の形成例を示す図。
図7】S40の処理内容を説明するフローチャート。
図8】第1および第2の二等辺三角形の形成例を示す図。
図9】第1および第2の二等辺三角形の形成例を示す図。
図10】第1および第2の二等辺三角形の形成例を示す図。
図11】S80の処理内容を説明するフローチャート。
図12】曲線軌道の当てはめ例を示す図。
図13】曲線形状の形成例を示す図。
図14】曲線軌道の形成例を示す図。
図15】軌道上での位置姿勢を計算する方法を示すフローチャート。
【発明を実施するための形態】
【0012】
(フォークリフト10の構成)
以下、図面を参照して、本実施例のフォークリフト10について説明する。図1に示すフォークリフト10は、無人フォークリフトである。フォークリフト10は、車体12、測域センサ26、演算装置30を備えている。
【0013】
車体12は、前輪28及び後輪29を備えている。左右の前輪28には、エンコーダ92が接続されており、前輪28の回転量を検出可能となっている。エンコーダ92は、左右の前輪28の動作に基づいて、車体12の移動量及び移動方向を検出する。前輪28は、図示しない駆動機構を介して駆動輪モータ90が接続されており、駆動輪モータ90によって回転駆動されるようになっている。
【0014】
測域センサ26は、車体12に設置され、一方向(本実施例では、水平方向)にレーザ光を走査する1次元走査型の測域センサである。測域センサ26は、車体12の前方に設定された設定空間内の物体と車体12との距離を計測する。これにより、フォークリフト10の前方の距離データを取得する。測域センサ26で取得された距離データは、演算装置30の自己位置推定部38に入力される。
【0015】
制御装置32は、CPU等を備えたマイクロプロセッサによって構成されている。制御装置32は、車体12に搭載されている。図1に示すように、制御装置32は、駆動輪モータ90、操舵装置94等と通信可能に接続されており、これらの動作を制御する。すなわち、制御装置32は、駆動輪モータ90及び操舵装置94を駆動することで、フォークリフト10の進行方向及び走行速度を制御する。
【0016】
演算装置30は、CPU等を備えたマイクロプロセッサによって構成されている。演算装置30は、スタート位置/ゴール位置設定部35、軌道生成装置40、地図データ58、自己位置推定部38、軌道追従制御部48、を備える。地図データ58は、フォークリフト10が移動する空間内に存在する物体(例えば、柱、壁等)の位置及び大きさを示すデータである。地図データ58は、例えば、フォークリフト10が移動する領域内の物体を測域センサ26によって予め測定し、この測定結果に基づいて作成しておくことができる。
【0017】
自己位置推定部38には、地図データ58と、測域センサ26により計測される周辺物体との距離データと、エンコーダ92により検出された車体12の移動量及び移動方向が入力される。自己位置推定部38は、これらの入力データに基づいて、フォークリフト10の自己位置を推定する。スタート位置/ゴール位置設定部35は、フォークリフト10のスタート位置とゴール位置を設定する。
【0018】
軌道生成装置40は、操舵計画部41、曲線軌道生成部42、曲線軌道当てはめ部43を備えている。操舵計画部41は、スタート位置とゴール位置とを接続する第1の二等辺三角形および第2の二等辺三角形を生成することで、フォークリフト10がスタート位置からゴール位置まで移動する際の操舵方向を計画する。曲線軌道生成部42は、サイズが正規化された曲線軌道を生成する。曲線軌道当てはめ部43は、第1および第2の二等辺三角形に曲線軌道を当てはめることで、曲線軌道データを生成する。これにより、操舵角および操舵角速度が求まる。
【0019】
軌道追従制御部48は、曲線軌道当てはめ部43で生成された曲線軌道データと、フォークリフト10の現在位置(オドメトリにより算出される自己位置)とに基づいて、ゴール位置まで車体12を移動するための制御指令値を算出する。生成された制御指令値は、制御装置32に入力され、制御装置32は、車体12をゴール位置に向かって移動させる。
【0020】
(前提条件)
本明細書における、記載方法の前提条件を説明する。フォークリフト10の位置と向きを合わせて、「ポーズ」と呼ぶ場合がある。車輛の中心点(代表点または原点ともいう)は、操舵しない輪の左右の中心とする。本実施例のフォークリフト10の場合、前輪28の左右の中心である。この中心点は、タイヤの滑りが無視できる程度に小さいと仮定する。これにより、中心点は車輛の左右には動かず前後だけに動くため、代表点として都合が良い。一般性を失わないため、図2に示すように、スタート位置Oを地面座標系の原点とする。また、スタート位置におけるフォークリフト10の向きであるスタート向きA1の方向を、地面座標系のx軸方向とする。スタート向きA1は、スタート位置Oにおけるフォークリフト10の進行方向である。本実施例では、スタート位置姿勢(ポーズ)から、任意のゴール向きA2を有する任意のゴール位置Pまでの軌道の生成を考える。ここでゴール向きA2は、ゴール位置Pに到達した時点におけるフォークリフト10の進行方向である。また本実施例では、ゴール位置Pのx座標が正(x>0)の場合のみ考えることとする。必ずしもゴールでx>0でなくても全く同じプログラムで妥当な軌道が生成出来るケースも存在するが、x<0の場合はバックする方が妥当なケースが多いためである。
【0021】
(最初の曲線軌道の生成方法)
図3のフローチャートを用いて、最初の曲線軌道の生成方法を説明する。図3は、ゴール位置の指示が入力されたときに、曲線軌道を生成する場合のフローである。
【0022】
S10において、ゴール位置Pのポーズが設定される。S10は、スタート位置/ゴール位置設定部35によって実行される処理である。図2の例に示すように、ゴール位置Pおよびゴール向きA2が設定される。
【0023】
S20において、ゴール向きA2が、スタート向きA1と略等しいか否かが判断される。すなわち、ゴール向きA2とスタート向きA1とが略平行であるか否かが判断される。ここで「略平行」とは、例えば、ゴール向きA2とスタート向きA1との差が3°以下である場合である。ゴール向きA2がスタート向きA1と略等しくない場合(S20:NO)には、S30へ進む。
【0024】
S30において、フォークリフト10がスタート位置Oからゴール位置Pまで移動する際の操舵角および操舵角速度を計画する。S30は、操舵計画部41によって実行される処理である。具体的には、スタート位置Oとゴール位置Pとを接続する第1の二等辺三角形および第2の二等辺三角形を生成する。
【0025】
図4のフローチャートを用いて、S30の処理内容を説明する。S110において、第1および第2の二等辺三角形の等辺の長さLを計算する。第1および第2の二等辺三角形の等辺の長さLは、等しい。これは、解きやすさと解の妥当性を考慮したものである。等辺の長さLを変数とおく。また図5に示すように、第1の二等辺三角形IT1と第2の二等辺三角形IT2との接続部において等辺ES12と等辺ES21が一直線になる条件を定める。この条件下で方程式を立てると2次方程式となるため、その2次方程式を解く。これにより、等辺の長さLが求められる。
【0026】
S120において、第1および第2の二等辺三角形を配置する。図5を用いて具体例を説明する。スタート位置Oに、第1の二等辺三角形IT1の底辺側の第1頂点VE11を配置する。ゴール位置Pに、第2の二等辺三角形IT2の底辺側の第1頂点VE21を配置する。スタート位置Oを通りスタート向きA1方向に伸びる延長線であるx軸上の位置であって、スタート位置Oから等辺の長さLの距離を進んだ位置に、第1の二等辺三角形IT1の等辺に挟まれた第3頂点VE13(S点ともいう)を決定する。ゴール位置Pを通りゴール向きA2の反対方向に伸びる延長線上の位置であって、ゴール位置Pから等辺の長さLの距離を進んだ位置に、第2の二等辺三角形IT2の等辺に挟まれた第3頂点VE23(Q点ともいう)を決定する。
【0027】
S130において、第1の二等辺三角形IT1の第3頂点VE13(S点)と、第2の二等辺三角形IT2の第3頂点VE23(Q点)との中点であるR点を求める。そしてR点を、第1の二等辺三角形IT1の第2頂点VE12および第2の二等辺三角形IT2の第2頂点VE22として決定する。換言すると、第1の二等辺三角形および第2の二等辺三角形を生成するとは、R点の位置、および、R点を通る等辺ES12およびES21の傾きを求めることでもある。
【0028】
S140において、第1の二等辺三角形IT1の等辺および第2の二等辺三角形IT2の等辺に曲線軌道を当てはめた場合に、その曲線軌道の最大曲率が、予め定められた閾値より大きいか否かを判断する。当てはめる曲線のタイプが決まっていれば、二等辺三角形の頂角とサイズから最大曲率を一意に求めることができる。最大曲率が閾値より大きい場合(S140:YES)には、カーブが急峻過ぎると判断され、S150へ進み、エラーとされる。一方、最大曲率が閾値以下の場合(S140:NO)には、第1の二等辺三角形および第2の二等辺三角形の生成が完了したと判断され、図3のS40へ進む。
【0029】
最大曲率の閾値は、予め定められた最小角度(例:60度から90度の範囲)よりも小さい頂角に当てはめられた曲線軌道を、エラーとして除外するように定めてもよい。これにより、例えば図6の例のように、第2の二等辺三角形IT2の第3頂点VE23の頂角が90°よりも小さい場合に、曲線軌道の生成を中止することができる。
【0030】
図3のフローに説明を戻す。S40において、一回操舵への変更を試行する。図7のフローチャートおよび図5を用いて、S40の処理内容を説明する。
【0031】
S210において、第1の二等辺三角形によって計画される1回目の操舵方向と、第2の二等辺三角形によって計画される2回目の操舵方向が同方向であるか否かを判断する。具体的には、第1の二等辺三角形IT1において、底辺(線OR)に対して、スタート位置Oから伸びる等辺ES11(線OS)がなす底角である第1角度AG1の正負を判断する。また、第2の二等辺三角形IT2において、底辺(線RP)に対して、第2頂点VE22(R点)から伸びる等辺ES21(線RQ)がなす底角である第2角度AG2の正負を判断する。
【0032】
第1角度AG1と第2角度AG2の両方が正、または、両方が負である場合には、1回目の操舵方向と2回目の操舵方向が同方向であると判断される(S210:YES)。例えば、図8に示すように、第1角度AG1および第2角度AG2の両方が正である場合である。この場合、1回操舵へ変更するためにS220へ進む。
【0033】
S220において、図8に示すように、ゴール位置Pと第2の二等辺三角形IT2の第3頂点VE23(Q点)とを結んだ線QPの延長線EX3を生成する。そして延長線EX3とx軸との交点Cを決定する。
【0034】
S230において、交点Cの位置が適切であるか否かが判断される。具体的には、交点Cが、x>0かつゴール位置Pのゴール向きA2のベクトルの後ろ側にあるか(すなわち線CPのベクトルとゴール向きA2のベクトルの内積が負であるか)が判断される。同方向に二回操舵していることから、通常は、交点Cの位置は必ず適切になる。S230において否定判断される場合(S230:NO)には、エラー判断され、フローが終了する。一方、S230において肯定判断される場合(S230:YES)には、交点Cを中心に新たな二等辺三角形を作成するために、S240へ進む。
【0035】
S240において、交点Cが、スタート位置Oとゴール位置Pの何れに近いかを判断する。具体的には、スタート位置Oと交点Cとの第1距離D1と、交点Cとゴール位置Pとの第2距離D2とを比較する。
【0036】
第1距離D1の方が第2距離D2よりも小さい場合には、交点Cがスタート位置Oに近い場合であると判断され、S250へ進む。S250において、延長線EX3上の位置であって交点Cを始点としてゴール位置Pへ向かって第1距離D1を進んだ位置を、第1の二等辺三角形IT1の第2頂点VE12(R点)および第2の二等辺三角形IT2の第2頂点VE22(R点)として再決定する。これにより、図9の例に示すように、新たな第1の二等辺三角形IT1および第2の二等辺三角形IT2が形成される。そしてS280へ進む。
【0037】
図9において、第2の二等辺三角形IT2は一直線に潰れている。すなわち、R点とゴール位置Pとを直線で結ぶことができる。これにより、第1の二等辺三角形IT1の1つだけで操舵計画を立てるように修正することができる。従って、1つの二等辺三角形に後述する方法で曲線をはめ込むことで、曲線軌道を完成させることが可能となる。曲率がほぼ一定に変化する曲線長が長くとれるため、全体として曲率の変化を小さくすることができる。従って、同じ線速度で移動するとした場合の操舵速度の最大値を低く抑えることが可能となる。
【0038】
また、第2距離D2の方が第1距離D1よりも小さい場合には、交点Cがゴール位置Pに近い場合であると判断され、S260へ進む。S260において、x軸上の位置であって交点Cを始点としてスタート位置Oへ向かって第2距離D2を進んだ位置を、第1の二等辺三角形IT1の第2頂点VE12(R点)および第2の二等辺三角形IT2の第2頂点VE22(R点)として再決定する。これにより、新たな第1の二等辺三角形IT1および第2の二等辺三角形IT2が形成される。第1の二等辺三角形IT1は一直線に潰れている。これにより、第2の二等辺三角形IT2の1つだけで操舵計画を立てるように、計画を修正することができる。
【0039】
一方、S210において、第1角度AG1と第2角度AG2の一方が正であり他方が負である場合には、1回目の操舵方向と2回目の操舵方向が異なる方向であると判断される(S210:NO)。この場合、2回操舵を1回操舵へ変更することは行わない。従ってS270へ進む。図5に示す例では、第1角度AG1が負であり第2角度AG2が正であるため、S210で否定判断される。
【0040】
S270において、第1および第2の二等辺三角形の頂角の比率に応じて、二等辺三角形の等辺の長さLを第1および第2の二等辺三角形で定数倍に変化させる。具体的には、第1および第2の二等辺三角形のうち、頂角が小さい方(すなわちカーブが急である方)の二等辺三角形の等辺の長さを長くし、頂角が大きい方(すなわちカーブが緩やかである方)の二等辺三角形の等辺の長さを短くする。例えば図6に示すように、第2の二等辺三角形IT2の頂角が小さい場合には、図10に示すように、第2の二等辺三角形IT2の等辺の長さをLからL2へ長くするとともに、第1の二等辺三角形IT1の等辺の長さをLからL1へ短くする。これにより、第1の二等辺三角形IT1を小さく、第2の二等辺三角形IT2を大きくすることができる。よって、第2の二等辺三角形IT2の面積を大きくすることができるため、第2の二等辺三角形IT2で計画される曲線軌道の最大曲率を小さくする(すなわちカーブを緩やかにする)ことが可能となる。
【0041】
S280において、S30で作成した二等辺三角形と、S250、S260、S270で再作成した二等辺三角形のうち、最大曲率が小さい方の二等辺三角形を選択する。そして図3のS80へ進む。
【0042】
図3のフローに説明を戻す。S20において、ゴール向きA2が、スタート向きA1と略等しい場合(S20:YES)にはS50へ進む。S50において、ゴール位置Pのx座標値が0に近いか否かを判断する。肯定判断された場合(S50:YES)には、スタート向きA1とゴール向きA2とが略等しく、かつ、スタート位置Oとゴール位置Pとが真横に位置する場合である。このようなケースでは、大回りする曲線軌道を用いてゴールに至るよりも、途中で切り返すことが適切であると考えられる。そのため、S60へ進み、エラー(軌道生成不可能)とする。
【0043】
一方、S50において否定判断された場合(S50:NO)は、S70へ進む。この場合は、ゴール向きA2がスタート向きA1と略等しく、スタート位置Oとゴール位置Pとがある程度離れている場合である。このような場合、S110で説明した2次方程式の二つの解の和と差が無限大に発散するため、計算が困難となる。すなわち、この条件を満たす点は、二次方程式の2個の解ではなく1個の解となる。そこで、S70へ進み、二次方程式の解の公式ではなく、級数展開で解を求める。級数展開は、周知の方法を用いればよいため、ここでは詳細な説明を省略する。これにより、ゴール向きA2がスタート向きA1と略等しい場合においても、安定して連続的な解を求めることが出来る。
【0044】
S80において、第1および第2の二等辺三角形に曲線軌道を当てはめる。具体的には、第1の二等辺三角形IT1の等辺に沿った第1の曲線軌道、および、第2の二等辺三角形IT2の等辺に沿った第2の曲線軌道を生成する。
【0045】
図11のフローチャートを用いて、S80の処理内容を説明する。一般化のため、第1の二等辺三角形IT1に対する曲線軌道の当てはめについてのみ説明する。第2の二等辺三角形IT2に対する曲線軌道の当てはめは、原点移動と回転移動することでR点を原点にすれば、第1の二等辺三角形IT1と全く同じ方法で行うことが出来るためである。
【0046】
ここで、曲線軌道の当てはめには、以下の法則が成立する。(法則1)二等辺三角形に対称に曲線を当てはめる。(法則2)スタート位置Oで、曲率および傾きともにゼロである。(法則3)傾きが連続であると言う条件から、図12に示すように、二等辺三角形の底辺ES13の垂直二等分線PB1と曲線軌道との交点IS1における曲線軌道の傾きは、二等辺三角形の底辺ES13(直線OR)の傾きと等しい。
【0047】
曲線軌道の当てはめには、曲線長と曲率の関係が線形に近い曲線を生成するためのパラメトリック曲線を使用する。パラメトリック曲線は、曲率傾きが0から始まって、漸増していく曲線であれば、いずれの曲線であってもよい。本実施例では下式(1)(2)で表されるパラメトリック曲線を用いる場合を説明する。
x=m×(t-t/40) ・・・式(1)
y=m×t/6 ・・・式(2)
ここで、倍率mは相似変換のスケーリングの定数であり、tはパラメータである。本実施例では、m=1の場合(すなわち正規化されている場合)を説明する。
【0048】
なお、実際の計算では、下式(3)に示すようなパラメータuを用いて計算してもよい。
t=u/m ・・・式(3)
式(3)を式(1)および(2)に代入すると、下式(4)および(5)が得られる。
x=u-u/(40m) ・・・式(4)
y=u/(6m) ・・・式(5)
式(4)および(5)においてmは明示的には計算せず、「1/m」を直接計算すればよい。式(4)および(5)ではmの2乗および4乗しか出てこないため、「1/m」を計算する必要がないためである。
【0049】
式(4)および(5)を用いて計算を行う効果を説明する。二等辺三角形がつぶれて直線になる場合、底辺の傾きがゼロになり、mは無限大に発散し、tの範囲が0から0となるため、式(1)および(2)では計算が不可能になる。しかし、式(4)および(5)では、mとtを明示的に使用していない。式(4)および(5)では、「1/m」の計算を用いるとともに、「u」の範囲は0からuの最大値で計算すればよい。これにより、二等辺三角形が完全につぶれて直線になる場合も含めて、安定して計算をすることができる。実用上は、二等辺三角形がつぶれるケースが多いため、式(4)および(5)を用いた計算方法は有益である。また、パラメータuは、二等辺三角形にフィットさせた後の曲線長にほぼ一致する。従って、真の曲線長を計算せずに、パラメータuを擬似曲線長として用いて速度パターンを作成できる。数値積分を不要にすることができるため、速度パターンの設計を簡易に行うことが可能になる。
【0050】
S310において、サイズを正規化した曲線形状を生成する。具体的に説明する。式(1)および(2)の曲線では、傾きを与えた時、対応するパラメータtは一意である。よって、二次方程式を解くことでパラメータtを求めることができる。すなわち、式(1)および(2)を数式的に微分することで、第1の二等辺三角形IT1の底辺ES13の垂直二等分線PB1(図12参照)と曲線軌道との交点IS1における曲線軌道の傾きが、第1の二等辺三角形IT1の底辺ES13の傾きと等しくなるようなパラメータtの値を決定する。決定したパラメータtの値を用いて、式(1)および(2)の相似変換の倍率mを「1」とした、サイズを正規化した曲線形状が得られる。図12の第1の二等辺三角形IT1の例では、図13に示すような曲線形状CS1が得られる。
【0051】
S320において、正規化された曲線形状を、第1の二等辺三角形IT1の底辺ES13の垂直二等分線PB1に対して線対称に組み合わせる。これにより、サイズが正規化された曲線軌道CT1が生成される。図12の第1の二等辺三角形IT1の例では、図14に示すように、曲線形状CS1およびCS2を組み合わせた曲線軌道CT1が得られる。曲線形状CS1およびCS2の接続部分CNの傾きGR1(図14)は、対称性と微分可能の条件より、図12の第1の二等辺三角形IT1の底辺ES13の傾きと等しい。
【0052】
S330において、サイズが正規化された曲線軌道CT1の両端部が、第1の二等辺三角形IT1の底辺側の第1頂点VE11(スタート位置O)、および第2頂点VE12(R点)と一致するように、曲線軌道CT1を拡大または縮小する。具体的には、図14の曲線軌道CT1の一方の端部E1を、図12のスタート位置Oに一致させる。このとき、曲線軌道CT1の他方の端部E2が到達する位置と、図12のR点との比率を求める。そして、上記で求めた比率に基づいて、曲線軌道CT1を拡大または縮小する。これにより、図12に示すように、第1の二等辺三角形IT1に対する曲線軌道CT1の当てはめが完了する。
【0053】
第2の二等辺三角形IT2についても、上述したS310~S330の処理を行うことにより、曲線軌道CT2を当てはめることができる。これにより、様々なスタート位置Oおよびゴール位置Pの組み合わせに対し、自然な曲線軌道を生成することができる。
【0054】
S340において、二等辺三角形に曲線を当てはめる場合の係数を保存する。具体的には、S330で求めた拡縮比率と、S310で取得したパラメータtの値を保存する。なお、拡縮比率の逆数を二乗した値を、拡縮比率として用いてもよい。そしてフローを終了する。
【0055】
なお、S310およびS320は、曲線軌道生成部42によって実行される処理である。S330は、曲線軌道当てはめ部43によって実行される処理である。
【0056】
(軌道上での位置姿勢の計算方法)
図15のフローチャートを用いて、フォークリフト10の移動中において、軌道上での位置姿勢を計算する方法を説明する。図15のフローチャートは、例えば、一定の制御周期(例:10ミリ秒毎)で実行される。図15のフローチャートの処理は、軌道追従制御部48によって実行される処理である。
【0057】
S410において、第1および第2の二等辺三角形の4つの等辺ES11、ES12、ES21、ES22の何れの辺に対応する曲線を計算すべきかを判断する。具体的に説明する。4つの等辺に対応する、パラメータtの最大値(それぞれで0から最大値まで変化する)が求められている。よって、与えられたパラメータtの値と大小比較することで、何れの等辺に対応する曲線を計算すべきかが容易に判断できる。
【0058】
S420において、パラメータtに対応する位置(x,y)、傾き、曲率を計算する。具体的に説明する。パラメータtの「倍率m」分の1を、曲線軌道の正規化された式に代入することで、位置(x,y)が求まる。曲線軌道を示す式の微分値から、位置(x,y)での傾きを求めることができる。また二階微分によって、位置(x,y)での曲率κを求めることができる。
【0059】
なお、フォークリフト10の操舵角φは、下式(6)に示すように、曲線軌道の曲率κと一対一に対応している。
λ(cosφ, sinφ, 0) = (v, 0, 0) + (0,0,κv)×(bx, by, 0) ・・・式(6)
ここで、vは車輛の中心の前進速度である。bxは、操舵輪の位置(ホイールベース)である。byは、車輛の中心点であり、トレッドの半分である。λは適当な定数である。従って、下式(7)によって、操舵角φが求まる。
φ = tan -1 (bx κ / (1 - by κ)) ・・・式(7)
【0060】
(効果)
ガイドレスで無人走行するフォークリフトを実現するには、仮想的に走行ラインを引くこと、すなわち軌道生成が必要である。代表的な軌道生成の方法として、クロソイド曲線を用いた方法や、B-スプライン曲線を用いた方法が挙げられる。またフォークリフトの特徴として、操舵速度の上限が低いことが挙げられる。これはパワーステアリングであるため、ハンドルを高速に回せないためである。そして軌道生成にクロソイド曲線を用いる場合には、クロソイド点の座標は初等関数で表すことは不可能であるため、数値積分が必要となる。すると制御周期内で軌道データを生成することが困難な場合がある。また軌道生成にB-スプライン曲線を用いる場合には、曲線軌道の始点と終点近くでの曲率変化が大きくなってしまう傾向がある。そのため、曲率変化がフォークリフトの操舵速度の上限を越えてしまい、フォークリフトが曲線軌道を追従することが困難となる場合がある。
【0061】
本実施形態の軌道生成装置40は、スタート位置Oとゴール位置Pとを接続する第1の二等辺三角形および第2の二等辺三角形に曲線軌道を当てはめることで、軌道を生成する。これにより、第1の効果として、二次方程式の求解および座標変換という代数計算のみで軌道の設計が可能になる。クロソイド曲線などの数値積分が必要な曲線を用いる場合に比して、短時間で曲線軌道を計算できる。制御周期内で軌道データを生成することが可能になる。また、第2の効果として、曲線軌道の始点と終点近くでの曲率変化が小さい軌道を生成することができる。すなわち、スタート位置Oおよびゴール位置Pで、曲率・傾きともにゼロである曲線軌道を生成することができる。これは、図5に示すように、スタート向きA1方向に伸びる延長線(x軸)と第1の二等辺三角形IT1の等辺ES11とが重なるとともに、ゴール向きA2の反対方向に伸びる延長線上に第2の二等辺三角形IT2の等辺ES22が重なるように、二等辺三角形を配置するためである。これにより、B-スプライン曲線で作成した軌道に比して、操舵速度の上限が低いフォークリフトに適した軌道を生成することができる。
【0062】
本実施形態の軌道生成装置40は、式(1)および(2)で表されるパラメトリック方程式を用いている。式(1)および(2)を用いる効果を説明する。S310では、曲線の傾きを元にしてパラメータtの値を決定している。このとき、二次方程式を解くことでパラメータtを求める。そして、式(1)の5次式および式(2)の3次式は、微分するとパラメータtのt4とt2のみを含んだ式となるため、「t2」を変数としてみることで2次方程式に容易に帰着することができる。すなわち式(1)および(2)を用いることで、代数計算が実用的に可能になる。なお、3次式のパラメトリック方程式は代数計算での計算が可能であるが、式(1)の5次式に比して利用できる範囲が狭く、直角に曲がる時に利用できない。よって式(1)の5次式は、適用範囲が広く、かつ計算が容易であるという特徴を備えた式であることが分かる。
【0063】
以上、本明細書が開示する技術の実施例について詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
【0064】
(変形例)
S60において、エラーにする代わりに、進行速度を前後に切りかえる切り返し軌道を生成してもよい。すなわち、切り返し点を適当に与え、切り返し点まで本アルゴリズムで前進用の軌道を生成してもよい。さらに切り返し点からゴール位置Pまで、本アルゴリズムで後退用の軌道を生成してもよい。
【0065】
本実施例では、測域センサ26として1次元走査型の測域センサを用いたが、各種のセンサを用いてもよい。例えば測域センサ26は、2D LiDAR、3D LiDAR、ステレオカメラ、単眼カメラ、距離画像センサなどでもよい。自己位置推定部38は、衛星測位を用いる手段によって自己位置を推定してもよい。
【0066】
式(1)および(2)は、パラメトリック曲線の一例である。本実施例の技術では、様々なタイプのパラメトリック曲線を使用することが可能である。
【0067】
S280において、二等辺三角形の選択方法は様々な態様であってよい。例えば、曲率変化の最大値が小さい方の二等辺三角形を選択してもよい。
【0068】
本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【0069】
スタート向きA1は、スタート位置進行方向の一例である。ゴール向きA2は、ゴール位置進行方向の一例である。操舵計画部41は、計画部の一例である。S点は、第1の二等辺三角形の等辺に挟まれた第3頂点の一例である。Q点は、第2の二等辺三角形の等辺に挟まれた第3頂点の一例である。
【符号の説明】
【0070】
10:フォークリフト、40:軌道生成装置、41:操舵計画部、43:曲線軌道当てはめ部、A1:スタート向き、A2:ゴール向き、IT1:第1の二等辺三角形、IT2:第2の二等辺三角形、O:スタート位置、P:ゴール位置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15