You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The cost estimation for a 3D node (getC) uses a g value that is a 3D cost and an h value that is from the 2D A*. The 3D cost is always higher than the 2D cost since it has more restrictions. This encourages the algorithm to plan from an early path which results in a breath first search.
By adding a weight to the value of g in node3d.hpp:
/// get the total estimated cost
float getC() const
{
return 0.8 * g + h;
}
The results become more interesting:
Left is the original and right is after the change. This isn't a complete fix as making the costs equivalent is hard but improves the behavior a lot.
The text was updated successfully, but these errors were encountered:
Hey, thanks for your comment, this is a great idea in general, it is just very much dependend on the environment configuration and I belive that you will violate the admissibility and consistency of the algorithm.
The cost estimation for a 3D node (getC) uses a g value that is a 3D cost and an h value that is from the 2D A*. The 3D cost is always higher than the 2D cost since it has more restrictions. This encourages the algorithm to plan from an early path which results in a breath first search.
By adding a weight to the value of g in
node3d.hpp
:The results become more interesting:
Left is the original and right is after the change. This isn't a complete fix as making the costs equivalent is hard but improves the behavior a lot.
The text was updated successfully, but these errors were encountered: