How to push moving object as close as possible to a point with one push?

51 Views Asked by At

Let's say I have a cart moving according to the red vector here (can be any vector, I'm just using this as an example), but I ultimately want the object to arrive at point $x_t, y_t$ instead, some far-off point off-screen pointed to by the blue line here:

enter image description here

I have a maximum amount of force I can strike the cart with from any angle I wish, just one time, but how do I know where to strike the cart and where to make it get as close as possible to where the blue line is pointing?

1

There are 1 best solutions below

0
On

First of all, you can't strike something with a force. Forces act over time. Also the cart isn't going to stop at the point you want it to stop at unless you apply another force, so it seems like you just want to make the cart travel in a given direction rather than to a specific point.

I think the question you mean to ask is, suppose you have a cart at the origin of mass $m$ and velocity $v$, and you can strike the cart to deliver an impulse of maximum magnitude $J$. It seems that we can assume the period over which the striking force acts is negligibly short. We also have a desired direction of travel, given by a unit vector $u$, and we want to know how big does $J$ have to be to allow us to make the final velocity in the direction of $u$, and what should the specific impulse vector be. Also if $J$ isn't large enough, how close can we get to travelling in the direction specified by $u$?

Solution.

Let $v_i$ denote the initial velocity and $v_f$ denote the final velocity. Let $p$ denote the actual impulse vector we use to strike the cart. Then $v_f = v_i + p/m$. Hence $m(v_f-v_i) = p$. We want $v_f=tu$ for $t$ a positive real number. Let's think about this situation geometrically. $v_i$ is some given point in the plane. We want $v_f$ to lie on a ray pointing in direction $u$ starting at the origin. $p/m$ will be an arrow from $v_i$ to a point on that ray. If $v_i\cdot u \le 0$, then the shortest distance to the ray is $\|v_i\|$, so we need $J/m > \|v_i\|$. If $v_i \cdot u > 0$, then the shortest distance to the ray is $\sqrt{\|v_i\|^2 - (v_i\cdot u)^2}$ by the Pythagorean theorem, so in this case we just need $J/m \ge \sqrt{\|v_i\|^2 - (v_i\cdot u)^2}$.

In the first case, simply choose $v_f$ to be small enough that $\|m(v_f-v_i)\| < J$, and let $p = m(v_f-v_i)$. In the second case, the closest point on the ray is $(v_i\cdot u)u$, so let's use that for $v_f$. Then $p=m((v_i\cdot u) u - v_i)$.

The last question is: how close can we get to travelling in the direction specified by $u$ if $J$ isn't large enough?

If $J$ isn't large enough, then the circle of radius $J/m$ around $v_i$ doesn't intersect the ray leaving the origin in the direction $u$. (In particular the circle doesn't contain the origin.) Thus there are two rays leaving the origin which end up tangent to this circle. Let these be specified by unit vectors $w_1$ and $w_2$. Choose whichever of $w_1 \cdot u$ and $w_2\cdot u$ is larger. This is the direction with the smallest angle to $u$ that we can end up travelling in after striking the cart.