Прогнозируемая траектория движения транспортного средства?

8

В игре, которую я разрабатываю, я должен рассчитать, сможет ли мое транспортное средство (1), которое в этом примере движется на север со скоростью V, достичь своей цели (2). Пример изображает проблему сверху:

введите описание изображения здесь

На самом деле существует два возможных сценария: V является постоянным (приводя к траектории 4, дуга окружности) или транспортное средство обладает способностью ускоряться / замедляться (траектория 3, дуга спирали).

Я хотел бы знать, есть ли простой способ проверить, способно ли транспортное средство достигнуть своей цели (в отличие от превышения ее) . Меня особенно интересует траектория № 3, так как я могу думать только об интеграции положения транспортного средства во времени.

РЕДАКТИРОВАТЬ: конечно, у транспортного средства всегда есть способность управлять, но радиус поворота изменяется в зависимости от его скорости (думайте до максимального поперечного g-сила).

РЕДАКТИРОВАТЬ 2: также обратите внимание, что (как и большинство транспортных средств в реальной жизни) есть минимальный радиус рулевого управления также для внутриигровых).

макинтош
источник

Ответы:

15

Если вы можете изменить свою скорость (то есть угол поворота), вы всегда найдете решение, начиная с вырожденного, когда объект почти остановился, вращаясь по маленькому кругу, до наведения на цель.

Если вы не можете изменить свою скорость, вы можете подумать о недоступных областях или тенях, которых вы не можете достичь, даже используя свое лучшее управление, если цель находится в тех областях, вы не можете ее достичь (если только «перескочить», вы даже можете превзойти их и положить их из области тени).

Ваша лучшая направленность позволяет вам поворачивать влево / вправо по дуге окружности, позволяя вам нарисовать полную окружность:

тени

Как вы можете видеть, что внутри одного из двух кругов не может быть достигнуто напрямую.

Тело массы m , которое движется по кривой с радиусом кривизны r , испытывает радиальную кажущуюся центробежную силу, вызванную инерционным поведением тела, равную:

Fc = мВ ^ 2 / г

где V - скорость тела (длина вектора скорости); будучи ускорением тела за счет силы, являющейся:

а = Р / м

наше ускорение это:

а = V ^ 2 / г

Если мы говорим, что am - максимальное ускорение, мы получаем, что:

гт = V ^ 2 / ч

где rm - минимальный радиус с использованием максимального ускорения.

Если вы хотите проверить, может ли пузырек в P, движущийся со скоростью V, достичь цели в T, вы должны:

1) вычислить C1 и C2 как:

с1 и с2

2) проверить минимальное расстояние P от C1 и C2 следующим образом:

проверка радиуса

Если d больше, чем rm, это означает, что T находится за пределами обеих теней, и тогда транспортное средство может быть достигнуто транспортным средством, просто регулирующим поворот под ограничением поворота. (чтобы быть более точным, есть путь при ограничениях, которые позволяют функции расстояния между T и P монотонно уменьшаться)

[ОБНОВИТЬ]

Если возможно изменить скорость, всегда можно получить дугу (то есть пара скорость / радиальное ускорение), которая идет от Р до Т . Это возможно, потому что радиус становится действительно степенью свободы.

Это возможная конструкция:

целевой путь

Черная линия - это ось, где может лежать центр окружностей: она перпендикулярна текущей стороне транспортного средства и проходит через его центр вращения.

Зеленый сегмент представляет собой линию, которая перпендикулярна той, которая соединяет центр транспортного средства с целью и проходит через середину этого расстояния.

Зеленая линия пересекает черную точно в центре желаемой дуги. Длина оранжевого сегмента говорит нам о радиусе поворота, который может быть достигнут путем регулирования скорости и поворота при максимальном повороте или регулирования как скорости, так и направления, чтобы оставаться под ограничением

FXIII
источник
Спасибо, что нашли время написать этот подробный ответ (+1). Мне нужно немного «изучить» его, но из первого прочтения мне кажется, что ваше первое утверждение «вы всегда найдете решение ...» не обязательно верно: наличие минимального радиуса рулевого управления подразумевает, что всегда есть будет "теневая область", предел которой будет определять своего рода "орбиту" вокруг цели ... Или я ошибаюсь? [Это действительно настоящая проблема для меня, так как вычисления для V = k просты ...]
mac
@mac, если цель находится не в том же месте вашего автомобиля, вы можете замедлить движение, чтобы rmin сформировал круг, достаточно маленький, чтобы не содержать цель. Когда вы находитесь в этом состоянии, вы можете установить свою скорость так, чтобы цель лежала точно на вашей окружности!
FxIII
@Fxill - Опять же, спасибо за обновление, если бы это было возможно, я бы дал вам секунду +1 за посвящение! :) Тем не менее, из вашего объяснения я не понимаю, как вы учитываете как ускорение, так и начальную скорость: вся проблема заключается в том, что со временем скорость изменится (дуга спирали). У меня сложилось впечатление, что может просто не хватить места для того, чтобы автомобиль замедлился / получил радиус, достаточно маленький, чтобы перехватить цель ... или я ошибаюсь?
Mac
@mac, скажем, am = 1, то rm = v ^ 2; если d = | PT | > 0 вы можете выбрать v ^ 2 <d / 2; если d = 0, это означает, что P = T, так что вы уже достигли своей цели ...
FxIII
хахаха нет сомнений что это работает! : D
FxIII