Artificial Potential Field Approach and its Problems

hi

Guys I need your help to get understanding artificial potential field approach and its problems , actually the main idea of the approach is clear to me and I don’t have any problem but the limitations of this approach and their solutions are not so clear to me , because I am not so good in math and actually I read many papers and sites which talking about that approach but all of them introduce the same concept , so I post here hoping to get some help from members here specially with who familiar with this types of approaches .

 

First I will give a brief explanation about artificial potential field and that what I got and read in websites and papers and then I will explain my questions and points that don’t make sense to me .

 

                              ---------------------------------------------------------------------------------------------------------

ARTIFICIAL POTENTIAL FIELD APPROACH AND ITS PROBLEMS

 

Traditional artificial potential field: The artificial potential field method assumes the robot moving in an abstract artificial force field. The artificial field is consisted of repulsive potential field and attractive potential field in the workspace. The potential force has two components: attractive force and repulsive force. The goal position produces an attractive force which makes the mobile robot move towards it. Obstacles generate a repulsive force, which is inversely proportional to the distance from the robot to obstacles and is pointing away from obstacles. the robot moves from high to low potential field along the negative of the total potential field. Consequently, the robot moving to the goal position can be considered from a high-value state to a low-value state. 

 

The most commonly used attractive potential function is:

1a.jpg

 

where, ε is a positive scaling factor, p(q, qgoal) is the distance between the robot q and the goal qgoal.

The attractive force is given by the negative gradient of the attractive potential:

 

2a.jpg

The attractive force toward zero as the robot approaches the goal.

 

we use following repulsive potential function:

 

3a.jpg

 

 

where, η is a positive scaling factor, p(q, qbos) denotes the shortest distance from the robot q to the obstacle, p0 is the largest impact distance of the obstacle. The negative gradient of the repulsive potential function:

4a.jpg

 

The total force applied to the robot is: Ftotal = Fatt(q)+ Freq(q) which determines the motion of the robot. The robot moves in this field of forces.

 

 

Disadvantage of artificial potential field method: 

 

(1) When the robot is far away target, the attractive force will become very great. It is easily leading robot move too close to the obstacles.

 

(2) Goals Non-Reachable with Obstacle near by (GNRON)

 

(3) When the attractive force and repulsive force is equal or almost equal but on the opposite direction, the potential force of robot is zero, then it will cause robot to be trapped in local minima or oscillations and

 

IMPROVED POTENTIAL FIELD METHOD

 

In order to solve the problems above :

Risk of collision to obstacles: The value of attractive potential field is decided by their distance d(q, qgoal), as function 1 presented. When robot is far away from target, the attractive force will become very great. That is to say, when p(q, qgoal) is very great, it is easily leading robot move too close to the obstacles (Shi and Cui, 2010). Therefore, the robot has the risk of collision to obstacles in the real environment. Thus, the attractive potential field is modified as function 5:

 

5a.jpg

where, ε is the attraction gain, p(q, qgoal) is the distance between robot and target, d*goal is the threshold value that defines the distance between the robot and the goal which will be compared for the choice between conic and quadratic potential.

The gradient of the function 5 is obtained as:

 

6a.jpg

 

 

Goals non-reachable with obstacle nearby: it is always assumed that the goal position far away from obstacles. When the robot is near the goal position, the repulsive force is negligible, so the movement of the robot to the goal position will only be determined by the attractive force. However, in some cases, the goal position will be close to an obstacle. When the robot is near its goal position, it also closes to obstacles nearby. According to the attractive and repulsive potentials in formula 2 and 4, the repulsive force will be much larger than the attractive force and the robot cannot reach its goal position (Shi et al., 2010; Chuang and Ahuja, 1998). In order to overcome this problem, the repulsive potential functions are modified by considering the relative distance from the robot to the goal (Ge and Cui, 2000). The new repulsive potential function is:

 

7a.jpg

 

where, p(q, qobs) is the minimal distance between the robot q and the obstacles, p(q, qgoal) is the distance between the robot and the goal qgoal, p0 is the distant of influence of the obstacle and n is a positive constant.

When the robot is not at the goal position, the gradient of the new repulsive potential function is:

8a.jpg

 

 

nOR = ∇p(q, qobs) and nRG = -∇p(q, qgoal) are two unit vectors and the direction of them is from the obstacle to the robot and from the robot to the goal, respectively.

                              ---------------------------------------------------------------------------------------------------------

My question are 

 

1- The negative gradient ? what is negative gradient 

When I googled about that I found that Gradient descent is a first-order optimization algorithm. To find a local minimum of a function using gradient descent . What that’s mean and how that is related to artificial potential field ? can any one give more clear answer ?

 

2- How equation 5 solve the problem of “ Risk of collision to obstacles” ? Why these two equations ? 

I need to understand these two equations in 5 .

3- How equation 7 solve the problem of “Goals non-reachable with obstacle nearby ? Why the minimal distance between the robot q and the obstacles is added to the repulsive potential function ? What is effect of that distance on the robot ?

