Navigation Of Multiple Agents. This project is an implementation of the paper Reciprocal Velocity Obstacles for Real-Time Multi-Agent Navigation. It is written in Matlab.
The goal of the project is that given a number of n agents, the current location of each one, the goal position and the current velocity of K nearest neighbors for each agent find the appropriate velocity (linear & angular) in order to have zero collisions.
VOR_RUN_V01.mtype (main), main file of project creates and executes each scenario, count step execution time and if any collisions have happened. Variable ΕΧ (line 33) selects scenarios and nx is the total number of agents.RobotClass.mtype (class), each object of this class represents an agent, containing info such as velocity current position or size.Square.mtype (class), each objected of this class represents a square obstacleCone.mtype (class), each object represents a cone RVO_AB.execute_one_step.mtype (function), this is the 'heart' of our implementation calls all the appropriate functions in order to update velocities for all agents for one step dt.rand_cir.mtype (function), return N uniformly sampling points inside a circle.circle_sampling.mtype (independent program), made for debugging to prove the random uniform sampling of a circle works correctly.cone_test.mtype (independent program), made for debugging purposes to see visually that we can find points that are inside or outside a cone.
- In order to run the code open in Matlab the directory
matlab_code. - Execute
VOR_RUN_V01.mThere are 7 different scenarios, you can select each one of them by setting the appropriate id number at EX variable.
- EX=1: 2 robots You can choose different alphas to see their behavior
- EX=2: 4 times nmax robots placed in a circle.
- EX=3: 4 Groups 0f 9 of robots moving through obstacles
- EX=4: Robots in a raw with a moving obstacle
- EX=5: Robots trapped in a hole
- EX=6: Robots with square obstacles
- EX=7: Robots in a raw with a moving square obstacle



