Optimal Reciprocal Collision Avoidance ORCA Jur van den

  • Slides: 28
Download presentation
Optimal Reciprocal Collision Avoidance (ORCA) Jur van den Berg, Stephen J. Guy, Ming Lin,

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

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 http: //gamma. cs. unc. edu/CA 2

Overview § Our Goals § Background & Previous Work § Algorithm Overview § Implementation

Overview § Our Goals § Background & Previous Work § Algorithm Overview § Implementation Details • Performance Results § Conclusions & Future Work http: //gamma. cs. unc. edu/CA 3

Background & Previous Work http: //gamma. cs. unc. edu/CA

Background & Previous Work http: //gamma. cs. unc. edu/CA

Collision Avoidance Static & Dynamic Obstacles § Collision Avoidance is a well studied problem

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 http: //gamma. cs. unc. edu/CA 5

Collision Avoidance Responsive Obstacles § Reciprocal Velocity Obstacles(RVO) [Berg et al, ‘ 08] •

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 http: //gamma. cs. unc. edu/CA 6

ORCA § A new algorithm for collision avoidance § A linear programming based formulation

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 http: //gamma. cs. unc. edu/CA 7

ORCA Algorithmic Details http: //gamma. cs. unc. edu/CA

ORCA Algorithmic Details http: //gamma. cs. unc. edu/CA

Problem overview § Inputs: • Independent Robots • Current Velocity of all • Own

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 http: //gamma. cs. unc. edu/CA 9

Velocity Space & Forbidden Regions § Forbidden Regions • Potentially colliding velocities • An

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 http: //gamma. cs. unc. edu/CA 10

Velocity Obstacle § Time horizon τ § Relative velocities A–B § Relative velocities B–A

Velocity Obstacle § Time horizon τ § Relative velocities A–B § Relative velocities B–A symmetric in O http: //gamma. cs. unc. edu/CA 11

Permitted Velocities § If velocity of B is v. B • A should choose

Permitted Velocities § If velocity of B is v. B • A should choose velocity outside VOA|B {v. B}. § If velocity of B is in set VB • permitted velocities PVA|B(VB) for A are outside VOA|B VB http: //gamma. cs. unc. edu/CA 12

Reciprocally Permitted Velocities § Set VA of velocities for A and set VB of

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) http: //gamma. cs. unc. edu/CA 13

ORCA § u – Vector which escapes VOτA|B • Each robot is responsible for

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 http: //gamma. cs. unc. edu/CA 14

Optimality § Infinitely many half plane pairs reciprocally permitted § ORCA chooses plans to:

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: http: //gamma. cs. unc. edu/CA 15

Multi-Robot Navigation § Choose a velocity inside ALL pair-wise ORCAs § Efficient O(n) implementation

Multi-Robot Navigation § Choose a velocity inside ALL pair-wise ORCAs § Efficient O(n) implementation w/ Linear Programming http: //gamma. cs. unc. edu/CA 16

Performance Results http: //gamma. cs. unc. edu/CA

Performance Results http: //gamma. cs. unc. edu/CA

Small Scale Simulation (1) § Two robots are asked to swap positions § Generated

Small Scale Simulation (1) § Two robots are asked to swap positions § Generated Path is: • Smooth • Collision free http: //gamma. cs. unc. edu/CA 18

Small Scale Simulation (2) § 5 Robots moving to antipodal points § Smooth, Collision

Small Scale Simulation (2) § 5 Robots moving to antipodal points § Smooth, Collision paths result http: //gamma. cs. unc. edu/CA 19

Performance - Scaling § Our performance sales nearly linearly w. r. t. • •

Performance - Scaling § Our performance sales nearly linearly w. r. t. • • Number of Cores Number of Agents http: //gamma. cs. unc. edu/CA 20

Large Scale Simulations § 1, 000 Virtual robots move across a circle § Collision

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 http: //gamma. cs. unc. edu/CA 21

Conclusion & Future Work § ORCA: • Efficient, decentralized, guaranteed collision avoidance w 3

Conclusion & Future Work § ORCA: • Efficient, decentralized, guaranteed collision avoidance w 3 -5µs per robot • No explicit communication required • Fast running time & smooth, convincing behavior § Future Work • Incorporating kinematic & dynamic constraints • Implement in 3 D environments http: //gamma. cs. unc. edu/CA 22

Acknowledgments § Funding & Support • ARO (Contract W 911 NF-04 -1 -0088) •

Acknowledgments § Funding & Support • ARO (Contract W 911 NF-04 -1 -0088) • DARPA/RDECOM (Contracts N 61339 -04 -C-0043 & WR 91 CRB-08 C-0137) • Intel fellowship • Microsoft • National Science Foundation (Award 0636208) http: //gamma. cs. unc. edu/CA 23

Questions? ? http: //gamma. cs. unc. edu/CA 24

Questions? ? http: //gamma. cs. unc. edu/CA 24

Backup Slides http: //gamma. cs. unc. edu/CA

Backup Slides http: //gamma. cs. unc. edu/CA

Choosing Vopt § Vopt impacts the robot behavior § Vopt = Vpref • Vpref

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 http: //gamma. cs. unc. edu/CA 26

Densely Packed Conditions § If Vopt != 0, solution may not exist • Find

Densely Packed Conditions § If Vopt != 0, solution may not exist • Find the “least bad” velocity • Efficient implementation possible with 3 D linear programming http: //gamma. cs. unc. edu/CA 27

Static Obstacles § ORCAs can also be created for obstacles in the environment §

Static Obstacles § ORCAs can also be created for obstacles in the environment § ORCA is half-plane tangent to VO τ A|O http: //gamma. cs. unc. edu/CA 28