位置トラックとして光学式マウスを使用するロボットがあります。基本的に、ロボットが動くと、マウスを使用してX方向とY方向の変化を追跡できます。マウスは、移動している方向(つまり、負のXまたは正のX)も追跡します。これらの値は、別々のXレジスタとYレジスタに合計されます。
これで、ロボットは所定の位置で回転し、前進するだけです。そのため、ロボットの動きは理想的には直線であり(ただし、マウスのトラッキングは、方向を変えると偏差を拾う可能性があります)、特定の角度で行われます。ロボットの特定の動きのセットは次のようになります
。A:45度回転、3インチ移動
B:90度回転、10インチ移動
C:-110度回転、5インチ移動
D:10度回転、1インチ移動
しかしマウスXおよびマウスYレジスタが、各方向に移動した実際の距離を示すたびに。
さて、AからDへの移動セットのみを繰り返したい場合、すでに収集した情報を使用してこれを行うにはどうすればよいですか。基本的に、すでにフィードしているすべての角度と距離を合計できることはわかっていますが、各移動順序に大きなエラーがあった場合、これは不正確であることがわかります。マウスからの生の情報をどのように使用できますか?友人から、マウスの値を連続的に正弦波と正弦波で計算して最終的なベクトルを計算できるというアイデアがありましたが、これがどのように機能するかはよくわかりません。
問題は、マウスが相対的な読み取り値しか表示しないため、回転または後方に移動すると、情報が消去される可能性があることです。そうですね、私が疑問に思っているのは、アルゴリズムを実装して、変更を継続的に追跡し、元々そこに到達するためにジグザグに移動した場合に最短経路を提供できるようにする方法です。