Finding End point of an Arc in Cartesian Coordinates while radius, arc length and one end of Arc is given?

3k Views Asked by At

enter image description here

I want to find the position of a robot using single tire model while rotating. I am assuming robot is moving along a circle. I know its radius, length or arc and starting point of arc. This time arc direction is clockwise but it could also be anti-clock wise. Can someone explain how can I find ?

3

There are 3 best solutions below

0
On

I assume the circle is centred at $(0,0)$. Firstly, the angle $\theta_0$ from the positive $x$-axis to the line segment $(0,0)$ to $(x,y)$. Since $(x,y)$ can be anywhere on the circle, we allow $-\pi\lt\theta_0\leq\pi$. Then we have,

$$\theta_0 = \begin{cases} \pi/2, & \text{if $x=0,\; y\gt 0$} \\ -\pi/2, & \text{if $x=0,\; y\lt 0$} \\ \tan^{-1}(y/x), & \text{if $x\gt 0$} \\ \tan^{-1}(y/x)+\pi, & \text{if $x\lt 0,\;y\gt 0$} \\ \tan^{-1}(y/x)-\pi, & \text{if $x\lt 0,\;y\lt 0$}. \\ \end{cases}$$

The angle of rotation is $\theta=l/r$. Say we have $l\gt 0$ for anti-clockwise and $l\lt 0$ for clockwise. Then the new coordinates $(x_1,y_1)$ are:

\begin{align} x_1 &= r\cos(\theta_0+\theta) \\ y_1 &= r\sin(\theta_0+\theta). \end{align}

2
On

EDIT1:

Given $\varphi= \theta$ used symbol and arclength we can find circle coordinates.

Assume wlog origin as the start point...instead of $(x,y).$ Also you should know the initial direction, else you cannot take off to the end or future traveled points $(x_1,y_1)$ of the robot, much less determine it, because initial slope is essential to solving this problem. $\theta$ is a variable, $\varphi$ is central angle at point $(x_1,y_1).$ Also projected the distance along arbitrary x-axis

$$h = r \sin \alpha = \dfrac{l \sin \alpha }{\varphi} \tag 1 $$ should be computed to start with.

$$r=\dfrac{l}{\varphi} \tag 2 $$

Updating answer. Symbol $ \theta $ used here for counter-clockwise rotation of radius vector $\rho$ around the origin and $\varphi$ is rotation around center of circle.

At any point, the segment length $2h$ subtends angle $\alpha$ at the circumference. Using Law of sines

$$ \dfrac{\rho}{\sin (\theta+\alpha)}=\dfrac{2h}{\sin \alpha} \tag 3$$

enter image description here

we directly compute

$$ (x_1,y_1)=\dfrac{2h \sin (\theta+\alpha)}{\sin \alpha }\cdot(\cos \theta,\sin \theta) \tag4$$

Isometric input

The given data $\varphi,l, r $ are isometric invariants, so it is included in the answer for more instruction. Anglw $ \alpha$ as an arbitrary Euclidean motion. It is supplied as an initial condition for integration.

smax = 25.; al = -0.6; r = 5;
circ = {PH'[s] == 1/r, PH[0] == -ArcTan[3/4], Y'[s] == Sin[PH[s]], 
   X'[s] == Cos[PH[s]], X[0] == 0, Y[0] == 0};
NDSolve[circ, {X, Y, PH}, {s, 0, smax}];
{x[t_], y[t_], ph[s_]} = {X[t], Y[t], PH[s]} /. First[%];
ParametricPlot[{x[s], y[s]}, {s, .0, smax}, PlotLabel -> Kreis, 
 GridLines -> Automatic, AspectRatio -> Automatic, 
 PlotStyle -> {Blue, Thick}]
Plot[Tooltip[{ph[s], x[s], y[s]}], {s, .0, smax}, 
 PlotLabel -> Circle_Coords, GridLines -> Automatic, 
 AspectRatio -> Automatic]

In the above given program any l=smax can be set to change an Endpoint.

enter image description here

0
On

Thanks @Mick A, @Narasimham and other people for helping. As it is robotic motion so in most cases it between (0-180 degrees). I have starting point coordinates, the radius of virtual circle along with robot moving and angle. So I am using simple polar coordinates. to find next point.

                       θ  =  S/r
                       x1 =  r*cos(θ) + x
                       y1 =  r*sin(θ) + y