<第1実施形態>
以下、本発明の第1実施形態について、図面を参照しながら説明する。
図1は、本実施形態に係る無人搬送車1及びその駆動操舵装置3の構成を示す斜視図である。
無人搬送車1は、台車2と、この台車2に取り付けられ、床面Fに予め配設された線状の誘導ラインLに沿って台車2を走行させる駆動操舵装置3と、を組み合わせて構成される。
台車2は、長方形の板状である荷台部21と、この荷台部21の床面F側の四隅に設けられたキャスタ22と、荷台部21のうち短辺縁部24RRに立設された枠状のハンドル23と、を備える。なお以下では、説明の便宜上、荷台部21のうちハンドル23が設けられている短辺縁部24RR側を台車2の後方側といい、ハンドル23が設けられていない短辺縁部24FF側を台車2の前方側という。なおこれら台車2の前方及び後方の定義は説明の便宜上のものであり、台車2の進行方向をこの向きに限定するものではない。また以下では、荷台部21に搬送対象物(図示せず)を搭載し、この無人搬送車1単独で自走させる場合について説明するが、本発明はこれに限らない。無人搬送車1は、例えば搬送対象物が搭載されたパレット(図示せず)と台車2とを連結することにより、パレットの牽引車として用いることもできる。
駆動操舵装置3は、回転駆動及び操舵の両方が可能な駆動操舵輪である前輪41Fを備える前輪駆動ユニット4Fと、回転駆動及び操舵の両方が可能な駆動操舵輪である後輪41Rを備える後輪駆動ユニット4Rと、荷台部21の床面Fに対する位置及び姿勢を検出するための前側センサ5F及び後側センサ5Rと、各駆動ユニット4F,4Rに電力を供給するバッテリBと、各センサ5F,5Rの検出信号を用いて各駆動ユニット4F,4Rを制御する制御装置6と、を備える。
前輪駆動ユニット4Fは、荷台部21の床面F側のうち前方側、より具体的には短辺縁部24FF側でありかつ長辺縁部25L寄りの位置に取り付けられる。前輪駆動ユニット4Fは、床面Fに接する前輪41Fと、制御装置6から送信される後述の前輪速度指令信号及び前輪操舵角指令信号に応じて前輪41Fを駆動操舵する駆動部42Fと、を備える。駆動部42Fは、前輪速度指令信号及び前輪操舵角指令信号が入力されると、これら指令が実現されるように、前輪41Fを回転駆動したり、前輪41Fを荷台部21に対し垂直な前輪操舵軸43Fを中心として操舵駆動したりする。なお以下では、前輪41Fの回転速度を前輪速度ともいい、前輪41Fの前輪操舵軸43F周りでの角度を前輪操舵角ともいう。
また前輪駆動ユニット4Fには、前輪速度を検出し、検出値に応じた前輪速度検出信号を制御装置6に送信する前輪速度センサ46F(後述の図3参照)や、前輪操舵角を検出し、検出値に応じた前輪操舵角検出信号を制御装置6に送信する前輪操舵角センサ47F(後述の図3参照)とが設けられている。
後輪駆動ユニット4Rは、荷台部21の床面F側のうち前輪駆動ユニット4Fよりも後方側、より具体的には短辺縁部24RR側でありかつ長辺縁部25R寄りの位置に取り付けられる。後輪駆動ユニット4Rは、床面Fに接する後輪41Rと、制御装置6から送信される後述の後輪速度指令信号及び後輪操舵角指令信号に応じて後輪41Rを駆動操舵する駆動部42Rと、を備える。駆動部42Rは、後輪速度指令信号及び後輪操舵角指令信号が入力されると、これら指令が実現されるように、後輪41Rを回転駆動したり、後輪41Rを荷台部21に対し垂直な後輪操舵軸43Rを中心として操舵駆動したりする。なお以下では、後輪41Rの回転速度を後輪速度ともいい、後輪41Rの後輪操舵軸43R周りでの角度を後輪操舵角ともいう。
また後輪駆動ユニット4Rには、後輪速度を検出し、検出値に応じた後輪速度検出信号を制御装置6に送信する後輪速度センサ46R(後述の図3参照)や、後輪操舵角を検出し、検出値に応じた後輪操舵角検出信号を制御装置6に送信する後輪操舵角センサ47R(後述の図3参照)とが設けられている。
前側センサ5Fは、荷台部21の床面F側のうち前方側に取り付けられる。より具体的には、前側センサ5Fは、平面視では後述の主軸OAGV上であって中心点PAGVよりも前方側に設けられる(後述の図2参照)。前側センサ5Fには、例えば、床面Fを撮影するカメラが用いられる。前側センサ5Fは、床面Fのうち誘導ラインLを含む画像を撮影し、画像信号を制御装置6へ送信する。
後側センサ5Rは、荷台部21の床面F側のうち、前側センサ5Fよりも後方側に取り付けられる。より具体的には、後側センサ5Rは、平面視では後述の主軸OAGV上であって中心点PAGVよりも後方側に設けられる(後述の図2参照)。後側センサ5Rには、例えば、床面Fを撮影するカメラが用いられる。後側センサ5Rは、床面Fのうち誘導ラインLを含む画像を撮影し、画像信号を制御装置6へ送信する。荷台部21の誘導ラインLに対する位置及び姿勢は、これら前側センサ5F及び後側センサ5Rによって得られた画像信号に基づく後述のずれ検出器61における演算によって特定される。
バッテリBは、例えば、荷台部21のうちハンドル23側に取り付けられる。また制御装置6は、例えば、台車2のうちハンドル23に取り付けられる。
次に、図2の台車2の平面図を参照しながら、台車2の位置及び姿勢を把握するために制御装置6において規定される各種パラメータ及び座標系の定義について説明する。
上述のように、前輪41Fの前輪操舵軸43F及び後輪41Rの後輪操舵軸43Rは、台車2の荷台部21に対し平面視で対角状に設けられる。以下では、前輪操舵軸43F及び後輪操舵軸43Rを通過する軸を取付軸OPWSという。またこの取付軸OPWS上であって、前輪操舵軸43Fと後輪操舵軸43Rとの間の中間点を台車2の中心点PAGVという。また以下では、前輪操舵軸43Fと後輪操舵軸43Rとの間の取付軸OPWSに沿った距離を前後輪距離HAGVという。
また以下では、荷台部21の長辺縁部25L,25Rと平行でありかつ中心点PAGVを通過する軸を台車2の主軸OAGVという。また以下では、取付軸OPWSと主軸OAGVとの成す角を取付角φAGVという。
前輪41Fは、荷台部21に対し平行な前輪回転軸45Fを中心軸として回転自在に設けられている。以下では、前輪41Fの前輪回転軸45F周りでの回転速度を前輪速度vFという。この前輪速度vFは、前輪駆動ユニット4Fに設けられている前輪速度センサ46F(図3参照)によって検出される。
また前輪41Fは、荷台部21に対し垂直な前輪操舵軸43Fを中心として回転自在に設けられている。以下では、前輪41Fの進行方向と主軸OAGVとの成す角を前輪操舵角ΔθFという。この前輪操舵角ΔθFは、前輪駆動ユニット4Fに設けられている前輪操舵角センサ47F(後述の図3参照)によって検出される。また以下では、前輪41Fの進行方向と取付軸OPWSとの成す角、すなわち前輪操舵角ΔθFから取付角φAGVを減じて得られる角も前輪操舵角ρFという。
後輪41Rは、荷台部21に対し平行な後輪回転軸45Rを中心軸として回転自在に設けられている。以下では、後輪41Rの後輪回転軸45R周りでの回転速度を後輪速度vRという。この後輪速度vRは、後輪駆動ユニット4Rに設けられている後輪速度センサ46R(図3参照)によって検出される。
また後輪41Rは、荷台部21に対し垂直な後輪操舵軸43Rを中心として回転自在に設けられている。以下では、後輪41Rの進行方向と主軸OAGVとの成す角を後輪操舵角ΔθRという。この後輪操舵角ΔθRは、後輪駆動ユニット4Rに設けられている後輪操舵角センサ47R(後述の図3参照)によって検出される。また以下では、後輪41Rの進行方向と取付軸OPWSとの成す角、すなわち後輪操舵角ΔθRから取付角φAGVを減じて得られる角も後輪操舵角ρRという。
また制御装置6では、台車2の中心点PAGVの位置を、主軸座標系(図2中、実線矢印参照)と取付軸座標系(図2中、破線矢印参照)との2つのデカルト座標系で把握する。
主軸座標系とは、そのX軸と主軸OAGVとが平行になり、かつ主軸OAGVの前輪41F側をX軸の正側とした座標系である。以下では、主軸座標系における中心点PAGVの位置ベクトルを、PAGV
AGV=[xAGV
AGV,yAGV
AGV]と表記する。
取付軸座標系とは、そのX軸と取付軸OPWSとが平行になり、かつ取付軸OPWSの前輪41F側をX軸の正側とした座標系である。以下では、取付軸座標系における中心点PAGVの位置ベクトルを、PAGV
PWS=[xAGV
PWS,yAGV
PWS]と表記する。なお、主軸座標系の位置ベクトルと取付軸座標系の位置ベクトルとは、後述の式(8-1)に示す変換行列によって相互に変換可能である。
また制御装置6では、台車2の姿勢を、その主軸OAGVと所定の基準軸OBSとの成す角である車体角ψによって把握する。本実施形態では、この基準軸OBSは、後に図4を参照して説明するように誘導ラインLの基準接線OLとするが、本発明はこれに限るものではない。
図3は、制御装置6の制御回路の構成を示す図である。制御装置6は、台車2の位置及び姿勢のずれを検出するずれ検出器61と、ずれ検出器61によって検出されるずれが無くなるように前輪駆動ユニット4F及び後輪駆動ユニット4Rを制御する駆動操舵制御部62と、を備える。
ずれ検出器61は、台車2に設けられた前側センサ5F及び後側センサ5Rから送信される画像信号と、外部位置指令信号と、外部姿勢指令信号と、に基づいて以下で説明する位置・姿勢ずれ検出制御を行うことにより、位置誤差信号及び姿勢ずれ信号を生成し、駆動操舵制御部62へ送信する。
図4は、台車2の平面図であり、ずれ検出器61における位置・姿勢ずれ検出制御の手順を説明するための図である。なお図4には、床面Fに配設された誘導ラインLと、台車2のうち、台車2の床面Fに対する位置を特定する際の基準となる中心点PAGVと、台車2の床面Fに対する姿勢を特定する際の基準となる主軸OAGVとを図示する。
先ず、ずれ検出器61では、前側センサ5F及び後側センサ5Rから送信される画像信号に基づいて、誘導ラインLの位置及び形状に関する情報を取得する。次にずれ検出器61では、取得した情報に基づいて、主軸座標系における中心点PAGVの位置と、中心点PAGVを通過しかつ主軸OAGVに対し垂直な線と誘導ラインLとの交点である基準点PLの位置とを算出する。なお以下では、主軸座標系の原点の位置を基準点PLに設定する。これにより、台車2の中心点PAGVの位置は、基準点PLから中心点PAGVまでの距離yAGV
AGVで表される。以下では、中心点PAGVと基準点PLとの間の距離を台車2の検出走行位置yAGV
AGVという。またずれ検出器61では、取得した情報に基づいて、誘導ラインLの基準点PLにおける接線である基準接線OLの向きを算出し、さらに主軸OAGVと基準接線OLとの成す角ψを算出する。以下では、主軸OAGVと基準接線OLとの成す角を検出車体角ψという。
ずれ検出器61では、図示しない無線通信手段を利用することにより、上記検出走行位置yAGV
AGVに対する指令値に相当する位置指令値y*に応じた外部位置指令信号と、上記検出車体角ψに対する指令値に相当する姿勢指令値ψ*に応じた外部姿勢指令信号と、を取得する。次にずれ検出器61では、位置指令値y*から検出走行位置yAGV
AGVを減算することによって走行誤差Δy(=y*-yAGV
AGV)を算出し、さらに姿勢指令値ψ*から検出姿勢ψを減算することによって姿勢誤差Δψを算出するとともに、走行誤差Δyに応じた位置誤差信号と姿勢誤差Δψに応じた姿勢ずれ信号とを駆動操舵制御部62へ出力する。
以上のように、制御装置6では、外部位置指令信号及び外部姿勢指令信号を用いることにより、台車2の中心点PAGVと誘導ラインLとの間の距離や、台車2の主軸OAGVの誘導ラインLの接線に対する角度を自由に指定することができる。すなわち、台車2を、その中心点PAGVが誘導ラインLの直上をトレースするように走行させたい場合には、外部位置指令信号の位置指令値y*を0とすればよく、台車2を、その主軸OAGVが誘導ラインLの接線と常に平行になるように走行させたい場合には、外部姿勢指令信号の姿勢指令値ψ*を0とすればよい。
図3に戻り、駆動操舵制御部62は、ずれ検出器61によって検出された走行誤差Δy及び姿勢誤差Δψと、台車2の速度に対する指令値v*に応じた外部速度指令信号と、各駆動ユニット4F,4Rに設けられた操舵角センサ47F,47Rによって検出された両輪の操舵角ΔθF,ΔθRと、に基づいて、以下で説明する駆動操舵制御を実行することにより、走行誤差Δy及び姿勢誤差Δψが0になりかつ指令値v*が実現されるように、前輪速度vFに対する指令値vF
*に応じた前輪速度指令信号と、後輪速度vRに対する指令値vR
*に応じた後輪速度指令信号と、前輪操舵角ΔθFに対する指令値ΔθF
*に応じた前輪操舵角指令信号と、後輪操舵角ΔθRに対する指令値ΔθR
*に応じた後輪操舵角指令信号と、を生成し、これら指令信号を各駆動ユニット4F,4Rに入力する。
以下では駆動操舵制御部62における駆動操舵制御の具体的な手順を説明する前に、台車2に対し成立する運動方程式について、図5を参照しながら説明する。
先ず、前輪41F及び後輪41Rは、台車2に対し前輪操舵軸43F及び後輪操舵軸43Rに固定されているため、前後輪距離H
AGVは常に一定である。このため、図5に示すように、台車2の取付軸O
PWSに沿った微小移動距離dlと、前輪41Fの微小移動距離dl
Fと、後輪41Rの微小移動距離dl
Rと、の間には下記式(3)が成立する。なお、図5では、理解を容易にするため、微小移動距離dlを誇張して図示する。
また前輪41F及び後輪41Rがそれぞれ空転せずに移動する場合、両輪41F,41Rはそれぞれ仮想的な旋回中心点R
AGVを中心とした円周上を移動する。またこの旋回中心点R
AGVの位置は、図5に示すように、荷台部21の中心点P
AGVの位置と、前輪操舵角ρ
Fと、後輪操舵角ρ
Rと、によって定まる。また後輪41Rと旋回中心点R
AGVとの間の距離である後輪旋回半径R
R及び前輪41Fと旋回中心点R
AGVとの間の距離である前輪旋回半径R
Fは、それぞれ各操舵角ρ
F,ρ
Rを用いて下記式(4-1)及び(4-2)のように算出される。
また上記前輪旋回半径R
F及び微小移動距離dl
Fを用いると、荷台部21の車体角ψの微小変化量dψに対し、下記式(5-1)及び(5-2)が導出される。したがって下記式(5-2)が台車2の車体角ψに対する運動方程式となる。
図5に示すように、取付軸座標系における前輪41Fの位置ベクトルP
F
PWSの微小変化量dP
F
PWS及び後輪41Rの位置ベクトルP
R
PWSの微小変化量dP
R
PWSは、それぞれ下記式(6-1)及び(6-2)のようになる。
従って、前輪41Fと後輪41Rの中間点である荷台部21の中心点P
AGVの取付軸座標系における位置ベクトルP
AGV
PWSの微小変化量dP
AGV
PWSに対し、下記式(7-1)及び(7-2)が導出される。したがって下記式(7-2)が、取付軸座標系における位置ベクトルP
AGV
PWS=[x
AGV
PWS,y
AGV
PWS]の運動方程式となる。
なお、上記式(7-2)に示す運動方程式は、取付軸を基準とした取付軸座標系における位置ベクトルP
AGV
PWSに対する運動方程式である。従って主軸座標系における位置ベクトルP
AGV
AGV=[x
AGV
AGV,y
AGV
AGV]に対する運動方程式は、式(7-2)に対し、下記式(8-1)に示す変換行列Q
AGVを乗算することにより、下記式(8-2)のように導出される。
次に、3つのパラメータ(α,β,γ)を導入することにより、上記式(5-2)及び(8-2)に示す台車2の位置及び姿勢に対する運動方程式を、下記式(9-1)及び(9-2)に示すように書き換える。
ここでパラメータγは、上記式(9-1)より、下記式(10)に示すように表される。
また上記式(9-1)及び(9-2)より、前輪操舵角Δθ
F及び後輪操舵角Δθ
Rは、パラメータ(α,β,γ)を用いて下記式(11-1)及び(11-2)のように表すことができる。これはすなわち、パラメータαを走行誤差Δyを入力としたフィードバックコントローラの出力とし、パラメータβを姿勢誤差Δψを入力としたフィードバックコントローラの出力とした場合、これらフィードバックコントローラの出力であるパラメータα,βに基づいて下記式(11-1)及び(11-2)に示す非干渉化演算によって前輪操舵角Δθ
F及び後輪操舵角Δθ
Rを決定すると、走行誤差Δyと姿勢誤差Δψとをそれぞれ独立して制御できることを意味する。
次に、図6のブロック図を参照しながら、駆動操舵制御部62において前輪速度指令信号、後輪速度指令信号、前輪操舵角指令信号、及び後輪操舵角指令信号を生成する具体的な手順を説明する。
駆動操舵制御部62は、上記式(10)によって定義される角度パラメータγの値を算出する角度パラメータ演算部63と、台車2の取付軸OPWSに沿った微小移動距離dlの値を算出する微小移動距離演算部64と、前輪速度指令値vF
*及び後輪速度指令値vR
*を算出する速度制御部65と、前輪操舵角指令値ΔθF
*及び後輪操舵角指令値ΔθR
*を算出する操舵角制御部66と、を備える。
角度パラメータ演算部63は、予め定められた取付角φAGVと、前輪操舵角センサ47Fによって検出された前輪操舵角ΔθFと、後輪操舵角センサ47Rによって検出された後輪操舵角ΔθRと、を用いて、上記式(10)に示す演算を行うことによって角度パラメータγの値を算出する。
速度制御部65は、外部速度指令値v*と、角度パラメータ演算部63によって算出された角度パラメータγの値と、前輪操舵角センサ47Fによって検出された前輪操舵角ΔθFと、後輪操舵角センサ47Rによって検出された後輪操舵角ΔθRと、を用いることにより、前輪41Fの取付軸OPWSに沿った微小移動距離dlFcosρFと、後輪41Rの取付軸OPWSに沿った微小移動距離dlRcosρRと、が等しくなるように、すなわち上記式(3)が成立するように、前輪速度指令値vF
*及び後輪速度指令値vR
*を算出する。また速度制御部65は、算出した前輪速度指令値vF
*に応じた前輪速度指令信号及び後輪速度指令値vR
*に応じた後輪速度指令信号を生成し、これら指令信号を各駆動ユニット4F,4Rへ入力する。
より具体的には、速度制御部65では、外部速度指令値v
*と、角度パラメータγと、検出された操舵角ρ
F,ρ
Rと、に基づいて下記式(12)に示す演算を行うことによって前輪速度指令値v
F
*及び後輪速度指令値v
R
*を算出する。
微小移動距離演算部64は、角度パラメータ演算部63によって算出された角度パラメータγの値と、外部速度指令値v
*と、に基づいて、微小時間dtにわたる台車2の中心点P
AGVの取付軸O
PWSに沿った微小移動距離dlの値を算出する。より具体的には、微小移動距離演算部64は、下記式(13)に従って演算を行うことにより、微小移動距離dlの値を算出する。
操舵角制御部66は、微小移動距離演算部64によって算出された微小移動距離dlの値と、ずれ検出器61によって検出された走行誤差Δy及び姿勢誤差Δψと、を用いることにより、走行誤差Δy及び姿勢誤差Δψが何れも0になるように、前輪操舵角指令値ΔθF
*及び後輪操舵角指令値ΔθR
*を算出する。また操舵角制御部66は、算出した前輪操舵角指令値ΔθF
*及び後輪操舵角指令値ΔθR
*に応じた前輪操舵角指令信号及び後輪操舵角指令信号を生成し、これら指令信号を各駆動ユニット4F,4Rへ入力する。
より具体的には、操舵角制御部66は、走行誤差フィードバックコントローラ661と、姿勢誤差フィードバックコントローラ662と、非干渉コントローラ663と、を備え、これらを用いることによって走行誤差Δy及び姿勢誤差Δψが何れも0になるような指令値ΔθF
*,ΔθR
*を算出する。
走行誤差フィードバックコントローラ661は、ずれ検出器61によって検出された走行誤差Δyに基づいて既知のフィードバック制御則に従った演算を行うことにより、走行誤差Δyを0にするような第1制御入力αを生成し、この第1制御入力αを非干渉コントローラ663に入力する。
より具体的には、走行誤差フィードバックコントローラ661は、下記式(14)に示すように、微小移動距離演算部64によって算出された微小移動距離dlを変数としたPID制御則に従って第1制御入力αを生成する。ここで下記式(14)において、係数K
Py,K
Dy,K
Iyは、PID制御係数である。
姿勢誤差フィードバックコントローラ662は、ずれ検出器61によって検出された姿勢誤差Δψに基づいて既知のフィードバック制御則に従った演算を行うことにより、姿勢誤差Δψを0にするような第2制御入力βを生成し、この第2制御入力βを非干渉コントローラ663に入力する。
より具体的には、姿勢誤差フィードバックコントローラ662は、下記式(15)に示すように、微小移動距離演算部64によって算出された微小移動距離dlを変数としたPID制御則に従って第2制御入力βを生成する。ここで下記式(15)において、係数K
Pψ,K
Dψ,K
Iψは、PID制御係数である。
非干渉コントローラ663は、走行誤差Δyと姿勢誤差Δψとが干渉しないように、第1制御入力αと、第2制御入力βと、予め定められた取付角φ
AGVと、角度パラメータ演算部63によって算出された角度パラメータγの値と、に基づいて、前輪操舵角指令値Δθ
F
*及び後輪操舵角指令値Δθ
R
*を算出する。より具体的には、非干渉コントローラ663は、上記式(11-1)及び(11-2)を用いて導出される下記式(16-1)及び(16-2)に従って演算を行うことによって、前輪操舵角指令値Δθ
F
*及び後輪操舵角指令値Δθ
R
*を算出する。
ところで、利用者による利便性を考慮すると、走行誤差Δy及び姿勢誤差Δψが何れも0である場合、各フィードバックコントローラ661,662の出力である制御入力α,βは何れも0となり、さらに非干渉コントローラ663によって算出される前輪操舵角指令値Δθ
F
*及び後輪操舵角指令値Δθ
R
*は、所定の基準軸(例えば、台車2の主軸O
AGV)に対し平行になっていることが好ましい。そこで非干渉コントローラ663は、上記式(16-1)及び(16-2)の代わりに、下記式(17-1)及び(17-2)に従って前輪操舵角指令値Δθ
F
*及び後輪操舵角指令値Δθ
R
*を算出してもよい。
上記式(17-1)及び(17-2)において、α
0は、上記式(9-1)及び(9-2)における積分定数であり、取付角φ
AGV及び角度パラメータγを用いて下記式(18-1)によって表される。これにより、上記式(17-1)及び(17-2)は、下記式(18-2)及び(18-3)で書き換えられる。非干渉コントローラ663では、下記式(18-2)及び(18-3)に従って前輪操舵角指令値Δθ
F
*及び後輪操舵角指令値Δθ
R
*を算出することにより、フィードバックコントローラ661,662の制御入力α,βが0であるときには、前輪41F及び後輪41Rを主軸O
AGVと平行にすることができる。
図7は、以上のような制御装置6による台車2の制御結果の一例を示す図である。より具体的には、図7には、外部位置指令信号及び外部姿勢指令信号に従って走行させていた状態(Δy=Δψ=0)から、時刻t1において位置指令値y*をステップ状に変化させ、さらにその後時刻t2において姿勢指令値ψ*をステップ状に変化させた場合における検出走行位置yAGV
AGV及び検出姿勢ψの時間変化を示す図である。
図7に示すように、時刻t1において位置指令値y*をステップ状に変化させると、ずれ検出器61は検出走行位置yAGV
AGVと位置指令値y*とのずれである走行誤差Δyを検出し、操舵角制御部66は、検出した走行誤差Δyが0になるように前輪操舵角指令値ΔθF
*及び後輪操舵角指令値ΔθR
*を算出する。これにより検出走行位置yAGV
AGVは、位置指令値y*に追従するように速やかに変化する。
その後時刻t2において姿勢指令値ψ*をステップ状に変化させると、ずれ検出器61は、検出姿勢ψと姿勢指令値ψ*とのずれである姿勢誤差Δψを検出し、操舵角制御部66は、検出した姿勢誤差Δψが0になるように前輪操舵角指令値ΔθF
*及び後輪操舵角指令値ΔθR
*を算出する。これにより検出姿勢ψは、姿勢指令値ψ*に追従するように速やかに変化する。
ここで図7に示すように、時刻t1において位置指令値y*がステップ状に変化しても、検出姿勢ψはほとんど変化しない。また時刻t2において姿勢指令値ψ*がステップ状に変化しても、検出走行位置yAGV
AGVはほとんど変化しない。したがって本実施形態に係る操舵角制御部66によれば、走行誤差フィードバックコントローラ661、姿勢誤差フィードバックコントローラ662、及び非干渉コントローラ663を用いることにより、走行誤差Δyと姿勢誤差Δψとを独立して制御できることが明らかとなった。
本実施形態に係る無人搬送車1の駆動操舵装置3によれば、以下の効果を奏する。
(1)駆動操舵装置3は、外部速度指令信号(v*)と外部位置指令信号(y*)と外部姿勢指令信号(ψ*)との3つを外部指令として、ずれ検出器61と駆動操舵制御部62とによって、これら外部指令に基づいて、前輪41Fに対する前輪速度指令信号(vF
*)及び前輪操舵角指令信号(ΔθF
*)並びに後輪41Rに対する後輪速度指令信号(vR
*)及び後輪操舵角指令信号(ΔθR
*)を生成する。特にずれ検出器61では、荷台部21の検出走行位置yAGV
AGVと外部位置指令値y*との間の走行誤差Δyと荷台部21の検出姿勢ψと外部姿勢指令値ψ*との間の姿勢誤差Δψとを検出し、駆動操舵制御部62では、ずれ検出器61によって検出される走行誤差Δy及び姿勢誤差Δψが無くなるように前輪41F及び後輪41Rに対する前輪及び後輪操舵角指令信号(ΔθF
*,ΔθR
*)を生成する。これにより、荷台部21を外部姿勢指令信号(ψ*)に応じた姿勢にて、外部位置指令信号(y*)に応じた経路に沿って、外部速度指令信号(v*)に応じた速度で走行させることができる。すなわち駆動操舵装置3によれば、台車2を外部姿勢指令信号に応じた様々な姿勢で変化させながら指定された経路を指定された速度で走行させることができるので、従来のように旋回中心の位置を限定していた場合よりも自由度の高い走行を実現できる。
(2)何ら拘束条件を設けないまま前輪41F及び後輪41Rの操舵角を独立して変化させると、荷台部21の位置及び姿勢の両方が変化する。そこで駆動操舵装置3では、走行誤差フィードバックコントローラ661によって走行誤差Δyに応じた第1制御入力αを生成し、姿勢誤差フィードバックコントローラ662によって姿勢誤差Δψに応じた第2制御入力βを生成し、さらに非干渉コントローラ663によってこれら走行誤差Δyと姿勢誤差Δψとが干渉しないように第1及び第2制御入力α,βに基づいて前輪及び後輪操舵角指令信号(ΔθF
*,ΔθR
*)を生成する。これにより駆動操舵装置3によれば、走行誤差Δyと姿勢誤差Δψとを独立して制御できるので、自由度の高い走行を滑らかに実現できる。
(3)非干渉コントローラ663は、第1及び第2制御入力α,βがともに0であるとき、すなわち走行誤差Δy及び姿勢誤差Δψが無い場合には、前輪操舵角指令値ΔθF
*及び後輪操舵角指令値ΔθR
*がともに基準軸に対し平行になるように前輪及び後輪操舵角指令信号を生成する。これにより、走行誤差Δy及び姿勢誤差Δψが無い場合には、前輪41F及び後輪41Rの向きを所定の基準軸で揃えることができるので、利便性を向上できる。
(4)駆動操舵装置3では、前輪及び後輪駆動ユニット4F,4Rを、前輪41F及び後輪41Rの取付軸OPWSと荷台部21の主軸OAGVとが中心点PAGVにおいて取付角φAGVで傾斜するように荷台部21に取り付ける。これにより、前輪41F及び後輪41Rが床面Fに設けられた誘導ラインLを踏まないように台車2を走行させることができる。またこのように台車2の基本的な進行方向と平行な主軸OAGVと上記基準軸とを平行とすることにより、走行誤差Δy及び姿勢誤差Δψが無い場合には、前輪41F及び後輪41Rの向きをこの基本的な進行方向と平行に揃えることができるので、利便性をさらに向上できる。
(5)非干渉コントローラ663では、上記式(18-2)及び(18-3)に従って前輪操舵角指令値ΔθF
*及び後輪操舵角指令値ΔθF
*を算出する。これにより、走行誤差Δyと姿勢誤差Δψとを独立して制御でき、さらに走行誤差Δy及び姿勢誤差Δψが無い場合には前輪41F及び後輪41Rの向きを基本的な進行方向である主軸OAGVと平行に揃えることができる。またこれにより、利便性をさらに向上できる。
(6)微小移動距離演算部64では、前輪及び後輪操舵角検出信号(ΔθF,ΔθR)に基づいて取付軸OPWSに沿った微小移動距離dlを算出する。また走行誤差及び姿勢誤差フィードバックコントローラ661,662は、この微小移動距離dlを変数としたフィードバック制御則に従って、第1及び第2制御入力α,βを生成する。これにより、距離に対する応答を一定にできる。換言すれば、台車2をその速度によらず一定の経路に沿って走行させることができる。
(7)前輪及び後輪駆動ユニット4F,4Rは荷台部21に取り付けられているため、前輪41Fと後輪41Rとの間の取付軸OPWSに沿った距離HAVGは、常に一定である。そこで速度制御部65は、前輪41Fの取付軸OPWSに沿った微小移動距離dlFcosρFと後輪41Rの取付軸OPWSに沿った微小移動距離dlRcosρRとが等しくなるように、換言すれば前輪41Fの速度ベクトルの取付軸OPWSに沿った成分と、後輪41Rの速度ベクトルの取付軸OPWSに沿った成分とが等しくなるように、前輪及び後輪速度指令信号(vF
*,vR
*)を生成することにより、前輪41F又は後輪41Rが空転したり、両輪の間で無理な力が作用したりするのを防止できる。よって駆動操舵装置3によれば、従来のように旋回中心の位置を限定していた場合よりも自由度の高い走行を実現しつつも、電力の無駄な消費を抑制できる。
<第2実施形態>
次に、本発明の第2実施形態に係る無人搬送車の駆動操舵装置について、図面を参照しながら説明する。なお以下では、第1実施形態に係る駆動操舵装置と同じ構成については同じ符号を付し、その詳細な説明を省略する。
図8は、本実施形態に係る駆動操舵装置の制御装置6Aの構成を示す図である。本実施形態に係る制御装置6Aは、第1実施形態に係る制御装置6と駆動操舵制御の具体的な手順が異なる。
先ず、図9の台車2の平面図を参照しながら、台車2の位置及び姿勢を把握するために制御装置6Aにおいて規定される各種パラメータ及び座標系の定義について説明する。
本実施形態では、台車2の中心点PAGVが進行する方向を台車2の進行方向という。またこの進行方向と平行でありかつ中心点PAGVを通過する軸を進行軸OΔという。また以下では、進行軸OΔと取付軸OPWSとの成す角を進行角λという。
制御装置6Aでは、台車2の中心点PAGVの位置を、進行軸座標系(図9中、実線矢印参照)と取付軸座標系(図9中、破線矢印参照)との2つのデカルト座標系で把握する。
取付軸座標系とは、第1実施形態と同様に、そのX軸と取付軸OPWSとが平行になり、かつ取付軸OPWSの前輪41F側をX軸の正側とした座標系である。以下では、取付軸座標系における中心点PAGVの位置ベクトルを、PAGV
PWS=[xAGV
PWS,yAGV
PWS]と表記する。
進行軸座標系とは、そのX軸と台車2の進行軸O
Δと進行方向とが平行になり、かつ台車2の進行方向を正側とした座標系である。以下では、進行軸座標系における中心点P
AGVの位置ベクトルを、P
AGV
Δ=[x
AGV
Δ,y
AGV
Δ]と表記する。なお、取付軸座標系の位置ベクトルと進行軸座標系の位置ベクトルとは、下記式(19)に示す変換行列Q
Δによって相互に変換可能である。
従って、この変換行列Q
Δを用いると、取付軸座標系における位置ベクトルP
AGV
PWSに対する運動方程式(上記式(7-2)参照)は、進行軸座標系における位置ベクトルP
AGV
Δ=[x
AGV
Δ,y
AGV
Δ]に対する運動方程式として、下記式(20)に示すように導出できる。
また3つのパラメータ(α,β,γ)を導入することにより、上記式(5-2)及び(20)に示す台車2の位置及び姿勢に対する運動方程式は、下記式(21-1)及び(21-2)に示すように書き換えられる。
ここでパラメータγは、上記式(21-1)より、下記式(22)に示すように表される。
また上記式(21-1)及び(21-2)より、前輪操舵角Δθ
F及び後輪操舵角Δθ
Rは、パラメータ(α,β,γ)を用いて下記式(23-1)及び(23-2)のように表すことができる。これはすなわち、パラメータαを走行誤差Δyを入力としたフィードバックコントローラの出力とし、パラメータβを姿勢誤差Δψを入力としたフィードバックコントローラの出力とした場合、これらフィードバックコントローラの出力であるパラメータα,βに基づいて下記式(23-1)及び(23-2)に示す非干渉化演算によって前輪操舵角Δθ
F及び後輪操舵角Δθ
Rを決定すると、走行誤差Δyと姿勢誤差Δψとをそれぞれ独立して制御できることを意味する。
次に、図8のブロック図を参照しながら、駆動操舵制御部62Aにおいて前輪速度指令信号、後輪速度指令信号、前輪操舵角指令信号、及び後輪操舵角指令信号を生成する具体的な手順を説明する。
駆動操舵制御部62Aは、上記式(22)によって定義される角度パラメータγの値を算出する角度パラメータ演算部63Aと、台車2の取付軸OPWSに沿った微小移動距離dlの値を算出する微小移動距離演算部64Aと、進行角λの値を算出する進行角演算部67Aと、前輪速度指令値vF
*及び後輪速度指令値vR
*を算出する速度制御部65Aと、前輪操舵角指令値ΔθF
*及び後輪操舵角指令値ΔθR
*を算出する操舵角制御部66Aと、を備える。
進行角演算部67Aは、進行軸OAと取付軸O
PWSとの成す角である進行角λの値を算出する(図9参照)。より具体的には、進行角演算部67Aは、車体角ψ(基準軸O
BS(すなわち、誘導ラインLの基準接線O
L)と主軸O
AGVとの成す角)に対する指令値である姿勢指令値ψ
*と、主軸O
AGVと取付軸O
PWSとの成す角である取付角φ
AGVとを用いることにより、下記式(24)に従って進行角λの値を算出する。
角度パラメータ演算部63Aは、前輪操舵角センサ47Fによって検出された前輪操舵角ΔθFと、後輪操舵角センサ47Rによって検出された後輪操舵角ΔθRと、を用いて、上記式(22)に示す演算を行うことによって角度パラメータγの値を算出する。
速度制御部65Aは、外部速度指令値v*と、前輪操舵角センサ47Fによって検出された前輪操舵角ΔθFと、後輪操舵角センサ47Rによって検出された後輪操舵角ΔθRと、を用いることにより、前輪41Fの取付軸OPWSに沿った微小移動距離dlFcosρFと、後輪41Rの取付軸OPWSに沿った微小移動距離dlRcosρRと、が等しくなるように、すなわち上記式(3)が成立するように、前輪速度指令値vF
*及び後輪速度指令値vR
*を算出する。また速度制御部65は、算出した前輪速度指令値vF
*に応じた前輪速度指令信号及び後輪速度指令値vR
*に応じた後輪速度指令信号を生成し、これら指令信号を各駆動ユニット4F,4Rへ入力する。
より具体的には、速度制御部65Aでは、外部速度指令値v
*と、検出された操舵角ρ
F,ρ
Rと、に基づいて下記式(25)に示す演算を行うことによって前輪速度指令値v
F
*及び後輪速度指令値v
R
*を算出する。
微小移動距離演算部64Aは、角度パラメータ演算部63Aによって算出された角度パラメータγの値と、前輪操舵角センサ47Fによって検出された前輪操舵角Δθ
Fと、後輪操舵角センサ47Rによって検出された後輪操舵角Δθ
Rと、前輪速度センサ46Fによって検出された前輪速度v
Fと、後輪速度センサ46Rによって検出された後輪速度v
Rと、に基づいて、微小時間dtにわたる台車2の中心点P
AGVの取付軸O
PWSに沿った微小移動距離dlの値を算出する。より具体的には、微小移動距離演算部64Aは、下記式(26)に従って演算を行うことにより、微小移動距離dlの値を算出する。
操舵角制御部66Aは、微小移動距離演算部64Aによって算出された微小移動距離dlの値と、ずれ検出器61によって算出された走行誤差Δy及び姿勢誤差Δψと、を用いることにより、走行誤差Δy及び姿勢誤差Δψが何れも0になるように、前輪操舵角指令値ΔθF
*及び後輪操舵角指令値ΔθR
*を算出する。また操舵角制御部66は、算出した前輪操舵角指令値ΔθF
*及び後輪操舵角指令値ΔθR
*に応じた前輪操舵角指令信号及び後輪操舵角指令信号を生成し、これら指令信号を各駆動ユニット4F,4Rへ入力する。
より具体的には、操舵角制御部66Aは、走行誤差フィードバックコントローラ661Aと、姿勢誤差フィードバックコントローラ662Aと、非干渉コントローラ663Aと、を備え、これらを用いることによって走行誤差Δy及び姿勢誤差Δψが何れも0になるような指令値ΔθF
*,ΔθR
*を算出する。
走行誤差フィードバックコントローラ661Aは、ずれ検出器61によって検出された走行誤差Δyに基づいて既知のフィードバック制御則に従った演算を行うことにより、走行誤差Δyを0にするような第1制御入力αを生成し、この第1制御入力αを非干渉コントローラ663Aに入力する。
より具体的には、走行誤差フィードバックコントローラ661Aは、下記式(27)に示すように、微小移動距離演算部64Aによって算出された微小移動距離dlを変数としたPID制御則に従って第1制御入力αを生成する。ここで下記式(27)において、係数K
Py,K
Dy,K
Iyは、PID制御係数である。
姿勢誤差フィードバックコントローラ662Aは、ずれ検出器61によって検出された姿勢誤差Δψに基づいて既知のフィードバック制御則に従った演算を行うことにより、姿勢誤差Δψを0にするような第2制御入力βを生成し、この第2制御入力βを非干渉コントローラ663Aに入力する。
より具体的には、姿勢誤差フィードバックコントローラ662Aは、下記式(28)に示すように、微小移動距離演算部64Aによって算出された微小移動距離dlを変数としたPID制御則に従って第2制御入力βを生成する。ここで下記式(28)において、係数K
Pψ,K
Dψ,K
Iψは、PID制御係数である。
非干渉コントローラ663Aは、走行誤差Δyと姿勢誤差Δψとが干渉しないように、第1制御入力αと、第2制御入力βと、予め定められた取付角φ
AGVと、角度パラメータ演算部63Aによって算出された角度パラメータγの値と、進行角演算部67Aによって算出された進行角λの値と、に基づいて、前輪操舵角指令値Δθ
F
*及び後輪操舵角指令値Δθ
R
*を算出する。より具体的には、非干渉コントローラ663Aは、上記式(23-1)及び(23-2)を用いて導出される下記式(29-1)及び(29-2)に従って演算を行うことによって、前輪操舵角指令値Δθ
F
*及び後輪操舵角指令値Δθ
R
*を算出する。
ところで、利用者による利便性を考慮すると、走行誤差Δy及び姿勢誤差Δψが何れも0である場合、各フィードバックコントローラ661A,662Aの出力である制御入力α,βは何れも0となり、さらに非干渉コントローラ663Aによって算出される前輪操舵角指令値Δθ
F
*及び後輪操舵角指令値Δθ
R
*は、所定の基準軸(例えば、台車2の進行軸O
Δ)に対し平行になっていることが好ましい。そこで非干渉コントローラ663Aは、上記式(29-1)及び(29-2)の代わりに、下記式(30-1)及び(30-2)に従って前輪操舵角指令値Δθ
F
*及び後輪操舵角指令値Δθ
R
*を算出してもよい。
上記式(30-1)及び(30-2)において、α
0は、上記式(21-1)及び(21-2)における積分定数であり、進行角λ及び角度パラメータγを用いて下記式(31-1)によって表される。これにより、上記式(30-1)及び(30-2)は、下記式(31-2)及び(31-3)で書き換えられる。非干渉コントローラ663Aでは、下記式(31-2)及び(31-3)に従って前輪操舵角指令値Δθ
F
*及び後輪操舵角指令値Δθ
R
*を算出することにより、フィードバックコントローラ661A,662Aの制御入力α,βが0であるときには、前輪41F及び後輪41Rを進行軸O
Δと平行にすることができる。
なお上記式(31-2)及び(31-3)は、下記式(32-1)及び(32-2)によって定義される角度δ
F,δ
Rを用いて、下記式(32-3)及び(32-4)に示すように書き換えることもできる。
本実施形態に係る駆動操舵装置によれば、上記(1)~(7)の効果に加えて、以下の効果を奏する。
(8)駆動操舵装置では、荷台部21の進行軸OΔと上記基準軸とを平行とすることにより、走行誤差Δy及び姿勢誤差Δψが無い場合には、前輪41F及び後輪41Fの向きを荷台部21の進行軸OΔと平行に揃えることができるので、利便性をさらに向上できる。
(9)非干渉コントローラ663Aでは、上記式(31-2)及び(31-3)又は(32-3)及び(32-4)に従って前輪操舵角指令値ΔθF
*及び後輪操舵角指令値ΔθF
*を算出する。これにより、走行誤差Δyと姿勢誤差Δψとを独立して制御でき、さらに走行誤差Δy及び姿勢誤差Δψが無い場合には前輪41F及び後輪41Rの向きを台車2の進行軸OΔと平行に揃えることができるので、利便性をさらに向上できる。
以上、本発明の一実施形態について説明したが、本発明はこれに限らない。本発明の趣旨の範囲内で、細部の構成を適宜変更してもよい。