610 likes | 1.21k Views
Reciprocal Velocity Obstacles for Real-Time Multi-Agent Navigation. Jur van den Berg Ming Lin Dinesh Manocha. Multi-Agent Navigation. N agents share an environment Move from start to goal without mutual collisions (and collisions with obstacles) Decoupled
E N D
Reciprocal Velocity Obstacles for Real-Time Multi-Agent Navigation Jur van den BergMing LinDinesh Manocha
Multi-Agent Navigation • N agents share an environment • Move from start to goal without mutual collisions (and collisions with obstacles) • Decoupled • Simultaneous independent navigation for each agent • Global path planning and local collision avoidance decoupled • Real-time
Problem Description • Independent Navigation • Continuous cycle of sensing and acting • Global path planning vs. local navigation • Each cycle: each agent observes other agents (position, velocity) • But does not know what they are going to do • How to act?
Previous Approaches • Potential Field (particle model) • Assume other agents are static obstacles • Assume other agents are moving obstacles (that maintain their current velocity for a while) • Velocity Obstacles [Fiorini, Shiller, 98]
Velocity Obstacle • (p, v) = {p + tv | t > 0} • VOAB(vB) = {vA | (pA, vA – vB) B –A }
Using Velocity Obstacles • In each cycle, select velocity outside velocity obstacle of any moving obstacle • For multi-agent navigation? • Agents are not passively moving, but react on each other • Result: oscillations
Oscillations • Example: two agents with opposite directions
Oscillations • Example: two agents with opposite directions
Oscillations • Example: two agents with opposite directions
Oscillations • Example: two agents with opposite directions
Oscillations • Example: two agents with opposite directions
Oscillations • Example: two agents with opposite directions
Oscillations • Example: two agents with opposite directions
Oscillations • Example: two agents with opposite directions
New Approach • Prevent oscillations • No communication among agents or global coordination • Simple idea: instead of choosing a new velocity outside the velocity obstacle, take the average of a velocity outside the velocity obstacle and the current velocity • Formalized into Reciprocal Velocity Obstacle
Reciprocal Velocity Obstacle • RVOAB(vB, vA) = {v’A | 2v’A – vA VOAB(vB)}
Oscillations? • Example: two agents with opposite directions
Oscillations? • Example: two agents with opposite directions
Oscillations? • Example: two agents with opposite directions
Oscillations? • Example: two agents with opposite directions
Oscillations? • Example: two agents with opposite directions
Oscillations? • Example: two agents with opposite directions
No Oscillations • Example: two agents with opposite directions
No Oscillations and Safe • Example: two agents with opposite directions
Generalized RVOs • Different distribution of effort in avoiding each other than 50%-50% • Parameter ; 0: no effort; 1: all effort • RVOAB(vB, vA, ) = {v’A | (1/)v’A + (1 – 1/)vA VOAB(vB)}
Generalized RVOs • 0% - 100%
Generalized RVOs • 25% - 75%
Generalized RVOs • 75% - 25%
Generalized RVOs • 100% - 0%
Multi-Agent Navigation • N agents A1, …, AN with positions p1, …, pN, velocities v1, …, vN, preferred speeds vpref1, …, vprefN and goals g1, …, gN • Time stept • Each time step: for each agent: • Compute preferred velocity (global path planning) • Select new velocity • Update position of agent according to new velocity
Select New Velocity • Outside the union of the reciprocal velocity obstacles, closest to preferred velocity
Select New Velocity • Environment may become crowded: no valid velocity • Solution: select velocity inside RVO but penalize • Expected time to collision • Distance to preferred velocity • Select velocity with minimal penalty
Kinodynamic Constraints • Maximum velocity • Maximum acceleration • More complicated…
Neighbor Region • More efficient • Circular neighbor region • Visibility neighbor region…
Experiments • Circle: move to antipodal position on circle 12 agents
Experiments • Circle: move to antipodal position on circle 250 agents
Results • Office experiment
More Demos • Office evacuation (Jason Sewall) • Crosswalk (Sachin Patil) • Subway station (Sean Curtis) • Stadium evacuation (Sachin Patil)
Public Library • http://gamma.cs.unc.edu/RVO/Library • Easy to use
Extension to 3D 500 agents on a sphere moving to the other side
Conclusion and Future Work • Conclusion • Powerful and simple (easy to implement) local collision avoidance technique for multi-agent navigation • Scalable with number of agents and number of processors used • Future work • Model human behavior - Human dynamics • Implementation on mobile robots (sensing etc.) • Application to flocks and schools (3D)
Further Reading • Van den Berg et al. n-body Reciprocal Collision Avoidance (ISRR 2009) • Pettre et al.Experiment-based Modeling, Simulation and Validation of Interactions between Virtual Walkers(SCA 2009)
Experiments • (High-speed) moving obstacle: car