I have a robot with a car-like steering and I nee to navigate to a waypoint usingpotential fields.
(XG, YG) is the position of the goal and (x,y) is the position of the robot
θ = arctan(yG-y/xG-x)
distance between goal and agent: d = √[(xG-x)^2+(y - yG)^2]
1. if d < r Δx = Δy = 0
2. if r <= d <= s + r Δx = α(d - r) cos(θ) and Δy = α(d - r) sin(θ)
3. if d > s + r Δx = αcos(θ) and Δy = αsin(θ)
This sets up a goal as a circle with radius r. When the agent reaches the goal no forces from the
goal act upon it, whence when d < r both Δx and Δy are set to zero. The field has a spread of s (an circular area between the actual goal and the perimeter of the pfield)
and the agent reaches the extent of this field when d = s + r. Outside of this circle of extent, the
vector magnitude is set to the maximum possible value. Within this circle of extent but outside of
the goal's radius, the vector magnitude is set proportional to the distance between the agent and
the goal. I include the constantα > 0 so that the strength of the field can be easily scaled.
From this I would get a series of vectors over time which would point the robot in the right direction of the goal. The only problem is that I dont know how to steer the robot since it uses holonomic constraints. The robot can turn maximum of 100 degrees in either direction; specifically it takes an argument <Drive><Steer><Break> where drive and steer range from -100 to 100 and break is 0 for off and 1 for on. I also have available the heading of the robot.
Could someone please tell me how to drive the robot in the correct angle?
This is the source I used for the potential fields: http://borg.cc.gatech.edu/ipr/files/goodrich_potential_fields.pdf
and this is the project description: http://issrt.usf.edu/~craighea/teaching/project_2/Project%202.pdf