d-ORCA: Distributed Optimal Reciprocal Collision Avoidance


Owing to the growth in the field of swarm robotics, simulation of multiple agents sharing a common workspace have gained increasing attention. This package provides one such platform with the support to spawn multiple agents(quadrotors) in a simulated environment(Gazebo). It incorporates into it ORCA (Optimal Reciprocal Collision Avoidance), a local collision avoidance scheme that is scalable to a large number of swarm agents, to help agents navigate the environment without colliding with each other. It also uses PX4 SITL package for high fidelity quadrotor simulation in Gazebo. This package distinguishes itself from other similar packages by decentralizing the multi-agent simulation framework thus making the system scalable and increasing the point of failures. The package makes use of ROS message passing protocol for communication between agents and thus removes the need to manage all the agents centrally. In this work, we present D-ORCA, the first decentralized collision avoidance simulation package for quadrotor swarms. Users of the package can simulate a swarm of up to 50 quadrotors which can avoid collisions with each other and with static obstacles in a known environment, and easily add and test their own perception or global path planning code with the package.


We have released two versions of D-ORCA: Version 1.0.0 which focuses only on agent-agent collision avoidance and Version 1.0.1 which includes a proximity based static collision avoidance method. These versions were tested in the following scenarios.
  • Testing dynamic obstacle avoidance: 50 quadrotors are spawned uniformly on a circle and have to move towards their antipodal points on the circle while avoiding collisions.
  • Testing static and dynamic obstacle avoidance: Two quadrotors heading towards each other in the proximity of a building-like static obstacle.
  • Testing interfacing with a global planner: A simple lawnmower coverage strategy in an urban setting for 40 quadrotors were used.
We use the Proximity Query Package (PQP) for “sensing” the distances of static obstacles from agents as shown here, and the proprietary urban models used in the test cases are also included with the package.


Follow the steps shown below to install, build and use d-ORCA library.