ORCA#
#include "navground/core/behaviors/ORCA.h"
Optimal Reciprocal Collision Avoidance (see http://gamma.cs.unc.edu/RVO2)
A wrapper of the open-source implementation from snape/RVO2
Registered properties:
time_horizon
(float, get_time_horizon),effective_center
(float, is_using_effective_center),treat_obstacles_as_agents
(bool, get_treat_obstacles_as_agents)max_neighbors
(int, get_max_number_of_neighbors)
State: GeometricState
Public Functions
Contruct a new instance.
- Parameters:
kinematics – [in] The kinematics
radius – [in] The radius
Gets the maximal number of neighbors.
- Returns:
The maximal number of neighbors
Sets the maximal number of neighbors.
- Parameters:
value – [in] The desired value
Gets whether to treat obstacles as static, disc-shaped, [RVO] agents. Else will treat them as squared obstacles.
- Returns:
True if static obstacles are passed as [RVO] neighbors.
Sets whether to treat obstacles as static, disc-shaped, [RVO] agents. Else will treat them as squared obstacles.
- Parameters:
value – [in] The desired value
Gets the time horizon. Collisions predicted to happen after this time are ignored.
- Returns:
The time horizon.
Sets the time horizon. Collisions predicted to happen after this time are ignored.
- Parameters:
value – [in]
Gets the time horizon applied to static linear obstacles. Collisions predicted to happen after this time are ignored.
- Returns:
The time horizon.
Sets the time horizon applied to static linear obstacles. Collisions predicted to happen after this time are ignored.
- Parameters:
value – [in]
Determines if an effective center is being used.
Using an effective center placed with an offset towards the front, allows to consider the kinematics as holonomic instead of a two-wheeled differential drive. See
J. Snape, J. van den Berg, S. J. Guy, and D. Manocha, "Smooth and collision-free navigation for multiple robots under differential-drive constraints," in 2010 IEEE/RSJ International Conference on Intelligent, Robots and Systems, 2010, pp. 4584-4589.
with
D=L/2
.Only possibly true if the kinematics is wheeled and constrained.
- Returns:
True if using effective center, False otherwise.
Specifies if the kinematics should be using an shifted effective center, see set_time_horizon.
- Parameters:
value – [in] Whenever is should use an effective center when kinematics is wheeled and constrained.
Gets the ORCA lines computed during the last update.
- Returns:
The ORCA lines.
A line.
Public Members
A point on the line
The direction