差動駆動ロボットの位置を計算する


14

インクリメンタルセンサーを備えた差動駆動ロボットの位置をどのように計算または更新しますか?

2つのディファレンシャルホイールのそれぞれには、1つのインクリメンタルセンサーが取り付けられています。両方のセンサーは、距離決定します。は、既知の時間間にホイールが回転しました。Δ R I G H Tleftrghtt

まず、両方の車輪の中心がロボットの位置をマークしていると仮定しましょう。この場合、次のように位置を計算できます。

バツ=バツleft+バツrght2y=yleft+yrght2

両方の車輪が直線で回転するという仮定の下でこれらの方程式を「導出」します(短い距離ではほぼ正しいはずです)。

バツt=12leftt+rghttcosθyt=12leftt+rghttsnθ

ここで、はロボットの向きの角度です。この角度の変化について、方程式を見つけましたθ

θt=1wlefttrghtt

ここで、は両方のホイール間の距離です。w

のでと依存、私は私が最初に新しい計算しなければならないのだろうか追加することでまたは私はむしろ「古い」を使用する必要がある場合は?どちらか一方を使用する理由はありますか?バツyθθθθ

次に、両方の車輪の中心がロボットの位置をマークしていないと仮定します。代わりに、ロボットの境界ボックスの幾何学的中心をマークするポイントを使用します。次に、と変わります。yバツy

バツ=バツleft+バツrght2+lcosθy=yleft+yrght2+lsnθ

最初の「導出」は以下を提供します。

バツt=12leftt+rghttcosθlsnθθt

現在、依存しています。これが「新しい」を使用する理由ですか?θθ

位置と方向をシミュレートして更新するより良い方法はありますか?複素数(3Dのクォータニオンと同じアプローチ?)または同次座標を使用している可能性がありますか?

回答:


8

最初の質問に答えるために:もしあなたが本当に差動駆動の真の運動方程式を見つけたいなら、私は各車輪が直線で動いたと仮定して近似を始めません。代わりに、回転半径を見つけ、円弧の中心点を計算してから、ロボットの次の点を計算します。ロボットがまっすぐに動いている場合、回転半径は無限になりますが、まっすぐな場合、計算は簡単です。

そのため、各タイムステップで、またはインクリメンタルセンサーの変化を計算するたびに、ロボットが次のように円弧上をポイントAからポイントBに移動すると想像してください。 ここに画像の説明を入力してください 数学を簡略化したサンプルコードを次に示します。

// leftDelta and rightDelta = distance that the left and right wheel have moved along
//  the ground

if (fabs(leftDelta - rightDelta) < 1.0e-6) { // basically going straight
    new_x = x + leftDelta * cos(heading);
    new_y = y + rightDelta * sin(heading);
    new_heading = heading;
} else {
    float R = unitsAxisWidth * (leftDelta + rightDelta) / (2 * (rightDelta - leftDelta)),
          wd = (rightDelta - leftDelta) / unitsAxisWidth;

    new_x = x + R * sin(wd + heading) - R * sin(heading);
    new_y = y - R * cos(wd + heading) + R * cos(heading);
    new_heading = boundAngle(heading + wd);
}

シミュレーターで同様の数学を使用して、さまざまなステアリング方法を示しました:http : //www.cs.utexas.edu/~rjnevels/RobotSimulator4/demos/SteeringDemo/


1
上記のコードスニペットで使用されている方程式は、ここから導き出されます:rossum.sourceforge.net/papers/DiffSteer
kamek 14

素晴らしい説明!シミュレータのリンクが壊れている
smirkingman

2

θθバツy

θバツyθ

t0


「差動駆動車両の順運動学」を検索すると、この質問に対するより数学的なアプローチを備えた多くの記事が提供されるはずです。
イアン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.