4- How the gradient of the new repulsive potential function in equation  7 is done ? from where Frep1 and Frep2  come ? 

Sorry if I am being foolish asking these questions that may be not in the right place , and sorry for long post .

Potential fields are fairly easy once you get over the math
Once you strip the math away, the potential field techniques are fairly easy to understand. The major problem is that most of the systems need a pregenerated map and a goal. I prefer, for the most part, to allow my bots to explore randomly without a real,goal; never fear, potential force fields will help!

One thing that most of the articles show is a fancy diagram of a map with the arrows for the potential field shown. You do not need to calculate all of that. All you really need to calculate is the vector of the field at the bot’s actual location

Note, Martin (mtriplett) of SuperDroid Anna fame has code for potential fields in his robot posting (which was on the first page earlier today). I was going to do this a decade ago when I dropped out of the robot scene due to RL commitments; I’m back now and going to implement a version of the potential field technique that I call Virtual Force Fields (VFF).

What I’m planning to do is fairly simple.

  1. The goal position will be continually updated to give me the most new information from a series of moves. In other words, in mapping mode the goal will always be outside of the current map.

  2. The vector for the VFF is calculated from the following three places: the obstacles on the map, the goal that’s on the map, and any obstacles detected by the sensors that aren’t on the map. My sensors will be mainly IR and sonar. If I get fancy, I may put a laser rangefinder on my current bunch of plans called Mini-Groucho (because MG is a prototype for a larger robot called Groucho), but I don’t think I’ll have the room.

  3. Think of the obstacles having force fields that punch the bot away, and the goal as having a tractor beam pulling the bot towards it. This is the core of the Potential Fields technique.

After this it’s just a matter of calculating the force from the various objects and getting a good set of weights that you like. Right now I’m making the force proportional to the actual distance. When I implement it I will have to figure out of I need to make it proportional to the square root of the distance so that close obstacles have more importance.

The big thing about the final vector is that it has a strength and a direction.

You can use two integers or other fixed point number to represent this. I prefer using an object or structure to keep my code organized.

I need to work out some code, but it would be better is you checked out Martin’s code because it works now and is up here. If I get anything in the next few days, I’ll post it here, but I’ll probably be working on my 3d printer trying to get the darn fool thing to at least give me a glob of plastic somewhere.

Is this another term for Virtual Force Field?

For my bot, I had all the repulsive forces inversely proportional to the square of the distance, like gravity.  The attractive force however, was constant in magnitude, and roughly equal in magnitude to a force that an obstacle would exert if it was 12 inches away, but attractive.  The proper number for you will depend on your bot.  This should avoid the first problem you bring up.  This means the bot should not be able to run into obstacles as long as the sensors see them in time to turn/slow down to buy more time.

I personally can’t think of a good reason to make the attractive force variable with distance as described.  Maybe they have some other goal in mind in writing their paper.  I think I found some papers by googling “Force Field Algorithm” or “Virtual Force Field”.  

As Jay said, it is basically a sum of the forces (a vector sum of all the force vectors)…which involves a little trig for calculating the horizontal and vertical components of each force relative to the bot.  Once you get the basic force algo going, there are various reasons to play with the “shape of the force bubble” to work best with your bot, instead of having it be circular.  For me it is quite elliptical.  I did post some code a while back, it should be in the early comments for SuperDroidBot “Anna” if you are interested.

It’s past 5:30am here…must go to sleep.

Regards,  Martin.

thanks a lot for replies

thanks a lot for replies .

But I am still looking for answers for my last three questions ??

 

2- How equation 5 solve the problem of “ Risk of collision to obstacles” ? Why these two equations ? 

I need to understand these two equations in 5 .

3- How equation 7 solve the problem of “Goals non-reachable with obstacle nearby ? Why the minimal distance between the robot q and the obstacles is added to the repulsive potential function ? What is effect of that distance on the robot ?

4- How the gradient of the new repulsive potential function in equation  7 is done ? from where Frep1 and Frep2  come ? 

Sorry if I am being foolish asking these questions that may be not in the right place , and sorry for long post .

I’ve been looking at these
I’ve been looking at these equations for an hour without access to the article. If you have the address of the entire article, please put the URL here. I think I’m beginning to grasp what’s going on, but I can’t figure it out without putting the results of the equations on a map.

And each of 5, 6, 7 are one equation apiece. They are just equations that you use the top form if the top condition to the right is true, and the bottom form if the bottom condition to the right is true.

My suggestion to you is to program these equations into a graphical window and print out the sum total of the forces wherever you click the mouse. Python is a good language for that, but whatever floats your boat. If you do this, my suggestion is to also calculate the force vector for the original form and show one in the original in one color and the new in another color.

I don’t have time to do this now, or I might. Unfortunately RL is getting in the way and I can’t afford the time and concentration it would need to write this.

Good luck!