Accounting for wheel misalignment in a dichotomous dislocation

I have a robot with a differential drive, using an omedeter to infer its position.

I use standard equations:

WheelBase = 35.5cm;
WheelRadius = 5cm;
WheelCircumference = (WheelRadius * 2 * Math.PI);
WheelCircumferencePerEncoderClick = WheelCircumference / 360;

DistanceLeft = WheelCircumferencePerEncoderClick * EncoderCountLeft
DistanceRight = WheelCircumferencePerEncoderClick * EncoderCountRight

DistanceTravelled = (DistanceRight + DistanceLeft) / 2
AngleChange (Theta) = (DistanceRight - DistanceLeft) / WheelBase

My (DIY) chassis has a small feature where the wheels are displaced during the wheelbase (35.5 cm), since the left wheel is 6.39 mm (I am a software person, not a hardware person!) There are more “forwards”, than the right wheel. (Wheels are the middle of the robot.)

I am not sure how to calculate what I should add to my formulas in order to give me the correct values. This does not affect the robot, unless it happens on the spot, and my values ​​go away, I think that causes it.

, , ... -.

? - ? , , , ( ).

+3
2

AngleChanged:

L R , , , .
B ( ).
E - . , , .
θ, .

-, (pre) - :

φ = arctan (E/B).

( , ), theta :

σ = arctan ((E + L - R)/B)
   θ = φ - σ

, , E = 0, E → + inf., .

:
, σ (). (, ) arctan (x) = x, x.
, , (L-R)/B, , , E/B . , arctan sigma = (E + LR)/B, , arctan (a + x) 0:

arctan (a + x) = arctan (a) + x/(1 + a ^ 2)

, :

σ = arctan (E/B) + (L - R)/(B + E ^ 2/B)

, arctan (E/B) φ. , .

+1

, , , , , . , , , , " ", .

, - : , ( , , , " " ). : , , , .

, - , ...

0

Source: https://habr.com/ru/post/1762723/


All Articles