Skip to content

Files

Latest commit

author
szgula
Apr 18, 2021
6634da6 · Apr 18, 2021

History

History
40 lines (24 loc) · 1.36 KB

Go_Around_Point.md

File metadata and controls

40 lines (24 loc) · 1.36 KB

Basic action: Go Around the Point

Go Around the Point

This action generates a robot control signal (wheel velocities) to go around a point at a given distance from the robot's centre (distance perpendicular to the robot's heading).

Possible use cases are, for example, getting to an appropriate position to kick the ball or obstacle avoidance.

This action is implemented in the function go_around_the_point().

Assumptions, Inputs and Outputs

Assumptions: The robot's model is known

Inputs: Radius of Curvature of the path, direction: 1 = clockwise, -1 = counterclockwise.

Output: Robot control command (single instance)

Logic

In the two-wheel differential drive system the radius of curvature (R), the distance between wheels (l) and the ratio of velocities of the left (Vl) and the right (Vr) wheels are related. The relation is given by the following equation:

Vl/Vr = (R - l/2)/(R + l/2).

Finally, we check the maximum velocity. If the velocity of any wheel exceeds a threshold value, a new calculation is done.

Figure 1:The Robot and the point it has to go around.

Figure 2: The derivation of the formula using similarity of triangles.