Local Navigation with VFF
The main objective of the local navigation in robotic systems is to get to a near target in the safest and most efficient way possible. One of the many algorithms to solve this problem is the Virtual Force Field, developed by Borenstein and Koren.
The fundaments of it are that every obstacle in the environment generates a repulsive force towards the robot and the target generates an attractive force in the robot. So, with this two facts in mind we can find the combination of both forces that will guide the robot to its destination similar to the next image:
Now, we want to make a reactive navigation system for a car with an implementation of this algorithm. Since the sensor we are using is a laser each value that we get will be a possible obstacle, and the final target will be given by a superior agent that have planified the route beforehand. With the sensorial information we will create the virtual forces by applying fome function that will translate it.
For the repulsive force, as stated in the last paragraph, we will evaluate each measure and then make the mean of all the resultant forces, thus, the value of a individual "sub-force" will be greater the closer the object is, also we do not want to take into account objects far away that will not be in the robot way. The desired function should look like this:
The atractive force will be greater the further the robot is, up to a limit, because if we do not put a cap to the force module it could surpass the repulsive force and make the robot crash. The graphic of this function is:
With both the forces we can calculate the resultant force, but since the robot does not understad this force we have to find a Case-base reasoning that will say what is the correct action to take for a determined event. For example if there is a very close obstacle to the right, reduce the speed and turn to the left. For the implementation five cases are considered: a very close object, a close obstacle, an object that is a bit near, next to the target and no obstacles, and far away from the target with no obstacles. In addition, because of the nature of the system, a racing car, in none of the cases the action can be to go backwards and turn to a more favorable orientation, which could be a logic action for another type of robot such as a vacuum cleaner.
Finally, after adjusting the parameters correctly, we can get a behavior like this:
Comments
Post a Comment