Algorithm behind PX4 avoidance library


Is it possible for the Px4 team to tell the concept or algorithm they are using for the obstacle avoidance library.

I was seeing the code, by seeing the code it is not becoming absolutely clear that What is the technique placed for avoiding the obstacles?

Thanks in advance.

The local_planner uses a 3DVFH* algorithm. It is to some extent a combination of the 3DVFH concept and the VFH* concept plus a few custom modifications to make the algorithm suitable for real world situations. I attach papers to the two mentioned algorithms in case you would like to read up on it.

02_3DVFH.pdf (1.9 MB)

03_VFH*.pdf (88.5 KB)

Thanks for the update.


I will like to know that in the px4 avoidance node among these which algorithm is implemented.

  1. 3DVFH with memory
  2. 3DVFH* with memory

And in these sphere detection technique is implemented or not.

Thanks in advance.

It’s 3DVFH*, as the Readme mentions in the third line:

The sphere avoidance functionality was taken out a while ago

Thanks for the information

I would like to know if it is possible to change the VFH algorithm with a different one, without having to change the entire structure of the avoidance package?
Thanks a lot for your help.

@ariel1987 I would say it is not possible without quite a lot of coding. It is true that the ROS frontend is kind of separated from the planning logic. But you would have to make the other algorithm use the same interface. Meaning you cannot just use some planners you find out of the box by changing two lines.