Moving to a point with angular constraints

Started by
2 comments, last by ferrous 10 years ago

Hello, I'm trying to figure out how to move something to a point given some angular constraints.

Almost like a missile attempting to hit a target. It can't turn on a dime, so must rotate towards its target. However, because it's moving forward and rotating at the same time, if the distance between the target is less than the missiles turning speed, the missile may never reach its goal and simply rotate forever around the target point.

Now imagine instead of a missile you're a car. The same rules apply, you have a limited maximum turning circle which will prevent you from turning on a dime.

If the car was to try and reach a point beside itself, it could potentially:

  • reverse, then move forward to the target.
  • rotate on a larger arc around the point increasing the distance and allowing the car to align itself to the target point and move forward.
  • say to itself, I'm close enough. No one will notice.

In my situation, the second one would be ideal. So, does anyone know how to calculate:

  • will an object miss its target because it can't turn sharply enough?
  • if so, calculate a larger arc/path giving the object enough distance to turn correctly.

or know of any helpful articles?

Thanks

Advertisement

A quick Google search led me to this paper, which seems to address your problem exactly: http://www.aaai.org/ocs/index.php/AIIDE/AIIDE09/paper/download/812/1081

EDIT: And another one: http://www.gamasutra.com/view/feature/131505/toward_more_realistic_pathfinding.php?print=1

awesome, thanks

Yeah, it's called a Dubin's Curve, which will give you some more articles, also Motion Planning is another keyword to look for.

I've implemented a version of Marco Pinter's article, though I used vector operations for constructing the tangent lines.

You can see it here:

http://joshv.itburns.net/RadialAttempt.html

Though, that said, if you're just using it for missiles, you may want to have the missile detach from the firer (give it some small impulse), rotate towards it's target, then fire it's main thruster. (sort of like a guided mortar, or the homing rocket launcher from Half Life ), and then have it all driven by basic physics.

This topic is closed to new replies.

Advertisement