Agents avoiding blocked Paths

I’ve set up a grid graph and have agents moving around easily enough, there are some issues with them cutting corners too tightly and getting caught on corners that I’m trying to work on. I’ve also set up an RVO controller to try to get agents to avoid each other to a reasonable extent. However now I’m dealing with two problems I’m not sure how to fix.

Currently agents don’t seem to try to avoid each other. They run into each other in straight lines because of their paths, then generally get unstuck because of symmetry breaking or they don’t and start to form stuck clusters.

What I think is the cause is because it’s a grid they are each on the same optimal path to their destination. And while they try slightly to maintain some distance with other agents it’s not enough to make them not try to move into a space occupied by another agent.

I’m trying to see is if there’s a way to mark an an area an agent is in as impassable to other agents but not itself so it doesn’t just stop moving. Or maybe add a severe penalty so agents path around each other or something of the sort. Sorry if I worded this badly.

I’m hoping to eventually have a crowd of agents to be able to move past each other to their goals in a city block kind of layout, if there are too many agents in one area they’ll take another road.

Hi

I’m afraid that kind of local avoidance is not implemented in this package. It requires cooperation between the local avoidance algorithm and the pathfinding system in a quite complex way. There are not a lot of good papers about those kinds of systems.

The closest that I have experimented with is very grid based and had a lot of other limitations. See https://arongranberg.com/2015/06/cooperative-pathfinding-experiments/