"駆動輪を有する移動体であって、現在の位置及び方向を取得する位置情報取得手段と、前記位置情報取得手段により取得された位置情報および移動体の軌道の情報を記憶する記憶手段と、制御手段と、を有し、前記制御手段は、距離偏差と角度偏差を求め、駆動輪の回転速度と距離偏差および角度偏差の時間変化との関係を算出する演算手段と、前記移動体の並進速度としてフィードフォワード値を与える設定手段と、を備え、前記距離偏差と、前記角度偏差と、前記距離偏差のゲインと同一のゲインを用いた距離偏差の時間変化と、を用いてフィードバック制御を行う、移動体。前記演算手段は、並進速度と旋回速度を、駆動輪の回転速度に変換する演算を行い、前記制御手段は、前記変換された駆動輪の回転速度の2乗平均が、あらかじめ設定された最大速度を超える場合には、2乗平均と最大車輪速度の比に応じて駆動輪の回転速度を減補された状態で駆動し、あらかじめ設定された最大速度を超えない場合には、前記変換された駆動輪の回転速度で駆動するよう制御する、請求項1に記載の移動体。しかしながら、移動体は、軌道に接近する場合に軌道にうまく乗ることができず、オーバーシュートや振動が発生することがある。また、移動体は、フィードバック制御により進行方向の速度が変化すると、進行方向の速度変化が滑らかでなくなる。さらに、移動体は、車輪に過大な速度が与えられた場合に、車輪の1つが回転速度のリミットで制限されると、軌道から外れてしまうことがある。本発明にかかる移動体は、このような問題点を解決するためになされたものであり、設定された軌道を適切に走行する移動体を提供する。本発明にかかる移動体は、駆動輪を有する移動体であって、現在の位置及び方向を取得する位置情報取得手段と、前記位置情報取得手段により取得された位置情報および移動体の軌道の情報を記憶する記憶手段と、制御手段と、を有し、前記制御手段は、距離偏差と角度偏差を求め、駆動輪の回転速度と距離偏差および角度偏差の時間変化との関係を算出する演算手段と、前記移動体の並進速度としてフィードフォワード値を与える設定手段と、を備え、前記距離偏差と、前記角度偏差と、前記距離偏差のゲインと同一のゲインを用いた距離偏差の時間変化と、を用いてフィードバック制御を行う。これにより、ゲインおよび速度の影響によって軌道をオーバーシュートさせることなく、移動体を滑らかに走行させることができる。移動体は、設定された軌道を適切に走行する。実施の形態1以下、図面を参照して本発明の実施の形態について説明する。図1は、本発明にかかる移動体のブロック図である。移動体10は、位置情報取得手段110と、記憶手段120と、駆動輪130と、制御手段140と、を備える。位置情報取得手段110は、移動体10に設けられたセンサである。位置情報取得手段110は、移動体10の位置情報と、移動体10が向いている方向の情報を取得する。位置情報取得手段110は、取得した移動体10の位置情報と方向情報を、記憶手段120に出力する。記憶手段120は、位置情報取得手段110から供給される位置情報及び方向情報と、移動体10が移動する軌道の情報を記憶する。典型的には、記憶手段120は、メモリやHDDであるが、記憶媒体はこれらに限られない。記憶手段120は、軌道の情報として、軌道の経路とともに軌道の曲率を記憶する。記憶手段120は、記憶した位置情報及び方向情報と、軌道の情報を、制御手段140に出力する。駆動輪130は、移動体10に複数設けられた移動手段である。駆動輪130は、制御手段140により駆動制御された駆動手段131が動作することにより回転駆動する。移動体10は、駆動輪130が回転駆動することにより、前後方向への移動や、回転、旋回動作を行う。なお、駆動輪130は、移動体10の左右に同軸上に配置されているものとする。以下では、駆動輪130を車輪と呼ぶこともある。駆動手段131は、制御手段140から制御信号を受けて駆動する。駆動手段131は、典型的にはモータである。駆動手段131は、制御信号に基づいて駆動輪130に駆動力を与える。制御手段140は、演算手段141と、設定手段142と、を備える。制御手段140は、移動体10の走行状態の制御を行う。より具体的には、制御手段140は、移動体10の旋回速度について、距離偏差と角度偏差と、距離偏差の時間変化に基づいてフィードバック制御する。このとき、制御手段140は、距離偏差の時間変化のゲインを、距離偏差のゲインと同じにする。後に詳述する。制御手段140には、ユーザにより入力された駆動輪130の回転速度車輪速度と、記憶手段120が記憶している情報が供給される。演算手段141は、典型的にはCPUCentralProcessingUnitを有し、移動体10が軌道を走行するための演算処理を行う。また、演算手段141は、一時的に情報を記憶するためのROMReadOnlyMemory、RAMRandomAccessMemoryなどを備えていても良い。演算手段141は、記憶手段120から、移動体10の位置情報、方向情報、軌道情報が供給を受け、移動体10から軌道までの最短距離距離偏差と、移動体10と軌道の方向の差角度偏差を求める。また、演算手段141は、車輪速度と、距離偏差、角度偏差の時間変化との関係を算出する。さらに、演算手段141は、移動体10の旋回速度にかかるフィードバック制御のための演算を行う。制御手段140は、演算手段141により演算された値に基づいて、駆動手段131に制御信号を出力する。これにより、駆動輪130は、移動体10が旋回するよう動作する。設定手段142は、移動体10の軌道との並進方向の速度として、ユーザが任意の値フィードフォワード値を設定するための設定手段である。制御手段140は、設定手段142で設定されたフィードフォワード値に基づいて、駆動手段131に制御信号を出力する。これにより、駆動輪130は、移動体10が軌道の並進方向に走行するよう動作する。以下では設定手段142をコントローラと記述することがある。次に、移動体10の動作について説明する。以下では、移動体10と軌道とを一体のシステムとして扱うことがある。図2は、移動体10が、フィードフォワード制御およびフィードバック制御により走行する状態を示す図である。ユーザは、移動体10に車輪速度を入力する。移動体10は、軌道までの最短距離と、移動体10の向きと軌道のなす角を出力する。また、移動体10は、車輪速度、軌道までの最短距離となす角の時間微分の関係をヤコビアンで表現する。移動体10のコントローラは、入力された指示を、逆ヤコビアンの形式にする。移動体10の並進速度は、フィードフォワード制御に基づいて設定する。移動体10の角速度は、軌道までの最短距離となす角に応じたフィードバック制御に基づいて設定する。さらに、移動体10の車輪速度は、ハードウェア、ソフトウェアで上限があるが、移動体10の左右に設けた駆動輪130のどちらか一方が上限にかかり、指令値どおりに回転しない場合には軌道追従性が悪化するため、上限を超えず、軌道に追従するように車輪速度を補正する。以下、詳細について説明する。最初に、演算手段141による、車輪速度と並進速度、角度偏差の微分値の関係の算出について説明する。演算手段141は、移動体10の並進速度、回転速度と距離偏差、角度偏差の微分値の関係を求め、次に車輪速度と並進速度、回転速度の関係を求める。まず、移動体10の座標系を定義する。ここで、移動体10と軌道の位置関係は、移動体10を基準として定める。回転の方向は、反時計回りを正と定める。図3は、移動体10と軌道の位置関係を示す図である。図3に示したように、移動体10から軌道までの最短距離を、距離偏差とする。最短距離は、移動体10の位置と軌道上の最近傍点を結んだ線分の長さとし、最近傍点での軌道の接線と直角であるとする。符号は、移動体10から見た軌跡までのベクトルをpr、軌道が進む方向の接線ベクトルをpsとすると、外積pr×psのz成分の符号とする。角度偏差は、移動体10から見た軌道の角度とする。図3の場合、角度偏差は正、距離偏差も正である。演算手段141は、この座標系に基づいて演算を行う。演算手段141は、移動体10の並進速度、回転速度と距離偏差、角度偏差の微分値の関係を求める。図4は、移動体10が微小変化した場合の図である。図4aは、移動体10の距離偏差の微小変化にかかる図であり、図4bは、移動体10の角度偏差の微小変化にかかる図である。移動体10の移動方向に沿った微小変異をds、移動体10の微小回転角度をdθr、軌道の曲率半径をρs、軌道の微小回転dθsとすると、幾何学的に以下の関係が成り立つ。距離偏差lの変化dlは、である。角度偏差θの変化dθは、である。また、以下の関係が成り立っている。式1.2、1.3からdθsを消去すると、である。式1.1、1.4の微小時間dtにおける変化は、である。ここで、ds/dtは移動体10の並進速度、dθr/dtは移動体10の回転速度であるから、これらをそれぞれvr、ωrとおくと、である。式1.7と式1.8を行列表現すると、と表現できる。ここで、表記の簡単化のため、として、と表記する。次に、演算手段141は、移動体10の車輪速度と、移動体10の並進速度、回転速度の関係を求める。図5は、移動体10および駆動輪130のアライメントを示す図である。図5aは、移動体10の平面図であり、図5bは、移動体10の正面図である。移動体10の車輪間距離W、車輪半径rとすると、運動学的に式1.11の関係が成り立つ。ここで、は、移動体10の右側に備えられた駆動輪130の回転速度であり、は、移動体10の左側に備えられた駆動輪130の回転速度である。表記の簡単化のため、として、と表記する。式1.10と、式1.12から、車輪速度と距離偏差、角度偏差の微分値の関係は、式1.13となる。次に、移動体10への速度を指令するコントローラに対し、ユーザが入力を行った場合について説明する。ここでコントローラの操作による移動体10の動作制御は、通常のヤコビアンの逆行列の制御と同様である。演算手段141は、以下の演算を行う。ユーザによるコントローラへの入力を、u=ul,uθTとする。ここで、移動体10に与えられる車輪速度は、式1.13の逆行列とする。すなわち、とする。ここで、である。Jrの逆行列は、であり、Jeの逆行列は、である。コントローラは、式1.13の行列の逆行列なので、u=ul,uθTで移動体10を動かしたとき、距離偏差、角度偏差の微分値は以下のようにuと等価である。図6は、コントローラへの入力ulと、移動体10および軌道の関係を表す図である。図6のように、移動体10が、軌道に対して角度θ、指令速度vrefで移動している状態において、距離偏差の微分値は、dl/dt=-vrefsinθである。このようなdl/dtを発生させるulは、式2.5よりul=dl/dtであるので、ulを以下のようにする。移動体10への指令速度vは、入力-vrefsinθ,uθTを、式2.4に与えることで得られる。すなわち、となる。ここで、距離偏差、角度偏差が0のときuθ=0となるようにuθを決めれば、ω=vref/ρsとなり、軌道の曲率に追従するvとωになる。式2.7のvとωを、移動体10に与えると、式1.9よりとなる。dl/dtはθの値によって正にも負にもなるので、必ずしもlが0に近づくとは限らない。図7は、距離偏差の増減を示した図である。図7aに示すように、l>0かつθ>0の場合には、dl/dt<0であり、lは減少する。図7bに示すように、l>0かつθ<0の場合には、dl/dt>0であり、lは増加する。図7cに示すように、l<0かつθ<0の場合には、dl/dt>0であり、lは減少する。図7dに示すように、l<0かつθ>0の場合には、dl/dt<0であり、lは増加する。次に、角速度入力uθを決定する。ここで、uθは、lとθの関数とする。すなわち、である。しかしながら、uθを角度偏差だけの関数にすると、軌道と移動体10の方向が同じ場合に、移動体10は回転せず、距離偏差が減少しない。図8に、移動体10が軌道と平行に走行している状態を示す。図8のように、移動体10は、角度偏差が無くとも距離偏差があるときには回転させる必要がある。図9は、移動体10の角度偏差と回転方向の関係を示した図である。したがって、fl,θについて、f0,0=0、かつ、図9aのように移動体10が軌道に接近する場合にはdθ/dt<0とし、図9bのように移動体10が軌道から遠ざかる場合にはdθ/dt>0となるようにする。これらの条件を満たすひとつの形はである。ここでαとβはゲインであり、正の値とする。図10は、移動体10が、式2.10のフィードバック制御により走行する場合について、定性的に示した図である。θ>0かつθ>βlであれば、移動体10は、図10aのように設定された軌道に近づきつつ、角度偏差が小さくなるように移動する。これを状態aとする。θ>0かつθ=βlであれば、移動体10は、図10bのように設定された軌道に直線的に近付くよう移動する。これを状態bとする。θ>0かつθ<βlであれば、移動体10は、図10cのように軌道に対して、角度偏差が大きくなるように移動する。これを状態cとする。θ=0であれば、移動体10は、図10dのように、軌道と並列して走行している状態から、軌道に近づくように移動する。これを状態dとする。θ<0であれば、移動体10は、図10eのように、軌道から遠ざかる方向に走行した状態から向きを変え、軌道に近づく方向に走行するように移動する。これを状態eとする。図11は、l≧0のときのlとθの軌跡を示した図である。図11に記載された状態a~eは、図10の状態a~eに対応している。なお、l≦0の場合には、原点に対して点対象の軌跡となる。状態bから状態aにいたる過程で、dl/dtに対して、dθ/dtが小さい場合には、図11のパターン1の軌跡をたどりl≦0のサイクルに入るため、移動体10は振動することになる。また、初期値θsの絶対値より最終値θeの絶対値が大きい場合には、サイクルを繰り返していくうちに振幅が大きくなり、発散振動する。逆にdl/dtに対してdθ/dtが大きい場合には、θ=βlに沿って、l=0、θ=0に収束する。βが大きい場合には、状態bになる角度θが大きくなり、移動体10が軌道に対して角度を持って突っ込むことになるので、パターン1の軌跡になりやすい。逆にβを小さくすると、状態bの角度が小さくなるので、l=0になるまでの収束が遅い。αが大きい場合には、dθ/dtが大きくなるので、パターン2の軌跡となる。次に、微分値のフィードバックについて説明する。移動体10が軌道に近づく際に発生する振動は、距離偏差の変化が角度偏差に対して相対的に大きいことにより、図11のパターン1の軌道になるためである。そこで、演算手段141は、距離偏差の変化に応じて角度偏差の変化を変化させるよう演算を行う。距離偏差の速度変化は-vrefsinθであるから、距離偏差のゲインとして用いられているゲインβを利用し、uθを以下のようにする。図12は、-βvrefsinθの作用について示した図である。図12に示すようにl-θ軌道と、直線βlの交点では、dl/dt=vrefsinθであるので、l-θ軌道はちょうど直線に沿う方向に変化することになる。したがって、移動体10の軌道は、θ=βlの直線を越えることは無い。また、式2.11が0となる直線は、sinθが線形とみなせる範囲でθ=βlα/αβvrefである。図13は、θ=βlα/αβvrefの作用について示した図である。図13において、θ=βlα/αβvrefは、必ずβlよりも下側である。さらに、この直線上ではdl/dt<0、dθ/dt=0であるので、移動体10のl-θ軌道が、一度この直線を越えて図13の領域1に入ると、2度と領域2に入ることは無い。したがって、移動体10において、式2.11のフィードバック制御を行うと、直線θ=βlと、θ=βlα/αβvrefに挟まれた領域内でl、θは変化することになる。その結果、lとθは振動せず、同時に0に収束する。したがって、演算手段141は、式2.11に基づいて、移動体10の角速度に関する演算を行い、制御手段140は、演算結果に基づいて適宜フィードバック制御を行う。また、式2.7ではコントローラの操作により、移動体10に与える速度を求めたが、この速度を車輪速度に変換する方法について説明する。このとき、演算手段141は、車輪速度が過大とならないような車輪速度を求める。例えば、移動体10が物理的に走行不可能な車輪速度を設定した場合、軌道に追従できなくなるためである。以下に、車輪速度を抑制する方法について詳述する。車輪速度は、式2.3の逆行列Jr-1に、式2.7で求めたvを掛ければよい。すなわち、車輪速度をとすると、となるが、になるように制限する。ここで、は、例えば、移動体10がハードウェアとして走行可能な最高速度とする。具体的には以下のように設定する。ここで、式3.2の最高速度は、に制限される。図14は、左右の車輪速度の制限を示す図である。式3.2が適用される場合には、図14の円周上の車輪速度となり、式3.3が適用される場合には、円内の車輪速度をとることとなる。実装は以下のように行う。であるため、演算手段141は、まず、を計算し、左右の車輪速度を求める。次に、を計算し、許容する車輪速度と比較する。すなわち、とする。これにより、移動体10に入力されたフィードフォワード量が過大となっても、左右の車輪の比は保存され、軌道に追従することができる。したがって、移動体10は、速度を指令する際に、式4.1を利用することにより、軌道との並進方向についてはフィードフォワードで速度を設定し、角速度をフィードバック制御により設定することができる。さらに、移動体10の左右の車輪速度を抑制することができる。なお、移動体10は、最短距離方向と軌道の接線方向が直角であることが前提であり、例えば軌道の始点における接線と現在の移動体10との関係において、角度偏差が直角から大きく外れている場合など、前提が成り立たない場合がある。この場合には、現在の移動体10の位置を始点として軌道を生成し直すことや、距離偏差が軌道に対して直角になる位置から処理をはじめること、別の方法により軌道の始点となる位置まで移動するなどの対策を、あらかじめ行うことが望ましい。また、移動体10は、走行状態のまま軌道の終点に到達すると、終点で停止することができず、さらにその後の挙動が不安定になる場合がある。この場合には、移動体10は、終点付近では減速を行い、終点で停止するよう制御することが望ましい。これにより、移動体10は、軌道に乗るように位置を調節する際に軌道をオーバーシュートすることや振動が発生することを防止して、走行することができる。また、移動体10は、軌道との並進方向についてはフィードフォワードで速度を設定しているため、速度の振動が発生するのを防止することができる。さらに、移動体10では、フィードフォワード値が過大である場合に駆動輪130の速度を抑制し、左右の車輪の動作比を保持することにより、ハードウェアの制限またはソフトウェアの制限によって駆動輪130が動作指示の通りに動作せず、軌道から外れることを防止することができる。したがって、移動体10は、設定された軌道に対し、適切に走行することができる。なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、距離偏差と角度偏差を求める演算手段と、駆動輪の回転速度と距離偏差および角度偏差の時間変化との関係を算出する演算手段は、別の演算手段であってもよい。"