0521610 X Computer Simulation Introduction to RVO Members
0521610 X Computer Simulation Introduction to RVO Members: 张皖渝 方洋 邵鹏程 王致远 2019/5/31 School of Computer Science and Information Engineering Hefei University of Technology
I. Introduction II. Related Work III. Velocity Obstacles IV. Reciprocal Velocity Obstacles V. Multi-Agent Navigation VI. RVO 2 Library VII. Experimental Results
I. Introduction n. The RVO algorithm is for real-time multi-agent navigation. n. Using planning cycle, in which every agent makes a decision n. The only information each agent is required to have about the other agents: Øcurrent position Øcurrent velocity Øexact shape (which can be acquired by sensors).
II. Related Work • Low level: VO, RVO, ORCA , RRVO VO: Better to kill a fault than to let it go, As long as it's possible to collide in the future, it's ruled out ORCA: provides sufficient conditions for collision-free motion by letting each agent take half of the responsibility of avoiding pairwise collisions. Considering the size of the speed,just linear programming, More efficient
II. Related Work RRVO(Reciprocally-Rotating Velocity Obstacles) It is a state-of-the-art local collision avoidance technique. RRVO allows agents to actively rotate in order to avoid collision with each other. The Reciprocal Velocity Obstacles approach works well in general, but can lead to deadlock when sufficiently large agents with opposing goals meet. Reciprocally-Rotating Velocity Obstacles overcomes the deadlocking problem by permitting agents to rotate
II. Related Work common velocity obstacles (CVO) finite-time-interval velocity obstacles (FVO) generalized velocity obstacles (GVO) hybrid reciprocal velocity obstacles (HRVO) nonlinear velocity obstacles (NLVO) probabilistic velocity obstacles (PVO)
II. Related Work • RVO now has many plugins that can be used directly , for instance , The A* Pathfinding Project for Unity 3 D
II. Related Work • RVONavmesh RVOObstacl e
II. Related Work • MOBA GAME
III. Velocity Obstacles How to avoid a static obstacle? Take A as a point The radius of big circle equals = The radius of A plus the radius of B
III. Velocity Obstacles How to avoid a dynamic obstacle? Assume that B is static Take A as a point
III. Velocity Obstacles Is there any problem? n Kind of waste (Not considering time) n Oscillation Problem(choose the most directed velocities among free velocities)
IV. Reciprocal Velocity Obstacles To overcome the oscillation, we introduce RVO. n. Assume that obstacles also try to avoid collision n. Accumulate the average velocity of two: Ø The current velocity Ø A velocity that lies outside the other agent’s velocity obstacle
IV. Reciprocal Velocity Obstacles •
IV. Reciprocal Velocity Obstacles •
IV. Reciprocal Velocity Obstacles n. Generalized Reciprocal Velocity Obstacles
V. Multi-Agent Navigation n. We want to apply RVO to agents as many as possible n. The triangle area of RVO is the key Combine all the triangle areas related to different agents!
V. Multi-Agent Navigation Is that always works? n. Kinematic and dynamic constraints n. There is no velocity available ØTo choose a velocity inside RVO but have a penalty Do we have to consider all the agents? n Set a neighbor region
VI. RVO 2 Library n. Example. Blocks. cpp n. Example. Circle. cpp showing a demo with 250 agents initially positioned evenly distributed on a circle attempting to move to the antipodal position on the circle. Then, every 0. 25 timesteps, the two-digit coordinates are printed on the screen until each agent reaches their destination.
VI. RVO 2 Library n. Example. Circle. cpp n. The flow chart is as follows: Begin Specify the global time step of the simulation Specify the default parameters for agents Add 250 agents store their goals on the opposite side of the environment Set the preferred velocity Updates the two-dimensional position and two-dimensional velocity Check if all agents have reached their goals End
VI. RVO 2 Library n. Example. Circle. cpp n Example file showing a demo with 100 agents split in four groups initially positioned in four corners of the environment. Each agent attempts to move to other side of the environment through a narrow passage generated by four obstacles. There is no roadmap to guide the agents around the obstacles.
VI. RVO 2 Library Begin n. Example. Blocks. cpp n. The flow chart is as follows: Specify the global time step of the simulation Add agents, specifying their start position, and store their goals Add (polygonal) obstacles, specifying their vertices Set the preferred velocity for each agent Updates the two-dimensional position and two-dimensional velocity Check if all agents have reached their goals End
VI. RVO 2 Library n. Example. Roadmap. cpp n. Example file showing a demo with 100 agents split in four groups initially positioned in four corners of the environment. Each agent attempts to move to other side of the environment through a narrow passage generated by four obstacles. There is a roadmap to guide the agents around the obstacles.
VI. RVO 2 Library Begin n. Example. Roadmap. cpp n. The flow chart is as follows: Specify the global time step of the simulation and Specify the default parameters for agents add agents and store goals on the opposite side of the environment Add (polygonal) obstacles, specifying their vertices in counterclockwise order Set the preferred velocity for each agent Lets the simulator perform a simulation step and updates the two-dimensional position and two-dimensional velocity of each agent Check if all agents have reached their goals End
VII. Experiment Results
- Slides: 25