290 likes | 521 Views
Optimal Reciprocal Collision Avoidance (ORCA). Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill. Motivation. Robots are becoming cheaper, more mobile, and better sensing
E N D
Optimal Reciprocal Collision Avoidance (ORCA) Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill
Motivation • Robots are becoming cheaper, more mobile, and better sensing • Several mobile robots sharing space is becoming increasingly practical • Our Goal: • Allow robots to share physical space • Encourage smooth, goal directed navigation • Guaranteed collision avoidance
Overview • Our Goals • Background & Previous Work • Algorithm Overview • Implementation Details • Performance Results • Conclusions & Future Work
Collision Avoidance Static & Dynamic Obstacles • Collision Avoidance is a well studied problem • Velocity Obstacles [Fiorini & Shillier, 98] • Inevitable Collision States[Fraichard & Asama, 98] • Dynamic Window [Fox, Burgard, & Thrun, 97] • Focused on one robot avoiding static and moving obstacles • Inappropriate for “responsive” obstacles
Collision Avoidance Responsive Obstacles • Reciprocal Velocity Obstacles(RVO) [Berg et al, ‘08] • Extends Velocity Obstacle concept • Oscillation free, guaranteed avoidance (2 agents) • Limitations • Guarantees limited to 2 agents
ORCA • A new algorithm for collision avoidance • A linear programming based formulation • Extends Velocity Obstacle concepts • Velocity Based • Provides sufficient conditions for avoiding collisions • Decisions are made independently, w/o communication • Guaranteed avoidance
Problem overview • Inputs: • Independent Robots • Current Velocity of all • Own Desired Velocity (Vpref) • Outputs: • New collision-free velocity (Vout) • Description – Each Robot: • Determines permitted (collision free) velocities • Chooses velocity closest to Vpref which is permitted
Velocity Space & Forbidden Regions • Forbidden Regions • Potentially colliding velocities • An “obstacle” in velocity space • VO: Velocity Obstacle [Fiorini & Shiller 98] • Assumes other agent is unresponsive • Appropriate for static & unresponsive obstacles • RVO: Reciprocal VO [van den Berg et al., 08] • Assumes other agent is mutually cooperating
Velocity Obstacle • Time horizon τ • Relative velocities A–B • Relative velocities B–A symmetric in O
Permitted Velocities • If velocity of B is vB • A should choose velocity outside VOA|B {vB}. • If velocity of B is in set VB • permitted velocitiesPVA|B(VB) for A are outside VOA|B VB
Reciprocally Permitted Velocities • Set VA of velocities for A and set VB of velocities for B are reciprocally permitted if • VA PVA|B(VB) and VB PVB|A(VA) • Set VA of velocities for A and set VB of velocities for B are reciprocally maximal if • VA= PVA|B(VB) and VB= PVB|A(VA)
ORCA • u – Vector which escapes VOτA|B • Each robot is responsible for ½u • ORCAτA|B • The set of velocities allowed to A • Sufficient condition for collision avoidance if B chooses from ORCAτA|B
Optimality • Infinitely many half plane pairs reciprocally permitted • ORCA chooses plans to: • Maximize velocities “near” current velocities • Fairly distribute permitted velocities between A and B • For any radius r:
Multi-Robot Navigation • Choose a velocity inside ALL pair-wise ORCAs • Efficient O(n) implementation w/ Linear Programming
Small Scale Simulation (1) • Two robots are asked to swap positions • Generated Path is: • Smooth • Collision free
Small Scale Simulation (2) • 5 Robots moving to antipodal points • Smooth, Collision paths result
Performance - Scaling • Our performance sales nearly linearly w.r.t. • Number of Cores • Number of Agents
Large Scale Simulations • 1,000 Virtual robots move across a circle • Collision Avoidance is a major component of Crowd Sims. • ORCA can be applied to virtual agents to produce believable motion
Conclusion & Future Work • ORCA: • Efficient, decentralized, guaranteed collision avoidance • 3-5µs per robot • No explicit communication required • Fast running time & smooth, convincing behavior • Future Work • Incorporating kinematic & dynamic constraints • Implement in 3D environments
Acknowledgments • Funding & Support • ARO (Contract W911NF-04-1-0088) • DARPA/RDECOM(Contracts N61339-04-C-0043 & WR91CRB-08-C-0137) • Intel • Intel fellowship • Microsoft • National Science Foundation (Award 0636208)
Choosing Vopt • Vopt impacts the robot behavior • Vopt = Vpref • Vpref may not be know • No solution guaranteed to exist • Vopt = 0 • Deadlock likely in dense scenarios • Vopt = Vcur • Nice balance • Vcur ~= Vperf in low density • Vcur ~= 0 in high density
Densely Packed Conditions • If Vopt != 0, solution may not exist • Find the “least bad” velocity • Efficient implementation possible with 3D linear programming
Static Obstacles • ORCAs can also be created for obstacles in the environment • ORCA is half-plane tangent to VO τ A|O