snape/RVO2-CS

Optimal Reciprocal Collision Avoidance (C#)

What it solves

It addresses the problem of reciprocal collision avoidance for multiple independent mobile robots or agents moving in a shared workspace. It allows these agents to avoid collisions without needing to communicate with one another.

How it works

The library implements the Optimal Reciprocal Collision Avoidance (ORCA) algorithm. Each agent takes half of the responsibility for avoiding a pairwise collision, reducing the selection of the optimal action to a low-dimensional linear program. This ensures smooth, collision-free motion in two dimensions.

Who it’s for

Developers building simulations or robotics applications that require efficient, decentralized collision avoidance for large numbers of agents.

Highlights

  • High Performance: Capable of computing collision-free actions for thousands of agents in a few milliseconds.
  • Decentralized: Agents avoid collisions without requiring communication between them.
  • C# Implementation: Built for .NET 10 with a simple API for specifying obstacles, agents, and preferred velocities.

Related

  • Project
  • Project
  • Project
  • Project
  • Project