I want to comment upon one thing at the first hand. If you want to implement potential field out of your own interest, then there are several resources for that. However, if you are into some practical collision avoidance work, then potential field theory has got its own limitations like local minima trap wherein the agent cannot make any further decision and gets stuck up. Instead you can work upon fuzzy based collision algorithms or the best thing to go for would be machine learning techniques which are quite robust and interesting.
however in order to implement your potential field algorithm first decide whether your environment is static or dynamic. Then you need to select your potential functions that is attractor and repulsor force components. In any case you would be working upon the resultant of the two...I hope this gives you an idea of the whole thing.
I would like you to follow one of our following paper on potential field implementation:
Soumic Sarkar, Sankar Nath Shome and S. Nandy, An Intelligent Algorithm for the Path Planning of Autonomous Mobile Robot for Dynamic Environment. DOI: 10.1007/978-3-642-15810-0_26 Conference: Trends in Intelligent Robotics - 13th FIRA Robot World Congress, FIRA 2010, Bangalore, India, September 15-17, 2010. Proceedings
The first author Mr. Soumic Sarkar is also a member of ResearchGate forum and therefore you can follow Soumic and request a copy of the paper. It can be of good help to your own work.
Anyways summarily, he has attacked the problem of local minima using Wall following method for avoiding collisions. the wall following module is triggered as recovery operation for the agent when the agent identifies a local minima trap.
Thank you very much sir. I have finished the wall following approach coding for a static obstacle. But in the case of moving obstacle, how do i approach?
Well Sri I am very happy that you are still sticking to this problem sincerely....
Anyways for your concern I have the following idea:
Let us consider the case when the obstacle is moving along the same line as that of the agent's motion. Obviously your potential field is trapped in local minima as the attractor and repulsive potentials would be having similar values. However, wall following can still be implemented. We have other obstacles in the environment either moving or static. Let us consider three obstacles critically close to the agent-one which is directly opposing the agent and two other nearby objects. We can form a virtual triangle with the positions of the objects as vertices. then we get a polygon and apply the static wall following algorithm along the computed sides of the virtual triangle.....
This is purely conceptual and I hope you can get something meaningful out of it...Plz try this out and let me know the outcome and also the necessary modifications you make in order to actually work it out.
Well the answer to your question might be as follows:
Initially take three obstacles with one moving and the other two static and place them in the environment such that their positions may be treated as vertices of an imaginary triangle. Try out the previously suggested method and then go for two moving obstacles and finally three. Direction of motion of the obstacle should be directly opposite to that of the moving agent.
Well, let me interfere a bit. The basic problem associated with the implementation of potential function based methods, is that the on-board sensor(s) [attached to the robots like SICK] is not capable of distinguishing between a nearby robot [unless a communication protocol among the robots is established] and a nearby obstacle (static or moving).
Without Communication:
1. Calculate the position of the moving thing (obstacle or robot) from the distance and angle received from sensors. This step will be useful to calculate the gradient of the potential function.
2. Check whether the distance received from sensor is less than the avoidance distance. if it's less then calculate gradient of potential function. This will act as control input to the robot.
With Communication:
same as above but only position is directly sent by other neighboring robot.
Note: Local minima can be avoided by increasing the number of robots or obstacles[not in our hand]. Check Stipanvic's paper for barrier like potential function instead of Khatib's FIRAS function.
Dear madam/ sir , I read u r previous conversations. I am also working on path planning. I need how to write a code for POTENTIAL FIELD method if u have any code please share me.Mail: [email protected]