Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel...

28
Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Optimal Reciprocal Collision Avoidance (ORCA) Collision Avoidance (ORCA)

Transcript of Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel...

Page 1: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh ManochaUniversity of North Carolina at Chapel Hill

Optimal Reciprocal Collision Optimal Reciprocal Collision Avoidance (ORCA)Avoidance (ORCA)

Page 2: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

http://gamma.cs.unc.edu/CA 2

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

Page 3: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

http://gamma.cs.unc.edu/CA 3

OverviewOverview

Our Goals Background & Previous Work Algorithm Overview Implementation Details

•Performance Results Conclusions & Future Work

Page 4: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

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

Background & Previous WorkBackground & Previous Work

Page 5: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

http://gamma.cs.unc.edu/CA 5

Collision Avoidance Static & Dynamic Obstacles

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

Page 6: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

http://gamma.cs.unc.edu/CA 6

Collision Avoidance 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

Page 7: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

http://gamma.cs.unc.edu/CA 7

ORCAORCA

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

Page 8: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

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

ORCA Algorithmic DetailsORCA Algorithmic Details

Page 9: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

http://gamma.cs.unc.edu/CA 9

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

Problem overviewProblem overview

Page 10: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

http://gamma.cs.unc.edu/CA 10

Velocity Space & Forbidden Regions

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

Page 11: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

http://gamma.cs.unc.edu/CA 11

Velocity ObstacleVelocity Obstacle

Time horizon τ Relative velocities A–B Relative velocities B–A symmetric in O

Page 12: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

http://gamma.cs.unc.edu/CA 12

Permitted VelocitiesPermitted Velocities

If velocity of B is vB

•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 V

B

Page 13: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

http://gamma.cs.unc.edu/CA 13

Reciprocally Permitted Velocities

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)

Page 14: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

http://gamma.cs.unc.edu/CA 14

ORCAORCA

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

Page 15: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

http://gamma.cs.unc.edu/CA 15

OptimalityOptimality

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:

Page 16: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

http://gamma.cs.unc.edu/CA 16

Multi-Robot Navigation

Multi-Robot Navigation

Choose a velocity inside ALL pair-wise ORCAs Efficient O(n) implementation w/ Linear

Programming

Page 17: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

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

Performance ResultsPerformance Results

Page 18: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

http://gamma.cs.unc.edu/CA 18

Small Scale Simulation (1)

Small Scale Simulation (1)

Two robots are asked to swap positions

Generated Path is:

•Smooth

•Collision free

Page 19: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

http://gamma.cs.unc.edu/CA 19

Small Scale Simulation (2)

Small Scale Simulation (2)

5 Robots moving to antipodal points

Smooth, Collision paths result

Page 20: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

http://gamma.cs.unc.edu/CA 20

Performance - ScalingPerformance - Scaling

Our performance sales nearly linearly w.r.t.• Number of Cores

• Number of Agents

Page 21: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

http://gamma.cs.unc.edu/CA 21

Large Scale SimulationsLarge 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

Page 22: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

http://gamma.cs.unc.edu/CA 22

Conclusion & Future Work

Conclusion & Future Work

ORCA:•Efficient, decentralized, guaranteed

collision avoidance3-5µs per robot

•No explicit communication required•Fast running time & smooth, convincing

behavior Future Work

•Incorporating kinematic & dynamic constraints

•Implement in 3D environments

Page 23: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

http://gamma.cs.unc.edu/CA 23

AcknowledgmentsAcknowledgments

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)

Page 24: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

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

Questions?Questions?

?

Page 25: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

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

Backup SlidesBackup Slides

Page 26: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

http://gamma.cs.unc.edu/CA 26

Choosing VoptChoosing 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

Page 27: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

http://gamma.cs.unc.edu/CA 27

Densely Packed Conditions

Densely Packed Conditions

If Vopt != 0, solution may not exist•Find the “least bad” velocity•Efficient implementation possible with

3D linear programming

Page 28: Jur van den Berg, Stephen J. Guy, Ming Lin, Dinesh Manocha University of North Carolina at Chapel Hill Optimal Reciprocal Collision Avoidance (ORCA)

http://gamma.cs.unc.edu/CA 28

Static ObstaclesStatic Obstacles

ORCAs can also be created for obstacles in the environment

ORCA is half-plane tangent to VO τ A|O