Best way to do RVO with vehicles

I am making my own script that rotates and moves my units along the path. It works great, however, I also want to implement local avoidance. The issue is that the units can only move forward (like vehicles) so to effectively avoid other units they need to start turning to a specific point. I tried two solutions:

  1. Use RVOController.CalculateMovementDelta.x to figure out an extra angle to turn to avoid the obstacle.
  2. Use rvoAgent.CalculatedSpeed to modify target speed and rvoAgent.CalculatedTargetPoint to replace target point to navigate to instead of the next one in the path.

Both approaches cause units to jitter as they cannot decide which direction to go. My guess is that rotating unit messes up the avoidance somehow. Is there a known solution to this?

Hi

The RVO algorithm is unfortunately not well suited for vehicles. There’s an explicit assumption that agents can change their velocity instantly and in any direction, something which is very much not true for vehicles.

I see, thank you. I suppose I could turn stationary vehicles into obstacles to construct a path around them and use raycast to determine the moving ones in front.