Collision Avoidance algorithm (I) velocity Obstacle

Source: Internet
Author: User

Collision avoidance is a basic topic in robot navigation, game AI, and other fields. Many algorithms have been proposed for decades. Note that this mainly refers to the local Collision Avoidance algorithm. Although it is closely related to the Global Path Planning Algorithm (A * algorithm, however, there are still some differences (partial collision avoidance algorithms mainly focus on the upcoming collision, while path planning mainly focuses on determining the optimal path to the destination in advance, these two algorithms are usually used together ). In recent years, an orca Algorithm Based on velocity obstacle [1] has been widely used in many 3A Games due to its real-time performance. Here we will introduce this high-performance algorithm.

First, let's take a look at the basic situation. There are two round robots, A and B, moving at a certain speed on the same plane. How can we determine if they will collide?

A more intuitive method is to calculate the relative speed of a for B, and then check whether the direction of the relative speed is within the slice where the width is the sum of the radius of the two. If so, the two robots will inevitably collide at some point in the future.

Conversely, as long as the relative speed is out of the range of this sector, there will be no collision. To obtain the "collision range" of absolute velocity va, you only need to translate the "collision range" of relative velocity according to VB. The "collision range" is a's velocity obstacle for B. The formal definition is as follows:

Where

If there are multiple robots, for B, there will be more than one velocity obstacle. In this case, you only need to select a speed other than the set of all velocity obstacle to ensure that the collision will not occur.

The advantage of this method is that it is intuitive and easy to calculate. You only need to build two sides of each velocity obstacle to directly select the speed, unlike many other algorithms that need to calculate the distance. Of course, there are still some specific problems, such as which region should be selected or how to choose when there is no available region. I will not introduce it here, if you are interested, you can view the references listed later.

This is great, right. But what will happen when other robots take the same avoidance measures?

You can imagine the following situations,

Both robots A and B are heading toward their respective targets, and their speed is in their respective velocity obstacle. That is to say, a collision will occur next, both A and B will choose a speed other than velocity obstacle for avoidance. After a while, their speed will all be out of their respective velocity obstacle. However, in order to reach the destination as soon as possible, they will reselect the original speed and repeat the above actions. In the end, their motion tracks will become shown. This jitter will not only be unnatural, but also affect their respective speeds.

The root cause of this problem is that the velocity obstacle algorithm assumes that robots other than robot B will not take evasive actions, but simply move toward their respective destinations at a fixed speed. That is to say, all the avoidance responsibilities are handed over to B. When other robots adopt the same avoidance strategy, the above problems will occur. To solve this problem, gamma, a research team at the University of North Carolina Lina at Chapel Hill, proposed the reciprocal velocity obstacle and its improved algorithm optimal reciprocal collision avoidance, and achieved excellent avoidance performance. What are these algorithms? Let's wait for the next decomposition.


References

[1] p. fiorini and Z. shiller, "Motion Planning in dynamic environments using velocity obstacles," Int. j. robot. res ., vol. 17, No. 7. pp. 760-772, Jul. 1998.


P.s. This article is published using live wirter. It seems that the image is automatically reduced. If you cannot see it clearly, click to view the original image.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.