Sign in to follow this  
markgame66

Steering Along A GridBased Path - fine tuning

Recommended Posts

Hi All, The Idea: I have a path planner working ok, and I use as my planning co-ordinates the current (x,y) and id the next waypoint as a point where path's direction changes. Giving me (x', y'). From these I work out a couple of vectors and calculate the angle between them. The difference between this angle and the the current orientation is was I use to update my robot to ensure it stays following the correct path. The Problem: As the current and waypoint vectors converge the difference angle gets bigger, v quickly. I realise why this is happening, but not sure how to solve it (More often than not ends up with the robot thrashing about). Does anyone have ideas? Was thinking of some kind of decaying alg to apply to the corrcetion angle depending on how close the vectors are to one another??? Many thanks for any advise Cheers Mark

Share this post


Link to post
Share on other sites
1. Craig Reynolds describes a "steering behavior" for exactly this problem here. Simple, practical, and effective.

2. Or, use a potential function method. Let the potential be a weighted sum of (1) the Bellman value function, as computed by your planner (interpolated), and (2) the distance from the path; then move down its gradient.

3. Or, use model predictive (sliding window) control. E.g.: You can compute the average square distance from the path over the next ten seconds for a particular steering signal. Optimize over the steering signals. Do this every timestep, always using the first value of the optimal steering signal.

4. Or use a real honest-to-goodness nonlinear control. Design it using Lyapunov methods.

The easiest thing is probably the steering behavior, but you can learn a lot by trying the others. They're sorted roughly in order of difficulty.

[Edited by - Emergent on November 12, 2008 3:21:49 PM]

Share this post


Link to post
Share on other sites
Hi Emergent,

Thanks for your reply. I've looked at CW's implementation and from what I've been told it's probably not easily adaptable to the way I want to work.

Therefore I've started looking into option 2. Question is I'm not really sure where to start. Never heard of this. Assuming I'd get some value back which to apply to my steering angle. Which would reduce it the closer the robot is to it's next way point?

Could you point be in the direction of any tutorials on the subject?

Thanks

Mark

Share this post


Link to post
Share on other sites
Hi Emergent,

Thanks for your reply. I've looked at CW's implementation and from what I've been told it's probably not easily adaptable to the way I want to work.

Therefore I've started looking into option 2. Question is I'm not really sure where to start. Never heard of this. Assuming I'd get some value back which to apply to my steering angle. Which would reduce it the closer the robot is to it's next way point?

Could you point be in the direction of any tutorials on the subject?

Thanks

Mark

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this