Search code examples
c++boostroboticsboost-graph

Can I implement potential field/depth first method for obstacle avoidance using boost graph?


I implemented an obstacle avoidance algorithm in Matlab which assigns every node in a graph a potential and tries to descend this potential (the goal of the pathplanning is in the global minimum). Now there might appear local minima, so the (global) planning needs a way to get out of these. I used the strategy to have a list of open nodes which are reachable from the already visited nodes. I visit the open node which has the smallest potential next.

I want to implement this in C++ and I am wondering if Boost Graph has such algorithms already. If not - is there any benefit from using this library if I have to write the algorithm myself and I will also have to create my own graph class because the graph is too big to be stored as adjacency list/edge list in memory.

Any advice appreciated!


Solution

  • boost::graph provides a list of Shortest Paths / Cost Minimization Algorithms. You might be interested in the followings: Dijkstra Shortest path, A*.
    The algorithms can be easily customized. If that doesn't exactly fit your needs, take a look at the visitor concepts. It allows you to customize your algorithm at some predefined event point.

    Finally Distributed BGL handles huge graph (potentially millions of nodes). It will work for you if your graph does not fit in memory.

    You can find good overview of the Boost Graph Library here. And of course, do not hesitate to ask more specific question about BGL on stackoverflow.