A* Pathfinding Project

[3.6 PRO] RVO Agent stuck


#1

Hello.
My name is Adrian.

I am using version 3.6 Pro, with default settings for “RVOSimulator” and out of the box RVO Agent. (A few lines of code were created to allow each agent to have an independent target.)
The A* RecastGraph settings are default from “Example11_RVO RVO scene”.
Unity 3D version is 4.3 Pro.

The white agents are locked. And they must remain locked. They already reached the destination reserved for them.
The white agents can not be pushed away in order for the red agent to reach it`s location. This is mandatory.

(Img link in case embeded one does no work: “http://pasteboard.co/T7kGkey.png”)

The red agent stops moving after a couple of seconds.
(Last 2 days i tried different settings for RVO Simulator, RecastGraph and RVO Agent, but no solution that can actual be used in a real project was found).

I require your help and your advice.
Thank you.


#2

Hello.

I really need an answer to this basic question.
Does Local Avoidance work in version 3.6 Pro without pushing other agents around?

Thank you.


#3

Hi

RVO is a local avoidance algorithm. The thing about local avoidance is that it can only avoid convex obstacles (or close to convex obstacles). It cannot for example find a path around an obstacle.

The white agents can not be pushed away in order for the red agent to reach it`s location. This is mandatory.
This is kinda against the core principle of RVO, for it to work well, agents have to cooperate, so they should be able to move away so that other agents can pass. RVO stands for Reciprocal Velocity Obstacles, the "reciprocal" here is about agents cooperating.
I really need an answer to this basic question. Does Local Avoidance work in version 3.6 Pro without pushing other agents around?
If the obstacles that the other agents form are non-convex, no.

#4

Hello Aron.

Thank you for the answer, wanted to let you know that we found a work around that suits our needs.
Keep up the good work :slight_smile:

Thank you.


#5

Hello =)
Can you tell me how you solved this problem?


#6

From email

Hello.

Wow that post was a long time ago.

I made my own pathfinder logic that i implemented in my projects: here -> https://www.youtube.com/watch?v=uGRMsA2klSA

(warning, programmer graphics :P)

For avoidance i used boids logic plus avoidance priorities. You can see a small group that is escorting a larger agent.

Also i made deny zones for the larger agents. I don’t want then inside that blue sphere.

Also that sphere (in fact all “walls” can move / rotate in space, the pathfinder deals with that).

It is sufficient for my needs.

Wish you all the best.

Adrian.


#7

Thank you. But how can i solve the problem?
how can I determine that the target being attacked cannot be reached?


#8

Hello
Can you help me?


#9

Hi

There is nothing out of the box that can detect that.
You could have some luck using for example a raycast to detect how many agents there are between this agent and the target. And if there are too many you use some other behaviour.


#10

Thank you =)

how can I make units not accumulate only on one side of the enemy, and surrounded him?


#11

Hi

The RTS example in the current beta (the example in itself is also very much in beta, it is quite undocumented) has some additional functionality for this. When RVOController components become locked the other agents will move around them more efficiently (most of the time anyway).

See https://www.arongranberg.com/astar/download


#12

Thanks, I’ll try.
Will there be more detailed documentation on RVO?


#13

There is https://arongranberg.com/astar/docs/local-avoidance.php at the moment. The individual classes do of course also have their own documentation.


#14

If target moving, which method i need use to recalculate path?


#15

Oh, thank you for your help. I don’t have any more questions. It works very cool.